2023-03-13 15:46:24 +00:00
|
|
|
{ config, options, lib, pkgs, ... }:
|
2021-11-27 11:21:08 +00:00
|
|
|
|
2022-02-02 04:25:03 +00:00
|
|
|
let
|
2023-04-24 03:15:29 +00:00
|
|
|
dotfilesAsStorePath = config.lib.file.mkOutOfStoreSymlink config.home.mutableFile."library/dotfiles".path;
|
|
|
|
getDotfiles = path: "${dotfilesAsStorePath}/${path}";
|
2022-11-19 03:05:31 +00:00
|
|
|
in
|
|
|
|
{
|
2023-07-04 00:55:49 +00:00
|
|
|
imports = [
|
2023-07-04 10:43:43 +00:00
|
|
|
./modules/browser.nix
|
2023-07-04 10:43:01 +00:00
|
|
|
./modules/email.nix
|
2023-07-04 00:55:49 +00:00
|
|
|
./modules/keys.nix
|
|
|
|
./modules/git.nix
|
|
|
|
./modules/music.nix
|
|
|
|
];
|
|
|
|
|
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-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
|
|
|
vscodium-fhs # Visual Studio-lite and for those who suffer from Visual Studio withdrawal.
|
|
|
|
hledger # Trying to be a good accountant.
|
|
|
|
hledger-utils # For extra trying to be a better 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-07-05 03:51:44 +00:00
|
|
|
home.sessionVariables.PATH = "${config.home.mutableFile."library/dotfiles".path}/bin\${PATH:+:$PATH}";
|
2021-11-29 09:56:24 +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
|
|
|
};
|
|
|
|
|
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;
|
2021-12-02 14:02:29 +00:00
|
|
|
};
|
2021-12-25 13:56:50 +00:00
|
|
|
editors.emacs.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;
|
2023-07-02 03:39:57 +00:00
|
|
|
persistent = 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-05-07 15:13:19 +00:00
|
|
|
home.stateVersion = "23.05";
|
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
|
|
|
|
|
|
|
# All of the personal configurations.
|
|
|
|
xdg.configFile = {
|
2022-07-07 16:30:54 +00:00
|
|
|
"doom".source = getDotfiles "emacs";
|
|
|
|
"kitty".source = getDotfiles "kitty";
|
|
|
|
"nvim".source = getDotfiles "nvim";
|
|
|
|
"wezterm".source = getDotfiles "wezterm";
|
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-04-24 03:15:41 +00:00
|
|
|
# Fetching my dotfiles,...
|
2023-03-13 15:46:24 +00:00
|
|
|
"library/dotfiles" = {
|
|
|
|
url = "https://github.com/foo-dogsquared/dotfiles.git";
|
|
|
|
type = "git";
|
|
|
|
};
|
2023-03-17 14:40:29 +00:00
|
|
|
|
2023-04-24 03:15:41 +00:00
|
|
|
# ...Doom Emacs,...
|
2023-03-17 14:40:29 +00:00
|
|
|
"${config.xdg.configHome}/emacs" = {
|
|
|
|
url = "https://github.com/doomemacs/doomemacs.git";
|
|
|
|
type = "git";
|
|
|
|
extraArgs = [ "--depth" "1" ];
|
|
|
|
};
|
2023-03-24 02:26:16 +00:00
|
|
|
|
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
|
|
|
};
|
2023-03-20 16:17:26 +00:00
|
|
|
|
|
|
|
systemd.user.services.fetch-mutable-files = {
|
2023-06-08 13:19:17 +00:00
|
|
|
Service.ExecStartPost =
|
|
|
|
let
|
|
|
|
script = pkgs.writeShellScript "post-fetch-mutable-files" ''
|
|
|
|
# Automate installation of Doom Emacs.
|
|
|
|
${config.xdg.configHome}/emacs/bin/doom install --no-config --no-fonts --install --force
|
|
|
|
${config.xdg.configHome}/emacs/bin/doom sync
|
|
|
|
'';
|
|
|
|
in
|
|
|
|
builtins.toString script;
|
2023-03-20 16:17:26 +00:00
|
|
|
};
|
2021-11-27 08:04:01 +00:00
|
|
|
}
|