- nix-flatpak input; discord, telegram, qbz as Flathub flatpaks; removes qbz and proton-pass-cli flake inputs - proton-pass-cli and claude-code from nixpkgs-unstable via extraSpecialArgs - dconf color-scheme = prefer-dark replaces per-session gsettings call Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
114 lines
3.8 KiB
Nix
114 lines
3.8 KiB
Nix
{ pkgs, unstable, ... }:
|
|
|
|
# home-manager profile for darman on terra. The Hyprland config lives in its
|
|
# own module (./hyprland.nix); this handles the rest of the user session
|
|
# (theming, terminal, packages).
|
|
{
|
|
imports = [ ./home/hyprland.nix ];
|
|
|
|
home.stateVersion = "26.05";
|
|
home.keyboard.layout = "de";
|
|
|
|
programs.git.enable = true;
|
|
programs.home-manager.enable = true;
|
|
|
|
# Give darman a managed ~/.zshrc. Without any zsh dotfile, zsh runs its
|
|
# first-run `zsh-newuser-install` prompt on every new terminal. oh-my-zsh +
|
|
# powerlevel10k still come from the system /etc/zshrc (common.nix), which
|
|
# always loads for interactive shells before this ~/.zshrc.
|
|
programs.zsh.enable = true;
|
|
|
|
# ---- Dracula theming (GTK + Qt) ----
|
|
gtk = {
|
|
enable = true;
|
|
theme = {
|
|
name = "Dracula";
|
|
package = pkgs.dracula-theme;
|
|
};
|
|
};
|
|
|
|
# GTK4 / libadwaita apps ignore gtk-theme-name; they only read the dconf
|
|
# color-scheme key via the portal. Writing it here persists it across reboots
|
|
# (the gsettings call in the Hyprland autostart only lasts the session).
|
|
dconf.settings."org/gnome/desktop/interface" = {
|
|
color-scheme = "prefer-dark";
|
|
gtk-theme = "Dracula";
|
|
};
|
|
|
|
# dracula-qt5-theme ships only a qt5ct color scheme (no style plugin), so
|
|
# Qt has to go through qt(5|6)ct rather than a direct style/platformTheme
|
|
# name. "qtct" pulls in both qt5ct and qt6ct; qt6ct reads its own config
|
|
# but understands the same scheme file format, so both point at it.
|
|
qt = {
|
|
enable = true;
|
|
platformTheme.name = "qtct";
|
|
};
|
|
xdg.configFile."qt5ct/qt5ct.conf".text = ''
|
|
[Appearance]
|
|
color_scheme_path=${pkgs.dracula-qt5-theme}/share/qt5ct/colors/Dracula.conf
|
|
custom_palette=true
|
|
style=Fusion
|
|
'';
|
|
xdg.configFile."qt6ct/qt6ct.conf".text = ''
|
|
[Appearance]
|
|
color_scheme_path=${pkgs.dracula-qt5-theme}/share/qt5ct/colors/Dracula.conf
|
|
custom_palette=true
|
|
style=Fusion
|
|
'';
|
|
|
|
# Custom mime-info defs (sln/slnx). xdg.mime's update-mime-database only
|
|
# indexes share/mime/packages inside the hm profile itself, so this has to
|
|
# be a package in home.packages, not a plain xdg.dataFile.
|
|
xdg.mime.enable = true;
|
|
xdg.configFile."quickshell".source = ../../dotfiles/quickshell;
|
|
xdg.configFile."scripts".source = ../../dotfiles/scripts;
|
|
home.packages = [
|
|
(pkgs.writeTextDir "share/mime/packages/application-x-ms-sln.xml"
|
|
(builtins.readFile ../../dotfiles/mime/application-x-ms-sln.xml))
|
|
unstable.claude-code
|
|
pkgs.quickshell
|
|
pkgs.opencode
|
|
pkgs.hyprcursor
|
|
pkgs.bibata-cursors
|
|
];
|
|
|
|
programs.alacritty = {
|
|
enable = true;
|
|
settings = {
|
|
# NixOS has no /bin/zsh (only /bin/sh); point at the real store path or
|
|
# alacritty exits instantly trying to exec a missing shell — which looked
|
|
# like "the SUPER+Return keybind doesn't work".
|
|
env.SHELL = "${pkgs.zsh}/bin/zsh";
|
|
terminal.shell = {
|
|
program = "${pkgs.zsh}/bin/zsh";
|
|
args = [ "-l" ];
|
|
};
|
|
window = {
|
|
padding = { x = 10; y = 10; };
|
|
opacity = 0.8;
|
|
};
|
|
font.normal = {
|
|
family = "DepartureMono Nerd Font";
|
|
style = "Regular";
|
|
};
|
|
colors.primary = {
|
|
background = "#222831";
|
|
foreground = "#ffd369";
|
|
};
|
|
# hints.enabled = [
|
|
# {
|
|
# hyperlinks = true;
|
|
# regex = "(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\s{-}\\^⟨⟩`]+";
|
|
# command = "xdg-open";
|
|
# mouse.enabled = true;
|
|
# }
|
|
# ];
|
|
keyboard.bindings = [
|
|
# ESC + CR: nix has no literal escape for the ESC control char, so
|
|
# fromJSON decodes it from the JSON unicode escape below.
|
|
{ key = "Return"; mods = "Shift"; chars = builtins.fromJSON ''"\u001B\r"''; }
|
|
];
|
|
};
|
|
};
|
|
}
|