From 2369c0d37e69e07888dc0ee08292dba1e7e5ac31 Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Sat, 14 Jun 2025 15:30:42 +0800 Subject: [PATCH] feat(desktop): move status-bar config to homes and use home-manager modules --- homes/x86_64-linux/rafiq/default.nix | 11 +++- homes/x86_64-linux/rafiq/desktop/default.nix | 2 + .../x86_64-linux/rafiq/desktop/status-bar.nix | 50 +++++++++++++++ modules/home/desktop/status-bar/default.nix | 61 ------------------- modules/nixos/desktop/default.nix | 1 - modules/nixos/desktop/status-bar/default.nix | 12 ++++ systems/x86_64-linux/desktop.nix | 2 +- 7 files changed, 75 insertions(+), 64 deletions(-) create mode 100644 homes/x86_64-linux/rafiq/desktop/status-bar.nix delete mode 100644 modules/home/desktop/status-bar/default.nix create mode 100644 modules/nixos/desktop/status-bar/default.nix diff --git a/homes/x86_64-linux/rafiq/default.nix b/homes/x86_64-linux/rafiq/default.nix index 07d8c02..3f5a40e 100644 --- a/homes/x86_64-linux/rafiq/default.nix +++ b/homes/x86_64-linux/rafiq/default.nix @@ -27,7 +27,16 @@ let in { config = mkMerge [ - (mkIf osConfig.desktop.enable (import ./desktop { inherit lib inputs system; })) + (mkIf osConfig.desktop.enable ( + import ./desktop { + inherit + lib + inputs + system + pkgs + ; + } + )) (mkIf osConfig.desktop.enable { home.persistence."/persist/home/rafiq".directories = [ "docs" diff --git a/homes/x86_64-linux/rafiq/desktop/default.nix b/homes/x86_64-linux/rafiq/desktop/default.nix index dcb265a..f94c7c4 100644 --- a/homes/x86_64-linux/rafiq/desktop/default.nix +++ b/homes/x86_64-linux/rafiq/desktop/default.nix @@ -1,4 +1,5 @@ { + pkgs, lib, inputs, system, @@ -12,4 +13,5 @@ mkMerge [ (import ./lockscreen.nix) (import ./launcher.nix) (import ./media-player.nix) + (import ./status-bar.nix { inherit pkgs; }) ] diff --git a/homes/x86_64-linux/rafiq/desktop/status-bar.nix b/homes/x86_64-linux/rafiq/desktop/status-bar.nix new file mode 100644 index 0000000..e8426da --- /dev/null +++ b/homes/x86_64-linux/rafiq/desktop/status-bar.nix @@ -0,0 +1,50 @@ +{ pkgs, ... }: +{ + home.sessionVariables.STATUS_BAR = "waybar"; + programs.waybar = { + settings = [ + { + layer = "top"; + modules-left = [ + "pulseaudio" + ]; + modules-right = [ + "battery" + "clock" + ]; + "pulseaudio" = { + format = "{icon} {volume}%"; + format-muted = ""; + format-icons.default = [ + "" + "" + ]; + on-click = "${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle"; + }; + "clock" = { + interval = 1; + format = "{:%F %T}"; + }; + "battery" = { + interval = 1; + bat-compatibility = true; + }; + } + ]; + style = # css + '' + window#waybar { + background-color: rgba(0, 0, 0, 0); + } + + #pulseaudio, + #battery, + #clock { + padding-top: 5px; + padding-bottom: 5px; + padding-right: 5px; + color: #ffffff; + } + ''; + }; +} diff --git a/modules/home/desktop/status-bar/default.nix b/modules/home/desktop/status-bar/default.nix deleted file mode 100644 index 6e954cb..0000000 --- a/modules/home/desktop/status-bar/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ - pkgs, - config, - lib, - osConfig, - ... -}: -{ - config = lib.mkMerge [ - (lib.mkIf (osConfig.desktop.status-bar == "waybar") { - home.sessionVariables.STATUS_BAR = "waybar"; - programs.waybar = { - enable = true; - settings = [ - { - layer = "top"; - modules-left = [ - "pulseaudio" - ]; - modules-right = [ - "battery" - "clock" - ]; - "pulseaudio" = { - format = "{icon} {volume}%"; - format-muted = ""; - format-icons.default = [ - "" - "" - ]; - on-click = "${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle"; - }; - "clock" = { - interval = 1; - format = "{:%F %T}"; - }; - "battery" = { - interval = 1; - bat-compatibility = true; - }; - } - ]; - style = # css - '' - window#waybar { - background-color: rgba(0, 0, 0, 0); - } - - #pulseaudio, - #battery, - #clock { - padding-top: 5px; - padding-bottom: 5px; - padding-right: 5px; - color: #ffffff; - } - ''; - }; - }) - ]; -} diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index 3a9f69e..560ce16 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -23,7 +23,6 @@ in }; windowManager = lib.pantheon.mkStrOption; terminal = lib.pantheon.mkStrOption; - status-bar = lib.pantheon.mkStrOption; enableSpotifyd = lib.mkEnableOption ""; enableSteam = lib.mkEnableOption ""; enableVR = lib.mkEnableOption ""; diff --git a/modules/nixos/desktop/status-bar/default.nix b/modules/nixos/desktop/status-bar/default.nix new file mode 100644 index 0000000..d552ed7 --- /dev/null +++ b/modules/nixos/desktop/status-bar/default.nix @@ -0,0 +1,12 @@ +{ config, lib, ... }: +let + inherit (lib) mkEnableOption singleton; + cfg = config.desktop.status-bar; +in +{ + options.desktop.status-bar = { + waybar.enable = mkEnableOption ""; + }; + + config.home-manager.sharedModules = singleton { programs.waybar.enable = cfg.waybar.enable; }; +} diff --git a/systems/x86_64-linux/desktop.nix b/systems/x86_64-linux/desktop.nix index eaa8fca..fe79312 100644 --- a/systems/x86_64-linux/desktop.nix +++ b/systems/x86_64-linux/desktop.nix @@ -6,9 +6,9 @@ launcher.fuzzel.enable = true; media-player.vlc.enable = true; notification-daemon.mako.enable = true; + status-bar.waybar.enable = true; windowManager = "hyprland"; terminal = "ghostty"; - status-bar = "waybar"; mainMonitor = { id = "desc:OOO AN-270W04K"; scale = "2";