i3wm配置美化

i3自动运行

exec XXX	# i3在初始化时执行的命令或脚本,重启i3时,exec不会执行
exec_always XXX # 重启i3时执行的命令或脚本


# 启动不支持启动提醒的脚本或程序时,鼠标指针会逗留在忙碌状态,为排除此现象,可用`--no-startup-id`指令。
exec --no-startup-id XXX
exec_always --no-startup-id XXX

窗体美化

picom

i3 config:

# 窗体透明支持
exec --no-startup-id picom -b

# 窗口标题居中
title_align center

# 设置窗口边框
default_border pixel 0
default_floating_border pixel 0
hide_edge_borders smart

# 设置窗口间距
gaps inner 7
gaps outer 3

状态栏

i3blocks 透明支持

i3 config:

# 状态栏
bar {
	i3bar_command i3bar --transparency
	status_command i3blocks
	position top
	colors {
		background #9370DB3F
		separator #778899
			# 使用RGBA颜色  #边界 背景 文本
		focused_workspace  	#778899A5 #87CEEBA5 #FFFAFAF5
		inactive_workspace 	#7788993F #AFEEEE3F #FFFAFAF5
		urgent_workspace   	#80808072 #FF450072 #FFFAFAF5
    }
}

# 更改音量或切换静音
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec amixer -q -D pulse sset Master 5%+ && pkill -RTMIN+1 i3blocks
bindsym XF86AudioLowerVolume exec amixer -q -D pulse sset Master 5%- && pkill -RTMIN+1 i3blocks
bindsym XF86AudioMute exec amixer -q -D pulse sset Master toggle && pkill -RTMIN+1 i3blocks

i3blocks config:

# i3blocks config file

# 时间日期
# 安装yad、xdotool
[calendar]
command=~/.config/i3blocks/shell/calendar
interval=15
color="#FF33CC"
LABEL=
DATEFMT=+%b%d 星期%a  %H:%M
# SHORTFMT=+%H:%M:%S
HEIGHT=530
WIDTH=355

# WiFi
[wifi]
command=~/.config/i3blocks/shell/wifi
label=
INTERFACE=wlp3s0
interval=60

# 带宽信息
[bandwidth]
command=~/.config/i3blocks/shell/bandwidth2
interval=persist
color="#66BB6A"
markup=pango
label=
WARN_RX=307200
WARN_TX=30720
CRIT_RX=512000
CRIT_TX=51200


# 内存和交换空间
[memory]
command=~/.config/i3blocks/shell/memory
color="#4169E1"
label=
interval=30

#[memory]
#command=~/.config/i3blocks/shell/memory
#label=
#instance=swap
#interval=30


# 键盘提示

[keystatus]
command=~/.config/i3blocks/shell/keystatus
label=
color="#00FFFF"
instance=caps
interval=1

[keystatus]
command=~/.config/i3blocks/shell/keystatus
label=
color="#00FF00"
instance=num
interval=1


# 音量
# 安装pulseaudio、alsa (alsa-utils)
# 修改i3配置如下
# 更改音量或切换静音
#bindsym XF86AudioRaiseVolume exec amixer -q -D pulse sset Master 5%+ && pkill -RTMIN+1 i3blocks
#bindsym XF86AudioLowerVolume exec amixer -q -D pulse sset Master 5%- && pkill -RTMIN+1 i3blocks
#bindsym XF86AudioMute exec amixer -q -D pulse sset Master toggle && pkill -RTMIN+1 i3blocks
[volume-pulseaudio]
command=~/.config/i3blocks/shell/volume-pulseaudio
interval=once
signal=1
MIXER=[determined automatically]
SCONTROL=[determined automatically]
##exposed format variables: ${SYMB}, ${VOL}, ${INDEX}, ${NAME}
LONG_FORMAT="${SYMB} ${VOL}%"
SHORT_FORMAT="${SYMB} ${VOL}%"
AUDIO_HIGH_SYMBOL=
AUDIO_MED_THRESH=50
AUDIO_MED_SYMBOL=
AUDIO_LOW_THRESH=0
AUDIO_LOW_SYMBOL=
AUDIO_DELTA=5
DEFAULT_COLOR="#A569BD"
MUTED_COLOR="#263238"
USE_ALSA_NAME=0
USE_DESCRIPTION=0
## SUBSCRIBE=1 requires interval=persist and always uses LONG_FORMAT
#SUBSCRIBE=0


