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
网络管理
iw
、wpa_supplicant
和 dhcpcd
(网络连接三剑客)
开机自动链接wifi
先使用 wifi-muenu -o
(-o
给密码加密) 链接生产配置文件,然后使用 sudo netctl enable 配置名
,配置文件在/etc/netctl/
下,通常命名为网卡名加wifi名
若配置被修改,需要使用 sudo netctl reenable 配置名
来更新启动配置
网络工具:
net-tools
、dnsutils
、inetutils
、iproute2
以前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-utils
、alsa-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
,添加到内核参数列表注册
-
安装
xf86-video-intel
和systemd-backlight.service
后,在启动过程中黑屏,可能的解决方案:mask systemd-backlight.service
-
从X切换到VT时黑屏,调光黑屏
-
亮度键调高亮度会使屏幕变暗
通过将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
字体
virtualbox
安装软件包 virtualbox
内核模块的安装方式要从下面二选一:
- 如果在用rach默认的内核,安装
virtualbox-host-modules-arch
- 如果用了其它的内核,需要安装
virtualbox-host-dkms
还需要安装相应内核的内核头文件(如: linux-headers)
sudo pacman -S virtualbox virtualbox-host-modules-arch
# 手动加载vboxdrv模块,或重启就能使用了
modprobe vboxdrv
vboxnetadp
和vboxnetflt
:使用桥接网络和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.service
或systemctl --user enable redshift-gtk.service
- 或在
~/.config/i3/config
加入exec_always redshift-gtk
- 或在运行
redshif-gtk
后在图标上右键勾选开机启动即可
使用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-qq
、 deepin-wine-tim
、 deepin-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.spark
、com.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