gpt4 book ai didi

linux - XMonad:dmenu 不在启动时启动/生成

转载 作者:IT王子 更新时间:2023-10-29 00:58:08 27 4
gpt4 key购买 nike

XMonad 的新手并且到目前为止很喜欢它。我有一个相当普通/常规的 XMonad 设置,并且在使用 dmenu 时遇到问题。当我登录并点击 mod+p 时,没有任何反应。如果我随后打开一个终端并点击 xmonad --restart 然后 mod+pdmenu 将会工作。

一定是我的xmonad.hs有问题吧?我尝试了 XMonad 的非自定义设置并且一切正常(即 dmenu 在登录后工作)。

我的问题:

  1. 我的 xmonad.hs 有问题吗?
  2. 为什么 dmenu 不工作,除非我 xmonad --restart
  3. xmonad.start 中会不会有什么东西失败了,这会阻止 dmenu 在启动 xmonad 时正确加载?

这是我的文件(从 overthink 借来的)。 :

xmonad.hs

import System.IO
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.SetWMName
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Util.Run(spawnPipe)
import XMonad.Hooks.ICCCMFocus

myWorkspaces = ["1", "2", "3", "4", "5", "6"]

myManageHook = composeAll
[ className =? "Gimp" --> doFloat
, className =? "Vncviewer" --> doFloat
]

main = do
xmproc <- spawnPipe "/usr/bin/xmobar /home/aaron/.xmobarrc"
xmonad $ defaultConfig { terminal = "urxvt" }
{ manageHook = manageDocks <+> manageHook defaultConfig
, startupHook = takeTopFocus >> setWMName "LG3D" -- fix for Java apps
, layoutHook = avoidStruts $ layoutHook defaultConfig
, logHook = dynamicLogWithPP xmobarPP
{ ppOutput = hPutStrLn xmproc
, ppTitle = xmobarColor "green" "" . shorten 50
}
, modMask = mod4Mask -- Rebind Mod to the Windows key
, workspaces = myWorkspaces
} `additionalKeys`
[ ((mod4Mask .|. shiftMask, xK_l), spawn "gnome-screensaver-command --lock") ]

xmonad.desktop

[Desktop Entry]
Encoding=UTF-8
Name=Xmonad-****
Comment=Ligthweight, pretentious tiling window manager
Exec=xmonad.start
Icon=xmonad.png
Type=XSession

xmonad.start

#!/bin/bash

xrdb -merge .Xresources

trayer --edge top --align right --SetDockType true --SetPartialStrut true --expand true --widthtype percent --width 10 --heighttype pixel --height 20 --transparent true --alpha 0 --tint 0x333333 &

# settings daemon is a prereq for some other gnome apps
gnome-settings-daemon &

# Network monitor (connections, vpns) applet in tray
if [ -x /usr/bin/nm-applet ] ; then
nm-applet --sm-disable &
fi

# volume indicator in tray
if [ -x /usr/bin/gnome-sound-applet ] ; then
gnome-sound-applet &
fi

eval $(gnome-keyring-daemon --start)
export GNOME_KEYRING_SOCKET
export GNOME_KEYRING_PID

#exec xmonad
dbus-launch --exit-with-session xmonad

感谢您的帮助!

最佳答案

我有一种模糊的感觉,当你第一次启动 xmonad 时,它使用一个可执行文件+配置,然后当你重新编译时,它找到了“正确的”那个。在 xmonad.desktop 中,尝试更改 Exec= 行以包含 xmonad.start 的完整路径。

Exec=/full/path/to/xmonad.start

或者您可以尝试更改 xmonad.start 中的最后一行以包含您的 xmonad 可执行文件的完整路径。

dbus-launch --exit-with-session /full/path/to/xmonad

另一件事是将最后两行更改为:

exec xmonad
#dbus-launch --exit-with-session xmonad

如果这些选项中的任何一个改变了您所看到的行为,这可能会给我们提供线索。


编辑:让我们尝试用不同的方式启动它,看看我们是否可以学到任何东西。不要启动任何窗口管理器,而是登录到普通终端。键入命令 xinit -- xmonadxinit --/full/path/to/xmonad

或者,创建文件 .xinitrc,其中一行:

xmonad

然后输入命令startx

我还在 Xmonad FAQ 上找到了这个,这可能有帮助:

2.6 not found errors or changes to xmonad.hs won't take effect

Ensure that ghc, and the xmonad executable are both in the environment PATH from which you start X. Alternatively symlink them to locations already in the PATH. ghc-pkg list should show ghc, xmonad, X11, etc. without brackets, e.g. {xmonad} is bad. ghc-pkg check will tell you if you have inconsistent dependencies or other registration problems.

The mod-q action calls the xmonad binary to recompile itself, so if your display manager is starting it with /path/to/xmonad you'll also have to edit your xmonad.hs mod-q binding to use the full path and restart X (or in newer versions use 'xmonad --restart') to restart xmonad with the new mod-q full path binding.

关于linux - XMonad:dmenu 不在启动时启动/生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13965699/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com