2026-05-11 19:44:07 +01:00
|
|
|
# home-manager/fred.nix
|
2026-04-16 20:33:40 +01:00
|
|
|
{ config, pkgs, lib, inputs, osConfig, ... }:
|
|
|
|
|
let
|
|
|
|
|
isDesktop = lib.elem osConfig.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ];
|
|
|
|
|
in
|
2026-01-20 08:41:53 +00:00
|
|
|
{
|
|
|
|
|
home.stateVersion = "25.11";
|
2026-05-11 19:44:07 +01:00
|
|
|
|
2026-01-20 08:41:53 +00:00
|
|
|
home.packages = with pkgs; [
|
|
|
|
|
#
|
|
|
|
|
];
|
2026-02-24 19:17:42 +00:00
|
|
|
|
2026-02-24 19:18:42 +00:00
|
|
|
home.file.".config/nixpkgs/config.nix".text = ''
|
|
|
|
|
{ allowUnfree = true; }
|
|
|
|
|
'';
|
2026-04-16 20:17:38 +01:00
|
|
|
|
2026-05-11 19:44:07 +01:00
|
|
|
# Wallpaper source — consumed by stylix's image option (set in
|
|
|
|
|
# settings/stylix.nix) and by hyprpaper at session start.
|
2026-04-16 20:17:38 +01:00
|
|
|
home.file.".local/share/backgrounds/wallpaper.png".source =
|
|
|
|
|
"${inputs.self}/walls/wallpaper.png";
|
|
|
|
|
|
2026-05-11 19:44:07 +01:00
|
|
|
# btop — stylix's btop target writes the colour theme; we keep our
|
|
|
|
|
# non-colour preferences here.
|
|
|
|
|
programs.btop = lib.mkIf isDesktop {
|
|
|
|
|
enable = true;
|
|
|
|
|
settings = {
|
|
|
|
|
theme_background = false;
|
|
|
|
|
vim_keys = false;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Ghostty — stylix's ghostty target writes the colour theme.
|
|
|
|
|
programs.ghostty = lib.mkIf isDesktop {
|
|
|
|
|
enable = true;
|
|
|
|
|
settings = {
|
|
|
|
|
font-family = "FiraMono Nerd Font";
|
|
|
|
|
font-size = 11;
|
|
|
|
|
font-thicken = true;
|
|
|
|
|
window-padding-x = 10;
|
|
|
|
|
window-padding-y = 10;
|
|
|
|
|
window-padding-balance = true;
|
|
|
|
|
background-opacity = 0.98;
|
|
|
|
|
confirm-close-surface = false;
|
|
|
|
|
gtk-titlebar = false;
|
|
|
|
|
cursor-style = "bar";
|
|
|
|
|
cursor-style-blink = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
2026-05-11 21:16:47 +01:00
|
|
|
|
|
|
|
|
# VSCodium — stylix's vscode target injects workbench.colorCustomizations.
|
|
|
|
|
# mutableExtensionsDir keeps GUI-installed extensions working.
|
|
|
|
|
programs.vscode = lib.mkIf isDesktop {
|
|
|
|
|
enable = true;
|
2026-05-12 21:12:58 +01:00
|
|
|
# Wrap codium so user-installed extension native addons (.node files from
|
|
|
|
|
# npm) can find libstdc++.so.6 — those binaries have empty RPATHs and
|
|
|
|
|
# Electron's patched interpreter won't pick up nix-ld's stubs.
|
2026-05-12 21:15:06 +01:00
|
|
|
# The `// { pname; version }` forwards those attrs so programs.vscode's
|
|
|
|
|
# module (which reads cfg.package.pname) can still identify the variant.
|
|
|
|
|
package =
|
|
|
|
|
let base = pkgs.symlinkJoin {
|
|
|
|
|
name = "vscodium";
|
|
|
|
|
paths = [ pkgs.vscodium ];
|
|
|
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
|
|
|
postBuild = ''
|
|
|
|
|
wrapProgram $out/bin/codium \
|
|
|
|
|
--prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath [ pkgs.stdenv.cc.cc.lib ]}"
|
|
|
|
|
'';
|
2026-05-14 14:58:13 +01:00
|
|
|
}; in base // { inherit (pkgs.vscodium) pname version; meta = pkgs.vscodium.meta // { mainProgram = "codium"; }; };
|
2026-05-11 21:16:47 +01:00
|
|
|
mutableExtensionsDir = true;
|
|
|
|
|
profiles.default.userSettings = {
|
|
|
|
|
"window.menuBarVisibility" = "compact";
|
|
|
|
|
"window.commandCenter" = false;
|
|
|
|
|
"claudeCode.preferredLocation" = "panel";
|
|
|
|
|
"git.enableSmartCommit" = true;
|
|
|
|
|
"git.autofetch" = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
2026-01-20 08:41:53 +00:00
|
|
|
}
|