summaryrefslogtreecommitdiff
path: root/home-modules/apps/default.nix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--home-modules/apps/default.nix126
1 files changed, 126 insertions, 0 deletions
diff --git a/home-modules/apps/default.nix b/home-modules/apps/default.nix
new file mode 100644
index 0000000..20a3f33
--- /dev/null
+++ b/home-modules/apps/default.nix
@@ -0,0 +1,126 @@
+{lib, pkgs, inputs, config, ...}:
+with lib;
+let
+cfg = config.homeapps.presets;
+in
+{
+ imports = [
+ ./nvim
+ ./desktop
+ ./zsh.nix
+ ];
+
+ options.homeapps.presets = {
+ base.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = true;
+ description ="Enable basics for home-config";
+ } ;
+ full.enable = lib.mkEnableOption "Enable everything" ;
+ email.enable = lib.mkEnableOption "Enable email-related config";
+ browser.enable = lib.mkEnableOption "Enable the browser (librewolf)";
+ comms.enable = lib.mkEnableOption "Enable communication-related config";
+ utils.enable = lib.mkEnableOption "Enable utilities" ;
+ note-taking.enable = lib.mkEnableOption "Enable note taking apps";
+ art.enable = lib.mkEnableOption "Enable art apps config";
+ work.enable = lib.mkEnableOption "Enable research-related config";
+ dev.enable = lib.mkEnableOption "Enable development apps";
+ connectivity.enable = lib.mkEnableOption "Enable connectivity";
+ multimedia.enable = lib.mkEnableOption "Enable multimedia apps";
+ games.enable = lib.mkEnableOption "Enable games";
+ };
+
+
+ config = lib.mkMerge [
+ (lib.mkIf cfg.full.enable {
+ homeapps.presets = {
+ base.enable = true;
+ email.enable = true;
+ browser.enable = true;
+ comms.enable = true;
+ utils.enable = true;
+ note-taking.enable = true;
+ art.enable = true;
+ work.enable = true;
+ dev.enable = true;
+ connectivity.enable = true;
+ multimedia.enable = true;
+ games.enable = true;
+ };
+ })
+ (lib.mkIf cfg.base.enable {
+ home.packages = with pkgs; [
+ lm_sensors
+ ];
+ homeapps.zsh.enable = true;
+ homeapps.nvim.enable = true;
+ })
+ (lib.mkIf cfg.email.enable {
+ home.packages = with pkgs; [
+ ];
+ })
+ (lib.mkIf cfg.comms.enable {
+ home.packages = with pkgs; [
+ iamb
+ ];
+ })
+ (lib.mkIf cfg.utils.enable {
+ home.packages = with pkgs; [
+ htop
+ btop
+ nmap
+ dig
+ ripgrep
+ unzip
+ unrar
+ sshfs
+ xdg-user-dirs
+ zsh
+ ranger
+ file
+ ];
+ })
+ (lib.mkIf cfg.note-taking.enable {
+ home.packages = with pkgs; [ ];
+ # Todo force synthing to be on here
+ })
+ (lib.mkIf cfg.work.enable {
+ home.packages = with pkgs; [
+ ];
+ })
+ (lib.mkIf cfg.dev.enable {
+ home.packages = with pkgs; [
+ cmake
+ ( hiPrio gcc)
+ gnumake
+ clang
+ rustup
+ pkg-config
+ ];
+ homeapps.nvim.enable = true;
+ homesv.direnv.enable = true;
+ })
+ (lib.mkIf cfg.connectivity.enable {
+ home.packages = with pkgs; [
+ libsForQt5.kdeconnect-kde
+ syncthingtray
+ eduvpn-client
+ ];
+ services.syncthing = {
+ enable = true;
+ };
+ })
+ (lib.mkIf cfg.multimedia.enable {
+ home.packages = with pkgs; [
+ ani-cli
+ playerctl
+ ];
+
+ services.playerctld.enable = true;
+ })
+ (lib.mkIf cfg.games.enable {
+ home.packages = with pkgs; [
+ ];
+ })
+ ];
+}