This commit is contained in:
Ly-sec 2025-08-25 08:26:00 +02:00
commit cde0fd8f46
3 changed files with 183 additions and 0 deletions

64
flake.lock generated Normal file
View file

@ -0,0 +1,64 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1755615617,
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "20075955deac2583bb12f07151c2df830ef346b4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"quickshell": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1753595452,
"narHash": "sha256-vqkSDvh7hWhPvNjMjEDV4KbSCv2jyl2Arh73ZXe274k=",
"ref": "refs/heads/master",
"rev": "a5431dd02dc23d9ef1680e67777fed00fe5f7cda",
"revCount": 665,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"quickshell": "quickshell",
"systems": "systems"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

35
flake.nix Normal file
View file

@ -0,0 +1,35 @@
{
description = "Desktop shell for Caelestia dots";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
systems.url = "github:nix-systems/default";
quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
systems,
...
} @ inputs: let
eachSystem = nixpkgs.lib.genAttrs (import systems);
in {
formatter = eachSystem (pkgs: pkgs.alejandra);
packages = eachSystem (system: rec {
noctalia-shell = nixpkgs.legacyPackages.${system}.callPackage ./nix {
rev = self.rev or self.dirtyRev;
quickshell = inputs.quickshell.packages.${system}.default.override {
withX11 = false;
withI3 = false;
};
};
default = noctalia-shell;
});
};
}

84
nix/default.nix Normal file
View file

@ -0,0 +1,84 @@
{
rev,
lib,
stdenv,
makeWrapper,
makeFontsConf,
ddcutil,
brightnessctl,
cava,
networkmanager,
wl-clipboard,
libnotify,
bluez,
bash,
coreutils,
findutils,
file,
material-symbols,
roboto,
inter-nerdfont,
matugen,
cliphist,
swww,
gpu-screen-recorder,
gcc,
qt6,
quickshell,
xkeyboard-config,
extraRuntimeDeps ? [],
}: let
runtimeDeps =
[
bash
bluez
brightnessctl
cava
cliphist
coreutils
ddcutil
file
findutils
gpu-screen-recorder
libnotify
matugen
networkmanager
swww
wl-clipboard
]
++ extraRuntimeDeps;
fontconfig = makeFontsConf {
fontDirectories = [
material-symbols
roboto
inter-nerdfont
];
};
in
stdenv.mkDerivation {
pname = "noctalia-shell";
version = "${rev}";
src = ./..;
nativeBuildInputs = [gcc makeWrapper qt6.wrapQtAppsHook];
buildInputs = [quickshell xkeyboard-config qt6.qtbase];
propagatedBuildInputs = runtimeDeps;
installPhase = ''
mkdir -p $out/share/noctalia-shell
cp -r ./* $out/share/noctalia-shell
makeWrapper ${quickshell}/bin/qs $out/bin/noctalia-shell \
--prefix PATH : "${lib.makeBinPath runtimeDeps}" \
--set FONTCONFIG_FILE "${fontconfig}" \
--add-flags "-p $out/share/noctalia-shell"
'';
meta = {
description = "A sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell.";
homepage = "https://github.com/noctalia-dev/noctalia-shell";
license = lib.licenses.mit;
mainProgram = "noctalia-shell";
};
}