xmonad - 在 xmonad 中,有些键绑定有效,有些则无效?
问题描述
我正在尝试 Xmonad 并正在构建一个配置文件。但是我对键绑定有疑问。我的一些键绑定正在工作,而有些则没有。这对我来说毫无意义。它编译得很好,没有错误。对我来说,要么全部工作,要么都不工作。为什么只是一些?
例如,我可以启动终端、锁定屏幕、启动文件管理器,但我无法启动 firefox 或 vscode。下一节也一样。我可以启动 rofi 启动器、rofi 窗口查找器,但 dmenu 和 rofi 退出菜单在我的配置中无法使用:
terminalCmd = "alacritty"
browserCmd = "firefox"
editorCmd = "code"
fileManagerCmd = "nautilus --new-window"
dmenuCmd = "dmenu_run"
rofiCmd = "rofi -show drun -theme clean"
rofiWinCmd = "rofi -show window -theme clean_window"
rofiExitCmd = "~/.config/rofi/launch.sh powermenu"
screenLockCmd = "slock"
myFocusFollowsMouse = True
myKeybindings conf@XConfig {modMask = modMask} = M.fromList $
--Launch programs
[ ((modMask, xK_Return), spawn terminalCmd) --Launch terminal
, ((modMask, xK_w), spawn browserCmd) --Launch browser
, ((modMask, xK_e), spawn editorCmd) --Launch editor
, ((modMask, xK_a), spawn fileManagerCmd) --Launch file manager
, ((modMask, xK_l), spawn screenLockCmd) --Lock the screen
--Launchers and menus
, ((modMask, xK_r), spawn dmenuCmd) --Launch dmenu launcher
, ((modMask, xK_p), spawn rofiCmd) --Launch rofi launcher
, ((modMask .|. shiftMask, xK_p), spawn rofiWinCmd) --Launch rofi window finder
, ((modMask .|. shiftMask, xK_e), spawn rofiExitCmd) --Launch rofi exit menu
main = xmonad $ def
{ modMask = mod4Mask
, focusFollowsMouse = myFocusFollowsMouse
, borderWidth = 1
, terminal = terminalCmd
, normalBorderColor = "#cccccc"
, focusedBorderColor = "#cd8b00"
, workspaces = myWorkspaces
, keys = myKeybindings
, startupHook = myStartupHook }
解决方案
这是我将如何调试问题。
尝试在终端中输入原始命令。如果这不起作用,您知道问题不在于您的 XMonad 配置或 XMonad,而在于命令本身。
如果该命令在终端中有效,请尝试将其绑定到 XMonad 中的其他键。如果可行,那么问题出在键绑定上。启动
xev
,按您要使用的键,然后仔细检查触发事件的名称。当您使用 XMonad 启动它们时,获取当前正在运行的命令之一,并尝试将其绑定到您遇到问题的键之一。
如果它有效,那么您的原始命令有问题。如果第 1 步有效,那么问题可能与直接在 XWindows 而不是终端中启动命令有关。
如果它不起作用,则更多的是确认您没有使用正确的键绑定。
此外,要排除PATH
XMonad 看到的环境变量值与终端看到的值之间的任何差异,请尝试在配置中提供命令的完整路径。
推荐阅读
- css - 旋转的文本未对齐
- flutter - 在 Flutter 中加载本地 Javascript 文件
- kubernetes - 无法从 kubectl get pod pod_name -o yaml 生成的 yaml 更新 Kubernetes pod
- configuration - 使用 Hyperledger Caliper 创建基准测试的困难
- python - 获取python中已安装程序的路径
- python - 使用外部浏览器身份验证器的雪花 Python 连接
- html - 如何将国家代码列表及其标志添加到 html 代码
- r - 使用带有管道运算符的 filter() 函数来查找均值和舍入
- azure-devops - 在 AzureDevops Release Pipelines 中将多个值作为参数传递
- reactjs - 微软会放弃 Office 插件吗?