diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
index 35b5c57..245a751 100644
--- a/.config/alacritty/alacritty.toml
+++ b/.config/alacritty/alacritty.toml
@@ -25,4 +25,5 @@ columns = 120
lines = 45
[window.padding]
-x = 3
+x = 10
+y = 7
diff --git a/.config/dolphinrc b/.config/dolphinrc
index 6780b51..073d5e4 100644
--- a/.config/dolphinrc
+++ b/.config/dolphinrc
@@ -7,18 +7,17 @@ update_info=dolphin_detailsmodesettings.upd:rename-leading-padding,dolphin_detai
ExpandableFolders=false
PreviewSize=16
-[ExtractDialog]
-2 screens: Height=720
-2 screens: Width=1576
-DirHistory[$e]=$HOME/Downloads/protondrive/
-
[General]
EditableUrl=true
OpenExternallyCalledFolderInNewTab=true
ShowFullPath=true
+ShowStatusBar=FullWidth
Version=202
ViewPropsTimestamp=2024,8,26,16,47,20.342
+[InformationPanel]
+dateFormat=ShortFormat
+
[KFileDialog Settings]
Places Icons Auto-resize=false
Places Icons Static Size=22
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..56d9b04
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,327 @@
+# This is an example Hyprland config file.
+# Refer to the wiki for more information.
+# https://wiki.hypr.land/Configuring/
+
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+
+# You can split this configuration into multiple files
+# Create your files separately and then link them to this file like this:
+# source = ~/.config/hypr/myColors.conf
+
+
+################
+### MONITORS ###
+################
+
+# See https://wiki.hypr.land/Configuring/Monitors/
+monitor=,preferred,auto,1.0
+
+
+#################
+### AUTOSTART ###
+#################
+
+# Autostart necessary processes (like notifications daemons, status bars, etc.)
+# Or execute your favorite apps at launch like this:
+
+exec-once = systemctl --user start hyprpolkitagent
+exec-once = uwsm app -- swaync
+exec-once = uwsm app -- waybar
+exec-once = uwsm app -- pasystray
+
+
+###################
+### PERMISSIONS ###
+###################
+
+# See https://wiki.hypr.land/Configuring/Permissions/
+# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
+# for security reasons
+
+# ecosystem {
+# enforce_permissions = 1
+# }
+
+# permission = /usr/(bin|local/bin)/grim, screencopy, allow
+permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
+# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+
+# Refer to https://wiki.hypr.land/Configuring/Variables/
+
+# https://wiki.hypr.land/Configuring/Variables/#general
+general {
+ gaps_in = 10
+ gaps_out = 20
+
+ border_size = 1
+
+ # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
+ # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.active_border = rgba(a0a8b7aa)
+ # col.active_border = rgba(ffffffaa)
+ col.inactive_border = rgba(595959aa)
+
+ # Set to true enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = false
+
+ # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+
+ layout = dwindle
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#decoration
+decoration {
+ rounding = 10
+ rounding_power = 2
+
+ # Change transparency of focused and unfocused windows
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = true
+ range = 4
+ render_power = 3
+ color = rgba(1a1a1aee)
+ }
+
+ # https://wiki.hypr.land/Configuring/Variables/#blur
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+
+ vibrancy = 0.1696
+ }
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#animations
+animations {
+ enabled = true
+
+ # Default animations, see https://wiki.hypr.land/Configuring/Animations/ for more
+
+ bezier = easeOutQuint,0.23,1,0.32,1
+ bezier = easeInOutCubic,0.65,0.05,0.36,1
+ bezier = linear,0,0,1,1
+ bezier = almostLinear,0.5,0.5,0.75,1.0
+ bezier = quick,0.15,0,0.1,1
+
+ animation = global, 1, 10, default
+ animation = border, 1, 5.39, easeOutQuint
+ animation = windows, 1, 4.79, easeOutQuint
+ animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
+ animation = windowsOut, 1, 1.49, linear, popin 87%
+ animation = fadeIn, 1, 1.73, almostLinear
+ animation = fadeOut, 1, 1.46, almostLinear
+ animation = fade, 1, 3.03, quick
+ animation = layers, 1, 3.81, easeOutQuint
+ animation = layersIn, 1, 4, easeOutQuint, fade
+ animation = layersOut, 1, 1.5, linear, fade
+ animation = fadeLayersIn, 1, 1.79, almostLinear
+ animation = fadeLayersOut, 1, 1.39, almostLinear
+ animation = workspaces, 1, 1.94, almostLinear, fade
+ animation = workspacesIn, 1, 1.21, almostLinear, fade
+ animation = workspacesOut, 1, 1.94, almostLinear, fade
+}
+
+# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
+# "Smart gaps" / "No gaps when only"
+# uncomment all if you wish to use that.
+workspace = w[tv1], gapsout:0, gapsin:0
+workspace = f[1], gapsout:0, gapsin:0
+windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
+windowrule = rounding 0, floating:0, onworkspace:w[tv1]
+windowrule = bordersize 0, floating:0, onworkspace:f[1]
+windowrule = rounding 0, floating:0, onworkspace:f[1]
+
+# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
+dwindle {
+ pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = true # You probably want this
+ force_split = 2
+}
+
+# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
+master {
+ new_status = master
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#misc
+misc {
+ force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
+ disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hypr.land/Configuring/Variables/#input
+input {
+ kb_layout = eu
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+
+ follow_mouse = 2
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+ touchpad {
+ natural_scroll = true
+ }
+}
+
+cursor {
+ no_warps = true
+}
+
+# https://wiki.hypr.land/Configuring/Variables/#gestures
+gestures {
+ workspace_swipe = false
+}
+
+# Example per-device config
+# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
+# device {
+# name = epic-mouse-v1
+# sensitivity = -0.5
+# }
+
+
+###################
+### KEYBINDINGS ###
+###################
+
+$mod = SUPER
+
+# General
+bind = $mod, Return, exec, uwsm app -- Alacritty.desktop
+bind = $mod, E, exec, uwsm app -- org.kde.dolphin.desktop
+bind = $mod, D, exec, rofi -show drun
+bind = $mod, F2, exec, rofi -show run
+bind = $mod, W, togglegroup, # dwindle
+bind = $mod, slash, togglesplit, # dwindle
+bind = $mod SHIFT, Q, killactive,
+bind = $mod SHIFT, X, exec, uwsm stop
+bind = $mod SHIFT, Space, togglefloating,
+bind = $mod, F, fullscreen, 1
+bind = $mod SHIFT, F, fullscreen, 0
+
+# Change focus
+bind = $mod, H, movefocus, l
+bind = $mod, L, movefocus, r
+bind = $mod, K, movefocus, u
+bind = $mod, J, movefocus, d
+bind = $mod, N, changegroupactive, f
+bind = $mod, P, changegroupactive, b
+bind = $mod CTRL, L, focusmonitor, r
+bind = $mod CTRL, H, focusmonitor, l
+
+# Move window
+bind = $mod SHIFT, H, movewindoworgroup, l
+bind = $mod SHIFT, L, movewindoworgroup, r
+bind = $mod SHIFT, K, movewindoworgroup, u
+bind = $mod SHIFT, J, movewindoworgroup, d
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mod SHIFT, 1, movetoworkspacesilent, 1
+bind = $mod SHIFT, 2, movetoworkspacesilent, 2
+bind = $mod SHIFT, 3, movetoworkspacesilent, 3
+bind = $mod SHIFT, 4, movetoworkspacesilent, 4
+bind = $mod SHIFT, 5, movetoworkspacesilent, 5
+bind = $mod SHIFT, 6, movetoworkspacesilent, 6
+bind = $mod SHIFT, 7, movetoworkspacesilent, 7
+bind = $mod SHIFT, 8, movetoworkspacesilent, 8
+bind = $mod SHIFT, 9, movetoworkspacesilent, 9
+bind = $mod SHIFT, 0, movetoworkspacesilent, 10
+
+# Move current workspace
+bind = $mod CTRL SHIFT, L, movecurrentworkspacetomonitor, r
+bind = $mod CTRL SHIFT, H, movecurrentworkspacetomonitor, l
+
+# Resize
+bind = $mod SHIFT, R, submap, resize
+submap = resize
+bind = , H, resizeactive, -10 0
+bind = , L, resizeactive, 10 0
+bind = , K, resizeactive, 0 -10
+bind = , J, resizeactive, 0 10
+bind = SHIFT, H, resizeactive, -50 0
+bind = SHIFT, L, resizeactive, 50 0
+bind = SHIFT, K, resizeactive, 0 -50
+bind = SHIFT, J, resizeactive, 0 50
+bind = , R, splitratio, exact 1.0
+bind = , Return, submap, reset
+bind = , Escape, submap, reset
+submap = reset
+
+# Switch workspaces with mainMod + [0-9]
+bind = $mod, 1, workspace, 1
+bind = $mod, 2, workspace, 2
+bind = $mod, 3, workspace, 3
+bind = $mod, 4, workspace, 4
+bind = $mod, 5, workspace, 5
+bind = $mod, 6, workspace, 6
+bind = $mod, 7, workspace, 7
+bind = $mod, 8, workspace, 8
+bind = $mod, 9, workspace, 9
+bind = $mod, 0, workspace, 10
+
+# Special workspace (scratchpad)
+bind = $mod, S, togglespecialworkspace, magic
+bind = $mod SHIFT, S, movetoworkspace, special:magic
+
+# Scroll through existing workspaces
+bind = $mod, Tab, workspace, m+1
+bind = $mod SHIFT, Tab, workspace, m-1
+bind = ALT, Tab, workspace, previous_per_monitor
+bind = $mod, Right, focusmonitor, r
+bind = $mod, Left, focusmonitor, l
+
+# Move/resize windows with mad + LMB/RMB and dragging
+bindm = $mod, mouse:272, movewindow
+bindm = $mod, mouse:273, resizewindow
+
+# Laptop multimedia keys for volume and LCD brightness
+bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
+bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
+
+# Requires playerctl
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+
+# Reload
+bind = $mod, R, exec, hyperctl reload
+
+##############################
+### WINDOWS AND WORKSPACES ###
+##############################
+
+# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
+# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrule
+# windowrule = float,class:^(kitty)$,title:^(kitty)$
+
+# Ignore maximize requests from apps. You'll probably like this.
+windowrule = suppressevent maximize, class:.*
+
+# Fix some dragging issues with XWayland
+windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
diff --git a/.config/kdeglobals b/.config/kdeglobals
new file mode 100644
index 0000000..1dfb24a
--- /dev/null
+++ b/.config/kdeglobals
@@ -0,0 +1,152 @@
+[ColorEffects:Disabled]
+ChangeSelectionColor=
+Color=56,56,56
+ColorAmount=0
+ColorEffect=0
+ContrastAmount=0.65
+ContrastEffect=1
+Enable=
+IntensityAmount=0.1
+IntensityEffect=2
+
+[ColorEffects:Inactive]
+ChangeSelectionColor=true
+Color=112,111,110
+ColorAmount=0.025
+ColorEffect=2
+ContrastAmount=0.1
+ContrastEffect=2
+Enable=false
+IntensityAmount=0
+IntensityEffect=0
+
+[Colors:Button]
+BackgroundAlternate=30,87,116
+BackgroundNormal=41,44,48
+DecorationFocus=61,174,233
+DecorationHover=61,174,233
+ForegroundActive=61,174,233
+ForegroundInactive=161,169,177
+ForegroundLink=29,153,243
+ForegroundNegative=218,68,83
+ForegroundNeutral=246,116,0
+ForegroundNormal=252,252,252
+ForegroundPositive=39,174,96
+ForegroundVisited=155,89,182
+
+[Colors:Complementary]
+BackgroundAlternate=30,87,116
+BackgroundNormal=32,35,38
+DecorationFocus=61,174,233
+DecorationHover=61,174,233
+ForegroundActive=61,174,233
+ForegroundInactive=161,169,177
+ForegroundLink=29,153,243
+ForegroundNegative=218,68,83
+ForegroundNeutral=246,116,0
+ForegroundNormal=252,252,252
+ForegroundPositive=39,174,96
+ForegroundVisited=155,89,182
+
+[Colors:Header]
+BackgroundAlternate=32,35,38
+BackgroundNormal=41,44,48
+DecorationFocus=61,174,233
+DecorationHover=61,174,233
+ForegroundActive=61,174,233
+ForegroundInactive=161,169,177
+ForegroundLink=29,153,243
+ForegroundNegative=218,68,83
+ForegroundNeutral=246,116,0
+ForegroundNormal=252,252,252
+ForegroundPositive=39,174,96
+ForegroundVisited=155,89,182
+
+[Colors:Header][Inactive]
+BackgroundAlternate=41,44,48
+BackgroundNormal=32,35,38
+DecorationFocus=61,174,233
+DecorationHover=61,174,233
+ForegroundActive=61,174,233
+ForegroundInactive=161,169,177
+ForegroundLink=29,153,243
+ForegroundNegative=218,68,83
+ForegroundNeutral=246,116,0
+ForegroundNormal=252,252,252
+ForegroundPositive=39,174,96
+ForegroundVisited=155,89,182
+
+[Colors:Selection]
+BackgroundAlternate=30,87,116
+BackgroundNormal=61,174,233
+DecorationFocus=61,174,233
+DecorationHover=61,174,233
+ForegroundActive=252,252,252
+ForegroundInactive=161,169,177
+ForegroundLink=253,188,75
+ForegroundNegative=176,55,69
+ForegroundNeutral=198,92,0
+ForegroundNormal=252,252,252
+ForegroundPositive=23,104,57
+ForegroundVisited=155,89,182
+
+[Colors:Tooltip]
+BackgroundAlternate=32,35,38
+BackgroundNormal=41,44,48
+DecorationFocus=61,174,233
+DecorationHover=61,174,233
+ForegroundActive=61,174,233
+ForegroundInactive=161,169,177
+ForegroundLink=29,153,243
+ForegroundNegative=218,68,83
+ForegroundNeutral=246,116,0
+ForegroundNormal=252,252,252
+ForegroundPositive=39,174,96
+ForegroundVisited=155,89,182
+
+[Colors:View]
+BackgroundAlternate=29,31,34
+BackgroundNormal=20,22,24
+DecorationFocus=61,174,233
+DecorationHover=61,174,233
+ForegroundActive=61,174,233
+ForegroundInactive=161,169,177
+ForegroundLink=29,153,243
+ForegroundNegative=218,68,83
+ForegroundNeutral=246,116,0
+ForegroundNormal=252,252,252
+ForegroundPositive=39,174,96
+ForegroundVisited=155,89,182
+
+[Colors:Window]
+BackgroundAlternate=41,44,48
+BackgroundNormal=32,35,38
+DecorationFocus=61,174,233
+DecorationHover=61,174,233
+ForegroundActive=61,174,233
+ForegroundInactive=161,169,177
+ForegroundLink=29,153,243
+ForegroundNegative=218,68,83
+ForegroundNeutral=246,116,0
+ForegroundNormal=252,252,252
+ForegroundPositive=39,174,96
+ForegroundVisited=155,89,182
+
+[General]
+ColorSchemeHash=8ff306d9a93379c74540e00506966df24df1798b
+
+[KDE]
+LookAndFeelPackage=org.kde.breezedark.desktop
+ShowDeleteCommand=false
+
+[PreviewSettings]
+EnableRemoteFolderThumbnail=false
+MaximumRemoteSize=0
+
+[WM]
+activeBackground=39,44,49
+activeBlend=252,252,252
+activeForeground=252,252,252
+inactiveBackground=32,36,40
+inactiveBlend=161,169,177
+inactiveForeground=161,169,177
diff --git a/.config/uwsm/default-id b/.config/uwsm/default-id
new file mode 100644
index 0000000..1dd96b8
--- /dev/null
+++ b/.config/uwsm/default-id
@@ -0,0 +1 @@
+hyprland-uwsm.desktop
diff --git a/.config/uwsm/env b/.config/uwsm/env
new file mode 100644
index 0000000..e70bfc1
--- /dev/null
+++ b/.config/uwsm/env
@@ -0,0 +1,5 @@
+export XCURSOR_SIZE=24
+export XCURSOR_THEME=breeze_cursors
+export GTK_THEME=Adwaita:dark
+export QT_QPA_PLATFORM=wayland
+export QT_QPA_PLATFORMTHEME=kde
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
new file mode 100644
index 0000000..e647bea
--- /dev/null
+++ b/.config/waybar/config.jsonc
@@ -0,0 +1,80 @@
+{
+ "height": 30,
+ "reload_style_on_change": true,
+ "modules-left": [
+ "hyprland/workspaces",
+ "hyprland/submap"
+ ],
+ "modules-center": [
+ "clock"
+ ],
+ "modules-right": [
+ "pulseaudio",
+ "network",
+ "battery",
+ "tray",
+ ],
+ "clock": {
+ "format": "{:%H:%M}",
+ "tooltip-format": "{calendar}",
+ "calendar": {
+ "mode" : "month",
+ "mode-mon-col" : 3,
+ "weeks-pos" : "left",
+ "on-scroll" : 1,
+ "format": {
+ "months": "{}",
+ "days": "{}",
+ "weeks": "{}",
+ "weekdays": "{}",
+ "today": "{}"
+ }
+ },
+ "actions": {
+ "on-click-right": "mode",
+ "on-scroll-up": "tz_up",
+ "on-scroll-down": "tz_down",
+ "on-scroll-up": "shift_up",
+ "on-scroll-down": "shift_down"
+ }
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon} {format_source}",
+ "format-bluetooth": "{volume}% {icon} {format_source}",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": "{volume}% ",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "network": {
+ "format-wifi": "{icon}",
+ "format-ethernet": "",
+ "format-linked": "",
+ "format-disconnected": "",
+ "tooltip-format": "{ifname}: {ipaddr}",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "battery": {
+ "states": {
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon}",
+ "format-full": "{icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ "format-icons": ["", "", "", "", ""]
+ }
+}
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..db3e50e
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,59 @@
+* {
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+ font-size: 14px;
+}
+
+window#waybar {
+ background-color: #1f2329;
+ color: #ffffff;
+}
+
+.module {
+ margin-right: 10px;
+}
+
+button {
+ /* Use box-shadow instead of border so the text isn't offset */
+ box-shadow: inset 0 -3px transparent;
+ /* Avoid rounded borders under each button name */
+ border: none;
+ border-radius: 0;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+button:hover {
+ background: inherit;
+ box-shadow: inset 0 -3px #a0a8b7;
+}
+
+#workspaces button {
+ padding: 0 5px;
+}
+
+#workspaces button.active {
+ border-radius: 0px;
+ box-shadow: inset 0 -3px #a0a8b7;
+}
+
+#workspaces button.urgent {
+ background-color: #e2b86b;
+}
+
+#battery.critical:not(.charging) {
+ color: #f53c3c;
+}
+
+#temperature.critical {
+ color: #e55561;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #e2b86b;
+}
+
diff --git a/.config/xdg-desktop-portal/hyprland-portals.conf b/.config/xdg-desktop-portal/hyprland-portals.conf
new file mode 100644
index 0000000..62f3d56
--- /dev/null
+++ b/.config/xdg-desktop-portal/hyprland-portals.conf
@@ -0,0 +1,3 @@
+[preferred]
+default = hyprland;gtk
+org.freedesktop.impl.portal.FileChooser = kde
diff --git a/.local/share/kxmlgui5/dolphin/dolphinui.rc b/.local/share/kxmlgui5/dolphin/dolphinui.rc
new file mode 100644
index 0000000..965e283
--- /dev/null
+++ b/.local/share/kxmlgui5/dolphin/dolphinui.rc
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+ &Go
+
+
+
+
+
+
+
+
+
+
+ &Tools
+
+
+
+
+
+
+
+ &Settings
+
+
+
+
+
+
+
+
+
+
+
+ &Help
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Main Toolbar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.zprofile b/.zprofile
new file mode 100644
index 0000000..a1a21ea
--- /dev/null
+++ b/.zprofile
@@ -0,0 +1,3 @@
+if uwsm check may-start && uwsm select; then
+ exec uwsm start default
+fi
diff --git a/setup.sh b/setup.sh
index 3770037..f6124df 100755
--- a/setup.sh
+++ b/setup.sh
@@ -21,18 +21,30 @@ ERROR=false
typeset -a PKGS
PKGS=(
"alacritty"
- "dunst"
- "fish"
- "i3"
- "i3lock"
- "i3status"
- "jq"
- "lf"
- "picom"
- "rofi"
- "startx"
"tmux"
"zsh"
+ "hyprland"
+ "uwsm"
+ "swaync"
+ "pipewire"
+ "wireplumber"
+ "hyprpolkitagent"
+ "qt5-wayland"
+ "qt6-wayland"
+ "hyprlock"
+ "xdg-desktop-portal-hyprland"
+ "xdg-desktop-portal-gtk"
+ "hyprland-qt-support"
+ "waybar"
+ "rofi"
+ "wl-clipboard"
+ "dolphin"
+ "pasystray"
+ "playerctl"
+ "brightnessctl"
+ "breeze"
+ "pavucontrol"
+ "otf-font-awesome"
)
# Define paths to symlink
@@ -45,10 +57,12 @@ SYMLINKS=(
".config/foot"
".config/frogminer"
".config/ghostty"
+ ".config/hypr"
".config/i3"
".config/i3status"
".config/lf"
".config/kde-mimeapps.list"
+ ".config/kdeglobals"
".config/kglobalshortcutsrc"
".config/klipperrc"
".config/kwinrc"
@@ -56,16 +70,21 @@ SYMLINKS=(
".config/rofi"
".config/strawberry"
".config/tmux"
+ ".config/uwsm"
+ ".config/waybar"
".config/wezterm"
+ ".config/xdg-desktop-portal"
".config/yay"
".config/zed"
".local/bin"
".local/share/fonts"
".local/share/konsole"
+ ".local/share/kxmlgui5/dolphin/dolphinui.rc"
".vimrc"
".xinit-scripts"
".xinitrc"
".Xresources"
+ ".zprofile"
)
typeset -a COPIES
@@ -79,17 +98,31 @@ typeset -A SYMLINK_MAP
SYMLINK_MAP[zsh/rc]=".zshrc"
error() {
- msg="$1"
+ msg="$@"
ERROR=true
echo "Error: $msg" >&2
}
check_packages_installed() {
+ local -a missing
+
for pkg in "${PKGS[@]}"; do
- if ! type "$pkg" >/dev/null; then
- error "missing $pkg"
+ local -a cmd
+
+ if [ $DISTRO = "Arch Linux" ]; then
+ cmd=(pacman -Qi "$pkg")
+ else
+ cmd=(type "$pkg")
+ fi
+
+ if ! eval "$cmd[@]" >/dev/null 2>&1; then
+ missing+=($pkg)
fi
done
+
+ if [ ${#missing[@]} -gt 0 ]; then
+ error "missing ${#missing[@]} packages:" "${missing[@]}"
+ fi
}
remove_symlink() {