Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # _ _____ __ _
- # (_)___ / ___ ___ _ __ / _(_) __ _
- # | | |_ \ / __/ _ \| '_ \| |_| |/ _` |
- # | |___) | | (_| (_) | | | | _| | (_| |
- # |_|____/ \___\___/|_| |_|_| |_|\__, |
- # |___/
- # 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).
- # i3 config file (v4)
- # Please see http://i3wm.org/docs/userguide.html for a complete reference!
- # Font for window titles. Will also be used by the bar unless a different font
- # is used in the bar {} block below.
- # 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:Font Awesome 5 Free,System San Francisco Display 10
- font pango:System San Francisco Display 10
- # Modifier key: Mod4 == Super(Win)
- set $mod Mod4
- # ==================================================
- # GENERAL SETTINGS:
- # Prevent mouse from stealing focus.
- focus_follows_mouse no
- # This prevens moving of mouse when focusing on other output.
- mouse_warping none
- # The middle button over a titlebar kills the window.
- bindsym --release button2 kill
- # The middle button and a modifer over any part of the window kills the window.
- bindsym --whole-window $mod+button2 kill
- # The right button toggles floating.
- bindsym button3 floating toggle
- bindsym $mod+button3 floating toggle
- # The side mouse buttons move the window around.
- bindsym button9 move left
- bindsym button8 move right
- # Move current workspace between monitors.
- bindsym $mod+Shift+semicolon move workspace to output left
- # Move focus to other monitor.
- bindsym $mod+m focus output left
- # Focus of previous workspace.
- # If you pressed $mod+5 to switch to ws5, press it again to go to where you were before.
- workspace_auto_back_and_forth yes
- # Create new workspace on current output.
- # Open the workspace following the highest on the focused output.
- bindsym $mod+Shift+n exec --no-startup-id python ~/.config/i3/new_workspace.py
- # Open the lowest free workspace on the focused output.
- bindsym $mod+n exec --no-startup-id python ~/.config/i3/new_workspace.py --fill-holes
- # Swap currently focused container with (next) largest one.
- bindsym $mod+p exec --no-startup-id python3 ~/.config/i3/swapper.py
- # Use Mouse+$mod to drag floating windows.
- floating_modifier $mod
- # Start a terminal
- bindsym $mod+slash split vertical ; exec gnome-terminal --window-with-profile='normal-dark'
- bindsym $mod+apostrophe split horizontal ; exec gnome-terminal --window-with-profile='normal-dark'
- # Kill focused window.
- bindsym $mod+Shift+q kill
- # Change focus.
- bindsym $mod+h focus left
- bindsym $mod+j focus down
- bindsym $mod+k focus up
- bindsym $mod+l 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
- # Split in horizontal orientation.
- bindsym $mod+g split h
- # Split in vertical orientation.
- bindsym $mod+v split v
- # Enter fullscreen mode for the focused container.
- bindsym $mod+f fullscreen
- # Change container layout (tabbed, toggle split).
- 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
- bindsym $mod+Shift+a focus child
- bindsym $mod+x focus child
- # Reload the configuration file.
- 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'"
- # ==================================================
- # WORKSPACES
- # Names of Workspaces.
- set $1 1
- set $2 2
- set $3 3
- set $4 4
- set $5 5
- set $6 6
- set $7 7
- set $8 8
- set $9 9
- set $10 10
- # Switch to workspace.
- bindsym $mod+1 workspace $1
- bindsym $mod+2 workspace $2
- bindsym $mod+3 workspace $3
- bindsym $mod+4 workspace $4
- 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
- # With dual monitors primary are odd, non-primary are even numbered.
- workspace $1 output primary
- workspace $3 output primary
- workspace $5 output primary
- workspace $7 output primary
- workspace $9 output primary
- workspace $2 output eDP-1 VGA-1
- workspace $4 output eDP-1 VGA-1
- workspace $6 output eDP-1 VGA-1
- workspace $8 output eDP-1 VGA-1
- workspace $10 output eDP-1 VGA-1
- # Switch to neighboring workspace.
- bindsym $mod+i workspace prev_on_output
- bindsym $mod+o workspace next_on_output
- bindsym $mod+Shift+i move container to workspace prev_on_output
- bindsym $mod+Shift+o move container to workspace next_on_output
- # 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
- # ==================================================
- # GAPS:
- set $gaps_inner 10
- set $gaps_outer 0
- gaps inner $gaps_inner
- gaps outer $gaps_outer
- # Only enable gaps when there is more than one container.
- # smart_gaps off
- # Activate smart borders: don't show any unless multiple containers.
- smart_borders on
- # ==================================================
- # MODES: RESIZE and MOUSEMOVE
- # Resize window (you can also use the mouse for that).
- mode "resize" {
- # These bindings trigger as soon as you enter the resize mode.
- bindsym h resize shrink width 5 px or 5 ppt
- bindsym k resize grow height 5 px or 5 ppt
- bindsym j resize shrink height 5 px or 5 ppt
- bindsym l resize grow width 5 px or 5 ppt
- # Back to normal: Enter or Escape
- bindsym Return mode "default"
- bindsym Escape mode "default"
- bindsym q mode "default"
- bindsym f mode "default"
- # Inner gaps: I for Inner
- bindsym Shift+i gaps inner current minus 5
- bindsym i gaps inner current plus 5
- bindsym Control+Shift+i gaps inner all minus 5
- bindsym Control+i gaps inner all plus 5
- # Outer gaps: O for Outer
- bindsym Shift+o gaps outer current minus 5
- bindsym o gaps outer current plus 5
- bindsym Control+Shift+o gaps outer all minus 5
- bindsym Control+o gaps outer all plus 5
- # Return gaps to default: D for Default
- bindsym d gaps inner current set $gaps_inner; gaps outer current set $gaps_outer
- bindsym Control+d gaps inner all set $gaps_inner; gaps outer all set $gaps_outer
- # Set gaps to 0: stretch windows: S for Stretch
- bindsym s gaps inner current set 0; gaps outer current set 0
- bindsym Control+s gaps inner all set 0; gaps outer all set 0
- # Toggle i3-read-mode
- bindsym r exec i3-read-mode-toggle; mode "default"
- }
- bindsym $mod+r mode "resize"
- # Move cursor with keyboard.
- mode "mousemove" {
- # Move cursor with h, j, k, l.
- # Move it a little slower with Shift + h, j, k, l.
- bindsym h exec xdotool mousemove_relative -- -15 0
- bindsym j exec xdotool mousemove_relative -- 0 15
- bindsym k exec xdotool mousemove_relative -- 0 -15
- bindsym l exec xdotool mousemove_relative -- 15 0
- bindsym Shift+h exec xdotool mousemove_relative -- -5 0
- bindsym Shift+j exec xdotool mousemove_relative -- 0 5
- bindsym Shift+k exec xdotool mousemove_relative -- 0 -5
- bindsym Shift+l exec xdotool mousemove_relative -- 5 0
- bindsym Control+h exec xdotool mousemove_relative -- -45 0
- bindsym Control+j exec xdotool mousemove_relative -- 0 45
- bindsym Control+k exec xdotool mousemove_relative -- 0 -45
- bindsym Control+l exec xdotool mousemove_relative -- 45 0
- bindsym i exec xdotool click 1 # left click
- bindsym o exec xdotool click 3 # right click
- # Back to normal: Enter or Escape
- bindsym Return mode "default"
- bindsym Escape mode "default"
- bindsym q mode "default"
- }
- bindsym $mod+Shift+m mode "mousemove"
- # ==================================================
- # BORDERS and GENERAL LOOKS
- # 2px wide border with titlebar at the top.
- # default_border normal
- default_border pixel 2
- # pixel 2 is same thickness as normal but without titlebars - this is cleaner but less readable.
- default_floating_border none
- # ==================================================
- # COLOR CONFIG - gruvbox
- # Please see https://github.com/morhetz/gruvbox for reference
- set $black #000000
- set $white #FFFFFF
- set $bg #282828
- set $gray #928374
- set $bg4 #7C6F64
- set $red #FB4934
- set $fg2 #D5C4A1
- set $orange #D79921
- # border backgr. text child_border
- client.unfocused $bg $bg $gray $bg4
- client.focused_inactive $bg $bg $gray $bg4
- # client.focused $black $black $gray $bg4
- client.focused $gray $gray $bg $fs2
- client.urgent $red $red $black $bg4
- # ==================================================
- # STATUS BAR:
- bar {
- tray_output primary
- position bottom
- workspace_buttons yes
- status_command i3blocks -c ~/.config/i3blocks/i3blocks.conf
- colors {
- # separator is pipe character in i3blocks, background is background and statusline is default text color.
- separator $black
- background $black
- statusline $fg2
- # border backgr. text
- focused_workspace $fg2 $fg2 $black
- active_workspace $bg $bg $fg2
- inactive_workspace $black $black $fg2
- urgent_workspace $red $red $black
- }
- }
- # ==================================================
- # WINDOW BEHAVIOR:
- # Fullsceen windows - if window is titeled 'fullscreen' it's fullscreened.
- for_window [title="fullscreen"] fullscreen
- for_window [title="fullscreen"] border pixel 0
- for_window [title="Floating"] floating enable
- for_window [title=".*vimclip.*"] floating enable; resize set 720 510; move position center
- for_window [title="fehqr"] floating enable
- for_window [title="fehscrot"] floating enable
- for_window [floating] border none
- for_window [instance=blueman-manager] floating enable; resize set 720 510
- for_window [instance=blueman-manager] border pixel 0
- # Dropdowns and Scratchpads:
- # Terminal
- for_window [title="dropdown-terminal"] floating enable
- for_window [title="dropdown-terminal"] border pixel 0
- for_window [title="dropdown-terminal"] sticky enable
- for_window [title="dropdown-terminal"] resize set 720 510
- for_window [title="dropdown-terminal"] move scratchpad
- bindsym $mod+u [instance="gnome-terminal-server" floating] scratchpad show; move position center
- # Pavucontrol
- for_window [instance=pavucontrol] floating enable
- for_window [instance=pavucontrol] move scratchpad
- for_window [instance=pavucontrol] resize set 720 510
- for_window [instance=pavucontrol] border pixel 0
- bindsym $mod+minus [instance=pavucontrol] scratchpad show; move position center
- # Dropdown Calculator
- for_window [class=Calculator] floating enable
- for_window [class=Calculator] move scratchpad
- for_window [class=Calculator] resize set 720 510
- for_window [class=Calculator] border pixel 0
- bindsym $mod+y [class=Calculator] scratchpad show; move position center
- # Signal messenger
- for_window [instance=signal] floating enable
- for_window [instance=signal] move scratchpad
- for_window [instance=signal] resize set 1000 600
- for_window [instance=signal] border pixel 0
- bindsym $mod+t [instance=signal] scratchpad show; move position center
- # Caprine - Facebook messenger
- for_window [instance=caprine] floating enable
- for_window [instance=caprine] move scratchpad
- for_window [instance=caprine] resize set 1000 600
- for_window [instance=caprine] border pixel 0
- bindsym $mod+Shift+apostrophe [instance=caprine] scratchpad show; move position center
- # KEYBOARD BINDS HAVE BEEN MIGRATED TO ~/.config/sxhkd/sxhkdrc
- # REFER TO THAT FILE FOR CUSTOMIZATION.
- # PROGRAMS ARE ALWAYS OPENED WITH sxhkd!
- # Firefox - has some problems when launched with sxhkd
- bindsym $mod+c exec firefox
- # ==================================================
- # AUTO-EXECS
- exec --no-startup-id gnome-terminal --title 'dropdown-terminal' --window-with-profile='dropdown-dark'
- exec --no-startup-id gnome-calculator --class=Calculator
- exec --no-startup-id pavucontrol
- exec --no-startup-id blueman-applet
- exec --no-startup-id nm-applet
- exec --no-startup-id autorandr --change --force
- # exec --no-startup-id signal-desktop
- # exec --no-startup-id caprine
- # Notification settings
- exec_always killall dunst; dunst
- # Enable other keybinds
- exec_always killall sxhkd; sxhkd
- # Set gnome-terminal theme
- exec_always cat ~/.config/gnome-terminal/gnome-terminal.conf | dconf load /org/gnome/terminal/legacy/profiles:/
- # Set system theme.
- exec_always xrdb ~/.Xresources
- # Swap Control and Caps_Lock.
- exec xmodmap ~/.config/i3/swap-control-and-caps
- # Compton.
- exec_always --no-startup-id killall compton; compton --config ~/.config/compton/compton.conf
- # Automatically lock after 5 min of inactivity. IMPORTANT!
- exec_always --no-startup-id killall xautolock; xautolock -locker "/usr/bin/i3lock -i ~/Pictures/Wallpapers/rms-memes/2.png -t" -time 5 -detectsleep -notify 30 -notifier "notify-send -t 29000 -- 'LOCKING IN 30 SECONDS'"
- # Wallpaper.
- exec_always feh --bg-fill /home/maks/.config/wallpaper/dark
- # Emacs.
- exec emacs --daemon
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement