diff options
author | Vincent Ambo <tazjin@gmail.com> | 2017-10-20T21·22+0200 |
---|---|---|
committer | Vincent Ambo <tazjin@gmail.com> | 2017-10-20T22·05+0200 |
commit | 7fe75e01386f24385ae9ccc624e3d8561df8bcbb (patch) | |
tree | b72d47b17c2006a5f103da3e1c4d53552b35b26c /dotfiles/i3.conf | |
parent | a8a9bf130048ec1c71ed44a3930da0bd13c626d8 (diff) |
feat(dotfiles): Begin controlling various dotfiles from Nix
Moves my i3 configuration into a nix derivation called 'tazjins-dotfiles'. A good step towards fully declarative system configuration!
Diffstat (limited to 'dotfiles/i3.conf')
-rw-r--r-- | dotfiles/i3.conf | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/dotfiles/i3.conf b/dotfiles/i3.conf new file mode 100644 index 000000000000..d42ce2716cdf --- /dev/null +++ b/dotfiles/i3.conf @@ -0,0 +1,163 @@ +# i3 config file (v4) +# +# Please see http://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +font pango:Input Mono 11 + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec alacritty + +# start an emacs frame +bindsym $mod+e exec emacsclient -c -n + +# kill focused window +bindsym $mod+Shift+q kill + +# start rofi (a program launcher) +bindsym XF86Search exec rofi -show run +bindsym $mod+d exec rofi -show run + +bindsym $mod+p exec passmenu + +# 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 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 toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+x 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 + +# 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 + +# 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 + +# move workspace to next output +bindsym $mod+Shift+m move workspace to output left + +# 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 semicolon 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" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3status + position top +} + +# Disable window title bars +new_window 1pixel + +# Switch back and forth between workspaces automatically +workspace_auto_back_and_forth yes + +# Brightness controls +bindsym XF86MonBrightnessDown exec light -U 10 +bindsym XF86MonBrightnessUp exec light -A 10 + +# Volume controls +bindsym XF86AudioMute exec --no-startup-id "pulseaudio-ctl mute" +bindsym XF86AudioRaiseVolume exec --no-startup-id "pulseaudio-ctl up" +bindsym XF86AudioLowerVolume exec --no-startup-id "pulseaudio-ctl down" + +# Lock screen +bindsym F7 exec i3lock + +# Enable floating for popup windows (e.g. pinentry) +for_window [title="pinentry"] floating enable |