Reduce jay-lenovo switch source builds

This commit is contained in:
2026-07-06 16:25:44 -07:00
parent 74d5615f8c
commit 5c7007912c
5 changed files with 326 additions and 295 deletions

View File

@@ -2,18 +2,30 @@
pkgs, pkgs,
lib, lib,
inputs, inputs,
config ? {},
... ...
}: let }: let
system = pkgs.stdenv.hostPlatform.system; system = pkgs.stdenv.hostPlatform.system;
isJayLenovo = (config.networking.hostName or null) == "jay-lenovo";
inputPackageOrNull = inputName: packageName: let inputPackageOrNull = inputName: packageName: let
input = inputs.${inputName} or null; input = inputs.${inputName} or null;
packages = if input == null then null else input.packages or null; packages =
systemPackages = if packages == null then null else packages.${system} or null; if input == null
then null
else input.packages or null;
systemPackages =
if packages == null
then null
else packages.${system} or null;
in in
if systemPackages == null then null else systemPackages.${packageName} or null; if systemPackages == null
then null
else systemPackages.${packageName} or null;
git-blame-rank = inputs.git-blame-rank.packages.${system}.default.overrideAttrs (old: { git-blame-rank = inputs.git-blame-rank.packages.${system}.default.overrideAttrs (old: {
env = (old.env or {}) // { env =
(old.env or {})
// {
CARGO_BUILD_JOBS = "1"; CARGO_BUILD_JOBS = "1";
}; };
}); });
@@ -25,7 +37,6 @@
commonPkgs = lib.filter (pkg: lib.meta.availableOn pkgs.stdenv.hostPlatform pkg) ((with pkgs; [ commonPkgs = lib.filter (pkg: lib.meta.availableOn pkgs.stdenv.hostPlatform pkg) ((with pkgs; [
automake automake
bazel
bento4 bento4
bind bind
binutils binutils
@@ -72,6 +83,7 @@
xkcdpass xkcdpass
yubikey-manager yubikey-manager
]) ])
++ lib.optionals (!isJayLenovo) [pkgs.bazel]
++ lib.optionals (coquiTtsStreamer != null) [coquiTtsStreamer] ++ lib.optionals (coquiTtsStreamer != null) [coquiTtsStreamer]
++ lib.optionals (builtins.hasAttr "git-sync-rs" pkgs) [pkgs.git-sync-rs]); ++ lib.optionals (builtins.hasAttr "git-sync-rs" pkgs) [pkgs.git-sync-rs]);

View File