# 屏幕亮度
[backlight]
command=~/.config/i3blocks/shell/backlight
label=
interval=20
#STEP_SIZE=5
USE_SUDO=1


# 电池信息
[battery2]
command=~/.config/i3blocks/shell/battery2
color="#FFB74D"
markup=pango
interval=20

# 关机,重启,注销,锁定等
# Ctrl+$mod+0 关机
# bindsym Ctrl+$mod+0 exec --no-startup-id ~/.config/i3blocks/shell/shutdown_menu
# 安装 systemd、rofi或zenity
[shutdown_menu]
command=~/.config/i3blocks/shell/shutdown_menu
color="#CC0000"
full_text=
ROFI_TEXT=菜单
ROFI_OPTIONS=-width 11 -location 3 -hide-scrollbar -bw 2
#ZENITY_TITLE=Menu
#ZENITY_TEXT=Action:
#ZENITY_OPTIONS=--column= --hide-header
# (must be true or false)
ENABLE_CONFIRMATIONS=true
# (must be rofi or zenity)
LAUNCHER=rofi
#FG_COLOR=#bbbbbb
#BG_COLOR=#111111
#HLFG_COLOR=#111111
#HLBG_COLOR=#bbbbbb
#BORDER_COLOR=#222222
#LOCKSCRIPT=i3lock --color=${BG_COLOR#"#"}

程序启动器

rofi 透明支持

rofi -dump-Xresources > ~/.config/rofi/config

rofi config:

rofi.width:                          100
rofi.lines:                          3
rofi.font:                           System San Francisco Display 18
rofi.bw:                             0
rofi.padding:                        800
rofi.eh:                             2
rofi.color-normal:                   #a02f343f,#a0f3f4f5,#a02f343f,#a02f343f,#a09575cd
rofi.color-window:                   #a02f343f,#a02f343f,#a02f343f

网络管理

iwwpa_supplicantdhcpcd (网络连接三剑客)

开机自动链接wifi

先使用 wifi-muenu -o (-o 给密码加密) 链接生产配置文件,然后使用 sudo netctl enable 配置名,配置文件在/etc/netctl/下,通常命名为网卡名加wifi名

若配置被修改,需要使用 sudo netctl reenable 配置名 来更新启动配置

网络工具:

net-toolsdnsutilsinetutilsiproute2

以前net-tools属于base组,装base时自动就装上了,现在其中组都不属于了,这些工具需要单独安装, ifconfig、route在net-tools包中,nslookup、dig在dnsutils包中,ftp、telnet等在inetutils包中,ip命令在iproute2包中

代理

privoxy

使用 Systemd 启用 privoxy 服务

配置文件:/etc/privoxy/config

# 监听地址配置
# 默认监听本机(即localhost , 127.0.0.1)
# 如需监听网络中其他计算机,如监听 192.168.1.1 的 8118端口,配置如下:
listen-address 192.168.1.1:8118

# 转发协议
# 转发socks5 ,示例(注意9050后面有一个空格和点号):
forward-socks5 / localhost:9050 .

# 转发.i2p ,通过I2P路由转发.i2p,示例:
forward .i2p localhost:4444

# 转发 onion ,示例(注意9050后面有一个空格和点号):
forward-socks4a .onion localhost:9050 .

对程序进行代理设置,默认的地址是: localhost:8118

Firefox浏览器: 进入 首选项 > 高级 > 网络 > 设置使用系统代理

Chromium : chromium --proxy-server="localhost:8118"

可添加 http_proxy 环境变量,如添加到 ~/.bashrc 中:

http_proxy="http://localhost:8118"

触摸板驱动

xf86-input-libinput

优化参考:
https://spacexi.github.io/arch-touchpad/
https://www.mankier.com/4/libinput#Configuration_Details

文件管理器

nemo(UI) 、 ranger(vim)

手机MTP连接

jmtpfs

挂载设备: jmtpfs ~/mnt

卸载设备: fusermount -u ~/mnt

GUI文本编辑器

gvim

PDF编辑器

masterpdfeditor

开源版谷歌浏览器

chromium

看图软件

eog

