Skip to content

Commit 692f68d

Browse files
modules/noctaia: init
1 parent ce9122b commit 692f68d

3 files changed

Lines changed: 167 additions & 0 deletions

File tree

modules/noctalia/check.nix

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
pkgs,
3+
self,
4+
}:
5+
6+
let
7+
noctaliaWrapped =
8+
(self.wrapperModules.noctalia.apply {
9+
inherit pkgs;
10+
}).wrapper;
11+
12+
in
13+
pkgs.runCommand "noctalia-test" { } ''
14+
# if the config is invalid the text helix will complain here.
15+
# sady no other dedicated check config command exists
16+
res=$(${pkgs.lib.getExe noctaliaWrapped} config validate)
17+
echo $res
18+
if [[ ''${#res} == 0 ]]; then
19+
touch $out
20+
fi
21+
''

modules/noctalia/module.nix

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
config,
3+
lib,
4+
wlib,
5+
...
6+
}:
7+
let
8+
tomlFmt = config.pkgs.formats.toml { };
9+
in
10+
{
11+
_class = "wrapper";
12+
options = {
13+
settings = lib.mkOption {
14+
type = tomlFmt.type;
15+
description = ''
16+
Noctalia Settings
17+
See <https://docs.noctalia.dev/v5/>
18+
'';
19+
default = { };
20+
};
21+
"config.toml" = lib.mkOption {
22+
type = wlib.types.file config.pkgs;
23+
default.path = tomlFmt.generate "noctalia-config" config.settings;
24+
};
25+
};
26+
27+
# waiting for noctalia to be updated to v5 in nixpkgs
28+
config.package = config.pkgs.callPackage ./package.nix { };
29+
config.env = {
30+
NOCTALIA_CONFIG_HOME = toString (
31+
config.pkgs.linkFarm "noctalia-config" [
32+
{
33+
name = "noctalia/config.toml";
34+
path = config."config.toml".path;
35+
}
36+
]
37+
);
38+
};
39+
config.meta.maintainers = [ lib.maintainers.kruemmelspalter ];
40+
}

modules/noctalia/package.nix

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
### waiting for noctalia to be updated to v5 in nixpkgs
2+
### adapted from upstream at <https://github.com/noctalia-dev/noctalia/blob/d967ed5f5484e57866350106be8bfe3b50f90cfd/nix/package.nix> (licensed MIT)
3+
{
4+
lib,
5+
config,
6+
stdenv,
7+
fetchFromGitHub,
8+
meson,
9+
ninja,
10+
pkg-config,
11+
wayland-scanner,
12+
wayland,
13+
wayland-protocols,
14+
libGL,
15+
libglvnd,
16+
freetype,
17+
fontconfig,
18+
cairo,
19+
pango,
20+
harfbuzz,
21+
libxkbcommon,
22+
sdbus-cpp_2,
23+
systemdLibs,
24+
pipewire,
25+
pam,
26+
curl,
27+
libwebp,
28+
glib,
29+
polkit,
30+
librsvg,
31+
libqalculate,
32+
libxml2,
33+
jemalloc,
34+
autoAddDriverRunpath,
35+
cudaSupport ? config.cudaSupport,
36+
}:
37+
38+
stdenv.mkDerivation {
39+
pname = "noctalia";
40+
version = "4.7.7-unstable-2026-06-11";
41+
42+
strictDeps = true;
43+
__structuredAttrs = true;
44+
45+
src = fetchFromGitHub {
46+
owner = "noctalia-dev";
47+
repo = "noctalia";
48+
rev = "7421f80b041e81d6e202a25ade6bfc59d716dd43";
49+
hash = "sha256-H+uwJBulU/0Qt+BGUvlyrTPgcdOfojSalklpEuKKD2c=";
50+
};
51+
52+
postPatch = ''
53+
# Remove -march=native and -mtune=native for reproducible builds
54+
substituteInPlace meson.build --replace-fail "'-march=native', '-mtune=native'," ""
55+
'';
56+
57+
nativeBuildInputs = [
58+
meson
59+
ninja
60+
pkg-config
61+
wayland-scanner
62+
]
63+
++ lib.optional cudaSupport autoAddDriverRunpath;
64+
65+
buildInputs = [
66+
wayland
67+
wayland-protocols
68+
libGL
69+
libglvnd
70+
freetype
71+
fontconfig
72+
cairo
73+
pango
74+
harfbuzz
75+
libxkbcommon
76+
sdbus-cpp_2
77+
systemdLibs
78+
pipewire
79+
pam
80+
curl
81+
libwebp
82+
glib
83+
polkit
84+
librsvg
85+
libqalculate
86+
libxml2
87+
jemalloc
88+
];
89+
90+
mesonBuildType = "release";
91+
92+
ninjaFlags = [ "-v" ];
93+
94+
meta = {
95+
description = "Sleek and minimal desktop shell thoughtfully crafted for Wayland";
96+
homepage = "https://github.com/noctalia-dev/noctalia";
97+
license = lib.licenses.mit;
98+
platforms = lib.platforms.linux;
99+
maintainers = with lib.maintainers; [
100+
spacedentist
101+
kruemmelspalter
102+
dtomvan
103+
];
104+
mainProgram = "noctalia";
105+
};
106+
}

0 commit comments

Comments
 (0)