nix-configuration/home-manager/becky-dingleberry.nix
2025-01-07 22:58:07 +01:00

173 lines
4.5 KiB
Nix

{
config,
pkgs,
...
}:
# TODO: Plasma does not see home manager installed packages
let
username = "becky";
homedir = "/home/${username}";
zshSourceDirs = [
./zsh/dingleberry
];
in
{
# Breaks SDDM
# targets.genericLinux.enable = true;
# Enable XDG for non terminal apps
# https://github.com/nix-community/home-manager/issues/1439
programs.bash.enable = true;
xdg = {
enable = true;
mime = {
enable = true;
};
mimeApps = {
defaultApplications = {
"inode/directory"="org.kde.krusader.desktop";
"model/3mf"="org.supermaker.superslicer.desktop";
"x-scheme-handler/geo"="google-maps-geo-handler.desktop";
"x-scheme-handler/http"="userapp-Firefox-5T0SK2.desktop";
"x-scheme-handler/https"="userapp-Firefox-5T0SK2.desktop";
"x-scheme-handler/mailto"="thunderbird.desktop";
"x-scheme-handler/slack"="slack.desktop";
"x-scheme-handler/tel"="org.kde.kdeconnect.handler.desktop";
"x-scheme-handler/tg"="org.telegram.desktop._18faa92ddda377ceaa5a576303af9e59.desktop";
"x-scheme-handler/chrome"="userapp-Firefox-5T0SK2.desktop";
"text/html"="userapp-Firefox-5T0SK2.desktop";
"application/x-extension-htm"="userapp-Firefox-5T0SK2.desktop";
"application/x-extension-html"="userapp-Firefox-5T0SK2.desktop";
"application/x-extension-shtml"="userapp-Firefox-5T0SK2.desktop";
"application/xhtml+xml"="userapp-Firefox-5T0SK2.desktop";
"application/x-extension-xhtml"="userapp-Firefox-5T0SK2.desktop";
"application/x-extension-xht"="userapp-Firefox-5T0SK2.desktop";
};
enable = true;
};
# portal = {
# enable = true;
# };
};
nixGL.packages = pkgs.nixgl;
nixGL.defaultWrapper = "nvidia";
home.username = username;
home.homeDirectory = homedir;
home.stateVersion = "24.11";
home.packages = with pkgs; [
nixd
# TODO: Move from system to nix
# awscli2
# k9s
# kubectl
];
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.git = {
enable = true;
userName = "Arnie";
userEmail = "i@cechis.cz";
ignores = [
".vscode"
".direnv"
".devenv"
".envrc"
];
extraConfig = {
core = {
autocrlf = "input";
# TODO: Provide through nix
hooksPath = "~/.git/hooks";
editor = "vim";
};
pull.rebase = false;
init.defaultBranch = "main";
};
};
programs.ghostty = {
enable = true;
installBatSyntax = true;
installVimSyntax = true;
enableZshIntegration = true;
package = config.lib.nixGL.wrap pkgs.ghostty;
settings = {
theme = "catppuccin-mocha";
font-size = 10;
window-width = 9999;
window-height = 9999;
};
};
programs.zsh = {
enable = true;
shellAliases = {
hm-switch = "home-manager switch --impure --flake ~/.config/nix";
};
dirHashes = {
mac = "${homedir}/storage/.macshare";
nix = "${homedir}/.config/nix";
circuitry = "${homedir}/storage/.circuitry";
dev = "${homedir}/storage/.devstack";
ai = "${homedir}/storage/.devstack/ai";
life = "${homedir}/storage/.life";
vysokyujezd = "${homedir}/storage/.life/stavby/vysoky-ujezd";
work = "/mnt/yosuke/share/arnie/work";
smarthome = "/mnt/yosuke/share/arnie/smarthome";
# Hardware
v2-red = "${homedir}/storage/.hardware/3d-print/v2-red-V2-2201270017";
"3dprint" = "${homedir}/storage/.hardware/3d-print";
# Development
projects = "${homedir}/storage/.devstack/projects";
yp = "${homedir}/storage/.devstack/projects/yp";
ys = "${homedir}/storage/.devstack/projects/ys";
investbay = "${homedir}/storage/.devstack/projects/investbay";
resource = "${homedir}/storage/.devstack/resource";
cechis = "${homedir}/storage/.devstack/projects/dev.cechis.cz";
gh = "${homedir}/storage/.devstack/projects/github/Sharsie";
rpi = "${homedir}/storage/.devstack/projects/hardware/rpi";
c4 = "/mnt/yosuke/share/arnie/smarthome/control4/drivers";
};
initExtra = ''
${builtins.concatStringsSep "\n" (
builtins.map (dir: ''
for file in ${dir}/*.zsh; do
source "$file"
done
'') zshSourceDirs
)}
autoload -U +X bashcompinit && bashcompinit
source <(kubectl completion zsh)
complete -C '/usr/local/bin/aws_completer' aws
'';
};
home.sessionVariables = {
EDITOR = "vim";
GO111MODULE = "on";
TERMINAL = "ghostty";
};
}