# vim: filetype=i3config # https://i3wm.org/docs/userguide.html # set modifiers set $mod Mod4 set $alt Mod1 # use mouse+$mod to drag floating windows to their wanted position floating_modifier $alt ## autostart # exec --no-startup-id xsettingsd & exec --no-startup-id picom -b exec --no-startup-id flashfocus & exec --no-startup-id nextcloud & exec --no-startup-id copyq & exec --no-startup-id clight & exec --no-startup-id nm-applet & exec --no-startup-id udiskie --automount --file-manager pcmanfm --tray --notify & exec --no-startup-id /usr/lib/pam_kwallet_init exec --no-startup-id remind -z -k'dunstify -i "calendar" "⏰ reminder!" "%s" &' ~/.reminders & exec --no-startup-id /home/yigit/.local/bin/pulse-volume-watcher.py | xob -m 80 & exec --no-startup-id $HOME/.config/polybar/launch.sh & exec --no-startup-id ~/.fehbg & exec --no-startup-id gebaard -b & # swap caps lock and escape, set keyboard layout exec --no-startup-id setxkbmap -model pc105 -layout us -variant colemak -option caps:backspace # tap ctrl to esc, hold ctrl to ctrl exec --no-startup-id xcape -e 'Control_L=Escape' & # disable screensaver, beep and power saving exec --no-startup-id xset -dpms & exec --no-startup-id xset s off & exec --no-startup-id xset -b & exec --no-startup-id xinput set-prop "ELAN1200:00 04F3:3045 Touchpad" "libinput Natural Scrolling Enabled" 1 & exec --no-startup-id xinput set-prop "ELAN1200:00 04F3:3045 Touchpad" "libinput Tapping Enabled" 1 & gaps inner 5 gaps outer 2 # font for window titles font pango:Iosevka 11 ## bindings # done, {task,time}warrior control suite bindcode $mod+42 exec --no-startup-id ~/.local/bin/done # type the contents of the clipboard with mod+p bindcode --release $mod+27 exec --no-startup-id ~/.local/bin/type_clipboard.sh # launch emoji picker with mod+c bindcode $mod+54 exec --no-startup-id rofimoji --skin-tone neutral # get the mouse out of the way with mod+y bindcode $mod+32 exec --no-startup-id xdotool mousemove 896 5 # bookmark from clipboard with mod+l bindcode $mod+30 exec --no-startup-id ~/.local/bin/bukuadd_c # swap caps lock and escape, set keyboard layout with mod+] bindcode $mod+35 exec --no-startup-id "setxkbmap -model pc105 -layout us,us,tr -variant ,colemak, -option grp:alt_shift_toggle,caps:backspace" # use flameshot with print screen bindsym Print exec flameshot gui # media keys # TODO: test these for luchs keyboard <08-10-21, yigit> # bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master 2%+ bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master 2%- bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause # for spotify bindsym XF86AudioPrev exec --no-startup-id playerctl previous bindsym XF86AudioNext exec --no-startup-id playerctl next bindsym XF86Tools exec --no-startup-id mpc toggle # for mpd/ncmpcpp bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 5 bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5 bindsym XF86TouchpadToggle exec --no-startup-id perl -e '{`xinput list-props 11` =~ /^.*Device Enabled.+?(\d)$/m and {$1 ? `xinput --disable 11 && dunstify -a "touchpad" "disabled"` : `xinput --enable 11 && dunstify -a "touchpad" "enabled"`}} ' # make the currently focused window a scratchpad bindcode $mod+Shift+20 move scratchpad # show the first scratchpad window bindcode $mod+20 scratchpad show # pause notifications for a while with mod+shift+y bindcode $mod+Shift+32 exec ~/.local/bin/toggle_notifications.sh ## shortcuts for frequent programs # zotero on mod+shift+z bindcode $mod+Shift+52 exec zotero # thunar on mod+shift+t bindcode $mod+Shift+41 exec thunar # start a terminal bindsym $mod+Return exec kitty # start rofi with mod+s bindcode $mod+40 exec rofi -show combi # launch the poweroff menu bindsym $mod+Shift+Escape exec --no-startup-id ~/.local/bin/power.sh # kill focused window bindcode $mod+Shift+24 kill bindsym --whole-window $mod+button2 kill # change focus on mod+hnei (qwerty hjkl) bindcode $mod+43 focus left bindcode $mod+44 focus down bindcode $mod+45 focus up bindcode $mod+46 focus right # move focused window on mod+shift+hnei bindcode $mod+Shift+43 move left bindcode $mod+Shift+44 move down bindcode $mod+Shift+45 move up bindcode $mod+Shift+46 move right # split in horizontal orientation with mod+b bindcode $mod+56 split h # split in vertical orientation with mod+v bindcode $mod+55 split v # enter fullscreen mode for the focused container with mod+t bindcode $mod+41 fullscreen toggle # change container layout (stacked, tabbed, toggle split) bindcode $mod+39 layout stacking bindcode $mod+25 layout tabbed bindcode $mod+26 layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle # toggle sticky floating window with mod+a bindcode $mod+38 sticky toggle # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # Define names for default workspaces for which we configure key bindings later on. # We use variables to avoid repeating the names in multiple places. 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" set $wszotero "zotero" set $wsdesktop "desktop" set $wsbrowser "browser" # 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 bindcode $mod+49 workspace $wszotero bindcode $mod+60 workspace $wsdesktop bindcode $mod+21 workspace $wsbrowser # 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 bindcode $mod+Shift+49 move container to workspace $wszotero bindcode $mod+Shift+60 move container to workspace $wsdesktop bindcode $mod+Shift+21 move container to workspace $wsbrowser # reload the configuration file bindcode $mod+Shift+54 reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindcode $mod+Shift+27 restart default_border pixel 2 for_window [class="Zotero" instance="Toplevel" title="Quick Format Citation"] floating enable for_window [class="Zotero" instance="Toplevel" title="Progress"] floating enable for_window [class="Zotero" window_role="pref"] floating enable for_window [class="zoom" title="Chat"] floating enable for_window [class="Dia" window_role="toolbox_window"] floating enable for_window [class="Pavucontrol" title="Volume Control"] floating enable assign [class="^Brave-browser$"] $wsbrowser assign [class="^Zotero$"] $wszotero # class border background text indicator child_border client.focused #ae81ff #080808 #85dc85 #ff5454 #ae81ff client.focused_inactive #ae81ff #9e9e9e #080808 #ff5454 #5f676a client.unfocused #ae81ff #323437 #b2b2b2 #ff5454 #222222 client.urgent #ae81ff #900000 #b2b2b2 #ff5454 #900000 client.placeholder #ae81ff #0c0c0c #b2b2b2 #ff5454 #0c0c0c client.background #ffffff # config hide_edge_borders smart workspace_auto_back_and_forth yes focus_follows_mouse no mouse_warping none focus_wrapping no