Skip to content

Instantly share code, notes, and snippets.

@alexlangberg
Created May 28, 2015 07:49
Show Gist options
  • Save alexlangberg/f6c98efddb8b67b8b37a to your computer and use it in GitHub Desktop.
Save alexlangberg/f6c98efddb8b67b8b37a to your computer and use it in GitHub Desktop.
Configuration file for i3
# 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. Will also be used by the bar unless a different font
# is used in the bar {} block below. ISO 10646 = Unicode
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, if you need a lot of unicode glyphs or
# right-to-left text rendering, you should instead use pango for rendering and
# chose a FreeType font, such as:
# font pango:DejaVu Sans Mono 10
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+q kill
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+ae 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+ae 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, 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+d focus child
# 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 (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 ae 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"
# Below here by alexlangberg
# screen setup
exec /home/alj/.i3/screens.sh
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run -b -nb '#000000' -nf '#aaaaaa' -sb '#4D679a' -sf '#ffffff' -fn 'Ubuntu 11'
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
# output DFP9
position top
tray_output primary
status_command i3status
font pango:Ubuntu 10
colors {
background #000000
statusline #383a3b
separator #222222
focused_workspace #4d679a #4d679a #ffffff
active_workspace #4d679a #4d679a #ffffff
inactive_workspace #000000 #000000 #aaaaaa
urgent_workspace #2f343a #900000 #ffffff
}
}
mouse_warping none
hide_edge_borders both
font pango:Ubuntu 10
# class border backgr. text indicator
client.focused #4d679a #4d679a #ffffff #2e9ef4
client.focused_inactive #383a3b #383a3b #ffffff #484e50
client.unfocused #383a3b #383a3b #ffffff #292d2e
client.urgent #4d679a #900000 #ffffff #900000
# Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the first scratchpad window
bindsym $mod+minus scratchpad show
# Show the sup-mail scratchpad window, if any.
# bindsym mod4+s [title="^Sup ::"] scratchpad show
# assign applications to workspaces
assign [class="jetbrains-phpstorm" title="/PhpStorm/"] 5
# custom stuff for windows
for_window [class="jetbrains-phpstorm" title="^Terminal$"] floating disable, move container to workspace 6
for_window [class="jetbrains-phpstorm" title="^Project$"] floating disable, move container to workspace 6
for_window [class="jetbrains-phpstorm" title="^Database$"] floating disable, move container to workspace 6
for_window [class="jetbrains-phpstorm" title="^Changes$"] floating disable, move container to workspace 6
for_window [class="jetbrains-phpstorm" title="^REST Client$"] floating disable, move container to workspace 6
# startup applications
exec --no-startup-id redshift-gtk
exec --no-startup-id ~/.pa-applet/pa-applet
exec --no-startup-id --tray wicd-gtk
exec --no-startup-id xfce4-power-manager
exec --no-startup-id xfce4-taskmanager
exec --no-startup-id remmina
#exec --no-startup-id ~/.dropbox-dist/dropboxd
#exec --no-startup-id transmission-gtk
# turn off screensaver and standby
exec xset -dpms
exec xset s noblank
exec xset s 0 0
exec xset s off
# pulseaudio default sound card selection
# exec --no-startup-id pactl set-card-profile alsa_card.pci-0000_01_00.1 output:hdmi-stereo-extra1
# exec --no-startup-id pactl set-default-sink alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1
# custom hotkeys
bindsym $mod+Shift+Control+Delete exec "/home/alj/.i3/lock.sh && sudo pm-hibernate"
bindsym Shift+Control+Delete exec xfce4-taskmanager
bindsym Print exec xfce4-screenshooter
# spotify hotkeys
bindsym XF86AudioPlay exec ~/.spotify_hotkeys/spotify_hotkeys.sh play
bindsym XF86AudioPrev exec ~/.spotify_hotkeys/spotify_hotkeys.sh prev
bindsym XF86AudioNext exec ~/.spotify_hotkeys/spotify_hotkeys.sh next
# display and workspace setup
# use "xrandr --query" to see available outputs
# work computer
workspace 1 output DFP13
workspace 4 output DFP13
workspace 7 output DFP13
workspace 0 output DFP9
workspace 2 output DFP9
workspace 5 output DFP9
workspace 8 output DFP9
workspace 10 output DFP9
workspace 11 output DFP9
workspace 3 output DFP1
workspace 6 output DFP1
workspace 9 output DFP1
# switch to workspace, keypad
bindsym $mod+KP_1 workspace 1
bindsym $mod+KP_4 workspace 4
bindsym $mod+KP_7 workspace 7
bindsym $mod+KP_0 workspace 0
bindsym $mod+KP_2 workspace 2
bindsym $mod+KP_5 workspace 5
bindsym $mod+KP_8 workspace 8
bindsym $mod+KP_Divide workspace 10
bindsym $mod+KP_Multiply workspace 11
bindsym $mod+KP_3 workspace 3
bindsym $mod+KP_6 workspace 6
bindsym $mod+KP_9 workspace 9
# move focused container to workspace
bindsym $mod+Shift+KP_0 move container to workspace 0
bindsym $mod+Shift+KP_1 move container to workspace 1
bindsym $mod+Shift+KP_2 move container to workspace 2
bindsym $mod+Shift+KP_3 move container to workspace 3
bindsym $mod+Shift+KP_4 move container to workspace 4
bindsym $mod+Shift+KP_5 move container to workspace 5
bindsym $mod+Shift+KP_6 move container to workspace 6
bindsym $mod+Shift+KP_7 move container to workspace 7
bindsym $mod+Shift+KP_8 move container to workspace 8
bindsym $mod+Shift+KP_9 move container to workspace 9
bindsym $mod+Shift+KP_Divide move container to workspace 10
bindsym $mod+Shift+KP_Multiply move container to workspace 11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment