278 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			278 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| set $mod Mod4
 | ||
| 
 | ||
| # Font for window titles. Will also be used by the bar unless a different font
 | ||
| # is used in the bar {} block below.
 | ||
| font pango:Maple Mono NF 8
 | ||
| 
 | ||
| # Monitors
 | ||
| set $pm eDP-1
 | ||
| set $sm HDMI-1
 | ||
| set $dm DP-1
 | ||
| 
 | ||
| # Start autotiling
 | ||
| exec_always --no-startup-id autotiling
 | ||
| 
 | ||
| # Xfce4 binds
 | ||
| # Open whisketmenu
 | ||
| # bindsym $mod+d exec xfce4-popup-whiskermenu
 | ||
| 
 | ||
| # Background
 | ||
| exec nitrogen --restore
 | ||
| # Network Manager
 | ||
| exec --no-startup-id nm-applet
 | ||
| # Start Picom
 | ||
| exec_always  picom
 | ||
| # Hide Polybar
 | ||
| bindsym $mod+Escape exec polybar-msg cmd toggle
 | ||
| 
 | ||
| # Scratchpad
 | ||
| bindsym $mod+Shift+m move scratchpad
 | ||
| bindsym $mod+m scratchpad show
 | ||
| 
 | ||
| # Windows border/Tittle bar
 | ||
| default_border pixel 3
 | ||
| default_floating_border pixel 2
 | ||
| # rofi bind
 | ||
| bindsym $mod+d exec rofi -show drun -disable-history -show-icons
 | ||
| 
 | ||
| # Gaps
 | ||
| gaps inner 4
 | ||
| gaps outer 0
 | ||
| 
 | ||
| # Start XDG autostart .desktop files using dex. See also
 | ||
| # https://wiki.archlinux.org/index.php/XDG_Autostart
 | ||
| exec --no-startup-id dex --autostart --environment i3
 | ||
| 
 | ||
| # The combination of xss-lock, nm-applet and pactl is a popular choice, so
 | ||
| # they are included here as an example. Modify as you see fit.
 | ||
| 
 | ||
| # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
 | ||
| # screen before suspend. Use loginctl lock-session to lock your screen.
 | ||
| # exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
 | ||
| 
 | ||
| # Use pactl to adjust volume in PulseAudio.
 | ||
| bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
 | ||
| bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $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
 | ||
| 
 | ||
| # Use Mouse+$mod to drag floating windows to their wanted position
 | ||
| floating_modifier $mod
 | ||
| 
 | ||
| # move tiling windows via drag & drop by left-clicking into the title bar,
 | ||
| # or left-clicking anywhere into the window while holding the floating modifier.
 | ||
| tiling_drag modifier titlebar
 | ||
| 
 | ||
| # start a terminal
 | ||
| bindsym $mod+Return exec alacritty
 | ||
| bindsym $mod+Shift+Return exec kitty
 | ||
| 
 | ||
| # kill focused window
 | ||
| bindsym $mod+q kill
 | ||
| 
 | ||
| # start dmenu (a program launcher)
 | ||
| # bindsym $mod+d exec --no-startup-id dmenu_run
 | ||
| # A more modern dmenu replacement is rofi:
 | ||
| # bindcode $mod+40 exec "rofi -modi drun,run -show drun"
 | ||
| # There also is i3-dmenu-desktop which only displays applications shipping a
 | ||
| # .desktop file. It is a wrapper around dmenu, so you need that installed.
 | ||
| # bindcode $mod+40 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)
 | ||
| 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
 | ||
| 
 | ||
| # Define names for default workspaces for which we configure key bindings later on.
 | ||
| # We use variables to avoid repeating the names in multiple places.
 | ||
| # Monitor eDP1 (Internal Display)
 | ||
| workspace 1 output $pm
 | ||
| workspace 2 output $pm
 | ||
| workspace 3 output $pm
 | ||
| workspace 4 output $pm
 | ||
| workspace 5 output $pm
 | ||
| workspace 6 output $pm
 | ||
| workspace 7 output $pm
 | ||
