nixos/home-manager/fred.nix
rope a283ab23de ghostty: share warm-instance daemon across desktops
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 14:01:17 +01:00

66 lines
1.8 KiB
Nix

# home-manager/fred.nix
{ config, pkgs, lib, inputs, osConfig, ... }:
let
isDesktop = lib.elem osConfig.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ];
in
{
home.stateVersion = "25.11";
home.packages = with pkgs; [
#
];
home.file.".config/nixpkgs/config.nix".text = ''
{ allowUnfree = true; }
'';
# Wallpaper source — consumed by stylix's image option (set in
# settings/stylix.nix) and by hyprpaper at session start.
home.file.".local/share/backgrounds/wallpaper.png".source =
"${inputs.self}/walls/wallpaper.png";
# btop — stylix's btop target writes the colour theme; we keep our
# non-colour preferences here.
programs.btop = {
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;
gtk-single-instance = true;
cursor-style = "bar";
cursor-style-blink = true;
};
};
# Warm Ghostty instance — new windows attach via gtk-single-instance.
systemd.user.services.ghostty-daemon = lib.mkIf isDesktop {
Unit = {
Description = "Ghostty warm instance (no window)";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.ghostty}/bin/ghostty --initial-window=false";
Restart = "always";
};
Install.WantedBy = [ "graphical-session.target" ];
};
}