2019年10月23日水曜日

i3の設定+キーバインド集 (19.10.23更新)

個人的にいいと思ったやつを気が向いたら更新です。
  • ウィンドウ設定
  • スクショ
  • シャットダウンモード
  • ウィンドウ個別編集モード
  • Moc制御モードとset変数



ウィンドウ設定

#指定アプリケーションだけをフロート化+フロート時のサイズを指定
for_window [class="Leafpad"] floating enable, resize set 800 920

#xpropでClassが取得できない時はウィンドウのタイトルを使う
#^で先頭、$で最後尾を指定でき、AzPainterとだけ書くとその名前を含む全てのウィンドウを指定
for_window [title="- AzPainter$"] border none

スクショ撮り

#Scrotを使っているので別のスクショアプリを使っている場合はまあそれとなくやってください
#Ctrl+Printでフォーカスされたウィンドウのみ

bindsym Print exec scrot '%Y-%m-%d_%H-%M-%S.png' -e 'mv $f Pictures/screenshot/'
bindsym Ctrl+Print exec scrot -u '%Y-%m-%d_%H-%M-%S.png' -e 'mv $f Pictures/screenshot/'

#撮ってすぐ画像エディタ(AzPainterB)で開く(もうちょい簡潔な書き方があるかも…)
bindsym Ctrl+Shift+Print exec scrot '%Y-%m-%d_%H-%M-%S.png' -e 'echo $f'> tmp && mv $(cat tmp) ~/Pictures/screenshot/ && azpainterb ~/Pictures/screenshot/$(cat tmp)'

シャットダウンモード

#みんなやってると思う
#Shift+Winキーでシャットダウン等々のメニュー
set $mode system System (Shift+s) SHUTDOWN, (s) SCREENSAVER ON, (r) REBOOT, (h) HIBERNATE, (l) logout 
mode "$mode system" {
bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"
bindsym r exec --no-startup-id systemctl reboot, mode "default"
bindsym h exec --no-startup-id systemctl hibernate, mode "default"
bindsym l exec --no-startup-id i3-msg exit, mode "default"
bindsym s exec --no-startup-id xscreensaver-command --activate, mode "default"

bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Shift+Delete mode "$mode system"

ウィンドウ個別編集モード

#いちいちWinキーを同時押しするのが面倒くさい時
#方向キーとエンターでウィンドウを選択し、それに対して色々やる
mode "edit" {
bindsym Left move left
bindsym Right move right
bindsym Down move down
bindsym Up move up
bindsym v splitv
bindsym h splith
bindsym w resize grow height 10 px or 10 ppt
bindsym s resize shrink height 10 px or 10 ppt
bindsym d resize grow width 10 px or 10 ppt
bindsym a resize shrink width 10 px or 10 ppt
bindsym Shift+w resize grow height 5 px or 5 ppt
bindsym Shift+s resize shrink height 5 px or 5 ppt
bindsym Shift+d resize grow width 5 px or 5 ppt
bindsym Shift+a resize shrink width 5 px or 5 ppt
bindsym space floating toggle
bindsym Return mode "select"
bindsym Escape mode "default"
}
mode "select" {
bindsym Left focus left
bindsym Right focus right
bindsym Down focus down
bindsym Up focus up
bindsym space focus floating
bindsym Escape mode "default"
bindsym Return mode "edit"
}
bindsym $mod+m mode "select"

Modeって入れ子になるのかなと思ったらできなかったけど、事前にModeが定義済みならジャンプできるらしい。

Moc制御モード

#Music on Consoleはコマンドから音楽の再生停止や次曲前曲などができるのでそれをやるモード

set $MocControl [s]top - [p]lay - [space]toggle-pause - [n]ext - [b]ack - [,]vol-5 - [.]vol+5
mode "MocControl $MocControl"{
bindsym s exec mocp --stop
bindsym p exec mocp --play
bindsym space exec mocp --toggle-pause
#bindsym Return exec mocp --toggle-pause
bindsym n exec mocp --next
bindsym b exec mocp --previous
bindsym period exec mocp -v +5
bindsym comma exec mocp -v -5
bindsym Escape mode "default"
}
bindsym $mod+m mode "MocControl $MocControl"


i3は set [hoge] [中身] を使うと変数$hogeとして使用できるらしく、mode定義の前にキー説明文なんかを入れて定義時に呼び出すようにしておくと何のキーが使えるかメモれるので便利!
モード名をダブクオで括っているのでmode名にそのまま説明文を挟んでもいいかもしれないけど、そうなるとbindsymでモード呼び出しを定義する時にも同じ文を挟まないと作動しなくなってしまうようなのでやらないほうがいい。

0 件のコメント:

コメントを投稿