| workspace 8 output $pm
 | ||
| workspace 9 output $pm
 | ||
| workspace 10 output $pm
 | ||
| 
 | ||
| # Monitor DP-1 (External DP Cable Only)
 | ||
| workspace 11 output $dm
 | ||
| workspace 12 output $dm
 | ||
| workspace 13 output $dm
 | ||
| workspace 14 output $dm
 | ||
| workspace 15 output $dm
 | ||
| workspace 16 output $dm
 | ||
| workspace 17 output $dm
 | ||
| workspace 18 output $dm
 | ||
| workspace 19 output $dm
 | ||
| workspace 20 output $dm
 | ||
| 
 | ||
| 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 $ws11 "11"
 | ||
| set $ws12 "12"
 | ||
| set $ws13 "13"
 | ||
| set $ws14 "14"
 | ||
| set $ws15 "15"
 | ||
| set $ws16 "16"
 | ||
| set $ws17 "17"
 | ||
| set $ws18 "18"
 | ||
| set $ws19 "19"
 | ||
| set $ws20 "20"
 | ||
| 
 | ||
| # switch to workspace (Internal Display)
 | ||
| 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
 | ||
| 
 | ||
| # DP-1 Display
 | ||
| bindsym Mod1+1 workspace number $ws11
 | ||
| bindsym Mod1+2 workspace number $ws12
 | ||
| bindsym Mod1+3 workspace number $ws13
 | ||
| bindsym Mod1+4 workspace number $ws14
 | ||
| bindsym Mod1+5 workspace number $ws15
 | ||
| bindsym Mod1+6 workspace number $ws16
 | ||
| bindsym Mod1+7 workspace number $ws17
 | ||
| bindsym Mod1+8 workspace number $ws18
 | ||
| bindsym Mod1+9 workspace number $ws19
 | ||
| bindsym Mod1+0 workspace number $ws20
 | ||
| 
 | ||
| # move focused container to workspace (Internal Display)
 | ||
| 
 | ||
| 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
 | ||
| 
 | ||
| # move focused container to workspace (DP-1 Display)
 | ||
| bindsym Mod1+Shift+1 move container to workspace number $ws11
 | ||
| bindsym Mod1+Shift+2 move container to workspace number $ws12
 | ||
| bindsym Mod1+Shift+3 move container to workspace number $ws13
 | ||
| bindsym Mod1+Shift+4 move container to workspace number $ws14
 | ||
| bindsym Mod1+Shift+5 move container to workspace number $ws15
 | ||
| bindsym Mod1+Shift+6 move container to workspace number $ws16
 | ||
| bindsym Mod1+Shift+7 move container to workspace number $ws17
 | ||
| bindsym Mod1+Shift+8 move container to workspace number $ws18
 | ||
| bindsym Mod1+Shift+9 move container to workspace number $ws19
 | ||
| bindsym Mod1+Shift+0 move container to workspace number $ws20
 | ||
| 
 | ||
| # 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 or $mod+r
 | ||
|         bindsym Return mode "default"
 | ||
|         bindsym Escape mode "default"
 | ||
|         bindsym $mod+r mode "default"
 | ||
| }
 | ||
| 
 | ||
| bindsym $mod+r mode "resize"
 | ||
| 
 | ||
| # Define colors variables:
 | ||
| # bg tab mode
 | ||
| set $color1     #1d2021
 | ||
| set $color2     #d8a657
 | ||
| set $color3     #fabd3f
 | ||
| set $color4     #928374
 | ||
| 
 | ||
| # define colors for windows:
 | ||
| #class                          border          bground         text            indicator       child_border
 | ||
| client.focused               $color2           $color1         $color3           $color2         $color2
 | ||
| client.unfocused             $color4           $color1         $color4           $color1         $color1
 | ||
| client.focused_inactive      $color4           $color1         $color4           $color4         $color1
 | ||
| client.urgent                $color3           $color3         $color2           $color2         $color1
 | ||
| 
 | ||
| # Start Polybar
 | ||
| exec_always ~/.config/polybar/launch.sh &
 |