您的位置:首页 > 手游攻略 > networkmanager-dmenu:实践指南

networkmanager-dmenu:实践指南

作者:互联网  时间: 2026-09-11 09:00:01  

团队讨论networkmanager-dmenu时,我会先把用途说清楚:通过dmenu控制NetworkManager。团队若要把它用于日常自动化,应先处理输入边界、依赖和失败处理如果不清楚就很难稳定复用,否则试用结果很容易失真。与其反复读介绍,不如用一项范围明确的真实任务完成最小试跑,再依据配置时间、输出质量、异常信息和维护痕迹做取舍。对愿意先做小范围验证并复查原始文档的团队来说,这个仓库值得继续验证;只求即装即用的人则要先看维护成本。

网络管理器-dmenu

使用支持的启动器而不是 nm-applet 管理 NetworkManager 连接。

  • [贝菜单][2]
  • [D菜单][16]
  • [模糊][8]
  • [罗菲][1]
  • [托菲][14]
  • [沃克][11]
  • [W菜单][15]
  • [沃菲][7]
  • [尤菲][17]

特点

  • 连接到现有的 NetworkManager WiFi 或有线连接
  • 连接到新的 WiFi 连接。如果需要,请求密码
  • 连接到_现有_ 、Wireguard、GSM/WWAN 和蓝牙连接
  • Enable/Disable WiFi、WWAN、蓝牙和网络
  • 启动 nm-connection-editor GUI
  • 支持多个 WiFi 适配器
  • 可选 Pinentry 支持安全密码输入
  • 删除现有连接
  • 重新扫描 WiFi 网络
  • 如果可用,使用通知发送来发送通知
  • Start/stop/delete 现有 NetworkManager 热点
  • 显示当前 WiFi 网络的 password/QR 代码

安装

  • 将脚本复制到 $PATH 中

  • Archlinux:[Arch 软件包][3]

  • Gentoo:[Woomy Overlay][4]

  • Nix:[Nix 包][9]

  • 在终端中运行 ./networkmanager_dmenu 以生成配置文件。

要求

  1. Python 3.7+
  2. NetworkManager
  3. Dmenu (X)、Rofi(X 或 XWayland)、Wofi (Wayland)、Yofi (Wayland) 或 Bemenu(X 或 Wayland)
  4. Python gobject(PyGObject、python-gobject 等)
  5. (基于 Debian/Ubuntu 的发行版)libnm0(旧发行版上的 libnm-util-dev) 和 gir1.2-nm-1.0 (您必须在 Debian Sid 上显式安装后者)
  6. (可选)network-manager-applet 或 nm-connection-editor 软件包, 取决于发行版(为了启动 GUI 连接编辑器,如果 想要的。小程序_不需要_启动。)
  7. (可选)松树。确保设置要使用的 pinentry 命令的风格 在配置文件中。
  8. (可选)ModemManager 用于 WWAN 支持。
  9. (可选)用于通知的通知发送(libnotify)(已连接, 断开连接等)
  10. (可选)用于蓝牙控制的bluez包

配置

初始设置

  • 在终端中运行 ./networkmanager_dmenu 以生成配置文件。 检查已安装的启动器和终端并提示选择。的 生成的配置文件将创建于: ~/.config/networkmanager-dmenu/config.ini

