openbox
Openbox
はLubuntuで採用しているウィンドウマネージャーです。
Lubuntuでは
~/.config/openbox/lubuntu-rc.xml というファイル
1
の中に
キーボードショートカットの設定が入っていて、
このファイルを変更するとこでショートカットキーを設定することが出来ます。
キーボードショートカットの設定
マウスの設定やらデスクトップ環境の設定やら色々出来ますが、
今回はキーボードショートカットの変更を行います。
xmlファイルの中身を見ると
~/.config/openbox/lubuntu-rc.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file, it will be overwritten on install.
Copy the file to $HOME/.config/openbox/ instead. -->
<openbox_config xmlns= "http://openbox.org/3.4/rc" xmlns:xi= "http://www.w3.org/2001/XInclude" >
...
<keybaord>
<keybind key= "C-A-Left" >
<action name= "GoToDesktop" >
<to> left</to>
<warp> no</warp>
</action>
</keybind>
...
</keybaord>
...
</openbox_config>
といった感じで、<keyboard>
のブロック内に<keybind>
というブロックが沢山あります。
これらがそれぞれキーボードショートカットを指定しています。
key
の部分で入力キーを設定します。
モディファイヤーはそれぞれ
S: Shift
C: Control
A: Alt
W: Super key (Windows key)
M: Meta key (Mac Command)
等、一文字でS-
の様に表してキーと合わせて使います。
Help:Bindings - Openbox
<keybind>
ブロックの中には<action>
というブロックを与えます。
この<action>
がopenbox上での動作を指定しますが、
これは複数指定することも出来ます。
Help:Actions - Openbox
Openbox - ArchWiki
デフォルトのlubuntu-rc.xmlや上のヘルプを見ればなんとなく
やりたいことは出来る様になると思います。
設定
こんな感じの設定を加えました。
これを~/.config/openbox/lubuntu-rc.xml の
<keyboard>
ブロック内に書きます。
~/.config/openbox/lubuntu-rc.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<!-- Reconfigure Openbox -->
<keybind key= "C-A-c" >
<action name= "Reconfigure" ></action>
</keybind>
<!-- Restart Openbox -->
<keybind key= "C-A-r" >
<action name= "Restart" ></action>
</keybind>
<!-- Close the window (inaddition to A-F4) -->
<keybind key= "C-4" >
<action name= "Close" />
</keybind>
<!-- Keybindings for window switching (Instead of A-Tab) -->
<!--<keybind key="A-Tab">-->
<keybind key= "C-Tab" >
<action name= "NextWindow" >
<dialog> icons</dialog>
<finalactions>
<action name= "Focus" />
<action name= "Raise" />
<action name= "Unshade" />
</finalactions>
</action>
</keybind>
<!--<keybind key="A-S-Tab">-->
<keybind key= "C-S-Tab" >
<action name= "PreviousWindow" >
<finalactions>
<action name= "Focus" />
<action name= "Raise" />
<action name= "Unshade" />
</finalactions>
</action>
</keybind>
<!-- Resize Window -->
<keybind key= "A-S-h" > # HalfLeftScreen
<action name= "Undecorate" />
<action name= "UnmaximizeFull" />
<action name= "MoveResizeTo" ><x> 0</x><y> 0</y><height> 100%</height><width> 50%</width></action>
</keybind>
<keybind key= "A-S-l" > # HalfRightScreen
<action name= "Undecorate" />
<action name= "UnmaximizeFull" />
<action name= "MoveResizeTo" ><x> -0</x><y> 0</y><height> 100%</height><width> 50%</width></action>
</keybind>
<keybind key= "A-S-k" > # HalfUpperScreen
<action name= "Undecorate" />
<action name= "UnmaximizeFull" />
<action name= "MoveResizeTo" ><x> 0</x><y> 0</y><width> 100%</width><height> 50%</height></action>
</keybind>
<keybind key= "A-S-j" > # HalfLowerScreen
<action name= "Undecorate" />
<action name= "UnmaximizeFull" />
<action name= "MoveResizeTo" ><x> 0</x><y> -0</y><width> 100%</width><height> 50%</height></action>
</keybind>
<!--
<keybind key="C-A-Return"> # Maximize Toggle
<action name="Undecorate"/>
<action name="ToggleMaximize"/>
</keybind>
-->
<keybind key= "C-A-Return" > # Maximize (with spaces)
<action name= "Undecorate" />
<action name= "UnmaximizeFull" />
<action name= "MoveResizeTo" ><x> center</x><y> center</y><width> 99%</width><height> 99%</height></action>
</keybind>
<keybind key= "C-A-S-Return" > # Half size
<action name= "Undecorate" />
<action name= "UnmaximizeFull" />
<action name= "MoveResizeTo" ><x> center</x><y> center</y><width> 50%</width><height> 50%</height></action>
</keybind>
<!-- Keybindings for window moving -->
<keybind key= "C-S-y" >
<action name= "MoveRelative" ><x> -20</x><y> 0</y></action>
</keybind>
<keybind key= "C-S-u" >
<action name= "MoveRelative" ><x> 0</x><y> 20</y></action>
</keybind>
<keybind key= "C-S-i" >
<action name= "MoveRelative" ><x> 0</x><y> -20</y></action>
</keybind>
<keybind key= "C-S-o" >
<action name= "MoveRelative" ><x> 20</x><y> 0</y></action>
</keybind>
<!-- Desktop -->
<keybind key= "C-S-l" >
<action name= "GoToDesktop" >
<to> next</to>
</action>
</keybind>
<keybind key= "C-S-h" >
<action name= "GoToDesktop" >
<to> previous</to>
</action>
</keybind>
やってることは
Openbox自体のReconfigure/Restartキーの設定
設定を変更した時にすぐに有効にするために。
これが無いと一度ログアウトしてログインし直すしか無い?
特に最初、頻繁に試したりするときにこれを設定しておくと便利。
(Reconfigureだけで良いかもしれない。)
C -4 でウィンドウを閉めれるように2 。
C -Tab でウィンドウ切り替え(AltとCtrlをスワップしてるため)
A -S -k /j h l でウィンドウを上下左右の半分サイズに。
A -C -Return でウィンドウフルサイズ(少し周りに余白を残す)。
A -C -S -Return で画面の半分のサイズ。
C -S -i /u y o でウィンドウを上下左右へ移動。
C -S -h /l で仮想デスクトップ上を左右へ移動。
と言った設定。
WindowsやMacでも行ってる設定です。
Vim以外でVimする: Windows編 - rcmdnk’s blog
Vim以外でVimする: Windows+AutoHotkey編 - rcmdnk’s blog
MacでVimっぽくカーソルやマウス、ウィンドウを動かす
これで大分快適になりましたが、
後はC -A -h でカーソル左、的なVimの動きと、
C -A -y でマウスカーソルを左へ、的な
マウスキーの設定がまだ出来てません。
カーソルの方はxmodmapではできなそうでしたが、
XKBで直接いじれば出来るかも?
マウスキーの方もXKBで出来るかも?
Enabling mousekeys (Page 1) / Tips, Tricks & Scripts / CrunchBang Linux Forums
Mouse Keys in Ubuntu 12.04 - Exuro! Academic Notes
また、
autokey
という物もWindowsのAutoHotKey的な感じで使える物の様。
そのうち試してみたいと思ってる所。
Linux で AutoHotkey - 憩いの場【Linux】