图片编辑器

gimp (类似于PS)

音乐

netease-cloud-music 网易云音乐
listen1-desktop-appimage
cocomusic 第三方QQ音乐

视频剪辑

kdenlive (类似Pr)
openshot(稍微简单点)

相机

cheese

录屏&直播推理

obs-studio

视频播放

vlc

锁屏

i3lock-fancy scrot xautolock

i3 config:
自动锁屏:
exec_always xautolock -time 5 -locker "i3lock-fancy -- scrot -z -o"

快捷键锁屏:
bindsym $mod+l exec --no-startup-id i3lock-fancy -- scrot -z -o

壁纸管理

feh

设置壁纸 feh --bg-fill /path/to/image.file

# 缩放选项
--bg-fill 		# 填充,保留长宽比
--bg-scale 		# 填充,不保留长宽比
--bg-center 	# 居中
--bg-max 		# 缩放到最大,并在一侧有黑色边框
--bg-tile 		# 无缩放

SVG图像需要安装imagemagick

GTK3主题

lxappearance-gtk3 GUI设置GTK主题

~/.config/i3/config加入自动运行命令:
exec --no-startup-id feh --bg-fill ~/Pictures/DesktopBackgroun/background.jpg
在登陆时随机选择~/Pictures/DesktopBackground/background.jpg 做壁纸。

exec --no-startup-id feh --randomize --bg-fill ~/Pictures/DesktopBackgroun
在登陆时随机选择~/Pictures/DesktopBackground 下的图片做壁纸。

GUI压缩软件

engrampa

电源管理

tlp
sudo systemctl enable tlp
详细

添加到内核参数列表

sudo vim /etc/default/grub
# 将列表添加到 GRUB_CMDLINE_LINUX_DEFAULT 的引号内

# 以配置重新生成grub.cfg文件
sudo grub-mkconfig -o /boot/grub/grub.cfg

声卡驱动

alsa-utilsalsa-oss

alsamixer

# 使用 ← 和 → 方向键,选中 Master 和 PCM 声道。按下 m 键解除静音。使用 ↑ 方向键增加音量
# 要启用麦克风,切换至 Capture 选项卡,按下 F4,按下 空格 启用其中一个声道即可
# 按下 Esc 键退出 alsamixer

https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture

显卡

Intel

sudo pacman -S mesa 安装xorg-server会依赖安装, intel 开源专有驱动: xf86-video-intel
sudo pacman -S vulkan-intel 用于支持vulkan(跨平台3D图形和计算API),大致与Direct3D 12和Mantle类似
sudo pacman -S lib32-mesa 用于支持32位程序,该包处于multilib中,需要在/etc/pacman.conf中开启该库

acpi_backlight=vendor,添加到内核参数列表注册

通过将i915.invert_brightness=1添加到内核参数列表解决这些问题。

NVIDIA

sudo pacman -S mesa lib32-mesa nvidia nvidia-utils lib32-nvidia-utils xf86-video-nouveau optimus-manager optimus-manager-qt qt5-svg

# 配置`optimus-manager`:
sudo cp /usr/share/optimus-manager.conf /etc/optimus-manager/optimus-manager.conf

# 修改 optimus-manager.conf 如下
# 使用不同的电源管理模式
[optimus]
switching=nouveau
# 需安装 xf86-video-nouveau
pci_power_control=yes
pci_remove=no
pci_reset=no

# 或使用
[optimus]
switching=bbswitch
# 需安装 bbswitch
pci_power_control=no
pci_remove=no
pci_reset=no

# optimus-manager 使用
optimus-manager [选项]

选项:
  -h, --help            显示此帮助消息并退出
  -v, --version         打印版本并退出
  --print-mode          打印当前桌面会话正在运行的GPU模式
  --print-next-mode     打印将在下次登录会话时使用的GPU模式
  --print-startup       打印将在启动时使用的GPU模式
  --switch MODE         将GPU模式设置为MODE。 您需要注销然后登录才能应用更改。
  						可能的模式:intel,nvidia,auto(检查当前模式并切换到另一个)
  --set-startup STARTUP_MODE
                        将启动模式设置为STARTUP_MODE。
                        可能的模式:intel,nvidia,nvidia_once(从Nvidia开始,并在下次启动时恢复到Intel)
  --no-confirm          切换GPU时不要求确认并跳过所有警告
  --cleanup             删除守护程序遗留的自动生成的配置文件

