i3wm配置美化

i3自动运行

1
2
3
4
5
6
7
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 窗体透明支持
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 状态栏
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# 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:

1
2
3
4
5
6
7
8
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 监听地址配置
# 默认监听本机(即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

1
2
3
4
5
6
# 缩放选项
--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
详细

添加到内核参数列表

1
2
3
4
5
sudo vim /etc/default/grub
# 将列表添加到 GRUB_CMDLINE_LINUX_DEFAULT 的引号内

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

声卡驱动

alsa-utilsalsa-oss

1
2
3
4
5
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,添加到内核参数列表注册

  • 安装xf86-video-intelsystemd-backlight.service后,在启动过程中黑屏,可能的解决方案:mask systemd-backlight.service

  • 从X切换到VT时黑屏,调光黑屏

  • 亮度键调高亮度会使屏幕变暗

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

NVIDIA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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 查看环境变量

1
2
3
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中添加

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

字体

Linux字体配置.md

virtualbox

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

  • 如果在用rach默认的内核,安装 virtualbox-host-modules-arch
  • 如果用了其它的内核,需要安装 virtualbox-host-dkms

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

1
2
3
sudo pacman -S virtualbox virtualbox-host-modules-arch
# 手动加载vboxdrv模块,或重启就能使用了
modprobe vboxdrv
  • vboxnetadpvboxnetflt:使用桥接网络和host-only 网络功能时都需要的。vboxnetadp 模块用于在 VirtualBox 全局配置里为主体机创建虚拟网卡;vboxnetflt 模块在使用了该功能的客体机启动时起作用
    如果要使用 Host-only 网络 或是桥接网络功能,要确保安装了 net-tools

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

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

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

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

护眼调光

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

开机自启

  • systemctl --user enable redshift.servicesystemctl --user enable redshift-gtk.service
  • 或在~/.config/i3/config加入exec_always redshift-gtk
  • 或在运行redshif-gtk后在图标上右键勾选开机启动即可

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

1
2
3
4
5
6
7
/etc/X11/xorg.conf.d/20-nvidia.conf

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
; =================
; 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%E6%8A%A4%E7%9C%BC%E6%B3%95%E5%AE%9D.html

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

其他

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
一般可以放在/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

-------------本文结束感谢阅读-------------

欢迎关注我的其它发布渠道