nixos-config/users/home-manager/foo-dogsquared/default.nix

125 lines
2.9 KiB
Nix

{ config, lib, pkgs, ... }:
{
imports = [ ./modules ];
# All of the home-manager-user-specific setup are here.
users.foo-dogsquared = {
music.enable = true;
dotfiles.enable = false;
programs = {
browsers.brave.enable = true;
browsers.firefox.enable = true;
browsers.misc.enable = true;
email.enable = true;
email.thunderbird.enable = true;
git.enable = true;
keys.gpg.enable = true;
keys.ssh.enable = true;
};
services.desktop.enable = true;
};
# The keyfile required to decrypt the secrets.
sops.age.keyFile = "${config.xdg.configHome}/age/user";
sops.secrets = lib.getSecrets ./secrets/secrets.yaml {
davfs2-credentials = {
path = "${config.home.homeDirectory}/.davfs2/davfs2.conf";
};
};
# My user shell of choice because I'm not a hipster.
programs.bash = {
enable = true;
historyControl = [ "erasedups" "ignoredups" "ignorespace" ];
historyIgnore = [
"cd"
"exit"
"lf"
"ls"
"nvim"
];
};
# Set nixpkgs config both outside and inside of home-manager.
nixpkgs.config = import ./config/nixpkgs/config.nix;
xdg.configFile."nixpkgs/config.nix".source = ./config/nixpkgs/config.nix;
home.packages = with pkgs; [
hledger # Trying to be a good accountant.
];
fonts.fontconfig.enable = true;
programs.atuin = {
settings = {
auto_sync = true;
sync_address = "http://atuin.plover.foodogsquared.one";
sync_frequency = "10m";
};
};
# Making my favorite terminal multiplexer right now.
programs.zellij.settings = {
default_layout = "editor";
layout_dir = builtins.toString ./config/zellij/layouts;
};
# My custom modules.
profiles = {
dev = {
enable = true;
shell.enable = true;
extras.enable = true;
shaders.enable = true;
servers.enable = true;
};
editors = {
emacs.enable = true;
vscode.enable = true;
};
desktop = {
enable = true;
graphics.enable = true;
video.enable = true;
documents.enable = true;
};
research.enable = true;
};
systemd.user.sessionVariables = {
MANPAGER = "nvim +Man!";
EDITOR = "nvim";
};
home.stateVersion = "23.11";
xdg.userDirs = {
enable = true;
createDirectories = true;
};
xdg.configFile = {
distrobox.source = ./config/distrobox;
kanidm.source = ./config/kanidm;
};
# Automating some files to be fetched on activation.
home.mutableFile = {
# ...my gopass secrets,...
".local/share/gopass/stores/personal" = {
url = "gitea@code.foodogsquared.one:foodogsquared/gopass-secrets-personal.git";
type = "gopass";
};
# ...and my custom theme to be a showoff.
"${config.xdg.dataHome}/base16/bark-on-a-tree" = {
url = "https://github.com/foo-dogsquared/base16-bark-on-a-tree-scheme.git";
type = "git";
};
};
}