diff --git a/hyprland-work/.config/dunst/dunstrc b/hyprland-work/.config/dunst/dunstrc
new file mode 100644
index 00000000..02f8b39e
--- /dev/null
+++ b/hyprland-work/.config/dunst/dunstrc
@@ -0,0 +1,68 @@
+# vim: set ft=cfg:
+[global]
+ ## BEHAVIOR
+ follow = mouse # Notifications follow the monitor with the mouse
+ format = "%s (%a)\n%b"
+ hide_duplicate_count = false # Hide count of stacked notifs
+ ignore_newline = false # Ignore \n (for some reason)
+ indicate_hidden = true # Show how many messages are currently hidden
+ idle_threshold = 120 # Time in seconds before user is considered idle
+ markup = full # Whether to disable markup features (see manpage)
+ show_age_threshold = 60 # Shows age if message is older than this (in sec)
+ show_indicators = true # Show hints for interactable notifs
+ sort = true # Sort messages by urgency.
+ stack_duplicates = true
+ timeout = 10 # Time in seconds before the thing fades
+
+ ## MISC CONFIGURATION
+ always_run_script = true # Runs scripts for rules even if they're hidden
+ browser = xdg-open
+ dmenu = /usr/bin/wofi --dmenu -p dunst:
+
+ ## WINDOW CONFIGURATION
+ title = Dunst
+ class = Dunst
+
+ ## HISTORY
+ sticky_history = yes # Notifs pulled from history stay onscreen
+ history_length = 20 # Buffer size
+
+ ## LOOKS
+ # COLORS
+ # Note that rules defined later on can and will override these
+ # All colors must be quoted so as to not misinterpret as comments
+ background= "#fbf1c7cc" # Background of the notification
+ frame_color = "#f2e5bccc"
+ separator_color = frame
+ foreground = "#3c3836" # Font color, for body and title
+ highlight = "#b8bb26" # Progress bars
+ # SIZE AND POSITIONING
+ width = 400
+ height = 300
+ offset = 8x8 # This takes into account any bars
+ corner_radius = 8
+ transparency = 0
+ # PROGRESS BAR
+ progress_bar = true
+ progress_bar_corner_radius = 8
+ progress_bar_horizontal_alignment = left
+ progress_bar_frame_width = 2
+ progress_bar_height = 8
+ # INTERIOR FORMATTING
+ frame_width = 6 # Defines width in pixels of frame
+ horizontal_padding = 12 # Horizontal padding.
+ padding = 12 # Padding between text and separator.
+ separator_height = 4
+ # TEXT
+ alignment = left
+ font = IBM Plex Sans 10
+ line_height = 0
+ word_wrap = yes
+ # ICONS
+ icon_path = /usr/share/icons/Papirus-Light/48x48/status/:/usr/share/icons/Papirus-Light/48x48/devices/:/usr/share/icons/Papirus-Light/48x48/apps
+ icon_position = right
+ icon_corner_radius = 8
+ max_icon_size = 48
+
+[urgency_critical]
+ foreground = "#fb4934"
diff --git a/hyprland-work/.config/dunst/dunstrc-light b/hyprland-work/.config/dunst/dunstrc-light
new file mode 100644
index 00000000..365be6b2
--- /dev/null
+++ b/hyprland-work/.config/dunst/dunstrc-light
@@ -0,0 +1,321 @@
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = mouse
+
+ # The geometry of the window:
+ # [{width}]x{height}[+/-{x}+/-{y}]
+ # The geometry of the message window.
+ # The height is measured in number of notifications everything else
+ # in pixels. If the width is omitted but the height is given
+ # ("-geometry x2"), the message window expands over the whole screen
+ # (dmenu-like). If width is 0, the window expands to the longest
+ # message displayed. A positive x is measured from the left, a
+ # negative from the right side of the screen. Y is measured from
+ # the top and down respectively.
+ # The width can be negative. In this case the actual width is the
+ # screen width minus the width defined in within the geometry option.
+ geometry = "500x8-6+50"
+ corner_radius = 0
+
+ # Show how many messages are currently hidden (because of geometry).
+ indicate_hidden = yes
+
+ # Shrink window if it's smaller than the width. Will be ignored if
+ # width is 0.
+ shrink = no
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.).
+ transparency = 0
+
+ # The height of the entire notification. If the height is smaller
+ # than the font height and padding combined, it will be raised
+ # to the font height and padding.
+ notification_height = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ separator_height = 4
+
+ # Padding between text and separator.
+ padding = 12
+
+ # Horizontal padding.
+ horizontal_padding = 12
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 4
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#32302f"
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = frame
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ idle_threshold = 120
+
+ ### Text ###
+
+ #font = Monospace 8
+ font = Roboto 10
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # Markup is allowed
+ format = "%s (%a)\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Split notifications into multiple lines if they don't fit into
+ # geometry.
+ word_wrap = yes
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Merge multiple notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of merged notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Align icons left/right/off
+ icon_position = right
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 48
+
+ # Paths to default icons.
+ icon_path = /usr/share/icons/Papirus-Dark/48x48/status/:/usr/share/icons/Papirus-Dark/48x48/devices/:/usr/share/icons/Papirus-Dark/48x48/apps
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/rofi -dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = xdg-open
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Print a notification on startup.
+ # This is mainly for error detection, since dbus (re-)starts dunst
+ # automatically after a crash.
+ startup_notification = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+[shortcuts]
+
+ # Shortcuts are specified as [modifier+][modifier+]...key
+ # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
+ # "mod3" and "mod4" (windows-key).
+ # Xev might be helpful to find names for keys.
+
+ # Close notification.
+ close = mod1+shift+space
+
+ # Close all notifications.
+ close_all = mod1+shift+enter
+
+ # Redisplay last message(s).
+ # On the US keyboard layout "grave" is normally above TAB and left
+ # of "1". Make sure this key actually exists on your keyboard layout,
+ # e.g. check output of 'xmodmap -pke'
+ history = mod1+shift+d
+
+ # Context menu.
+ context = mod1+shift+o
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#282828"
+ foreground = "#ebdbb2"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_normal]
+ background = "#282828"
+ foreground = "#ebdbb2"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_critical]
+ background = "#282828"
+ foreground = "#fabd2f"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+# Messages can be matched by "appname", "summary", "body", "icon", "category",
+# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
+# "background", "new_icon" and "format".
+# Shell-like globbing will get expanded.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: if you don't want a notification to be displayed, set the format
+# to "".
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# format = ""
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+# vim: ft=cfg
diff --git a/hyprland-work/.config/hypr/config.d/00-basic.conf b/hyprland-work/.config/hypr/config.d/00-basic.conf
new file mode 100644
index 00000000..ad5c2519
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/00-basic.conf
@@ -0,0 +1,74 @@
+# vim: set ft=config:
+
+# Some default env vars.
+env = XCURSOR_SIZE,24
+env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
+
+general {
+ # https://wiki.hyprland.org/Configuring/Variables/
+ gaps_in = 8
+ gaps_out = 16
+ border_size = 4
+ #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.active_border = rgba(458588ff)
+ col.inactive_border = rgba(ebdbb2cc)
+ layout = dwindle
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+}
+
+decoration {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ rounding = 6
+ blur {
+ enabled = false
+ size = 3
+ passes = 1
+ }
+ drop_shadow = no
+ shadow_range = 8
+ shadow_render_power = 3
+ col.shadow = rgba(282828ee)
+}
+
+animations {
+ # https://wiki.hyprland.org/Configuring/Animations/
+ enabled = yes
+ bezier = snappy, 0.05, 0.9, 0.1, 1.05
+ animation = windows, 1, 2, snappy
+ animation = windowsIn, 1, 1, default
+ animation = windowsOut, 1, 2, default, popin 80%
+ animation = layers, 1, 1, default
+ animation = border, 1, 3, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 3, default
+ animation = workspaces, 1, 1.5, snappy
+}
+
+dwindle {
+ # https://wiki.hyprland.org/Configuring/Dwindle-Layout/
+ pseudotile = yes # Enables pseudotile functionality
+ preserve_split = yes # Remember splits
+ force_split = 2 # Force splits to put the child on the right/down
+}
+
+master {
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ new_status = master
+}
+
+gestures {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = true
+ workspace_swipe_invert = true
+}
+
+misc {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
+ disable_splash_rendering = true
+}
+
+xwayland {
+ force_zero_scaling = true
+}
diff --git a/hyprland-work/.config/hypr/config.d/03-keybinds.conf b/hyprland-work/.config/hypr/config.d/03-keybinds.conf
new file mode 100644
index 00000000..df7fda53
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/03-keybinds.conf
@@ -0,0 +1,83 @@
+# vim: set ft=config:
+# https://wiki.hyprland.org/Configuring/Binds/
+$mainMod = ALT
+
+# Program opening and closing
+bind = $mainMod, Return, exec, kitty --single-instance --wait-for-single-instance-window-close
+bind = $mainMod, Q, killactive
+bind = $mainMod, Space, exec, pgrep wofi || wofi --show drun
+#bind = $mainMod, M, exit,
+bind = $mainMod, T, pseudo, # dwindle
+bind = $mainMod, F, togglefloating,
+bind = $mainMod Shift, F, fullscreen
+bind = $mainMod, R, togglesplit, # dwindle
+
+# Dunst management
+bind = $mainMod Shift, Space, exec, dunstctl close
+bind = $mainMod Shift, Return, exec, dunstctl close-all
+bind = $mainMod Shift, D, exec, dunstctl history-pop
+bind = $mainMod Shift, O, exec, dunstctl context
+
+# Pulse controls
+bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume 0 +5%
+bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume 0 -5%
+
+# Screenshots
+bind = $mainMod, O, exec, grim -g "$(slurp -d)" - | wl-copy
+
+# pavucontrol controls
+bind = $mainMod, P, exec, pgrep pavucontrol || pavucontrol
+bind = $mainMod Shift, P, exec, pkill pavucontrol
+
+# Miscellaneous non-movement hotkeys
+bind = CTRL ALT, L, exec, loginctl lock-session
+
+# Change focus
+bind = $mainMod, h, movefocus, l
+bind = $mainMod, j, movefocus, d
+bind = $mainMod, k, movefocus, u
+bind = $mainMod, l, movefocus, r
+
+# Move the focused window around
+bind = $mainMod Shift, h, movewindow, l
+bind = $mainMod Shift, j, movewindow, d
+bind = $mainMod Shift, k, movewindow, u
+bind = $mainMod Shift, l, movewindow, r
+
+# Switch workspaces with mainMod + [0-9]
+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, MINUS, workspace, 11
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+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 SHIFT, MINUS, movetoworkspace, 11
+
+# Example special workspace (scratchpad)
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainMod, Period, workspace, e+1
+bind = $mainMod, Comma, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
diff --git a/hyprland-work/.config/hypr/config.d/04-inputs.conf b/hyprland-work/.config/hypr/config.d/04-inputs.conf
new file mode 100644
index 00000000..99e0b4b4
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/04-inputs.conf
@@ -0,0 +1,13 @@
+# vim: set ft=config:
+# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
+input {
+ kb_layout = us
+ accel_profile = flat
+ follow_mouse = 1
+ numlock_by_default = true
+ touchpad {
+ # Also sometimes called "Australian Scrolling"
+ natural_scroll = no
+ }
+ sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
+}
diff --git a/hyprland-work/.config/hypr/config.d/50-window-rules.conf b/hyprland-work/.config/hypr/config.d/50-window-rules.conf
new file mode 100644
index 00000000..cff4f355
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/50-window-rules.conf
@@ -0,0 +1,18 @@
+# vim: set ft=config:
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+
+# Force all windows to be unable to maximize themselves
+# Default rule that ships with hypr
+windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
+
+# Force pavucontrol to be the center of attention
+windowrulev2 = float, center 1, pin, class:^(.*pavucontrol.*)$
+
+# Assign specific windows to specific workspaces on launch
+windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$
+windowrulev2 = workspace 8 silent, class:^(org.mozilla.Thunderbird)$
+windowrulev2 = workspace 8 silent, class:^(Slack)$
+windowrulev2 = workspace 9 silent, class:^(.*vesktop.*)$
+windowrulev2 = workspace 10 silent, class:^(.*spotube.*)$
+windowrulev2 = workspace 10 silent, class:^(.*potify.*)$
+windowrulev2 = workspace 10 silent, class:^(im.riot.Riot)$
diff --git a/hyprland-work/.config/hypr/config.d/60-monitors.conf b/hyprland-work/.config/hypr/config.d/60-monitors.conf
new file mode 100644
index 00000000..9fb74ac2
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/60-monitors.conf
@@ -0,0 +1,4 @@
+# vim: set ft=config:
+# See https://wiki.hyprland.org/Configuring/Monitors/
+# Fall-through rule that sets sane defaults when possible
+monitor=,preferred,auto,auto
diff --git a/hyprland-work/.config/hypr/config.d/80-autostart-daemons.conf b/hyprland-work/.config/hypr/config.d/80-autostart-daemons.conf
new file mode 100644
index 00000000..3c341936
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/80-autostart-daemons.conf
@@ -0,0 +1,15 @@
+# vim: set ft=config:
+# Run this at first to fix up some systemd stuff
+exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+
+# Polkit
+exec-once = /usr/libexec/xfce-polkit
+# Not technically a daemon but required for wallet
+exec-once = /usr/libexec/pam_kwallet_init
+
+# Daemons and stuff
+exec-once = nm-applet
+exec-once = flatpak run com.nextcloud.desktopclient.nextcloud --background
+#exec-once = flatpak run io.kopia.KopiaUI
+exec-once = waybar
+exec-once = wlsunset -T 5300 -t 3500 -g 1
diff --git a/hyprland-work/.config/hypr/config.d/81-autostart-hypridle.conf b/hyprland-work/.config/hypr/config.d/81-autostart-hypridle.conf
new file mode 100644
index 00000000..945a1b5d
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/81-autostart-hypridle.conf
@@ -0,0 +1,3 @@
+# vim: set ft=config:
+# Configuration for hypridle is in ~/.config/hypr/hypridle.conf
+exec-once = hypridle
diff --git a/hyprland-work/.config/hypr/config.d/82-autostart-swww.conf b/hyprland-work/.config/hypr/config.d/82-autostart-swww.conf
new file mode 100644
index 00000000..33c84580
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/82-autostart-swww.conf
@@ -0,0 +1,2 @@
+# vim: set ft=config:
+exec-once = pgrep swww-daemon || { rm /run/user/$UID/swww.socket; swww-daemon --format xrgb; }
diff --git a/hyprland-work/.config/hypr/config.d/85-autostart-applications.conf b/hyprland-work/.config/hypr/config.d/85-autostart-applications.conf
new file mode 100644
index 00000000..150edd66
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/85-autostart-applications.conf
@@ -0,0 +1,8 @@
+# vim: set ft=config:
+# Workspace-specific applications
+exec-once = [workspace 8 silent] flatpak run org.keepassxc.KeePassXC
+#exec-once = [workspace 8 silent] flatpak run org.mozilla.Thunderbird
+#exec-once = [workspace 9 silent] flatpak run dev.vencord.Vesktop
+exec-once = [workspace 8 silent] flatpak run com.slack.Slack
+#exec-once = [workspace 10 silent] flatpak run im.riot.Riot
+exec-once = [workspace 10 silent] flatpak run com.spotify.Client
diff --git a/hyprland-work/.config/hypr/config.d/90-post.conf b/hyprland-work/.config/hypr/config.d/90-post.conf
new file mode 100644
index 00000000..cb25a079
--- /dev/null
+++ b/hyprland-work/.config/hypr/config.d/90-post.conf
@@ -0,0 +1,2 @@
+# vim: set ft=config:
+exec-once = test -x "$HOME/.config/hypr/post.sh" && "$HOME/.config/hypr/post.sh"
diff --git a/hyprland-work/.config/hypr/contrib/000-debug.conf b/hyprland-work/.config/hypr/contrib/000-debug.conf
new file mode 100644
index 00000000..be278ad1
--- /dev/null
+++ b/hyprland-work/.config/hypr/contrib/000-debug.conf
@@ -0,0 +1,5 @@
+# vim: set ft=config:
+debug {
+ # This enables debug logging for troubleshooting
+ disable_logs = false
+}
diff --git a/hyprland-work/.config/hypr/contrib/30-dsk-ryzen-1.ws.mgmt.desu.ltd.conf b/hyprland-work/.config/hypr/contrib/30-dsk-ryzen-1.ws.mgmt.desu.ltd.conf
new file mode 100644
index 00000000..37a789f3
--- /dev/null
+++ b/hyprland-work/.config/hypr/contrib/30-dsk-ryzen-1.ws.mgmt.desu.ltd.conf
@@ -0,0 +1,18 @@
+# vim: set ft=config:
+# See https://wiki.hyprland.org/Configuring/Monitors/
+#monitor=eDP-1,preferred,auto,1.3333
+monitor = DP-1,preferred,1440x937,1
+monitor = DP-2,preferred,0x0,1,transform,1
+
+workspace = 1, monitor:DP-1
+workspace = 2, monitor:DP-1
+workspace = 3, monitor:DP-1
+workspace = 4, monitor:DP-1
+workspace = 5, monitor:DP-1
+workspace = 6, monitor:DP-1
+workspace = 7, monitor:DP-1
+
+workspace = 8, monitor:DP-2
+workspace = 9, monitor:DP-2
+workspace = 10, monitor:DP-2
+workspace = 11, monitor:DP-2
diff --git a/hyprland-work/.config/hypr/contrib/30-lap-fw-diy-1.ws.mgmt.desu.ltd.conf b/hyprland-work/.config/hypr/contrib/30-lap-fw-diy-1.ws.mgmt.desu.ltd.conf
new file mode 100644
index 00000000..db5957c8
--- /dev/null
+++ b/hyprland-work/.config/hypr/contrib/30-lap-fw-diy-1.ws.mgmt.desu.ltd.conf
@@ -0,0 +1,3 @@
+# vim: set ft=config:
+# See https://wiki.hyprland.org/Configuring/Monitors/
+monitor=eDP-1,preferred,auto,1.3333
diff --git a/hyprland-work/.config/hypr/contrib/README.md b/hyprland-work/.config/hypr/contrib/README.md
new file mode 100644
index 00000000..7b5fec16
--- /dev/null
+++ b/hyprland-work/.config/hypr/contrib/README.md
@@ -0,0 +1,8 @@
+# Contrib
+
+Scripts and config files that don't necessarily belong in the defaults.
+
+## Usage
+
+Link to any of these files from within config.d to load them up. Use them
+to store machine-specific configs or optional scripts.
diff --git a/hyprland-work/.config/hypr/hypridle.conf b/hyprland-work/.config/hypr/hypridle.conf
new file mode 100644
index 00000000..67c0abb1
--- /dev/null
+++ b/hyprland-work/.config/hypr/hypridle.conf
@@ -0,0 +1,11 @@
+# vim: set ft=config:
+# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hypridle
+general {
+ lock_cmd = pgrep -u "$USER" hyprlock || hyprlock
+ unlock_cmd = pkill -xu "$USER" -SIGUSR1 hyprlock
+}
+
+listener {
+ timeout = 900
+ on-timeout = loginctl lock-session
+}
diff --git a/hyprland-work/.config/hypr/hyprland.conf b/hyprland-work/.config/hypr/hyprland.conf
new file mode 100644
index 00000000..c3cdcb86
--- /dev/null
+++ b/hyprland-work/.config/hypr/hyprland.conf
@@ -0,0 +1,3 @@
+# vim: set ft=config:
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+source = ~/.config/hypr/config.d/*.conf
diff --git a/hyprland-work/.config/hypr/hyprlock.conf b/hyprland-work/.config/hypr/hyprlock.conf
new file mode 100644
index 00000000..48c9331c
--- /dev/null
+++ b/hyprland-work/.config/hypr/hyprlock.conf
@@ -0,0 +1,68 @@
+# vim: set ft=config:
+# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
+
+# General settings
+general {
+ grace = 5
+ hide_cursor = true
+}
+
+# The password input field
+input-field {
+ monitor =
+ fade_on_empty = true
+ rounding = 8
+ outer_color = rgba(50,48,47,0.8)
+ inner_color = rgba(50,48,47,0.8)
+ font_color = rgb(235,219,178)
+ check_color = rgb(250,189,47)
+ fail_color = rgb(251,73,52)
+ size = 400, 50
+ position = 0, -200
+}
+
+# The background of the login box
+shape {
+ color = rgba(40,40,40,0.8)
+ size = 600, 800
+ position = 0, 0
+ rounding = 8
+}
+
+# A label showing the current time
+label {
+ text = cmd[update:30] echo ""$(date +"%I:%M %p")""
+ font_size = 48
+ color = rgb(235,219,178)
+ position = 0, 250
+ halign = center
+ valign = center
+}
+# A label showing the current date
+label {
+ text = cmd[update:30] echo ""$(date +'%A, %-d %B %Y')""
+ color = rgb(235,219,178)
+ position = 0, 150
+ halign = center
+ valign = center
+}
+# The background of the lock screen, behind the box
+background {
+ color = rgba(0,0,0,0.9)
+}
+# The current user's face
+image {
+ path = ~/.face
+ border_color = rgba(50,48,47,0.8)
+ size = 150
+ position = 0, 0
+}
+# Name of the current user
+label {
+ text = $USER
+ color = rgba(235,219,178,0.5)
+ font_size = 14
+ position = 0, -100
+ halign = center
+ valign = center
+}
diff --git a/hyprland-work/.config/kitty/gruvbox.conf b/hyprland-work/.config/kitty/gruvbox.conf
new file mode 100644
index 00000000..9d938d2f
--- /dev/null
+++ b/hyprland-work/.config/kitty/gruvbox.conf
@@ -0,0 +1,55 @@
+# Based on https://github.com/morhetz/gruvbox by morhetz
+# Adapted to kitty by wdomitrz
+
+cursor #928374
+cursor_text_color background
+
+url_color #83a598
+
+visual_bell_color #8ec07c
+bell_border_color #8ec07c
+
+active_border_color #d3869b
+inactive_border_color #665c54
+
+foreground #ebdbb2
+background #282828
+selection_foreground #928374
+selection_background #ebdbb2
+
+active_tab_foreground #fbf1c7
+active_tab_background #665c54
+inactive_tab_foreground #a89984
+inactive_tab_background #3c3836
+
+# black (bg3/bg4)
+color0 #665c54
+color8 #7c6f64
+
+# red
+color1 #cc241d
+color9 #fb4934
+
+#: green
+color2 #98971a
+color10 #b8bb26
+
+# yellow
+color3 #d79921
+color11 #fabd2f
+
+# blue
+color4 #458588
+color12 #83a598
+
+# purple
+color5 #b16286
+color13 #d3869b
+
+# aqua
+color6 #689d6a
+color14 #8ec07c
+
+# white (fg4/fg3)
+color7 #a89984
+color15 #bdae93
diff --git a/hyprland-work/.config/kitty/kitty.conf b/hyprland-work/.config/kitty/kitty.conf
new file mode 100644
index 00000000..2349b81d
--- /dev/null
+++ b/hyprland-work/.config/kitty/kitty.conf
@@ -0,0 +1,40 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+font_family IBM Plex Mono
+font_size 9.0
+# url_color #0087bd
+# url_style curly
+# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
+# detect_urls yes
+# underline_hyperlinks hover
+enable_audio_bell no
+confirm_os_window_close 0
+background_opacity 0.8
+include ~/.config/kitty/gruvbox.conf
+# Why the fuck does my terminal need to do this?
+update_check_interval 0
+
+
+# shell_integration enabled
+
+#: Enable shell integration on supported shells. This enables features
+#: such as jumping to previous prompts, browsing the output of the
+#: previous command in a pager, etc. on supported shells. Set to
+#: disabled to turn off shell integration, completely. It is also
+#: possible to disable individual features, set to a space separated
+#: list of these values: no-rc, no-cursor, no-title, no-cwd, no-
+#: prompt-mark, no-complete, no-sudo. See Shell integration
+#: for details.
+
+# term xterm-kitty
+term xterm-256color
+
+#: The value of the TERM environment variable to set. Changing this
+#: can break many terminal programs, only change it if you know what
+#: you are doing, not because you read some advice on "Stack Overflow"
+#: to change it. The TERM variable is used by various programs to get
+#: information about the capabilities and behavior of the terminal. If
+#: you change it, depending on what programs you run, and how
+#: different the terminal you are changing it to is, various things
+#: from key-presses, to colors, to various advanced features may not
+#: work. Changing this option by reloading the config will only affect
+#: newly created windows.
diff --git a/hyprland-work/.config/rofi/config.rasi b/hyprland-work/.config/rofi/config.rasi
new file mode 100644
index 00000000..4410d978
--- /dev/null
+++ b/hyprland-work/.config/rofi/config.rasi
@@ -0,0 +1,129 @@
+/*
+ * config.rasi
+ * Copyright (C) 2020 Vintage Salt
+ *
+ * Distributed under terms of the MIT License
+ *
+ * See rofi-theme(5) for documentation
+ */
+
+configuration {
+ matching: "normal";
+ show-icons: true;
+ icon-theme: "Papirus-Gruvbox-Dark";
+ modi: "drun,ssh,window";
+}
+
+* {
+ background: #282828;
+ background-alt: #32302f;
+ foreground: #ebdbb2;
+ foreground-alt: #fb4934;
+ yellow: #fabd2f;
+ blue: #83a598;
+ cyan: #8ec07c;
+
+ text-color: @foreground;
+ background-color: @background;
+ font: "IBM Plex Sans 10";
+}
+
+#window {
+ location: southwest;
+ anchor: southwest;
+
+ border-color: @background-alt;
+ background-color: @background;
+
+ border: 4px 4px 0 0;
+ height: 60%;
+ width: 30%;
+ padding: 0em;
+}
+ #inputbar {
+ background-color: @background-alt;
+ padding: 0.5em;
+ }
+ #case-indicator {
+ enabled: false;
+ }
+ #prompt {
+ enabled: false;
+ }
+ #textbox-prompt-colon {
+ enabled: false;
+ }
+ #entry {
+ background-color: inherit;
+ font: "IBM Plex Sans 12";
+ padding: 0.5em;
+ }
+ #num-filtered-rows {
+ background-color: inherit;
+ font: "IBM Plex Sans 12";
+ padding: 0.5em;
+ }
+ #textbox-num-sep {
+ background-color: inherit;
+ font: "IBM Plex Sans 12";
+ padding: 0.5em 0em;
+ }
+ #num-rows {
+ background-color: inherit;
+ font: "IBM Plex Sans 12";
+ padding: 0.5em;
+ }
+ #message {
+ padding: 4px;
+ }
+ #textbox {
+ padding: 4px 12px 4px 12px;
+ font-color: @foreground-alt;
+ }
+
+ #listview {
+ padding: 0.5em;
+ border: none;
+ }
+ #scrollbar {
+ handle-color: @background-alt;
+ enabled: false;
+ }
+ #element {
+ padding: 0.5em;
+ }
+ #element alternate.normal {
+ background-color: @background;
+ }
+ #element normal active {
+ text-color: @cyan;
+ }
+ #element normal urgent {
+ text-color: @yellow;
+ }
+ #element selected normal {
+ background-color: @blue;
+ text-color: @background;
+ }
+ #element selected active {
+ background-color: @cyan;
+ text-color: @background;
+ }
+ #element selected urgent {
+ background-color: @yellow;
+ text-color: @background;
+ }
+
+ #sidebar {
+ }
+
+ #button {
+ padding: 8px;
+ }
+
+ #button selected {
+ background-color: @background-alt;
+ }
+
+/* vim:ft=css
+*/
diff --git a/hyprland-work/.config/waybar/config b/hyprland-work/.config/waybar/config
new file mode 100644
index 00000000..1918bcf5
--- /dev/null
+++ b/hyprland-work/.config/waybar/config
@@ -0,0 +1,136 @@
+[{
+ "id": "top",
+ "name": "top",
+ "layer": "top",
+ "height": 40,
+ "margin-top": 16,
+ "margin-left": 16,
+ "margin-right": 16,
+ "modules-left": ["hyprland/workspaces", "hyprland/window", "sway/mode"],
+ "modules-right": ["tray"],
+ "hyprland/workspaces": {
+ "all-outputs": false,
+ "disable-scroll": true,
+ "persistent-workspaces": {
+ "eDP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ],
+ "DP-1": [ 1, 2, 3, 4, 5, 6, 7 ],
+ "DP-2": [ 8, 9, 10, 11 ]
+ }
+ },
+ "hyprland/window": {
+ "separate-outputs": true,
+ "format": "{}"
+ },
+ "tray": {
+ "icon-size": 16,
+ "spacing": 10
+ }
+},
+{
+ "id": "bottom",
+ "name": "bottom",
+ "layer": "top",
+ "position": "bottom",
+ "height": 40,
+ "margin-bottom": 16,
+ "margin-left": 16,
+ "margin-right": 16,
+ "modules-left": ["gamemode", "custom/flatpak", "custom/backup", "battery", "temperature", "cpu", "memory", "network"],
+ "modules-center": [],
+ "modules-right": ["mpris", "pulseaudio", "backlight", "idle_inhibitor", "clock"],
+ "clock": {
+ "format": "{:%a %b %d %I:%M %p}",
+ "tooltip": false
+ },
+ "network": {
+ "interval": 5,
+ "format": " {bandwidthUpBytes} {bandwidthDownBytes}",
+ "format-disconnected": ""
+ },
+ "battery": {
+ "states": {
+ "good": 100,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon} {capacity}%",
+ "format-charging": "{icon} {capacity}%",
+ "format-plugged": "{icon} {capacity}%",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "backlight": {
+ "format": " {percent}%"
+ },
+ "idle_inhibitor": {
+ "format": ""
+ },
+ "gamemode": {
+ "format": "{glyph}",
+ "glyph": "",
+ "use-icon": false,
+ "icon-spacing": 0,
+ "icon-size": 0
+ },
+ "pulseaudio": {
+ "scroll-step": 5,
+ "format": "{icon} {volume}%",
+ "format-muted": "{icon}",
+ "format-icons": {
+ "default": ["", "", ""]
+ },
+ "scroll-step": 1,
+ "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
+ },
+ "cpu": {
+ "interval": 3,
+ "format": " {usage}%",
+ "states": {
+ "critical": 90,
+ "warning": 80,
+ "regular": 50
+ }
+ },
+ "memory": {
+ "interval": 5,
+ "format": " {percentage}% {swapPercentage}%",
+ "states": {
+ "critical": 90,
+ "warning": 80,
+ "regular": 50
+ }
+ },
+ "temperature": {
+ "format": " {temperatureC}°",
+ "critical-threshold": 80
+ },
+ "mpris": {
+ "interval": 1,
+ "artist-len": 30,
+ "album-len": 30,
+ "title-len": 40,
+ "format": "{player_icon} - {dynamic}",
+ "ignored-players": [
+ "firefox"
+ ],
+ "player-icons": {
+ "default": "♫"
+ },
+ "status-icons": {
+ "playing": "⏵",
+ "paused": "⏸",
+ "stopped": "⏹"
+ }
+ },
+ "custom/flatpak": {
+ "interval": 180,
+ "tooltip-format": "{} pending Flatpak updates available",
+ "format": " {}",
+ "exec": "flatpak remote-ls --updates --app | wc -l",
+ "exec-if": "test $(flatpak remote-ls --updates --app | wc -l) -gt 0"
+ },
+ "custom/backup": {
+ "interval": 60,
+ "format": "",
+ "exec": "systemctl is-failed backup.service"
+ }
+}]
diff --git a/hyprland-work/.config/waybar/style.css b/hyprland-work/.config/waybar/style.css
new file mode 100644
index 00000000..1d22a1a3
--- /dev/null
+++ b/hyprland-work/.config/waybar/style.css
@@ -0,0 +1,210 @@
+/*
+ * style.css
+ * Copyright (C) 2021 Vintage Salt
+ *
+ * Distributed under terms of the MIT license.
+ */
+
+* {
+ border: none;
+ border-radius: 0;
+ font-family: "IBM Plex Sans", "Font Awesome 6 Free", sans-serif;
+ font-size: 13px;
+}
+
+window#waybar {
+ background: transparent;
+}
+.modules-left {
+ background: rgba(235, 219, 178, 0.8);
+ border-radius: 8px;
+}
+.modules-right {
+ background: rgba(235, 219, 178, 0.8);
+ border-radius: 8px;
+}
+
+/* Hypr stuff */
+#workspaces {
+}
+#workspaces button {
+ /* Any random button */
+ background: transparent;
+ color: #7c6f64;
+ padding: 0 0.9em;
+ border-radius: 8px;
+}
+#workspaces button.persistent {
+ color: rgba(40, 40, 40, 0.8);
+}
+#workspaces button.empty {
+ color: rgba(40, 40, 40, 0.2);
+}
+#workspaces button:hover {
+ /* A button that is currently being hovered over by the mouse cursor */
+ /* This comes with free transitions */
+ box-shadow: inherit;
+ text-shadow: inherit;
+ background-color: #928374;
+}
+#workspaces button.focused {
+ color: rgba(235, 219, 178, 0.8);
+ background: #928374;
+ font-weight: bold;
+}
+#workspaces button.visible {
+ color: rgba(235, 219, 178, 0.8);
+ background: #076678;
+ font-weight: bold;
+}
+#workspaces button.active {
+ color: rgba(235, 219, 178, 0.8);
+ background: #458588;
+ font-weight: bold;
+}
+#workspaces button.urgent {
+ color: #d79921;
+ font-weight: bold;
+}
+/* Window and mode display */
+#window {
+ color: rgba(40, 40, 40, 0.4);
+ padding: 0 1em;
+ border-radius: 8px;
+}
+window#waybar.empty #window {
+ /* We do this so it properly hides when on an empty workspace */
+ padding: 0;
+}
+window#waybar.solo #window {
+ /* Nothing */
+}
+window#waybar.floating #window {
+ /* Workspace contains only floating windows */
+ color: rgba(235, 219, 178, 0.8);
+ background: #689d6a;
+}
+window#waybar.fullscreen #window {
+ /* Workspace containing a "fullscreen" window (note that this includes fullscreen, 1, which is maximize) */
+ color: rgba(235, 219, 178, 0.8);
+ background: #b16286;
+}
+
+/* widgets */
+#pulseaudio {
+ padding: 0 1em;
+ color: #282828;
+ border-radius: 8px;
+}
+#pulseaudio.muted {
+ border-radius: 8px;
+ background: #cc241d;
+ color: #ebdbb2;
+}
+#tray {
+ padding: 0 1em;
+}
+#mpris {
+ padding: 0 1em;
+}
+#mpris.playing {
+ color: #b16286;
+}
+#mpris.paused, #mpris.stopped {
+ color: rgba(40, 40, 40, 0.2);
+}
+
+#network {
+ padding: 0 1em;
+ color: rgba(40, 40, 40, 0.2);
+}
+#network.disconnected {
+ color: #cc241d;
+}
+
+#idle_inhibitor {
+ padding: 0 1em;
+}
+#idle_inhibitor.deactivated {
+ color: rgba(40, 40, 40, 0.2);
+}
+#idle_inhibitor.activated {
+ color: #282828;
+}
+
+#backlight {
+ padding: 0 1em;
+ color: #282828;
+}
+#gamemode {
+ padding: 0 1em;
+ color: rgba(40, 40, 40, 0.2);
+}
+#gamemode.running {
+ color: #b8bb26;
+}
+/* Memory */
+#memory {
+ padding: 0 1em;
+ color: rgba(40, 40, 40, 0.2);
+}
+#memory.critical {
+ color: #cc241d;
+}
+#memory.warning {
+ color: #d79921;
+}
+#memory.regular {
+ color: #282828;
+}
+/* CPU */
+#cpu {
+ padding: 0 1em;
+ color: rgba(40, 40, 40, 0.2);
+}
+#cpu.critical {
+ color: #cc241d;
+}
+#cpu.warning {
+ color: #d79921;
+}
+#cpu.regular {
+ color: #282828;
+}
+/* Battery */
+#battery {
+ padding: 0 1em;
+}
+#battery.charging {
+ color: #b8bb26;
+}
+#battery.good {
+ color: rgba(40, 40, 40, 0.2);
+}
+#battery.discharging.warning {
+ color: #d79921;
+}
+#battery.discharging.critical {
+ color: #cc241d;
+}
+#clock {
+ color: #282828;
+ padding: 0 1em;
+}
+/* Temperature*/
+#temperature {
+ padding: 0 1em;
+ color: rgba(40, 40, 40, 0.2);
+}
+#temperature.critical {
+ color: #cc241d;
+}
+/* Custom modules */
+#custom-backup {
+ color: #cc241d;
+ padding: 0 1em;
+}
+#custom-flatpak {
+ color: rgba(40, 40, 40, 0.2);
+ padding: 0 1em;
+}
diff --git a/hyprland-work/.config/wofi/config b/hyprland-work/.config/wofi/config
new file mode 100644
index 00000000..0f7e0039
--- /dev/null
+++ b/hyprland-work/.config/wofi/config
@@ -0,0 +1,6 @@
+# vim: set ft=config:
+# wofi(5)
+insensitive=true
+allow_images=true
+no_actions=true
+hide_scroll=true
diff --git a/hyprland-work/.config/wofi/style.css b/hyprland-work/.config/wofi/style.css
new file mode 100644
index 00000000..d8dadd6d
--- /dev/null
+++ b/hyprland-work/.config/wofi/style.css
@@ -0,0 +1,57 @@
+/* ::root{ */
+/* --accent: #5291e2; */
+/* --dark: #383C4A; */
+/* --light: #7C818C; */
+/* --ld: #404552; */
+/* --dl: #4B5162 */
+/* --white: white; */
+/* } */
+
+/* The whole window */
+window {
+ background-color: transparent;
+ border-radius: 8px;
+ color: #ebdbb2;
+}
+
+/* The outermost box that contains everything */
+#outer-box {
+ border-radius: 8px;
+ padding: 1em;
+ background-color: rgba(40,40,40,0.8);
+}
+
+/* The box that contains all the search results */
+#inner-box {
+ background: transparent
+ margin: 5px;
+}
+
+/* The search bar */
+#input {
+ margin: 5px;
+ border-radius: 8px;
+ border: none;
+ background-color: #32302f;
+ color: #ebdbb2;
+}
+
+/* The scrollbar */
+#scroll {
+}
+
+/* The text for every search result entry */
+#text {
+ padding: 5px;
+ color: #ebdbb2;
+}
+
+/* The container for every entry */
+#entry {
+ background-color: transparent;
+ border: 4px solid transparent;
+ border-radius: 8px;
+}
+#entry:selected {
+ border: 4px solid #83a598;
+}
diff --git a/hyprland-work/.var/app/dev.vencord.Vesktop/config/vesktop/themes/midnight-gruvbox.theme.css b/hyprland-work/.var/app/dev.vencord.Vesktop/config/vesktop/themes/midnight-gruvbox.theme.css
new file mode 100644
index 00000000..33189e0c
--- /dev/null
+++ b/hyprland-work/.var/app/dev.vencord.Vesktop/config/vesktop/themes/midnight-gruvbox.theme.css
@@ -0,0 +1,83 @@
+/**
+ * @name midnight-gruvbox
+ * @description A dark, rounded discord theme. Managed by .dotfiles, packed in by stow. Original by refact0r
+ * @author salt
+ * @version 1.6.2
+ * @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css
+*/
+
+/* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */
+
+@import url('https://refact0r.github.io/midnight-discord/midnight.css');
+
+/* customize things here */
+:root {
+ /* font, change to 'gg sans' for default discord font*/
+ --font: 'IBM Plex Sans';
+
+ /* top left corner text */
+ --corner-text: 'Midnight';
+
+ /* color of status indicators and window controls */
+ --online-indicator: #b8bb26; /* change to #23a55a for default green */
+ --dnd-indicator: #fb4934; /* change to #f13f43 for default red */
+ --idle-indicator: #fabd2f; /* change to #f0b232 for default yellow */
+ --streaming-indicator: #d3869b; /* change to #593695 for default purple */
+
+ /* accent colors */
+ --accent-1: #83a598; /* links */
+ --accent-2: #83a598; /* general unread/mention elements */
+ --accent-3: #83a598; /* accent buttons */
+ --accent-4: #458588; /* accent buttons when hovered */
+ --accent-5: #458588; /* accent buttons when clicked */
+ --mention: #3c3836; /* mentions & mention messages */
+ --mention-hover: #504945; /* mentions & mention messages when hovered */
+
+ /* text colors */
+ --text-0: #ebdbb2; /* text on colored elements */
+ --text-1: var(--text-2); /* other normally white text */
+ --text-2: #ebdbb2; /* headings and important text */
+ --text-3: #d5c4a1; /* normal text */
+ --text-4: #bdae93; /* icon buttons and channels */
+ --text-5: #7c6f64; /* muted channels/chats and timestamps */
+
+ /* background and dark colors */
+ --bg-1: #665c54; /* dark buttons when clicked */
+ --bg-2: #504945; /* dark buttons */
+ --bg-3: #32302f; /* spacing, secondary elements */
+ --bg-4: #282828; /* main background color */
+ --hover: #3c3836; /* channels and buttons when hovered */
+ --active: #3c3836; /* channels and buttons when clicked or selected */
+ --message-hover: #1d2021; /* messages when hovered */
+
+ /* amount of spacing and padding */
+ --spacing: 8px;
+
+ /* animations */
+ /* ALL ANIMATIONS CAN BE DISABLED WITH REDUCED MOTION IN DISCORD SETTINGS */
+ --list-item-transition: 0.2s ease; /* channels/members/settings hover transition */
+ --unread-bar-transition: 0.2s ease; /* unread bar moving into view transition */
+ --moon-spin-transition: 0.4s ease; /* moon icon spin */
+ --icon-spin-transition: 1s ease; /* round icon button spin (settings, emoji, etc.) */
+
+ /* corner roundness (border-radius) */
+ --roundness-xl: 16px; /* roundness of big panel outer corners */
+ --roundness-l: 14px; /* popout panels */
+ --roundness-m: 12px; /* smaller panels, images, embeds */
+ --roundness-s: 8px; /* members, settings inputs */
+ --roundness-xs: 4px; /* channels, buttons */
+ --roundness-xxs: 4px; /* searchbar, small elements */
+
+ /* direct messages moon icon */
+ /* change to block to show, none to hide */
+ --discord-icon: block; /* discord icon */
+ --moon-icon: none; /* moon icon */
+ --moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); /* custom icon url */
+ --moon-icon-size: auto;
+
+ /* filter uncolorable elements to fit theme */
+ /* (just set to none, they're too much work to configure) */
+ --login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); /* login background artwork */
+ --green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); /* add friend page explore icon */
+ --blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); /* add friend page school icon */
+}