计算dpi:http://dpi.lv/

一些命令:
glxinfo | grep NVIDIA

lspci -k | grep -A 2 -E "(VGA|3D)"

lspci | grep -e VGA -e 3D

lspci | grep -i nvidia | awk '{print $1}' : BusID "PCI:1:0:0"

glxgears
glmark2
glxspheres32
glxspheres64

Vulkan

~/.bash_profile 加入export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json

printenv 查看环境变量

lspci -k | grep -A 2 -E "(VGA|3D)"

01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940MX]

https://nouveau.freedesktop.org/wiki/CodeNames/

GM108 > NV118 (GM108) > nv110

nvidia

nvidia-lts LTS是Long Term Support的简称,即长期支持

nvidia-dkms 用DKMS自动编译Nvidia内核模块,每次更新Nvidia或内核后,将自动重新构建Nvidia模块

输入法

谷歌浏览器中的拼写检查功能禁用了第三方输入法
进入谷歌浏览器》设置》高级》隐私设置和安全性
将“使用网络服务帮助解决拼写错误”取消选择

设置中文区域,在~/.xprofile中添加

export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
export LC_CTYPE=en_US.UTF-8

字体

Linux字体配置.md

virtualbox

安装软件包 virtualbox内核模块的安装方式要从下面二选一:

还需要安装相应内核的内核头文件(如: linux-headers)

sudo pacman -S virtualbox virtualbox-host-modules-arch
# 手动加载vboxdrv模块,或重启就能使用了
modprobe vboxdrv

创建虚拟机 启动虚拟机时报错,一般都是是模块没有加载或有权限许可问题,可用vboxreload 解决

如果在 VirtualBox 内核模块运行期间更新了模块软件包,为了使用新版本,需要手动重新加载这些模块。在 root 权限下运行 vboxreload 即可重新加载。

将用户eonun添加进vboxusers用户组
sudo usermod -a -G vboxusers eonun

检查是否加入
cat /etc/group | grep vboxusers

护眼调光

通过 yay redshift-gtk-git 安装带前端的版本,通过redshift-gtk(有状态栏图标) 或redshift(无图标)

开机自启

使用Nvidia驱动程序时,当分辨率超过1080p时,Redshift将屏幕变为绿色
这是nvidia驱动程序的错误。一个解决方法是进行以下编辑:

/etc/X11/xorg.conf.d/20-nvidia.conf

Section "Device"
    ...
    Option         "UseNvKmsCompositionPipeline" "false"
    ...
EndSection

创建 ~/.config/redshift/redshift.conf 配置文件加入配置内容

; =================
; redshift 配置文件
; =================

[redshift]
; 设置白天和晚上的屏幕色温
temp-day=5700
temp-night=2400

; 当Redshift开始和停止时,禁用色温之间的平滑衰减
; 0将导致屏幕温度之间立即变化
; 1将在几秒钟内逐步应用新的屏幕色温
fade=1

; 太阳高度阈值
; 默认情况下,Redshift将使用当前的太阳高度来确定是白天,夜晚还是过渡(黎明/黄昏)
; 当太阳高于高海拔指定的度数时,则被视为白天;低于太阳高海拔指定的度数时,则被视为夜晚
;elevation-high=3
;elevation-low=-6

; 自定义黎明/黄昏间隔
; 无需使用太阳高度,可以手动指定黎明和黄昏的时间间隔
; 时间必须以24小时格式指定为HH:MM
;dawn-time=6:00-7:45
;dusk-time=18:35-20:15

; 设置屏幕亮度, 默认值为1.0
;brightness=0.9
; 白天和黑夜也可以使用不同的设置 (version >=1.8)
;brightness-day=0.7
;brightness-night=0.4
;  设置屏幕灰度系数(用于所有颜色,或分别用于每个颜色通道)
gamma=0.8
;gamma=0.8:0.7:0.8
; 从1.10版开始,白天和黑夜可单独设置famma
;gamma-day=0.8:0.7:0.8
;gamma-night=0.6

; 设置位置提供者:'geoclue2','manual'键入'redshift -l list'以查看可能的值
; 位置提供程序的设置位于其他部分
location-provider=manual

