diff --git a/flake.nix b/flake.nix index e4e74c3..4bc9bf3 100644 --- a/flake.nix +++ b/flake.nix @@ -270,7 +270,6 @@ "custom-mcrcon-rbw" = pkgs.custom.mcrcon-rbw; "custom-tea-rbw" = pkgs.custom.tea-rbw; "custom-rclone-torbox-setup" = pkgs.custom.rclone-torbox-setup; - "custom-nextcloud-talk-desktop" = pkgs.custom.nextcloud-talk-desktop; "custom-opencode" = pkgs.custom.opencode; "qt-pinned-jellyfin-media-player" = pkgsQt.jellyfin-media-player; "qt-pinned-stremio" = pkgsQt.stremio; @@ -278,6 +277,7 @@ // ( if system == "x86_64-linux" then { + "custom-nextcloud-talk-desktop" = pkgs.custom.nextcloud-talk-desktop; # nix-deck kernel from Jovian-NixOS (Steam Deck) - expensive to build "nix-deck-kernel" = self.nixosConfigurations.nix-deck.config.boot.kernelPackages.kernel; } @@ -341,30 +341,37 @@ update-doomemacs = { type = "app"; program = "${update-doomemacs}/bin/update-doomemacs"; + meta.description = "Update Doom Emacs configuration"; }; update-claude-code = { type = "app"; program = "${update-claude-code}/bin/update-claude-code"; + meta.description = "Update Claude Code package version"; }; update-opencode = { type = "app"; program = "${update-opencode}/bin/update-opencode"; + meta.description = "Update OpenCode package version"; }; rotate-wallpaper = { type = "app"; program = "${rotate-wallpaper}/bin/rotate-wallpaper"; + meta.description = "Rotate desktop wallpaper"; }; upgrade = { type = "app"; program = "${upgrade}/bin/upgrade"; + meta.description = "Upgrade NixOS configuration"; }; bootstrap = { type = "app"; program = "${bootstrap}/bin/bootstrap"; + meta.description = "Bootstrap a new NixOS machine"; }; build-liveusb = { type = "app"; program = "${build-liveusb}/bin/build-liveusb"; + meta.description = "Build a bootable Live USB ISO"; }; } ); diff --git a/home/roles/base/default.nix b/home/roles/base/default.nix index 55ce5f8..99e7b48 100644 --- a/home/roles/base/default.nix +++ b/home/roles/base/default.nix @@ -60,6 +60,7 @@ in programs.git = { enable = true; + signing.format = null; settings = { user.name = "John Ogle"; user.email = "john@ogle.fyi"; diff --git a/home/roles/emacs/default.nix b/home/roles/emacs/default.nix index f42df18..3c65687 100644 --- a/home/roles/emacs/default.nix +++ b/home/roles/emacs/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with lib; @@ -20,9 +25,10 @@ let # Default emacs configuration with vterm support defaultEmacsPackage = - if pkgs.stdenv.isDarwin - then pkgs.emacs-macport.pkgs.withPackages emacsPackages - else pkgs.emacs.pkgs.withPackages emacsPackages; + if pkgs.stdenv.isDarwin then + pkgs.emacs-macport.pkgs.withPackages emacsPackages + else + pkgs.emacs.pkgs.withPackages emacsPackages; # Path to doom config directory (relative to this file) doomConfigDir = ./doom; @@ -56,8 +62,8 @@ in pkgs.nerd-fonts.fira-code pkgs.nerd-fonts.droid-sans-mono pkgs.nil # nix lsp language server - pkgs.nixfmt-rfc-style - (pkgs.ripgrep.override {withPCRE2 = true;}) + pkgs.nixfmt + (pkgs.ripgrep.override { withPCRE2 = true; }) pkgs.pipenv pkgs.poetry pkgs.python3 @@ -88,7 +94,7 @@ in }; # TODO: Use mkOutOfStoreSymlink instead? - home.activation.doomConfig = lib.hm.dag.entryAfter ["writeBoundary"] '' + home.activation.doomConfig = lib.hm.dag.entryAfter [ "writeBoundary" ] '' # Always remove and recreate the symlink to ensure it points to the source directory rm -rf "${config.xdg.configHome}/doom" ln -sf "${config.home.homeDirectory}/nixos-configs/home/roles/emacs/doom" "${config.xdg.configHome}/doom" diff --git a/roles/plasma-bigscreen/package.nix b/roles/plasma-bigscreen/package.nix index 07219b0..1933bed 100644 --- a/roles/plasma-bigscreen/package.nix +++ b/roles/plasma-bigscreen/package.nix @@ -62,33 +62,22 @@ mkKdeDerivation { ]; extraBuildInputs = [ - # KDE Frameworks - ki18n + # KDE Frameworks (auto-injected by mkKdeDerivation: ki18n, kcmutils, + # knotifications, kio, kwayland, kwindowsystem, ksvg, kiconthemes) kdeclarative - kcmutils - knotifications - kio - kwayland - kwindowsystem - ksvg - kiconthemes kglobalaccel kdbusaddons - # Plasma - plasma-workspace + # Plasma (auto-injected: plasma-workspace, plasma-activities, + # plasma-activities-stats, libkscreen) plasma-nano plasma-nm - plasma-activities - plasma-activities-stats milou - libkscreen kdeconnect-kde # Qt — qtdeclarative is needed for Qt6::QmlPrivate (see postPatch) qtdeclarative qtmultimedia qtwebengine - # Other - bluez-qt + # Other (auto-injected: bluez-qt) qcoro plasma-wayland-protocols wayland @@ -96,22 +85,22 @@ mkKdeDerivation { ]; postPatch = '' - substituteInPlace bin/plasma-bigscreen-wayland.in \ - --replace @KDE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec" + substituteInPlace bin/plasma-bigscreen-wayland.in \ + --replace @KDE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec" - # WORKAROUND: Plasma version numbers must match; we're building an - # unreleased package against a stable Plasma release. Remove once - # bigscreen is part of the Plasma release cycle. - substituteInPlace CMakeLists.txt \ - --replace-fail 'set(PROJECT_VERSION "6.5.80")' 'set(PROJECT_VERSION "${plasma-workspace.version}")' + # WORKAROUND: Plasma version numbers must match; we're building an + # unreleased package against a stable Plasma release. Remove once + # bigscreen is part of the Plasma release cycle. + substituteInPlace CMakeLists.txt \ + --replace-fail 'set(PROJECT_VERSION "6.5.80")' 'set(PROJECT_VERSION "${plasma-workspace.version}")' - # WORKAROUND: QCoro6Qml's cmake config links against Qt6::QmlPrivate but - # doesn't call find_package to import the target. This is arguably a QCoro - # packaging bug in nixpkgs (it should propagate qtdeclarative). Remove - # once QCoro or the nixpkgs plasma-bigscreen package is fixed upstream. - substituteInPlace CMakeLists.txt \ - --replace-fail 'find_package(QCoro6' 'find_package(Qt6 ''${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS QmlPrivate) -find_package(QCoro6' + # WORKAROUND: QCoro6Qml's cmake config links against Qt6::QmlPrivate but + # doesn't call find_package to import the target. This is arguably a QCoro + # packaging bug in nixpkgs (it should propagate qtdeclarative). Remove + # once QCoro or the nixpkgs plasma-bigscreen package is fixed upstream. + substituteInPlace CMakeLists.txt \ + --replace-fail 'find_package(QCoro6' 'find_package(Qt6 ''${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS QmlPrivate) + find_package(QCoro6' ''; preFixup = ''