diff --git a/assets/avatar.jpg b/assets/avatar.jpg new file mode 100644 index 0000000..894d31b Binary files /dev/null and b/assets/avatar.jpg differ diff --git a/modules/desktop/style/wallpaper.png b/assets/wallpaper.png similarity index 100% rename from modules/desktop/style/wallpaper.png rename to assets/wallpaper.png diff --git a/flake.lock b/flake.lock index 9da4c99..c832550 100644 --- a/flake.lock +++ b/flake.lock @@ -969,6 +969,30 @@ "type": "github" } }, + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "quickshell": [ + "quickshell" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1760714359, + "narHash": "sha256-SveT35nrv8qLnxKHp8MLXaY0rVd9BFhVOAn3WR79S84=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "bda54677e1724054c3676da8f049c61378790b3a", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "type": "github" + } + }, "nur": { "inputs": { "flake-parts": [ @@ -1011,6 +1035,26 @@ "url": "ssh://git@git.imxyy.top:2222/imxyy1soope1/HF-plant.git" } }, + "quickshell": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1760315601, + "narHash": "sha256-cvguRikKX0yXZ7jaK4Gt3qB1I33T5TzYZQf0Ampx8ko=", + "owner": "outfoxxed", + "repo": "quickshell", + "rev": "00858812f25b748d08b075a0d284093685fa3ffd", + "type": "github" + }, + "original": { + "owner": "outfoxxed", + "repo": "quickshell", + "type": "github" + } + }, "root": { "inputs": { "catppuccin": "catppuccin", @@ -1030,7 +1074,9 @@ "nixpkgs-master": "nixpkgs-master", "nixpkgs-stable": "nixpkgs-stable_2", "nixpkgs-unstable": "nixpkgs-unstable", + "noctalia": "noctalia", "plant": "plant", + "quickshell": "quickshell", "sops-nix": "sops-nix", "stylix": "stylix", "zen": "zen" diff --git a/flake.nix b/flake.nix index fed93b1..5328220 100644 --- a/flake.nix +++ b/flake.nix @@ -62,6 +62,16 @@ zen.url = "github:0xc000022070/zen-browser-flake"; zen.inputs.nixpkgs.follows = "nixpkgs"; + quickshell = { + url = "github:outfoxxed/quickshell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + noctalia = { + url = "github:noctalia-dev/noctalia-shell"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.quickshell.follows = "quickshell"; # Use same quickshell version + }; + plant = { url = "git+ssh://git@git.imxyy.top:2222/imxyy1soope1/HF-plant.git?rev=08dc0b3889797eb3618c7475c3c367ec0e5fdf40"; flake = false; @@ -159,6 +169,8 @@ (final: prev: { darkly-qt5 = inputs.darkly.packages.${final.system}.darkly-qt5; darkly-qt6 = inputs.darkly.packages.${final.system}.darkly-qt6; + + noctalia-shell = inputs.noctalia.packages.${final.system}.default; }) (final: prev: { inherit lib; @@ -170,6 +182,7 @@ inputs.sops-nix.homeManagerModules.sops inputs.impermanence.nixosModules.home-manager.impermanence inputs.stylix.homeModules.stylix + inputs.noctalia.homeModules.default inputs.zen.homeModules.beta # workaround for annoying stylix ( @@ -195,6 +208,14 @@ outputs hostname ; + assets = + with lib.haumea; + load { + src = ./assets; + loader = [ + (matchers.always loaders.path) + ]; + }; secrets = with lib.haumea; load { diff --git a/modules/desktop/wm/niri/config.nix b/modules/desktop/wm/niri/config.nix index 2df3b25..5093acd 100644 --- a/modules/desktop/wm/niri/config.nix +++ b/modules/desktop/wm/niri/config.nix @@ -2,6 +2,7 @@ config, lib, pkgs, + assets, ... }: { @@ -102,16 +103,16 @@ XDG_SESSION_DESKTOP = "niri"; NIXOS_OZONE_WL = "1"; + NOCTALIA_SETTINGS_FALLBACK = "${config.my.hm.xdg.configHome}/noctalia/gui-settings.json"; }; spawn-at-startup = map (c: { command = c; }) [ - [ "${lib.getExe' pkgs.swaynotificationcenter "swaync"}" ] [ "${lib.getExe pkgs.swaybg}" "-m" "fill" "-i" - (toString ./wallpaper.png) + (toString assets.wallpaper) ] [ "wl-paste" @@ -129,6 +130,8 @@ "cliphist" "store" ] + # [ "${lib.getExe' pkgs.swaynotificationcenter "swaync"}" ] + [ "noctalia-shell" ] ]; binds = diff --git a/modules/desktop/wm/niri/default.nix b/modules/desktop/wm/niri/default.nix index 8d094dc..482afd3 100644 --- a/modules/desktop/wm/niri/default.nix +++ b/modules/desktop/wm/niri/default.nix @@ -2,6 +2,7 @@ args@{ lib, config, pkgs, + assets, ... }: let @@ -63,6 +64,8 @@ in swaynotificationcenter nautilus + + noctalia-shell ]; programs.wofi.enable = true; xdg.configFile."wofi" = { @@ -75,12 +78,144 @@ in }; programs.waybar = { enable = true; - systemd.enable = true; + systemd.enable = false; }; xdg.configFile."waybar/config.jsonc".text = builtins.toJSON (import ./waybar/config.nix args); xdg.configFile."waybar/style.css" = { source = ./waybar/style.css; }; + + programs.noctalia-shell = { + enable = true; + settings = { + audio.mprisBlacklist = [ + "firefox" + "chromium" + "zen" + ]; + bar = { + density = "comfortable"; + floating = true; + marginHorizontal = 0.5; + marginVertical = 0.5; + showCapsule = false; + widgets = { + left = [ + { + customIconPath = ""; + icon = ""; + id = "ControlCenter"; + useDistroLogo = true; + } + { + customFont = ""; + formatHorizontal = "HH:mm MM月dd日 ddd"; + formatVertical = "HH mm - dd MM"; + id = "Clock"; + useCustomFont = false; + usePrimaryColor = true; + } + { + id = "SystemMonitor"; + showCpuTemp = false; + showCpuUsage = true; + showDiskUsage = false; + showMemoryAsPercent = false; + showMemoryUsage = true; + showNetworkStats = true; + } + { + hideUnoccupied = false; + id = "Workspace"; + labelMode = "none"; + } + ]; + center = [ + { + hideMode = "hidden"; + id = "MediaMini"; + scrollingMode = "hover"; + showAlbumArt = true; + showVisualizer = true; + visualizerType = "wave"; + } + ]; + right = [ + { + hideWhenZero = true; + id = "NotificationHistory"; + showUnreadBadge = true; + } + { + blacklist = [ ]; + colorizeIcons = false; + id = "Tray"; + } + { + displayMode = "onhover"; + id = "Volume"; + } + { + displayMode = "onhover"; + id = "Microphone"; + } + ]; + }; + }; + # FIXME: Customize + colorSchemes.predefinedScheme = "Tokyo-Night"; + controlCenter = { + cards = [ + { + enabled = true; + id = "profile-card"; + } + { + enabled = true; + id = "shortcuts-card"; + } + { + enabled = true; + id = "audio-card"; + } + { + enabled = false; + id = "weather-card"; + } + { + enabled = true; + id = "media-sysmon-card"; + } + ]; + shortcuts = { + left = [ { id = "Bluetooth"; } ]; + right = [ { id = "Notifications"; } ]; + }; + }; + general = { + avatarImage = "${assets.avatar}"; + scaleRatio = 1.05; + radiusRatio = 0.8; + }; + location.weatherEnabled = false; + network.wifiEnabled = false; + notifications = { + alwaysOnTop = true; + location = "top_center"; + }; + osd = { + alwaysOnTop = true; + location = "top_center"; + }; + setupCompleted = true; + ui = { + # I love Jetbrains Mono + fontDefault = "Monospace"; + fontFixed = "Monospace"; + }; + wallpaper.enabled = false; + }; + }; }; }; -} +} \ No newline at end of file diff --git a/modules/desktop/wm/niri/wallpaper.png b/modules/desktop/wm/niri/wallpaper.png deleted file mode 100644 index 8e439ac..0000000 Binary files a/modules/desktop/wm/niri/wallpaper.png and /dev/null differ