i3 WM の設定ファイル
i3 WM を使い始めて、mateを辞めたのが2017.03だから9ヶ月ほど。 師走なんで、現状確認してみた。なお Debian stretch では一つ古い version になる。i3 version 4.13 (2016-11-08) © 2009 Michael Stapelberg and contributors
最新安定版(201812)は 4.14 で、更新を推奨してるみたいだが、base になる部分だから、 素人は debian package のまましばらく使う。
~/.config/i3/config
現状[2017-12-02]のconfig
。 コメントは排除。
使ってない設定とかもあって、考えてしまう。set $mod Mod4 # work space 移動の機能拡張のため # [https://github.com/benkaiser/i3-wm-config] にある スクリプトを使わせてもらっている。 set $controlw ~/.config/i3/workspace_controller.py # Set workspace icons # 設定していない。番号だけでよい # Hybrid colors 古いT510の発色が微妙で、イメージと違う。 set $black #002B36 set $white #839496 set $gray #CCCCCC set $darkgray #666666 set $green #799F26 set $blue #4D73AA set $purple #8473A7 set $red #B58900 set $orange #E59847 set $cyan #2AA198 set $dark #00252E font pango:DejaVu Sans Mono for Powerline, IPAGothic 12px floating_modifier $mod bindsym $mod+Return exec urxvtc # urxvtc に変更。(server形式にした。以下がネタ元) # [urxvt こと rxvt-unicode を使うことのメモ | Jenemal Notes] # (http://malkalech.com/urxvt_terminal_emulator) bindsym $mod+Shift+q kill # dmenu を rofi で置き換えるからコメントアウト # bindsym $mod+d exec dmenu_run # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+semicolon focus right # alternatively, you can use the cursor keys: bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right # move focused window bindsym $mod+Shift+j move left bindsym $mod+Shift+k move down bindsym $mod+Shift+l move up bindsym $mod+Shift+semicolon move right # alternatively, you can use the cursor keys: bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right # split condition bindsym $mod+h split h bindsym $mod+v split v # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle # change container layout (stacked, tabbed, toggle split) bindsym $mod+s layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent # focus the child container `d` -> `c` bindsym $mod+c focus child # switch to workspace `10` -> `0` bindsym $mod+1 workspace 1 bindsym $mod+2 workspace 2 bindsym $mod+3 workspace 3 bindsym $mod+4 workspace 4 bindsym $mod+5 workspace 5 bindsym $mod+6 workspace 6 bindsym $mod+7 workspace 7 bindsym $mod+8 workspace 8 bindsym $mod+9 workspace 9 bindsym $mod+0 workspace 0 # move focused container to workspace `10` -> `0` bindsym $mod+Shift+1 move container to workspace 1 bindsym $mod+Shift+2 move container to workspace 2 bindsym $mod+Shift+3 move container to workspace 3 bindsym $mod+Shift+4 move container to workspace 4 bindsym $mod+Shift+5 move container to workspace 5 bindsym $mod+Shift+6 move container to workspace 6 bindsym $mod+Shift+7 move container to workspace 7 bindsym $mod+Shift+8 move container to workspace 8 bindsym $mod+Shift+9 move container to workspace 9 bindsym $mod+Shift+0 move container to workspace 0 # WS の 変更 移動 を 拡張 # $controlw を使う bindsym $mod+Control+Left exec $controlw prev go bindsym $mod+Control+Right exec $controlw next go bindsym $mod+Control+Up exec $controlw up go bindsym $mod+Control+Down exec $controlw down go # bindsym $mod+Shift+Control+Left exec $controlw prev move bindsym $mod+Shift+Control+Right exec $controlw next move bindsym $mod+Shift+Control+Up exec $controlw up move bindsym $mod+Shift+Control+Down exec $controlw down move # move to last workspace bindsym $mod+z workspace back_and_forth # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" # resize window (サイズ変更を少し細かめに設定) mode "resize" { bindsym j resize shrink width 6 px or 6 ppt bindsym k resize grow height 6 px or 6 ppt bindsym l resize shrink height 6 px or 6 ppt bindsym semicolon resize grow width 6 px or 6 ppt bindsym Left resize shrink width 6 px or 6 ppt bindsym Down resize grow height 6 px or 6 ppt bindsym Up resize shrink height 6 px or 6 ppt bindsym Right resize grow width 6 px or 6 ppt bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+r mode "resize" # move floating windows(floating window の移動) mode "moveit" { bindsym Up move up 20px bindsym Left move left 20px bindsym Down move down 20px bindsym Right move right 20px bindsym Mod4+m mode "default" bindsym Escape mode "default" } bindsym $mod+m focus floating; mode "moveit" # レイアウトの復元 WS1に3つのターミナル bindsym $mod+g exec ~/.config/i3/load_layout.sh # レイアウトの復元 WS11に小さめfontで2つのターミナル bindsym $mod+t exec ~/.config/i3/load_layout_11.sh # Mouse focus_follows_mouse yes # Start i3bar bar { status_command i3blocks -c ~/.config/i3/i3blocks.conf font xft:FontAwesome 14px } # Audio volume mpd(local) を mpc でコントロール。 bindsym XF86AudioRaiseVolume exec mpc volume +5 bindsym XF86AudioLowerVolume exec mpc volume -5 bindsym XF86AudioNext exec mpc next bindsym XF86AudioPrev exec mpc prev bindsym XF86AudioPlay exec mpc play bindsym XF86AudioStop exec mpc pause # 画面の輝度調整 bindsym XF86MonBrightnessUp exec xbacklight -inc 10 bindsym XF86MonBrightnessDown exec xbacklight -dec 10 # screen capture bindsym Print exec scrot '%Y-%m-%d_%T_scrot.png' -e 'mv $f ~/Pictures/capture/' # rofi bindings(dmenuの代替え) bindsym $mod+d exec rofi -show run bindsym F12 exec rofi -show window # qlipper から copyq に変更。 keybind は rofi の裏 bindsym Shift+F12 exec copyq toggle # ikhal(カレンダーのポップアップ floting に設定したmltermを使う) bindsym $mod+i exec mlikhal # startup # compton (20180124) exec --no-startup-id compton --config ~/.config/compton.conf -b # 背景をランダムに exec --no-startup-id feh --randomize --bg-scale /home/hoge/Pictures/wall_papers/* # screen lock exec --no-startup-id xset s 1200 exec --no-startup-id xset dpms 0 0 1200 exec --no-startup-id xautolock -time 18 -locker 'i3lock -i /home/hoge/.config/i3/triangle_shape.png' exec --no-startup-id touchpad off exec --no-startup-id fcitx-autostart exec --no-startup-id urxvtd -q -f exec --no-startup-id devmon exec --no-startup-id owncloud exec --no-startup-id nm-applet exec --no-startup-id copyq # おとなしい配色 # class border backgr. text indicator client.focused $white $white $dark $dark client.unfocused $dark $dark $white $white client.focused_inactive $dark $dark $white $dark client.urgent $orange $orange $dark $white # WSを固定するアプリ assign [class="Thunderbird"] → 9 assign [class="Emacs"] → 2 assign [class="Firefox"] → 8 assign [class="Google-chrome"] → 6 assign [class="josm"] → 7 assign [class="KeePass2"] → 0 # floating - 位置固定 で for_window [class="(?i)gnome-calculator"] floating enable move position +1240 +500 for_window [class="mlterm"] floating enable move position +700 +50, resize set 800 410 for_window [class="(?i)geeqie"] floating enable move absolute position 640 px 200 px, resize set 900 580 # floating - おまかせ for_window [class="(?i)Shutter"] floating enable, resize set 840 480 for_window [class="(?i)Fcitx-config"] floating enable for_window [class="Zathura"] floating enable for_window [class="MuPDF"] floating enable for_window [class="PdfMod"] fullscreen for_window [class="qutebrowser"] floating enable, resize set 840 580 for_window [class="Luakit"] floating enable, resize set 840 580 for_window [class="FBReader"] floating enable for_window [class="copyq"] floating enable, resize set 840 410 for_window [class="mpv"] floating enable, resize set 840 410 for_window [class="XDvi"] floating enable for_window [title="(?i)tomaatti" class="(?i)tk"] floating enable move position center urgent # firefox だけ tabbed mode for_window [class="Firefox"] layout tabbed # 以下、有効なのか不明 for_window [window_role="pop-up"] floating enable for_window [window_role="dialog"] floating enable for_window [window_role="menu"] floating enable for_window [window_role="Preferences"] floating enable popup_during_fullscreen smart
i3blocks.conf
# i3blocks config file # # Global properties align=center color=#839496 command=/usr/share/i3blocks/$BLOCK_NAME # debian では ここ markup=none [MPD] label= command=/home/hoge/.config/i3/i3blocks-mpd # デフォにないコマンドだから color=#88aa00 interval=15 [volume] label= instance=Master interval=once signal=10 separator=true color=#a43300 [memory] label= instance=mem;free interval=30 [disk] label= interval=30 [iface] color=#22BBBB interval=10 [wifi] interval=10 separator=false [bandwidth] interval=5 [cpu_usage] label= interval=10 min_width=CPU:00.0% [battery2] interval=30 [pomodoro] interval=5 command=tomaatti color=#88aa00 [time] command=date '+%y/%m/%d(%a)%R' interval=30 color=#FFFF99 [temperature] instance=Core interval=30
load_layout_11.sh
#!/bin/bash i3-msg 'workspace 11; append_layout /home/hoge/.config/i3/workspace-11.json' (urxvtc -name leftwin11 -fn xft:"DejaVu Sans Mono for Powerline:pixelsize=13",xft:"Cica-Regular:pixelsize=13" &) (urxvtc -name rightwin11 -fn xft:"DejaVu Sans Mono for Powerline:pixelsize=11",xft:"Cica-Regular:pixelsize=11" &)
workspace-11.json
{ "border": "normal", "current_border_width": 2, "floating": "auto_off", "layout": "splith", "name": "hoge@hoge:WS11_L", "percent": 0.68, "type": "con", "nodes": [ {"border": "normal", "current_border_width": 2, "floating": "auto_off", "percent": 1, "name": "hoge@hoge:", "swallows": [{"class": "^URxvt$", "instance": "^leftwin11$"}], "type": "con" }] } { "border": "normal", "current_border_width": 2, "floating": "auto_off", "name": "hoge@hoge: /home/hoge", "percent": 0.32, "type": "con", "nodes": [ {"border": "normal", "current_border_width": 2, "floating": "auto_off", "percent": 1, "name": "hoge@hoge:WS11_R", "swallows": [{"class": "^URxvt$", "instance": "^rightwin11$"}], "type": "con" }] }
i3blocks-mpd
#!/bin/bash # https://github.com/zlsun/dotfiles/blob/master/files/bin/i3blocks-mpd SHOWNAME_PATH=~/.config/i3/i3block-mpd-showname exec-mpc() { mpc $* &> /dev/null } showname=$([ -f $SHOWNAME_PATH ] && cat $SHOWNAME_PATH || echo 0) case $BLOCK_BUTTON in 1) exec-mpc toggle ;; 2) showname=$((!$showname)); echo $showname > $SHOWNAME_PATH ;; 3) exec-mpc stop ;; 4) exec-mpc 'volume +5' ;; 5) exec-mpc 'volume -5' ;; 6) exec-mpc pre ;; 7) exec-mpc next ;; esac playing= paused= stopped= if [ $showname = '1' ]; then mpc current | awk -F ' - ' '{printf "[%s / %s ]", $1, $2}' fi status=$(mpc status | sed -n 's/^\[\([^])]*\)\].*$/\1/p') case $status in playing) echo -n $playing ;; paused) echo -n $paused ;; *) echo -n $stopped ;; esac