我曾经在Windows 8上按❖win + 空格键切换键盘布局,⌘ + 空格键在OS X上。
然而,在Linux上,我将❖win密钥作为修饰符密钥专用于XMonad。因此,要在布局之间切换,我必须使用 alt + ⇧shift。
在我安装Emacs之前,这不是问题。现在我可以使用所有 meta + shift 组合键,因为我有 alt 为 meta (⎋逃避可以提供帮助,但这非常不方便)。
我认为这种情况最简单的解决方法是将❖win + space 配置为布局切换组合。虽然XMonad默认使用这种组合来切换布局,但我很少在两个方向上循环布局,所以我很乐意用❖win + space 来切换键盘布局,并且< kbd>❖win + shift + space 来切换XMonad布局。如果我可以进行这样的配置,我将能够在Emacs中使用 alt 键作为 meta 。
但是,我不知道如何让XMonad使用❖win + space 作为键盘开关组合,更加精准我不知道它是否均匀可能的。
答案 0 :(得分:1)
您所要做的就是解除绑定Win-Space
(使用removeKeys
),并为xmonad-layout切换和键盘布局切换创建绑定(使用additionalKeys
或{{1 }})。
Details and examples in the documentation。
可以使用Core库中的additionalKeysP
启动键盘布局切换命令。
答案 1 :(得分:1)
我能够通过 cycle-keyboard-layout 保存在路径上的shell(zsh)脚本来完成此任务:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict = [NSMutableDictionary
dictionaryWithObjectsAndKeys:_usernametf.text, @"username",_passwordtf.text, @"password", nil];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
[manager POST:@"enter your url" parameters:dict progress:nil success:^(NSURLSessionTask *task, id responseObject) {
NSLog(@"%@", responseObject);
}
failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
然后,在我的 xmonad.hs 中,我包括:
#!/usr/bin/env zsh
total_layouts="${#@}"
current_layout=$(setxkbmap -query | awk '/layout:/{ print $2 }')
current_index="${@[(i)$current_layout]}"
next_index="$((current_index % total_layouts + 1))"
next_layout="${@[$next_index]}"
setxkbmap "$next_layout"
现在⌘ + alt + 空格键(我使用⌘ + 空格键换其他东西)在dvorak和我们之间切换我的布局qwerty。要使用其他布局,只需将import XMonad.Util.CustomKeys (customKeys)
altMask = mod1Mask
main =
xmonad $ defaultConfig
{ keys = customKeys delkeys inskeys
, modMask = mod4Mask
}
inskeys :: XConfig l -> [((KeyMask, KeySym), X ())]
inskeys conf@XConfig {modMask = modMask} =
[ -- modMask + alt + space
, ((modMask .|. altMask, xK_space),
spawn "cycle-keyboard-layout dvorak us")
]
delkeys :: XConfig l -> [(KeyMask, KeySym)]
delkeys XConfig {} = []
替换为可以使用dvorak us
设置的空格分隔布局列表。
我的完全裸骨 xmonad.hs 位于https://github.com/schlueter/xmonad-config/blob/master/xmonad.hs。