TheRepoClub-DotFiles/i3/.config/i3/config
2023-08-15 17:37:16 +01:00

943 lines
33 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#i3 config file (v4)
# -*- mode: i3wm-config -*-
####
#### _____ _ ____ ____ _ _
#### |_ _| |__ ___| _ \ ___ _ __ ___ / ___| |_ _| |__
#### | | | '_ \ / _ \ |_) / _ \ '_ \ / _ \| | | | | | | '_ \
#### | | | | | | __/ _ < __/ |_) | (_) | |___| | |_| | |_) |
#### |_| |_| |_|\___|_| \_\___| .__/ \___/ \____|_|\__,_|_.__/
#### |_|
####
####
workspace_auto_back_and_forth yes
##################################################
############# Set Custom Variables ##############
##################################################
# {{{ Variables
set $TerminalEmulator alacritty
set $WebBrowserB google-chrome-stable
set $WebBrowserF firefox
set $FileManager nemo
set $MailReader thunderbird
set $TextEditor code
set $Hypervisor virt-manager
set $GitBrowser lazygit
# }}} Variables
#####################################################################################################################
################# Define the variables/keys #################
#####################################################################################################################
# {{{ Definitions
# Key to rule them all : Super(Windows) or Alt key?
# Mod4 = Windows or Super key on keyboard
# Mod1 = Alt key on keyboard
# KEY DEFINITIONS TO REMEMBER
set $super Mod4
set $super_b bindsym Mod4
set $alt Mod1
set $alt_b bindsym Mod1
set $control Ctrl
set $control_b bindsym Ctrl
set $shift Shift
set $shift_b bindsym Shift
set $exe exec --no-startup-id
set $exe_always exec_always --no-startup-id
set $print_b bindsym Print
#####################################################################################################################
################# Define the movements keys - variables #################
#####################################################################################################################
#This is setup for qwerty
set $left h
set $down j
set $up k
set $right l
#####################################################################################################################
################# Single and Dual screen #################
#####################################################################################################################
# my current setup
set $firstMonitor eDP-1
set $secondMonitor HDMI-1-0
set $ws1 "1: Terminal"
set $ws2 "2: Editor"
set $ws3 "3: Files"
set $ws4 "4: Graphics"
set $ws5 "5: Music"
set $ws6 "6: WebBrowser"
set $ws7 "7: Mail"
set $ws8 "8: Games"
set $ws9 "9: Chat"
set $ws0 "10: Settings"
# }}} Definitions
# {{{ Workspaces
workspace $ws1 output $firstMonitor
workspace $ws2 output $firstMonitor
workspace $ws3 output $firstMonitor
workspace $ws4 output $firstMonitor
workspace $ws5 output $firstMonitor
workspace $ws6 output $secondMonitor
workspace $ws7 output $secondMonitor
workspace $ws8 output $secondMonitor
workspace $ws9 output $secondMonitor
workspace $ws0 output $secondMonitor
# }}} Workspaces
#####################################################################################################################
################# Main Includes #################
#####################################################################################################################
include ~/.config/i3/config.d/*.conf
#####################################################################################################################
################# Main Keybinds #################
#####################################################################################################################
# {{{ Cheat
## Category: Main Keybinds;
# Description: Show Keybinds;
$super_b+F1 \
$exe i3-cheat
#$exe ~/.config/i3/scripts/keybinds.sh
# }}} Cheat
#####################################################################################################################
################# i3 menu's in archlinux #################
#####################################################################################################################
# {{{ Menus
## Category: Menus;
# Description: Start GMrun;
$super_b+F2 \
$exe gmrun
## Category: Menus;
# Description: Start ClipMenu;
$super_b+F3 \
$exe clipmenu -p ClipMenu -mesg "Copy from clipboard."
###############################
####### Rofi Menu's #######
###############################
## Category: Menus;
# Description: Start Main Menu;
$super_b+m \
$exe menu
## Category: Menus;
# Description: Start Music Menu;
$super_b+F4 \
$exe music
## Category: Menus;
# Description: Start Pass Menu;
$super_b+p \
$exe passmenu
## Category: Menus;
# Description: Start Youtube Menu;
$super_b+F5 \
$exe youtube_subs
# }}} Menus
#####################################################################################################################
################# how to exit, logoff, suspend, ... #################
#####################################################################################################################
# {{{ Power
## Category: Main Keybinds;
# Description: Exit / Quit / Restart;
$super_b+$shift+e \
$exe rofi -show powermenu -config ~/.config/rofi/powermenu.rasi
## Category: Main Keybinds;
# Description: Exit / Quit / Restart;
$super_b+$shift+x \
$exe rofi -show powermenu -config ~/.config/rofi/powermenu.rasi
## Category: Main Keybinds;
# Description: Exit / Quit / Restart;
$super_b+x \
$exe rofi -show powermenu -config ~/.config/rofi/powermenu.rasi
# }}} Power
#####################################################################################################################
################# reload changed configuration #################
#####################################################################################################################
# {{{ Reload
## Category: i3-Config;
# Description: Restart i3 (preserves your layout/session);
$super_b+$shift+r \
restart
$super_b+$controlr+r \
$exe autostart
## Category: i3-Config;
# Description: Reload the configuration file;
$super_b+$shift+c \
reload
# }}} Reload
#####################################################################################################################
################# Stopping an application #################
#####################################################################################################################
## Category: i3-Config;
# Description: Kill focused window;
$super_b+q \
$exe i3_kill
## Category: i3-Config;
# Description: Kill focused window;
$super_b+$shift+q \
$exe i3_kill
####################################################################################################################
################# Moving around in i3 #################
#####################################################################################################################
# {{{ Moving Around
# Use Mouse+$super to drag floating windows to their wanted position
floating_modifier $super
## Category: i3-Windows;
# Description: Toggle tiling / floating windows;
$super_b+$shift+space \
floating toggle
## Category: i3-Windows;
# Description: Change focus: left;
$super_b+$left \
focus left
## Category: i3-Windows;
# Description: Change focus: down;
$super_b+$down \
focus down
## Category: i3-Windows;
# Description: Change focus: up;
$super_b+$up \
focus up
## Category: i3-Windows;
# Description: Change focus: right;
$super_b+$right \
focus right
## Category: i3-Windows;
# Description: Move focused window: left;
$super_b+$shift+$left \
move left
## Category: i3-Windows;
# Description: Move focused window: down;
$super_b+$shift+$down \
move down
## Category: i3-Windows;
# Description: Move focused window: up;
$super_b+$shift+$up \
move up
## Category: i3-Windows;
# Description: Move focused window: right;
$super_b+$shift+$right \
move right
#####################################################################################################################
################# moving around workspaces #################
#####################################################################################################################
# next/previous workspace
## Category: i3-Windows;
# Description: Move to next workspace;
$alt_b+Tab \
workspace next
## Category: i3-Windows;
# Description: Move to prev workspace;
$alt_b+$shift+Tab \
workspace prev
## Category: i3-Windows;
# Description: Scroll though workspaces;
$super_b+Tab \
workspace back_and_forth
# switch to workspace with urgent window automatically
for_window [urgent=latest] focus
#####################################################################################################################
################# Tiling parameters #################
#####################################################################################################################
# orientation for new workspaces
default_orientation auto
## Category: i3-Windows;
# Description: Toggle split;
$alt_b+t \
split toggle;exec notify-send 'tile toggled' -a 'i3-wm'
## Category: i3-Windows;
# Description: Split in horizontal orientation;
$super_b+$alt+h \
split h;exec notify-send 'tile horizontally' -a 'i3-wm'
## Category: i3-Windows;
# Description: Split in vertical orientation;
$super_b+$alt+v \
split v;exec notify-send 'tile vertically' -a 'i3-wm'
## Category: i3-Windows;
# Description: Enter fullscreen mode for the focused container;
$alt_b+f \
fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
## Category: i3-Windows;
# Description: Change container layout: stacked;
$alt_b+s \
layout stacking
## Category: i3-Windows;
# Description: Change container layout: tabbed;
$alt_b+z \
layout tabbed
## Category: i3-Windows;
# Description: Change container layout: toggle split;
$alt_b+e \
layout toggle split
## Category: i3-Windows;
# Description: Change focus between tiling / floating windows;
$alt_b+space \
focus mode_toggle
## Category: i3-Windows;
# Description: Focus the parent container;
$alt_b+a \
focus parent
## Category: i3-Windows;
# Description: Focus the child container;
$alt_b+d \
focus child
# }}} Moving Around
#####################################################################################################################
################# resize #################
#####################################################################################################################
# {{{ Resize
## Category: i3-Windows;
# Description: Resize window (you can also use the mouse for that);
$super_b+r \
mode "$resize"
set $resize Resize: [U]p [D]own [L]eft [R]ight
mode "$resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym --release $left resize shrink width 10 px or 10 ppt
bindsym --release $down resize grow height 10 px or 10 ppt
bindsym --release $up resize shrink height 10 px or 10 ppt
bindsym --release $right resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym --release Left resize shrink width 10 px or 10 ppt
bindsym --release Down resize grow height 10 px or 10 ppt
bindsym --release Up resize shrink height 10 px or 10 ppt
bindsym --release Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
# }}} Resize
#####################################################################################################################
################# choose the font #################
#####################################################################################################################
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
# choose your font
font pango:Noto Mono Regular 13
#####################################################################################################################
################# assign applications to workspaces #################
#####################################################################################################################
# {{{ Assign Applications
# Assign application to start on a specific workspace
# you can find the class with the program xprop
# sign via class
# Workspace $ws1
assign [class="(?i)Alacritty|Kitty"] → $ws1
# Workspace $ws2
assign [class="(?i)Emacs"] → $ws2
assign [class="(?i)Code|Nvim"] → $ws2
# Workspace $ws3
assign [class="(?i)Nemo"] → $ws3
# Workspace $ws4
assign [class="(?i)Aseprite|Krita"] → $ws4
# Workspace $ws5
assign [class="(?i)Xephyr"] → $ws5
assign [class="(?i)CmusImage"] → $ws5
# Workspace $ws6
assign [class="(?i)Firefox|Google-Chrome"] → $ws6
# Workspace $ws7
assign [class="(?i)Mail|Thunderbird"] → $ws7
assign [class="(?i)Keybase"] → $ws7
# Workspace $ws8
assign [class="(?i)Minecraft*|Steam*"] → $ws8
assign [class="(?i)0ad*|Minetest"] → $ws8
assign [class="(?i)PrismLauncher*"] → $ws8
# Workspace $ws9
assign [class="(?i)Discord|Element"] → $ws9
# Workspace $ws0
assign [class="(?i)Virt*|LazyGit"] → $ws0
assign [class="(?i)Dconf-editor|Piper*"] → $ws0
assign [class="(?i)Actions|Btop"] → $ws0
assign [class="(?i)PkgBrowser"] → $ws0
assign [class="(?i)Jetbrains"] → $ws0
# }}} Assign Applications
#####################################################################################################################
################# applications keyboard shortcuts #################
#####################################################################################################################
# {{{ Applications Keyboard Shortcuts
# workspace related
# workspace 1 related
## Category: Applications;
# Description: Launch $TerminalEmulator;
$super_b+Return \
$exe $TerminalEmulator;focus
$super_b+KP_Enter \
$exe $TerminalEmulator;focus
# workspace 2 related
## Category: Applications;
# Description: Launch $TextEditor;
$super_b+$control+c \
$exe $TextEditor;focus
## Category: Applications;
# Description: Launch Intellij Idea;
$super_b+$control+i \
$exe idea;focus
# workspace 3 related
## Category: Applications;
# Description: Launch $FileManager;
$super_b+$shift+Return \
$exe $FileManager;focus
$super_b+$shift+KP_Enter \
$exe $FileManager;focus
# workspace 4 related
## Category: Applications;
# Description: Launch Krita;
$super_b+$control+k \
$exe krita;focus
# workspace 5 related
## Category: Applications;
# Description: Launch VLC;
$super_b+$control+v \
$exe vlc;focus
# workspace 6 related
## Category: Applications;
# Description: Launch $WebBrowserB;
$super_b+$control+b \
$exe $WebBrowserB;focus
## Category: Applications;
# Description: Launch $WebBrowserF;
$super_b+$control+f \
$exe $WebBrowserF;focus
# workspace 7 related
## Category: Applications;
# Description: Launch $MailReader;
$super_b+$control+m \
$exe $MailReader;focus
# workspace 8 related
# workspace 8 related
# workspace 0 related
########################################
############# Games #############
########################################
## Category: Applications;
# Description: Launch Games;
$super_b+$control+g \
mode "$game_launcher"
set $game_launcher Launch: [0]ad [s]eam [m]inecraft mine[t]est
mode "$game_launcher" {
bindsym --release 0 \
$exe prime-run 0ad;focus; mode "default"
bindsym --release s \
$exe prime-run steam;focus; mode "default"
bindsym --release m \
$exe prime-run prismlauncher;focus; mode "default"
bindsym --release t \
$exe prime-run minetest;focus; mode "default"
bindsym Escape mode "default"
bindsym Return mode "default"
}
# workspace 9 related
## Category: Applications;
# Description: Launch discord;
$super_b+$control+d \
$exe discord;focus
## Category: Applications;
# Description: Launch Element;
$super_b+$control+e \
$exe element-desktop;focus
# workspace 10 related
## Category: Applications;
# Description: Launch Piper;
$super_b+$control+p \
$exe piper;focus
## Category: Applications;
# Description: Change MultiMonitorLock;
$super_b+$shift+z \
$exe multimonitorlock-gui;focus
## Category: Applications;
# Description: Launch Pavucontrol;
$control_b+$alt+u \
$exe pavucontrol;focus
## Category: Applications;
# Description: Launch pkgbrowser;
$control_b+$alt+p \
$exe pkgbrowser;focus
## Category: Applications;
# Description: Launch $Hypervisor;
$super_b+$control+h \
$exe $Hypervisor;focus
# }}} Applications Keyboard Shortcuts
#####################################################################################################################
################# screenshots #################
#####################################################################################################################
# {{{ Screenshots
## Category: Screenshots;
# Description: Screen Shot Mode;
$super_b+Print \
mode "$screenshot"
set $screenshot Screenshot: [w]indow [s]election [f]ullscreen
mode "$screenshot" {
bindsym --release w \
$exe win-shot -w; mode "default"
bindsym --release s \
$exe win-shot -s; mode "default"
bindsym --release f \
$exe win-shot -f; mode "default"
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
# }}} Screenshots
#####################################################################################################################
################# floating or tiled #################
#####################################################################################################################
# {{{ Floating/Tiled/Fullscreen
# floating enabled from some programs - find with xprop
for_window [class="(?i)Imagewriter"] floating enable
for_window [class="(?i)Font-manager"] floating enable
for_window [class="(?i)Yad*"] floating enable
for_window [class="(?i)Pavucontrol"] floating enable, resize set 640 480, move position center
for_window [class="(?i)wm-cheat.py"] floating enable, resize set 720 720, move position center
for_window [class="(?i)MultiMonitorLock-GUI"] floating enable
for_window [class="(?i)Polybar-updates"] floating enable, resize set 1280 720, move position center
for_window [class="(?i)Menu"] floating enable, resize set 350 900, move position center
for_window [class="(?i)PowerMenu"] floating enable, resize set 400 300, move position center
for_window [class="(?i)PolybarMenu"] floating enable, resize set 350 900, move position center
for_window [class="(?i)PassMenu"] floating enable, resize set 350 700, move position center
for_window [class="(?i)MusicMenu"] floating enable, resize set 550 500, move position center
for_window [class="(?i)YoutubeMenu"] floating enable, resize set 700 750, move position center
for_window [title="(?i)Copying|Deleting|Moving"] floating enable, move position center
for_window [window_role="(?i)Organizer|Floating"] floating enable, resize set 640 480, move position center
# fullscreen enabled from some programs - find with xprop
for_window [class="(?i)Minecraft*|0ad*|Minetest"] fullscreen enable
for_window [class="(?i)steam_app_271590"] fullscreen enable
# }}} Floating/Tiled/Fullscreen
#####################################################################################################################
################# audio settings #################
#####################################################################################################################
# {{{ Audio Settings
bindsym XF86AudioRaiseVolume $exe "amixer sset Master '5%+'"
bindsym XF86AudioLowerVolume $exe "amixer sset Master '5%-'"
bindsym XF86AudioMute $exe "amixer set Master toggle"
#https://github.com/acrisci/playerctl/
bindsym XF86AudioPlay $exe playerctl play-pause
bindsym XF86AudioNext $exe playerctl next
bindsym XF86AudioPrev $exe playerctl previous
bindsym XF86AudioStop $exe playerctl stop
# }}} Audio Settings
#####################################################################################################################
################# xbacklight #################
#####################################################################################################################
# {{{ xbacklight
bindsym XF86MonBrightnessUp $exe brightnessctl set 5%+ # increase screen brightness
bindsym XF86MonBrightnessDown $exe brightnessctl set 5%- # decrease screen brightness
# }}} xbacklight
#####################################################################################################################
################# bar toggle #################
#####################################################################################################################
## Category: Main Keybinds;
# Description: Toggle Polybar;
$super_b+b \
$exe polybar-msg cmd toggle
### Comming SOON
## Category: Main Keybinds;
# Description: Toggle Polybar Tray;
# $super_b+t \
# $exe polybar-msg action tray module_toggle
#####################################################################################################################
################# border control #################
#####################################################################################################################
# {{{ Border Control
# Border control
hide_edge_borders none
## Category: i3-Windows;
# Description: i3 border toggle;
$super_b+$shift+b \
$exe i3-msg border toggle
## Category: i3-Windows;
# Description: i3 border normal;
$super_b+n \
border normal
## Category: i3-Windows;
# Description: i3 border 1pixel;
$super_b+y \
border 1pixel
## Category: i3-Windows;
# Description: i3 border none;
$super_b+u \
border none
new_window pixel 5
#new_window normal
#new_window none
new_float pixel 5
#new_float normal
#new_float none
# }}} Border Control
#####################################################################################################################
################# Popups control #################
#####################################################################################################################
#Popups during fullscreen mode
popup_during_fullscreen smart
#####################################################################################################################
################# i3 gaps next #################
#####################################################################################################################
# Settings for i3 next gap git
# https://github.com/Airblader/i3/tree/gaps-next
# delete or uncomment the following lines if you do not have it or do not
# want it
for_window [class="^.*"] border 10pixel
gaps inner 5
gaps outer 2
#smart_gaps on
#smart_borders on
#####################################################################################################################
################# i3 gaps change #################
#####################################################################################################################
# {{{ Gaps Change
set $mode_gaps Gaps: (o) outer, (i) inner
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift++|-|0 (global)
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift++|-|0 (global)
# Description: i3 mode: Gaps;
$super_b+$shift+g \
mode "$mode_gaps"
mode "$mode_gaps" {
bindsym --release o mode "$mode_gaps_outer"
bindsym --release i mode "$mode_gaps_inner"
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_inner" {
bindsym --release plus gaps inner current plus 5
bindsym --release minus gaps inner current minus 5
bindsym --release 0 gaps inner current set 0
$shift_b+plus gaps inner all plus 5
$shift_b+minus gaps inner all minus 5
$shift_b+0 gaps inner all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_outer" {
bindsym --release plus gaps outer current plus 5
bindsym --release minus gaps outer current minus 5
bindsym --release 0 gaps outer current set 0
$shift_b+plus gaps outer all plus 5
$shift_b+minus gaps outer all minus 5
$shift_b+0 gaps outer all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
# }}} Gaps Change
#####################################################################################################################
#####################################################################################################################
################# Start of all the settings #################
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
################# autostart - execute applications at boot time #################
#####################################################################################################################
# {{{ Autostart
# USER APPLICATIONS TO START AT BOOT
# start autostart
$exe autostart
# }}} Autostart
# {{{ Settings
$exe youtube_subs -d
# setting variables for later use
# use xrandr and/or arandr to know the names of your monitors
# use this line to tell which monitor is on the right
$exe autorandr --force --load i3
# }}} Settings
#####################################################################################################################
################# picom of i3wm #################
#####################################################################################################################
#if you want transparency on non-focused windows, ...
$exe_always picom --config ~/.config/i3/picom.conf
## Category: Main Keybinds;
# Description: Toggle Picom;
$control_b+$alt+o \
$exe ~/.config/polybar/scripts/picom-toggle.sh
## Category: Main Keybinds;
# Description: Reload Polybar;
$control_b+$alt+b \
$exe ~/.config/polybar/launch.sh
#####################################################################################################################
################# Scratchpad #################
#####################################################################################################################
# {{{ Scratchpad
# move the currently focused window to the scratchpad
## Category: Scratchpad;
# Description: Move focused window to scratchpad;
$super_b+$shift+minus \
move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
## Category: Scratchpad;
# Description: Show the next scratchpad window;
$super_b+minus \
scratchpad show
#######################################################################
############### active dropdown scratchpad ###############
#######################################################################
## Category: Dropdowns;
# Description: Toggle btop;
$alt_b+$shift+b \
$exe dropdown_btop toggle
## Category: Dropdowns;
# Description: Toggle $TerminalEmulator;
$alt_b+$shift+t \
$exe dropdown_terminal toggle
$control_b+Return \
$exe dropdown_terminal toggle
## Category: Dropdowns;
# Description: Toggle pavucontrol;
$alt_b+$shift+a \
$exe dropdown_pavucontrol toggle
# }}} Scratchpad
## Category: Dropdowns;
# Description: Toggle conky;
$alt_b+$shift+c \
$exe toggle_conky
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
################# Theme Colors #################
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
# {{{ Colors
# Theme colors
# class border bground text indicator child_border
client.focused #81a1c1 #81a1c1 #e5e9f0 #81a1c1 #ff59f9
client.focused_inactive #434c5e #434c5e #e5e9f0 #ff59f9 #81a1c1
client.unfocused #283036 #283036 #BFBFBF #283036 #81a1c1
client.urgent #434c5e #ff5959 #e5e9f0 #ff5959 #434c5e
client.placeholder #283036 #283036 #e5e9f0 #283036 #283036
client.background #434c5e
##STOP THEMING
# }}} Colors
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
######################################## THE END ###########################################
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
# vim: filetype=i3config
# vim: foldmethod=marker:foldlevel=0