@@ -5,20 +5,18 @@
lib, lib,
makeEnable, makeEnable,
... ...
}: }: let
let
codexDesktopLinuxSource = pkgs.applyPatches { codexDesktopLinuxSource = pkgs.applyPatches {
name = "codex-desktop-linux-patched"; name = "codex-desktop-linux-patched";
src = inputs.codex-desktop-linux; src = inputs.codex-desktop-linux;
patches = [ ./patches/codex-desktop-linux-gsettings-schemas.patch ]; patches = [./patches/codex-desktop-linux-gsettings-schemas.patch];
}; };
claudeDesktopSource = inputs.claude-desktop; claudeDesktopSource = inputs.claude-desktop;
claudeDesktop = pkgs.callPackage "${claudeDesktopSource}/nix/claude-desktop.nix" {}; claudeDesktop = pkgs.callPackage "${claudeDesktopSource}/nix/claude-desktop.nix" {};
claudeDesktopFhs = pkgs.callPackage "${claudeDesktopSource}/nix/fhs.nix" { claudeDesktopFhs = pkgs.callPackage "${claudeDesktopSource}/nix/fhs.nix" {
claude-desktop = claudeDesktop; claude-desktop = claudeDesktop;
}; };
codexDesktopLinux = codexDesktopLinux = let
let
flake = import "${codexDesktopLinuxSource}/flake.nix"; flake = import "${codexDesktopLinuxSource}/flake.nix";
self' = self' =
(flake.outputs { (flake.outputs {
@@ -34,7 +32,7 @@ let
in in
self'; self';
in in
makeEnable config "myModules.code" true { makeEnable config "myModules.code" true {
programs.direnv = { programs.direnv = {
enable = true; enable = true;
nix-direnv.enable = true; nix-direnv.enable = true;
@@ -101,7 +99,6 @@ makeEnable config "myModules.code" true {
# LLM Tools # LLM Tools
# antigravity # antigravity
claude-code claude-code
claudeDesktopFhs
codex codex
gemini-cli gemini-cli
opencode opencode
@@ -119,7 +116,6 @@ makeEnable config "myModules.code" true {
# Haskell # Haskell
cabal-install cabal-install
cabal2nix
ghc ghc
haskellPackages.hpack haskellPackages.hpack
haskellPackages.hasktags haskellPackages.hasktags
@@ -174,6 +170,10 @@ makeEnable config "myModules.code" true {
nil nil
alejandra alejandra
] ]
++ lib.optionals (config.networking.hostName != "jay-lenovo") [
claudeDesktopFhs
cabal2nix
]
++ ( ++ (
if pkgs.stdenv.hostPlatform.system == "x86_64-linux" if pkgs.stdenv.hostPlatform.system == "x86_64-linux"
then then
@@ -185,4 +185,4 @@ makeEnable config "myModules.code" true {
] ]
else [] else []
); );
} }

View File

@@ -1,5 +1,6 @@
{ {
config, config,
inputs,
lib, lib,
pkgs, pkgs,
... ...
@@ -11,6 +12,15 @@
myModules.wyoming.enable = false; myModules.wyoming.enable = false;
features.full.enable = true; features.full.enable = true;
nixpkgs.overlays = [
(_final: prev: let
stablePkgs = inputs.nixpkgs-stable.legacyPackages.${prev.stdenv.hostPlatform.system};
in {
shellcheck = stablePkgs.shellcheck;
shellcheck-minimal = stablePkgs.shellcheck-minimal or stablePkgs.shellcheck;
})
];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
android-studio android-studio
perf perf

View File

@@ -5,9 +5,12 @@
lib, lib,
makeEnable, makeEnable,
... ...
}: }: let
makeEnable config "myModules.notifications-tray-icon" true { system = pkgs.stdenv.hostPlatform.system;
nixpkgs.overlays = [ notificationsTrayIconPkgs = import pkgs.path {
inherit system;
config = pkgs.config or {};
overlays = [
inputs.notifications-tray-icon.overlays.default inputs.notifications-tray-icon.overlays.default
(final: prev: { (final: prev: {
haskellPackages = prev.haskellPackages.override (old: { haskellPackages = prev.haskellPackages.override (old: {
@@ -30,9 +33,11 @@ makeEnable config "myModules.notifications-tray-icon" true {
}); });
}) })
]; ];
};
in
makeEnable config "myModules.notifications-tray-icon" true {
home-manager.users.imalison = {config, ...}: let home-manager.users.imalison = {config, ...}: let
notificationsTrayIcon = pkgs.haskellPackages.notifications-tray-icon; notificationsTrayIcon = notificationsTrayIconPkgs.haskellPackages.notifications-tray-icon;
gmailExecStart = pkgs.writeShellScript "notifications-tray-icon-gmail" '' gmailExecStart = pkgs.writeShellScript "notifications-tray-icon-gmail" ''
creds_file="${config.xdg.configHome}/gws/client_secret.json" creds_file="${config.xdg.configHome}/gws/client_secret.json"
client_id=$(${pkgs.jq}/bin/jq -r '.installed.client_id // .web.client_id // empty' "$creds_file") client_id=$(${pkgs.jq}/bin/jq -r '.installed.client_id // .web.client_id // empty' "$creds_file")
@@ -84,4 +89,4 @@ makeEnable config "myModules.notifications-tray-icon" true {
"${gmailExecStart}"; "${gmailExecStart}";
}; };
}; };
} }

View File

@@ -7,13 +7,13 @@
... ...
}: let }: let
session = import ./session-variables.nix; session = import ./session-variables.nix;
in system = pkgs.stdenv.hostPlatform.system;
makeEnable config "myModules.xmonad" true { xmonadPkgs = import pkgs.path {
myModules.taffybar.enable = lib.mkDefault (config.myModules.desktop.shellUi == "taffybar"); inherit system;
config = pkgs.config or {};
nixpkgs.overlays = with inputs; [ overlays = [
xmonad.overlay inputs.xmonad.overlay
xmonad-contrib.overlay inputs.xmonad-contrib.overlay
(final: prev: { (final: prev: {
haskellPackages = prev.haskellPackages.override (old: { haskellPackages = prev.haskellPackages.override (old: {
overrides = overrides =
@@ -31,6 +31,10 @@ in
}) })
(import ../dotfiles/config/xmonad/overlay.nix) (import ../dotfiles/config/xmonad/overlay.nix)
]; ];
};
in
makeEnable config "myModules.xmonad" true {
myModules.taffybar.enable = lib.mkDefault (config.myModules.desktop.shellUi == "taffybar");
services.rumno.enable = true; services.rumno.enable = true;
@@ -48,13 +52,13 @@ in
}; };
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = [
# Haskell Desktop # Haskell Desktop
haskellPackages.xmonad xmonadPkgs.haskellPackages.xmonad
haskellPackages.imalison-xmonad xmonadPkgs.haskellPackages.imalison-xmonad
# haskellPackages.notifications-tray-icon # xmonadPkgs.haskellPackages.notifications-tray-icon
# haskellPackages.gtk-sni-tray # xmonadPkgs.haskellPackages.gtk-sni-tray
haskellPackages.dbus-hslogger xmonadPkgs.haskellPackages.dbus-hslogger
]; ];
home-manager.sharedModules = [ home-manager.sharedModules = [