dmenu中带参数地启动应用程序

  • Post author:
  • Post published:2022年 9月 13日
  • Post last modified:2022年 12月 20日
  • Reading time:1 mins read

问题提出

在我现在用的Arch Linux系统中,我安装好的Edge浏览器无法直接使用系统代理,就是我在打开代理软件以后,浏览器依然处于未配置好代理的状态,一些想要浏览的网站还是打不开。

问题解决

使用microsoft-edge-stable --help可以查看Edge浏览器的选项,其中有个选项是proxy-server,我们可以给它提供这个选项后再打开浏览器,这个时候就可以正常使用代理了。但是这种处理办法存在一个明显的短板,就是要输入的东西太多了,而且变得很不方便。

我为dmenu配置的快捷键是Win+r,以前我想启动Edge服务器时,只需要按下这个快捷键,然后在打开的小框框里面输入edge后按TAB键进行补全,最后按下回车就可以打开Edge浏览器了。

现在我需要完成的操作是,按下Win+Enter打开终端,然后键入microsoft-edge-stable --proxy-server=http://127.0.0.1:8889,最后再按下回车打开浏览器。比较难受的是,这个用来打开浏览器的终端还不能关闭,一旦这个终端窗口被关闭了,浏览器也会跟着退出,所以得始终把这个终端窗口摆在某个地方。

我参考了一下网上大佬们提供的若干种解决方案,选择了一种最省事但是相对没有那么优雅的解决方案,那就是我自己新建一个脚本,把上面那串长代码放进去,最后让dmenu把我新建的脚本识别为应用程序就可以了。

具体步骤如下:

  1. 新建脚本,建议取一个比较容易记住的名字,比如我用的名字是edge_with_proxy
  2. 在脚本中填充进自己想要加上的参数:
    microsoft-edge-stable --proxy-server=http://127.0.0.1:8889  # change to your own proxy
  3. 保存脚本并为其添加可执行权限:
    chmod +x edge_with_proxy  # change to your own file name
  4. 查看自己电脑上面的路径(PATH)
    echo $PATH
  5. 将编辑好的脚本放到某个你看得顺眼的PATH当中
    sudo mv edge_with_proxy /usr/bin  # make sure you have the permission

完成这些操作以后,当我们使用快捷键打开dmenu时,我们会发现edge_with_proxy会作为一个程序名出现在待选区,然后选择运行这个程序就可以打开使用代理的Edge浏览器了。