由于没有使用集成的桌面环境, 因而chrome没法读取全局代理的信息, 每次更新AUR chrome后都需要手动修改对应的桌面文件… 这里小小mark一下解决办法, 并给出 ALPM 钩子代码
命令行配置代理
Rofi命令行启动的应该是桌面程序(?), 在这个地方:/usr/share/applications/google-chrome.desktop
其中有三个入口:
Text
1[Desktop Entry]
2...
3Exec=/usr/bin/google-chrome-stable --proxy-server="127.0.0.1:7890" %U
4...
5
6[Desktop Action new-window]
7...
8Exec=/usr/bin/google-chrome-stable --proxy-server="127.0.0.1:7890"
9
10[Desktop Action new-private-window]
11...
12Exec=/usr/bin/google-chrome-stable --incognito --proxy-server="127.0.0.1:7890"
不使用无痕的话应该不需要改第三个, 但是前两个好像是有必要的(大概确切来说只有某一个是真正在其中起作用的, 但是我懒得测试了), 之前某一次就是只改了一个却没有看到第二个, 导致一直不成功; 此外rofi也需要重启电脑应该, 不重启的话还是不走代理, 重启后即可.
ALPM 自动化钩子
在 /usr/share/libalpm/hooks
创建自动化钩子, 在 chrome 安装/更新后, 执行 sed 进行自动化地添加.
Text
1# /usr/share/libalpm/hooks/chrome-proxy.hook
2[Trigger]
3Type = Package
4Operation = Install
5Operation = Upgrade
6Target = google-chrome
7
8[Action]
9Description = Adding proxy settings to Google Chrome desktop entry
10When = PostTransaction
11Exec = /usr/bin/sed -i 's/^Exec=\/usr\/bin\/google-chrome-stable/Exec=\/usr\/bin\/google-chrome-stable --proxy-server="http:\/\/127.0.0.1:7890"/' /usr/share/applications/google-chrome.desktop
参考:
Gnu Stow 管理配置文件
使用 Stow 可以同步管理这些细琐、零散的配置文件, 目前已更新到对应的 dotfiles 仓库中.