diff --git a/common/desktop_environment/default.nix b/common/desktop_environment/default.nix
index 8c7f2a5..4004ada 100644
--- a/common/desktop_environment/default.nix
+++ b/common/desktop_environment/default.nix
@@ -6,7 +6,7 @@ in
{
imports = [
./gnome
- # ./hyprland
+ ./hyprland
./sway
./cosmic
];
@@ -19,10 +19,10 @@ in
name = "gnome";
enabled = cfg.gnome.enable;
}
- # {
- # name = "hyprland";
- # enabled = cfg.hyprland.enable;
- # }
+ {
+ name = "hyprland";
+ enabled = cfg.hyprland.enable;
+ }
{
name = "sway";
enabled = cfg.sway.enable;
diff --git a/common/desktop_environment/hyprland/default.nix b/common/desktop_environment/hyprland/default.nix
index 40d332a..ae74ecf 100644
--- a/common/desktop_environment/hyprland/default.nix
+++ b/common/desktop_environment/hyprland/default.nix
@@ -31,6 +31,11 @@ with lib;
default = { };
description = "Extra options for Hyprland configuration.";
};
+ hyprpaperSettings = lib.mkOption {
+ type = lib.types.attrs;
+ default = { };
+ description = "Extra options for hyprpaper configuration.";
+ };
swaync = {
enable = lib.mkEnableOption "Enable Swaync (notification center for Hyprland)";
};
@@ -94,7 +99,7 @@ with lib;
programs.hyprland = {
enable = true;
# xwayland.enable = false;
- withUWSM = true;
+ # withUWSM = true;
# set the flake package
package = hyprlandPkgs.hyprland;
@@ -115,6 +120,15 @@ with lib;
];
};
+ # Enable PipeWire + WirePlumber so xdg-desktop-portal can do screencast
+ services.pipewire = {
+ enable = true;
+ # Enable WirePlumber session manager via the pipewire module option
+ wireplumber = {
+ enable = true;
+ };
+ };
+
hardware.graphics = {
enable = true;
package = hyprlandPkgs.mesa;
@@ -127,18 +141,21 @@ with lib;
environment.sessionVariables = {
GTK_THEME = "Adwaita:dark";
XDG_SESSION_TYPE = "wayland";
- XDG_CURRENT_DESKTOP = "Hyprland";
- XDG_SESSION_DESKTOP = "Hyprland";
- WLR_RENDERER = "auto";
+ XDG_CURRENT_DESKTOP = "sway";
+ XDG_SESSION_DESKTOP = "sway";
+ # prefer EGL renderer (can be changed back to "auto" if needed)
+ WLR_RENDERER = "egl";
# Tell apps to run native wayland
NIXOS_OZONE_WL = "1";
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
+ ELECTRON_ENABLE_WAYLAND = "1";
+ ELECTRON_DISABLE_SANDBOX = "0";
GDK_BACKEND = "wayland,x11"; # GTK
QT_QPA_PLATFORM = "wayland;xcb"; # Qt 5/6
MOZ_ENABLE_WAYLAND = "1"; # Firefox
SDL_VIDEODRIVER = "wayland"; # SDL apps/games
- CLUTTER_BACKEND = "wayland"; # You already have this
+ CLUTTER_BACKEND = "wayland";
};
# Qt theming
diff --git a/common/desktop_environment/hyprland/home_manager/default.nix b/common/desktop_environment/hyprland/home_manager/default.nix
index 9533253..57dac88 100644
--- a/common/desktop_environment/hyprland/home_manager/default.nix
+++ b/common/desktop_environment/hyprland/home_manager/default.nix
@@ -3,6 +3,7 @@
imports = [
./theme.nix
./hyprland.nix
+ ./hyprpaper.nix
# ./quickshell.nix
./waybar.nix
./hyprpolkitagent.nix
diff --git a/common/desktop_environment/hyprland/home_manager/hyprland.nix b/common/desktop_environment/hyprland/home_manager/hyprland.nix
index dc17934..3d8b6b7 100644
--- a/common/desktop_environment/hyprland/home_manager/hyprland.nix
+++ b/common/desktop_environment/hyprland/home_manager/hyprland.nix
@@ -26,7 +26,7 @@ in
debug.disable_logs = false;
debug.disable_time = false;
- exec-once = [ "pgrep waybar>/dev/null || waybar" ];
+ # exec-once = [ "pgrep waybar>/dev/null || waybar" ];
# Default monitor configuration
monitor = "monitor = , preferred, auto, 1";
@@ -95,6 +95,7 @@ in
"$mainMod SHIFT, escape, exit"
"$mainMod SHIFT, q, exec, swaylock"
"$mainMod, f, togglefloating"
+ "$mainMod SHIFT, F, fullscreen"
"$mainMod, g, pseudo"
"$mainMod, t, togglesplit"
diff --git a/common/desktop_environment/hyprland/home_manager/hyprpaper.nix b/common/desktop_environment/hyprland/home_manager/hyprpaper.nix
new file mode 100644
index 0000000..06d6820
--- /dev/null
+++ b/common/desktop_environment/hyprland/home_manager/hyprpaper.nix
@@ -0,0 +1,22 @@
+{
+ osConfig,
+ lib,
+ ...
+}:
+let
+ ccfg = import ../../../config.nix;
+ cfg_path = [
+ ccfg.custom_config_key
+ "desktopEnvironment"
+ "hyprland"
+ ];
+ cfg = lib.attrsets.getAttrFromPath cfg_path osConfig;
+in
+{
+ config = {
+ services.hyprpaper = {
+ enable = true;
+ settings = cfg.hyprpaperSettings;
+ };
+ };
+}
diff --git a/common/desktop_environment/hyprland/home_manager/waybar.nix b/common/desktop_environment/hyprland/home_manager/waybar.nix
index 25c5986..66f3349 100644
--- a/common/desktop_environment/hyprland/home_manager/waybar.nix
+++ b/common/desktop_environment/hyprland/home_manager/waybar.nix
@@ -1,8 +1,4 @@
-{
- lib,
- osConfig,
- ...
-}:
+{ lib, osConfig, ... }:
let
ccfg = import ../../../config.nix;
cfg_path = [
@@ -15,6 +11,7 @@ let
in
{
config = lib.mkIf cfg.enable {
+
programs.waybar = {
enable = true;
systemd.enable = true;
@@ -22,7 +19,7 @@ in
mainBar = {
layer = "top";
position = "top";
- height = 30;
+ height = 28;
spacing = 6;
margin-top = 0;
margin-bottom = 0;
@@ -32,7 +29,6 @@ in
modules-left = [
"hyprland/workspaces"
];
-
modules-center = [
"clock"
"temperature"
@@ -40,16 +36,19 @@ in
"memory"
"disk"
];
-
modules-right = [
+ "battery"
+ "battery#bat2"
"pulseaudio"
"network"
"bluetooth"
+ "power-profiles-daemon"
+ "backlight"
"custom/notifications"
- "hyprland/language"
+ "tray"
+ "custom/power"
];
- # Workspaces configuration
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
@@ -74,7 +73,65 @@ in
"19" = "十九";
"20" = "二十";
};
- show-special = false;
+ disable-scroll = false;
+ };
+
+ # CENTER
+ clock = {
+ format = "{:%b %d, %H:%M}";
+ tooltip-format = "{:%Y %B}\n{calendar}";
+ };
+
+ temperature = {
+ thermal-zone = 2;
+ hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
+ critical-threshold = 80;
+ format-critical = " {temperatureC}°C";
+ format = " {temperatureC}°C";
+ };
+
+ cpu = {
+ format = " {usage}%";
+ tooltip = true;
+ on-click = "btop";
+ };
+
+ memory = {
+ format = " {}%";
+ on-click = "btop";
+ };
+
+ disk = {
+ interval = 30;
+ format = " {percentage_used}%";
+ path = "/";
+ on-click = "btop";
+ };
+
+ # RIGHT
+ "battery" = {
+ "states" = {
+ # "good"= 95;
+ "warning" = 30;
+ "critical" = 15;
+ };
+ "format" = "{capacity}% {icon}";
+ "format-full" = "{capacity}% {icon}";
+ "format-charging" = "{capacity}% ";
+ "format-plugged" = "{capacity}% ";
+ "format-alt" = "{time} {icon}";
+ # "format-good"= ""; // An empty format will hide the module
+ # "format-full"= "";
+ "format-icons" = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ };
+ "battery#bat2" = {
+ "bat" = "BAT2";
};
pulseaudio = {
@@ -98,8 +155,57 @@ in
];
};
scroll-step = 5;
- on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
- on-click-right = "swaync-client -t -sw";
+ on-click = "pavucontrol";
+ on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
+ };
+
+ network = {
+ format-wifi = " {essid} ({signalStrength}%)";
+ format-ethernet = " {ipaddr}/{cidr}";
+ tooltip-format = "{ifname} via {gwaddr} ";
+ format-linked = " {ifname} (No IP)";
+ format-disconnected = " Disconnected";
+ # on-click = "wofi-wifi-menu";
+ # on-click-right = "nmcli radio wifi toggle";
+ };
+
+ bluetooth = {
+ format = " {status}";
+ format-connected = " {device_alias}";
+ format-connected-battery = " {device_alias} {device_battery_percentage}%";
+ tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
+ tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
+ tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
+ tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
+ # on-click = "wofi-bluetooth-menu";
+ # on-click-right = "bluetoothctl power toggle";
+ };
+
+ "power-profiles-daemon" = {
+ format = "{icon}";
+ "tooltip-format" = "Power profile: {profile}\nDriver: {driver}";
+ tooltip = true;
+ "format-icons" = {
+ default = "";
+ performance = "";
+ balanced = "";
+ "power-saver" = "";
+ };
+ };
+
+ backlight = {
+ format = "{percent}% {icon}";
+ "format-icons" = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
};
"custom/notifications" = {
@@ -123,145 +229,30 @@ in
tooltip = false;
};
- # Clock
- clock = {
- format = "{:%b %d, %H:%M}";
- };
-
- temperature = {
- thermal-zone = 2;
- hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
- critical-threshold = 80;
- format-critical = " {temperatureC}°C";
- format = " {temperatureC}°C";
- };
-
- cpu = {
- format = " {usage}%";
- tooltip = false;
- on-click = "btop";
- };
-
- memory = {
- format = " {}%";
- on-click = "btop";
- };
-
- disk = {
- interval = 30;
- format = " {percentage_used}%";
- path = "/";
- on-click = "btop";
- };
-
- network = {
- format-wifi = " {essid} ({signalStrength}%)";
- format-ethernet = " {ipaddr}/{cidr}";
- tooltip-format = "{ifname} via {gwaddr} ";
- format-linked = " {ifname} (No IP)";
- format-disconnected = " Disconnected";
- on-click = "wofi-wifi-menu";
- on-click-right = "nmcli radio wifi toggle";
- };
-
- bluetooth = {
- format = " {status}";
- format-connected = " {device_alias}";
- format-connected-battery = " {device_alias} {device_battery_percentage}%";
- tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
- tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
- tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
- tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
- on-click = "wofi-bluetooth-menu";
- on-click-right = "bluetoothctl power toggle";
- };
-
- # Keyboard input (language)
- "hyprland/language" = {
+ "sway/language" = {
format = "{}";
- format-en = "EN";
- format-ja = "JP";
};
+
+ "tray" = {
+ "spacing" = 10;
+ };
+
+ "custom/power" = {
+ format = "⏻ ";
+ tooltip = false;
+ menu = "on-click";
+ "menu-file" = ./waybar/power_menu.xml;
+ "menu-actions" = {
+ shutdown = "shutdown 0";
+ reboot = "reboot";
+ logout = "loginctl terminate-session $(loginctl list-sessions | grep seat0 | awk '{print $1}')";
+ };
+ };
+
};
};
- style = ''
- * {
- font-family: "JetBrainsMonoNL Nerd Font";
- font-size: 12px;
- border: none;
- border-radius: 0;
- min-height: 0;
- }
-
- window#waybar {
- background: transparent;
- border-radius: 10px;
- margin: 0px;
- }
-
- .modules-left,
- .modules-center,
- .modules-right {
- background: rgba(26, 27, 38, 0.8);
- border-radius: 10px;
- margin: 4px;
- padding: 0 10px;
- }
-
- #workspaces {
- padding: 0 5px;
- }
-
- #workspaces button {
- padding: 0 8px;
- background: transparent;
- color: #c0caf5;
- border-radius: 5px;
- margin: 2px;
- }
-
- #workspaces button:hover {
- background: rgba(125, 196, 228, 0.2);
- color: #7dcae4;
- }
-
- #workspaces button.active {
- background: #7dcae4;
- color: #1a1b26;
- }
-
- #pulseaudio,
- #custom-notifications,
- #clock,
- #temperature,
- #cpu,
- #memory,
- #disk,
- #network,
- #bluetooth,
- #language {
- padding: 0 8px;
- color: #c0caf5;
- margin: 2px;
- }
-
- #temperature.critical {
- color: #f7768e;
- }
-
- #network.disconnected {
- color: #f7768e;
- }
-
- #bluetooth.disabled {
- color: #565f89;
- }
-
- #pulseaudio.muted {
- color: #565f89;
- }
- '';
+ style = builtins.readFile ./waybar/waybar.css;
};
};
}
diff --git a/common/desktop_environment/hyprland/home_manager/waybar/power_menu.xml b/common/desktop_environment/hyprland/home_manager/waybar/power_menu.xml
new file mode 100644
index 0000000..a061b18
--- /dev/null
+++ b/common/desktop_environment/hyprland/home_manager/waybar/power_menu.xml
@@ -0,0 +1,26 @@
+
+
+
+
diff --git a/common/desktop_environment/hyprland/home_manager/waybar/waybar.css b/common/desktop_environment/hyprland/home_manager/waybar/waybar.css
new file mode 100644
index 0000000..6ed5a8c
--- /dev/null
+++ b/common/desktop_environment/hyprland/home_manager/waybar/waybar.css
@@ -0,0 +1,102 @@
+* {
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: "JetBrainsMonoNL Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ border: none;
+ border-radius: 0;
+ min-height: 0;
+ color: #f1f1f1;
+}
+
+window#waybar {
+ background: transparent;
+}
+
+#workspaces button.focused,
+#workspaces button.active {
+ background-color: rgba(220, 220, 220, 0.2);
+}
+
+#workspaces button.urgent {
+ background-color: rgba(214, 82, 82, 0.3);
+}
+
+button,
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#wireplumber,
+#custom-media,
+#custom-notifications,
+#custom-power,
+#tray,
+#mode,
+#idle_inhibitor,
+#scratchpad,
+#power-profiles-daemon,
+#bluetooth,
+#language,
+#mpd {
+ padding: 0 5px;
+ color: #f1f1f1;
+ background-color: rgba(220, 220, 220, 0.1);
+ border-radius: 6px;
+}
+
+
+button:hover,
+#clock:hover,
+#battery:hover,
+#cpu:hover,
+#memory:hover,
+#disk:hover,
+#temperature:hover,
+#backlight:hover,
+#network:hover,
+#pulseaudio:hover,
+#wireplumber:hover,
+#custom-media:hover,
+#custom-notifications:hover,
+#tray:hover,
+#mode:hover,
+#idle_inhibitor:hover,
+#scratchpad:hover,
+#power-profiles-daemon:hover,
+#bluetooth:hover,
+#language:hover,
+#mpd:hover {
+ color: #f1f1f1;
+ background-color: rgba(220, 220, 220, 0.2);
+ border-radius: 6px;
+}
+
+#power-profiles-daemon {
+ padding-right: 15px;
+}
+
+#power-profiles-daemon.performance {
+ color: #fff7d6;
+}
+
+#power-profiles-daemon.balanced {
+ color: #d6efff;
+}
+
+#power-profiles-daemon.power-saver {
+ color:#dcffd6;
+}
+
+#tray>.passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray>.needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #eb4d4b;
+}
diff --git a/common/desktop_environment/sway/home_manager/waybar.nix b/common/desktop_environment/sway/home_manager/waybar.nix
index addb94c..3fc38be 100644
--- a/common/desktop_environment/sway/home_manager/waybar.nix
+++ b/common/desktop_environment/sway/home_manager/waybar.nix
@@ -50,7 +50,6 @@ in
"custom/power"
];
- # LEFT
"sway/workspaces" = {
format = "{icon}";
format-icons = {
diff --git a/common/flake.lock b/common/flake.lock
index 78e7a15..a227765 100644
--- a/common/flake.lock
+++ b/common/flake.lock
@@ -8,7 +8,7 @@
"ragenix",
"nixpkgs"
],
- "systems": "systems"
+ "systems": "systems_2"
},
"locked": {
"lastModified": 1736955230,
@@ -24,6 +24,39 @@
"type": "github"
}
},
+ "aquamarine": {
+ "inputs": {
+ "hyprutils": [
+ "hyprland",
+ "hyprutils"
+ ],
+ "hyprwayland-scanner": [
+ "hyprland",
+ "hyprwayland-scanner"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1755946532,
+ "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
+ "owner": "hyprwm",
+ "repo": "aquamarine",
+ "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "aquamarine",
+ "type": "github"
+ }
+ },
"crane": {
"locked": {
"lastModified": 1741481578,
@@ -62,9 +95,25 @@
"type": "github"
}
},
+ "flake-compat": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1747046372,
+ "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
"flake-utils": {
"inputs": {
- "systems": "systems_2"
+ "systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
@@ -80,6 +129,28 @@
"type": "github"
}
},
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "pre-commit-hooks",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1709087332,
+ "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "type": "github"
+ }
+ },
"home-manager": {
"inputs": {
"nixpkgs": "nixpkgs"
@@ -121,6 +192,265 @@
"type": "github"
}
},
+ "hyprcursor": {
+ "inputs": {
+ "hyprlang": [
+ "hyprland",
+ "hyprlang"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1753964049,
+ "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
+ "owner": "hyprwm",
+ "repo": "hyprcursor",
+ "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprcursor",
+ "type": "github"
+ }
+ },
+ "hyprgraphics": {
+ "inputs": {
+ "hyprutils": [
+ "hyprland",
+ "hyprutils"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1758192433,
+ "narHash": "sha256-CR6RnqEJSTiFgA6KQY4TTLUWbZ8RBnb+hxQqesuQNzQ=",
+ "owner": "hyprwm",
+ "repo": "hyprgraphics",
+ "rev": "c44e749dd611521dee940d00f7c444ee0ae4cfb7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprgraphics",
+ "type": "github"
+ }
+ },
+ "hyprland": {
+ "inputs": {
+ "aquamarine": "aquamarine",
+ "hyprcursor": "hyprcursor",
+ "hyprgraphics": "hyprgraphics",
+ "hyprland-protocols": "hyprland-protocols",
+ "hyprland-qtutils": "hyprland-qtutils",
+ "hyprlang": "hyprlang",
+ "hyprutils": "hyprutils",
+ "hyprwayland-scanner": "hyprwayland-scanner",
+ "nixpkgs": "nixpkgs_2",
+ "pre-commit-hooks": "pre-commit-hooks",
+ "systems": "systems",
+ "xdph": "xdph"
+ },
+ "locked": {
+ "lastModified": 1759076381,
+ "narHash": "sha256-ZWAsJnJvjjLMjH6hl5o4zVOTEuL3tmBzaJcoQYJE+aE=",
+ "owner": "hyprwm",
+ "repo": "Hyprland",
+ "rev": "c30036bdacbe5e87b49d6de6df652d56681ef457",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "Hyprland",
+ "type": "github"
+ }
+ },
+ "hyprland-protocols": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1749046714,
+ "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "type": "github"
+ }
+ },
+ "hyprland-qt-support": {
+ "inputs": {
+ "hyprlang": [
+ "hyprland",
+ "hyprland-qtutils",
+ "hyprlang"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "hyprland-qtutils",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "hyprland-qtutils",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1749154592,
+ "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
+ "owner": "hyprwm",
+ "repo": "hyprland-qt-support",
+ "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-qt-support",
+ "type": "github"
+ }
+ },
+ "hyprland-qtutils": {
+ "inputs": {
+ "hyprland-qt-support": "hyprland-qt-support",
+ "hyprlang": [
+ "hyprland",
+ "hyprlang"
+ ],
+ "hyprutils": [
+ "hyprland",
+ "hyprland-qtutils",
+ "hyprlang",
+ "hyprutils"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1757694755,
+ "narHash": "sha256-j+w5QUUr2QT/jkxgVKecGYV8J7fpzXCMgzEEr6LG9ug=",
+ "owner": "hyprwm",
+ "repo": "hyprland-qtutils",
+ "rev": "5ffdfc13ed03df1dae5084468d935f0a3f2c9a4c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-qtutils",
+ "type": "github"
+ }
+ },
+ "hyprlang": {
+ "inputs": {
+ "hyprutils": [
+ "hyprland",
+ "hyprutils"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1756810301,
+ "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=",
+ "owner": "hyprwm",
+ "repo": "hyprlang",
+ "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprlang",
+ "type": "github"
+ }
+ },
+ "hyprutils": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1756117388,
+ "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
+ "owner": "hyprwm",
+ "repo": "hyprutils",
+ "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprutils",
+ "type": "github"
+ }
+ },
+ "hyprwayland-scanner": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1755184602,
+ "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
+ "owner": "hyprwm",
+ "repo": "hyprwayland-scanner",
+ "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprwayland-scanner",
+ "type": "github"
+ }
+ },
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
@@ -154,6 +484,22 @@
}
},
"nixpkgs_2": {
+ "locked": {
+ "lastModified": 1758198701,
+ "narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_3": {
"locked": {
"lastModified": 1741379970,
"narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=",
@@ -169,12 +515,35 @@
"type": "github"
}
},
+ "pre-commit-hooks": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1758108966,
+ "narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "type": "github"
+ }
+ },
"ragenix": {
"inputs": {
"agenix": "agenix",
"crane": "crane",
"flake-utils": "flake-utils",
- "nixpkgs": "nixpkgs_2",
+ "nixpkgs": "nixpkgs_3",
"rust-overlay": "rust-overlay"
},
"locked": {
@@ -194,6 +563,7 @@
"root": {
"inputs": {
"home-manager": "home-manager",
+ "hyprland": "hyprland",
"nix-flatpak": "nix-flatpak",
"ragenix": "ragenix"
}
@@ -221,16 +591,16 @@
},
"systems": {
"locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "lastModified": 1689347949,
+ "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "repo": "default-linux",
+ "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
- "repo": "default",
+ "repo": "default-linux",
"type": "github"
}
},
@@ -248,6 +618,62 @@
"repo": "default",
"type": "github"
}
+ },
+ "systems_3": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "xdph": {
+ "inputs": {
+ "hyprland-protocols": [
+ "hyprland",
+ "hyprland-protocols"
+ ],
+ "hyprlang": [
+ "hyprland",
+ "hyprlang"
+ ],
+ "hyprutils": [
+ "hyprland",
+ "hyprutils"
+ ],
+ "hyprwayland-scanner": [
+ "hyprland",
+ "hyprwayland-scanner"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1755354946,
+ "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
+ "owner": "hyprwm",
+ "repo": "xdg-desktop-portal-hyprland",
+ "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "xdg-desktop-portal-hyprland",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/common/flake.nix b/common/flake.nix
index 3070bb6..5a915e4 100644
--- a/common/flake.nix
+++ b/common/flake.nix
@@ -6,7 +6,7 @@
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
# disabled for now
- # hyprland.url = "github:hyprwm/Hyprland";
+ hyprland.url = "github:hyprwm/Hyprland";
};
outputs =
@@ -14,7 +14,7 @@
home-manager,
ragenix,
nix-flatpak,
- # hyprland,
+ hyprland,
...
}:
{
@@ -31,7 +31,7 @@
home-manager.nixosModules.default
ragenix.nixosModules.age
nix-flatpak.nixosModules.nix-flatpak
- # hyprland.nixosModules.default
+ hyprland.nixosModules.default
./_home_manager
./options.nix
./general
@@ -50,11 +50,11 @@
];
_module.args = {
inherit ragenix;
- # inherit hyprland;
- # hyprlandPkgs = import hyprland.inputs.nixpkgs {
- # system = pkgs.stdenv.hostPlatform.system;
- # config = config.nixpkgs.config or { };
- # };
+ inherit hyprland;
+ hyprlandPkgs = import hyprland.inputs.nixpkgs {
+ system = pkgs.stdenv.hostPlatform.system;
+ config = config.nixpkgs.config or { };
+ };
};
};
};
diff --git a/hosts/oren/flake.lock b/hosts/oren/flake.lock
index fb53e33..d657c0d 100644
--- a/hosts/oren/flake.lock
+++ b/hosts/oren/flake.lock
@@ -9,7 +9,7 @@
"ragenix",
"nixpkgs"
],
- "systems": "systems"
+ "systems": "systems_2"
},
"locked": {
"lastModified": 1736955230,
@@ -25,9 +25,47 @@
"type": "github"
}
},
+ "aquamarine": {
+ "inputs": {
+ "hyprutils": [
+ "common",
+ "hyprland",
+ "hyprutils"
+ ],
+ "hyprwayland-scanner": [
+ "common",
+ "hyprland",
+ "hyprwayland-scanner"
+ ],
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1755946532,
+ "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
+ "owner": "hyprwm",
+ "repo": "aquamarine",
+ "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "aquamarine",
+ "type": "github"
+ }
+ },
"common": {
"inputs": {
"home-manager": "home-manager",
+ "hyprland": "hyprland",
"nix-flatpak": "nix-flatpak",
"ragenix": "ragenix"
},
@@ -80,9 +118,25 @@
"type": "github"
}
},
+ "flake-compat": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1747046372,
+ "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
"flake-utils": {
"inputs": {
- "systems": "systems_2"
+ "systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
@@ -98,6 +152,29 @@
"type": "github"
}
},
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "pre-commit-hooks",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1709087332,
+ "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "type": "github"
+ }
+ },
"home-manager": {
"inputs": {
"nixpkgs": "nixpkgs"
@@ -140,6 +217,287 @@
"type": "github"
}
},
+ "hyprcursor": {
+ "inputs": {
+ "hyprlang": [
+ "common",
+ "hyprland",
+ "hyprlang"
+ ],
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1753964049,
+ "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
+ "owner": "hyprwm",
+ "repo": "hyprcursor",
+ "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprcursor",
+ "type": "github"
+ }
+ },
+ "hyprgraphics": {
+ "inputs": {
+ "hyprutils": [
+ "common",
+ "hyprland",
+ "hyprutils"
+ ],
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1758192433,
+ "narHash": "sha256-CR6RnqEJSTiFgA6KQY4TTLUWbZ8RBnb+hxQqesuQNzQ=",
+ "owner": "hyprwm",
+ "repo": "hyprgraphics",
+ "rev": "c44e749dd611521dee940d00f7c444ee0ae4cfb7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprgraphics",
+ "type": "github"
+ }
+ },
+ "hyprland": {
+ "inputs": {
+ "aquamarine": "aquamarine",
+ "hyprcursor": "hyprcursor",
+ "hyprgraphics": "hyprgraphics",
+ "hyprland-protocols": "hyprland-protocols",
+ "hyprland-qtutils": "hyprland-qtutils",
+ "hyprlang": "hyprlang",
+ "hyprutils": "hyprutils",
+ "hyprwayland-scanner": "hyprwayland-scanner",
+ "nixpkgs": "nixpkgs_2",
+ "pre-commit-hooks": "pre-commit-hooks",
+ "systems": "systems",
+ "xdph": "xdph"
+ },
+ "locked": {
+ "lastModified": 1759076381,
+ "narHash": "sha256-ZWAsJnJvjjLMjH6hl5o4zVOTEuL3tmBzaJcoQYJE+aE=",
+ "owner": "hyprwm",
+ "repo": "Hyprland",
+ "rev": "c30036bdacbe5e87b49d6de6df652d56681ef457",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "Hyprland",
+ "type": "github"
+ }
+ },
+ "hyprland-protocols": {
+ "inputs": {
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1749046714,
+ "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "type": "github"
+ }
+ },
+ "hyprland-qt-support": {
+ "inputs": {
+ "hyprlang": [
+ "common",
+ "hyprland",
+ "hyprland-qtutils",
+ "hyprlang"
+ ],
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "hyprland-qtutils",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "hyprland-qtutils",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1749154592,
+ "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
+ "owner": "hyprwm",
+ "repo": "hyprland-qt-support",
+ "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-qt-support",
+ "type": "github"
+ }
+ },
+ "hyprland-qtutils": {
+ "inputs": {
+ "hyprland-qt-support": "hyprland-qt-support",
+ "hyprlang": [
+ "common",
+ "hyprland",
+ "hyprlang"
+ ],
+ "hyprutils": [
+ "common",
+ "hyprland",
+ "hyprland-qtutils",
+ "hyprlang",
+ "hyprutils"
+ ],
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1757694755,
+ "narHash": "sha256-j+w5QUUr2QT/jkxgVKecGYV8J7fpzXCMgzEEr6LG9ug=",
+ "owner": "hyprwm",
+ "repo": "hyprland-qtutils",
+ "rev": "5ffdfc13ed03df1dae5084468d935f0a3f2c9a4c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-qtutils",
+ "type": "github"
+ }
+ },
+ "hyprlang": {
+ "inputs": {
+ "hyprutils": [
+ "common",
+ "hyprland",
+ "hyprutils"
+ ],
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1756810301,
+ "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=",
+ "owner": "hyprwm",
+ "repo": "hyprlang",
+ "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprlang",
+ "type": "github"
+ }
+ },
+ "hyprutils": {
+ "inputs": {
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1756117388,
+ "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
+ "owner": "hyprwm",
+ "repo": "hyprutils",
+ "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprutils",
+ "type": "github"
+ }
+ },
+ "hyprwayland-scanner": {
+ "inputs": {
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1755184602,
+ "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
+ "owner": "hyprwm",
+ "repo": "hyprwayland-scanner",
+ "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprwayland-scanner",
+ "type": "github"
+ }
+ },
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
@@ -189,6 +547,22 @@
}
},
"nixpkgs_2": {
+ "locked": {
+ "lastModified": 1758198701,
+ "narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_3": {
"locked": {
"lastModified": 1741379970,
"narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=",
@@ -204,7 +578,7 @@
"type": "github"
}
},
- "nixpkgs_3": {
+ "nixpkgs_4": {
"locked": {
"lastModified": 1758589230,
"narHash": "sha256-zMTCFGe8aVGTEr2RqUi/QzC1nOIQ0N1HRsbqB4f646k=",
@@ -220,7 +594,7 @@
"type": "github"
}
},
- "nixpkgs_4": {
+ "nixpkgs_5": {
"locked": {
"lastModified": 1757952092,
"narHash": "sha256-BcfTLFCU7elUJ2dwyt0iTjxsz/XLh+8ZygDcFwy6xPE=",
@@ -1115,12 +1489,36 @@
"type": "github"
}
},
+ "pre-commit-hooks": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1758108966,
+ "narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "type": "github"
+ }
+ },
"ragenix": {
"inputs": {
"agenix": "agenix",
"crane": "crane",
"flake-utils": "flake-utils",
- "nixpkgs": "nixpkgs_2",
+ "nixpkgs": "nixpkgs_3",
"rust-overlay": "rust-overlay"
},
"locked": {
@@ -1140,14 +1538,14 @@
"root": {
"inputs": {
"common": "common",
- "nixpkgs": "nixpkgs_3",
+ "nixpkgs": "nixpkgs_4",
"nixpkgs-unstable": "nixpkgs-unstable",
"ros_neovim": "ros_neovim"
}
},
"ros_neovim": {
"inputs": {
- "nixpkgs": "nixpkgs_4",
+ "nixpkgs": "nixpkgs_5",
"nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim",
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim",
"nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring",
@@ -1264,16 +1662,16 @@
},
"systems": {
"locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "lastModified": 1689347949,
+ "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "repo": "default-linux",
+ "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
- "repo": "default",
+ "repo": "default-linux",
"type": "github"
}
},
@@ -1291,6 +1689,68 @@
"repo": "default",
"type": "github"
}
+ },
+ "systems_3": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "xdph": {
+ "inputs": {
+ "hyprland-protocols": [
+ "common",
+ "hyprland",
+ "hyprland-protocols"
+ ],
+ "hyprlang": [
+ "common",
+ "hyprland",
+ "hyprlang"
+ ],
+ "hyprutils": [
+ "common",
+ "hyprland",
+ "hyprutils"
+ ],
+ "hyprwayland-scanner": [
+ "common",
+ "hyprland",
+ "hyprwayland-scanner"
+ ],
+ "nixpkgs": [
+ "common",
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "common",
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1755354946,
+ "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
+ "owner": "hyprwm",
+ "repo": "xdg-desktop-portal-hyprland",
+ "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "xdg-desktop-portal-hyprland",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/hosts/oren/flake.nix b/hosts/oren/flake.nix
index 4a204db..3a82e1d 100644
--- a/hosts/oren/flake.nix
+++ b/hosts/oren/flake.nix
@@ -31,10 +31,15 @@
ros_neovim.nixosModules.default
./configuration.nix
./hardware-configuration.nix
- ./sway_customizations.nix
+ # ./sway_customizations.nix
+ ./hyprland_customizations.nix
(
{ config, pkgs, ... }:
{
+ services.devmon.enable = true;
+ services.gvfs.enable = true;
+ services.udisks2.enable = true;
+
networking = {
firewall = {
allowedTCPPorts = [
@@ -87,7 +92,7 @@
reporting.enable = true;
};
secrets.enable = true;
- desktopEnvironment.sway = {
+ desktopEnvironment.hyprland = {
enable = true;
waybar.enable = true;
swaync.enable = true;
diff --git a/hosts/oren/hyprland_customizations.nix b/hosts/oren/hyprland_customizations.nix
new file mode 100644
index 0000000..9c5d114
--- /dev/null
+++ b/hosts/oren/hyprland_customizations.nix
@@ -0,0 +1,30 @@
+{ lib, pkgs, ... }:
+let
+ hyprlandExtraOptions = {
+ exec-once = [
+ # Wait a moment for monitors/workspaces to settle, then "prime" 6 and return to 1
+ "sh -lc 'sleep 0.2; hyprctl dispatch workspace 1'"
+ ];
+ monitor = [
+ "eDP-1,2560x1600@165.000Hz,0x0,1.666667,transform,0"
+ ];
+ };
+in
+{
+ options = { };
+
+ config = {
+ ringofstorms_common.desktopEnvironment.hyprland.extraOptions = hyprlandExtraOptions;
+ ringofstorms_common.desktopEnvironment.hyprland.hyprpaperSettings = {
+ mode = "fill"; # Wallpaper display mode: fill, fit, stretch, center, tile
+
+ preload = [
+ "${../_shared_assets/wallpapers/pixel_neon.png}"
+ ];
+
+ wallpaper = [
+ "eDP-1,${../_shared_assets/wallpapers/pixel_neon.png}"
+ ];
+ };
+ };
+}