diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml
new file mode 100644
index 0000000..cae459e
--- /dev/null
+++ b/config/alacritty/alacritty.toml
@@ -0,0 +1,32 @@
+# _____ .__ .__ __ __
+# / _ \ | | _____ ___________|__|/ |__/ |_ ___.__.
+# / /_\ \| | \__ \ _/ ___\_ __ \ \ __\ __< | |
+# / | \ |__/ __ \\ \___| | \/ || | | | \___ |
+# \____|__ /____(____ /\___ >__| |__||__| |__| / ____|
+# \/ \/ \/ \/
+#
+# https://alacritty.org/config-alacritty.html
+# Configuration by Coby Powers
+
+import = [
+ "~/.config/alacritty/catppuccin-mocha.toml"
+]
+
+
+[window]
+padding.x = 10
+padding.y = 10
+opacity = 0.9
+
+[scrolling]
+multiplier = 2
+
+[font]
+normal.family = "JetBrains Mono Nerd Font"
+size = 12
+
+[cursor]
+style.shape = "Beam"
+style.blinking = "On"
+blink_interval = 500
+unfocused_hollow = false
diff --git a/config/alacritty/catppuccin-mocha.toml b/config/alacritty/catppuccin-mocha.toml
new file mode 100644
index 0000000..1dfe857
--- /dev/null
+++ b/config/alacritty/catppuccin-mocha.toml
@@ -0,0 +1,75 @@
+[colors.primary]
+background = "#1E1E2E"
+foreground = "#CDD6F4"
+dim_foreground = "#CDD6F4"
+bright_foreground = "#CDD6F4"
+
+[colors.cursor]
+text = "#1E1E2E"
+cursor = "#F5E0DC"
+
+[colors.vi_mode_cursor]
+text = "#1E1E2E"
+cursor = "#B4BEFE"
+
+[colors.search.matches]
+foreground = "#1E1E2E"
+background = "#A6ADC8"
+
+[colors.search.focused_match]
+foreground = "#1E1E2E"
+background = "#A6E3A1"
+
+[colors.footer_bar]
+foreground = "#1E1E2E"
+background = "#A6ADC8"
+
+[colors.hints.start]
+foreground = "#1E1E2E"
+background = "#F9E2AF"
+
+[colors.hints.end]
+foreground = "#1E1E2E"
+background = "#A6ADC8"
+
+[colors.selection]
+text = "#1E1E2E"
+background = "#F5E0DC"
+
+[colors.normal]
+black = "#45475A"
+red = "#F38BA8"
+green = "#A6E3A1"
+yellow = "#F9E2AF"
+blue = "#89B4FA"
+magenta = "#F5C2E7"
+cyan = "#94E2D5"
+white = "#BAC2DE"
+
+[colors.bright]
+black = "#585B70"
+red = "#F38BA8"
+green = "#A6E3A1"
+yellow = "#F9E2AF"
+blue = "#89B4FA"
+magenta = "#F5C2E7"
+cyan = "#94E2D5"
+white = "#A6ADC8"
+
+[colors.dim]
+black = "#45475A"
+red = "#F38BA8"
+green = "#A6E3A1"
+yellow = "#F9E2AF"
+blue = "#89B4FA"
+magenta = "#F5C2E7"
+cyan = "#94E2D5"
+white = "#BAC2DE"
+
+[[colors.indexed_colors]]
+index = 16
+color = "#FAB387"
+
+[[colors.indexed_colors]]
+index = 17
+color = "#F5E0DC"
diff --git a/config/hypr/catppuccin-mocha.conf b/config/hypr/catppuccin-mocha.conf
new file mode 100644
index 0000000..1463565
--- /dev/null
+++ b/config/hypr/catppuccin-mocha.conf
@@ -0,0 +1,61 @@
+$rosewaterAlpha = f5e0dc
+$flamingoAlpha = f2cdcd
+$pinkAlpha = f5c2e7
+$mauveAlpha = cba6f7
+$redAlpha = f38ba8
+$maroonAlpha = eba0ac
+$peachAlpha = fab387
+$yellowAlpha = f9e2af
+$greenAlpha = a6e3a1
+$tealAlpha = 94e2d5
+$skyAlpha = 89dceb
+$sapphireAlpha = 74c7ec
+$blueAlpha = 89b4fa
+$lavenderAlpha = b4befe
+
+$textAlpha = cdd6f4
+$subtext1Alpha = bac2de
+$subtext0Alpha = a6adc8
+
+$overlay2Alpha = 9399b2
+$overlay1Alpha = 7f849c
+$overlay0Alpha = 6c7086
+
+$surface2Alpha = 585b70
+$surface1Alpha = 45475a
+$surface0Alpha = 313244
+
+$baseAlpha = 1e1e2e
+$mantleAlpha = 181825
+$crustAlpha = 11111b
+
+$rosewater = 0xfff5e0dc
+$flamingo = 0xfff2cdcd
+$pink = 0xfff5c2e7
+$mauve = 0xffcba6f7
+$red = 0xfff38ba8
+$maroon = 0xffeba0ac
+$peach = 0xfffab387
+$yellow = 0xfff9e2af
+$green = 0xffa6e3a1
+$teal = 0xff94e2d5
+$sky = 0xff89dceb
+$sapphire = 0xff74c7ec
+$blue = 0xff89b4fa
+$lavender = 0xffb4befe
+
+$text = 0xffcdd6f4
+$subtext1 = 0xffbac2de
+$subtext0 = 0xffa6adc8
+
+$overlay2 = 0xff9399b2
+$overlay1 = 0xff7f849c
+$overlay0 = 0xff6c7086
+
+$surface2 = 0xff585b70
+$surface1 = 0xff45475a
+$surface0 = 0xff313244
+
+$base = 0xff1e1e2e
+$mantle = 0xff181825
+$crust = 0xff11111b
diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf
new file mode 100644
index 0000000..9c9ee74
--- /dev/null
+++ b/config/hypr/hypridle.conf
@@ -0,0 +1,49 @@
+# ___ ___ .__ .___.__
+# / | \ ___.__._____________|__| __| _/| | ____
+# / ~ < | |\____ \_ __ \ |/ __ | | | _/ __ \
+# \ Y /\___ || |_> > | \/ / /_/ | | |_\ ___/
+# \___|_ / / ____|| __/|__| |__\____ | |____/\___ >
+# \/ \/ |__| \/ \/
+#
+# https://wiki.hyprland.org/Hypr-Ecosystem/hypridle/
+# Configuration by Coby Powers
+
+general {
+ lock_cmd = pidof hyprlock || hyprlock
+ unlock_cmd = pidof hyprlock && pkill -USR1 hyprlock
+ before_sleep_cmd = loginctl lock-session
+ after_sleep_cmd = hyprctl dispatch dpms on
+}
+
+listener {
+ timeout = 180
+ on-timeout = brightnessctl -s s 10
+ on-resume = brightnessctl -r
+}
+
+listener {
+ timeout = 180
+ on-timeout = brightnessctl -sd asus::kbd_backlight s 0
+ on-resume = brightnessctl -rd asus::kbd_backlight
+}
+
+listener {
+ timeout = 300
+ on-timeout = loginctl lock-session
+}
+
+listener {
+ timeout = 600
+ on-timeout = hyprctl dispatch dpms off
+ on-resume = hyprctl dispatch dpms on
+}
+
+listener {
+ timeout = 1200
+ on-timeout = playerctl pause
+}
+
+listener {
+ timeout = 1800
+ on-timeout = systemctl suspend
+}
diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf
new file mode 100644
index 0000000..52d324b
--- /dev/null
+++ b/config/hypr/hyprland.conf
@@ -0,0 +1,207 @@
+# ___ ___ .__ .___
+# / | \ ___.__._____________| | _____ ____ __| _/
+# / ~ < | |\____ \_ __ \ | \__ \ / \ / __ |
+# \ Y /\___ || |_> > | \/ |__/ __ \| | \/ /_/ |
+# \___|_ / / ____|| __/|__| |____(____ /___| /\____ |
+# \/ \/ |__| \/ \/ \/
+#
+# https://wiki.hyprland.org/Configuring/Variables/#general
+# Configuration by Coby Powers
+
+source = ~/.config/hypr/catppuccin-mocha.conf
+
+monitor = HDMI-A-1, 2560x1440@144, 0x1080, 1
+monitor = DP-10, 1920x1080@74.97, 320x0, 1
+monitor = DP-11, 1920x1080@74.97,320x0, 1
+monitor = eDP-1, 2560x1600@120, 2560x1400, 2
+monitor = eDP-2, 2560x1600@120, 2560x1400, 2
+monitor = , preferred, auto, auto
+
+# keybind variables
+$mainMod = SUPER
+
+# app variables
+$terminal = alacritty
+$browser = brave
+$fileManager = nautilus
+$musicPlayer = spotify
+$menu = wofi
+$powerMenu = wlogout
+
+# environment variables
+env = XDG_CURRENT_DESKTOP, Hyprland
+env = XDG_SESSION_DESTOP, Hyprland
+env = XDG_SESSION_TYPE, wayland
+env = GDK_BACKEND, wayland,x11
+env = QT_QPA_PLATFORM, wayland;xcb
+env = QT_QPA_PLATFORMTHEME, qt6ct
+env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
+env = SDL_VIDEODRIVER, wayland
+env = CLUTTER_BACKEND, wayland
+env = ELECTRON_OZONE_PLATFORM_HINT, wayland
+
+env = HYPRCURSOR_THEME, Oxygen-18-White
+env = HYPRCURSOR_SIZE, 24
+
+# launch system apps
+exec-once = ~/.config/hypr/scripts/xdg-portal-hyprland.sh
+exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+
+# launch util apps
+exec-once = wl-paste --watch cliphist store
+exec-once = hyprpaper
+exec-once = hypridle
+exec-once = waybar
+exec-once = nm-applet
+exec-once = blueman-applet
+exec-once = nextcloud-client
+exec-once = notify-send -u low "Daily Quote" "$(python ~/.config/hypr/scripts/quotes.py)"
+
+general {
+ border_size = 2
+ gaps_in = 5
+ gaps_out = 10
+ col.inactive_border = $surface0
+ col.active_border = $blue
+ resize_on_border = true
+}
+
+decoration {
+ rounding = 12
+ inactive_opacity = 0.95
+}
+
+animations {
+ enabled = true
+
+ bezier = custom, .8, 0, .08, 1
+
+ animation = windows, 1, 2, custom
+ animation = layers, 1, 2, custom
+ animation = fade, 1, 3, default
+ animation = border, 1, 3, default
+ animation = borderangle, 1, 3, default
+ animation = workspaces, 1, 2, custom
+}
+
+misc {
+ disable_hyprland_logo = true
+ disable_splash_rendering = true # isn't working
+}
+
+input {
+ repeat_rate = 30
+ repeat_delay = 400
+ follow_mouse = 1
+
+ touchpad {
+ natural_scroll = true
+ scroll_factor = 0.3
+ }
+}
+
+gestures {
+ workspace_swipe = true
+}
+
+device {
+ name = razer-razer-viper-ultimate-dongle
+ #sensitivity = -0.9
+}
+
+dwindle {
+ pseudotile = true
+ preserve_split = true
+}
+
+windowrulev2 = float, class:(Lxappearance)
+windowrulev2 = float, class:(nwg-look)
+windowrulev2 = float, class:(qt5ct)
+windowrulev2 = float, class:(qt6ct)
+windowrulev2 = float, class:(com.nextcloud.desktopclient.nextcloud)
+windowrulev2 = float, class:(minecraft-launcher)
+windowrulev2 = float, class:(org.gnome.Nautilus)
+windowrulev2 = float, title:(Save File)
+windowrulev2 = float, title:(Open File)
+
+windowrulev2 = opacity 0.9, class:(org.gnome.Nautilus)
+windowrulev2 = opacity, 0.9, class:(wofi)
+windowrulev2 = opacity 0.95, class:(signal)
+
+layerrule = blur, logout_dialog
+
+bind = $mainMod, T, exec, $terminal
+bind = $mainMod, B, exec, $browser
+bind = $mainMod, F, exec, $fileManager
+bind = $mainMod, M, exec, $musicPlayer
+bind = $mainMod, R, exec, $menu
+bind = $mainMod, P, exec, $powerMenu
+bind = $mainMod, Q, killactive,
+bind = $mainMod SHIFT, Q, exit,
+bind = $mainMod, K, togglefloating,
+bind = $mainMod, J, togglesplit, # dwindle
+bind = $mainMod, C, exec, grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:- | tail -n 1 | cut -d ' ' -f 4 | wl-copy
+bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
+bind = $mainMod SHIFT, V, exec, cliphist wipe
+bind = $mainMod, S, exec, grim -g "$(slurp)" - | wl-copy && wl-paste > /home/coby/Pictures/Screenshots/$(date +"scrn_%Y%m%d_%H%M%S.png") && notify-send "Screenshot taken!"
+bind = $mainMod SHIFT, S, exec, grim - | wl-copy && wl-paste > /home/coby/Pictures/Screenshots/$(date +"fscrn_%Y%m%d_%H%M%S.png") && notify-send "Screenshot taken!"
+
+bind = $mainMod, left, swapwindow, l
+bind = $mainMod, right, swapwindow, r
+bind = $mainMod, up, swapwindow, u
+bind = $mainMod, down, swapwindow, d
+
+bind = $mainMod SHIFT, left, resizeactive, -5% 0%
+bind = $mainMod SHIFT, right, resizeactive, 5% 0%
+bind = $mainMod SHIFT, up, resizeactive, 0% -5%
+bind = $mainMod SHIFT, down, resizeactive, 0% 5%
+
+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
+
+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
+
+bind = $mainMod, N, togglespecialworkspace, magic
+bind = $mainMod SHIFT, N, movetoworkspace, special:magic
+
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# TODO: maybe extrapolate notification behavior into scripts
+bindel = ,XF86AudioRaiseVolume, exec, pamixer -i 5; notify-send -h string:x-canonical-private-synchronous:vol "Volume set to $(pamixer --get-volume)%"
+bindel = ,XF86AudioLowerVolume, exec, pamixer -d 5; notify-send -h string:x-canonical-private-synchronous:vol "Volume set to $(pamixer --get-volume)%"
+bindel = ,XF86KbdBrightnessUp, exec, brightnessctl -d asus::kbd_backlight set 1%+; notify-send -h string:x-canonical-private-synchronous:kbd_bright "Keyboard brightness set to $(brightnessctl -d asus::kbd_backlight g)"
+bindel = ,XF86KbdBrightnessDown, exec, brightnessctl -d asus::kbd_backlight set 1%-; notify-send -h string:x-canonical-private-synchronous:kbd_bright "Keyboard brightness set to $(brightnessctl -d asus::kbd_backlight g)"
+bindel = ,XF86MonBrightnessUp, exec, brightnessctl set 5%+; notify-send -h string:x-canonical-private-synchronous:mon_bright "Monitor brightness set to $(brightnessctl g)"
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl set 5%-; notify-send -h string:x-canonical-private-synchronous:mon_bright "Monitor brightness set to $(brightnessctl g)"
+bindl = ,XF86AudioMute, exec, pamixer -t; notify-send -h string:x-canonical-private-synchronous:vol "Volume is now $(pamixer --get-volume-human)"
+bindl = ,XF86AudioMicMute, exec, pamixer --default-source -t
+bindl = ,XF86AudioPrev, exec, playerctl previous
+bindl = ,XF86AudioPlay, exec, playerctl play-pause
+bindl = ,XF86AudioNext, exec, playerctl next
+bindl = ,XF86TouchpadToggle, exec, notify-send -u normal "Unavailable" "Disabling the touchpad has not been implemented yet."
+bind = ,156, exec, rog-control-center # rog button
+bind = ,210, exec, asusctl led-mode -n # aura button
+bind = ,211, exec, asusctl profile -n # fan button
diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf
new file mode 100644
index 0000000..bbdc4ef
--- /dev/null
+++ b/config/hypr/hyprlock.conf
@@ -0,0 +1,80 @@
+# ___ ___ .__ __
+# / | \ ___.__._____________| | ____ ____ | | __
+# / ~ < | |\____ \_ __ \ | / _ \_/ ___\| |/ /
+# \ Y /\___ || |_> > | \/ |_( <_> ) \___| <
+# \___|_ / / ____|| __/|__| |____/\____/ \___ >__|_ \
+# \/ \/ |__| \/ \/
+#
+# https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
+# Configuration by Coby Powers
+
+background {
+ monitor =
+ path = /home/coby/Nextcloud/Wallpapers/Color Mountains.png
+ #color = rgba(30, 30, 46, 0.9)
+
+ blur_passes = 3
+ blur_size = 8
+ noise = 0.0117
+ contrast = 0.8916
+ brightness = 0.8172
+ vibrancy = 0.1696
+ vibrancy_darkness = 0.0
+}
+
+label {
+ monitor =
+ text = cmd[update:1000] echo $(date +"%l:%M")
+ color = rgb(205, 214, 244)
+ font_size = 180
+ font_family = Noto Sans
+ shadow_passes = 1
+ shadow_color = rgb(49, 50, 68)
+
+ position = 0, -110
+ halign = center
+ valign = center
+}
+
+input-field {
+ monitor =
+ size = 600, 75
+ outline_thickness = 3
+ dots_size = 0.25
+ dots_spacing = 0.3
+ dots_center = false
+ dots_rounding = -1
+ outer_color = rgb(49, 50, 68)
+ inner_color = rgb(30, 30, 46)
+ font_color = rgb(205, 214, 244)
+ fade_on_empty = true
+ fade_timeout = 1000
+ placeholder_text = Please enter your password...
+ hide_input = false
+ rounding = 16
+ check_color = rgb(249, 226, 175)
+ fail_color = rgb(243, 139, 168)
+ fail_text =
+ fail_transition = 200
+ capslock_color = rgb(203, 166, 247)
+ numlock_color = rgb(203, 166, 247)
+ bothlock_color = rgb(203, 166, 247)
+ invert_numlock = false
+ swap_font_color = false
+
+ position = 0, -200
+ halign = center
+ valign = center
+}
+
+label {
+ monitor =
+ text = cmd[update:60000] echo -e $(python ~/.config/hypr/scripts/quotes.py || "Hello, Coby")
+ color = rgb(166, 173, 200)
+ font_size = 18
+ font_family = JetBrainsMono Nerd Font
+
+ position = 0, -35
+ halign = center
+ valign = bottom
+}
diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..d350f8b
--- /dev/null
+++ b/config/hypr/hyprpaper.conf
@@ -0,0 +1,12 @@
+# ___ ___
+# / | \ ___.__.________________________ ______ ___________
+# / ~ < | |\____ \_ __ \____ \__ \ \____ \_/ __ \_ __ \
+# \ Y /\___ || |_> > | \/ |_> > __ \| |_> > ___/| | \/
+# \___|_ / / ____|| __/|__| | __(____ / __/ \___ >__|
+# \/ \/ |__| |__| \/|__| \/
+#
+# https://wiki.hyprland.org/Hypr-Ecosystem/hyprpaper/
+# Configuration by Coby Powers
+
+preload = /home/coby/Nextcloud/Wallpapers/Color Mountains.png
+wallpaper = ,/home/coby/Nextcloud/Wallpapers/Color Mountains.png
diff --git a/config/hypr/scripts/powermenu.sh b/config/hypr/scripts/powermenu.sh
new file mode 100755
index 0000000..23a6dd9
--- /dev/null
+++ b/config/hypr/scripts/powermenu.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+op=$( echo -e " Shutdown\n Reboot\n Suspend\n Lock" | wofi --dmenu | awk '{print tolower($2)}' )
+
+case $op in
+ shutdown)
+ shutdown now
+ ;;
+ reboot)
+ ;&
+ suspend)
+ systemctl $op
+ ;;
+ lock)
+ hyprlock
+ ;;
+esac
diff --git a/config/hypr/scripts/quotes.py b/config/hypr/scripts/quotes.py
new file mode 100755
index 0000000..cca5f49
--- /dev/null
+++ b/config/hypr/scripts/quotes.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python
+
+import requests
+
+res = requests.get('https://zenquotes.io/api/random')
+
+if not res:
+ exit(1)
+
+json = res.json()
+data = json[0]
+
+print(f"{data['q']}\n -- {data['a']}")
diff --git a/config/hypr/scripts/xdg-portal-hyprland.sh b/config/hypr/scripts/xdg-portal-hyprland.sh
new file mode 100755
index 0000000..2802ece
--- /dev/null
+++ b/config/hypr/scripts/xdg-portal-hyprland.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+sleep 1
+killall xdg-desktop-portal-hyprland
+killall xdg-desktop-portal-wlr
+killall xdg-desktop-portal
+/usr/lib/xdg-desktop-portal-hyprland &
+
+sleep 2
+/usr/lib/xdg-desktop-portal &
diff --git a/config/mako/config b/config/mako/config
new file mode 100644
index 0000000..db7e96b
--- /dev/null
+++ b/config/mako/config
@@ -0,0 +1,27 @@
+sort=-time
+layer=overlay
+background-color=#181825
+progress-color=#1e1e2e
+text-color=#cdd6f4
+width=400
+height=200
+outer-margin=45,45
+margin=0,0,12,0
+padding=16
+border-size=2
+border-color=#b4befe
+border-radius=10
+max-icon-size=64
+default-timeout=5000
+ignore-timeout=1
+font=monospace 12
+
+[urgency=low]
+border-color=#b4befe
+
+[urgency=normal]
+border-color=#fab387
+
+[urgency=high]
+border-color=#f38ba8
+default-timeout=0
diff --git a/config/qt5ct/colors/Catppuccin-Mocha.conf b/config/qt5ct/colors/Catppuccin-Mocha.conf
new file mode 100644
index 0000000..e566a63
--- /dev/null
+++ b/config/qt5ct/colors/Catppuccin-Mocha.conf
@@ -0,0 +1,4 @@
+[ColorScheme]
+active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
+disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
+inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
diff --git a/config/qt5ct/qt5ct.conf b/config/qt5ct/qt5ct.conf
new file mode 100644
index 0000000..0794b01
--- /dev/null
+++ b/config/qt5ct/qt5ct.conf
@@ -0,0 +1,32 @@
+[Appearance]
+color_scheme_path=/home/coby/.config/qt5ct/colors/Catppuccin-Mocha.conf
+custom_palette=true
+icon_theme=Papirus-Dark
+standard_dialogs=default
+style=Fusion
+
+[Fonts]
+fixed="JetBrainsMono Nerd Font,11,-1,5,50,0,0,0,0,0,Regular"
+general="JetBrainsMono Nerd Font,11,-1,5,50,0,0,0,0,0,Regular"
+
+[Interface]
+activate_item_on_single_click=1
+buttonbox_layout=0
+cursor_flash_time=1000
+dialog_buttons_have_icons=1
+double_click_interval=400
+gui_effects=@Invalid()
+keyboard_scheme=2
+menus_have_icons=true
+show_shortcuts_in_context_menus=true
+stylesheets=@Invalid()
+toolbutton_style=4
+underline_shortcut=1
+wheel_scroll_lines=3
+
+[SettingsWindow]
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\x4\x38\0\0\x2R\0\0\x6\xbe\0\0\0\0\0\0\x4\x38\0\0\x4\xe7\0\0\x6\xef\0\0\0\x2\x2\0\0\0\n\0\0\0\0\0\0\0\x4\x38\0\0\x2R\0\0\x6\xbe)
+
+[Troubleshooting]
+force_raster_widgets=1
+ignored_applications=@Invalid()
diff --git a/config/qt6ct/colors/Catppuccin-Mocha.conf b/config/qt6ct/colors/Catppuccin-Mocha.conf
new file mode 100644
index 0000000..e566a63
--- /dev/null
+++ b/config/qt6ct/colors/Catppuccin-Mocha.conf
@@ -0,0 +1,4 @@
+[ColorScheme]
+active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
+disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
+inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
diff --git a/config/qt6ct/qt6ct.conf b/config/qt6ct/qt6ct.conf
new file mode 100644
index 0000000..a9d2efe
--- /dev/null
+++ b/config/qt6ct/qt6ct.conf
@@ -0,0 +1,32 @@
+[Appearance]
+color_scheme_path=/home/coby/.config/qt6ct/colors/Catppuccin-Mocha.conf
+custom_palette=true
+icon_theme=Papirus-Dark
+standard_dialogs=default
+style=Fusion
+
+[Fonts]
+fixed="JetBrainsMono Nerd Font,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
+general="JetBrainsMono Nerd Font,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
+
+[Interface]
+activate_item_on_single_click=1
+buttonbox_layout=0
+cursor_flash_time=1000
+dialog_buttons_have_icons=1
+double_click_interval=400
+gui_effects=@Invalid()
+keyboard_scheme=2
+menus_have_icons=true
+show_shortcuts_in_context_menus=true
+stylesheets=@Invalid()
+toolbutton_style=4
+underline_shortcut=1
+wheel_scroll_lines=3
+
+[SettingsWindow]
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\x4\x38\0\0\x2R\0\0\x6\x8c\0\0\0\0\0\0\x4\x38\0\0\t\xfd\0\0\t\xbd\0\0\0\x2\x2\0\0\0\n\0\0\0\0\0\0\0\x4\x38\0\0\x2R\0\0\x6\x8c)
+
+[Troubleshooting]
+force_raster_widgets=1
+ignored_applications=@Invalid()
diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc
new file mode 100644
index 0000000..a27d450
--- /dev/null
+++ b/config/waybar/config.jsonc
@@ -0,0 +1,145 @@
+// __ __ ___.
+// / \ / \_____ ___.__.\_ |__ _____ _______
+// \ \/\/ /\__ \< | | | __ \\__ \\_ __ \
+// \ / / __ \\___ | | \_\ \/ __ \| | \/
+// \__/\ / (____ / ____| |___ (____ /__|
+// \/ \/\/ \/ \/
+//
+// https://github.com/Alexays/Waybar/wiki
+// Configuration by Coby Powers
+
+{
+ "layer": "top",
+ "position": "top",
+ "height": 50,
+ "modules-left": ["custom/app-drawer", "hyprland/workspaces", "cpu", "disk", "memory", "custom/weather"],
+ "modules-center": ["clock", "custom/updates"],
+ "modules-right": ["temperature", "custom/power_profile", "battery", "pulseaudio", "pulseaudio#microphone", "tray"],
+
+ "custom/app-drawer": {
+ "format": "",
+ "on-click": "sleep 0.1 && wofi",
+ "tooltip": false
+ },
+
+ "hyprland/workspaces": {
+ "persistent-workspaces": {
+ "1": [],
+ "2": [],
+ "3": []
+ }
+ },
+
+ "cpu": {
+ "format": " {usage}%",
+ //"format": "{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}",
+ "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
+ //"tooltip-format": "CPU Usage\n{usage}% | {load}\n{avg_frequency} GHz\n\n{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}\n{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}",
+ "tooltip-format": "bruh",
+ "on-click": "alacritty -o 'window.startup_mode=\"Fullscreen\"' -e btop"
+ },
+
+ "disk": {
+ "format": " {percentage_used}%",
+ "tooltip-format": "Disk Usage\n\nFree: {percentage_free}%\nUsed: {percentage_used}%\nTotal: {total}",
+ "on-click": "alacritty -o 'window.startup_mode=\"Fullscreen\"' -e btop"
+ },
+
+ "memory": {
+ "format": " {percentage}%",
+ "tooltip-format": "Memory Usage\n\nFree: {avail} GiB\nUsed: {used} GiB\nTotal: {total} GiB",
+ "on-click": "alacritty -o 'window.startup_mode=\"Fullscreen\"' -e btop"
+ },
+
+ "custom/weather":{
+ "exec": "~/.config/waybar/scripts/weather.py",
+ "interval": 30,
+ "format": "{}",
+ "return-type": "json"
+ },
+
+ "clock": {
+ "format": "{:%I:%M %p • %D}",
+ "tooltip-format": "{:%A, %b %d}\n{calendar}",
+ "calendar": {
+ "format": {
+ "months": "",
+ "weekdays": "{}",
+ "today": "{}"
+ }
+ }
+ },
+
+ "custom/updates":{
+ "exec": "~/.config/waybar/scripts/updates.sh json",
+ "interval": 300,
+ "format": "{}",
+ "on-click": "~/.config/waybar/scripts/updates.sh update",
+ "return-type": "json"
+ },
+
+ "temperature": {
+ "thermal-zone": 0,
+ "critical-threshold": 75,
+ "format": " {temperatureC}°C",
+ "format-critical": " {temperatureC}°C",
+ "tooltip-format": "CPU Temp\n{temperatureC}°C | {temperatureF}°F"
+ },
+
+ "custom/power_profile":{
+ "exec": "asusctl profile -p | sed s:'Active profile is '::",
+ "interval": 30,
+ "format": " {}",
+ "tooltip-format": "CPU Mode\n{}",
+ "on-click": "asusctl profile -n; pkill -SIGRTMIN+8 waybar",
+ "signal": 8
+ },
+
+ "battery": {
+ "states": {
+ "ok": 50,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon} {capacity}%",
+ "format-charging": " {capacity}%",
+ "format-plugged": " {capacity}%",
+ "format-icons": ["", "", "", "", "", "", "", "", "", "", ""],
+ "tooltip-format": "Battery\n{capacity}% | {power} W\n\n{timeTo}"
+ },
+
+ "pulseaudio": {
+ "format": "{icon} {volume}%",
+ "tooltip-format": "{icon} {desc}",
+ "format-muted": " Muted",
+ "on-click": "pamixer -t",
+ "on-scroll-up": "pamixer -i 5",
+ "on-scroll-down": "pamixer -d 5",
+ "scroll-step": 5,
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ }
+ },
+
+ "pulseaudio#microphone": {
+ "format": "{format_source}",
+ "format-source": " {volume}%",
+ "format-source-muted": " Muted",
+ "tooltip-format": " {desc}",
+ "on-click": "pamixer --default-source -t",
+ "on-scroll-up": "pamixer --default-source -i 5",
+ "on-scroll-down": "pamixer --default-source -d 5",
+ "scroll-step": 5
+ },
+
+ "tray": {
+ "icon-size": 14,
+ "spacing": 10
+ }
+}
diff --git a/config/waybar/scripts/updates.sh b/config/waybar/scripts/updates.sh
new file mode 100755
index 0000000..72eab13
--- /dev/null
+++ b/config/waybar/scripts/updates.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+if [ ! -f /etc/arch-release ]; then
+ exit 0
+fi
+
+AUR=$(paru -Qua | wc -l)
+OFFICIAL=$(checkupdates | wc -l)
+
+case $1 in
+ aur) echo " $AUR";;
+ official) echo " $OFFICIAL";;
+esac
+
+if [ "$1" = "update" ]; then
+ alacritty -o 'window.startup_mode="Fullscreen"' -e 'paru'
+fi
+
+if [ "$1" = "json" ]; then
+ COUNT=$((OFFICIAL+AUR))
+
+ echo "{ \"text\": \" $COUNT\", \"alt\": \"$COUNT Updates\", \"tooltip\": \"Updates Available\n\nAUR: $AUR\nOfficial: $OFFICIAL\nTotal: $COUNT\" }"
+fi
+
+if [ "$1" = "" ]; then
+ echo " $((OFFICIAL+AUR))"
+fi
diff --git a/config/waybar/scripts/weather.py b/config/waybar/scripts/weather.py
new file mode 100755
index 0000000..c988ee0
--- /dev/null
+++ b/config/waybar/scripts/weather.py
@@ -0,0 +1,115 @@
+#!/usr/bin/env python
+
+import json
+import requests
+from datetime import datetime
+
+ZIP_CODE = 38654
+
+WEATHER_CODES = {
+ '113': '☀️',
+ '116': '⛅',
+ '119': '☁️',
+ '122': '☁️',
+ '143': '☁️',
+ '176': '🌧️',
+ '179': '🌧️',
+ '182': '🌧️',
+ '185': '🌧️',
+ '200': '⛈️',
+ '227': '🌨️',
+ '230': '🌨️',
+ '248': '☁️',
+ '260': '☁️',
+ '263': '🌧️',
+ '266': '🌧️',
+ '281': '🌧️',
+ '284': '🌧️',
+ '293': '🌧️',
+ '296': '🌧️',
+ '299': '🌧️',
+ '302': '🌧️',
+ '305': '🌧️',
+ '308': '🌧️',
+ '311': '🌧️',
+ '314': '🌧️',
+ '317': '🌧️',
+ '320': '🌨️',
+ '323': '🌨️',
+ '326': '🌨️',
+ '329': '❄️',
+ '332': ' ',
+ '335': '❄️',
+ '338': '❄️',
+ '350': '🌧️',
+ '353': '🌧️',
+ '356': '',
+ '359': '',
+ '362': '',
+ '365': '',
+ '368': '',
+ '371': '❄️',
+ '374': '',
+ '377': '',
+ '386': '',
+ '389': '',
+ '392': '',
+ '395': '❄️'
+}
+
+data = {}
+
+weather = requests.get(f"https://wttr.in/{ZIP_CODE}?format=j1").json()
+
+def format_time(time):
+ return time.replace("00", "").zfill(2)
+
+def format_temp(temp):
+ return (hour['FeelsLikeF']+"°").ljust(3)
+
+def format_chances(hour):
+ chances = {
+ "chanceoffog": "Fog",
+ "chanceoffrost": "Frost",
+ "chanceofovercast": "Overcast",
+ "chanceofrain": "Rain",
+ "chanceofsnow": "Snow",
+ "chanceofsunshine": "Sunshine",
+ "chanceofthunder": "Thunder",
+ "chanceofwindy": "Wind"
+ }
+
+ conditions = []
+ for event in chances.keys():
+ if int(hour[event]) > 0:
+ conditions.append(chances[event]+" "+hour[event]+"%")
+ return ", ".join(conditions)
+
+tempint = int(weather['current_condition'][0]['FeelsLikeF'])
+extrachar = ''
+if tempint > 0 and tempint < 10:
+ extrachar = '+'
+
+data['text'] = ' '+WEATHER_CODES[weather['current_condition'][0]['weatherCode']] + \
+ " "+extrachar+weather['current_condition'][0]['FeelsLikeF']+"°"
+
+data['tooltip'] = f"{weather['current_condition'][0]['weatherDesc'][0]['value']} {weather['current_condition'][0]['temp_F']}°\n"
+data['tooltip'] += f"Feels like: {weather['current_condition'][0]['FeelsLikeF']}°\n"
+data['tooltip'] += f"Wind: {weather['current_condition'][0]['windspeedKmph']}Km/h\n"
+data['tooltip'] += f"Humidity: {weather['current_condition'][0]['humidity']}%\n"
+for i, day in enumerate(weather['weather']):
+ data['tooltip'] += f"\n"
+ if i == 0:
+ data['tooltip'] += "Today, "
+ if i == 1:
+ data['tooltip'] += "Tomorrow, "
+ data['tooltip'] += f"{day['date']}\n"
+ data['tooltip'] += f"⬆️ {day['maxtempF']}° ⬇️ {day['mintempF']}° "
+ data['tooltip'] += f"🌅 {day['astronomy'][0]['sunrise']} 🌇 {day['astronomy'][0]['sunset']}\n"
+ for hour in day['hourly']:
+ if i == 0:
+ if int(format_time(hour['time'])) < datetime.now().hour-2:
+ continue
+ data['tooltip'] += f"{format_time(hour['time'])} {WEATHER_CODES[hour['weatherCode']]} {format_temp(hour['FeelsLikeF'])} {hour['weatherDesc'][0]['value'].replace('Clear ', 'Clear')}, {format_chances(hour)}\n"
+
+print(json.dumps(data))
diff --git a/config/waybar/style.css b/config/waybar/style.css
new file mode 100644
index 0000000..7db48fd
--- /dev/null
+++ b/config/waybar/style.css
@@ -0,0 +1,175 @@
+* {
+ border: none;
+ border-radius: 0;
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ font-size: 13px;
+}
+
+window#waybar {
+ background: transparent;
+ color: #cdd6f4;
+}
+
+tooltip {
+ background: #1e1e2e;
+ border-radius: 10px;
+ border: 1px solid #181825;
+}
+
+tooltip label {
+ color: #cdd6f4;
+ text-decoration: none;
+}
+
+tooltip > * {
+ border-radius: 10px;
+}
+
+#custom-app-drawer,
+#cpu,
+#disk,
+#memory,
+#custom-weather,
+#workspaces,
+#clock,
+#custom-updates,
+#window,
+#temperature,
+#custom-power_profile,
+#battery,
+#pulseaudio,
+#tray {
+ background: #1e1e2e;
+ opacity: 0.9;
+ padding: 0px 10px;
+ margin-top: 10px;
+ border: 1px solid #181825;
+}
+
+#custom-app-drawer {
+ color: #94e2d5;
+ margin-left: 10px;
+ padding: 0 15px;
+ border-radius: 10px 0 0 10px;
+}
+
+#workspaces {
+ margin-right: 10px;
+ padding-right: 5px;
+ border-radius: 0 10px 10px 0;
+ border-left: 0;
+}
+
+#cpu,
+#disk,
+#memory {
+ color: #f2cdcd;
+}
+
+#cpu {
+ border-radius: 10px 0 0 10px;
+}
+
+#disk {
+ border-left: 0;
+}
+
+#memory {
+ border-left: none;
+ border-radius: 0 10px 10px 0;
+ margin-right: 10px;
+}
+
+#custom-weather {
+ color: #f9e2af;
+ border-radius: 10px;
+}
+
+#workspaces button {
+ color: #6c7086;
+ padding: 5px;
+ margin-right: 5px;
+}
+
+#workspaces button.active {
+ color: #a6adc8;
+}
+
+#workspaces button.focused {
+ color: #a6adc8;
+ background: #eba0ac;
+}
+
+#workspaces button.urgent {
+ color: #11111b;
+ background: #a6e3a1;
+}
+
+#workspaces button:hover {
+ background: #11111b;
+ color: #cdd6f4;
+}
+
+#clock {
+ color: #89b4fa;
+ border-radius: 10px 0 0 10px;
+ margin-left: 60px;
+}
+
+#custom-updates {
+ border-left: 0;
+ border-radius: 0 10px 10px 0;
+ margin-right: 60px;
+}
+
+#temperature {
+ color: #94e2d5;
+ border-radius: 10px 0px 0px 10px;
+}
+
+#temperature.critical {
+ color: #eba0ac;
+}
+
+#custom-power_profile {
+ color: #a6e3a1;
+ border-left: 0px;
+ border-right: 0px;
+}
+
+#battery {
+ color: #a6e3a1;
+ border-radius: 0 10px 10px 0;
+ margin-right: 10px;
+ border-left: 0px;
+}
+
+#battery.ok {
+ color: #f9e2af;
+}
+
+#battery.warning {
+ color: #fab387;
+}
+
+#battery.critical {
+ color: #eba0ac;
+}
+
+#pulseaudio {
+ color: #cba6f7;
+ border-radius: 10px 0 0 10px;
+}
+
+#pulseaudio.microphone {
+ color: #cba6f7;
+ border-radius: 0 10px 10px 0;
+ border-left: none;
+ margin-right: 10px;
+}
+
+#tray {
+ border-radius: 10px;
+ margin-right: 10px;
+}
diff --git a/config/wlogout/icons/active/hibernate.png b/config/wlogout/icons/active/hibernate.png
new file mode 100644
index 0000000..19ca77f
Binary files /dev/null and b/config/wlogout/icons/active/hibernate.png differ
diff --git a/config/wlogout/icons/active/lock.png b/config/wlogout/icons/active/lock.png
new file mode 100644
index 0000000..4847b16
Binary files /dev/null and b/config/wlogout/icons/active/lock.png differ
diff --git a/config/wlogout/icons/active/logout.png b/config/wlogout/icons/active/logout.png
new file mode 100644
index 0000000..9b6bf1c
Binary files /dev/null and b/config/wlogout/icons/active/logout.png differ
diff --git a/config/wlogout/icons/active/reboot.png b/config/wlogout/icons/active/reboot.png
new file mode 100644
index 0000000..08d3331
Binary files /dev/null and b/config/wlogout/icons/active/reboot.png differ
diff --git a/config/wlogout/icons/active/shutdown.png b/config/wlogout/icons/active/shutdown.png
new file mode 100644
index 0000000..52ad326
Binary files /dev/null and b/config/wlogout/icons/active/shutdown.png differ
diff --git a/config/wlogout/icons/active/suspend.png b/config/wlogout/icons/active/suspend.png
new file mode 100644
index 0000000..e57ebc7
Binary files /dev/null and b/config/wlogout/icons/active/suspend.png differ
diff --git a/config/wlogout/icons/inactive/hibernate.png b/config/wlogout/icons/inactive/hibernate.png
new file mode 100644
index 0000000..13deab8
Binary files /dev/null and b/config/wlogout/icons/inactive/hibernate.png differ
diff --git a/config/wlogout/icons/inactive/lock.png b/config/wlogout/icons/inactive/lock.png
new file mode 100644
index 0000000..edf5236
Binary files /dev/null and b/config/wlogout/icons/inactive/lock.png differ
diff --git a/config/wlogout/icons/inactive/logout.png b/config/wlogout/icons/inactive/logout.png
new file mode 100644
index 0000000..92a0db4
Binary files /dev/null and b/config/wlogout/icons/inactive/logout.png differ
diff --git a/config/wlogout/icons/inactive/reboot.png b/config/wlogout/icons/inactive/reboot.png
new file mode 100644
index 0000000..9212cca
Binary files /dev/null and b/config/wlogout/icons/inactive/reboot.png differ
diff --git a/config/wlogout/icons/inactive/shutdown.png b/config/wlogout/icons/inactive/shutdown.png
new file mode 100644
index 0000000..b042920
Binary files /dev/null and b/config/wlogout/icons/inactive/shutdown.png differ
diff --git a/config/wlogout/icons/inactive/suspend.png b/config/wlogout/icons/inactive/suspend.png
new file mode 100644
index 0000000..0024da2
Binary files /dev/null and b/config/wlogout/icons/inactive/suspend.png differ
diff --git a/config/wlogout/layout b/config/wlogout/layout
new file mode 100644
index 0000000..ba34624
--- /dev/null
+++ b/config/wlogout/layout
@@ -0,0 +1,35 @@
+{
+ "label" : "shutdown",
+ "action" : "systemctl poweroff",
+ "text" : "Shutdown"
+}
+
+{
+ "label" : "lock",
+ "action" : "loginctl lock-session",
+ "text" : "Lock"
+}
+
+{
+ "label" : "reboot",
+ "action" : "systemctl reboot",
+ "text" : "Reboot"
+}
+
+{
+ "label" : "logout",
+ "action" : "hyprctl dispatch exit 0",
+ "text" : "Logout"
+}
+
+{
+ "label" : "suspend",
+ "action" : "systemctl suspend",
+ "text" : "Suspend"
+}
+
+{
+ "label": "hibernate",
+ "action": "systemctl hibernate",
+ "text": "Hibernate"
+}
diff --git a/config/wlogout/style.css b/config/wlogout/style.css
new file mode 100644
index 0000000..1e1af3a
--- /dev/null
+++ b/config/wlogout/style.css
@@ -0,0 +1,69 @@
+window {
+ background-color: rgba(17, 17, 17, 0.8);
+}
+
+button {
+ margin: 4px;
+ color: #cdd6f4;
+ background-color: #1e1e2e;
+ background-repeat: no-repeat;
+ background-position: 50% 32%;
+ background-size: 25%;
+ border-radius: 10px;
+ transition: 0.2s ease-out all;
+}
+
+button:focus, button:active, button:hover {
+ background-color: #89b4fa;
+ color: #1e1e2e;
+ box-shadow: none;
+}
+
+#shutdown {
+ background-image: image(url("./icons/inactive/shutdown.png"), url("./icons/inactive/shutdown.png"));
+}
+
+#reboot {
+ background-image: image(url("./icons/inactive/reboot.png"), url("./icons/inactive/reboot.png"));
+}
+
+#suspend {
+ background-image: image(url("./icons/inactive/suspend.png"), url("./icons/inactive/suspend.png"));
+}
+
+#lock {
+ background-image: image(url("./icons/inactive/lock.png"), url("./icons/inactive/lock.png"));
+}
+
+#logout {
+ background-image: image(url("./icons/inactive/logout.png"), url("./icons/inactive/logout.png"));
+}
+
+#hibernate {
+ background-image: image(url("./icons/inactive/hibernate.png"), url("./icons/inactive/hibernate.png"));
+}
+
+#shutdown:focus, #shutdown:active, #shutdown:hover {
+ background-image: image(url("./icons/active/shutdown.png"), url("./icons/active/shutdown.png"));
+}
+
+#reboot:focus, #reboot:active, #reboot:hover {
+ background-image: image(url("./icons/active/reboot.png"), url("./icons/active/reboot.png"));
+}
+
+#suspend:focus, #suspend:active, #suspend:hover {
+ background-image: image(url("./icons/active/suspend.png"), url("./icons/active/suspend.png"));
+}
+
+#lock:focus, #lock:active, #lock:hover {
+ background-image: image(url("./icons/active/lock.png"), url("./icons/active/lock.png"));
+}
+
+#logout:focus, #logout:active, #logout:hover {
+ background-image: image(url("./icons/active/logout.png"), url("./icons/active/logout.png"));
+}
+
+#hibernate:focus, #hibernate:active, #hibernate:hover {
+ background-image: image(url("./icons/active/hibernate.png"), url("./icons/active/hibernate.png"));
+}
+
diff --git a/config/wofi/config b/config/wofi/config
new file mode 100644
index 0000000..2073027
--- /dev/null
+++ b/config/wofi/config
@@ -0,0 +1,15 @@
+width=600
+height=400
+location=center
+show=drun
+prompt=Search...
+filter_rate=100
+allow_markup=true
+no_actions=true
+halign=fill
+orientation=vertical
+content_halign=fill
+insensitive=true
+allow_images=true
+image_size=40
+gtk_dark=true
diff --git a/config/wofi/style.css b/config/wofi/style.css
new file mode 100644
index 0000000..aa85d9a
--- /dev/null
+++ b/config/wofi/style.css
@@ -0,0 +1,62 @@
+window {
+ border-radius: 16px;
+}
+
+#input {
+ margin: 4px;
+ padding: 6px 18px;
+ border: none;
+ color: #cdd6f4;
+ background-color: #1e1e2e;
+ outline: none;
+ border-radius: 8px;
+ margin: 10px;
+ margin-bottom: 0;
+}
+
+#input:first-child > :nth-child(1) {
+ margin-right: 12px;
+}
+
+#input > * {
+ color: inherit;
+}
+
+#input:focus {
+ margin: 12px;
+ margin-bottom: 0;
+}
+
+#inner-box {
+}
+
+#outer-box {
+}
+
+#scroll {
+ margin: 16px;
+}
+
+#img {
+ margin-right: 14px;
+}
+
+#text {
+ color: #e2e7f9;
+ font-weight: bold;
+}
+
+#text:selected {
+ color: #1e1e2e;
+}
+
+#entry {
+ padding: 6px 8px;
+ border-radius: 8px;
+}
+
+#entry:selected {
+ background-color: #89b4fa;
+ border: none;
+ outline: none;
+}