Skip to content

Commit 8b3d722

Browse files
committed
style(nix): apply nixfmt formatting
chore(nix): switch nixpkgs input to channel url chore(nix): fix homepage url chore(nix): use lib.cleanSource for source filtering chore(nix): port devshell from #2584 chore(nix): derive version from lastModifiedDate and shortRev chore(nix): clean up
1 parent 36f5216 commit 8b3d722

4 files changed

Lines changed: 79 additions & 58 deletions

File tree

flake.lock

Lines changed: 5 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,63 @@
22
description = "Noctalia - A lightweight Wayland shell and bar";
33

44
inputs = {
5-
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
5+
nixpkgs.url = "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz";
66
};
77

8-
outputs = { self, nixpkgs }:
8+
outputs =
9+
{ self, nixpkgs }:
910
let
1011
inherit (nixpkgs) lib;
12+
1113
systems = [
1214
"x86_64-linux"
1315
"aarch64-linux"
1416
];
15-
forEachSystem = perSystem:
17+
18+
forEachSystem =
19+
perSystem:
1620
lib.genAttrs systems (
17-
system: let
21+
system:
22+
let
1823
pkgs = nixpkgs.legacyPackages.${system};
1924
in
20-
perSystem { inherit pkgs system; }
25+
perSystem { inherit pkgs system; }
2126
);
27+
28+
mkDate =
29+
longDate:
30+
nixpkgs.lib.concatStringsSep "-" [
31+
(builtins.substring 0 4 longDate)
32+
(builtins.substring 4 2 longDate)
33+
(builtins.substring 6 2 longDate)
34+
];
35+
36+
version = mkDate (self.lastModifiedDate or "19700101") + "" + (self.shortRev or "dirty");
2237
in
2338
{
2439
overlays.default = final: prev: {
25-
noctalia = final.callPackage ./nix/package.nix { };
40+
noctalia = final.callPackage ./nix/package.nix { inherit version; };
2641
};
2742

2843
packages = forEachSystem (
29-
{ pkgs, ... }: {
30-
default = pkgs.callPackage ./nix/package.nix { };
44+
{ pkgs, ... }:
45+
{
46+
default = pkgs.callPackage ./nix/package.nix { inherit version; };
3147
}
3248
);
3349

3450
devShells = forEachSystem (
35-
{ pkgs, system }: {
51+
{ pkgs, system }:
52+
{
3653
default = pkgs.callPackage ./nix/devshell.nix {
3754
noctalia = self.packages.${system}.default;
3855
};
3956
}
4057
);
4158

4259
apps = forEachSystem (
43-
{ pkgs, system }: {
60+
{ system, ... }:
61+
{
4462
default = {
4563
type = "app";
4664
program = lib.getExe self.packages.${system}.default;

nix/devshell.nix

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
1-
{ pkgs, noctalia }:
2-
1+
{
2+
pkgs,
3+
noctalia,
4+
}:
35
pkgs.mkShell {
46
inputsFrom = [ noctalia ];
5-
6-
buildInputs = with pkgs; [
7+
8+
nativeBuildInputs = with pkgs; [
9+
# Workflow & Hooks
710
just
11+
lefthook
12+
13+
# Formatting (required by justfile)
814
clang-tools
15+
gnugrep
16+
gnused
17+
findutils
18+
19+
# Debugging
920
gdb
1021
];
1122

1223
shellHook = ''
13-
echo "Noctalia development environment"
14-
echo ""
15-
echo "Available commands:"
16-
echo " just configure - Configure debug build"
17-
echo " just build - Build debug"
18-
echo " just run - Run debug build"
19-
echo " just configure release - Configure release build"
20-
echo " just build release - Build release"
21-
echo " just run release - Run release build"
22-
echo ""
23-
echo "Note: Use 'just build' instead of 'nix build' due to sdbus-c++ API compatibility"
24+
# Point to local assets so binaries find resources without installation
25+
export NOCTALIA_ASSETS_DIR="$PWD/assets"
26+
27+
echo " Noctalia dev-shell | 'just --list' to see available tasks"
2428
'';
2529
}

nix/package.nix

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
1-
{ lib,
2-
stdenv,
3-
meson,
4-
ninja,
5-
pkg-config,
6-
wayland-scanner,
7-
wayland,
8-
wayland-protocols,
9-
libGL,
10-
libglvnd,
11-
freetype,
12-
fontconfig,
13-
cairo,
14-
pango,
15-
libxkbcommon,
16-
sdbus-cpp_2,
17-
systemd,
18-
pipewire,
19-
pam,
20-
curl,
21-
libwebp
1+
{
2+
lib,
3+
stdenv,
4+
version,
5+
meson,
6+
ninja,
7+
pkg-config,
8+
wayland-scanner,
9+
wayland,
10+
wayland-protocols,
11+
libGL,
12+
libglvnd,
13+
freetype,
14+
fontconfig,
15+
cairo,
16+
pango,
17+
libxkbcommon,
18+
sdbus-cpp_2,
19+
systemd,
20+
pipewire,
21+
pam,
22+
curl,
23+
libwebp,
2224
}:
2325

2426
stdenv.mkDerivation {
2527
pname = "noctalia";
26-
version = "5.0.0";
28+
inherit version;
2729

28-
src = ../.;
30+
src = lib.cleanSource ../.;
2931

3032
postPatch = ''
3133
# Remove -march=native and -mtune=native for reproducible builds
@@ -58,12 +60,12 @@ stdenv.mkDerivation {
5860
];
5961

6062
mesonBuildType = "release";
61-
63+
6264
ninjaFlags = [ "-v" ];
6365

6466
meta = with lib; {
6567
description = "A lightweight Wayland shell and bar built directly on Wayland + OpenGL ES";
66-
homepage = "https://github.com/anomalyco/noctalia-shell";
68+
homepage = "https://github.com/noctalia-dev/noctalia-shell";
6769
license = licenses.mit;
6870
platforms = platforms.linux;
6971
mainProgram = "noctalia";

0 commit comments

Comments
 (0)