2023-10-02 06:26:11 +00:00
|
|
|
{ config, lib, pkgs, ... }:
|
2021-11-27 11:21:08 +00:00
|
|
|
|
2022-11-19 03:05:31 +00:00
|
|
|
{
|
2023-12-12 01:43:25 +00:00
|
|
|
imports = [ ./modules ];
|
|
|
|
|
|
|
|
# All of the home-manager-user-specific setup are here.
|
|
|
|
users.foo-dogsquared = {
|
|
|
|
music.enable = true;
|
2023-12-12 01:05:46 +00:00
|
|
|
dotfiles.enable = false;
|
2023-12-12 01:43:25 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
};
|
|
|
|
};
|
2023-07-04 00:55:49 +00:00
|
|
|
|
2023-07-24 09:48:15 +00:00
|
|
|
# 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";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-11-26 04:08:00 +00:00
|
|
|
# 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"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2023-07-07 09:12:08 +00:00
|
|
|
# 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;
|
|
|
|
|
2021-12-08 04:18:37 +00:00
|
|
|
home.packages = with pkgs; [
|
2023-04-24 03:15:29 +00:00
|
|
|
hledger # Trying to be a good accountant.
|
2021-12-25 13:56:50 +00:00
|
|
|
];
|
2021-12-08 04:18:37 +00:00
|
|
|
|
2021-11-29 09:56:24 +00:00
|
|
|
fonts.fontconfig.enable = true;
|
2022-07-20 09:41:27 +00:00
|
|
|
|
2023-06-16 05:16:12 +00:00
|
|
|
programs.atuin = {
|
|
|
|
settings = {
|
|
|
|
auto_sync = true;
|
|
|
|
sync_address = "http://atuin.plover.foodogsquared.one";
|
|
|
|
sync_frequency = "10m";
|
|
|
|
};
|
|
|
|
};
|
2022-07-20 09:41:27 +00:00
|
|
|
|
2023-06-27 04:57:29 +00:00
|
|
|
# Making my favorite terminal multiplexer right now.
|
2023-06-23 10:14:41 +00:00
|
|
|
programs.zellij.settings = {
|
|
|
|
default_layout = "editor";
|
2023-06-27 04:57:29 +00:00
|
|
|
layout_dir = builtins.toString ./config/zellij/layouts;
|
2023-06-23 10:14:41 +00:00
|
|
|
};
|
|
|
|
|
2023-08-03 15:00:55 +00:00
|
|
|
# Self-inflicted telemetry.
|
|
|
|
services.activitywatch = {
|
|
|
|
enable = true;
|
|
|
|
watchers = {
|
|
|
|
aw-watcher-afk.package = pkgs.activitywatch;
|
|
|
|
aw-watcher-window.package = pkgs.activitywatch;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-08-06 06:05:34 +00:00
|
|
|
# My preferred file indexing service.
|
2022-01-30 23:57:38 +00:00
|
|
|
services.recoll = {
|
|
|
|
enable = true;
|
2022-08-06 06:05:34 +00:00
|
|
|
startAt = "daily";
|
2022-01-30 23:57:38 +00:00
|
|
|
settings = {
|
|
|
|
topdirs = "~/Downloads ~/Documents ~/library";
|
|
|
|
"skippedNames+" = "node_modules";
|
|
|
|
|
|
|
|
"~/library/projects" = {
|
|
|
|
"skippedNames+" = ".editorconfig .gitignore result flake.lock go.sum";
|
|
|
|
};
|
|
|
|
|
|
|
|
"~/library/projects/software" = {
|
|
|
|
"skippedNames+" = "target result";
|
|
|
|
};
|
|
|
|
};
|
2021-12-08 04:18:37 +00:00
|
|
|
};
|
|
|
|
|
2021-11-29 09:56:24 +00:00
|
|
|
# My custom modules.
|
2022-01-09 05:38:59 +00:00
|
|
|
profiles = {
|
2021-12-02 14:02:29 +00:00
|
|
|
dev = {
|
|
|
|
enable = true;
|
|
|
|
shell.enable = true;
|
2022-04-30 12:30:22 +00:00
|
|
|
extras.enable = true;
|
2023-09-24 11:22:00 +00:00
|
|
|
shaders.enable = true;
|
2023-10-17 12:19:51 +00:00
|
|
|
servers.enable = true;
|
2021-12-02 14:02:29 +00:00
|
|
|
};
|
2023-09-04 13:40:02 +00:00
|
|
|
editors = {
|
|
|
|
emacs.enable = true;
|
|
|
|
vscode.enable = true;
|
|
|
|
};
|
2021-11-30 01:03:05 +00:00
|
|
|
desktop = {
|
|
|
|
enable = true;
|
|
|
|
graphics.enable = true;
|
2023-03-08 15:46:06 +00:00
|
|
|
video.enable = true;
|
|
|
|
documents.enable = true;
|
2021-11-30 01:03:05 +00:00
|
|
|
};
|
2021-12-11 05:37:27 +00:00
|
|
|
research.enable = true;
|
2021-11-29 09:56:24 +00:00
|
|
|
};
|
2022-01-09 05:38:59 +00:00
|
|
|
|
2022-08-06 06:05:34 +00:00
|
|
|
services.bleachbit = {
|
|
|
|
enable = true;
|
2022-10-11 23:02:24 +00:00
|
|
|
cleaners = [
|
|
|
|
"bash.history"
|
|
|
|
"winetricks.temporary_files"
|
|
|
|
"wine.tmp"
|
|
|
|
"discord.history"
|
|
|
|
"google_earth.temporary_files"
|
|
|
|
"google_toolbar.search_history"
|
|
|
|
"thumbnails.cache"
|
|
|
|
"zoom.logs"
|
2023-07-02 03:39:57 +00:00
|
|
|
"vim.history"
|
2022-10-11 23:02:24 +00:00
|
|
|
];
|
2022-08-06 06:05:34 +00:00
|
|
|
withChatCleanup = true;
|
2023-02-11 07:21:50 +00:00
|
|
|
withBrowserCleanup = true;
|
2022-08-06 06:05:34 +00:00
|
|
|
};
|
2022-03-10 02:12:03 +00:00
|
|
|
|
2022-07-14 00:00:33 +00:00
|
|
|
systemd.user.sessionVariables = {
|
2022-02-05 10:58:42 +00:00
|
|
|
MANPAGER = "nvim +Man!";
|
|
|
|
EDITOR = "nvim";
|
|
|
|
};
|
|
|
|
|
2023-12-10 04:27:17 +00:00
|
|
|
home.stateVersion = "23.11";
|
2022-05-20 06:47:09 +00:00
|
|
|
|
2022-01-12 02:46:25 +00:00
|
|
|
xdg.userDirs = {
|
|
|
|
enable = true;
|
|
|
|
createDirectories = true;
|
|
|
|
};
|
2022-07-05 14:28:03 +00:00
|
|
|
|
|
|
|
xdg.configFile = {
|
2023-10-17 11:43:38 +00:00
|
|
|
distrobox.source = ./config/distrobox;
|
2023-10-17 10:36:32 +00:00
|
|
|
kanidm.source = ./config/kanidm;
|
2022-07-05 14:28:03 +00:00
|
|
|
};
|
2023-03-13 15:46:24 +00:00
|
|
|
|
2023-04-24 03:15:41 +00:00
|
|
|
# Automating some files to be fetched on activation.
|
2023-03-13 15:46:24 +00:00
|
|
|
home.mutableFile = {
|
2023-07-22 03:05:52 +00:00
|
|
|
# ...my gopass secrets,...
|
|
|
|
".local/share/gopass/stores/personal" = {
|
|
|
|
url = "gitea@code.foodogsquared.one:foodogsquared/gopass-secrets-personal.git";
|
|
|
|
type = "gopass";
|
|
|
|
};
|
|
|
|
|
2023-04-24 03:15:41 +00:00
|
|
|
# ...and my custom theme to be a showoff.
|
2023-03-24 02:26:16 +00:00
|
|
|
"${config.xdg.dataHome}/base16/bark-on-a-tree" = {
|
|
|
|
url = "https://github.com/foo-dogsquared/base16-bark-on-a-tree-scheme.git";
|
|
|
|
type = "git";
|
|
|
|
};
|
2023-03-13 15:46:24 +00:00
|
|
|
};
|
2021-11-27 08:04:01 +00:00
|
|
|
}
|