115 lines
2.7 KiB
Nix
115 lines
2.7 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
inputs,
|
|
...
|
|
}: {
|
|
imports = [
|
|
./light-home.nix
|
|
./packages.nix
|
|
./email.nix
|
|
../modules
|
|
];
|
|
|
|
config = let
|
|
emacsPkg = with pkgs; ((emacsPackagesFor emacsNativeComp).emacsWithPackages (
|
|
epkgs: [
|
|
epkgs.mu4e
|
|
epkgs.pdf-tools
|
|
]
|
|
));
|
|
askpass = import ../scripts/askpass.nix {inherit pkgs;};
|
|
launchWithEmacsclient = import ../scripts/launch-with-emacsclient.nix {
|
|
inherit pkgs;
|
|
emacsPackage = emacsPkg;
|
|
};
|
|
in {
|
|
sops.secrets = {
|
|
emailPassword = {};
|
|
"mopidy/bandcamp" = {};
|
|
"mopidy/spotify" = {};
|
|
};
|
|
|
|
home.sessionVariables = {
|
|
EDITOR = "${emacsPkg}/bin/emacsclient -c -a ${emacsPkg}/bin/emacs";
|
|
LAUNCH_EDITOR = "${launchWithEmacsclient}/bin/launch-with-emacsclient";
|
|
SUDO_ASKPASS = "${askpass}/bin/askpass";
|
|
LSP_USE_PLISTS = "true";
|
|
};
|
|
|
|
modules = {
|
|
shell = {
|
|
eatIntegration = true;
|
|
starship.jjIntegration = true;
|
|
};
|
|
bat.extras = true;
|
|
packages.emacsPackage = emacsPkg;
|
|
mopidy.enable = true;
|
|
ollama.enable = true;
|
|
|
|
emacs = {
|
|
enable = true;
|
|
service = true;
|
|
package = emacsPkg;
|
|
mu4eMime = true;
|
|
org-protocol = true;
|
|
};
|
|
hyprland = {
|
|
inherit emacsPkg;
|
|
enable = true;
|
|
swaync = true;
|
|
waybar = {
|
|
enable = true;
|
|
battery = true;
|
|
style = ./config/waybar/style.css;
|
|
};
|
|
};
|
|
mbsync = {
|
|
enable = true;
|
|
passwordFile = config.sops.secrets.emailPassword.path;
|
|
};
|
|
ssh = {
|
|
enable = true;
|
|
hosts = config.sops.secrets."ssh/hosts".path;
|
|
};
|
|
vcs.git = {
|
|
browser = "${inputs.zen-browser.packages.${pkgs.system}.default}/bin/zen";
|
|
emacs = {
|
|
integration = true;
|
|
pkg = emacsPkg;
|
|
};
|
|
cliff = true;
|
|
sendmail = {
|
|
enable = true;
|
|
passwordFile = config.sops.secrets.emailPassword.path;
|
|
};
|
|
};
|
|
};
|
|
|
|
programs = {
|
|
zsh.enableVteIntegration = true;
|
|
mu.enable = true;
|
|
obs-studio = {
|
|
enable = true;
|
|
plugins = with pkgs; [
|
|
obs-studio-plugins.input-overlay
|
|
obs-studio-plugins.obs-backgroundremoval
|
|
obs-studio-plugins.obs-mute-filter
|
|
obs-studio-plugins.obs-pipewire-audio-capture
|
|
obs-studio-plugins.obs-source-clone
|
|
obs-studio-plugins.obs-source-record
|
|
obs-studio-plugins.obs-tuna
|
|
];
|
|
};
|
|
};
|
|
|
|
services = {
|
|
blanket.enable = true;
|
|
mpris-proxy.enable = true;
|
|
playerctld.enable = true;
|
|
};
|
|
|
|
manual.html.enable = true;
|
|
};
|
|
}
|