diff --git a/dot_config/i3/config b/dot_config/i3/config index 44a97ff..085dad8 100644 --- a/dot_config/i3/config +++ b/dot_config/i3/config @@ -1,225 +1,34 @@ -# Mod Key -set $mod Mod4 - -##################### -# workspace layout: # -##################### - -# default i3 tiling mode: -workspace_layout default - -############################## -# extra options for windows: # -############################## - -#border indicator on windows: -default_border pixel 2 -default_floating_border pixel 2 -for_window [class="^.*"] border pixel 2 - -# thin borders -#hide_edge_borders both - -# Set inner/outer gaps -gaps inner 10 -gaps outer 3 - -# Use Mouse+$mod to drag floating windows to their wanted position -floating_modifier $mod - -# switch to workspace -bindsym $mod+1 workspace $ws1 -bindsym $mod+2 workspace $ws2 -bindsym $mod+3 workspace $ws3 -bindsym $mod+4 workspace $ws4 -bindsym $mod+5 workspace $ws5 -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 - -# switch to workspace with numlock numpad keys -bindcode $mod+Mod2+87 workspace $ws1 -bindcode $mod+Mod2+88 workspace $ws2 -bindcode $mod+Mod2+89 workspace $ws3 -bindcode $mod+Mod2+83 workspace $ws4 -bindcode $mod+Mod2+84 workspace $ws5 -bindcode $mod+Mod2+85 workspace $ws6 -bindcode $mod+Mod2+79 workspace $ws7 -bindcode $mod+Mod2+80 workspace $ws8 -bindcode $mod+Mod2+81 workspace $ws9 -bindcode $mod+Mod2+90 workspace $ws10 - -# move focused container to workspace -bindsym $mod+Shift+1 move container to workspace $ws1 -bindsym $mod+Shift+2 move container to workspace $ws2 -bindsym $mod+Shift+3 move container to workspace $ws3 -bindsym $mod+Shift+4 move container to workspace $ws4 -bindsym $mod+Shift+5 move container to workspace $ws5 -bindsym $mod+Shift+6 move container to workspace $ws6 -bindsym $mod+Shift+7 move container to workspace $ws7 -bindsym $mod+Shift+8 move container to workspace $ws8 -bindsym $mod+Shift+9 move container to workspace $ws9 -bindsym $mod+Shift+0 move container to workspace $ws10 - -# move focused container to workspace with numpad keys -bindcode $mod+Shift+87 move container to workspace $ws1 -bindcode $mod+Shift+88 move container to workspace $ws2 -bindcode $mod+Shift+89 move container to workspace $ws3 -bindcode $mod+Shift+83 move container to workspace $ws4 -bindcode $mod+Shift+84 move container to workspace $ws5 -bindcode $mod+Shift+85 move container to workspace $ws6 -bindcode $mod+Shift+79 move container to workspace $ws7 -bindcode $mod+Shift+80 move container to workspace $ws8 -bindcode $mod+Shift+81 move container to workspace $ws9 -bindcode $mod+Shift+90 move container to workspace $ws10 - -# resize window (you can also use the mouse for that): -mode "resize" { -# 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" -} - -bindsym $mod+r mode "resize" - -###################################### -# keybindings for different actions: # -###################################### - -# start a terminal -bindsym $mod+Return exec alacritty - -# kill focused window -bindsym $mod+q kill - -# exit-menu -bindsym $mod+Shift+e exec rofi -show power-menu -modi power-menu:$HOME/.local/bin/powermenu - -# lock by blurring the screen: -bindsym $mod+l exec ~/.config/i3/scripts/blur-lock - -# reload the configuration file -bindsym $mod+Shift+c reload - -# restart i3 inplace (preserves your layout/session, can be used to update i3) -bindsym $mod+Shift+r restart - -# change focus -bindsym $mod+j focus left -bindsym $mod+k focus down -bindsym $mod+b focus up -bindsym $mod+o 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+b move up -bindsym $mod+Shift+o 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+g 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 - -## Multimedia Keys - -# volume -bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 5%+ && pkill -RTMIN+1 i3blocks -bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 5%- && pkill -RTMIN+1 i3blocks -bindsym XF86AudioMute exec amixer sset Master toggle && killall -USR1 i3blocks - -bindsym XF86AudioPlay exec playerctl play -bindsym XF86AudioPause exec playerctl pause -bindsym XF86AudioNext exec playerctl next -bindsym XF86AudioPrev exec playerctl previous - -# Redirect sound to headphones -bindsym $mod+p exec /usr/local/bin/switch-audio-port - -## App shortcuts -bindsym $mod+w exec /usr/bin/firefox - -########################################## -# configuration for workspace behaviour: # -########################################## - -set $ws1 "1:base" -set $ws2 "2:term" -set $ws3 "3:web" -set $ws4 "4:game" -set $ws5 "5:music" -set $ws6 "6:social" -set $ws7 "7" -set $ws8 "8" -set $ws9 "9" -set $ws10 "10" - -# Bind programs to workspace: -assign [class="alacritty"] $ws2 -assign [class="(?i)firefox"] $ws3 -assign [class="Spotify"] $ws5 +# ██╗███╗ ██╗███████╗ █████╗ ███╗ ██╗████████╗ ██████╗ ██╗██████╗ ██████╗ ██████╗ ███╗ ██╗███████╗██╗ ██████╗ +# ██║████╗ ██║██╔════╝██╔══██╗████╗ ██║╚══██╔══╝██╔═══██╗ ██║╚════██╗ ██╔════╝██╔═══██╗████╗ ██║██╔════╝██║██╔════╝ +# ██║██╔██╗ ██║█████╗ ███████║██╔██╗ ██║ ██║ ██║ ██║ ██║ █████╔╝ ██║ ██║ ██║██╔██╗ ██║█████╗ ██║██║ ███╗ +# ██║██║╚██╗██║██╔══╝ ██╔══██║██║╚██╗██║ ██║ ██║ ██║ ██║ ╚═══██╗ ██║ ██║ ██║██║╚██╗██║██╔══╝ ██║██║ ██║ +# ██║██║ ╚████║███████╗██║ ██║██║ ╚████║ ██║ ╚██████╔╝ ██║██████╔╝ ╚██████╗╚██████╔╝██║ ╚████║██║ ██║╚██████╔╝ +# ╚═╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝ +# (updated 11/05/2025) ############################################# -# AUTO-START APPLICATIONS # +# MODIFIER KEY # +############################################# + +set $mod Mod4 + +############################################# +# STARTUP APPLICATIONS # ############################################# # Display setup exec xrandr --auto # Polybar -exec polybar --no-startup-id -rq +exec_always --no-startup-id $HOME/.config/i3/scripts/polybar.sh exec --no-startup-id gnome-keyring-daemon -# num lock activated +# Enable Num. Lock exec --no-startup-id numlockx on -# start conky: -# exec_always --no-startup-id conky - -# start blueberry app for managing bluetooth devices from tray: -#exec --no-startup-id blueberry-tray - -# Picom (Window Compositor) -exec --no-startup-id picom -b --shadow +# Picom (Compositor) +exec --no-startup-id picom -b # networkmanager-applet exec --no-startup-id nm-applet @@ -238,30 +47,8 @@ for_window [class="Pavucontrol" instance="pavucontrol"] floating enable for_window [class="Blueberry.py" instance="blueberry.py"] floating enable for_window [class="Bluetooth-sendto" instance="bluetooth-sendto"] floating enable -###################################### -# WINDOWS # -###################################### - -# COLORS: -set $green #538f45 -set $urgent #d42a2a -set $inactive #302428 - -set $black #0c0c0c -set $white #ffffff - -# WINDOWS (updated 18/10/2024): - -# Target Title BG Text Indicator Border -client.focused $white $black $white $green $green -client.focused_inactive $white $black $white $inactive $inactive -client.unfocused $white $black $white $inactive $inactive -client.urgent $white $black $white $urgent $urgent -client.placeholder $white $black $white $white $black -client.background $base - ##################################### -# Application menu handled by rofi: # +# ROFI APPLICATION MENU # ##################################### ## rofi bindings fancy application menu d+d /F9 optional disabled) @@ -270,3 +57,179 @@ bindsym $mod+shift+d exec rofimoji -f all ## rofi bindings for window menu ($mod+t /F10 optional disabled) bindsym $mod+x exec rofi -show window + +##################################### +# WORKSPACES/WINDOWS # +##################################### + +workspace_layout default + +# Remove borders. +default_border pixel 3 +default_floating_border pixel 0 +for_window [class="^.*"] border pixel 3 + +# Set inner/outer/top gaps +gaps top 60 +gaps inner 15 + +set $ws1 "1:base" +set $ws2 "2:term" +set $ws3 "3:web" +set $ws4 "4:game" +set $ws5 "5:music" +set $ws6 "6:social" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# Bind programs to workspace: +assign [class="alacritty"] $ws2 +assign [class="(?i)firefox"] $ws3 +assign [class="Spotify"] $ws5 + +##################################### +# KEYBINDS # +##################################### + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# Define Workspace shortcuts +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +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 + +# Define Workspace shortcuts (Num. Lock numpad keys) +bindcode $mod+Mod2+87 workspace $ws1 +bindcode $mod+Mod2+88 workspace $ws2 +bindcode $mod+Mod2+89 workspace $ws3 +bindcode $mod+Mod2+83 workspace $ws4 +bindcode $mod+Mod2+84 workspace $ws5 +bindcode $mod+Mod2+85 workspace $ws6 +bindcode $mod+Mod2+79 workspace $ws7 +bindcode $mod+Mod2+80 workspace $ws8 +bindcode $mod+Mod2+81 workspace $ws9 +bindcode $mod+Mod2+90 workspace $ws10 + +# Define move shortcuts +bindsym $mod+Shift+1 move container to workspace $ws1 +bindsym $mod+Shift+2 move container to workspace $ws2 +bindsym $mod+Shift+3 move container to workspace $ws3 +bindsym $mod+Shift+4 move container to workspace $ws4 +bindsym $mod+Shift+5 move container to workspace $ws5 +bindsym $mod+Shift+6 move container to workspace $ws6 +bindsym $mod+Shift+7 move container to workspace $ws7 +bindsym $mod+Shift+8 move container to workspace $ws8 +bindsym $mod+Shift+9 move container to workspace $ws9 +bindsym $mod+Shift+0 move container to workspace $ws10 + +# Define move shortcuts (Num. Lock numpad keys) +bindcode $mod+Shift+87 move container to workspace $ws1 +bindcode $mod+Shift+88 move container to workspace $ws2 +bindcode $mod+Shift+89 move container to workspace $ws3 +bindcode $mod+Shift+83 move container to workspace $ws4 +bindcode $mod+Shift+84 move container to workspace $ws5 +bindcode $mod+Shift+85 move container to workspace $ws6 +bindcode $mod+Shift+79 move container to workspace $ws7 +bindcode $mod+Shift+80 move container to workspace $ws8 +bindcode $mod+Shift+81 move container to workspace $ws9 +bindcode $mod+Shift+90 move container to workspace $ws10 + +# Define resizing mode +mode "resize" { + 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 + + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" + +bindsym $mod+f fullscreen toggle +bindsym $mod+q kill + +bindsym $mod+Shift+c reload +bindsym $mod+Shift+r restart + +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+b focus up +bindsym $mod+o focus right + +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+b move up +bindsym $mod+Shift+o 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 + +bindsym $mod+h split h +bindsym $mod+v split v + +bindsym $mod+s layout stacking +bindsym $mod+g layout tabbed +bindsym $mod+e layout toggle split + +# Define setting window as floating/tiling shortcut +bindsym $mod+Shift+space floating toggle + +# Define focus shift between floating/tiling windows shortcuts +bindsym $mod+space focus mode_toggle +bindsym $mod+a focus parent + +# Define apps shortcuts +bindsym $mod+Return exec alacritty +bindsym $mod+Shift+e exec rofi -show power-menu -modi power-menu:$HOME/.local/bin/powermenu +bindsym $mod+l exec ~/.config/i3/scripts/blur-lock + +# Define Volume/Multimedia shortcuts +bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 5%+ && pkill -RTMIN+1 i3blocks +bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 5%- && pkill -RTMIN+1 i3blocks +bindsym XF86AudioMute exec amixer sset Master toggle && killall -USR1 i3blocks + +bindsym XF86AudioPlay exec playerctl play +bindsym XF86AudioPause exec playerctl pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous + + +###################################### +# COLORS # +# (updated 18/10/2024) # +###################################### + +set $green #538f45 +set $gold #e6b044 +set $urgent #d42a2a +set $inactive #302428 + +set $black #0c0c0c +set $white #ffffff + +# Target Title BG Text Indicator Border +client.focused $white $black $white $gold $gold +client.focused_inactive $white $black $white $inactive $inactive +client.unfocused $white $black $white $inactive $inactive +client.urgent $white $black $white $urgent $urgent +client.placeholder $white $black $white $white $black +client.background $base \ No newline at end of file diff --git a/dot_config/i3/scripts/.keep b/dot_config/i3/scripts/.keep new file mode 100644 index 0000000..e69de29 diff --git a/dot_config/polybar/config.ini b/dot_config/polybar/config.ini new file mode 100644 index 0000000..6cb0355 --- /dev/null +++ b/dot_config/polybar/config.ini @@ -0,0 +1,284 @@ +; ██╗███╗ ██╗███████╗ █████╗ ███╗ ██╗████████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ ██████╗ ██████╗ ███╗ ██╗███████╗██╗ ██████╗ +; ██║████╗ ██║██╔════╝██╔══██╗████╗ ██║╚══██╔══╝██╔═══██╗ ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ ██╔════╝██╔═══██╗████╗ ██║██╔════╝██║██╔════╝ +; ██║██╔██╗ ██║█████╗ ███████║██╔██╗ ██║ ██║ ██║ ██║ ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ ██║ ██║ ██║██╔██╗ ██║█████╗ ██║██║ ███╗ +; ██║██║╚██╗██║██╔══╝ ██╔══██║██║╚██╗██║ ██║ ██║ ██║ ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ ██║ ██║ ██║██║╚██╗██║██╔══╝ ██║██║ ██║ +; ██║██║ ╚████║███████╗██║ ██║██║ ╚████║ ██║ ╚██████╔╝ ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ ╚██████╗╚██████╔╝██║ ╚████║██║ ██║╚██████╔╝ +; ╚═╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝ +; (updated 11/05/2025) + +###################################### +# SETTINGS # +###################################### + +[settings] +screenchange-reload = true +pseudo-transparency = true + +###################################### +# COLORS # +###################################### + +[colors] +background = #222222 +background-alt = #222222 +foreground = #C5C8C6 +primary = #e6b044 +secondary = #8ABEB7 +alert = #A54242 +disabled = #707880 + +###################################### +# BAR # +###################################### + +[bar/default] +width = 99% +height = 4% +radius = 0 +dpi = 72 + +background = ${colors.background} +foreground = ${colors.foreground} + +border-size = 3px +border-color = ${colors.primary} + +offset-x = 10px +offset-y = 10px + +padding-left = 10px +padding-right = 3px + +module-margin = 10px + +separator = "" +separator-foreground = ${colors.disabled} + +font-0 = JetBrains Mono:weight=bold:size=13 +font-1 = FontAwesome:size=11 + +modules-left = i3 +modules-right = memory cpu pulseaudio tray +modules-center = date menu-apps +cursor-click = pointer +cursor-scroll = ns-resize + +enable-ipc = true + +override-redirect = true +wm-restack = i3 + +###################################### +# MODULES # +###################################### + +[module/menu-apps] +type = custom/menu + +expand-right = true + +; "menu-LEVEL-N" has the same properties as "label-NAME" with +; the additional "exec" property +; +; Commands will be executed using "/bin/sh -c $COMMAND" + +menu-0-0 = Browsers +menu-0-0-exec = #menu-apps.open.1 +menu-0-1 = Multimedia +menu-0-1-exec = #menu-apps.open.2 + +menu-1-0 = Firefox +menu-1-0-exec = firefox +menu-1-1 = Chromium +menu-1-1-exec = chromium + +[module/tray] +type = internal/tray +tray-size = 40% + +[module/xworkspaces] +type = internal/xworkspaces + +label-active = %name% +label-active-background = ${colors.background-alt} +label-active-underline= ${colors.primary} +label-active-padding = 1 + +label-occupied = %name% +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-background = ${colors.alert} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${colors.disabled} +label-empty-padding = 1 + +[module/xwindow] +type = internal/xwindow +label = "%title%" + +label-unmounted = %mountpoint% not mounted +label-unmounted-foreground = ${colors.disabled} + +[module/pulseaudio] +type = internal/pulseaudio + +format-volume-prefix = "VOL " +format-volume-prefix-foreground = ${colors.primary} +format-volume = + +label-volume = %percentage%% + +label-muted = muted +label-muted-foreground = ${colors.disabled} + +[module/xkeyboard] +type = internal/xkeyboard +blacklist-0 = num lock + +label-layout = %layout% +label-layout-foreground = ${colors.primary} + +label-indicator-padding = 2 +label-indicator-margin = 1 +label-indicator-foreground = ${colors.background} +label-indicator-background = ${colors.secondary} + +[module/memory] +type = internal/memory +interval = 2 +format-prefix = "RAM " +format-prefix-foreground = ${colors.primary} +label = %percentage_used:2%% + +[module/cpu] +type = internal/cpu +interval = 2 +format-prefix = "CPU " +format-prefix-foreground = ${colors.primary} +label = %percentage:2%% + +[network-base] +type = internal/network +interval = 5 +format-connected = +format-disconnected = +label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected + +[module/wlan] +inherit = network-base +interface-type = wireless +label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip% + +[module/eth] +inherit = network-base +interface-type = wired +label-connected = %{F#F0C674}%ifname%%{F-} %local_ip% + +[module/date] +type = internal/date +interval = 1 + +date = %d/%m/%Y %H:%M:%S + +label = %date% +label-foreground = #ffffff + +[module/battery] +label = "BAT " +type = internal/battery + +low-at = 20 + +battery = BAT0 +adapter = ADP1 + +poll-interval = 5 +format-charging = + +format-discharging = + +label-charging = " Charging %percentage%%" + +label-discharging = " Discharging %percentage%%" + +label-full = Fully Charged! + +label-low = BATTERY LOW + +ramp-capacity-0 =  +ramp-capacity-1 =  +ramp-capacity-2 =  +ramp-capacity-3 =  +ramp-capacity-4 =  + +bar-capacity-width = 10 + +animation-charging-0 =  +animation-charging-1 =  +animation-charging-2 =  +animation-charging-3 =  +animation-charging-4 =  + +; Framerate in milliseconds +animation-charging-framerate = 300 + +animation-discharging-0 =  +animation-discharging-1 =  +animation-discharging-2 =  +animation-discharging-3 =  +animation-discharging-4 =  + +; Framerate in milliseconds +animation-discharging-framerate = 500 + +animation-low-0 = ! +animation-low-1 = +animation-low-framerate = 200 + +[module/i3] +type = internal/i3 + +pin-workspaces = true + +show-urgent = true + +strip-wsnumbers = true + +index-sort = true + +enable-click = true +enable-scroll = true +wrapping-scroll = true +reverse-scroll = false + +fuzzy-match = true + +format = + +label-mode = %mode% +label-mode-padding = 2 +label-mode-background = #e60053 + +label-focused = %name% +label-focused-foreground = #ffffff +label-focused-background = #3f3f3f +label-focused-padding = 2 + +label-unfocused = %name% +label-unfocused-padding = 0 + +label-visible = %name% +label-visible-underline = #555555 +label-visible-padding = 1 + +label-urgent = %name% +label-urgent-foreground = #000000 +label-urgent-background = #bd2c40 +label-urgent-padding = 1 + +label-separator = | +label-separator-padding = 1 +label-separator-foreground = ${colors.primary}