qtile - 共通事項 - 定義

 クラウディア
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」のソースとして記述してあります。  各プラットフォームの、デフォルトのキー定義と、わたしのカスタマイズについて記述しておきます。
 動作    キー    備考 
ArcoLinux FreeBSD カスタマイズ
mod Win Win
端末を開く mod+Enter mod+Enter
ウィンドウを閉じる mod+q mod+w mod+q
フローティング切替 mod+Shift+Space mod+Space
qtile 再起動 mod+Shift+r mod+Ctrl+r mod+Shift+r
ログアウト mod+Ctrl+q 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"
F1F12 "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'])
 の記述があり、自動起動したいスクリプトを記述しているようです。
高速大容量レンタルサーバ10GTSUKUMOネットショップTSUTAYA DISCASU-NEXT
 
 
カウンタバックグラウンド