最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
networkmanager-dmenu:实践指南
时间:2026-09-11 08:26:02 编辑:袖梨 来源:一聚教程网
团队讨论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以生成配置文件。
要求
- Python 3.7+
- NetworkManager
- Dmenu (X)、Rofi(X 或 XWayland)、Wofi (Wayland)、Yofi (Wayland) 或 Bemenu(X 或 Wayland)
- Python gobject(PyGObject、python-gobject 等)
- (基于 Debian/Ubuntu 的发行版)libnm0(旧发行版上的 libnm-util-dev) 和 gir1.2-nm-1.0 (您必须在 Debian Sid 上显式安装后者)
- (可选)network-manager-applet 或 nm-connection-editor 软件包, 取决于发行版(为了启动 GUI 连接编辑器,如果 想要的。小程序_不需要_启动。)
- (可选)松树。确保设置要使用的 pinentry 命令的风格 在配置文件中。
- (可选)ModemManager 用于 WWAN 支持。
- (可选)用于通知的通知发送(libnotify)(已连接, 断开连接等)
- (可选)用于蓝牙控制的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 运行脚本
- 设置[PolicyKit权限][5]。该脚本可用于连接到 pre-existing connections without setting these, but you won't be able to enable/disable networking or add new connections.
- 对于蓝牙控制,有两种选择:
-
如果bluez已安装并且蓝牙服务正在运行,则无需进一步 action is needed.
-
如果没有,用户需要有权访问
/dev/rfkill。在一些发行版上 (e.g. Archlinux),/dev/rfkillbelongs to a group such asrfkill. In this case, ensure $USER belongs to that group. For other distros (e.g. Fedora), you can use udev to ensure/dev/rfkillbelongs 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
wheelgroup.
-
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 --userservice.
- 分配给键盘快捷键:
相关文章
- Coldfire:实践指南 09-11
- 无畏契约源能行动是瓦吗-主要信息和内容重点 09-11
- layering-cache:实践指南 09-11
- simplefs:实践指南 09-11
- 无畏契约手游安卓手机版有夜市吗-主要信息和内容重点 09-11
- tp路由器app可以远程吗(tp路由器app有远程功能吗) 09-11