From e4cad6ed200f80fbebe930e50294f0669d0ee63b Mon Sep 17 00:00:00 2001 From: Ly-sec Date: Tue, 9 Sep 2025 15:44:11 +0200 Subject: [PATCH] Update README and flake.nix README: inform users about breaking changes (due to the font change) flake: attempt to install the bootstrap-icons font --- README.md | 7 ++++++- flake.nix | 44 ++++++++++++++++++++++++++++++++------------ 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index dcdcd205..52127827 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,11 @@

+ +> ⚠️ **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. 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 - `ttf-roboto` - The default font used for most of the UI - `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 - `brightnessctl` - For internal/laptop monitor brightness - `ddcutil` - For desktop monitor brightness (might introduce some system instability with certain monitors) diff --git a/flake.nix b/flake.nix index b61342f5..bb16caa2 100644 --- a/flake.nix +++ b/flake.nix @@ -1,16 +1,13 @@ { description = "Noctalia shell - a Wayland desktop shell built with Quickshell"; - 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, @@ -24,7 +21,6 @@ system: nixpkgs.legacyPackages.${system}.alejandra ); - packages = eachSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; @@ -32,7 +28,33 @@ withX11 = 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; [ bash bluez @@ -49,12 +71,12 @@ networkmanager wl-clipboard ]; - fontconfig = pkgs.makeFontsConf { fontDirectories = [ pkgs.material-symbols pkgs.roboto pkgs.inter-nerdfont + ttf-bootstrap-icons # Add the custom font package here ]; }; in { @@ -62,21 +84,17 @@ pname = "noctalia-shell"; version = self.rev or self.dirtyRev or "dirty"; src = ./.; - nativeBuildInputs = [pkgs.gcc pkgs.makeWrapper pkgs.qt6.wrapQtAppsHook]; buildInputs = [qs pkgs.xkeyboard-config pkgs.qt6.qtbase]; propagatedBuildInputs = runtimeDeps; - installPhase = '' mkdir -p $out/share/noctalia-shell cp -r ./* $out/share/noctalia-shell - makeWrapper ${qs}/bin/qs $out/bin/noctalia-shell \ --prefix PATH : "${pkgs.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"; @@ -84,9 +102,11 @@ 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); }; -} +} \ No newline at end of file