diff --git a/home/jonas/home.nix b/home/jonas/home.nix
index 98a6b53..e5bf586 100644
--- a/home/jonas/home.nix
+++ b/home/jonas/home.nix
@@ -7,9 +7,10 @@
./borg.nix
./doom.nix
./firefox.nix
- ./hyprland.nix
+ ./hyprland
./plasma.nix
./ssh.nix
+ ./waybar
./yubikey.nix
./zsh.nix
];
diff --git a/home/jonas/hyprland.nix b/home/jonas/hyprland/config.nix
similarity index 58%
rename from home/jonas/hyprland.nix
rename to home/jonas/hyprland/config.nix
index 3c75f26..9883bba 100644
--- a/home/jonas/hyprland.nix
+++ b/home/jonas/hyprland/config.nix
@@ -1,150 +1,13 @@
{
- inputs,
config,
pkgs,
+ lib,
...
}: {
- programs.rofi.enable = true;
- home.packages = [
- pkgs.kitty
- pkgs.pulsemixer
- pkgs.pavucontrol
- pkgs.qpaeq
- ];
-
- programs.wpaperd = {
- enable = true;
- settings = {
- default = {
- path = ./static/wallpaper/nord.png;
- };
- };
- };
-
- programs.waybar.enable = true;
- programs.waybar.settings.mainBar = {
- position = "top";
- layer = "top";
- height = 5;
- margin-top = 0;
- margin-bottom = 0;
- margin-left = 0;
- margin-right = 0;
- modules-left = [
- "custom/launcher"
- "hyprland/workspaces"
- ];
- modules-center = [
- "hyprland/window"
- ];
- modules-right = [
- "clock"
- "cpu"
- "memory"
- "disk"
- "battery"
- "network"
- "tray"
- ];
- clock = {
- calendar = {
- format = {today = "{}";};
- };
- format = " {:%H:%M}";
- tooltip = "true";
- tooltip-format = "{:%Y %B}\n{calendar}";
- format-alt = " {:%d/%m}";
- };
- "hyprland/workspaces" = {
- active-only = false;
- disable-scroll = true;
- format = "{icon}";
- on-click = "activate";
- format-icons = {
- "1" = "";
- "2" = "";
- "3" = "";
- "4" = "";
- "5" = "";
- "6" = "";
- urgent = "";
- default = "";
- sort-by-number = true;
- };
- persistent-workspaces = {
- "1" = [];
- "2" = [];
- "3" = [];
- "4" = [];
- "5" = [];
- };
- };
- memory = {
- format = " {}%";
- format-alt = " {used} GiB"; #
- interval = 2;
- };
- cpu = {
- format = " {usage}%";
- format-alt = " {avg_frequency} GHz";
- interval = 2;
- };
- disk = {
- # path = "/";
- format = " {percentage_used}%";
- interval = 60;
- };
- network = {
- format-wifi = " {signalStrength}%";
- format-ethernet = " ";
- tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
- format-linked = "{ifname} (No IP)";
- format-disconnected = " ";
- };
- tray = {
- icon-size = 20;
- spacing = 8;
- };
- pulseaudio = {
- format = "{icon} {volume}%";
- format-muted = " {volume}%";
- format-icons = {
- default = [" "];
- };
- scroll-step = 5;
- on-click = "pamixer -t";
- };
- battery = {
- format = "{icon} {capacity}%";
- format-icons = [" " " " " " " " " "];
- format-charging = " {capacity}%";
- format-full = " {capacity}%";
- format-warning = " {capacity}%";
- interval = 5;
- states = {
- warning = 20;
- };
- format-time = "{H}h{M}m";
- tooltip = true;
- tooltip-format = "{time}";
- };
- "custom/launcher" = {
- format = "";
- on-click = "${pkgs.rofi}/bin/rofi -show drun";
- tooltip = "false";
- };
- };
-
- wayland.windowManager.hyprland = {
- enable = true;
- systemd.variables = ["--all"];
- xwayland.enable = true;
+ wayland.windowManager.hyprland = lib.mkIf config.wayland.windowManager.hyprland.enable {
settings = {
exec-once = [
"${pkgs.wpaperd}/bin/wpaperd &"
- "${pkgs.waybar}/bin/waybar &"
- "${pkgs.networkmanagerapplet}/bin/nm-applet &"
- "${pkgs.pasystray}/bin/pasystray &"
];
"$mod" = "SUPER";
diff --git a/home/jonas/hyprland/default.nix b/home/jonas/hyprland/default.nix
new file mode 100644
index 0000000..fbd3986
--- /dev/null
+++ b/home/jonas/hyprland/default.nix
@@ -0,0 +1,6 @@
+{...}: {
+ imports = [
+ ./config.nix
+ ./hyprland.nix
+ ];
+}
diff --git a/home/jonas/hyprland/hyprland.nix b/home/jonas/hyprland/hyprland.nix
new file mode 100644
index 0000000..fb570eb
--- /dev/null
+++ b/home/jonas/hyprland/hyprland.nix
@@ -0,0 +1,20 @@
+{
+ config,
+ pkgs,
+ ...
+}: {
+ wayland.windowManager.hyprland = {
+ enable = true;
+ systemd.variables = ["--all"];
+ xwayland.enable = true;
+ };
+
+ programs.wpaperd = {
+ enable = true;
+ settings = {
+ default = {
+ path = ../static/wallpaper/nord.png;
+ };
+ };
+ };
+}
diff --git a/home/jonas/waybar/config.nix b/home/jonas/waybar/config.nix
new file mode 100644
index 0000000..1c663c1
--- /dev/null
+++ b/home/jonas/waybar/config.nix
@@ -0,0 +1,131 @@
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}: let
+ for_hyprland = config.programs.waybar.enable && config.wayland.windowManager.hyprland.enable;
+in {
+ wayland.windowManager.hyprland = lib.mkIf for_hyprland {
+ settings = {
+ exec-once = [
+ "${pkgs.waybar}/bin/waybar &"
+ "${pkgs.networkmanagerapplet}/bin/nm-applet &"
+ "${pkgs.pasystray}/bin/pasystray &"
+ ];
+ };
+ };
+
+ programs.waybar.settings.mainBar = lib.mkIf for_hyprland {
+ position = "top";
+ layer = "top";
+ height = 5;
+ margin-top = 0;
+ margin-bottom = 0;
+ margin-left = 0;
+ margin-right = 0;
+ modules-left = [
+ "custom/launcher"
+ "hyprland/workspaces"
+ ];
+ modules-center = [
+ "hyprland/window"
+ ];
+ modules-right = [
+ "clock"
+ "cpu"
+ "memory"
+ "disk"
+ "battery"
+ "network"
+ "tray"
+ ];
+ clock = {
+ calendar = {
+ format = {today = "{}";};
+ };
+ format = " {:%H:%M}";
+ tooltip = "true";
+ tooltip-format = "{:%Y %B}\n{calendar}";
+ format-alt = " {:%d/%m}";
+ };
+ "hyprland/workspaces" = {
+ active-only = false;
+ disable-scroll = true;
+ format = "{icon}";
+ on-click = "activate";
+ format-icons = {
+ "1" = "";
+ "2" = "";
+ "3" = "";
+ "4" = "";
+ "5" = "";
+ "6" = "";
+ urgent = "";
+ default = "";
+ sort-by-number = true;
+ };
+ persistent-workspaces = {
+ "1" = [];
+ "2" = [];
+ "3" = [];
+ "4" = [];
+ "5" = [];
+ };
+ };
+ memory = {
+ format = " {}%";
+ format-alt = " {used} GiB"; #
+ interval = 2;
+ };
+ cpu = {
+ format = " {usage}%";
+ format-alt = " {avg_frequency} GHz";
+ interval = 2;
+ };
+ disk = {
+ # path = "/";
+ format = " {percentage_used}%";
+ interval = 60;
+ };
+ network = {
+ format-wifi = " {signalStrength}%";
+ format-ethernet = " ";
+ tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
+ format-linked = "{ifname} (No IP)";
+ format-disconnected = " ";
+ };
+ tray = {
+ icon-size = 20;
+ spacing = 8;
+ };
+ pulseaudio = {
+ format = "{icon} {volume}%";
+ format-muted = " {volume}%";
+ format-icons = {
+ default = [" "];
+ };
+ scroll-step = 5;
+ on-click = "pamixer -t";
+ };
+ battery = {
+ format = "{icon} {capacity}%";
+ format-icons = [" " " " " " " " " "];
+ format-charging = " {capacity}%";
+ format-full = " {capacity}%";
+ format-warning = " {capacity}%";
+ interval = 5;
+ states = {
+ warning = 20;
+ };
+ format-time = "{H}h{M}m";
+ tooltip = true;
+ tooltip-format = "{time}";
+ };
+ "custom/launcher" = {
+ format = "";
+ on-click = "${pkgs.rofi}/bin/rofi -show drun";
+ tooltip = "false";
+ };
+ };
+}
diff --git a/home/jonas/waybar/default.nix b/home/jonas/waybar/default.nix
new file mode 100644
index 0000000..664dd7a
--- /dev/null
+++ b/home/jonas/waybar/default.nix
@@ -0,0 +1,6 @@
+{...}: {
+ imports = [
+ ./waybar.nix
+ ./config.nix
+ ];
+}
diff --git a/home/jonas/waybar/waybar.nix b/home/jonas/waybar/waybar.nix
new file mode 100644
index 0000000..dc49b46
--- /dev/null
+++ b/home/jonas/waybar/waybar.nix
@@ -0,0 +1,7 @@
+{
+ config,
+ pkgs,
+ ...
+}: {
+ programs.waybar.enable = true;
+}