- 1. 概要
- 2. 定義ファイル
- 3. キー定義
- 4. ウィンドウ動作
- 5. フローティング起動
- 6. 自動起動
1. 概要
プラットフォームによって、定義ファイルの置き方、内容に違いがあります。
2. 定義ファイル
プラットフォーム | システムオリジナル | ユーザ用 | 備考 |
ArcoLinux | /etc/skel/.config/qtile/config.py | ~/.config/qtile/config.py | |
FreeBSD | /usr/local/lib/python3.7/site-packages/libqtile/resources/default_config.py | ~/.config/qtile/config.py | |
「FreeBSD」のシステムオリジナルは、「python」のバージョンが異なれば、当然、「python3.7」の部分が変わってきます。
また、ユーザ用は、インストールでは展開されませんので、ログインユーザで下記のコマンドを使ってコピーする必要があります。
cp /usr/local/lib/python3.7/site-packages/libqtile/resources/default_config.py ~/.config/qtile/config.py
「ArcoLinux」の「/etc/skel/.config/qtile」には、他にもファイルが存在し
/etc/skel/.config/qtile/
|-- arcobattery.py
|-- config-old.py
|-- config.py
|-- icons
| `-- battery_icons_horiz
| |-- battery-10-charge.png
| |
| | アイコンファイル
| |
| `-- battery-missing.png
|-- scripts
| |-- autostart.sh
| |-- picom-toggle.sh
| |-- picom.conf
| |-- set-pywal.sh
| |-- set-screen-resolution-in-virtualbox.sh
| `-- system-overview
|-- sxhkd
| `-- sxhkdrc
`-- wall.jpg
という構成になっています。
ユーザ用もインストール直後の時点で、まったく同じ構成で作成されています。
3. キー定義
「config.py」という拡張子でわかるように、定義は、「Python」のソースとして記述してあります。
各プラットフォームの、デフォルトのキー定義と、わたしのカスタマイズについて記述しておきます。
プラットフォーム |
キー定義 | 備考 |
mod | 端末を開く | ウィンドウを 閉じる | フローティング 切替 | qtile 再起動 | ログアウト |
ArcoLinux | Win | mod+Enter | mod+q | mod+Shift+Space | mod+Shift+r | mod+x | |
FreeBSD | Win | mod+Enter | mod+w | - | mod+Ctrl+q | mod+Ctrl+q | |
カスタマイズ | Win | mod+Enter | mod+q | mod+Space | mod+Shift+r | mod+Shift+q | |
キー定義の記述方法は、以下になります。
mod キー
mod = "mod4"
「mod4」が Win になります。
Alt は特に定義がないようで、「ArcoLinux」の定義を読むと逆に
mod1 = "alt"
mod2 = "control"
というように定義してあります。
通常のキーは、ダブルクォーテーション「"」で小文字のアルファベットを囲んで記述します。
特殊キーは、以下のように記述するようです。
(これは、いまのところ(2020年9月17日)、プラットフォームによらず共通)
キー | 記述 | 備考 |
mod | mod | |
Ctrl | "control" | |
Space | "space" | |
Shift | "shift" | |
Print | "Print" | |
← | "Left" | |
↑ | "Up" | |
↓ | "Down" | |
→ | "Right" | |
F1 ~ F12 | "F1" ~ "F12" | |
キーの定義は下記の
keys = [
# Switch between windows in current stack pane
Key([mod], "k", lazy.layout.down()),
Key([mod], "j", lazy.layout.up()),
・・・略・・・
Key([mod], "r", lazy.spawncmd()),
]
「keys = [」からはじまって「]」で終わる中に、カンマで区切って、1キー定義につき1行ずつ、同じカラムから記述します(「Python」なので文法が厳しいのだ)。
プログラムとプログラムに対応するショートカットキーは、以下のように記述します。
mod+Enter を、「xterm」に割り当てる場合
Key([mod], "Return", lazy.spawn("xterm")),
と記述します。
4. ウィンドウ動作
「qtile」のウィンドウ動作は
from libqtile.command import lazy
でインポートされるモジュール内で定義されているようです。
動作は
動作 | メソッド | 備考 |
プログラム起動 | lazy.spawn("プログラム") | コマンドラインに記述するように オプションをつけられます |
フローティングウィンドウ 切替 | lazy.window.toggle_floating() | |
ウィンドウを閉じる | lazy.window.kill() | |
qtile 再起動 | lazy.restart() | |
ログアウト | lazy.shutdown() | |
前項でのカスタマイズと合わせて
ウィンドウを閉じる | | mod+q | |
フローティングウィンドウ切替 | | mod+Space | |
qtile 再起動 | | mod+Shift+r | |
ログアウト | | mod+Shift+q | |
として記述するならば、下記のように記述します。
Key([mod], "q", lazy.window.kill()),
Key([mod], "space", lazy.window.toggle_floating()),
Key([mod, "shift"], "r", lazy.restart()),
Key([mod, "shift"], "q", lazy.shutdown()),
5. フローティング起動
フローティングウィンドウで起動するには、「FreeBSD」「~/.qtile/config.py」を示すと
floating_layout = layout.Floating(float_rules=[
{'wmclass': 'confirm'},
{'wmclass': 'dialog'},
{'wmclass': 'download'},
{'wmclass': 'error'},
{'wmclass': 'file_progress'},
{'wmclass': 'notification'},
{'wmclass': 'splash'},
{'wmclass': 'toolbar'},
{'wmclass': 'confirmreset'}, # gitk
{'wmclass': 'makebranch'}, # gitk
{'wmclass': 'maketag'}, # gitk
{'wname': 'branchdialog'}, # gitk
{'wname': 'pinentry'}, # GPG key password entry
{'wmclass': 'ssh-askpass'}, # ssh-askpass
])
134行に続けて
{'wmclass': 'クラス名'},
の行を挿入していきます。
フローティングウィンドウを移動・リサイズするには mod キーを押したまま、マウスを左クリックしたままで移動、右クリックしたままでリサイズできます。
6. 自動起動
自動起動する方法は、デフォルトでは、ないようです。
ログインマネージャに合わせて「.xinitrc」「.xprofile」「.xsession」のいずれかに記述します。
「ArcoLinux」では、他のデスクトップと同様に「autostart.sh」というシェルスクリプトを使用します。
すなわち「~/.qtile/config.py」に
main = None
@hook.subscribe.startup_once
def start_once():
home = os.path.expanduser('~')
subprocess.call([home + '/.config/qtile/scripts/autostart.sh'])
の記述があり、自動起動したいスクリプトを記述しているようです。
|