diff --git a/.config/i3/config b/.config/i3/config index 9e3d83b..af68694 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -1,229 +1,203 @@ -# 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 some time, delete -# this file and re-run i3-config-wizard(1). -# +##--- General ---## -# i3 config file (v4) -# -# Please see https://i3wm.org/docs/userguide.html for a complete reference! +# Basic definitions +set $mod Mod4 +set $mod2 Mod1 +smart_gaps on +gaps inner 10 +gaps outer 0 +hide_edge_borders both +for_window [class="^.*"] border pixel 2 +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod -set $mod Mod4 +# Application startup +exec_always --no-startup-id feh --bg-fill --no-fehbg $HOME/Pictures/wallpaper.jpg +exec --no-startup-id firefox +exec --no-startup-id urxvt +exec --no-startup-id thunar --daemon +exec --no-startup-id thunar +exec --no-startup-id xss-lock -- $HOME/.scripts/wm/lock.sh & # Colors -set $bg-color #404552 -set $bg-color-inactive #2B2E39 -set $bg-color-urgent #DC7A43 -set $text-color #FFFFFF -set $text-color-inactive #676E7D - -# Font for window titles. Will also be used by the bar unless a different font -# is used in the bar {} block below. -#font pango:monospace 8 - -# This font is widely installed, provides lots of unicode glyphs, right-to-left -# text rendering and scalability on retina/hidpi displays (thanks to pango). -font pango:DejaVu Sans Mono 8 - -# Before i3 v4.8, we used to recommend this one as the default: -# 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, its unicode glyph coverage is limited, the old -# X core fonts rendering does not support right-to-left and this being a bitmap -# font, it doesn’t scale on retina/hidpi displays. +set $bg-color #404552 +set $bg-color-inactive #2B2E39 +set $bg-color-urgent #DC7A43 +set $text-color #FFFFFF +set $text-color-inactive #676E7D + +# Xresources colors +set_from_resource $darkblack color0 #000000 +set_from_resource $black color8 #000000 +set_from_resource $darkred color1 #000000 +set_from_resource $red color9 #000000 +set_from_resource $darkgreen color2 #000000 +set_from_resource $green color10 #000000 +set_from_resource $darkyellow color3 #000000 +set_from_resource $yellow color11 #000000 +set_from_resource $darkblue color4 #000000 +set_from_resource $blue color12 #000000 +set_from_resource $darkmagenta color5 #000000 +set_from_resource $magenta color13 #000000 +set_from_resource $darkcyan color6 #000000 +set_from_resource $cyan color14 #000000 +set_from_resource $darkwhite color7 #000000 +set_from_resource $white color15 #000000 +set $transparent #00000000 -# Use Mouse+$mod to drag floating windows to their wanted position -floating_modifier $mod +# Window colors +# border background text indicator +client.focused $text-color-inactive $text-color-inactive $text-color $darkgreen +client.unfocused $bg-color-inactive $bg-color-inactive $text-color-inactive $darkgreen +client.focused_inactive $bg-color-inactive $bg-color-inactive $text-color-inactive $darkgreen +client.urgent $bg-color-urgent $bg-color-urgent $text-color $darkgreen + +bar { + colors { + background $bg-color-inactive + separator #757575 + # border background text + focused_workspace $bg-color $bg-color $text-color + inactive_workspace $bg-color-inactive $bg-color-inactive $text-color-inactive + urgent_workspace $bg-color-urgent $bg-color-urgent $text-color + } + font pango:DejaVu Sans Mono 8 + status_command i3blocks -c $HOME/.config/i3/blocks + #strip_workspace_numbers yes + tray_output primary +} -# start a terminal +##--- Bindings ---## + +#--- Basic bindings ---# + +# Start a terminal bindsym $mod+Return exec i3-sensible-terminal -# kill focused window +# Kill focused window bindsym $mod+Shift+q kill -# start dmenu (a program launcher) -#bindsym $mod+d exec dmenu_run -nf "$text-color-inactive" -nb "$bg-color-inactive" -sf "$text-color" -sb "$bg-color" +# Floating +bindsym $mod+space focus mode_toggle +bindsym $mod+Shift+space floating toggle + +#--- Letter key bindings ---# + +# Start rofi (program launcher) bindsym $mod+d exec rofi -show run -lines 8 -separator-style "solid" -hide-scrollbar -font "DejaVu Sans Mono 12" -# 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+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) +# Split +bindsym $mod+h split h # horizontal orientation +bindsym $mod+v split v # vertical orientation + +# Container +bindsym $mod+f fullscreen toggle 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 - -set $workspace1 "1 " -set $workspace2 "2 " -set $workspace3 "3 " -set $workspace4 "4 " - -# switch to workspace -bindsym $mod+1 workspace $workspace1 -bindsym $mod+2 workspace $workspace2 -bindsym $mod+3 workspace $workspace3 -bindsym $mod+4 workspace $workspace4 -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 $workspace1 -bindsym $mod+Shift+2 move container to workspace $workspace2 -bindsym $mod+Shift+3 move container to workspace $workspace3 -bindsym $mod+Shift+4 move container to workspace $workspace4 -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 - -assign [class="Firefox"] $workspace1 -assign [class="Chromium"] $workspace1 -assign [class="jetbrains-idea"] $workspace2 -assign [class="Gedit"] $workspace2 -assign [class="URxvt"] $workspace3 -assign [class="Thunar"] $workspace4 - -# reload the configuration file -bindsym $mod+Shift+c reload -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +# Lock +bindsym $mod+$mod2+l exec $HOME/.scripts/wm/lock.sh + +# 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) +# 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" -} +#--- Workspace bindings ---# + +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 $ws10 "10" + +# Assign workspace to monitor +workspace $ws1 output eDP-1 +workspace $ws2 output eDP-1 +workspace $ws3 output eDP-1 +workspace $ws4 output eDP-1 +workspace $ws5 output eDP-1 + +# 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 $ws10 + +# 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 $ws10 + +# Move workspace +bindsym $mod+Control+Left move workspace to output left +bindsym $mod+Control+Right move workspace to output right -bindsym $mod+r mode "resize" +# Get window name +# xprop -> WM_CLASS +assign [class="Firefox"] $ws1 +assign [class="URxvt"] $ws3 +assign [class="Thunar"] $ws4 +assign [class="krita"] $ws5 -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) -bar { - status_command i3blocks -c $HOME/.config/i3/blocks - colors { - background $bg-color-inactive - separator #757575 - # border background text - focused_workspace $bg-color $bg-color $text-color - inactive_workspace $bg-color-inactive $bg-color-inactive $text-color-inactive - urgent_workspace $bg-color-urgent $bg-color-urgent $text-color - } -} +for_window [class="krita"] focus +for_window [class="feh"] floating enable +for_window [class="QtBank"] floating enable + +#--- Function key bindings ---# -# Window colors -# border background text indicator -client.focused $bg-color $bg-color $text-color #00FF00 -client.unfocused $bg-color-inactive $bg-color-inactive $text-color-inactive #00FF00 -client.focused_inactive $bg-color-inactive $bg-color-inactive $text-color-inactive #00FF00 -client.urgent $bg-color-urgent $bg-color-urgent $text-color #00FF00 - -# Keybindings -bindsym $mod+Mod1+l exec $HOME/.scripts/wm/lock.sh -# Volume -bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q -D pulse sset Master 5%+ unmute && pkill -RTMIN+1 i3blocks -bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q -D pulse sset Master 5%- unmute && pkill -RTMIN+1 i3blocks -bindsym XF86AudioMute exec --no-startup-id amixer -q -D pulse sset Master toggle && pkill -RTMIN+1 i3blocks # Screen brightness bindsym $mod+F3 exec brightnessctl -q s +10% && pkill -RTMIN+2 i3blocks bindsym $mod+F2 exec brightnessctl -q s 10%- && pkill -RTMIN+2 i3blocks -# Screenshot -bindsym --release Print exec scrot -e "mv \$f $HOME/Pictures/screen_captures/" # Fullscreen -bindsym --release Shift+Print exec scrot -s -e "mv \$f $HOME/Pictures/screen_captures/" # Selection -bindsym --release $mod+Print exec scrot -u -e "mv \$f $HOME/Pictures/screen_captures/" # Focused window + # Touchscreen toggle bindsym $mod+F7 exec $HOME/.scripts/touchscreen.sh -# Window rules -smart_gaps on -gaps inner 10 -gaps outer 10 -hide_edge_borders both -for_window [class=".*"] border pixel 2 -for_window [class="feh"] floating enable - -# Application startup -exec_always --no-startup-id feh --bg-fill $HOME/Pictures/wallpaper.jpg --no-fehbg -exec --no-startup-id firefox -exec --no-startup-id urxvt -exec --no-startup-id thunar --daemon -exec --no-startup-id thunar -exec --no-startup-id xss-lock -- $HOME/.scripts/wm/lock.sh & +#--- Arrow key bindings ---# + +# Change focus +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+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right +# Resize window +bindsym $mod+Mod1+Left resize shrink width 10 px or 10 ppt +bindsym $mod+Mod1+Down resize shrink height 10 px or 10 ppt +bindsym $mod+Mod1+Up resize grow height 10 px or 10 ppt +bindsym $mod+Mod1+Right resize grow width 10 px or 10 ppt + +#--- Media key bindings ---# -# Reload Xresources -# xrdb -load ~/.Xresources +# Screenshot +bindsym --release Print exec scrot -e "mv \$f $HOME/Pictures/screen_captures/" # Fullscreen +bindsym --release Shift+Print exec scrot -s -e "mv \$f $HOME/Pictures/screen_captures/" # Selection +bindsym --release $mod+Print exec scrot -u -e "mv \$f $HOME/Pictures/screen_captures/" # Focused window -# Get window name -# xprop -> WM_CLASS +# Volume +bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q -D pulse sset Master 5%+ unmute && pkill -RTMIN+1 i3blocks +bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q -D pulse sset Master 5%- unmute && pkill -RTMIN+1 i3blocks +bindsym XF86AudioMute exec --no-startup-id amixer -q -D pulse sset Master toggle && pkill -RTMIN+1 i3blocks