i3 (i3wm)

linux

フォントの設定

font pango:FontAwesome, aquafont, Mono, DejaVu Sans Mono 11

i3bar のみへの適用ならば、

hogehoge test

bar {
  status_command $HOME/Dropbox/cympfh/i3status.js
  font pango:FontAwesome, aquafont, Mono, DejaVu Sans Mono 11
}

FontAwesome

上の例では FontAwesome をロードしている. アイコンがたくさん収録されていて (http://fortawesome.github.io/Font-Awesome/cheatsheet/) 便利.

モニタ間のワークスペースの移動

別のモニタに移動させるのにいちいち経由させるんじゃなくて、 ワークスペース自体を次のモニタに移動する.

bindsym $mod+m move workspace to output left

プロジェクター発表するときに、手元で全面表示させておいたのをぱっと、 映すのに大変便利.

i3bar のモニタごとの設定

bar {
}

を複数回使うことで i3bar を複数個作る. そのときに output キーワードでどのモニタに作るかを指定できる. 同じモニタに対して複数回作るとき、下から順に i3bar が複数個、積み重ねられる. output を指定しないとき、全てのモニタが対象になる.

bar {
  output VGA1
  output HDMI1
}

よくないのは、否定的な指定の仕方が (どうやら) 無いこと. 例えば、名前の分かっているメインモニタと、外部モニタとで別々な i3bar を作りたくても、 「モニタ以外」を指定する方法がないので、有り得そうな外部モニタの名前を列挙するしかない.

現時点の設定

例として、今の設定の i3bar 部分をコピペする. メインモニタは eDP1 という名前で (c.f. xrandr)、 出力ポートが VGA と HDMI いか無いので次のように、別々に設定できる.

メインには、自前で書いた status スクリプトでいろいろ賑やかにしておいて、 外部モニタは基本的に人前でプレゼンする用なので、 何も表示させない. ワークスペース番号はさすがに必要なので、まっさらな bar を表示させる.

bar {
  output VGA1
  output HDMI1
  tray_output none
  colors {
    background #000000
    statusline #00A5FF
    separator #666666

    # border background foreground
    focused_workspace  #000000 #000000 #ffffff
    active_workspace   #000000 #000000 #dddddd
    inactive_workspace #000000 #000000 #888888
    urgent_workspace   #000000 #900000 #ffffff
  }
  position bottom
}

bar {
  output eDP1
  status_command /home/cympfh/Dropbox/cympfh/i3/bar.coffee
  colors {
    background #000000
    statusline #00A5FF
    separator #666666

    # border background foreground
    focused_workspace  #000000 #000000 #ffffff
    active_workspace   #000000 #000000 #dddddd
    inactive_workspace #000000 #000000 #888888
    urgent_workspace   #000000 #900000 #ffffff
  }
  position bottom
}

便利外部コマンド

スクリーンショットを撮る

gnome の例:

# PrintScreen to take a screenshot
bindsym Print exec gnome-screenshot -f /home/cympfh/Pictures/hoge.jpg

スクリーンロック

i3wm には i3lock が同梱されいてる (無ければいれる)

# screen lock
bindsym $mod+Escape exec i3lock