Last active
August 4, 2019 18:16
-
-
Save GordonGustafson/34f6f6228b57c431bbe8468d7bb0ec85 to your computer and use it in GitHub Desktop.
Gordon's i3 configuration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set $mod Mod4 | |
set $alt Mod1 | |
# 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 pango:Consolas 10 | |
# 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+q kill | |
# start dmenu (a program launcher). | |
bindsym $alt+space exec dmenu_run | |
# 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 | |
# change focus | |
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 | |
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+d split v | |
# split in vertical orientation | |
bindsym $mod+v split s | |
# enter fullscreen mode for the focused container (95 is F11) | |
bindcode 95 fullscreen | |
# change container layout (stacked, tabbed, toggle split) | |
bindsym $mod+o layout stacking | |
bindsym $mod+comma layout tabbed | |
bindsym $mod+period layout toggle split | |
# toggle tiling / floating | |
bindsym $mod+Shift+space floating toggle | |
# change focus between tiling / floating windows | |
bindsym $mod+t focus mode_toggle | |
# focus the parent container | |
bindsym $mod+a focus parent | |
# focus the child container | |
#bindsym $mod+d focus child | |
# switch to workspace | |
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 10 | |
# bind ` to another workspace | |
bindsym $mod+grave workspace 0 | |
# move focused container to workspace | |
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 10 | |
# bind ` to another workspace | |
bindsym $mod+Shift+grave move container to workspace 0 | |
# reload the configuration file | |
bindsym $mod+Shift+r reload | |
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) | |
bindsym $mod+Shift+p restart | |
# exit i3 (logs you out of your X session) | |
bindsym $mod+Shift+period 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'" | |
# Volume controls | |
bindsym XF86AudioRaiseVolume exec amixer -q set Master 2%+ unmute | |
bindsym XF86AudioLowerVolume exec amixer -q set Master 2%- unmute | |
bindsym XF86AudioMute exec amixer -q set Master toggle | |
# Sreen brightness controls | |
bindsym XF86MonBrightnessUp exec xbacklight -inc 1 # increase screen brightness | |
bindsym XF86MonBrightnessDown exec xbacklight -dec 1 # decrease screen brightness | |
bindsym Control+XF86MonBrightnessUp exec xbacklight -inc 10 # increase screen brightness a lot | |
bindsym Control+XF86MonBrightnessDown exec xbacklight -dec 10 # decrease screen brightness a lot | |
bindsym F4 exec xrandr --output HDMI1 --mode 1920x1080 --left-of eDP1 | |
bindsym Shift+F4 exec xrandr --output HDMI1 --off | |
bindsym Print exec xwd -root | convert - ~/Pictures/screenshot-$(date +"%Y-%m-%d-%H:%M:%S").png | |
# shortcut for disabling the mouse | |
bindsym $mod+m exec xinput --disable "SynPS/2 Synaptics TouchPad" | |
bindsym $mod+Shift+m exec xinput --enable "SynPS/2 Synaptics TouchPad" | |
# 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 8 px | |
bindsym j resize grow height 8 px | |
bindsym k resize shrink height 8 px | |
bindsym l resize grow width 8 px | |
# same bindings, but for the arrow keys | |
bindsym Left resize shrink width 8 px | |
bindsym Down resize grow height 8 px | |
bindsym Up resize shrink height 8 px | |
bindsym Right resize grow width 8 px | |
# I have no clue why ppt and <ppt> units don't work, the userguide says | |
# they do for tiling containers... | |
bindsym t resize grow right 11 <ppt> | |
bindsym Shift+t resize shrink right 11 <ppt> | |
# back to normal: Enter or Escape | |
bindsym Return mode "default" | |
bindsym Escape mode "default" | |
} | |
bindsym $mod+r mode "resize" | |
# set width only works for floating windows :( | |
# bindsym $mod+Shift+t resize set width 1280 px | |
bindsym $mod+Control+h move workspace to output left | |
bindsym $mod+Control+j move workspace to output down | |
bindsym $mod+Control+k move workspace to output up | |
bindsym $mod+Control+l move workspace to output right | |
# Start i3bar to display a workspace bar (plus the system information i3status | |
# finds out, if available) | |
bar { | |
status_command i3status | |
} | |
# Uncomment these once you're done messing with unicode input! | |
# bindsym Control+Shift+1 exec "setxkbmap us" | |
# bindsym Control+Shift+2 exec "setxkbmap dvorak" | |
exec --no-startup-id nm-applet | |
# Don't automatically move the mouse to whatever window is focused | |
mouse_warping none | |
hide_edge_borders both |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment