diff --git a/.config/hypr/animations.conf b/.config/hypr/animations.conf
new file mode 100644
index 0000000..4e33fd3
--- /dev/null
+++ b/.config/hypr/animations.conf
@@ -0,0 +1,21 @@
+
+# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
+# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
+
+# See https://wiki.hyprland.org/Configuring/Animations/
+
+animations {
+ enabled = yes
+ bezier = wind, 0.05, 0.9, 0.1, 1.05
+ bezier = winIn, 0.1, 1.1, 0.1, 1.1
+ bezier = winOut, 0.3, -0.3, 0, 1
+ bezier = liner, 1, 1, 1, 1
+ animation = windows, 1, 6, wind, slide
+ animation = windowsIn, 1, 6, winIn, slide
+ animation = windowsOut, 1, 5, winOut, slide
+ animation = windowsMove, 1, 5, wind, slide
+ animation = border, 1, 1, liner
+ animation = borderangle, 1, 30, liner, loop
+ animation = fade, 1, 10, default
+ animation = workspaces, 1, 5, wind
+}
diff --git a/.config/hypr/custom/env.conf b/.config/hypr/custom/env.conf
new file mode 100644
index 0000000..a7d721d
--- /dev/null
+++ b/.config/hypr/custom/env.conf
@@ -0,0 +1,2 @@
+env = PRIMARY_MONITOR_WORKSPACE,3
+env = SECONDARY_MONITOR_WORKSPACE,4
diff --git a/.config/hypr/custom/execs.conf b/.config/hypr/custom/execs.conf
new file mode 100644
index 0000000..16fa65c
--- /dev/null
+++ b/.config/hypr/custom/execs.conf
@@ -0,0 +1,7 @@
+# You can make apps auto-start here
+# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing
+#
+exec-once = corectrl
+exec-once = otd-daemon # run driver veikk
+exec-once = fcitx5
+exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-blue'
diff --git a/.config/hypr/custom/fusion.conf b/.config/hypr/custom/fusion.conf
new file mode 100644
index 0000000..a774acb
--- /dev/null
+++ b/.config/hypr/custom/fusion.conf
@@ -0,0 +1,6 @@
+
+source = ~/.config/hypr/custom/general.conf
+source = ~/.config/hypr/custom/execs.conf
+source = ~/.config/hypr/custom/keybinding.conf
+source = ~/.config/hypr/custom/windowrules.conf
+source = ~/.config/hypr/custom/env.conf
diff --git a/.config/hypr/custom/general.conf b/.config/hypr/custom/general.conf
new file mode 100644
index 0000000..c5680cf
--- /dev/null
+++ b/.config/hypr/custom/general.conf
@@ -0,0 +1,90 @@
+# Put general config stuff here
+# Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/
+
+monitor = DP-1, highres, 0x0, 1
+monitor = HDMI-A-1, highres, 1920x0, 1
+
+workspace = 1, monitor:DP-1,
+workspace = 3, monitor:DP-1,
+workspace = 5, monitor:DP-1,
+workspace = 7, monitor:DP-1,
+workspace = 9, monitor:DP-1,
+
+
+workspace = 2, monitor:HDMI-A-1,
+workspace = 4, monitor:HDMI-A-1,
+workspace = 6, monitor:HDMI-A-1,
+workspace = 8, monitor:HDMI-A-1,
+workspace = 10, monitor:HDMI-A-1,
+
+decoration {
+ blur {
+ enabled = false
+ }
+ drop_shadow = false
+}
+
+input {
+ kb_layout = us
+ kb_variant = ,qwerty
+ # kb_options = grp:alt_shift_toggle
+ kb_options = grp:win_space_toggle
+ repeat_delay = 155
+ repeat_rate = 55
+}
+
+
+
+general {
+ # Gaps and border
+ gaps_in = 8
+ gaps_out = 8
+ border_size = 6
+
+ # Fallback colors
+ col.active_border = rgba(0DB7D4FF) rgba(7AA2F7FF) rgba(9778D0FF) rgb(24C6DC) rgb(93EDC7) 45deg
+ col.inactive_border = rgba(12131CFF)
+
+ # Functionality
+ # resize_on_border = true
+ layout = master
+}
+
+dwindle {
+ preserve_split = true # you probably want this
+ #no_gaps_when_only = true
+
+ smart_resizing = false
+}
+
+misc {
+ background_color = rgba(12131CFF)
+ vfr = true
+}
+
+plugin {
+ hyprbars {
+ # Honestly idk if it works like css, but well, why not
+ bar_text_font = VictorMono NF SemiBold Italic
+ bar_text_size = 18
+ bar_height = 30
+ bar_padding = 10
+ bar_button_padding = 15
+ bar_precedence_over_border = false
+ bar_part_of_window = false
+
+ bar_color = rgba(12131CFF)
+ col.text = rgba(E2E1EFFF)
+
+ # example buttons (R -> L)
+ # hyprbars-button = color, size, on-click
+ hyprbars-button = rgba(12131CFF), 25, , hyprctl dispatch killactive
+ hyprbars-button = rgba(12131CFF), 25, , hyprctl
+ hyprbars-button = rgba(12131CFF), 25, , hyprctl
+ hyprbars-button = rgba(12131CFF), 25, , hyprctl
+ hyprbars-button = rgba(12131CFF), 25, , hyprctl
+ hyprbars-button = rgba(12131CFF), 25, , hyprctl
+ hyprbars-button = rgba(12131CFF), 25, , hyprctl
+ hyprbars-button = rgba(12131CFF), 25, , hyprctl
+ }
+}
diff --git a/.config/hypr/custom/keybinding.conf b/.config/hypr/custom/keybinding.conf
new file mode 100644
index 0000000..c2d0ff4
--- /dev/null
+++ b/.config/hypr/custom/keybinding.conf
@@ -0,0 +1,78 @@
+
+# You can put your preferred keybinds here
+# https://wiki.hyprland.org/Configuring/Binds/
+
+unbind = Super, W
+unbind = Super, T
+unbind = Alt, E
+
+# disbale side
+unbind = Super, B
+unbind = Super, M
+unbind = Super, N
+unbind = Super, E
+
+# monve workspace
+unbind = Super, H
+unbind = Super, J
+unbind = Super, K
+unbind = Super, L
+
+
+# move windown
+bind = Alt, H, fullscreenstate, 0 # [hidden]
+bind = Alt, H, movefocus, l # [hidden]
+
+bind = Alt, L, fullscreenstate, 0 # [hidden]
+bind = Alt, L, movefocus, r # [hidden]
+
+bind = Alt, K, fullscreenstate, 0 # [hidden]
+bind = Alt, K, movefocus, u # [hidden]
+
+bind = Alt, J, fullscreenstate, 0 # [hidden]
+bind = Alt, J, movefocus, d # [hidden]
+
+##! Window arrangement
+#/# bind = Super+Shift, ←/↑/→/↓,, # Window: move in direction
+bind = Ctrl+Alt, H, fullscreenstate, 0 # [hidden]
+bind = Ctrl+Alt, H, movewindow, l # [hidden]
+
+bind = Ctrl+Alt, L, fullscreenstate, 0 # [hidden]
+bind = Ctrl+Alt, L, movewindow, r # [hidden]
+
+bind = Ctrl+Alt, K, movewindow, u # [hidden]
+bind = Ctrl+Alt, J, movewindow, d # [hidden]
+# bind = Ctrl+Alt, M, exec, pavucontrol # Launch pavucontrol (volume mixer)
+
+bind = Alt, Q, killactive,
+
+bind = Alt, F, fullscreen, 0
+bind = Alt, R, exec, killall ags ydotool; ags & # Restart widgets
+bind = Alt, E, exec, nautilus --new-window # Launch Nautilus (file manager)
+# bind = Alt, M, exec, ags run-js 'openMusicControls.value = (!mpris.getPlayer() ? false : !openMusicControls.value);' # Toggle music controls
+# bind = Alt, N, exec, ags -t 'sideright' # Toggle right sidebar
+
+bind = Alt, T, exec, kitty
+bind = Alt, B, exec, brave
+# bind = Alt, F, exec, rofi
+bind = Alt, O, exec, obsidian --no-sandbox --ozone-platform=wayland --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations %U
+bind = Alt, V, exec, vesktop --no-sandbox --ozone-platform=wayland --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations %U
+
+# bind = Ctrl+Super+Shift, Right, movetoworkspace, +1 # [hidden]
+# bind = Shift+Alt, L, focusmonitor, 1
+# bind = Shift+Alt, H, focusmonitor, 0
+
+bind = SUPER, SUPER_L, exec, pkill -x rofi || $scrPath/rofilaunch.sh d # launch application launcher
+# bind = Ctrl+Alt, E, exec, pkill -x rofi || $scrPath/rofilaunch.sh f # launch file explorer
+
+# bind = Shift+Alt, L, exec, source /home/duckq1u/.config/hypr/scripts/workspacePLUS.sh
+# bind = Shift+Alt, H, exec, source /home/duckq1u/.config/hypr/scripts/workspaceEXCEPT.sh
+bind = Shift+Alt, L, exec, source /home/duckq1u/.config/hypr/scripts/workspaceV2.sh
+bind = Shift+Alt, H, exec, source /home/duckq1u/.config/hypr/scripts/workspaceV2except.sh
+
+
+$mainMod = Super # super / meta / windows key
+$scrPath = $HOME/.local/share/bin # set scripts path
+
+bind = $mainMod+Shift, S, exec, $scrPath/screenshot.sh sf # partial screenshot capture (frozen screen)
+bind = , Print, exec, $scrPath/screenshot.sh p # all monitors screenshot capture
diff --git a/.config/hypr/custom/windowrules.conf b/.config/hypr/custom/windowrules.conf
new file mode 100644
index 0000000..52a6ba4
--- /dev/null
+++ b/.config/hypr/custom/windowrules.conf
@@ -0,0 +1,4 @@
+
+windowrulev2 = bordercolor rgb(FF0000) rgb(880808),fullscreen:1
+
+
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..f7c8303
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,140 @@
+
+# ░▒▒▒░░░░░▓▓ ___________
+# ░░▒▒▒░░░░░▓▓ //___________/
+# ░░▒▒▒░░░░░▓▓ _ _ _ _ _____
+# ░░▒▒░░░░░▓▓▓▓▓▓ | | | | | | | __/
+# ░▒▒░░░░▓▓ ▓▓ | |_| | |_/ /| |___
+# ░▒▒░░▓▓ ▓▓ \__ |____/ |____/
+# ░▒▓▓ ▓▓ //____/
+
+
+$scrPath = $HOME/.local/share/bin # set scripts path
+
+
+# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
+# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+
+monitor = ,preferred,auto,auto
+
+
+# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
+# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+
+exec-once = $scrPath/resetxdgportal.sh # reset XDPH for screenshare
+exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
+exec-once = dbus-update-activation-environment --systemd --all # for XDPH
+exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
+exec-once = $scrPath/polkitkdeauth.sh # authentication dialogue for GUI apps
+exec-once = waybar # launch the system bar
+exec-once = blueman-applet # systray app for Bluetooth
+exec-once = udiskie --no-automount --smart-tray # front-end that allows to manage removable media
+exec-once = nm-applet --indicator # systray app for Network/Wifi
+exec-once = dunst # start notification demon
+exec-once = wl-paste --type text --watch cliphist store # clipboard store text data
+exec-once = wl-paste --type image --watch cliphist store # clipboard store image data
+exec-once = $scrPath/swwwallpaper.sh # start wallpaper daemon
+exec-once = $scrPath/batterynotify.sh # battery nnotification
+
+
+# █▀▀ █▄░█ █░█
+# ██▄ █░▀█ ▀▄▀
+
+# See https://wiki.hyprland.org/Configuring/Environment-variables/
+
+env = PATH,$PATH:$scrPath
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+env = QT_QPA_PLATFORM,wayland;xcb
+env = QT_QPA_PLATFORMTHEME,qt6ct
+env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
+env = QT_AUTO_SCREEN_SCALE_FACTOR,1
+env = MOZ_ENABLE_WAYLAND,1
+env = GDK_SCALE,1
+
+
+# █ █▄░█ █▀█ █░█ ▀█▀
+# █ █░▀█ █▀▀ █▄█ ░█░
+
+# See https://wiki.hyprland.org/Configuring/Variables/
+
+input {
+ kb_layout = us
+ follow_mouse = 1
+
+ touchpad {
+ natural_scroll = no
+ }
+
+ sensitivity = 0
+ force_no_accel = 1
+ numlock_by_default = true
+}
+
+# See https://wiki.hyprland.org/Configuring/Keywords/#executing
+
+device {
+ name = epic mouse V1
+ sensitivity = -0.5
+}
+
+# See https://wiki.hyprland.org/Configuring/Variables/
+
+gestures {
+ workspace_swipe = true
+ workspace_swipe_fingers = 3
+}
+
+
+# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
+# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█
+
+# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/
+
+dwindle {
+ pseudotile = yes
+ preserve_split = yes
+}
+
+# See https://wiki.hyprland.org/Configuring/Master-Layout/
+
+master {
+ new_status = master
+}
+
+
+# █▀▄▀█ █ █▀ █▀▀
+# █░▀░█ █ ▄█ █▄▄
+
+# See https://wiki.hyprland.org/Configuring/Variables/
+
+misc {
+ vrr = 0
+ disable_hyprland_logo = true
+ disable_splash_rendering = true
+ force_default_wallpaper = 0
+}
+
+xwayland {
+ force_zero_scaling = true
+}
+
+
+# █▀ █▀█ █░█ █▀█ █▀▀ █▀▀
+# ▄█ █▄█ █▄█ █▀▄ █▄▄ ██▄
+
+source = ~/.config/hypr/animations.conf
+source = ~/.config/hypr/keybindings.conf
+source = ~/.config/hypr/windowrules.conf
+source = ~/.config/hypr/themes/common.conf # shared theme settings
+source = ~/.config/hypr/themes/theme.conf # theme specific settings
+source = ~/.config/hypr/themes/colors.conf # wallbash color override
+source = ~/.config/hypr/monitors.conf # initially empty, to be configured by user and remains static
+source = ~/.config/hypr/userprefs.conf # initially empty, to be configured by user and remains static
+source = ~/.config/hypr/custom/fusion.conf
+
+# Note: as userprefs.conf is sourced at the end, settings configured in this file will override the defaults
diff --git a/.config/hypr/keybindings.conf b/.config/hypr/keybindings.conf
new file mode 100644
index 0000000..0c31b6b
--- /dev/null
+++ b/.config/hypr/keybindings.conf
@@ -0,0 +1,168 @@
+
+# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
+# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+# & https://wiki.hyprland.org/Configuring/Binds/
+
+# Main modifier
+$mainMod = Super # super / meta / windows key
+
+# Assign apps
+$term = kitty
+$editor = code
+$file = nautilus
+$browser = brave
+
+# Window/Session actions
+bindd = $mainMod+Shift, P,Color Picker , exec, hyprpicker -a # Pick color (Hex) >> clipboard#
+bind = $mainMod, Q, exec, $scrPath/dontkillsteam.sh # close focused window
+bind = Alt, F4, exec, $scrPath/dontkillsteam.sh # close focused window
+bind = $mainMod, Delete, exit, # kill hyprland session
+bind = $mainMod, W, togglefloating, # toggle the window between focus and float
+bind = $mainMod, G, togglegroup, # toggle the window between focus and group
+bind = Alt, Return, fullscreen, # toggle the window between focus and fullscreen
+bind = $mainMod, L, exec, swaylock # launch lock screen
+bind = $mainMod+Shift, F, exec, $scrPath/windowpin.sh # toggle pin on focused window
+bind = $mainMod, Backspace, exec, $scrPath/logoutlaunch.sh # launch logout menu
+bind = Ctrl+Alt, W, exec, killall waybar || waybar # toggle waybar
+
+# Application shortcuts
+bind = $mainMod, T, exec, $term # launch terminal emulator
+bind = $mainMod, E, exec, $file # launch file manager
+bind = $mainMod, C, exec, $editor # launch text editor
+bind = $mainMod, F, exec, $browser # launch web browser
+bind = Ctrl+Shift, Escape, exec, $scrPath/sysmonlaunch.sh # launch system monitor (htop/btop or fallback to top)
+
+# Rofi menus
+bind = $mainMod, A, exec, pkill -x rofi || $scrPath/rofilaunch.sh d # launch application launcher
+bind = $mainMod, Tab, exec, pkill -x rofi || $scrPath/rofilaunch.sh w # launch window switcher
+bind = $mainMod+Shift, E, exec, pkill -x rofi || $scrPath/rofilaunch.sh f # launch file explorer
+
+# Audio control
+bindl = , F10, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute
+bindel = , F11, exec, $scrPath/volumecontrol.sh -o d # decrease volume
+bindel = , F12, exec, $scrPath/volumecontrol.sh -o i # increase volume
+bindl = , XF86AudioMute, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute
+bindl = , XF86AudioMicMute, exec, $scrPath/volumecontrol.sh -i m # toggle microphone mute
+bindel = , XF86AudioLowerVolume, exec, $scrPath/volumecontrol.sh -o d # decrease volume
+bindel = , XF86AudioRaiseVolume, exec, $scrPath/volumecontrol.sh -o i # increase volume
+
+# Media control
+bindl = , XF86AudioPlay, exec, playerctl play-pause # toggle between media play and pause
+bindl = , XF86AudioPause, exec, playerctl play-pause # toggle between media play and pause
+bindl = , XF86AudioNext, exec, playerctl next # media next
+bindl = , XF86AudioPrev, exec, playerctl previous # media previous
+
+# Brightness control
+bindel = , XF86MonBrightnessUp, exec, $scrPath/brightnesscontrol.sh i # increase brightness
+bindel = , XF86MonBrightnessDown, exec, $scrPath/brightnesscontrol.sh d # decrease brightness
+
+# Move between grouped windows
+bind = $mainMod CTRL , H, changegroupactive, b
+bind = $mainMod CTRL , L, changegroupactive, f
+
+# Screenshot/Screencapture
+bind = $mainMod, P, exec, $scrPath/screenshot.sh s # partial screenshot capture
+bind = $mainMod+Ctrl, P, exec, $scrPath/screenshot.sh sf # partial screenshot capture (frozen screen)
+bind = $mainMod+Alt, P, exec, $scrPath/screenshot.sh m # monitor screenshot capture
+bind = , Print, exec, $scrPath/screenshot.sh p # all monitors screenshot capture
+
+# Custom scripts
+bind = $mainMod+Alt, G, exec, $scrPath/gamemode.sh # disable hypr effects for gamemode
+bind = $mainMod+Alt, Right, exec, $scrPath/swwwallpaper.sh -n # next wallpaper
+bind = $mainMod+Alt, Left, exec, $scrPath/swwwallpaper.sh -p # previous wallpaper
+bind = $mainMod+Alt, Up, exec, $scrPath/wbarconfgen.sh n # next waybar mode
+bind = $mainMod+Alt, Down, exec, $scrPath/wbarconfgen.sh p # previous waybar mode
+bind = $mainMod+Shift, R, exec, pkill -x rofi || $scrPath/wallbashtoggle.sh -m # launch wallbash mode select menu
+bind = $mainMod+Shift, T, exec, pkill -x rofi || $scrPath/themeselect.sh # launch theme select menu
+bind = $mainMod+Shift, A, exec, pkill -x rofi || $scrPath/rofiselect.sh # launch select menu
+bind = $mainMod+Shift, W, exec, pkill -x rofi || $scrPath/swwwallselect.sh # launch wallpaper select menu
+bind = $mainMod, V, exec, pkill -x rofi || $scrPath/cliphist.sh c # launch clipboard
+bind = $mainMod+Shift, V, exec, pkill -x rofi || $scrPath/cliphist.sh # launch clipboard Manager
+bind = $mainMod, K, exec, $scrPath/keyboardswitch.sh # switch keyboard layout
+bind = $mainMod, slash, exec, pkill -x rofi || $scrPath/keybinds_hint.sh c # launch keybinds hint
+
+# Move/Change window focus
+bind = $mainMod, Left, movefocus, l
+bind = $mainMod, Right, movefocus, r
+bind = $mainMod, Up, movefocus, u
+bind = $mainMod, Down, movefocus, d
+bind = Alt, Tab, movefocus, d
+
+# Switch workspaces
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+bind = $mainMod, 6, workspace, 6
+bind = $mainMod, 7, workspace, 7
+bind = $mainMod, 8, workspace, 8
+bind = $mainMod, 9, workspace, 9
+bind = $mainMod, 0, workspace, 10
+
+# Switch workspaces to a relative workspace
+bind = $mainMod+Ctrl, Right, workspace, r+1
+bind = $mainMod+Ctrl, Left, workspace, r-1
+
+# Move to the first empty workspace
+bind = $mainMod+Ctrl, Down, workspace, empty
+
+# Resize windows
+binde = $mainMod+Shift, Right, resizeactive, 30 0
+binde = $mainMod+Shift, Left, resizeactive, -30 0
+binde = $mainMod+Shift, Up, resizeactive, 0 -30
+binde = $mainMod+Shift, Down, resizeactive, 0 30
+
+# Move focused window to a workspace
+bind = $mainMod+Shift, 1, movetoworkspace, 1
+bind = $mainMod+Shift, 2, movetoworkspace, 2
+bind = $mainMod+Shift, 3, movetoworkspace, 3
+bind = $mainMod+Shift, 4, movetoworkspace, 4
+bind = $mainMod+Shift, 5, movetoworkspace, 5
+bind = $mainMod+Shift, 6, movetoworkspace, 6
+bind = $mainMod+Shift, 7, movetoworkspace, 7
+bind = $mainMod+Shift, 8, movetoworkspace, 8
+bind = $mainMod+Shift, 9, movetoworkspace, 9
+bind = $mainMod+Shift, 0, movetoworkspace, 10
+
+# Move focused window to a relative workspace
+bind = $mainMod+Ctrl+Alt, Right, movetoworkspace, r+1
+bind = $mainMod+Ctrl+Alt, Left, movetoworkspace, r-1
+
+# Move active window around current workspace with mainMod + SHIFT + CTRL [←→↑↓]
+$moveactivewindow=grep -q "true" <<< $(hyprctl activewindow -j | jq -r .floating) && hyprctl dispatch moveactive
+binded = $mainMod SHIFT $CONTROL, left,Move activewindow to the right,exec, $moveactivewindow -30 0 || hyprctl dispatch movewindow l
+binded = $mainMod SHIFT $CONTROL, right,Move activewindow to the right,exec, $moveactivewindow 30 0 || hyprctl dispatch movewindow r
+binded = $mainMod SHIFT $CONTROL, up,Move activewindow to the right,exec, $moveactivewindow 0 -30 || hyprctl dispatch movewindow u
+binded = $mainMod SHIFT $CONTROL, down,Move activewindow to the right,exec, $moveactivewindow 0 30 || hyprctl dispatch movewindow d
+
+# Scroll through existing workspaces
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+# Move/Resize focused window
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+bindm = $mainMod, Z, movewindow
+bindm = $mainMod, X, resizewindow
+
+# Move/Switch to special workspace (scratchpad)
+bind = $mainMod+Alt, S, movetoworkspacesilent, special
+bind = $mainMod, S, togglespecialworkspace,
+
+# Toggle focused window split
+bind = $mainMod, J, togglesplit
+
+# Move focused window to a workspace silently
+bind = $mainMod+Alt, 1, movetoworkspacesilent, 1
+bind = $mainMod+Alt, 2, movetoworkspacesilent, 2
+bind = $mainMod+Alt, 3, movetoworkspacesilent, 3
+bind = $mainMod+Alt, 4, movetoworkspacesilent, 4
+bind = $mainMod+Alt, 5, movetoworkspacesilent, 5
+bind = $mainMod+Alt, 6, movetoworkspacesilent, 6
+bind = $mainMod+Alt, 7, movetoworkspacesilent, 7
+bind = $mainMod+Alt, 8, movetoworkspacesilent, 8
+bind = $mainMod+Alt, 9, movetoworkspacesilent, 9
+bind = $mainMod+Alt, 0, movetoworkspacesilent, 10
diff --git a/.config/hypr/monitors.conf b/.config/hypr/monitors.conf
new file mode 100644
index 0000000..ebcdd1f
--- /dev/null
+++ b/.config/hypr/monitors.conf
@@ -0,0 +1,4 @@
+# Generated by nwg-displays on 2024-10-20 at 23:56:52. Do not edit manually.
+
+monitor=DP-1,1920x1080@165.0,0x0,1.0
+monitor=HDMI-A-1,1920x1080@100.0,1920x0,1.0
diff --git a/.config/hypr/scripts/workspaceEXCEPT.sh b/.config/hypr/scripts/workspaceEXCEPT.sh
new file mode 100644
index 0000000..0505ab7
--- /dev/null
+++ b/.config/hypr/scripts/workspaceEXCEPT.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+current_monitor=$(hyprctl activewindow | grep 'monitor' | awk '{print $2}')
+export PRIMARY_MONITOR_WORKSPACE=$((PRIMARY_MONITOR_WORKSPACE-2))
+export SECONDARY_MONITOR_WORKSPACE=$((SECONDARY_MONITOR_WORKSPACE-2))
+
+if [ "$PRIMARY_MONITOR_WORKSPACE" -lt 1 ]; then
+ export PRIMARY_MONITOR_WORKSPACE=1
+ exit 1
+elif [ "$SECONDARY_MONITOR_WORKSPACE" -gt 10 ]; then
+ export SECONDARY_MONITOR_WORKSPACE=10
+ exit 1
+fi
+
+
+hyprctl dispatch focusmonitor 0
+# hyprctl dispatch fullscreenstate 0
+hyprctl dispatch workspace $PRIMARY_MONITOR_WORKSPACE
+
+hyprctl dispatch focusmonitor 1
+# hyprctl dispatch fullscreenstate 0
+hyprctl dispatch workspace $SECONDARY_MONITOR_WORKSPACE
+# hyprctl dispatch workspace 4
+
+hyprctl dispatch focusmonitor $current_monitor
diff --git a/.config/hypr/scripts/workspacePLUS.sh b/.config/hypr/scripts/workspacePLUS.sh
new file mode 100755
index 0000000..bec83d9
--- /dev/null
+++ b/.config/hypr/scripts/workspacePLUS.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+current_monitor=$(hyprctl activewindow | grep 'monitor' | awk '{print $2}')
+export PRIMARY_MONITOR_WORKSPACE=$((PRIMARY_MONITOR_WORKSPACE+2))
+export SECONDARY_MONITOR_WORKSPACE=$((SECONDARY_MONITOR_WORKSPACE+2))
+
+if [ "$PRIMARY_MONITOR_WORKSPACE" -lt 1 ]; then
+ export PRIMARY_MONITOR_WORKSPACE=1
+ exit 1
+elif [ "$SECONDARY_MONITOR_WORKSPACE" -gt 10 ]; then
+ export SECONDARY_MONITOR_WORKSPACE=10
+ exit 1
+fi
+
+hyprctl dispatch focusmonitor 0
+hyprctl dispatch workspace $PRIMARY_MONITOR_WORKSPACE
+
+hyprctl dispatch focusmonitor 1
+hyprctl dispatch workspace $SECONDARY_MONITOR_WORKSPACE
+
+hyprctl dispatch focusmonitor $current_monitor
diff --git a/.config/hypr/scripts/workspaceV2.sh b/.config/hypr/scripts/workspaceV2.sh
new file mode 100644
index 0000000..1307a2e
--- /dev/null
+++ b/.config/hypr/scripts/workspaceV2.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Extract workspace ID from the output of hyprctl activewindow
+current_monitor=$(hyprctl activeworkspace | grep 'monitorID' | awk '{print $2}')
+current_workspace=$(hyprctl activeworkspace | grep 'workspace' | awk '{print $3}')
+
+# Determine the second workspace based on whether the current workspace is even or odd
+if [ $((current_workspace % 2)) -eq 0 ]; then
+ second_workspace=$((current_workspace - 1))
+else
+ second_workspace=$((current_workspace + 1))
+fi
+
+# Assign primary and secondary monitor workspaces based on the current workspace
+if [ $((current_workspace % 2)) -eq 0 ]; then
+ primary_monitor_workspace=$((second_workspace + 2)) # left
+ secondary_monitor_workspace=$((current_workspace + 2)) # right
+else
+ primary_monitor_workspace=$((current_workspace + 2))
+ secondary_monitor_workspace=$((second_workspace + 2))
+fi
+
+# Check if primary_monitor_workspace is less than or equal to 0
+# or if secondary_monitor_workspace is greater than or equal to 11
+if [ "$primary_monitor_workspace" -le 0 ] || [ "$secondary_monitor_workspace" -ge 7 ]; then
+ exit 1
+fi
+
+
+# Switch focus and workspace for both monitors
+hyprctl dispatch focusmonitor 0
+hyprctl dispatch workspace $primary_monitor_workspace
+
+hyprctl dispatch focusmonitor 1
+hyprctl dispatch workspace $secondary_monitor_workspace
+
+# Optionally focus back to the original monitor if desired (adjust this part if needed)
+hyprctl dispatch focusmonitor $current_monitor
diff --git a/.config/hypr/scripts/workspaceV2except.sh b/.config/hypr/scripts/workspaceV2except.sh
new file mode 100644
index 0000000..a941de4
--- /dev/null
+++ b/.config/hypr/scripts/workspaceV2except.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Extract workspace ID from the output of hyprctl activewindow
+current_monitor=$(hyprctl activeworkspace | grep 'monitorID' | awk '{print $2}')
+current_workspace=$(hyprctl activeworkspace | grep 'workspace' | awk '{print $3}')
+
+# Determine the second workspace based on whether the current workspace is even or odd
+if [ $((current_workspace % 2)) -eq 0 ]; then
+ second_workspace=$((current_workspace - 1))
+else
+ second_workspace=$((current_workspace + 1))
+fi
+
+# Assign primary and secondary monitor workspaces based on the current workspace
+if [ $((current_workspace % 2)) -eq 0 ]; then
+ primary_monitor_workspace=$((second_workspace - 2)) # left
+ secondary_monitor_workspace=$((current_workspace - 2)) # right
+else
+ primary_monitor_workspace=$((current_workspace - 2))
+ secondary_monitor_workspace=$((second_workspace - 2))
+fi
+
+# Check if primary_monitor_workspace is less than or equal to 0
+# or if secondary_monitor_workspace is greater than or equal to 11
+if [ "$primary_monitor_workspace" -le 0 ] || [ "$secondary_monitor_workspace" -ge 7 ]; then
+ exit 1
+fi
+
+
+# Switch focus and workspace for both monitors
+hyprctl dispatch focusmonitor 0
+hyprctl dispatch workspace $primary_monitor_workspace
+
+hyprctl dispatch focusmonitor 1
+hyprctl dispatch workspace $secondary_monitor_workspace
+
+# Optionally focus back to the original monitor if desired (adjust this part if needed)
+hyprctl dispatch focusmonitor $current_monitor
diff --git a/.config/hypr/themes/colors.conf b/.config/hypr/themes/colors.conf
new file mode 100644
index 0000000..e69de29
diff --git a/.config/hypr/themes/common.conf b/.config/hypr/themes/common.conf
new file mode 100644
index 0000000..45759cc
--- /dev/null
+++ b/.config/hypr/themes/common.conf
@@ -0,0 +1,28 @@
+
+# █▀▀ █░█ █▀█ █▀ █▀█ █▀█
+# █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄
+
+exec = hyprctl setcursor Bibata-Modern-Ice 20
+exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice'
+exec = gsettings set org.gnome.desktop.interface cursor-size 20
+
+
+# █▀▀ █▀█ █▄░█ ▀█▀
+# █▀░ █▄█ █░▀█ ░█░
+
+exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10'
+exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10'
+exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9'
+exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba'
+exec = gsettings set org.gnome.desktop.interface font-hinting 'full'
+
+
+# █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░
+# ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄
+
+decoration {
+ dim_special = 0.3
+ blur {
+ special = true
+ }
+}
diff --git a/.config/hypr/themes/theme.conf b/.config/hypr/themes/theme.conf
new file mode 100644
index 0000000..d8fe3cf
--- /dev/null
+++ b/.config/hypr/themes/theme.conf
@@ -0,0 +1,47 @@
+# ___________ _________ __
+# \__ ___/ \_ ___ \_______ ___.__._______/ |_
+# | | ______ / \ \/\_ __ < | |\____ \ __\
+# | | /_____/ \ \____| | \/\___ || |_> > |
+# |____| \______ /|__| / ____|| __/|__|
+# \/ \/ |__|
+
+exec = gsettings set org.gnome.desktop.interface icon-theme 'Gruvbox-Plus-Dark'
+# exec = gsettings set org.gnome.desktop.interface gtk-theme 'Gruvbox-Retro'
+# exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
+
+# exec = gsettings set org.gnome.desktop.interface cursor-theme 'Gruvbox-Retro'
+# exec = gsettings set org.gnome.desktop.interface cursor-size 20
+exec = hyprctl setcursor Gruvbox-Retro 20
+
+general {
+ gaps_in = 3
+ gaps_out = 8
+ border_size = 2
+ col.active_border = rgba(90ceaaff) rgba(ecd3a0ff) 45deg
+ col.inactive_border = rgba(1e8b50d9) rgba(50b050d9) 45deg
+ layout = dwindle
+ resize_on_border = true
+}
+
+group {
+ col.border_active = rgba(90ceaaff) rgba(ecd3a0ff) 45deg
+ col.border_inactive = rgba(1e8b50d9) rgba(50b050d9) 45deg
+ col.border_locked_active = rgba(90ceaaff) rgba(ecd3a0ff) 45deg
+ col.border_locked_inactive = rgba(1e8b50d9) rgba(50b050d9) 45deg
+}
+
+decoration {
+ rounding = 3
+ drop_shadow = false
+
+ blur {
+ enabled = yes
+ size = 4
+ passes = 2
+ new_optimizations = on
+ ignore_opacity = on
+ xray = false
+ }
+}
+
+layerrule = blur,waybar
diff --git a/.config/hypr/userprefs.conf b/.config/hypr/userprefs.conf
new file mode 100644
index 0000000..7ee4618
--- /dev/null
+++ b/.config/hypr/userprefs.conf
@@ -0,0 +1,6 @@
+
+# █░█ █▀ █▀▀ █▀█ █▀█ █▀█ █▀▀ █▀▀ █▀
+# █▄█ ▄█ ██▄ █▀▄ █▀▀ █▀▄ ██▄ █▀░ ▄█
+
+# Set your personal hyprland configuration here
+# For a sample file, please refer to https://github.com/prasanthrangan/hyprdots/blob/main/Configs/.config/hypr/userprefs.t2
diff --git a/.config/hypr/windowrules.conf b/.config/hypr/windowrules.conf
new file mode 100644
index 0000000..71af27c
--- /dev/null
+++ b/.config/hypr/windowrules.conf
@@ -0,0 +1,99 @@
+
+# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█ █▀█ █░█ █░░ █▀▀ █▀
+# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀ █▀▄ █▄█ █▄▄ ██▄ ▄█
+
+# See https://wiki.hyprland.org/Configuring/Window-Rules/
+
+# windowrulev2 = opacity 0.90 0.90,class:^(firefox)$
+# windowrulev2 = opacity 0.90 0.90,class:^(Brave-browser)$
+# windowrulev2 = opacity 0.80 0.80,class:^(code-oss)$
+# windowrulev2 = opacity 0.80 0.80,class:^(Code)$
+# windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$
+# windowrulev2 = opacity 0.80 0.80,class:^(code-insiders-url-handler)$
+# windowrulev2 = opacity 0.80 0.80,class:^(kitty)$
+# windowrulev2 = opacity 0.80 0.80,class:^(org.kde.dolphin)$
+# windowrulev2 = opacity 0.80 0.80,class:^(org.kde.ark)$
+# windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$
+# windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$
+# windowrulev2 = opacity 0.80 0.80,class:^(qt6ct)$
+# windowrulev2 = opacity 0.80 0.80,class:^(kvantummanager)$
+# windowrulev2 = opacity 0.80 0.70,class:^(org.pulseaudio.pavucontrol)$
+# windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$
+# windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$
+# windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$
+# windowrulev2 = opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$
+# windowrulev2 = opacity 0.80 0.70,class:^(polkit-gnome-authentication-agent-1)$
+# windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.gtk)$
+# windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.hyprland)$
+# windowrulev2 = opacity 0.70 0.70,class:^([Ss]team)$
+# windowrulev2 = opacity 0.70 0.70,class:^(steamwebhelper)$
+# windowrulev2 = opacity 0.70 0.70,class:^([Ss]potify)$
+# windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Free)$
+# windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Premium)$
+
+# windowrulev2 = opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt
+# windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(vesktop)$ # Vesktop
+# windowrulev2 = opacity 0.80 0.80,class:^(discord)$ # Discord-Electron
+# windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ # WebCord-Electron
+# windowrulev2 = opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron
+# windowrulev2 = opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt
+# windowrulev2 = opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(Signal)$ # Signal-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
+# windowrulev2 = opacity 0.80 0.80,class:^(io.github.flattool.Warehouse)$ # Warehouse-Gtk
+
+windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$
+windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$
+windowrulev2 = float,title:^(About Mozilla Firefox)$
+windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
+windowrulev2 = float,class:^(firefox)$,title:^(Library)$
+windowrulev2 = float,class:^(kitty)$,title:^(top)$
+windowrulev2 = float,class:^(kitty)$,title:^(btop)$
+windowrulev2 = float,class:^(kitty)$,title:^(htop)$
+windowrulev2 = float,class:^(vlc)$
+windowrulev2 = float,class:^(kvantummanager)$
+windowrulev2 = float,class:^(qt5ct)$
+windowrulev2 = float,class:^(qt6ct)$
+windowrulev2 = float,class:^(nwg-look)$
+windowrulev2 = float,class:^(org.kde.ark)$
+windowrulev2 = float,class:^(org.pulseaudio.pavucontrol)$
+windowrulev2 = float,class:^(blueman-manager)$
+windowrulev2 = float,class:^(nm-applet)$
+windowrulev2 = float,class:^(nm-connection-editor)$
+windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$
+
+windowrulev2 = float,class:^(Signal)$ # Signal-Gtk
+windowrulev2 = float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk
+windowrulev2 = float,class:^(app.drey.Warp)$ # Warp-Gtk
+windowrulev2 = float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt
+windowrulev2 = float,class:^(yad)$ # Protontricks-Gtk
+windowrulev2 = float,class:^(eog)$ # Imageviewer-Gtk
+windowrulev2 = float,class:^(io.github.alainm23.planify)$ # planify-Gtk
+windowrulev2 = float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
+windowrulev2 = float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk
+windowrulev2 = float,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
+windowrulev2 = float,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
+
+windowrule = pseudo,fcitx
+
+# █░░ ▄▀█ █▄█ █▀▀ █▀█ █▀█ █░█ █░░ █▀▀ █▀
+# █▄▄ █▀█ ░█░ ██▄ █▀▄ █▀▄ █▄█ █▄▄ ██▄ ▄█
+
+layerrule = blur,rofi
+layerrule = ignorezero,rofi
+layerrule = blur,notifications
+layerrule = ignorezero,notifications
+layerrule = blur,swaync-notification-window
+layerrule = ignorezero,swaync-notification-window
+layerrule = blur,swaync-control-center
+layerrule = ignorezero,swaync-control-center
+layerrule = blur,logout_dialog
diff --git a/.config/hypr/workspaces.conf b/.config/hypr/workspaces.conf
new file mode 100644
index 0000000..d84db71
--- /dev/null
+++ b/.config/hypr/workspaces.conf
@@ -0,0 +1,12 @@
+# Generated by nwg-displays on 2024-10-20 at 23:53:28. Do not edit manually.
+
+workspace=1,monitor:DP-1,default:true
+workspace=2,monitor:DP-1
+workspace=3,monitor:DP-1
+workspace=4,monitor:DP-1
+workspace=5,monitor:DP-1
+workspace=6,monitor:HDMI-A-1,default:true
+workspace=7,monitor:HDMI-A-1
+workspace=8,monitor:HDMI-A-1
+workspace=9,monitor:HDMI-A-1
+workspace=10,monitor:HDMI-A-1
diff --git a/.config/waybar/Goal /config.jsonc b/.config/waybar/Goal /config.jsonc
deleted file mode 100644
index 93b2a77..0000000
--- a/.config/waybar/Goal /config.jsonc
+++ /dev/null
@@ -1,217 +0,0 @@
-// -*- mode: jsonc -*-
-[{
- "output": ["DP-1", "eDP-2"],
- // "layer": "top", // Waybar at top layer
- // "position": "bottom", // Waybar position (top|bottom|left|right)
- "height": 24, // Waybar height (to be removed for auto height)
- // "width": 1280, // Waybar width
- "spacing": 8, // Gaps between modules (4px)
- // Choose the order of the modules
- "modules-left": [
- "sway/workspaces",
- "cava",
- "sway/mode",
- "sway/scratchpad"
- ],
- "modules-center": [
- "sway/window"
- ],
- "modules-right": [
- "mpris",
- "idle_inhibitor",
- "load",
- "wireplumber",
- "backlight",
- "clock",
- "battery",
- "tray"
- ],
- // Modules configuration
- "sway/workspaces": {
- "all-outputs": true,
- "warp-on-scroll": false,
- "enable-bar-scroll": true,
- "disable-scroll-wraparound": true,
- "format": "{icon}",
- "format-icons": {
- "1": "",
- "2": "",
- "3": "",
- "4": "",
- "5": "",
- "9": "",
- "10": ""
- }
- },
- "sway/window": {
- "format": "{title}",
- "max-length": 60,
- "all-outputs": true
- },
- "cava": {
- // "cava_config": "$XDG_CONFIG_HOME/cava/cava.conf",
- "framerate": 30,
- "autosens": 1,
- "bars": 14,
- "lower_cutoff_freq": 50,
- "higher_cutoff_freq": 10000,
- "method": "pipewire",
- "source": "auto",
- "stereo": true,
- "bar_delimiter": 0,
- "noise_reduction": 0.77,
- "input_delay": 2,
- "hide_on_silence": true,
- "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" ],
- "actions": {
- "on-click-right": "mode"
- }
- },
- "mpris": {
- "format": " {status_icon} {dynamic}",
- "interval": 1,
- "dynamic-len": 40,
- "status-icons": {
- "playing": "▶",
- "paused": "⏸",
- "stopped": ""
- },
- "dynamic-order": ["title", "artist"],
- "ignored-players": ["firefox"]
- },
- "idle_inhibitor": {
- "format": "{icon}",
- "format-icons": {
- "activated": "",
- "deactivated": ""
- }
- },
- "sway/mode": {
- "format": "{}"
- },
- "sway/scratchpad": {
- "format": "{icon} {count}",
- "show-empty": false,
- "format-icons": ["", ""],
- "tooltip": true,
- "tooltip-format": "{app}: {title}"
- },
- "tray": {
- "icon-size": 14,
- "spacing": 10
- },
- "load": {
- "format": " {}"
- },
- "clock": {
- // "timezone": "America/New_York",
- "tooltip-format": "{:%Y %B}\n{calendar}",
- "format-alt": "{:%Y-%m-%d}"
- },
- "cpu": {
- "format": "{usage}% ",
- "tooltip": false
- },
- "memory": {
- "format": "{}% "
- },
- "temperature": {
- // "thermal-zone": 2,
- // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
- "critical-threshold": 80,
- // "format-critical": "{temperatureC}°C {icon}",
- "format": "{temperatureC}°C {icon}",
- "format-icons": ["", "", ""]
- },
- "backlight": {
- // "device": "acpi_video1",
- "format": "{icon} {percent}%",
- "format-icons": ["", "", "", "", "", "", "", "", ""]
- },
- "battery": {
- "states": {
- // "good": 95,
- "warning": 30,
- "critical": 15
- },
- "format": "{icon} {capacity}%",
- "format-full": "{icon} {capacity}%",
- "format-charging": " {capacity}%",
- "format-plugged": " {capacity}%",
- "format-alt": "{icon} {time}",
- // "format-good": "", // An empty format will hide the module
- // "format-full": "",
- "format-icons": ["", "", "", "", ""]
- },
- "wireplumber": {
- "scroll-step": 5, // %, can be a float
- "format": "{icon} {volume}%",
- "format-bluetooth": "{icon} {volume}% ",
- "format-bluetooth-muted": " {icon}",
- "format-muted": "",
- "format-icons": {
- "headphone": "",
- "hands-free": "",
- "headset": "",
- "phone": "",
- "portable": "",
- "car": "",
- "default": ["", "", ""]
- },
- "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
- }
-},{
- "output": ["HDMI-A-1"],
- // "layer": "top", // Waybar at top layer
- // "position": "bottom", // Waybar position (top|bottom|left|right)
- "height": 24, // Waybar height (to be removed for auto height)
- // "width": 1280, // Waybar width
- "spacing": 4, // Gaps between modules (4px)
- // Choose the order of the modules
- "modules-left": [
- "sway/workspaces",
- "sway/mode",
- "sway/scratchpad"
- ],
- "modules-center": [
- "clock"
- ],
- "modules-right": [
- "sway/window"
- ],
- "sway/workspaces": {
- "all-outputs": true,
- "warp-on-scroll": true,
- "enable-bar-scroll": true,
- "format": "{icon}",
- "format-icons": {
- "1": "",
- "2": "",
- "3": "",
- "4": "",
- "5": "",
- "9": "",
- "10": ""
- }
- },
- "sway/window": {
- "format": "{title}",
- "max-length": 60,
- "all-outputs": true
- },
- "sway/mode": {
- "format": "{}"
- },
- "sway/scratchpad": {
- "format": "{icon} {count}",
- "show-empty": false,
- "format-icons": ["", ""],
- "tooltip": true,
- "tooltip-format": "{app}: {title}"
- },
- "clock": {
- // "timezone": "America/New_York",
- "tooltip-format": "{:%Y %B}\n{calendar}",
- "format-alt": "{:%Y-%m-%d}"
- }
-}]
diff --git a/.config/waybar/Goal /style.css b/.config/waybar/Goal /style.css
deleted file mode 100644
index b4eec29..0000000
--- a/.config/waybar/Goal /style.css
+++ /dev/null
@@ -1,175 +0,0 @@
-* {
- font-size: 20px;
- border-radius: 5px;
-}
-
-window#waybar {
- /* `otf-font-awesome` is required to be installed for icons */
- font-family: JetBrainsMonoNL NF SemiBold;
- background-color: transparent;
- border-bottom: 0px;
- color: #ebdbb2;
- transition-property: background-color;
- transition-duration: .5s;
-}
-
-window#waybar.hidden {
- opacity: 0.2;
-}
-
-window#waybar.empty #window {
- background-color: transparent;
-}
-
-/*
-window#waybar.empty {
- background-color: transparent;
-}
-window#waybar.solo {
- background-color: #FFFFFF;
-}
-*/
-
-.modules-right {
- margin: 10px 10px 0 0;
-}
-.modules-center {
- margin: 10px 0 0 0;
-}
-.modules-left {
- margin: 10px 0 0 10px;
-}
-
-button {
- /* Use box-shadow instead of border so the text isn't offset */
- /* box-shadow: inset 0 -3px transparent; */
- border: none;
-}
-
-/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
-/*
-button:hover {
- background: inherit;
- box-shadow: inset 0 -3px #ebdbb2;
-} */
-
-#workspaces {
- background-color: #282828;
-}
-
-#workspaces button {
- padding: 0 5px;
- background-color: transparent;
- color: #ebdbb2;
- border-radius: 0;
-}
-
-#workspaces button:first-child {
- border-radius: 5px 0 0 5px;
-}
-
-#workspaces button:last-child {
- border-radius: 0 5px 5px 0;
-}
-
-#workspaces button:hover {
- color: #d79921;
-}
-
-#workspaces button.focused {
- background-color: #665c54;
- /* box-shadow: inset 0 -3px #ffffff; */
-}
-
-#workspaces button.urgent {
- background-color: #b16286;
-}
-
-#idle_inhibitor,
-#cava,
-#scratchpad,
-#mode,
-#window,
-#clock,
-#battery,
-#backlight,
-#wireplumber,
-#tray,
-#mpris,
-#load {
- padding: 0 10px;
- background-color: #282828;
- color: #ebdbb2;
-}
-
-#mode {
- background-color: #689d6a;
- color: #282828;
- /* box-shadow: inset 0 -3px #ffffff; */
-}
-
-/* If workspaces is the leftmost module, omit left margin */
-.modules-left > widget:first-child > #workspaces {
- margin-left: 0;
-}
-
-/* If workspaces is the rightmost module, omit right margin */
-.modules-right > widget:last-child > #workspaces {
- margin-right: 0;
-}
-
-#cava {
- padding: 0 5px;
-}
-
-#battery.charging, #battery.plugged {
- background-color: #98971a;
- color: #282828;
-}
-
-@keyframes blink {
- to {
- background-color: #282828;
- color: #ebdbb2;
- }
-}
-
-/* Using steps() instead of linear as a timing function to limit cpu usage */
-#battery.critical:not(.charging) {
- background-color: #cc241d;
- color: #ebdbb2;
- animation-name: blink;
- animation-duration: 0.5s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-label:focus {
- background-color: #000000;
-}
-
-#wireplumber.muted {
- background-color: #458588;
-}
-
-#tray > .passive {
- -gtk-icon-effect: dim;
-}
-
-#tray > .needs-attention {
- -gtk-icon-effect: highlight;
-}
-
-#mpris.playing {
- background-color: #d79921;
- color: #282828;
-}
-
-#tray menu {
- font-family: sans-serif;
-}
-
-#scratchpad.empty {
- background: transparent;
-}
diff --git a/.config/waybar/Goal/config.ctl b/.config/waybar/Goal/config.ctl
new file mode 100644
index 0000000..d59e0f3
--- /dev/null
+++ b/.config/waybar/Goal/config.ctl
@@ -0,0 +1,25 @@
+0|28|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock )|( hyprland/workspaces hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|28|top|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock )|( hyprland/workspaces hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|28|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|28|top|( cpu memory custom/cpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0||bottom|( hyprland/workspaces hyprland/window )|( idle_inhibitor clock )|( cpu memory custom/cpuinfo custom/gpuinfo ) ( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0||top|( hyprland/workspaces hyprland/window )|( idle_inhibitor clock )|( cpu memory custom/cpuinfo custom/gpuinfo ) ( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|31|bottom|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( privacy tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/notifications custom/keybindhint )
+0|31|left|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( privacy tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint )
+1|31|top|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( privacy tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint )
+0|31|right|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( privacy tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint )
+0|32|bottom||( custom/power ) ( privacy tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )|
+0|32|left||( custom/power ) ( privacy tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )|
+0|32|top||( custom/power ) ( privacy tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )|
+0|32|right||( custom/power ) ( privacy tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )|
+0|31|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( wlr/taskbar )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|31|top|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( wlr/taskbar )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|29|bottom|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|29|left|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|29|top|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|29|right|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( privacy tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
+0|28|bottom|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( privacy tray ) ( backlight network pulseaudio pulseaudio#microphone )
+0|28|left|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( privacy tray ) ( backlight network pulseaudio pulseaudio#microphone )
+0|28|top|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( privacy tray ) ( backlight network pulseaudio pulseaudio#microphone )
+0|28|right|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( privacy tray ) ( backlight network pulseaudio pulseaudio#microphone )
+0|40|top|( hyprland/workspaces )|( custom/cava idle_inhibitor clock )|( backlight pulseaudio pulseaudio#microphone tray battery custom/keybindhint custom/cliphist custom/power )
diff --git a/.config/waybar/Goal/config.jsonc b/.config/waybar/Goal/config.jsonc
new file mode 100644
index 0000000..f030e91
--- /dev/null
+++ b/.config/waybar/Goal/config.jsonc
@@ -0,0 +1,346 @@
+// --// waybar config generated by wbarconfgen.sh //-- //
+{
+ // sourced from header module //
+ "layer": "top",
+ "position": "bottom",
+ "mod": "dock",
+ "height": 20,
+ "exclusive": true,
+ "passthrough": false,
+ "gtk-layer-shell": true,
+ "reload_style_on_change": true,
+ // positions generated based on config.ctl //
+ "modules-left": [
+ "custom/padd",
+
+ "custom/l_end",
+ "memory",
+ "cpu",
+ "network",
+ "custom/r_end",
+
+ "custom/l_end",
+ "canva",
+ "custom/r_end",
+ "custom/padd",
+ ],
+ "modules-center": [
+ "custom/padd",
+ "custom/l_end",
+ "hyprland/workspaces",
+ "custom/r_end",
+ "custom/padd",
+ ],
+ "modules-right": [
+ "custom/padd",
+
+ "custom/l_end",
+ "custom/r_end",
+
+ "custom/l_end",
+ "custom/r_end",
+ "custom/padd",
+ ],
+ // sourced from modules based on config.ctl //
+
+ "hyprland/workspaces": {
+ "disable-scroll": true,
+ "rotate": 0,
+ "all-outputs": true,
+ "active-only": false,
+ "on-click": "activate",
+ "disable-scroll": false,
+ "on-scroll-up": "hyprctl dispatch workspace -1",
+ "on-scroll-down": "hyprctl dispatch workspace +1",
+ "persistent-workspaces": {
+ }
+ },
+
+ "custom/cava": {
+ "format": "{}",
+ "exec": "waybar_cava.sh",
+ "restart-interval": 1,
+ "hide-empty": true,
+ },
+ "mpris": {
+ "format": "{player_icon} {dynamic}",
+ "rotate": 0,
+ "format-paused": "{status_icon} {dynamic}",
+ "player-icons": {
+ "default": "▶",
+ "mpv": "🎵",
+ },
+ "status-icons": {
+ "paused": "",
+ },
+ // "ignored-players": ["firefox"]
+ "max-length": 1000,
+ "interval": 1,
+ },
+ "cpu": {
+ "interval": 10,
+ "format": " {usage}%",
+ "rotate": 0,
+ "format-alt": "{icon0}{icon1}{icon2}{icon3}",
+ "format-icons": [
+ "▁",
+ "▂",
+ "▃",
+ "▄",
+ "▅",
+ "▆",
+ "▇",
+ "█"
+ ],
+ },
+ "memory": {
+ "states": {
+ "c": 90, // critical
+ "h": 60, // high
+ "m": 30, // medium
+ },
+ "interval": 30,
+ "format": " {used}gb",
+ "rotate": 0,
+ "format-m": " {used}gb",
+ "format-h": " {used}gb",
+ "format-c": " {used}gb",
+ "format-alt": " {percentage}%",
+ "max-length": 10,
+ "tooltip": true,
+ "tooltip-format": " {percentage}%\n {used:0.1f}gb/{total:0.1f}gb",
+ },
+ "custom/power": {
+ "format": " {}",
+ "rotate": 0,
+ "exec": "echo ; echo logout",
+ "on-click": "logoutlaunch.sh 2",
+ "on-click-right": "logoutlaunch.sh 1",
+ "interval": 86400, // once every day
+ "tooltip": true,
+ },
+ "custom/cliphist": {
+ "format": " {}",
+ "rotate": 0,
+ "exec": "echo ; echo clipboard history",
+ "on-click": "sleep 0.1 && cliphist.sh c",
+ "on-click-right": "sleep 0.1 && cliphist.sh d",
+ "on-click-middle": "sleep 0.1 && cliphist.sh w",
+ "interval": 86400, // once every day
+ "tooltip": true,
+ },
+ "wlr/taskbar": {
+ "format": "{icon}",
+ "rotate": 0,
+ "icon-size": 25,
+ "icon-theme": "Gruvbox-Plus-Dark",
+ "spacing": 0,
+ "tooltip-format": "{title}",
+ "on-click": "activate",
+ "on-click-middle": "close",
+ "ignore-list": [
+ "Alacritty"
+ ],
+ "app_ids-mapping": {
+ "firefoxdeveloperedition": "firefox-developer-edition",
+ "jetbrains-datagrip": "DataGrip",
+ },
+ },
+ "custom/spotify": {
+ "exec": "mediaplayer.py --player spotify",
+ "format": " {}",
+ "rotate": 0,
+ "return-type": "json",
+ "on-click": "playerctl play-pause --player spotify",
+ "on-click-right": "playerctl next --player spotify",
+ "on-click-middle": "playerctl previous --player spotify",
+ "on-scroll-up": "volumecontrol.sh -p spotify i",
+ "on-scroll-down": "volumecontrol.sh -p spotify d",
+ "max-length": 25,
+ "escape": true,
+ "tooltip": true,
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "rotate": 0,
+ "format-icons": {
+ "activated": " ",
+ "deactivated": " ",
+ },
+ },
+ "clock": {
+ "format": "{:%I:%M %p}",
+ "rotate": 0,
+ "format-alt": "{:%R %d·%m·%y}",
+ "tooltip-format": "{calendar}",
+ "calendar": {
+ "mode": "month",
+ "mode-mon-col": 3,
+ "on-scroll": 1,
+ "on-click-right": "mode",
+ "format": {
+ "months": "{}",
+ "weekdays": "{}",
+ "today": "{}",
+ },
+ },
+ "actions": {
+ "on-click-right": "mode",
+ "on-click-forward": "tz_up",
+ "on-click-backward": "tz_down",
+ "on-scroll-up": "shift_up",
+ "on-scroll-down": "shift_down",
+ },
+ },
+ "privacy": {
+ "icon-size": 14,
+ "icon-spacing": 5,
+ "transition-duration": 250,
+ "modules": [
+ {
+ "type": "screenshare",
+ "tooltip": true,
+ "tooltip-icon-size": 24,
+ },
+ {
+ "type": "audio-in",
+ "tooltip": true,
+ "tooltip-icon-size": 24,
+ },
+ ],
+ },
+ "tray": {
+ "icon-size": 25,
+ "rotate": 0,
+ "spacing": 5,
+ },
+ "battery": {
+ "states": {
+ "good": 95,
+ "warning": 30,
+ "critical": 20,
+ },
+ "format": "{icon} {capacity}%",
+ "rotate": 0,
+ "format-charging": " {capacity}%",
+ "format-plugged": " {capacity}%",
+ "format-alt": "{time} {icon}",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ },
+ "backlight": {
+ "device": "intel_backlight",
+ "rotate": 0,
+ "format": "{icon} {percent}%",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "on-scroll-up": "brightnessctl set 1%+",
+ "on-scroll-down": "brightnessctl set 1%-",
+ "min-length": 6,
+ },
+ "network": {
+ "tooltip": true,
+ "format-wifi": " ",
+ "rotate": 0,
+ "format-ethernet": " {bandwidthDownBytes} {bandwidthUpBytes}",
+ "tooltip-format": "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}",
+ "format-linked": " {ifname} (No IP)",
+ "format-disconnected": " ",
+ "tooltip-format-disconnected": "Disconnected",
+ // "format-alt": " {bandwidthDownBytes} {bandwidthUpBytes}",
+ "interval": 2,
+ },
+ "pulseaudio": {
+ "format": "{icon} {volume}",
+ "rotate": 0,
+ "format-muted": "婢",
+ "on-click": "pavucontrol -t 3",
+ "on-click-right": "volumecontrol.sh -s ''",
+ "on-click-middle": "volumecontrol.sh -o m",
+ "on-scroll-up": "volumecontrol.sh -o i",
+ "on-scroll-down": "volumecontrol.sh -o d",
+ "tooltip-format": "{icon} {desc} // {volume}%",
+ "scroll-step": 5,
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": [
+ " ",
+ " ",
+ " "
+ ],
+ },
+ },
+ "pulseaudio#microphone": {
+ "format": "{format_source}",
+ "rotate": 0,
+ "format-source": "",
+ "format-source-muted": "",
+ "on-click": "pavucontrol -t 4",
+ "on-click-middle": "volumecontrol.sh -i m",
+ "on-scroll-up": "volumecontrol.sh -i i",
+ "on-scroll-down": "volumecontrol.sh -i d",
+ "tooltip-format": "{format_source} {source_desc} // {source_volume}%",
+ "scroll-step": 5,
+ },
+ // modules for padding //
+ "custom/l_end": {
+ "format": " ",
+ "interval": "once",
+ "tooltip": false,
+ },
+ "custom/r_end": {
+ "format": " ",
+ "interval": "once",
+ "tooltip": false,
+ },
+ "custom/sl_end": {
+ "format": " ",
+ "interval": "once",
+ "tooltip": false,
+ },
+ "custom/sr_end": {
+ "format": " ",
+ "interval": "once",
+ "tooltip": false,
+ },
+ "custom/rl_end": {
+ "format": " ",
+ "interval": "once",
+ "tooltip": false,
+ },
+ "custom/rr_end": {
+ "format": " ",
+ "interval": "once",
+ "tooltip": false,
+ },
+ "custom/padd": {
+ "format": " ",
+ "interval": "once",
+ "tooltip": false,
+ },
+}
diff --git a/.config/waybar/Goal/style.css b/.config/waybar/Goal/style.css
new file mode 100644
index 0000000..4330756
--- /dev/null
+++ b/.config/waybar/Goal/style.css
@@ -0,0 +1,178 @@
+* {
+ border: none;
+ border-radius: 0px;
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ font-size: 20px;
+ min-height: 10px;
+}
+
+@import "theme.css";
+
+window#waybar {
+ background: @bar-bg;
+}
+
+tooltip {
+ background: @main-bg;
+ color: @main-fg;
+ border-radius: 7px;
+ border-width: 0px;
+}
+
+#workspaces button {
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ margin-left: 0px;
+ padding-left: 3px;
+ padding-right: 3px;
+ margin-right: 0px;
+ color: @main-fg;
+ animation: ws_normal 20s ease-in-out 1;
+}
+
+#workspaces button.active {
+ background: @wb-act-bg;
+ color: @wb-act-fg;
+ margin-left: 3px;
+ padding-left: 12px;
+ padding-right: 12px;
+ margin-right: 3px;
+ animation: ws_active 20s ease-in-out 1;
+ transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
+}
+
+#workspaces button:hover {
+ background: @wb-hvr-bg;
+ color: @wb-hvr-fg;
+ animation: ws_hover 20s ease-in-out 1;
+ transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+}
+
+#taskbar button {
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ margin-left: 0px;
+ padding-left: 3px;
+ padding-right: 3px;
+ margin-right: 0px;
+ color: @wb-color;
+ animation: tb_normal 20s ease-in-out 1;
+}
+
+#taskbar button.active {
+ background: @wb-act-bg;
+ color: @wb-act-color;
+ margin-left: 3px;
+ padding-left: 12px;
+ padding-right: 12px;
+ margin-right: 3px;
+ animation: tb_active 20s ease-in-out 1;
+ transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
+}
+
+#taskbar button:hover {
+ background: @wb-hvr-bg;
+ color: @wb-hvr-color;
+ animation: tb_hover 20s ease-in-out 1;
+ transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+}
+
+#tray menu * {
+ min-height: 16px
+}
+
+#tray menu separator {
+ min-height: 10px
+}
+
+#backlight,
+#battery,
+#bluetooth,
+#custom-cava,
+#custom-cliphist,
+#clock,
+#custom-cpuinfo,
+#cpu,
+#custom-gpuinfo,
+#idle_inhibitor,
+#custom-keybindhint,
+#language,
+#memory,
+#mpris,
+#network,
+#custom-notifications,
+#custom-power,
+#privacy,
+#pulseaudio,
+#custom-spotify,
+#taskbar,
+#custom-theme,
+#tray,
+#custom-updates,
+#custom-wallchange,
+#custom-wbar,
+#window,
+#workspaces,
+#custom-l_end,
+#custom-r_end,
+#custom-sl_end,
+#custom-sr_end,
+#custom-rl_end,
+#custom-rr_end {
+ color: @main-fg;
+ background: @main-bg;
+ opacity: 1;
+ margin: 4px 0px 4px 0px;
+ padding-left: 4px;
+ padding-right: 4px;
+}
+
+#workspaces,
+#taskbar {
+ padding: 0px;
+}
+
+#custom-r_end {
+ border-radius: 0px 15px 15px 0px;
+ /* margin-right: 9px; */
+ padding-right: 3px;
+}
+
+#custom-l_end {
+ border-radius: 15px 0px 0px 15px;
+ margin-left: 9px;
+ padding-left: 3px;
+}
+
+#custom-sr_end {
+ border-radius: 0px;
+ margin-right: 9px;
+ padding-right: 3px;
+}
+
+#custom-sl_end {
+ border-radius: 0px;
+ margin-left: 9px;
+ padding-left: 3px;
+}
+
+#custom-rr_end {
+ border-radius: 0px 7px 7px 0px;
+ margin-right: 9px;
+ padding-right: 3px;
+}
+
+#custom-rl_end {
+ border-radius: 7px 0px 0px 7px;
+ margin-left: 9px;
+ padding-left: 3px;
+}
diff --git a/.config/waybar/Goal/theme.css b/.config/waybar/Goal/theme.css
new file mode 100644
index 0000000..691cf6b
--- /dev/null
+++ b/.config/waybar/Goal/theme.css
@@ -0,0 +1,10 @@
+@define-color bar-bg rgba(0, 0, 0, 0);
+
+@define-color main-bg #11111b;
+@define-color main-fg #cdd6f4;
+
+@define-color wb-act-bg #a6adc8;
+@define-color wb-act-fg #313244;
+
+@define-color wb-hvr-bg #f5c2e7;
+@define-color wb-hvr-fg #313244;
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
index 66f8fac..c92c2f1 100644
--- a/.config/waybar/config.jsonc
+++ b/.config/waybar/config.jsonc
@@ -25,6 +25,7 @@
"memory",
"cpu",
"custom/r_end",
+
"custom/l_end",
"custom/cava",
"custom/r_end",
@@ -39,11 +40,18 @@
],
"modules-right": [
"custom/padd",
+
+
+ "custom/l_end",
+ "hyprland/workspaces",
+ "custom/r_end",
+
"custom/l_end",
"backlight",
"network",
"pulseaudio",
"custom/r_end",
+
"custom/l_end",
"privacy",
"tray",
@@ -51,6 +59,20 @@
"custom/padd",
],
// sourced from modules based on config.ctl //
+
+ "hyprland/workspaces": {
+ "disable-scroll": true,
+ "rotate": 0,
+ "all-outputs": true,
+ "active-only": false,
+ "on-click": "activate",
+ "disable-scroll": false,
+ "on-scroll-up": "hyprctl dispatch workspace -1",
+ "on-scroll-down": "hyprctl dispatch workspace +1",
+ "persistent-workspaces": {
+ }
+ },
+
"custom/cava": {
"format": "{}",
"exec": "waybar_cava.sh",
@@ -74,7 +96,7 @@
},
"cpu": {
"interval": 10,
- "format": "| {usage}%",
+ "format": " {usage}%",
"rotate": 0,
"format-alt": "{icon0}{icon1}{icon2}{icon3}",
"format-icons": [
@@ -95,7 +117,7 @@
"m": 30, // medium
},
"interval": 30,
- "format": " {used}gb|",
+ "format": " {used}gb",
"rotate": 0,
"format-m": " {used}gb",
"format-h": " {used}gb",
@@ -284,9 +306,9 @@
"portable": "",
"car": "",
"default": [
- "",
- "",
- ""
+ " ",
+ " ",
+ " "
],
},
},
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
index a0182c7..4330756 100644
--- a/.config/waybar/style.css
+++ b/.config/waybar/style.css
@@ -142,13 +142,13 @@ tooltip {
}
#custom-r_end {
- border-radius: 0px 21px 21px 0px;
- margin-right: 9px;
+ border-radius: 0px 15px 15px 0px;
+ /* margin-right: 9px; */
padding-right: 3px;
}
#custom-l_end {
- border-radius: 21px 0px 0px 21px;
+ border-radius: 15px 0px 0px 15px;
margin-left: 9px;
padding-left: 3px;
}