备忘录

记录一些没那么重要的东西

neofetch

乱七八糟的东西,随便记一点,可能没什么条理。


Manjaro

基本就是正常安装,桌面选择的是KDE(或者用社区打包的开箱即用的i3),文件系统目前选择的是XFS

字体

安装字体nerd-font,完整版的比较大,差不多2G大小 中文字体首选应该是思源字体,只选中文adobe-source-han-sans-cn-fonts即可,或者可以安装cjk全集,包含繁中、简中、日韩字体,略大一点,或者安装Google的noto-fonts-cjk,其实这两个应该是一个东西不同贴牌,毕竟共同开发。

安装emoji字体,安装了nerd字体包之后,应该unicode对应的图都能显示出来了,不过显示在终端上是只是单纯的图标字符,在github上看到的很多使用item2的基本都是显示彩色的emoji,在windows下使用windows terminal的时候,也是预设好的,会显示平时聊天中的那种emoji。konsole就不行了,需要动手配置下~/.config/fontconfig/fonts.conf,首先安装下emoji字体ttf-joypixels或者noto-font-emoji,然后更改下配置文件,在对应位置修改添加:

<match target="pattern">
<test qual="any" name="family"><string>monospace</string></test>
<edit name="family" mode="assign" binding="same"><string>Iosevka Custom</string></edit>
<edit name="family" mode="append" binding="weak"><string>Symbols Nerd Font</string></edit>
<edit name="family" mode="append" binding="weak"><string>JoyPixels</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" mode="assign" binding="same"><string>Belgrano</string></edit>
<edit name="family" mode="append" binding="weak"><string>Symbols Nerd Font</string></edit>
<edit name="family" mode="append" binding="weak"><string>JoyPixels</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>sans-serif</string></test>
<edit name="family" mode="assign" binding="same"><string>Convergence</string></edit>
<edit name="family" mode="append" binding="weak"><string>Symbols Nerd Font</string></edit>
<edit name="family" mode="append" binding="weak"><string>JoyPixels</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>JoyPixels</string></edit>
</match>

注:

  • 这个font.conf会影响所有的GTK和QT软件
  • KDE Plasma桌面emoji选择面板的快捷 mete+. (mete一般是windows键)

kwin

安装完manjaro其实可以开箱即用了,虽然KDE桌面视觉效果上还可以,但是用起来还是不够方便,不过可以添加kwin脚本来实现很多功能:

  • maxmize-to-new-desktop :全屏应用自动扩展到新虚拟桌面,比较像osx的最大化
  • Parachute :遍历虚拟桌面并且可以拖动应用和搜索,效果和win10的虚拟桌面遍历界面类似。
  • Quarter Tiling :用来做窗口平铺,这个是功能最简单,因为够用我就没有选其他功能更复杂的kwin脚本了。

Dock

这个在latte dock出来之后应该就是最好的选择了,基本没有做额外设置。

显卡问题

manjaro自带了mhwdbumblebee,能用是能用,不过性能不够好,所以改用比较流行的optimus-manager,具体注意事项看对应的github仓库就可以了,还可以添加一个状态栏小工具optimus-manager-qt

总而言之,双显卡尤其是核显加N卡,在linux下属实是恶心人。

网络问题

proxy

目前使用的方案core是v2ray,GUI客户端可选的有不少,比如qt写的qv2ray。当前使用的是v2rayA,是一个Web GUI客户端,还提供了全局透明代理的功能。

除了使用透明代理,还可以使用proxychain来代理软件,对应的包应该是proxychains-ng,proxychain原理是hook了底层libc.so提供的网络函数,所以对一些使用静态链接的程序或者不使用libc的程序是不起作用的(比如golang程序),详情见PROXYCHAINS-NG 原理解析

当然除了proxychains也还有别的重定向TCP连接到SOCKS5或者HTTP代理的工具,比如graftcp这种使用ptrace来实现的,放一段官方介绍:

对比 tsocksproxychainsproxychains-nggraftcp 并不使用 LD_PRELOAD 技巧来劫持共享库的 connect()、getaddrinfo() 等系列函数达到重定向目的,这种方法只对使用动态链接编译的程序有效,对于静态链接编译出来的程序,例如默认选项编译的 Go 程序proxychains-ng 就无效了graftcp 使用 ptrace(2) 系统调用跟踪或修改任意指定程序的 connect 信息,对任何程序都有效。

在terminal中使用的时候,为了方便,就把各种协议的proxy都设置了一遍,放在.zhsrc文件中了:

# [proxy]
PROXY_ENV=('http_proxy' 'ftp_proxy' 'https_proxy' 'rsync_proxy' 'all_proxy' 'HTTP_PROXY' 'HTTPS_PROXY' 'FTP_PROXY' 'RSYNC_PROXY' 'ALL_PROXY')
function assign_proxy() {
    for envar ($PROXY_ENV) {
        export $envar=$1
    }
    for envar ('no_proxy' 'NO_PROXY') {
        export $envar=$2
    }
}

function proxy_on() {
    proxy_value="socks5://127.0.0.1:20170"
    no_proxy_value="localhost,127.0.0.1,LocalAddress,LocalDomain.com"
    assign_proxy $proxy_value $no_proxy_value
    echo "Proxy environment variable set."
}

function proxy_off(){
    for envar ($PROXY_ENV){
        unset $envar
    }
    echo -e "Proxy environment variable removed."
}

这样需要的时候直接执行下proxy_on,然后就可以愉快玩耍了

Hosts

现在的宽带是移动的,反正网络很是膈应人,当然对我而言主要是github的体验很差,换了几个dns服务也不太行,估计上游就已经污染了,而直接使用国外的dns服务体验不是很理想,可能最好的还是配合dnscrypt-proxy这样的工具使用,只是国内DoH体验差一截罢了。 当然我现在的需求没有那么复杂,还是直接给github相关ip写到hosts里去, 从一些在线查询网站获取一下对应ip,比如[IPAddress](https://www.ipaddress.com) ,下面列一下github大概会用到的域名:

# Github Hosts
# Update 20210312
140.82.112.3 github.com
140.82.112.10 nodeload.github.com
140.82.114.6 api.github.com
13.229.189.0 codeload.github.com
185.199.110.133 raw.github.com
185.199.110.153 training.github.com
185.199.110.153 assets-cdn.github.com
185.199.110.153 documentcloud.github.com
185.199.110.154 help.github.com

185.199.110.153 githubstatus.com
199.232.69.194 github.global.ssl.fastly.net

185.199.110.133 raw.githubusercontent.com
185.199.110.133 cloud.githubusercontent.com
185.199.110.133 gist.githubusercontent.com
185.199.110.133 marketplace-screenshots.githubusercontent.com
185.199.110.133 repository-images.githubusercontent.com
185.199.110.133 user-images.githubusercontent.com
185.199.110.133 desktop.githubusercontent.com

185.199.110.133 avatars.githubusercontent.com
185.199.110.133 avatars0.githubusercontent.com
185.199.110.133 avatars1.githubusercontent.com
185.199.110.133 avatars2.githubusercontent.com
185.199.110.133 avatars3.githubusercontent.com
185.199.110.133 avatars4.githubusercontent.com
185.199.110.133 avatars5.githubusercontent.com
185.199.110.133 avatars6.githubusercontent.com
185.199.110.133 avatars7.githubusercontent.com
185.199.110.133 avatars8.githubusercontent.com
# End of the section

添加到/etc/hosts文件保存之后,直连github基本没问题,毕竟目前只是污染而已。 配合浏览器里面的SwitchyOmega拓展,github页面有显示资源未加载的时候,修改一下hosts文件应该就可以了。