2024-09-10 00:10:02 +00:00
|
|
|
{ config, lib, pkgs, foodogsquaredLib, bahaghariLib, ... }@attrs:
|
2021-11-27 11:21:08 +00:00
|
|
|
|
2024-03-28 10:16:51 +00:00
|
|
|
let
|
|
|
|
inherit (bahaghariLib.tinted-theming) importScheme;
|
2024-08-24 05:56:15 +00:00
|
|
|
userCfg = config.users.foo-dogsquared;
|
2024-03-28 10:16:51 +00:00
|
|
|
in
|
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 = {
|
2024-01-07 02:34:28 +00:00
|
|
|
dotfiles.enable = true;
|
2023-12-12 01:43:25 +00:00
|
|
|
|
|
|
|
programs = {
|
2023-12-29 10:48:52 +00:00
|
|
|
dconf.enable = true;
|
2023-12-12 01:43:25 +00:00
|
|
|
browsers.brave.enable = true;
|
|
|
|
browsers.firefox.enable = true;
|
|
|
|
browsers.misc.enable = true;
|
2023-12-17 10:01:39 +00:00
|
|
|
doom-emacs.enable = true;
|
2024-02-07 00:02:57 +00:00
|
|
|
nixvim.enable = true;
|
2023-12-12 01:43:25 +00:00
|
|
|
email.enable = true;
|
|
|
|
email.thunderbird.enable = true;
|
2023-12-17 12:12:31 +00:00
|
|
|
vs-code.enable = true;
|
2024-09-03 10:09:33 +00:00
|
|
|
|
|
|
|
custom-homepage = {
|
|
|
|
enable = true;
|
2024-09-04 06:48:04 +00:00
|
|
|
sections = lib.mkMerge [
|
|
|
|
# Merge the upstream since any new files will be overridden. It also
|
|
|
|
# allows us to attach data to it such as new links to the hardcoded
|
|
|
|
# sections.
|
|
|
|
(lib.importTOML "${config.users.foo-dogsquared.programs.custom-homepage.package.src}/data/foodogsquared-homepage/links.toml")
|
|
|
|
|
2024-09-03 10:09:33 +00:00
|
|
|
{
|
2024-09-04 06:48:04 +00:00
|
|
|
services = {
|
|
|
|
name = "Local services";
|
|
|
|
flavorText = "For your local productivity";
|
|
|
|
textOnly = true;
|
|
|
|
weight = (-50);
|
2024-09-10 00:10:02 +00:00
|
|
|
|
|
|
|
icon = {
|
|
|
|
iconset = "material-design-icons";
|
|
|
|
name = "room-service";
|
|
|
|
};
|
2024-09-04 06:48:04 +00:00
|
|
|
};
|
2024-09-03 10:09:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
(lib.mkIf config.services.archivebox.webserver.enable {
|
2024-09-04 06:48:04 +00:00
|
|
|
services.links = lib.singleton {
|
2024-09-03 10:09:33 +00:00
|
|
|
url = "http://localhost:${builtins.toString config.state.ports.archivebox-webserver.value}";
|
|
|
|
text = "Archive webserver";
|
|
|
|
};
|
2024-09-06 13:38:55 +00:00
|
|
|
|
|
|
|
YOHOOHOOHOOHOO.links = lib.mkBefore (lib.singleton {
|
|
|
|
url = "http://localhost:${builtins.toString config.state.ports.archivebox-webserver.value}";
|
|
|
|
text = "ArchiveBox webserver";
|
|
|
|
});
|
2024-09-03 10:09:33 +00:00
|
|
|
})
|
2024-09-10 00:10:02 +00:00
|
|
|
|
|
|
|
(lib.mkIf (attrs.nixosConfig.suites.filesystem.setups.archive.enable or false) {
|
|
|
|
YOHOOHOOHOOHOO.links = lib.mkBefore (lib.singleton {
|
|
|
|
url = "file://${attrs.nixosConfig.state.paths.archive}";
|
|
|
|
text = "Personal archive";
|
|
|
|
});
|
|
|
|
})
|
2024-09-03 10:09:33 +00:00
|
|
|
];
|
|
|
|
};
|
2023-12-12 01:43:25 +00:00
|
|
|
};
|
2023-12-12 01:09:45 +00:00
|
|
|
|
2024-09-07 14:11:51 +00:00
|
|
|
services.backup.enable = true;
|
|
|
|
|
2023-12-13 03:13:52 +00:00
|
|
|
setups = {
|
|
|
|
desktop.enable = true;
|
2023-12-18 00:58:34 +00:00
|
|
|
development.enable = true;
|
2023-12-13 09:47:46 +00:00
|
|
|
fonts.enable = true;
|
2023-12-13 03:13:52 +00:00
|
|
|
music.enable = true;
|
2023-12-18 10:45:50 +00:00
|
|
|
music.mpd.enable = true;
|
2024-09-11 03:31:10 +00:00
|
|
|
music.spotify.enable = true;
|
2024-09-03 10:12:46 +00:00
|
|
|
research.enable = true;
|
2023-12-13 03:13:52 +00:00
|
|
|
};
|
2023-12-12 01:43:25 +00:00
|
|
|
};
|
2023-07-04 00:55:49 +00:00
|
|
|
|
2024-02-13 04:24:26 +00:00
|
|
|
# Set the profile picture. Most of the desktop environments should support
|
|
|
|
# this.
|
|
|
|
home.file.".face".source = ./files/logo.png;
|
|
|
|
|
2023-07-24 09:48:15 +00:00
|
|
|
# The keyfile required to decrypt the secrets.
|
|
|
|
sops.age.keyFile = "${config.xdg.configHome}/age/user";
|
|
|
|
|
2024-01-20 14:48:11 +00:00
|
|
|
# Add our own projects directory since most programs can't decide where it is
|
|
|
|
# properly.
|
|
|
|
xdg.userDirs.extraConfig.XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects";
|
|
|
|
|
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-12-18 10:45:50 +00:00
|
|
|
gopass # An improved version of the password manager for hipsters.
|
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
|
|
|
|
2023-12-10 04:27:17 +00:00
|
|
|
home.stateVersion = "23.11";
|
2022-05-20 06:47:09 +00:00
|
|
|
|
2022-07-05 14:28:03 +00:00
|
|
|
xdg.configFile = {
|
2023-10-17 11:43:38 +00:00
|
|
|
distrobox.source = ./config/distrobox;
|
2024-02-25 09:25:33 +00:00
|
|
|
kanidm.source = ./config/kanidm/config;
|
2022-07-05 14:28:03 +00:00
|
|
|
};
|
2023-03-13 15:46:24 +00:00
|
|
|
|
2024-08-24 05:56:15 +00:00
|
|
|
# Holding these in for whatever reason.
|
|
|
|
state.packages = {
|
|
|
|
diff = pkgs.diffoscope;
|
|
|
|
pager = config.programs.bat.package;
|
|
|
|
editor =
|
|
|
|
if userCfg.programs.nixvim.enable then
|
|
|
|
config.programs.nixvim.finalPackage
|
|
|
|
else
|
|
|
|
config.programs.neovim.package;
|
|
|
|
};
|
|
|
|
|
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
|
|
|
};
|
2024-02-11 07:20:09 +00:00
|
|
|
|
2024-02-25 09:57:10 +00:00
|
|
|
_module.args.defaultScheme = "bark-on-a-tree";
|
2024-02-11 07:20:09 +00:00
|
|
|
|
2024-02-25 09:57:10 +00:00
|
|
|
bahaghari.tinted-theming.schemes = {
|
|
|
|
bark-on-a-tree =
|
2024-03-28 10:16:51 +00:00
|
|
|
importScheme ./files/tinted-theming/base16/bark-on-a-tree.yaml;
|
2024-02-25 09:57:10 +00:00
|
|
|
albino-bark-on-a-tree =
|
2024-03-28 10:16:51 +00:00
|
|
|
importScheme ./files/tinted-theming/base16/albino-bark-on-a-tree.yaml;
|
2024-02-11 07:20:09 +00:00
|
|
|
};
|
2021-11-27 08:04:01 +00:00
|
|
|
}
|