diff --git a/configs/hypr-desktop/hypridle.conf b/configs/hypr-desktop/hypridle.conf
new file mode 100644
index 0000000..409d0a9
--- /dev/null
+++ b/configs/hypr-desktop/hypridle.conf
@@ -0,0 +1,33 @@
+general {
+ after_sleep_cmd=hyprctl dispatch dpms on
+ before_sleep_cmd=loginctl lock-session
+ lock_cmd=pidof hyprlock || hyprlock
+}
+
+listeners {
+ on-resume=brightnessctl -r
+ on-timeout=brightnessctl -s set 10
+ timeout=120
+}
+
+listeners {
+ on-resume=brightnessctl -rd rgb:kbd_backlight
+ on-timeout=brightnessctl -sd rgb:kbd_backlight set 0
+ timeout=120
+}
+
+listeners {
+ on-timeout=loginctl lock-session
+ timeout=180
+}
+
+listeners {
+ on-resume=hyprctl dispatch dpms on
+ on-timeout=hyprctl dispatch dpms off
+ timeout=300
+}
+
+listeners {
+ on-timeout=systemctl suspend
+ timeout=300
+}
diff --git a/configs/hypr-desktop/hyprland.conf b/configs/hypr-desktop/hyprland.conf
new file mode 100644
index 0000000..1cc8d05
--- /dev/null
+++ b/configs/hypr-desktop/hyprland.conf
@@ -0,0 +1,373 @@
+# Startup
+exec-once=dbus-update-activation-environment --systemd --all && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target
+exec-once=wl-clipboard-history -t
+exec-once=wl-paste -p --watch wl-copy -p ''
+exec-once=hypridle
+exec-once=quickshell
+exec-once=fcitx5 -d
+exec-once=swww-daemon
+exec-once=swaync
+
+# Monitors
+
+monitor=DP-1,2560x1440@143,0x0,1
+monitor=HDMI-A-1,1920x1080@60,2560x180,1
+monitor=,preferred,auto,1,mirror,eDP-1
+
+# Environment
+
+env=WLR_NO_HARDWARE_CURSORS,1
+env=HYPRCURSOR_THEME,Bibata-Modern-Ice
+env=HYPRCURSOR_SIZE,24
+env=XDG_CURRENT_DESKTOP,Hyprland
+env=XDG_SESSION_TYPE,wayland
+env=XDG_SESSION_DESKTOP,Hyprland
+env=GTK_THEME,Materia-dark
+env=QT_QPA_PLATFORM,wayland
+env=XCURSOR_THEME,Bibata-Modern-Ice
+env=XCURSOR_SIZE,24
+
+# Colors
+$green=rgb(00BB00)
+$gray=rgb(555555)
+$purple=rgb(BB00BB)
+$lavendar=rgb(B39DF3)
+$orange=rgb(F39660)
+
+$lightgreen=rgb(93C863)
+$lightblue=rgb(76CCE0)
+
+$magenta=rgba(881798FF)
+$crimson=rgba(471520FF)
+
+
+# USED COLORS
+$active_border=$lightgreen
+$inactive_border=$gray
+$expo_bg=$active_border
+
+
+animations {
+ bezier=myBezier, 0.05, 0.9, 0.1, 1.05
+ animation=windows, 1, 7, myBezier
+ animation=windowsOut, 1, 7, default, popin 80%
+ animation=border, 1, 10, default
+ animation=borderangle, 1, 8, default
+ animation=fade, 1, 7, default
+ animation=workspaces, 1, 6, default
+ enabled=true
+}
+
+debug {
+ disable_logs=true
+}
+
+decoration {
+ blur {
+ enabled=true
+ new_optimizations=on
+ passes=1
+ size=3
+ xray=true
+ }
+
+ shadow {
+ color=rgba(1a1a1aee)
+ enabled=true
+ range=4
+ render_power=3
+ }
+ rounding=10
+}
+
+dwindle {
+ preserve_split=true
+ pseudotile=true
+}
+
+ecosystem {
+ no_donation_nag=true
+ no_update_news=true
+}
+
+experimental {
+ xx_color_management_v4=true
+}
+
+general {
+ border_size=2
+ col.active_border=$active_border
+ col.inactive_border=$inactive_border
+ gaps_in=2
+ gaps_out=4
+ layout=dwindle
+}
+
+gestures {
+ workspace_swipe=true
+ workspace_swipe_forever=true
+}
+
+input {
+ touchpad {
+ disable_while_typing=false
+ drag_lock=false
+ middle_button_emulation=true
+ natural_scroll=true
+ scroll_factor=0.500000
+ tap-to-click=true
+ }
+
+ follow_mouse=1
+ kb_layout=us
+ kb_model=
+ kb_options=
+ kb_rules=
+ kb_variant=
+ numlock_by_default=true
+ sensitivity=0
+}
+
+misc {
+ disable_hyprland_logo=false
+ disable_splash_rendering=false
+ key_press_enables_dpms=true
+ mouse_move_enables_dpms=true
+}
+
+# Plugin Config
+
+plugin {
+ hyprexpo {
+ columns = 3
+ gap_size = 3
+ bg_col = $expo_bg
+ workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1
+
+ enable_gesture = true # laptop touchpad
+ gesture_fingers = 3 # 3 or 4
+ gesture_distance = 300 # how far is the "max"
+ gesture_positive = false # true = swipe down, false = swipe up.
+ }
+}
+
+# Window Rules
+
+windowrule=idleinhibit fullscreen, class:firefox
+windowrule=idleinhibit fullscreen, class:floorp
+windowrule=idleinhibit fullscreen, class:ghostty
+windowrule=idleinhibit focus, class:firefox
+windowrule=idleinhibit focus, class:floorp
+windowrule=idleinhibit focus, class:mpv
+windowrule=idleinhibit focus, class:^(emacs)$
+windowrule=idleinhibit focus, class:^(Emacs)$
+windowrule=idleinhibit focus, class:^(discord)$
+windowrule=idleinhibit focus, class:^(spotify)$
+windowrule=idleinhibit focus, class:^(Discord|discord)$
+
+windowrule=opacity 0.98 0.9, class:^(Discord|discord)$
+
+windowrule=float, class:polkit-kde-authentication-agent-1
+windowrule=float, class:^(praat)$
+windowrule=float, class:^(steam)$, title:^(Friends List)$
+windowrule=float, class:^(network)$
+windowrule=float, class:^(nm-)$
+windowrule=float, class:^(Network)$
+windowrule=float, class:Rofi
+windowrule=float, class:Gimp
+windowrule=float, class:Nautilus
+windowrule=float, class:notification
+windowrule=float, class:^(launcher)$
+windowrule=tile, class:Spotify
+windowrule=tile, title:Minecraft
+
+windowrule=workspace name:game, class:^(steam)$
+windowrule=workspace name:shell, class:^(KeePassXC)$
+windowrule=workspace name:browser, class:^(firefox)$
+windowrule=workspace name:browser, class:^(floorp)$
+windowrule=workspace name:browser, class:^(Brave.*)$
+windowrule=workspace name:music, class:^(Spotify)$
+windowrule=workspace name:chat, class:^(discord)$
+windowrule=workspace name:chat, class:^(Signal)$
+windowrule=workspace name:game, title:Minecraft
+
+# Workspace Rules
+workspace=name:game, monitor:DP-1
+workspace=name:browser, monitor:HDMI-A-1, default:true
+workspace=name:chat, monitor:HDMI-A-1
+workspace=name:video, monitor:DP-1
+workspace=name:program, monitor:DP-1, default:true
+workspace=name:extra, monitor:DP-1
+
+# Commands
+$lock=hyprlock
+$screenshotarea=hyprctl keyword animation 'fadeOut,0,0,default'; grimblast copy area; hyprctl keyword animation 'fadeOut,1,4,default'
+$discord=discord --enable-blink-features=MiddleClickAutoscroll
+$emacs=emacsclient -c -a 'emacs'
+$colorpick=hyprpicker -a -f hex
+$screenshot=grimblast --cursor copy output
+
+# Binds
+
+$altMod=ALT
+$ctrlMod=CTRL
+$mainMod=SUPER
+
+# Binds :: Programs
+
+$none=
+# :Meta-Bind: :Key: :Command: :Args:
+bind=$altMod, Return, exec, ghostty
+bind=$altMod SHIFT, Return, exec, alacritty
+bind=$mainMod SHIFT, D, exec, $discord
+bind=$mainMod SHIFT, E, exec, $emacs
+bind=$mainMod SHIFT, F, exec, focus-linux
+bind=$mainMod, SPACE, exec, pkill wofi || wofi
+bind=$mainMod, E, exec, nautilus
+bind=$mainMod, S, exec, spotify
+bind=$mainMod, P, exec, $colorpick
+bind=$none, Print, exec, $screenshotarea
+bind=SHIFT, Print, exec, $screenshot
+bind=$mainMod CTRL, Q, exec, $lock
+bind=$mainMod SHIFT, P, pseudo
+bind=$mainMod, C, killactive
+bind=$mainMod, V, togglefloating
+bind=$mainMod SHIFT, S, togglesplit
+bind=$mainMod, F4, exit
+
+# bind = SUPER, grave, hyprexpo:expo, toggle # Commented out cos "version mismatch (bs)"
+
+# Workspace Name:Bind Numbers
+$ws_game=1
+$ws_shell=2
+$ws_browser=3
+$ws_music=4
+$ws_image=5
+$ws_chat=6
+$ws_audio=7
+$ws_video=8
+$ws_program=9
+$ws_extra=0
+
+# Binds :: Navigation
+
+# :Meta-Bind: :Key: :Command: :Args:
+bind=$mainMod, F, fullscreen
+bind=$mainMod, H, movefocus, l
+bind=$mainMod, L, movefocus, r
+bind=$mainMod, K, movefocus, u
+bind=$mainMod, J, movefocus, d
+bind=$mainMod, comma, focusmonitor, -1
+bind=$mainMod, period, focusmonitor, +1
+bind=$mainMod SHIFT, H, movewindow, l
+bind=$mainMod SHIFT, L, movewindow, r
+bind=$mainMod SHIFT, K, movewindow, u
+bind=$mainMod SHIFT, J, movewindow, d
+bind=$mainMod SHIFT, comma, movecurrentworkspacetomonitor, -1
+bind=$mainMod SHIFT, period, movecurrentworkspacetomonitor, +1
+bind=$mainMod, right, resizeactive, 10 0
+bind=$mainMod, left, resizeactive, -10 0
+bind=$mainMod, up, resizeactive, 0 -10
+bind=$mainMod, down, resizeactive, 0 10
+bind=$mainMod, $ws_game, workspace, name:game
+bind=$mainMod, $ws_shell, workspace, name:shell
+bind=$mainMod, $ws_browser, workspace, name:browser
+bind=$mainMod, $ws_music, workspace, name:music
+bind=$mainMod, $ws_image, workspace, name:image
+bind=$mainMod, $ws_chat, workspace, name:chat
+bind=$mainMod, $ws_audio, workspace, name:audio
+bind=$mainMod, $ws_video, workspace, name:video
+bind=$mainMod, $ws_program, workspace, name:programming
+bind=$mainMod, $ws_extra, workspace, name:extra
+bind=$mainMod SHIFT, $ws_game, movetoworkspace, name:game
+bind=$mainMod SHIFT, $ws_shell, movetoworkspace, name:shell
+bind=$mainMod SHIFT, $ws_browser, movetoworkspace, name:browser
+bind=$mainMod SHIFT, $ws_music, movetoworkspace, name:music
+bind=$mainMod SHIFT, $ws_image, movetoworkspace, name:image
+bind=$mainMod SHIFT, $ws_chat, movetoworkspace, name:chat
+bind=$mainMod SHIFT, $ws_audio, movetoworkspace, name:audio
+bind=$mainMod SHIFT, $ws_video, movetoworkspace, name:video
+bind=$mainMod SHIFT, $ws_program, movetoworkspace, name:programming
+bind=$mainMod SHIFT, $ws_extra, movetoworkspace, name:extra
+bind=$mainMod SHIFT CTRL, right, movetoworkspace, +1
+bind=$mainMod SHIFT CTRL, left, movetoworkspace, -1
+bind=$mainMod, mouse_down, workspace, e+1
+bind=$mainMod, mouse_up, workspace, e-1
+bind=$mainMod, Tab, workspace, e+1
+bind=$mainMod SHIFT, Tab, workspace, e-1
+bind=$mainMod CTRL, right, workspace, +1
+bind=$mainMod CTRL, left, workspace, -1
+
+bindm=$mainMod, mouse:272, movewindow
+bindm=$mainMod, mouse:273, resizewindow
+
+# Binds :: MultiMedia
+
+$brightness=$NIX_CONFIG_DIR/scripts/progress-notify.sh brightness
+$volume=$NIX_CONFIG_DIR/scripts/progress-notify.sh audio
+$mute=$NIX_CONFIG_DIR/scripts/progress-notify.sh mute
+
+binde=$none, XF86MonBrightnessDown, exec, brightnessctl set 10%- && $brightness
+binde=$none, XF86MonBrightnessUp, exec, brightnessctl set 10%+ && $brightness
+bindel=, XF86AudioRaiseVolume, exec, pamixer -i 5 && $volume
+bindel=, XF86AudioLowerVolume, exec, pamixer -d 5 && $volume
+bindel=, XF86AudioMute, exec, pamixer -t && $mute
+bindl=$none, XF86AudioPlay, exec, playerctl play-pause
+bindl=$none, XF86AudioNext, exec, playerctl next
+bindl=$none, XF86AudioPrev, exec, playerctl previous
+
+# Binds :: Submaps
+
+# Submap::Resize
+bind=$mainMod, R, submap, resize
+submap=resize
+bind=$none, escape,submap,reset
+
+binde=$none, left, resizeactive, -10 0
+bindr=$none, left, submap, reset
+binde=$none, right, resizeactive, 10 0
+bindr=$none, right, submap, reset
+binde=$none, up, resizeactive, 0 10
+bindr=$none, up, submap, reset
+binde=$none, down, resizeactive, 0 -10
+bindr=$none, down, submap, reset
+
+binde=$none, H, resizeactive, -10 0
+bindr=$none, H, submap, reset
+binde=$none, J, resizeactive, 0 -10
+bindr=$none, J, submap, reset
+binde=$none, K, resizeactive, 0 10
+bindr=$none, K, submap, reset
+binde=$none, L, resizeactive, 10 0
+bindr=$none, L, submap, reset
+
+submap=reset
+
+# Submap::Browser
+bind=$mainMod, B, submap, browser
+submap=browser
+
+bind=$none, B, exec, brave
+bind=$none, B, submap, reset
+
+bind=SHIFT, F, exec, firefox
+bind=SHIFT, F, submap, reset
+
+bind=$none, F, exec, floorp
+bind=$none, F, submap, reset
+
+bind=$none, escape,submap,reset
+submap=reset
+
+# Submap::Video
+bind=$mainMod SHIFT, V, submap, video
+submap=video
+
+bind=$none, O, exec, obs
+bind=$none, O, submap, reset
+
+bind=$none, V, exec , kdenlive
+bind=$none, V, submap, reset
+
+bind=$none, escape,submap,reset
+submap=reset
diff --git a/configs/hypr-desktop/hyprlock.conf b/configs/hypr-desktop/hyprlock.conf
new file mode 100644
index 0000000..7451a92
--- /dev/null
+++ b/configs/hypr-desktop/hyprlock.conf
@@ -0,0 +1,65 @@
+background {
+ blur_passes=2
+ blur_size=8
+ path=$HOME/pictures/.wallpapers/green-forest.png
+}
+
+general {
+ disable_loading_bar=true
+ hide_cursor=true
+ no_fade_in=false
+}
+
+input-field {
+ monitor=
+ size=200, 30
+ capslock_color=#bb00ee
+ check_color=#0eff0d
+ dots_center=false
+ dots_size=0.330000
+ dots_spacing=0.150000
+ fade_on_empty=true
+ fail_color=#ff009e
+ fail_text=$FAIL ($ATTEMPTS)
+ font_color=#efefef
+ inner_color=#0c0c0c
+ outer_color=#fe0b00
+ outline_thickness=3
+ placeholder_text=Enter Password...
+}
+
+label {
+ monitor=
+ color=#ffffee
+ font_family=DejaVu Sans
+ font_size=28
+ halign=center
+ position=0, 80
+ text=$TIME
+ text_align=center
+ valign=center
+}
+
+label {
+ monitor=
+ color=#ffffee
+ font_family=DejaVu Sans
+ font_size=18
+ halign=left
+ position=80, 80
+ text=cmd[update:1000] echo " $(date +'%A, %b %d %Y')"
+ text_align=center
+ valign=bottom
+}
+
+label {
+ monitor=
+ color=#ffffee
+ font_family=DejaVu Sans
+ font_size=18
+ halign=right
+ position=80, 80
+ text=cmd[update:1000] echo "$(cat /sys/class/power_supply/BAT0/capacity)"
+ text_align=center
+ valign=bottom
+}
diff --git a/configs/hypr-desktop/hyprpaper.conf b/configs/hypr-desktop/hyprpaper.conf
new file mode 100644
index 0000000..b4e4d20
--- /dev/null
+++ b/configs/hypr-desktop/hyprpaper.conf
@@ -0,0 +1,5 @@
+ipc=on
+preload=$HOME/pictures/.wallpapers/skyline-view.png
+preload=$HOME/pictures/.wallpapers/iceland-winter-mountains.jpg
+splash=false
+wallpaper=eDP-1,$HOME/pictures/.wallpapers/iceland-winter-mountains.jpg
diff --git a/configs/hypr/hyprland.conf b/configs/hypr/hyprland.conf
index cb5be76..79cd6b3 100644
--- a/configs/hypr/hyprland.conf
+++ b/configs/hypr/hyprland.conf
@@ -11,7 +11,7 @@ exec-once=swaync
# Monitors
monitor=eDP-1,1920x1080@60,0x0,1
-monitor=HDMI-A-1,2550x1440@144,auto,1,mirror,eDP-1
+monitor=HDMI-A-1,2560x1440@144,auto,1,mirror,eDP-1
monitor=,preferred,auto,1,mirror,eDP-1
# Environment
diff --git a/configs/quickshell/default/Bar.qml b/configs/quickshell/default/Bar.qml
new file mode 100644
index 0000000..6c0e20d
--- /dev/null
+++ b/configs/quickshell/default/Bar.qml
@@ -0,0 +1,29 @@
+import Quickshell
+import Quickshell.Io
+import QtQuick
+
+Scope {
+ Time { id: timeSource }
+
+ Variants {
+ model: Quickshell.screens;
+
+ PanelWindow {
+ property var modelData
+ screen: modelData
+
+ anchors {
+ top: true
+ left: true
+ right: true
+ }
+
+ implicitHeight: 24
+
+ Clock {
+ anchors.centerIn: parent
+ time: timeSource.time
+ }
+ }
+ }
+}
diff --git a/configs/quickshell/default/Clock.qml b/configs/quickshell/default/Clock.qml
new file mode 100644
index 0000000..5a8ed73
--- /dev/null
+++ b/configs/quickshell/default/Clock.qml
@@ -0,0 +1,9 @@
+import QtQuick
+
+Text {
+ required property string time
+ font.family: "KelmscottMono"
+ font.pointSize: 14
+
+ text: time
+}
diff --git a/configs/quickshell/default/Time.qml b/configs/quickshell/default/Time.qml
new file mode 100644
index 0000000..081a1a5
--- /dev/null
+++ b/configs/quickshell/default/Time.qml
@@ -0,0 +1,25 @@
+import Quickshell
+import Quickshell.Io
+import QtQuick
+
+Scope {
+ id: root
+ property string time
+
+ Process {
+ id: dateProc
+ command: [ "date", "+%T | %A, %b %d" ]
+ running: true
+
+ stdout: StdioCollector {
+ onStreamFinished: root.time = this.text
+ }
+ }
+
+ Timer {
+ interval: 1000
+ running: true
+ repeat: true
+ onTriggered: dateProc.running = true
+ }
+}
diff --git a/configs/quickshell/default/shell.qml b/configs/quickshell/default/shell.qml
new file mode 100644
index 0000000..9d093ad
--- /dev/null
+++ b/configs/quickshell/default/shell.qml
@@ -0,0 +1,5 @@
+import Quickshell
+
+Scope {
+ Bar {}
+}
diff --git a/configs/quickshell/new/Bar.qml b/configs/quickshell/new/Bar.qml
new file mode 100644
index 0000000..6c0e20d
--- /dev/null
+++ b/configs/quickshell/new/Bar.qml
@@ -0,0 +1,29 @@
+import Quickshell
+import Quickshell.Io
+import QtQuick
+
+Scope {
+ Time { id: timeSource }
+
+ Variants {
+ model: Quickshell.screens;
+
+ PanelWindow {
+ property var modelData
+ screen: modelData
+
+ anchors {
+ top: true
+ left: true
+ right: true
+ }
+
+ implicitHeight: 24
+
+ Clock {
+ anchors.centerIn: parent
+ time: timeSource.time
+ }
+ }
+ }
+}
diff --git a/configs/quickshell/new/Clock.qml b/configs/quickshell/new/Clock.qml
new file mode 100644
index 0000000..5a8ed73
--- /dev/null
+++ b/configs/quickshell/new/Clock.qml
@@ -0,0 +1,9 @@
+import QtQuick
+
+Text {
+ required property string time
+ font.family: "KelmscottMono"
+ font.pointSize: 14
+
+ text: time
+}
diff --git a/configs/quickshell/new/Time.qml b/configs/quickshell/new/Time.qml
new file mode 100644
index 0000000..91430a1
--- /dev/null
+++ b/configs/quickshell/new/Time.qml
@@ -0,0 +1,25 @@
+import Quickshell
+import Quickshell.Io
+import QtQuick
+
+Scope {
+ id: root
+ property string time
+
+ Process {
+ id: dateProc
+ command: [ "date", "+%T | %A, %b %d | %Y" ]
+ running: true
+
+ stdout: StdioCollector {
+ onStreamFinished: root.time = this.text
+ }
+ }
+
+ Timer {
+ interval: 1000
+ running: true
+ repeat: true
+ onTriggered: dateProc.running = true
+ }
+}
diff --git a/configs/quickshell/new/shell.qml b/configs/quickshell/new/shell.qml
new file mode 100644
index 0000000..9d093ad
--- /dev/null
+++ b/configs/quickshell/new/shell.qml
@@ -0,0 +1,5 @@
+import Quickshell
+
+Scope {
+ Bar {}
+}
diff --git a/flake.lock b/flake.lock
index 7229c42..43787c1 100644
--- a/flake.lock
+++ b/flake.lock
@@ -20,11 +20,11 @@
]
},
"locked": {
- "lastModified": 1745357003,
- "narHash": "sha256-jYwzQkv1r7HN/4qrAuKp+NR4YYNp2xDrOX5O9YVqkWo=",
+ "lastModified": 1751740947,
+ "narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
"owner": "hyprwm",
"repo": "aquamarine",
- "rev": "a19cf76ee1a15c1c12083fa372747ce46387289f",
+ "rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
"type": "github"
},
"original": {
@@ -78,11 +78,11 @@
]
},
"locked": {
- "lastModified": 1747753534,
- "narHash": "sha256-hbDBa5a6jnxoD0OqijmCKF45Hiv4uubb340OMr5DJhc=",
+ "lastModified": 1752603129,
+ "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "559f6d36b32dd2180ebac40c522dd36290430fc5",
+ "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
"type": "github"
},
"original": {
@@ -107,11 +107,11 @@
]
},
"locked": {
- "lastModified": 1745948457,
- "narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=",
+ "lastModified": 1749155331,
+ "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=",
"owner": "hyprwm",
"repo": "hyprcursor",
- "rev": "ac903e80b33ba6a88df83d02232483d99f327573",
+ "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80",
"type": "github"
},
"original": {
@@ -136,11 +136,11 @@
]
},
"locked": {
- "lastModified": 1745015490,
- "narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=",
+ "lastModified": 1751808145,
+ "narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
"owner": "hyprwm",
"repo": "hyprgraphics",
- "rev": "60754910946b4e2dc1377b967b7156cb989c5873",
+ "rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
"type": "github"
},
"original": {
@@ -165,11 +165,11 @@
"xdph": "xdph"
},
"locked": {
- "lastModified": 1747610850,
- "narHash": "sha256-b41pc9J8b9fxRFHBQRKoTXZHpAsKW5eJbNsTMris2Mo=",
+ "lastModified": 1752682974,
+ "narHash": "sha256-qjfHaJGfTfBHUTwibfYyeSthiSn246fZvNGiJ9stEAc=",
"owner": "hyprwm",
"repo": "Hyprland",
- "rev": "eb3b38d40baca5c05ddbc1507b3d3f02a0ccb164",
+ "rev": "148718b3bcffaa90cd684df90860fd5bda37907f",
"type": "github"
},
"original": {
@@ -195,11 +195,11 @@
]
},
"locked": {
- "lastModified": 1747595918,
- "narHash": "sha256-5wjvmFtk85uBJLnrKZbfrgo9OTTQlFP18ZNgfBwFsz0=",
+ "lastModified": 1752254688,
+ "narHash": "sha256-XJJ+frO4NOxVkoSGc1Mag8ESumzx2FmVRspOgFlMqF8=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
- "rev": "4dea1029e837ae642979ab509eb2eddc959470d0",
+ "rev": "d723e5b153b7990d36e62a425bda3768c41dd9eb",
"type": "github"
},
"original": {
@@ -220,11 +220,11 @@
]
},
"locked": {
- "lastModified": 1743714874,
- "narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=",
+ "lastModified": 1749046714,
+ "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
- "rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2",
+ "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
"type": "github"
},
"original": {
@@ -245,11 +245,11 @@
]
},
"locked": {
- "lastModified": 1738422629,
- "narHash": "sha256-5v+bv75wJWvahyM2xcMTSNNxmV8a7hb01Eey5zYnBJw=",
+ "lastModified": 1749046714,
+ "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
- "rev": "755aef8dab49d0fc4663c715fa4ad221b2aedaed",
+ "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
"type": "github"
},
"original": {
@@ -277,11 +277,11 @@
]
},
"locked": {
- "lastModified": 1737634706,
- "narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
+ "lastModified": 1749154592,
+ "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
"owner": "hyprwm",
"repo": "hyprland-qt-support",
- "rev": "8810df502cdee755993cb803eba7b23f189db795",
+ "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
"type": "github"
},
"original": {
@@ -339,11 +339,11 @@
]
},
"locked": {
- "lastModified": 1745951494,
- "narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=",
+ "lastModified": 1750371812,
+ "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
- "rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e",
+ "rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
"type": "github"
},
"original": {
@@ -368,11 +368,11 @@
]
},
"locked": {
- "lastModified": 1746655412,
- "narHash": "sha256-kVQ0bHVtX6baYxRWWIh4u3LNJZb9Zcm2xBeDPOGz5BY=",
+ "lastModified": 1750371198,
+ "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
"owner": "hyprwm",
"repo": "hyprlang",
- "rev": "557241780c179cf7ef224df392f8e67dab6cef83",
+ "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
"type": "github"
},
"original": {
@@ -420,11 +420,11 @@
"systems": "systems_2"
},
"locked": {
- "lastModified": 1746481417,
- "narHash": "sha256-mal2vIpRz5BU/0ll6gP/N2FqjFtgFNDgMBgoI6tLWag=",
+ "lastModified": 1751567624,
+ "narHash": "sha256-tUVODSZhvafXmuN+5SwZpNWV+2cvhSd+5IJ5TXu3YgI=",
"owner": "hyprwm",
"repo": "hyprsunset",
- "rev": "2a8ef76c6a77ca249e4613fefcd96bad74b5f9b2",
+ "rev": "4b2f0f9f46a6552930eecb979d18ac48d7079312",
"type": "github"
},
"original": {
@@ -443,11 +443,11 @@
"systems": "systems_3"
},
"locked": {
- "lastModified": 1739049114,
- "narHash": "sha256-jD9W4OHcn1sJ+xbwNFbGN9heSE6v2v3U+FtGf8Cul6k=",
+ "lastModified": 1750372066,
+ "narHash": "sha256-nvpJ1XX2cWIuMd7I/07C2NXYbWEuieHVrYTaNJqo44A=",
"owner": "hyprwm",
"repo": "hyprsysteminfo",
- "rev": "6769e50fcfcfd56548e9b17b9a02641ab4826e38",
+ "rev": "b8ee10565d1643bb49eea5a155e1a415b3904d44",
"type": "github"
},
"original": {
@@ -468,11 +468,11 @@
]
},
"locked": {
- "lastModified": 1746635225,
- "narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=",
+ "lastModified": 1751888065,
+ "narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "674ea57373f08b7609ce93baff131117a0dfe70d",
+ "rev": "a8229739cf36d159001cfc203871917b83fdf917",
"type": "github"
},
"original": {
@@ -493,11 +493,11 @@
]
},
"locked": {
- "lastModified": 1741534688,
- "narHash": "sha256-EV3945SnjOCuRVbGRghsWx/9D89FyshnSO1Q6/TuQ14=",
+ "lastModified": 1749135356,
+ "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "dd1f720cbc2dbb3c71167c9598045dd3261d27b3",
+ "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb",
"type": "github"
},
"original": {
@@ -572,11 +572,11 @@
]
},
"locked": {
- "lastModified": 1739870480,
- "narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=",
+ "lastModified": 1751881472,
+ "narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
- "rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b",
+ "rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
"type": "github"
},
"original": {
@@ -597,11 +597,11 @@
]
},
"locked": {
- "lastModified": 1739870480,
- "narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=",
+ "lastModified": 1749145760,
+ "narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
- "rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b",
+ "rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6",
"type": "github"
},
"original": {
@@ -612,11 +612,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1747327360,
- "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
+ "lastModified": 1751792365,
+ "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46",
+ "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
@@ -628,11 +628,11 @@
},
"nixpkgs_2": {
"locked": {
- "lastModified": 1747542820,
- "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=",
+ "lastModified": 1752480373,
+ "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043",
+ "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08",
"type": "github"
},
"original": {
@@ -652,11 +652,11 @@
]
},
"locked": {
- "lastModified": 1747372754,
- "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
+ "lastModified": 1750779888,
+ "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix",
"repo": "git-hooks.nix",
- "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
+ "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github"
},
"original": {
@@ -665,6 +665,26 @@
"type": "github"
}
},
+ "quickshell": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1752631407,
+ "narHash": "sha256-dLDtKxh1VabwLxv5xbjI+oRkDyqWEKGITU+0dEaaW28=",
+ "owner": "quickshell-mirror",
+ "repo": "quickshell",
+ "rev": "4d8055f1cd9924bcace59405894b8879633eb83d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "quickshell-mirror",
+ "repo": "quickshell",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"home-manager": "home-manager",
@@ -672,7 +692,8 @@
"hyprland-plugins": "hyprland-plugins",
"hyprsunset": "hyprsunset",
"hyprsysteminfo": "hyprsysteminfo",
- "nixpkgs": "nixpkgs_2"
+ "nixpkgs": "nixpkgs_2",
+ "quickshell": "quickshell"
}
},
"systems": {
@@ -748,11 +769,11 @@
]
},
"locked": {
- "lastModified": 1745871725,
- "narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=",
+ "lastModified": 1751300244,
+ "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
- "rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e",
+ "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index da21285..73ee221 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,12 +3,18 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ hyprland.url = "github:hyprwm/Hyprland";
+
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
- hyprland.url = "github:hyprwm/Hyprland";
+ quickshell = {
+ url = "github:quickshell-mirror/quickshell";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
@@ -26,7 +32,29 @@
outputs = { self, nixpkgs, hyprland, ... }@inputs:
let
system = "x86_64-linux";
- pkgs = nixpkgs.legacyPackages.${system};
+ # pkgs = nixpkgs.legacyPackages.${system};
+ pkgs = import nixpkgs {
+ inherit system;
+ overlays = [
+ # Hyprland & Plugins Overlays
+ (final: prev: {
+ hyprlandPlugins = prev.hyprlandPlugins // {
+ hyprexpo = inputs.hyprland-plugins.packages.${prev.system}.hyprexpo;
+ };
+ })
+ (final: prev: {
+ hyprland = inputs.hyprland.packages.${prev.system}.hyprland;
+ })
+ (final: prev: {
+ xdg-desktop-portal-hyprland = inputs.hyprland.packages.${prev.system}.xdg-desktop-portal-hyprland;
+ })
+
+ # Quickshell Overlays
+ (final: prev: {
+ quickshell = inputs.quickshell.packages.${prev.system}.quickshell;
+ })
+ ];
+ };
defaultCfg = rec {
username = "liamm";
homeDirectory = "/home/${username}";
@@ -35,25 +63,12 @@
};
in
{
-
nixosConfigurations = {
- nixpkgs.overlays = [
- (final: prev: {
- hyprlandPlugins = prev.hyprlandPlugins // {
- hyprexpo = inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo;
- };
- })
- ];
-
darp8 = nixpkgs.lib.nixosSystem {
- specialArgs = {inherit inputs; cfg = defaultCfg; };
+ specialArgs = { inherit inputs; cfg = defaultCfg; };
modules = [
hyprland.nixosModules.default
./hosts/darp8/configuration.nix
- {
- environment.systemPackages = [
- ];
- }
];
};
desktop = nixpkgs.lib.nixosSystem {
@@ -61,10 +76,6 @@
modules = [
hyprland.nixosModules.default
./hosts/desktop/configuration.nix
- {
- environment.systemPackages = [
- ];
- }
];
};
};
diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix
index 34e9396..c03f9ce 100644
--- a/hosts/desktop/configuration.nix
+++ b/hosts/desktop/configuration.nix
@@ -171,8 +171,8 @@
hyprland = {
enable = true;
- package = inputs.hyprland.packages.${pkgs.system}.hyprland;
- portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
+ package = pkgs.hyprland;
+ portalPackage = pkgs.xdg-desktop-portal-hyprland;
xwayland.enable = true;
withUWSM = true;
plugins = [ ];
@@ -195,7 +195,7 @@
useGlobalPkgs = true;
extraSpecialArgs = { inherit inputs; inherit cfg; };
users = {
- "liamm" = import ./home.nix;
+ "${cfg.username}" = import ./home.nix;
};
backupFileExtension = ".bak";
};
@@ -204,15 +204,16 @@
alacritty
bat
discord
- discord-canary
fd
file
+ ghostty
glib
gnome-keyring
libdrm
libnotify
mesa
neovim
+ quickshell
ripgrep
spotify
unzip
@@ -237,7 +238,6 @@
extraPortals = with pkgs;[
xdg-desktop-portal-gtk
xdg-desktop-portal-wlr
- xdg-desktop-portal-hyprland
];
config = {
common = {
diff --git a/hosts/desktop/file.nix b/hosts/desktop/file.nix
index e520d82..f58f32d 100644
--- a/hosts/desktop/file.nix
+++ b/hosts/desktop/file.nix
@@ -22,7 +22,7 @@ in
# Configs
".config/hypr" = {
- source = ../../configs/hypr;
+ source = ../../configs/hypr-desktop;
outOfStoreSymlink = true;
recursive = true;
};
diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix
index 5428043..47a9184 100644
--- a/hosts/desktop/home.nix
+++ b/hosts/desktop/home.nix
@@ -9,9 +9,6 @@
}:
{
- home.username = "liamm";
- home.homeDirectory = "/home/liamm";
-
home.username = cfg.username;
home.homeDirectory = cfg.homeDirectory;
@@ -73,11 +70,11 @@
xdg.configFile = {
"emacs" = {
recursive = true;
- source = ../../modules/non-nix_configs/emacs;
+ source = ../../configs/emacs;
};
- "user-dirs.dirs".source = ../../modules/non-nix_configs/user-dirs.dirs;
- "user-dirs.locale".source = ../../modules/non-nix_configs/user-dirs.locale;
+ "user-dirs.dirs".source = ../../configs/user-dirs.dirs;
+ "user-dirs.locale".source = ../../configs/user-dirs.locale;
};
# Let Home Manager install and manage itself.
diff --git a/hosts/desktop/pkgs.nix b/hosts/desktop/pkgs.nix
index f096cb4..ba4aaa3 100644
--- a/hosts/desktop/pkgs.nix
+++ b/hosts/desktop/pkgs.nix
@@ -7,7 +7,6 @@
# BEGIN PACKAGES
home.packages = with pkgs; [
audacity
- android-studio
bat
brave
brightnessctl
@@ -20,7 +19,7 @@
floorp
fzf
genymotion
- gimp
+ # gimp
gtk4
gvfs
grimblast
@@ -42,14 +41,19 @@
pamixer
pavucontrol
powertop
- prismlauncher
+ # prismlauncher
protonvpn-cli
pywal
qbittorrent
signal-desktop
swaynotificationcenter
swww
- texliveFull
+
+ # Temporarily removing texliveFull as it currently has a dependency (xindy)
+ # with a dependency (clisp) with a broken drv
+
+ # texliveFull
+
xfce.thunar
xfce.thunar-volman
tree