Update README and flake.nix

README: inform users about breaking changes (due to the font change)
flake: attempt to install the bootstrap-icons font
This commit is contained in:
Ly-sec 2025-09-09 15:44:11 +02:00
parent a00676f5db
commit e4cad6ed20
2 changed files with 38 additions and 13 deletions

View file

@ -21,6 +21,11 @@
</a> </a>
</p> </p>
> ⚠️ **BREAKING CHANGE:**
> We transitioned from using Material Symbols to Bootstrap Icons, that means you will have to install the new font.
---
A sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell. A sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell.
Features a modern modular architecture with a status bar, notification system, control panel, comprehensive system integration, and more — all styled with a warm lavender palette, or your favorite color scheme! Features a modern modular architecture with a status bar, notification system, control panel, comprehensive system integration, and more — all styled with a warm lavender palette, or your favorite color scheme!
@ -66,7 +71,7 @@ Features a modern modular architecture with a status bar, notification system, c
- `quickshell-git` - Core shell framework - `quickshell-git` - Core shell framework
- `ttf-roboto` - The default font used for most of the UI - `ttf-roboto` - The default font used for most of the UI
- `inter-font` - The default font used for Headers (ex: clock on the LockScreen) - `inter-font` - The default font used for Headers (ex: clock on the LockScreen)
- `ttf-material-symbols-variable-git` - Icon font for UI elements - `ttf-bootstrap-icons` - Icon font for UI elements
- `gpu-screen-recorder` - Screen recording functionality - `gpu-screen-recorder` - Screen recording functionality
- `brightnessctl` - For internal/laptop monitor brightness - `brightnessctl` - For internal/laptop monitor brightness
- `ddcutil` - For desktop monitor brightness (might introduce some system instability with certain monitors) - `ddcutil` - For desktop monitor brightness (might introduce some system instability with certain monitors)

View file

@ -1,16 +1,13 @@
{ {
description = "Noctalia shell - a Wayland desktop shell built with Quickshell"; description = "Noctalia shell - a Wayland desktop shell built with Quickshell";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
systems.url = "github:nix-systems/default"; systems.url = "github:nix-systems/default";
quickshell = { quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = { outputs = {
self, self,
nixpkgs, nixpkgs,
@ -24,7 +21,6 @@
system: system:
nixpkgs.legacyPackages.${system}.alejandra nixpkgs.legacyPackages.${system}.alejandra
); );
packages = eachSystem ( packages = eachSystem (
system: let system: let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
@ -32,7 +28,33 @@
withX11 = false; withX11 = false;
withI3 = false; withI3 = false;
}; };
# Custom ttf-bootstrap-icons package
ttf-bootstrap-icons = pkgs.stdenvNoCC.mkDerivation rec {
pname = "ttf-bootstrap-icons";
version = "1.13.1";
src = pkgs.fetchzip {
url = "https://github.com/twbs/icons/releases/download/v${version}/bootstrap-icons-${version}.zip";
sha256 = "999021e12fab5c9ede5e4e7072eb176122be798b2f99195acf5dda47aef8fc93";
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -Dm644 fonts/bootstrap-icons.ttf $out/share/fonts/truetype/bootstrap-icons.ttf
runHook postInstall
'';
meta = with pkgs.lib; {
description = "Official open source SVG icon library for Bootstrap";
homepage = "https://icons.getbootstrap.com/";
license = licenses.mit;
platforms = platforms.all;
maintainers = [];
};
};
runtimeDeps = with pkgs; [ runtimeDeps = with pkgs; [
bash bash
bluez bluez
@ -49,12 +71,12 @@
networkmanager networkmanager
wl-clipboard wl-clipboard
]; ];
fontconfig = pkgs.makeFontsConf { fontconfig = pkgs.makeFontsConf {
fontDirectories = [ fontDirectories = [
pkgs.material-symbols pkgs.material-symbols
pkgs.roboto pkgs.roboto
pkgs.inter-nerdfont pkgs.inter-nerdfont
ttf-bootstrap-icons # Add the custom font package here
]; ];
}; };
in { in {
@ -62,21 +84,17 @@
pname = "noctalia-shell"; pname = "noctalia-shell";
version = self.rev or self.dirtyRev or "dirty"; version = self.rev or self.dirtyRev or "dirty";
src = ./.; src = ./.;
nativeBuildInputs = [pkgs.gcc pkgs.makeWrapper pkgs.qt6.wrapQtAppsHook]; nativeBuildInputs = [pkgs.gcc pkgs.makeWrapper pkgs.qt6.wrapQtAppsHook];
buildInputs = [qs pkgs.xkeyboard-config pkgs.qt6.qtbase]; buildInputs = [qs pkgs.xkeyboard-config pkgs.qt6.qtbase];
propagatedBuildInputs = runtimeDeps; propagatedBuildInputs = runtimeDeps;
installPhase = '' installPhase = ''
mkdir -p $out/share/noctalia-shell mkdir -p $out/share/noctalia-shell
cp -r ./* $out/share/noctalia-shell cp -r ./* $out/share/noctalia-shell
makeWrapper ${qs}/bin/qs $out/bin/noctalia-shell \ makeWrapper ${qs}/bin/qs $out/bin/noctalia-shell \
--prefix PATH : "${pkgs.lib.makeBinPath runtimeDeps}" \ --prefix PATH : "${pkgs.lib.makeBinPath runtimeDeps}" \
--set FONTCONFIG_FILE "${fontconfig}" \ --set FONTCONFIG_FILE "${fontconfig}" \
--add-flags "-p $out/share/noctalia-shell" --add-flags "-p $out/share/noctalia-shell"
''; '';
meta = { meta = {
description = "A sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell."; description = "A sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell.";
homepage = "https://github.com/noctalia-dev/noctalia-shell"; homepage = "https://github.com/noctalia-dev/noctalia-shell";
@ -84,9 +102,11 @@
mainProgram = "noctalia-shell"; mainProgram = "noctalia-shell";
}; };
}; };
# Expose the custom font as a separate package (optional)
ttf-bootstrap-icons = ttf-bootstrap-icons;
} }
); );
defaultPackage = eachSystem (system: self.packages.${system}.default); defaultPackage = eachSystem (system: self.packages.${system}.default);
}; };
} }