diff --git a/flake.lock b/flake.lock index bf4b64a..8158b78 100644 --- a/flake.lock +++ b/flake.lock @@ -360,11 +360,29 @@ "type": "github" } }, + "musnix": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1756852730, + "narHash": "sha256-qPere4RBHoZxiEGl8zXU8gjroZg4gkYGEwaAbKmL4vE=", + "owner": "musnix", + "repo": "musnix", + "rev": "7ccc92050e43dc92309396c6f2fe1f542214a242", + "type": "github" + }, + "original": { + "owner": "musnix", + "repo": "musnix", + "type": "github" + } + }, "niri": { "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" @@ -457,6 +475,22 @@ "type": "github" } }, + "nix-mineral": { + "flake": false, + "locked": { + "lastModified": 1757365535, + "narHash": "sha256-s4YK7Ey2LJFLIAONWVXM3X+xdAIbjFgdK2s6lxmMIrQ=", + "owner": "cynicsketch", + "repo": "nix-mineral", + "rev": "b76cc19351f159cd360d8ceea3ba9aff8fce6c6e", + "type": "github" + }, + "original": { + "owner": "cynicsketch", + "repo": "nix-mineral", + "type": "github" + } + }, "nixos-hardware": { "locked": { "lastModified": 1757103352, @@ -588,6 +622,22 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1756542300, + "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1757347588, "narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=", @@ -603,7 +653,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1757347588, "narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=", @@ -671,10 +721,12 @@ "determinate": "determinate", "firefox-addons": "firefox-addons", "home-manager": "home-manager", + "musnix": "musnix", "niri": "niri", "nix-index-db": "nix-index-db", + "nix-mineral": "nix-mineral", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "quickshell": "quickshell", "stylix": "stylix", "treefmt-nix": "treefmt-nix" diff --git a/flake.nix b/flake.nix index f5db403..2ac2e10 100644 --- a/flake.nix +++ b/flake.nix @@ -35,7 +35,11 @@ url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; - + musnix.url = "github:musnix/musnix"; + nix-mineral = { + url = "github:cynicsketch/nix-mineral"; + flake = false; + }; }; outputs = @@ -53,10 +57,12 @@ stylix, comin, firefox-addons, + musnix, + nix-mineral, }: let system = "x86_64-linux"; - pkgs = nixpkgs.legacyPackages.${system}; + pkgs = import nixpkgs { inherit system; }; lib = pkgs.lib; # Configure treefmt @@ -90,48 +96,90 @@ }; in { - packages.${system}.wallpapers = pkgs.stdenv.mkDerivation { - name = "wallpapers"; - src = ./assets; + packages.${system} = { + hello-kitty-cursors = pkgs.stdenv.mkDerivation { + pname = "hello-kitty-cursors"; + version = "1.0.0"; - buildInputs = with pkgs; [ ffmpeg ]; + src = pkgs.fetchzip { + url = "https://www.rw-designer.com/cursor-downloadset/hello-kitty.zip"; + sha256 = "sha256-p4US/gftDL0ne4l0dHUIKKZy2oibkOqdJ3fMisySnNM="; # Replace with the actual hash of the zip file + stripRoot = false; + }; - buildPhase = '' - # Create output directory - mkdir -p $out/share/wallpapers + installPhase = '' + mkdir -p $out/share/icons/HelloKitty + for file in ${self}/cursors/*; do + if [ -e "$file" ]; then + cp "$file" "$out/share/icons/HelloKitty/" + else + echo "Warning: File $file does not exist." + fi + done - # Copy static wallpaper - cp "wp6553608.jpg" "$out/share/wallpapers/static-wallpaper.jpg" + # Adjust the path to index.theme if necessary + if [ -e "${self}/index.theme" ]; then + cp "${self}/index.theme" "$out/share/icons/HelloKitty/" + else + echo "Warning: index.theme does not exist." + fi + ''; - # Copy original animated wallpaper - cp "Anime Live Wallpaper - Anime Cat Girl Snow - HD - no copyright [SiMc3l0ido0].mp4" \ - "$out/share/wallpapers/anime-cat-girl-snow.mp4" + meta = with nixpkgs.lib; { + description = "Hello Kitty Cursor theme"; + homepage = "https://www.rw-designer.com/cursor-downloadset/hello-kitty.zip"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ your-maintainer-name ]; # Replace with your name + }; + }; - # Create optimized version - ${pkgs.ffmpeg}/bin/ffmpeg -i "Anime Live Wallpaper - Anime Cat Girl Snow - HD - no copyright [SiMc3l0ido0].mp4" \ - -vf "scale=1920:1080:force_original_aspect_ratio=increase,crop=1920:1080" \ - -r 30 -c:v libx264 -crf 28 -preset medium \ - -t 30 -an "$out/share/wallpapers/anime-cat-girl-snow-optimized.mp4" - ''; + wallpapers = pkgs.stdenv.mkDerivation { + name = "wallpapers"; + src = ./assets; - installPhase = '' - # Files are already in the right place from buildPhase - echo "Wallpapers installed to $out/share/wallpapers" - ''; + buildInputs = with pkgs; [ ffmpeg ]; - meta = with lib; { - description = "Personal wallpaper collection"; - platforms = platforms.linux; + buildPhase = '' + # Create output directory + mkdir -p $out/share/wallpapers + + # Copy static wallpaper + cp "wp6553608.jpg" "$out/share/wallpapers/static-wallpaper.jpg" + + # Copy original animated wallpaper + cp "Anime Live Wallpaper - Anime Cat Girl Snow - HD - no copyright [SiMc3l0ido0].mp4" \ + "$out/share/wallpapers/anime-cat-girl-snow.mp4" + + # Create optimized version + ${pkgs.ffmpeg}/bin/ffmpeg -i "Anime Live Wallpaper - Anime Cat Girl Snow - HD - no copyright [SiMc3l0ido0].mp4" \ + -vf "scale=1920:1080:force_original_aspect_ratio=increase,crop=1920:1080" \ + -r 30 -c:v libx264 -crf 28 -preset medium \ + -t 30 -an "$out/share/wallpapers/anime-cat-girl-snow-optimized.mp4" + ''; + + installPhase = '' + # Files are already in the right place from buildPhase + echo "Wallpapers installed to $out/share/wallpapers" + ''; + + meta = with lib; { + description = "Personal wallpaper collection"; + platforms = platforms.linux; + }; }; }; + nixosConfigurations.p50 = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; system = "x86_64-linux"; modules = [ + "${nix-mineral}/nix-mineral.nix" niri.nixosModules.niri nixos-hardware.nixosModules.lenovo-thinkpad-p50 ./configuration.nix determinate.nixosModules.default + musnix.nixosModules.musnix + home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; @@ -149,6 +197,8 @@ { imports = [ ./modules/home.nix + ./modules/bottom.nix + ./modules/htop.nix ]; home.packages = with pkgs; [ @@ -166,12 +216,6 @@ inputs.self.packages.${pkgs.system}.wallpapers }/share/wallpapers/anime-cat-girl-snow-optimized.mp4"; }; - - # Configure dconf settings here or inside home.nix - # Example: - # home.sessionVariables = { - # XDG_CURRENT_DESKTOP = "GNOME"; - # }; }; } c3d2-user-module.nixosModule diff --git a/modules/bottom.nix b/modules/bottom.nix new file mode 100644 index 0000000..6bc27e3 --- /dev/null +++ b/modules/bottom.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + programs.bottom.enable = true; +} diff --git a/modules/fonts.nix b/modules/fonts.nix index 768afa2..19fb4d6 100644 --- a/modules/fonts.nix +++ b/modules/fonts.nix @@ -11,12 +11,8 @@ let packageNames = map (font: font.package) fonts; in { - fonts.packages = - with pkgs; - [ - iosevka - comic-mono - nerdfonts - ] - ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); + fonts.packages = with pkgs; [ + iosevka + comic-mono + ]; } diff --git a/modules/home.nix b/modules/home.nix index 4e7e0a3..0243033 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -1,8 +1,7 @@ -{ - config, - pkgs, - inputs, - ... +{ config +, pkgs +, inputs +, ... }: { imports = [ diff --git a/modules/htop.nix b/modules/htop.nix new file mode 100644 index 0000000..6f267d8 --- /dev/null +++ b/modules/htop.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + programs.htop.enable = true; +} diff --git a/modules/music.nix b/modules/music.nix new file mode 100644 index 0000000..35e389c --- /dev/null +++ b/modules/music.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + musnix.enable = true; +} diff --git a/modules/niri/settings.nix b/modules/niri/settings.nix index 5c76015..deed6c6 100644 --- a/modules/niri/settings.nix +++ b/modules/niri/settings.nix @@ -1,8 +1,9 @@ -{ config -, lib -, pkgs -, inputs -, ... +{ + config, + lib, + pkgs, + inputs, + ... }: let makeCommand = command: { @@ -11,10 +12,20 @@ let qs = "${pkgs.quickshell}/bin/qs"; wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste"; wallpapers = inputs.self.packages.${pkgs.system}.wallpapers; + helloKittyCursor = pkgs.fetchzip { + url = "https://www.rw-designer.com/cursor-downloadset/hello-kitty.zip"; + hash = ""; + }; in { programs.niri.settings = { + cursor = { + theme = "Hello-Kitty"; # Set the cursor theme + size = 48; # Set the cursor size in logical pixels + hide-after-inactive-ms = 1000; # Hide cursor after 1 second of inactivity + hide-when-typing = true; # Hide cursor when typing + }; environment = { CLUTTER_BACKEND = "wayland"; DISPLAY = ":0"; diff --git a/modules/nushell.nix b/modules/nushell.nix index 0e70e88..e682a5b 100644 --- a/modules/nushell.nix +++ b/modules/nushell.nix @@ -97,8 +97,6 @@ in fg = "job unfreeze"; nano = hx; vi = hx; - nvim = hx; - vim = hx; devenv-init = "${nix} flake init --template github:cachix/devenv"; devenv-enter = "${nix} develop --impure"; rust-init = "${nix} flake init --template templates#rust";