【发布时间】:2011-06-10 09:50:55
【问题描述】:
我无法让此功能按预期工作。
setScreenAndWorkspace i =
windows (viewOnScreen screenId workspaceId)
where
screenId = ((i-1) `mod` numberOfScreens)
-- workspaceId = show i -- doesn't work for some reason
workspaceId =
case i of
1 -> "1"
2 -> "2"
3 -> "3"
4 -> "4"
5 -> "5"
6 -> "6"
7 -> "7"
8 -> "8"
9 -> "9"
我这样调用函数:
myKeys =
[
("M-1" , setScreenAndWorkspace 1),
("M-2" , setScreenAndWorkspace 2),
("M-3" , setScreenAndWorkspace 3),
("M-4" , setScreenAndWorkspace 4),
("M-5" , setScreenAndWorkspace 5),
("M-6" , setScreenAndWorkspace 6),
("M-7" , setScreenAndWorkspace 7),
("M-8" , setScreenAndWorkspace 8),
("M-9" , setScreenAndWorkspace 9)
]
首先,show i 似乎与 case i 的情况不同。我一定是误解了一些基本的 Haskell 东西;如果我使用 show i 似乎 xmonad 找不到任何工作区。
第二个问题是该功能有效,但并不总是转移焦点。我必须按两次按键序列来设置屏幕、设置工作区并将焦点设置在该工作区上。
【问题讨论】:
-
您能否详细说明
show i不起作用的原因? -
关于焦点:来自文档:“如果 i 可见,请使用视图将焦点切换到工作区 i。”。所以首先你让它可见,然后你转移焦点。所以它像宣传的那样工作。
-
我怀疑
show i不起作用。你确定吗? -
我的配置没有什么太激进的地方,如果你不相信我关于 show i 的内容,你自己试试应该很容易。