123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381 |
- # _ ___
- # |_|_ |___ ___ ___ ___ ___
- # | |_ |___| . | .'| . |_ -|
- # |_|___| |_ |__,| _|___|
- # |___| |_|
- # 1...............Variables
- # 2.........Gaps n' norders
- # 3..................Colors
- # 4................Bindings
- # 5..............Workspaces
- # 6.....................Bar
- # 7.................Runtime
- # -----[ Variables ]----- #
- # Modifier Keys (alt & win)
- set $mod Mod1
- set $win Mod4
- set $gaps 10
- # Terminal
- #set $terminal "alacritty --command /usr/bin/zsh"
- set $terminal "kitty /usr/bin/zsh"
- # File Browser
- set $file_browser "alacritty --class vifm --command /usr/bin/zsh -ic vifm"
- # Font (window title, bar)
- #font pango:scientifica 12
- font pango:Hack 12
- # -----[ Gaps and Borders ]----- #
- # Inner Gapsize (in px)
- gaps inner 5
- # Outer Gapsize (in px)
- gaps outer 5
- # Border width (in px)
- new_window pixel 2
- # -----[ Colors ]----- #
- # load color configuration from Xresource file (pywal)
- set_from_resource $foreground foreground #292d3e
- set_from_resource $background background #292d3e
- set_from_resource $base00 color0 #292d3e
- set_from_resource $base01 color10 #444267
- set_from_resource $base02 color11 #32374d
- set_from_resource $base03 color8 #676e95
- set_from_resource $base04 color12 #8796b0
- set_from_resource $base05 color7 #959dcb
- set_from_resource $base06 color13 #959dcb
- set_from_resource $base07 color15 #ffffff
- set_from_resource $base08 color1 #f07178
- set_from_resource $base09 color9 #f78c6c
- set_from_resource $base0A color3 #ffcb6b
- set_from_resource $base0B color2 #c3e88d
- set_from_resource $base0C color6 #89ddff
- set_from_resource $base0D color4 #82aaff
- set_from_resource $base0E color5 #c792ea
- set_from_resource $base0F color14 #ff5370
- # -----[ Bindings ]----- #
- # Brightness Keys
- bindsym XF86MonBrightnessUp exec light -A 15
- bindsym XF86MonBrightnessDown exec light -U 15
- # Audio Keys - Volume and Mute
- bindsym $mod+plus exec --no-startup-id amixer -D pulse sset Master 5%+
- bindsym $mod+Shift+plus exec --no-startup-id amixer -D pulse sset Master 15%+
- bindsym $mod+minus exec --no-startup-id amixer -D pulse sset Master 5%-
- bindsym $mod+Shift+minus exec --no-startup-id amixer -D pulse sset Master 15%-
- bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 5%+
- bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 5%-
- bindsym XF86AudioMute exec --no-startup-id amixer -D pulse sset Master toggle
- # Spotify Control Scripts
- bindsym XF86AudioPrev exec --no-startup-id $HOME/.scripts/tools/spotify-ctrl Previous
- bindsym XF86AudioPlay exec --no-startup-id $HOME/.scripts/tools/spotify-ctrl Play
- bindsym XF86AudioNext exec --no-startup-id $HOME/.scripts/tools/spotify-ctrl Next
- # Screenshot script
- bindsym Print --release exec --no-startup-id flameshot gui
- # this spawns in scratchpad mode!
- set $dropdownterm "alacritty --class ddpython -e /bin/bash -ic python"
- bindsym $mod+p exec $dropdownterm
- # set $dropdownnotes "st -n ddnotes -e /bin/bash -ic 'vim $HOME/projects/internal/notes/todo.md'"
- set $dropdownnotes "alacritty --class ddnotes -e /bin/bash -ic 'vim $HOME/projects/internal/notes/todo.md'"
- bindsym $mod+n exec $dropdownnotes
- # script that shows mounted devices for fast unmount
- bindsym $mod+u exec $HOME/.scripts/tools/umount.sh
- # unicode emoji finder
- bindsym $mod+i exec rofimoji
- # yt-mpv
- bindsym $mod+y exec $HOME/.scripts/tools/yt-viewer.sh
- # Locking the screen
- bindsym $win+l exec $HOME/.scripts/i3/lock.sh
- # Use Mouse+$mod to drag floating windows to their wanted position
- floating_modifier $mod
- # Execute terminal
- bindsym $mod+Return exec $terminal
- # kill focused window ( without shift)
- bindsym $mod+q kill
- # Scratchpad bindings
- # make a terminal a scratchpad window
- bindsym $mod+t move scratchpad
- # show scratchpad
- bindsym $mod+s scratchpad show
- # Program launcher and Window switcher
- bindsym $mod+d exec "rofi -show combi -show-icons -combi-modi \\"run,drun\\""
- bindsym $mod+Tab exec rofi -show window
- # Use win+e as filemanager shortcut (using ranger)
- bindsym $mod+o exec $file_browser
- # change focus (vim bindings)
- bindsym $mod+h focus left
- bindsym $mod+j focus down
- bindsym $mod+k focus up
- bindsym $mod+l 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+h move left
- bindsym $mod+Shift+j move down
- bindsym $mod+Shift+k move up
- bindsym $mod+Shift+l 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 vertical and horizontal orientation
- bindsym $mod+v split v
- bindsym $mod+c split h
- # enter fullscreen mode for the focused container
- bindsym $mod+f fullscreen toggle
- # change container layout (stacked, toggle split)
- bindsym $mod+w layout stacking
- bindsym $mod+e layout toggle split
- bindsym $mod+g gaps inner current set 0;
- bindsym $mod+Shift+g gaps inner current set $gaps;
- # toggle tiling / floating
- bindsym $mod+Shift+space floating toggle
- # change focus between tiling / floating windows
- bindsym $mod+space focus mode_toggle
- # 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'"
- bindsym $mod+Shift+p exec flameshot gui
- # Mucho grande resizerino
- # Use zuio bindings for resizing on the fly
- bindsym $mod+Shift+y resize shrink width 10 px or 10 ppt
- bindsym $mod+Shift+u resize grow height 10 px or 10 ppt
- bindsym $mod+Shift+i resize shrink height 10 px or 10 ppt
- bindsym $mod+Shift+o resize grow width 10 px or 10 ppt
- # oldschool resize mode!
- bindsym $mod+r mode "resize"
- # show screen on laptop screen only (needs autorandr profile 'default')
- bindsym $mod+Shift+d exec "autorandr -l default"
- # These bindings trigger as soon as you enter the resize mode
- mode "resize" {
- # resizing using vim bindings
- bindsym h resize shrink width 10 px or 10 ppt
- bindsym j resize grow height 10 px or 10 ppt
- bindsym k resize shrink height 10 px or 10 ppt
- bindsym l 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"
- }
- # -----[ Workspaces ]----- #
- # Workspace Strings (only numbers, no unicoderino)
- 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 $ws1;move workspace to output primary;
- bindsym $mod+2 workspace $ws2
- bindsym $mod+3 workspace $ws3
- bindsym $mod+4 workspace $ws4
- bindsym $mod+5 workspace $ws5;move workspace to output DP2-3;
- 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 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
- # -----[ Bar ]----- #
- # Start i3bar to display a workspace bar (plus the system information from i3status)
- bar {
- # default status string
- #i3bar_command i3bar
- status_command i3blocks -c ~/.config/i3blocks/i3blocks.conf
- #status_command i3status -c $HOME/.config/i3status/i3status.conf
- font pango:NotoSansMono Nerd Font 8
- modifier None
- position top
- tray_output primary
- strip_workspace_numbers yes
- # Base16 colors
- colors {
- background $base00
- separator $base01
- statusline $base04
- # State Border BG Text
- focused_workspace $base05 $base0D $base00
- active_workspace $base05 $base03 $base00
- inactive_workspace $base03 $base01 $base05
- urgent_workspace $base08 $base08 $base00
- binding_mode $base00 $base0A $base00
- }
- }
- # Colors of the Windows - using base16
- # Property Name Border BG Text Indicator Child Border
- client.focused $base05 $base0D $base00 $base0D $base0D
- client.focused_inactive $base01 $base01 $base05 $base03 $base01
- client.unfocused $base01 $base00 $base05 $base01 $base01
- client.urgent $base08 $base08 $base00 $base08 $base08
- client.placeholder $base00 $base00 $base05 $base00 $base00
- client.background $base07
- # -----[ Windows ]----- #
- # Settings for the drop-drown python instance
- for_window [instance="ddpython"] resize set 1000 400
- for_window [instance="ddpython"] move scratchpad
- for_window [instance="ddpython"] border pixel 3
- for_window [instance="ddpython"] sticky enable
- for_window [instance="ddpython"] scratchpad show
- for_window [instance="ddpython"] floating enable
- # MPV floating and fitted
- for_window [class="mpv"] resize set 650 370
- for_window [class="mpv"] border pixel 3
- for_window [class="mpv"] floating enable
- for_window [instance="vifm"] resize set 1000 400
- for_window [instance="vifm"] border pixel 3
- for_window [instance="vifm"] floating enable
- # Same procedure for dropdown notes
- for_window [instance="ddnotes"] resize set 1100 700
- for_window [instance="ddnotes"] move scratchpad
- for_window [instance="ddnotes"] border pixel 3
- for_window [instance="ddnotes"] sticky enable
- for_window [instance="ddnotes"] scratchpad show
- for_window [instance="ddnotes"] floating enable
- # rdesktop for Windows VM
- for_window [instance="^rdesktop.*"] resize set 1100 700
- for_window [instance="^rdesktop.*"] move scratchpad
- for_window [instance="^rdesktop.*"] border pixel 2
- for_window [instance="^rdesktop.*"] sticky enable
- for_window [instance="^rdesktop.*"] scratchpad show
- for_window [instance="^rdesktop.*"] floating enable
- # Minitube (small floating)
- for_window [class="Minitube"] resize set 650 370
- for_window [class="Minitube"] border pixel 3
- for_window [class="Minitube"] floating enable
- # ms teams notifications
- no_focus [title="Microsoft Teams Notification"]
- for_window [title="Microsoft Teams Notification"] floating enable
- for_window [title="Microsoft Teams Notification"] resize set 400 150
- for_window [title="Microsoft Teams Notification"] move position 1600px 20px
- no_focus [title="Microsoft Teams Notification"]
- # move them to seperate workspaces
- assign [instance="telegram"] 9
- assign [instance="spotify"] 8
- # YAD
- for_window [class="Yad"] floating enable
- # -----[ Runtime ]----- #
- exec --no-startup-id udiskie -a -n -t # automounting USB sticks
- exec --no-startup-id nm-applet # network manager applet
- exec --no-startup-id volumeicon # applet for audio
- exec --no-startup-id redshift-gtk # bluelight filter
- exec --no-startup-id xfce4-power-manager # display power settings
- exec_always --no-startup-id wal -R # use wal colorschemes
- exec_always --no-startup-id setxkbmap -rules evdev -model evdev -layout us -variant altgr-intl # us-international kb layout
- exec_always --no-startup-id autorandr -c --force
- exec_always --no-startup-id flameshot
- exec_always --no-startup-id xset r rate 400 50 # Speed up keyboard input speed
|