自定义配置

  • 要进一步自定义行为,请编辑生成的配置文件
  • 您也可以手动将 config.ini.example 复制到 ~/.config/networkmanager-dmenu/config.ini 直接编辑
  • 或者,使用以下命令指定自定义配置文件位置:
    • 命令行:--config /path/to/config.ini
    • 环境变量:NM_DMENU_CONFIG=/path/to/config.ini networkmanager_dmenu
    • 命令行标志优先于环境变量
  • 所有主题都是通过相应的菜单程序完成的。设置 dmenu_command 具有所需的选项,包括 -i 等不区分大小写的选项。 有关示例,请参见 config.ini.example。
    • 注意:如果在配置中使用文字 %,则必须将其输入为 %%。 See config.ini.example.
  • 如果使用 dmenu 进行密码输入(未设置 pinentry),则 dmenu 选项 config.ini 的 [dmenu_passphrase] 部分将设置正常前景和 背景颜色应相同以掩盖密码。 [无赖 密码补丁][6] 如果安装了该补丁,则支持 -P 选项。罗菲, Wofi 和 Bemenu 将使用各自的标志来输入密码。
  • 在config.ini中设置默认终端(xterm、urxvtc等)命令。
  • 配置show_pass在终端中运行nmcli dev wifi show-password。 这可能需要一些实验才能确定什么适合您 终端。
  • 如果需要,可以列出已保存的连接。设置list_saved = True[dmenu] 中的 config.ini。如果设置为 False,则保存的连接仍然存在 可在“已保存的连接”子菜单下访问。
  • 如果需要,请将 networkmanager_dmenu.desktop 复制到 /usr/share/applications 或~/.local/share/applications。
  • 如果您想以 $USER 而不是 ROOT 运行脚本
    1. 设置[PolicyKit权限][5]。该脚本可用于连接到 pre-existing connections without setting these, but you won't be able to enable/disable networking or add new connections.
  • 对于蓝牙控制,有两种选择:
    1. 如果bluez已安装并且蓝牙服务正在运行,则无需进一步 action is needed.

    2. 如果没有,用户需要有权访问 /dev/rfkill。在一些发行版上 (e.g. Archlinux), /dev/rfkill belongs to a group such as rfkill. In this case, ensure $USER belongs to that group. For other distros (e.g. Fedora), you can use udev to ensure /dev/rfkill belongs to a group. For example, create /etc/udev/rules.d/10-rfkill.rules:

          KERNEL=="rfkill", GROUP="wheel", MODE="0664"
      

      and then ensure $USER belongs to the wheel group.

Config.ini 值

部分 钥匙 默认 注释
[dmenu] compact False
dmenu_command dmenu 命令可以包含参数
list_saved False
pinentry
active_chars == 活动连接的前缀
highlight True 仅适用于rofi/wofi
highlight_fg 仅适用于wofi
highlight_bg 仅适用于wofi
highlight_bold True 仅适用于wofi
prompt 网络
wifi_chars 4 个 unicode 字符的字符串
wifi_icons 图标字符的字符串
format (取决于compact Python 风格的格式字符串
[pinentry] description Get network password
prompt Password:
[dmenu_passphrase] obscure False
obscure_color #222222 仅适用于 dmenu
show_pass 参见 config.ini. 示例 CLI 运行 nmcli d wifi show-password
[editor] gui_if_available True
gui nm-connection-editor
terminal xterm 可以包含终端参数
[nmdm] rescan_delay 5 调整重新扫描后重新打开 nmdm 的延迟

用途

networkmanager_dmenu [-h] [--config CONFIG_PATH] <menu args>

  • 运行脚本或绑定到按键组合
  • 如果需要,可以在命令行上传递菜单选项,而不是在 除了配置文件。这些将覆盖配置文件中的选项。
  • Networkmanager_dmenu 无法创建热点,但可以管理现有热点。至 创建一个新的 NetworkManager 热点并显示 QR 代码和密码:
nmcli device wifi hotspot ifname wlp0s20f3 ssid testing password pass123456 band a
nmcli connection up hotspot (or use networkmanager_dmenu to enable)
nmcli device wifi show-password

这可能不适用于您的设置。 如果直接的话 [Linux-wifi-hotspot][10] 是一个选项 NetworkManager WiFi 共享对您不起作用。 不幸的是,这些 热点无法使用 networkmanager_dmenu 进行管理。

  • NOTE 在[UWSM][12]下运行需要一些[额外配置][13]。
    • 分配给键盘快捷键:uwsm app -- networkmanager_dmenu
    • 例如,如果通过单击 Waybar 图标启动,则 Waybar 必须是 version that works with UWSM and be started as a systemd --user service.

最新游戏

更多

Copyright©2010-2019. All rights reserved | 波波三国游戏官网|[email protected]

备案编号:湘ICP备2022015115号-4