; 设置调整方法:'randr','vidmode'键入'redshift -m list'以查看所有可能的值。 “ randr”是首选方法,“ vidmode”是较旧的API。 但是在某些情况下,“ randr”无效。
; 调整方法设置在其他部分中
adjustment-method=randr

; 经纬位置:
; 输入“ redshift -l PROVIDER:help”以查看设置
; 例如:“redshift -l manual:help”
; 例如北京的经纬度
[manual]
lat=39.90
lon=116.41

; 屏幕调整工具设置
; 输入“ redshift -m randr:help”查看帮助
; 屏幕编号从0开始
; 如果未指定此选项,则Redshift将尝试调整_all_屏幕
[randr]
screen=0

https://blog.gongbushang.com/tech/2016/11/09/ArchLinux护眼法宝.html

https://wiki.archlinux.org/index.php/Redshift

其他

一般可以放在/etc/rc.d/rc.local文件中(rpm系统用来给用户自己配置自需的启动项目的,deb的系统中可以在/etc/init.d/下自己创建启动项目(RPM的系统中也可以)。。。。。。

另外在 Bash和TCshell中的一些启动文件 如下:

/etc/profile 登录时自动执行

`~/.bash_profile`,`~/.bash_login`, `~/.profile` 登录时自动执行

`~/.bashrc` shell 登录时自动执行

`~/.bash_logout` 退出时自动执行

`~/.bash_history` 记录最近会话中的命令

`/etc/passwd` 记录用户资源等信息

`~/.cshrc` 或 ~/.tcshrc 每个shell启动时自动执行

`~/.login` 执行完.cshrc或.tcshrc后,又登录shell执行

`~/.cshdirs` 在tcsh.login后执行

`~/.logout` 在csh 或tcsh退出时执行

XDG 基本目录规范包含以下概念:

XDG_DATA_HOME 下存放用户数据文件,默认值是 ~/.local/share
XDG_CONFIG_HOME 下存放用户配置文件,默认值是 ~/.config
XDG_DATA_DIRS 定义一组以 : 分隔的有序目录集,规定了除 XDG_DATA_HOME 外的搜索路径,默认值是 /usr/local/share/:/usr/share/
XDG_CONFIG_DIRS 定义一组以 : 分隔的有序目录集,规定了除 XDG_CONFIG_HOME 外的搜索路径,默认值是 /etc/xdg
XDG_CACHE_HOME 下存放用户的缓存文件,默认值是 ~/.cache
XDG_RUNTIME_DIR 下存放运行时的用户文件,比如 sockets、named pipes。此目录必须属于该用户,并且他必须是用户中唯一拥有读/写操作的以为,换句话说便是 0700 权限
对于 XDG_CONFIG_DIRS(XDG_DATA_DIRS) 来说,顺序代表了这些目录的重要性,第一个列出的目录是最重要的

图标

                 

          

            

             

⮘ ⮙ ⮚ ⮛ ⮜ ⮝ ⮞ ⮟

深度 QQ/TIM/微信

deepin-wine-qqdeepin-wine-timdeepin-wine-wechat

默认安装使用的是原版wine,安装后使用可使用自动脚本切换到deepin-wine

/opt/apps/com.qq.xxxxx.deepin/files/run.sh -d

创建软链接:

sudo ln -s /opt/apps/com.qq.im.deepin/files/run.sh /usr/bin/qq

sudo ln -s /opt/apps/com.qq.office.deepin/files/run.sh /usr/bin/tim

sudo ln -s /opt/apps/com.qq.weixin.deepin/files/run.sh /usr/bin/wechat

备选

com.qq.weixin.sparkcom.qq.tim.spark

/opt/apps/com.qq.weixin.deepin/files/run.sh

/opt/apps/com.qq.tim.spark/files/run.sh

微信企业版

企业版: deepin.com.weixin.work (AUR)

钉钉

dingtalk-electron(AUR)

有道词典

youdao-dict(AUR) 不建议使用,tesseract 会在后台不停启动多个进程直至内存被完全占完

轻量级浏览器

netsurf

百度网盘

baidunetdisk-bin (AUR)

sudo ln -s /usr/lib/baidunetdisk/baidunetdisk /usr/bin/baidunetdisk