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冒充另一个窗口管理器

1
wmname LG3D

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

java程序字体渲染

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

1
_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

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

1
_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以启用这些字体

1
JAVA_FONTS=/usr/share/fonts/TTF

修复乱码 (For JRE8):

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

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

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

0x02 导入系统证书

参考:

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

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

1
2
3
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

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

1
yay -S bluez bluez-utils pulseaudio-bluetooth blueman

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

1
2
load-module module-bluetooth-policy
load-module module-bluetooth-discover

启动蓝牙服务:

1
systemctl start bluetooth.service

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

1
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时的字体显示问题.

1
WINE_CMD="wine"

其二:

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

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

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

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

其三:

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

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

替换

1
~/Documents/Tencent Files/All Users/TIM

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

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

先注释三行

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

再添加两行,完美解决

1
2
export LD_LIBRARY_PATH=/usr/lib
export XDG_CURRENT_DESKTOP=DDE
Thank you very much if you can.

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