我修改了我的 XMonad 配置以添加额外的工作区,每个工作区对应一个键盘键,但我已经用完了可以从主排手指休息位置轻松够到的键。我可以拥有多组工作区吗?
对于示例用例,假设工作区组的状态机语义,我可能会Mod-G-1先输入Group 1,然后再Mod-1输入(Group 1).(Workspace 1)。稍后,我可能会 do Mod-G-2to enter Group 2,然后 do Mod-1to enter (Group 2).(Workspace 1)。
我猜自己编写代码不会太难,但如果有可用的解决方案,我宁愿使用现有的解决方案。
是的,我确实需要所有这些工作区。
我使用 left Alt 作为我的主要 modkey,但对于某些应用程序,我想使用 Alt+keys 作为我的绑定,对于那个特定的应用程序,我希望 left winkey 作为我的 modkey。
似乎 logHook 是插入此逻辑的正确位置,但我无法理解如何去做。
大大简化,我的配置看起来像
import qualified XMonad.StackSet as W
import XMonad
import XMonad.Hooks.DynamicLog
main = do
-- some stuff
xmonad $ defaultConfig {
modMask = mod1Mask -- left winkey = mod4Mask, left alt = mod1Mask
, logHook = do
dynamicLogWithPP pp
}
Run Code Online (Sandbox Code Playgroud)
在哪里
pp = dzenPP {
-- more stuff
}
Run Code Online (Sandbox Code Playgroud)
我可以在我的 logHook 中获取当前窗口的名称
winset <- gets windowset
let wname = fmap getName (W.peek winset) -- here I have …Run Code Online (Sandbox Code Playgroud) 我正在使用 XMonad 0.11,但这可能无关。我使用的是evolution3.12.2,这是相关的,但问题可能更普遍。经过研究,似乎有问题的窗口pinentry来自GPG2。
一些密码对话框阻止我使用我的键绑定。通常这是由evolution.
发生以下情况:
META-SHIFT-1)移动窗口,但META-MOUSE1移动的组合有效。ESCAPE被忽略但RETURN有效。从剪贴板插入也不起作用(尽管这可能是有意用于密码字段)。META-SHIFT-1移动窗口,密码字段中会出现 *,很可能掩盖了 1)。我想解决这个问题,因为当密码窗口意外弹出时,这很烦人。
我正在寻找一种方法来使同时按下的按键触发另一个按键W,例如同时按下按键, E, F,以触发另一个按键,例如Ctrl+ Alt+ Esc。
我的最终目标(如果它的确与众不同)是使一个vim样XMonad配置:那就是,我想用同时按键和弦W/ E/ F“逃离”到“正常模式”(一XMonad.Actions.Submap (子图))。
到目前为止,我已经尝试过,xbindkeys但还没有弄清楚如何指定那种类型的键和弦。
我正在尝试设置 XMonad,以便多个窗口之间存在间隙。我的配置文件的相关部分如下
import XMonad.Layout.Spacing
Run Code Online (Sandbox Code Playgroud)
随后是
myLayout = tiled ||| Mirror tiled ||| Full
where
tiled = spacing 5 $ Tall nmaster delta ratio
nmaster = 1
ratio = 1/2
delta = 3/100
Run Code Online (Sandbox Code Playgroud)
问题是当一个窗口占据整个屏幕时,边框上会出现间隙。有没有办法调整我的配置,以便在只有一个窗口时不会出现这些间隙?
我经常发现自己按下Mod-Tab然后Mod-Enter将焦点切换到堆栈中的下一个窗口并将其移动到主窗口。
是否有可能有一个键盘快捷键可以通过一次击键而不是两次击键来完成此操作?否则,我需要在 my 中放置什么xmonad.hs来创建这样的快捷方式?
我是 DE 的长期用户,但是在某些情况下,我更喜欢使用不同的基于平铺的 WM 而不是 GNOME 或 KDE(我在去年左右主要使用 GNOME)。
我已经安装了 Fedora 22 工作站,并安装了 GNOME。在我的两台机器上的大部分时间里,我都运行 GNOME。但是,有时我更喜欢运行 XMonad(对我来说,这实际上并不重要 - i3wm、xmonad、spectrwm - 对于所有这 3 个我都有可以使用的不错配置)。
在 XMonad(例如任何非 DE)上,我希望在会话开始时运行一些脚本和程序。是否有任何标准方法可以在不更改 /etc/X11/sessions 脚本的情况下运行它们?
例如,为 GDM 或标准自动启动文件或任何东西提供用户定义的会话。我曾经通过 ~/.Xsession 或 ~/.xinitrc 运行所有这些,但 GDM 不执行这些。
我刚刚在我的笔记本电脑上使用 Debian jessie 安装了 xmonad,到目前为止我很喜欢它...我之前使用过默认的 gnome-shell 桌面(/window?) -manager,并且仍然希望在我使用时保持它 100% 完好无损我正在学习如何使用 xmonad。
许多 xmonad 教程都讨论修改 .xsessionrc 文件以添加壁纸等http://beginners-guide-to-xmonad.readthedocs.io/wallpaper.html。但是,我猜测弄乱 .xsessionrc 文件也会影响 gnome-shell ...
是否可以以某种方式拥有多个 .xsessionrc 文件,这样我就可以拥有一个用于 xmonad 的文件和一个用于 gnome-shell 的文件?或者 是否有更好的解决方案来解决此问题?
我希望保持 gnome-shell 会话不变,并且我还希望保留用于登录的默认显示管理器。
当我使用 i3 或 Gnome 时,每个显示器都有一个工作区/桌面,但在 XMonad 下,我的笔记本电脑屏幕和外接显示器连接为一个大屏幕(如图所示xdpyinfo)
如何配置 X 使用两个屏幕而不是一个?
xmonad ×10
x11 ×4
evolution ×1
fedora ×1
gnome-shell ×1
gpg ×1
haskell ×1
key-mapping ×1
linux ×1