# --- # Lucy's Dotfiles # https://github.com/lucyy-mc/dotfiles-new # i3 config file # --- #windows key set $mod Mod4 font pango:JetBrains Mono 12px #font-0 = "DejaVu Sans Mono:size=10;3" # --- # Start important stuff # --- exec --no-startup-id picom & --experimental-backends & exec_always --no-startup-id $HOME/.config/polybar/scripts/launch.sh & exec --no-startup-id dunst & exec --no-startup-id nm-applet exec --no-startup-id "setxkbmap -layout 'us,sk,sk' -variant ',qwerty,qwerty_bksl'" # --- # Audio keybinds # --- set $refresh_i3status killall -SIGUSR1 i3status bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +1% && $refresh_i3status bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -1% && $refresh_i3status bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause bindsym XF86AudioNext exec --no-startup-id playerctl next bindsym XF86AudioPrev exec --no-startup-id playerctl previous # --- # Window management keybinds # --- # make them floating floating_modifier $mod # start a terminal #bindsym $mod+Return exec i3-sensible-terminal bindsym $mod+Return exec alacritty # kill focused window bindsym $mod+Shift+q kill # start rofi bindsym $mod+d exec rofi -show drun -run-command "$HOME/.config/rofi/scripts/launch_on_current_workspace.sh '{cmd}'" # change focus bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l focus right 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 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 # bindsym $mod+Shift+v split h bindsym $mod+v split v # fullscreen bindsym $mod+f fullscreen toggle # 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+space floating toggle # change focus between tiling / floating windows bindsym $mod+Shift+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent # take screenshot bindsym Print exec flameshot gui & # --- # Workspace keybinds (i have a multihead setup so dont really use these, # they're just the defaults) # --- 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" # switch to workspace bindsym $mod+1 workspace number $ws1 bindsym $mod+2 workspace number $ws2 bindsym $mod+3 workspace number $ws3 bindsym $mod+4 workspace number $ws4 bindsym $mod+5 workspace number $ws5 bindsym $mod+6 workspace number $ws6 bindsym $mod+7 workspace number $ws7 bindsym $mod+8 workspace number $ws8 bindsym $mod+9 workspace number $ws9 bindsym $mod+0 workspace number $ws10 # move focused container to workspace bindsym $mod+Shift+1 move container to workspace number $ws1 bindsym $mod+Shift+2 move container to workspace number $ws2 bindsym $mod+Shift+3 move container to workspace number $ws3 bindsym $mod+Shift+4 move container to workspace number $ws4 bindsym $mod+Shift+5 move container to workspace number $ws5 bindsym $mod+Shift+6 move container to workspace number $ws6 bindsym $mod+Shift+7 move container to workspace number $ws7 bindsym $mod+Shift+8 move container to workspace number $ws8 bindsym $mod+Shift+9 move container to workspace number $ws9 bindsym $mod+Shift+0 move container to workspace number $ws10 bindsym $mod+Shift+c reload bindsym $mod+Shift+r restart 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 # --- bindsym $mod+Control+j resize shrink width 10 px or 10 ppt bindsym $mod+Control+k resize grow height 10 px or 10 ppt bindsym $mod+Control+l resize shrink height 10 px or 10 ppt bindsym $mod+Control+semicolon resize grow width 10 px or 10 ppt # same bindings, but for the arrow keys bindsym $mod+Control+Left resize shrink width 10 px or 10 ppt bindsym $mod+Control+Down resize grow height 10 px or 10 ppt bindsym $mod+Control+Up resize shrink height 10 px or 10 ppt bindsym $mod+Control+Right resize grow width 10 px or 10 ppt # --- # Notifications # --- for_window [window_type="notification"] floating enable, border none for_window [class="Lxpolkit"] sticky enable no_focus [window_type="notification"] # --- # Gaps and colours # --- for_window [class="^.*"] border none gaps inner 10 gaps outer 0 gaps top 30 mode "gaps" { bindsym 1 gaps outer all set 0 bindsym 2 gaps outer all set 12 bindsym 3 gaps outer all set 24 bindsym 4 gaps outer all set 36 bindsym 5 gaps outer all set 48 bindsym 6 gaps outer all set 60 bindsym 7 gaps outer all set 72 bindsym 8 gaps outer all set 84 bindsym 9 gaps outer all set 96 bindsym $mod+b mode "default" } bindsym $mod+b mode "gaps" set_from_resource $col12 color12 #000000 # class border background text indicator child-border client.focused $col12 $col12 #222222 #2e9ef4 #e6b3ff client.unfocused #222222 #222222 #888888 #292d2e #222222 title_align center # --- # Screen # --- bindsym $mod+F12 exec betterlockscreen -l bindsym $mod+F11 exec --no-startup-id betterlockscreen -l && systemctl suspend # bindsym $mod+Shift+m exec $HOME/.config/scripts/wallpaper_changer.sh bindsym $mod+minus move scratchpad bindsym $mod+plus scratchpad show bindsym $mod+Shift+m exec --no-startup-id $HOME/.config/scripts/wallpaper_changer.sh bindsym $mod+u exec --no-startup-id $HOME/.config/scripts/lichess_perf.sh # --- # Workspaces # --- #MOVING WORKSPACES DOESNT WORK YET UNFORTUNATELY, WILL FIX LATER ON # Assign the script to a variable #set $move_workspace_script $HOME/.config/scripts/move_workspace.sh # Use $mod+Shift+number to move the current workspace #bindsym $mod+F1 exec --no-startup-id $move_workspace_script 1 #bindsym $mod+F2 exec --no-startup-id $move_workspace_script 2 #bindsym $mod+F3 exec --no-startup-id $move_workspace_script 3 #bindsym $mod+F4 exec --no-startup-id $move_workspace_script 4 #bindsym $mod+F5 exec --no-startup-id $move_workspace_script 5 #bindsym $mod+F6 exec --no-startup-id $move_workspace_script 6 #bindsym $mod+F7 exec --no-startup-id $move_workspace_script 7 #bindsym $mod+F8 exec --no-startup-id $move_workspace_script 8 #bindsym $mod+F9 exec --no-startup-id $move_workspace_script 9 #bindsym $mod+F10 exec --no-startup-id $move_workspace_script 10 # --- # Startup programs # --- # Assign applications to workspaces assign [class="Firefox"] $ws1 assign [class="Chromium"] $ws4 assign [class="TelegramDesktop"] $ws5 assign [class="discord"] $ws6 # More assign statements can be added as needed. # Autostart applications on specific workspaces exec --no-startup-id i3-msg 'workspace $ws2; exec firefox --restore' exec --no-startup-id i3-msg 'workspace $ws1; exec chromium --restore'