Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 0 additions & 56 deletions configs/security-fixes/cve-2026-109618.nix

This file was deleted.

36 changes: 18 additions & 18 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 12 additions & 6 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -251,12 +251,18 @@
...
}:
{
# drop once clan-core splits its makeWrapperArgs
packages.clan-cli = clan-core.packages.${system}.clan-cli.overridePythonAttrs (o: {
makeWrapperArgs = lib.concatMap (
a: if lib.hasPrefix "--unset " a then lib.splitString " " a else [ a ]
) o.makeWrapperArgs;
});
# drop the override once clan-core stops pinning nixVersions.nix_2_31
# (removed from nixpkgs), the overridePythonAttrs once it splits its
# makeWrapperArgs
packages.clan-cli =
(clan-core.packages.${system}.clan-cli.override {
nix = pkgs.nixVersions.nix_2_34;
}).overridePythonAttrs
(o: {
makeWrapperArgs = lib.concatMap (
a: if lib.hasPrefix "--unset " a then lib.splitString " " a else [ a ]
) o.makeWrapperArgs;
});
# CI pushes its builds to cache.lassul.us with it (.github/niks3-push.sh)
packages.niks3 = inputs.niks3.packages.${system}.niks3;
# CI's eval job evaluates ciToplevels with it
Expand Down
101 changes: 93 additions & 8 deletions pkgs/noctalia-qs/package.nix
Original file line number Diff line number Diff line change
@@ -1,9 +1,94 @@
{ noctalia-qs }:
# noctalia-qs 0.0.12 fails against Qt 6.12 ("Meta Types must be fully
# defined" in the hyprland ipc mocs). qt-6.12.patch backports quickshell
# 5d5d49873f ("all: use MOC includes instead of opaque pointer
# definitions") to the fork, whose i3 getters are non-const. Drop this
# package once nixpkgs' noctalia-qs builds again.
noctalia-qs.overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [ ./qt-6.12.patch ];
{
lib,
stdenv,
fetchFromGitHub,

pkg-config,
cmake,
ninja,
spirv-tools,
qt6,
breakpad,
jemalloc,
cli11,
wayland,
wayland-protocols,
wayland-scanner,
libxcb,
libdrm,
libgbm ? null,
vulkan-headers,
pipewire,
pam,
polkit,
glib,
}:
# The quickshell fork noctalia-shell 4.x runs on, kept here because nixpkgs
# dropped it in favour of noctalia v5. Drop this package once noctalia-shell
# (wrapperModules/noctalia-shell) moves to nixpkgs' noctalia.
stdenv.mkDerivation (finalAttrs: {
pname = "noctalia-qs";
version = "0.0.12";

src = fetchFromGitHub {
owner = "noctalia-dev";
repo = "noctalia-qs";
tag = "v${finalAttrs.version}";
hash = "sha256-79JP2QTdvp1jg7HGxAW+xzhzhLnlKUi8yGXq9nDCeH0=";
};

# 0.0.12 fails against Qt 6.12 ("Meta Types must be fully defined" in the
# hyprland ipc mocs). qt-6.12.patch backports quickshell 5d5d49873f ("all:
# use MOC includes instead of opaque pointer definitions") to the fork,
# whose i3 getters are non-const.
patches = [ ./qt-6.12.patch ];

nativeBuildInputs = [
cmake
ninja
spirv-tools
pkg-config
qt6.qtwayland
qt6.wrapQtAppsHook
wayland-scanner
];

buildInputs = [
qt6.qtbase
qt6.qtdeclarative
qt6.qtwayland
qt6.qtsvg
cli11
wayland
wayland-protocols
libdrm
libgbm
vulkan-headers
breakpad
jemalloc
libxcb
pam
pipewire
polkit
glib
];

cmakeFlags = [
(lib.cmakeFeature "DISTRIBUTOR" "Nixpkgs")
(lib.cmakeBool "DISTRIBUTOR_DEBUGINFO_AVAILABLE" true)
(lib.cmakeFeature "INSTALL_QML_PREFIX" qt6.qtbase.qtQmlPrefix)
(lib.cmakeFeature "GIT_REVISION" "tag-v${finalAttrs.version}")
(lib.cmakeBool "NIX_STORE_DIR_SKIP_WATCH" true)
(lib.cmakeFeature "NIX_STORE_DIR" builtins.storeDir)
];

cmakeBuildType = "Release";

meta = {
homepage = "https://github.com/noctalia-dev/noctalia-qs";
description = "Flexible QtQuick based desktop shell toolkit";
license = lib.licenses.lgpl3Only;
platforms = lib.platforms.linux;
mainProgram = "quickshell";
};
})
5 changes: 2 additions & 3 deletions tools/noctalia-shell/flake-module.nix
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,8 @@
};
in
{
# noctalia-qs is linux-only and left out of packages elsewhere (same
# availableOn check as pkgs/flake-module.nix).
packages = lib.optionalAttrs (lib.meta.availableOn pkgs.stdenv.hostPlatform pkgs.noctalia-qs) {
# noctalia-qs is linux-only and left out of packages elsewhere.
packages = lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
noctalia-shell = noctalia.wrapper;
};
};
Expand Down
6 changes: 3 additions & 3 deletions wrapperModules/noctalia-shell/flake-module.nix
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
${pkgs.sway}/bin/swaymsg "workspace $ws, move workspace to output $current_output"
'';

