Linux Dwm 关于部分问题的解决方案

录 Archlinux 使用 Dwm 窗口管理器的一些重要的设置和部分解决方案,当然大部分的东西都来自ArchWiki。部分是个人经验,为了日后方便查阅,所以简单记录一下。

0x01 java 程序显示异常

参考:

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

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

java 程序启动异常

相信绝大部分使用 linux 的用户可能都遇到过,比如 burpsuite 字体发虚,特别在 dwm 窗口管理器中,大部分 java 程序,包括JetBrains的所有软件都无法正常开启,在我查阅了 archwiki 后,终于解决了这一大问题。

archlinux 可以使用 archlinux-java 命令随时切换不同 java 版本

dwm 中,他本来就是一个窗口管理器,但 JVM 需要你在不同的窗口管理器中才能解决在窗口管理器发生的 Java GUIs 渲染问题。

所以使用 suckless 官方给出的wmname冒充另一个窗口管理器

wmname LG3D

必须在运行了这条命令后重启有问题的程序,也可以把此命令设为开机自启更加方便。

java 程序字体渲染

启用抗锯齿显示,将以下内容添加到 /etc/environment 中:

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

使用 GTK 的显示风格,将下面的内容添加到 ~/.bashrc 中:

_JAVA_OPTIONS='-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'

即使通过 Java 选项强制执行了抗锯齿,得到的抗锯齿效果也可能不如本机应用程序。可以通过 OpenJDK 的一个补丁来弥补,AUR提供了这个补丁:

修补后的 OpenJDK7 可用 jre7-openjdk-infinality

修补后的 OpenJDK8 可用 jre8-openjdk-infinality

字体修改:

使用 Microsoft 的字体。在AUR安装ttf-ms-fonts

将以下内容添加到 /etc/environment 以启用这些字体

JAVA_FONTS=/usr/share/fonts/TTF

修复乱码 (For JRE8):

将字体文件放在下面的目录下。如果目录不存在,则创建该目录。

/usr/lib/jvm/java-8-openjdk/jre/lib/fonts/fallback/

ok!做完这些步骤后,你的 archlinux 启动 java 程序应该会有一个很不错的显示效果,布局也正常了,看看我的 burpsuite 显示效果,很完美。

somesolutions-1

0x02 导入系统证书

参考:

https://www.archlinux.org/news/ca-certificates-update/

这一步很重要,在 archlinux 中最好的证书导入方式就是把证书直接导入系统当中,不论是 burpsuite 或是 xray 或是一些 vpn 证书,导入系统的效果最好,三条命令完成。

sudo cp xxx.crt /etc/ssl/certs/
sudo cp xxx.crt /etc/ca-certificates/trust-source/anchors/
sudo trust extract-compat

0x03 可视化蓝牙配置

参考:

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

安装蓝牙、蓝牙音频及可视化管理工具:

yay -S bluez bluez-utils pulseaudio-bluetooth blueman

/etc/pulse/system.pa 增加下面内容:

load-module module-bluetooth-policy
load-module module-bluetooth-discover

启动蓝牙服务:

systemctl start bluetooth.service

启动 blueman 管理工具,当然你可以把它设为开机自启:

blueman-applet &

0x04 TIM 解决方案

当然 archlinuxcn 源 里有 qq-linux , 但是这个谁用谁知道,反正我不喜欢用,其次可以选择 deepin-qq , 可用 archlinuxcn 源deepin.com.qq.office , 但是该版本较旧,推荐 aur 源deepin-wine-tim , 直接下载编译,随时保持最新版, deepin-qq 在非 gnome 环境下主要存在 3个 问题。

其一:

dwm 每次重启后 tim 都无法开启,修改 wine 版本可解决,将 /opt/deepinwine/apps/Deepin-TIM/run.sh/opt/deepinwine/tools/run.shWINE_CMD 一项都修改为 wine , 这也可以解决使用 deepin-wine 时的字体显示问题。

WINE_CMD="wine"

其二:

需提前运行 gnome-settings-daemon 依赖,但是运行后会导致 gkt 主题遭到破坏,运行以下 两条 命令重新设置主题:

gsettings set org.gnome.desktop.interface gtk-theme Adapta-Eta
gsettings set org.gnome.desktop.interface icon-theme Arc

当然我都是开机自启的包括运行 gnome-settings-daemon

nohup /usr/lib/gsd-xsettings > /dev/null 2>&1

其三:

TIM 无法显示图片,包括用户头像等,原因在于 deepin-qq 走的是 ipv6 的线路,解决方案是禁用本机 ipv6 , 但我不推荐,推荐使用代理,但是 tim 登录显示原因 linux 上设置不了,所以在 windows 上设置后将配置文件复制过来即可

C:\Users\Administrator\Documents\Tencent Files\All Users\TIM

替换

~/Documents/Tencent Files/All Users/TIM

0x05 linux 网易云音乐无法输入中文

linux 上网易云音乐使用其自己的 qt 框架,无法共用系统环境配置,所以单独为其配置一下环境变量即可,修改 /opt/netease/netease-cloud-music/netease-cloud-music.bash

先注释三行

#export LD_LIBRARY_PATH="${HERE}"/libs
#export QT_PLUGIN_PATH="${HERE}"/plugins
#export QT_QPA_PLATFORM_PLUGIN_PATH="${HERE}"/plugins/platforms

再添加两行,完美解决

export LD_LIBRARY_PATH=/usr/lib
export XDG_CURRENT_DESKTOP=DDE
修改链接格式
加载评论