Skip to content

Instantly share code, notes, and snippets.

@stormbrew
Created March 18, 2014 07:53
Show Gist options
  • Save stormbrew/9615411 to your computer and use it in GitHub Desktop.
Save stormbrew/9615411 to your computer and use it in GitHub Desktop.
my i3wm.conf
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout somewhen, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# font for window titles. ISO 10646 = Unicode
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec urxvt #i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+Q kill
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
bindsym Control+Mod1+Delete exec i3lock
# 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+colon 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+h 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, default)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default
# 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
#bindcode $mod+d focus child
bindsym $mod+g exec xdg-open 'http://i3wm.org/docs/userguide.html#_default_keybindings'
bindsym $mod+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: '
bindsym $mod+p exec i3-msg workspace "$(i3-msg -t get_workspaces | jq -r '.[] | .name' | dmenu -i)"
bindsym $mod+Shift+p exec i3-msg move container to workspace "$(i3-msg -t get_workspaces | jq -r '.[] | .name' | dmenu -i)"
bindsym $mod+Control+p exec env ACTIVE=$(i3-msg -t get_workspaces | jq -r '.[] | select(.focused) | .output') sh -c 'i3-msg workspace "$(i3-msg -t get_workspaces | jq -r ".[] | .name" | dmenu -i)" && i3-msg move workspace to output ${ACTIVE}'
bindsym $mod+o exec i3-msg '[title="'$(i3-msg -t get_tree | jq -r "recurse(.nodes[]) | select(.window) | .name" | dmenu -i)'"] focus'
bindsym $mod+Mod1+o exec i3-msg '[title="'$(i3-msg -t get_tree | jq -r "recurse(.nodes[]) | select(.window and .urgent) | .name" | dmenu -i)'"] focus'
bindsym $mod+Tab workspace next_on_output
bindsym $mod+Shift+Tab workspace prev_on_output
# switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# move focused container to workspace
bindsym $mod+Shift+exclam move container to workspace number 1
bindsym $mod+Shift+at move container to workspace number 2
bindsym $mod+Shift+numbersign move container to workspace number 3
bindsym $mod+Shift+dollar move container to workspace number 4
bindsym $mod+Shift+percent move container to workspace number 5
bindsym $mod+Shift+asciicircum move container to workspace number 6
bindsym $mod+Shift+ampersand move container to workspace number 7
bindsym $mod+Shift+asterisk move container to workspace number 8
bindsym $mod+Shift+parenleft move container to workspace number 9
bindsym $mod+Shift+parenright move container to workspace number 10
bindsym $mod+Mod1+Left move workspace to output left
bindsym $mod+Mod1+Right move workspace to output right
bindsym $mod+Mod1+Up move workspace to output up
bindsym $mod+Mod1+Down move workspace to output down
bindsym $mod+Ctrl+1 move workspace 1 to output current
# 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 exit
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 -- +2dB
bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -- -2dB
bindsym XF86AudioMute exec pactl set-sink-mute 0 $((pactl list sinks | grep -q Mute:.no && echo 1) || echo 0)
bindsym Print exec "bash -c '. ~/.config/bash/zscreen.sh && zscreen'"
# 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 j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym 113 resize shrink width 10 px or 10 ppt
bindsym 116 resize grow height 10 px or 10 ppt
bindsym 111 resize shrink height 10 px or 10 ppt
bindsym 114 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"
client.urgent #2f343a #900000 #ffffff #900000
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status
colors {
urgent_workspace #2f343a #900000 #ffffff
}
}
assign [class="Steam"] steam
assign [instance="desktop_window" class="Nemo"] nemo_desktop
assign [class="Thunderbird"] "2: comms"
assign [class="HipChat"] "2: comms"
assign [class="Pidgin"] "3: im"
assign [class="Firefox"] "4: browser"
assign [class="Chromium-browser"] "4: browser"
assign [class="Google-chrome"] "4: browser"
assign [class="Sublime_text"] "5: subl"
assign [class="sublime-text-2"] "5: subl"
assign [title="PlayOnLinux"] "10: wine"
for_window [title="PlayOnLinux"] floating enable
assign [class="Wine"] "10: wine"
for_window [class="Wine"] floating enable
for_window [class="Xfce4-notifyd"] floating enable
#exec --no-startup-id "[ -x ${HOME}/xrandr-normal ]"
workspace_layout stacking
#exec cinnamon-settings-daemon
exec xsettingsd -c "${HOME}/.config/xsettingsd"
exec nm-applet
exec i3-msg 'rename workspace to "1: terminals"; exec urxvt'
exec thunderbird
exec hipchat
exec pidgin
exec firefox
exec subl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment