This commit is contained in:
Lucy von Overheidt 2025-09-09 23:43:59 +02:00
parent 44d708329a
commit 7dd32c7a17
9 changed files with 168 additions and 56 deletions

58
flake.lock generated
View file

@ -360,11 +360,29 @@
"type": "github" "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": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
"niri-unstable": "niri-unstable", "niri-unstable": "niri-unstable",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
@ -457,6 +475,22 @@
"type": "github" "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": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1757103352, "lastModified": 1757103352,
@ -588,6 +622,22 @@
} }
}, },
"nixpkgs_4": { "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": { "locked": {
"lastModified": 1757347588, "lastModified": 1757347588,
"narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=", "narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=",
@ -603,7 +653,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1757347588, "lastModified": 1757347588,
"narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=", "narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=",
@ -671,10 +721,12 @@
"determinate": "determinate", "determinate": "determinate",
"firefox-addons": "firefox-addons", "firefox-addons": "firefox-addons",
"home-manager": "home-manager", "home-manager": "home-manager",
"musnix": "musnix",
"niri": "niri", "niri": "niri",
"nix-index-db": "nix-index-db", "nix-index-db": "nix-index-db",
"nix-mineral": "nix-mineral",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_6",
"quickshell": "quickshell", "quickshell": "quickshell",
"stylix": "stylix", "stylix": "stylix",
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"

110
flake.nix
View file

@ -35,7 +35,11 @@
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
musnix.url = "github:musnix/musnix";
nix-mineral = {
url = "github:cynicsketch/nix-mineral";
flake = false;
};
}; };
outputs = outputs =
@ -53,10 +57,12 @@
stylix, stylix,
comin, comin,
firefox-addons, firefox-addons,
musnix,
nix-mineral,
}: }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = import nixpkgs { inherit system; };
lib = pkgs.lib; lib = pkgs.lib;
# Configure treefmt # Configure treefmt
@ -90,48 +96,90 @@
}; };
in in
{ {
packages.${system}.wallpapers = pkgs.stdenv.mkDerivation { packages.${system} = {
name = "wallpapers"; hello-kitty-cursors = pkgs.stdenv.mkDerivation {
src = ./assets; 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 = '' installPhase = ''
# Create output directory mkdir -p $out/share/icons/HelloKitty
mkdir -p $out/share/wallpapers 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 # Adjust the path to index.theme if necessary
cp "wp6553608.jpg" "$out/share/wallpapers/static-wallpaper.jpg" 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 meta = with nixpkgs.lib; {
cp "Anime Live Wallpaper - Anime Cat Girl Snow - HD - no copyright [SiMc3l0ido0].mp4" \ description = "Hello Kitty Cursor theme";
"$out/share/wallpapers/anime-cat-girl-snow.mp4" 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 wallpapers = pkgs.stdenv.mkDerivation {
${pkgs.ffmpeg}/bin/ffmpeg -i "Anime Live Wallpaper - Anime Cat Girl Snow - HD - no copyright [SiMc3l0ido0].mp4" \ name = "wallpapers";
-vf "scale=1920:1080:force_original_aspect_ratio=increase,crop=1920:1080" \ src = ./assets;
-r 30 -c:v libx264 -crf 28 -preset medium \
-t 30 -an "$out/share/wallpapers/anime-cat-girl-snow-optimized.mp4"
'';
installPhase = '' buildInputs = with pkgs; [ ffmpeg ];
# Files are already in the right place from buildPhase
echo "Wallpapers installed to $out/share/wallpapers"
'';
meta = with lib; { buildPhase = ''
description = "Personal wallpaper collection"; # Create output directory
platforms = platforms.linux; 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 { nixosConfigurations.p50 = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; }; specialArgs = { inherit inputs; };
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
"${nix-mineral}/nix-mineral.nix"
niri.nixosModules.niri niri.nixosModules.niri
nixos-hardware.nixosModules.lenovo-thinkpad-p50 nixos-hardware.nixosModules.lenovo-thinkpad-p50
./configuration.nix ./configuration.nix
determinate.nixosModules.default determinate.nixosModules.default
musnix.nixosModules.musnix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
@ -149,6 +197,8 @@
{ {
imports = [ imports = [
./modules/home.nix ./modules/home.nix
./modules/bottom.nix
./modules/htop.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
@ -166,12 +216,6 @@
inputs.self.packages.${pkgs.system}.wallpapers inputs.self.packages.${pkgs.system}.wallpapers
}/share/wallpapers/anime-cat-girl-snow-optimized.mp4"; }/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 c3d2-user-module.nixosModule

4
modules/bottom.nix Normal file
View file

@ -0,0 +1,4 @@
{ ... }:
{
programs.bottom.enable = true;
}

View file

@ -11,12 +11,8 @@ let
packageNames = map (font: font.package) fonts; packageNames = map (font: font.package) fonts;
in in
{ {
fonts.packages = fonts.packages = with pkgs; [
with pkgs; iosevka
[ comic-mono
iosevka ];
comic-mono
nerdfonts
]
++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
} }

View file

@ -1,8 +1,7 @@
{ { config
config, , pkgs
pkgs, , inputs
inputs, , ...
...
}: }:
{ {
imports = [ imports = [

4
modules/htop.nix Normal file
View file

@ -0,0 +1,4 @@
{ ... }:
{
programs.htop.enable = true;
}

4
modules/music.nix Normal file
View file

@ -0,0 +1,4 @@
{ ... }:
{
musnix.enable = true;
}

View file

@ -1,8 +1,9 @@
{ config {
, lib config,
, pkgs lib,
, inputs pkgs,
, ... inputs,
...
}: }:
let let
makeCommand = command: { makeCommand = command: {
@ -11,10 +12,20 @@ let
qs = "${pkgs.quickshell}/bin/qs"; qs = "${pkgs.quickshell}/bin/qs";
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste"; wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
wallpapers = inputs.self.packages.${pkgs.system}.wallpapers; wallpapers = inputs.self.packages.${pkgs.system}.wallpapers;
helloKittyCursor = pkgs.fetchzip {
url = "https://www.rw-designer.com/cursor-downloadset/hello-kitty.zip";
hash = "";
};
in in
{ {
programs.niri.settings = { 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 = { environment = {
CLUTTER_BACKEND = "wayland"; CLUTTER_BACKEND = "wayland";
DISPLAY = ":0"; DISPLAY = ":0";

View file

@ -97,8 +97,6 @@ in
fg = "job unfreeze"; fg = "job unfreeze";
nano = hx; nano = hx;
vi = hx; vi = hx;
nvim = hx;
vim = hx;
devenv-init = "${nix} flake init --template github:cachix/devenv"; devenv-init = "${nix} flake init --template github:cachix/devenv";
devenv-enter = "${nix} develop --impure"; devenv-enter = "${nix} develop --impure";
rust-init = "${nix} flake init --template templates#rust"; rust-init = "${nix} flake init --template templates#rust";