noctalia-shell = pkgs.noctalia-shell.override { inherit (config) noctalia-qs; };
noctalia-shell = pkgs.callPackage ./noctalia-shell.nix { inherit (config) noctalia-qs; };

# Patch noctalia-shell for sway:
# - Use workspace name instead of number (activate() sends
Expand Down Expand Up @@ -104,8 +104,8 @@

noctalia-qs = lib.mkOption {
type = lib.types.package;
default = pkgs.noctalia-qs;
defaultText = lib.literalExpression "pkgs.noctalia-qs";
default = pkgs.callPackage ../../pkgs/noctalia-qs/package.nix { };
defaultText = lib.literalExpression "pkgs.callPackage ../../pkgs/noctalia-qs/package.nix { }";
description = ''
The quickshell fork the default package runs on. Ignored if you
override `package`.
Expand Down
91 changes: 91 additions & 0 deletions wrapperModules/noctalia-shell/noctalia-shell.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{
fetchFromGitHub,
lib,
stdenvNoCC,

# build
qt6,
noctalia-qs,

# runtime deps
bluez,
brightnessctl,
cliphist,
ddcutil,
wlsunset,
wl-clipboard,
wlr-randr,
imagemagick,
wget,
python3,
wayland-scanner,
}:
# noctalia-shell 4.x (QML on noctalia-qs), kept here because nixpkgs dropped
# it in favour of noctalia v5. Drop this file once the wrapper moves to
# nixpkgs' noctalia.
let
runtimeDeps = [
wget
python3
bluez
brightnessctl
cliphist
ddcutil
wlsunset
wl-clipboard
wlr-randr
imagemagick
];
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "noctalia-shell";
version = "4.7.7";

src = fetchFromGitHub {
owner = "noctalia-dev";
repo = "noctalia";
tag = "v${finalAttrs.version}";
hash = "sha256-QszLpoDPD7JEv8B/w1U2u1ksBw/CYBDmwUTLhJrekF0=";
};

nativeBuildInputs = [
qt6.wrapQtAppsHook
];

buildInputs = [
qt6.qtbase
qt6.qtmultimedia
];

installPhase = ''
runHook preInstall

mkdir -p $out/share/noctalia-shell $out/bin
ln -s ${noctalia-qs}/bin/qs $out/bin/noctalia-shell

cp -R \
Assets Commons CREDITS.md Helpers Modules Services Shaders Scripts Widgets shell.qml \
$out/share/noctalia-shell

rm -R $out/share/noctalia-shell/Assets/Screenshots

runHook postInstall
'';

preFixup = ''
qtWrapperArgs+=(
--prefix PATH : ${lib.makeBinPath runtimeDeps}
--prefix XDG_DATA_DIRS : ${wayland-scanner}/share
--add-flags "-p $out/share/noctalia-shell"
)
'';

meta = {
changelog = "https://github.com/noctalia-dev/noctalia/releases/tag/v${finalAttrs.version}";
description = "Sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell";
homepage = "https://github.com/noctalia-dev/noctalia";
license = lib.licenses.mit;
mainProgram = "noctalia-shell";
platforms = noctalia-qs.meta.platforms;
};
})
Loading