diff options
Diffstat (limited to '_i3/config')
-rw-r--r-- | _i3/config | 386 |
1 files changed, 386 insertions, 0 deletions
diff --git a/_i3/config b/_i3/config new file mode 100644 index 0000000..1e274bb --- /dev/null +++ b/_i3/config @@ -0,0 +1,386 @@ +########################################################### +## ~/.i3/config +## +## i3 config file (v4) +## +## References: +## [1] http://i3wm.org/docs/userguide.html +## +## Credits: +## [1] https://github.com/Airblader/dotfiles-manjaro +## [2] https://github.com/Remedan/dotfiles +## +## Aaron LI <aaronly.me@outlook.com> +## Created: 2014-05-10 +## Updated: 2015-12-18 +########################################################### + +###### NOTES ###### {{{ +# To get a config file with the same key positions, but for your current +# layout, use the `i3-config-wizard' +###### NOTES ###### }}} + +###### variables ###### {{{ +## modifier +# Mod1: Alt +# Mod4: Win +set $mod Mod1 +set $sup Mod4 + +# variables used in this config +set $i3_scripts ~/.i3/scripts +set $i3_images ~/.i3/images + +# screenshots directory +set $shots_dir ~/pictures/screenshots +###### variables ###### }}} + +###### settings ###### {{{ +# Font for window titles. (also for bar if not specified) +# ISO 10646: Unicode +# Use pango to choose FreeType fonts +#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +#font pango:DejaVu Sans Mono 10 +font pango:Terminus, WenQuanYi Bitmap Song, FontAwesome, 10 + +# use `Mouse+$mod' to drag floating windows +floating_modifier $mod + +# focus follows mouse (default yes) +#focus_follows_mouse no + +# timeout of urgency hint on workspace change (default 500ms) +force_display_urgency_hint 1000 ms + +# do not focus the activated window, always mark urgent (default: smart) +focus_on_window_activation urgent + +# ipc (`i3-msg' to run i3 commands) +ipc-socket ~/.i3/i3-ipc.sock +###### settings ###### }}} + +###### appearance ###### {{{ +# border style +#new_window 1pixel +bindsym $mod+t border normal +bindsym $mod+y border pixel 3 +bindsym $mod+u border none + +# 2 pixel border by default +for_window [class="^.*"] border pixel 2 + +# orientation for new workspaces +default_orientation auto + +# hide vertical borders adjacent to the screen edge +#hide_edge_borders vertical + +### colors +# molokai +set $black #1b1d1e +set $white #f8f8f2 +set $dark_gray #303030 +set $light_gray #9999aa +set $red #b60050 +set $light_red #f92672 +set $green #88bb22 +set $light_green #80ff00 +set $brown #c47f2c +set $yellow #ffba68 +set $blue #30309b +set $light_blue #7070f0 +set $purple #7e40a5 +set $light_purple #bb88dd +set $cyan #4699af +set $light_cyan #66d9ef + +# BORDER BACKGROUND TEXT INDICATOR +client.focused $green $green $black $green +client.unfocused $black $black $white $black +client.focused_inactive $black $black $white $black +client.urgent $red $red $black $red +client.background $black +###### appearance ###### }}} + +###### workspace ###### {{{ +# name workspace +set $ws1 "1: " +set $ws2 "2: " +set $ws3 "3: " +set $ws4 "4: " +set $ws5 "5: ??" +set $ws6 "6: ??" +set $ws7 "7: " +set $ws8 "8: " +set $ws9 "9: " +set $ws0 "10: " + +# switch to workspace +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +bindsym $mod+6 workspace $ws6 +bindsym $mod+7 workspace $ws7 +bindsym $mod+8 workspace $ws8 +bindsym $mod+9 workspace $ws9 +bindsym $mod+0 workspace $ws0 + +# auto back-and-forth when switched to the current workspace +workspace_auto_back_and_forth yes + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace $ws1 +bindsym $mod+Shift+2 move container to workspace $ws2 +bindsym $mod+Shift+3 move container to workspace $ws3 +bindsym $mod+Shift+4 move container to workspace $ws4 +bindsym $mod+Shift+5 move container to workspace $ws5 +bindsym $mod+Shift+6 move container to workspace $ws6 +bindsym $mod+Shift+7 move container to workspace $ws7 +bindsym $mod+Shift+8 move container to workspace $ws8 +bindsym $mod+Shift+9 move container to workspace $ws9 +bindsym $mod+Shift+0 move container to workspace $ws0 +# move to provided workspace +bindsym $mod+Shift+m exec i3-input -F 'move container to workspace "%s"' -P 'move to workspace: ' + +# switch workspace +bindsym $mod+Tab workspace back_and_forth +bindsym $mod+Ctrl+Left workspace prev +bindsym $mod+Ctrl+Right workspace next +# also bind ThinkPad 'XF86Back' and 'XF86Forward' keys +#bindsym XF86Back workspace prev +#bindsym XF86Forward workspace next +###### workspace ###### }}} + +###### key bindings ###### {{{ +# start a terminal +bindsym $mod+Return exec urxvtc || i3-sensible-terminal + +# kill focused window +bindsym $mod+Shift+q kill +bindsym $mod+F4 kill + +# change focus (h/j/k/l) +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l 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 (h/j/k/l) +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l 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 in horizontal orientation +bindsym $mod+Shift+v split h +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen + +# 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 +bindsym $mod+c focus child + +## scratchpad +# move the currently focused window to the scratchpad +bindsym $mod+Shift+minus move scratchpad +# Show the next scratchpad window or hide the focused scratchpad window. +# If there are multiple scratchpad windows, this command cycles through them. +bindsym $mod+minus scratchpad show + +# toggle whether to stick a window to the screen (regardless of workspaces) +bindsym $mod+Shift+s sticky toggle + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves 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'" +###### key bindings ###### }}} + +###### i3 modes ###### {{{ +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + # Pressing left will shrink the window's width. + # Pressing right will grow the window's width. + # Pressing up will shrink the window's height. + # Pressing down will grow the window's height. + bindsym h resize shrink width 10 px or 10 ppt + bindsym j resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +# mode_system: prompt for lock, logout, suspend, shutdown, etc. +set $mode_system System (l) lock, (e) logout, (s) suspend, (r) reboot, (Shift+s) shutdown +mode "$mode_system" { + bindsym l exec --no-startup-id $i3_scripts/i3exit.sh lock, mode "default" + bindsym e exec --no-startup-id $i3_scripts/i3exit.sh logout, mode "default" + bindsym s exec --no-startup-id $i3_scripts/i3exit.sh suspend, mode "default" + bindsym r exec --no-startup-id $i3_scripts/i3exit.sh reboot, mode "default" + bindsym Shift+s exec --no-startup-id $i3_scripts/i3exit.sh shutdown, mode "default" + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+Ctrl+Delete mode "$mode_system" +###### i3 modes ###### }}} + +###### application bindings ###### {{{ +## NOTE: (Mod4: Win) +## Some Mod4-keys binded for urxvt (~/.Xresources) +## Mod4-c, Mod4-v, Mod4-Shift-v +## Mod4-Escape, Mode4-s, Mod4-u + +## program launcher +#bindsym $mod+d exec --no-startup-id dmenu_run +#bindsym $mod+F2 exec --no-startup-id dmenu_run +# use 'rofi' instead of 'dmenu' +bindsym $mod+d exec --no-startup-id rofi -show run +bindsym $mod+F2 exec --no-startup-id rofi -show run +# `i3-dmenu-desktop' only displays applications with a .desktop file +bindsym $mod+p exec --no-startup-id i3-dmenu-desktop + +# lock screen (i3lock) +bindsym $mod+Ctrl+l exec --no-startup-id $i3_scripts/i3exit.sh lock +bindsym $sup+l exec --no-startup-id $i3_scripts/i3exit.sh lock +# turn off display +bindsym $mod+Ctrl+b exec --no-startup-id sleep 1 && xset dpms force off + +# screenshots +bindsym --release Print exec --no-startup-id scrot -e 'mv $f $shots_dir/' +bindsym --release $mod+Print exec --no-startup-id scrot -s -e 'mv $f $shots_dir/' + +# terminal +bindsym $sup+t exec urxvtc || urxvt || i3-sensible-terminal +bindsym $sup+Enter exec urxvtc || urxvt || i3-sensible-terminal +# file manager +bindsym $sup+f exec thunar +# web browser +bindsym $sup+w exec ~/bin/firefox || firefox + +## dropdown terminal +# auto start urxvt if closed +exec --no-startup-id "while true; do urxvt -name 'dropdown_term'; done" +#for_window [instance="dropdown_term"] floating enable, border 1pixel +#for_window [instance="dropdown_term"] move scratchpad; [instance="dropdown_term"] scratchpad show; resize shrink height 100px; resize grow width 626px; move position 1px 20px; move scratchpad +for_window [instance="dropdown_term"] floating enable, border 1pixel, resize shrink height 100px, resize grow width 626px, move position 1px 20px +for_window [instance="dropdown_term"] move scratchpad +bindsym $mod+backslash [instance="dropdown_term"] scratchpad show +###### applications bindings ###### }}} + +###### window control ###### {{{ +## floating +for_window [window_role="pop-up"] floating enable +for_window [window_role="bubble"] floating enable +for_window [window_role="task_dialog"] floating enable +for_window [window_role="Preferences"] floating enable + +for_window [window_type="dialog"] floating enable +for_window [window_type="menu"] floating enable + +for_window [class="(?i)Arandr"] floating enable +for_window [class="Xscreensaver-demo"] floating enable + +for_window [title="^XBindKey:.*Hit.*"] floating enable + +for_window [class="(?i)Xfce4-notifyd"] floating enable, border none + +# assign workspace for applications +assign [class="(?i)firefox"] $ws1 +###### window control ###### }}} + +###### i3bar ###### {{{ +bar { + #status_command i3status -c ~/.i3/i3status.conf + status_command i3blocks -c ~/.i3/i3blocks.conf + position top + # whether show the current binding mode indicator (default yes) + #binding_mode_indicator no + font pango:Terminus, WenQuanYi Bitmap Song, FontAwesome, 11 + tray_output primary + separator_symbol " " + # disable scroll on workspace buttons + bindsym button4 nop + bindsym button5 nop + # disable tray padding (default: 2) + tray_padding 0 + # display workspace of name "[n]:[NAME]" with only the "[NAME]" + strip_workspace_numbers yes + + colors { + statusline $white + background $black + separator $green + # BORDER BACKGROUND TEXT + focused_workspace $light_green $light_green $black + active_workspace $black $black $white + inactive_workspace $black $black $white + urgent_workspace $light_red $light_red $white + binding_mode $black $black $yellow + } +} +###### i3bar ###### }}} + +###### autostart ###### {{{ +## run applications on startup +## if need to run command when restarting i3, use `exec_always' +exec --no-startup-id xset b off +exec --no-startup-id xrdb -load ~/.Xresources +#exec --no-startup-id feh --bg-fill $i3_images/wallpaper.png +exec --no-startup-id sh ~/.fehbg +#exec --no-startup-id xcompmgr +exec --no-startup-id compton -b +exec --no-startup-id redshift +exec --no-startup-id xbindkeys +exec --no-startup-id urxvtd -q -o -f +exec --no-startup-id parcellite +exec --no-startup-id fcitx +exec --no-startup-id nm-applet +exec --no-startup-id xbacklight -set 80 +exec --no-startup-id xscreensaver -no-splash +exec --no-startup-id xfce4-power-manager +exec --no-startup-id mpd +###### autostart ###### }}} + +# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=conf: # |