rcmdnk's blog

Software Shortcut Keys

Lubuntuのキーボード配列設定:xmodmap に続いてショートカットキーの設定について。

Sponsored Links

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/jhlでウィンドウを上下左右の半分サイズに。
  • A-C-Returnでウィンドウフルサイズ(少し周りに余白を残す)。
  • A-C-S-Returnで画面の半分のサイズ。
  • C-S-i/uyoでウィンドウを上下左右へ移動。
  • 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】

Sponsored Links
  1. Lubuntu出ない場合はrc.xmlというファイル名を使うのが普通。 ない場合には/etc/xdg/openbox/rc.xmlをコピーしてきて使います。

  2. もともとWindowsなんかと同じようにA-F4にマップしてありますが Altの位置にCtrlを持ってきてる事と、 普段使っているHHKB だとそもそもF4ボタンが無い(Fn-4で出す)ので、 WindowsでもAutoHotkeyで同じようにマップしてあります。

    Macでも、ウィンドウを閉めるAppleScript を用意して、これにC-4BetterTouchToolで割り当てています。

Sponsored Links

« Lubuntuのキーボード配列設定:xmodmap Homebrew-caskのアプリをアップグレードする »