configuration.nix/home/modules/packages/default.nix
2024-06-23 17:09:24 +02:00

187 lines
5.6 KiB
Nix

{ moduleWithSystem, ... }: {
flake.homeManagerModules = {
dev = moduleWithSystem (
top@{ ... }:
perSystem@{ pkgs, ... }: {
home.packages = with pkgs; [
openssh
procs
ripgrep
fswatch
nvim
];
}
);
essential = moduleWithSystem (
top@{ ... }:
perSystem@{ pkgs, ... }: {
home.packages = with pkgs; [
gopass
ffmpeg
transmission
speedtest-cli
];
}
);
random = moduleWithSystem (
top@{ ... }:
perSystem@{ pkgs, ... }: {
home.packages = with pkgs; [
xonotic
];
}
);
all = moduleWithSystem
(
top@{ ... }:
perSystem@{ pkgs, ... }:
rec {
imports = [ ../programs ];
programs.home-manager = { enable = true; };
catppuccin = {
enable = true;
flavor = "mocha";
};
gtk = {
enable = true;
};
home = rec {
username = "ivand";
homeDirectory = "/home/ivand";
sessionPath = [
"$HOME/.local/bin"
];
sessionVariables = {
PASSWORD_STORE_DIR = "${homeDirectory}/.password-store";
EDITOR = "nvim";
PAGER = "bat";
TERM = "screen-256color";
MAKEFLAGS = "-j 4";
};
pointerCursor = {
name = "Catppuccin-Mocha-Green-Cursors";
package = pkgs.catppuccin-cursors.mochaGreen;
};
};
systemd.user = {
timers = {
rbingwp = {
Timer = {
OnCalendar = "*-*-* 10:00:00";
Persistent = true;
};
Install = {
WantedBy = [ "timers.target" ];
};
};
};
services = {
wpd = {
Service = {
Environment = [
"PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.swaybg}/bin"
];
ExecStart = [ "${pkgs.nushell}/bin/nu -c 'swaybg -i ((xdg-user-dir PICTURES) | path split | path join bg.png)'" ];
};
};
bingwp = {
Service = {
Type = "oneshot";
Environment = [
"PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.nushell}/bin"
];
ExecStart = [ "${pkgs.scripts}/bin/bingwp" ];
};
};
rbingwp = {
Install = {
WantedBy = [ "sway-session.target" ];
};
Unit = {
Description = "Restart bingwp and wpd services";
After = "graphical-session-pre.target";
PartOf = "graphical-session.target";
};
Service = {
Type = "oneshot";
ExecStart = [ "${pkgs.nushell}/bin/nu -c '${pkgs.systemd}/bin/systemctl --user restart bingwp.service; ${pkgs.systemd}/bin/systemctl --user restart wpd.service'" ];
};
};
};
};
xdg = {
enable = true;
userDirs = {
enable = true;
createDirectories = true;
desktop = "${home.homeDirectory}/dt";
documents = "${home.homeDirectory}/doc";
download = "${home.homeDirectory}/dl";
pictures = "${home.homeDirectory}/pic";
videos = "${home.homeDirectory}/vid";
templates = "${home.homeDirectory}/tpl";
publicShare = "${home.homeDirectory}/pub";
music = "${home.homeDirectory}/mus";
};
mimeApps = {
enable = true;
defaultApplications = {
"text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop";
"x-scheme-handler/mailto" = "userapp-Thunderbird-LDALA2.desktop";
"message/rfc822" = "userapp-Thunderbird-LDALA2.desktop";
"x-scheme-handler/mid" = "userapp-Thunderbird-LDALA2.desktop";
};
};
};
}
);
reminders =
moduleWithSystem (
top@{ ... }:
perSystem@{ pkgs, ... }: {
systemd.user = {
timers = {
track-time = {
Timer = {
OnCalendar = "Mon..Fri *-*-* 16:00:*";
Persistent = true;
};
Install = {
WantedBy = [ "timers.target" ];
};
};
};
services = {
track-time = {
Service = {
Type = "oneshot";
ExecStart = [ "${pkgs.libnotify}/bin/notify-send -u critical 'Reminder: Track time'" ];
};
};
};
};
}
);
cust = moduleWithSystem (
top@{ ... }:
perSystem@{ pkgs, ... }: {
imports = [ ../programs/zsh ../programs/nushell ../programs/starship ../programs/carapace ../programs/bottom ../programs/firefox ];
home.packages = with pkgs; [
openssh
procs
ripgrep
fswatch
];
}
);
};
}