summaryrefslogtreecommitdiff
path: root/home-modules/apps
diff options
context:
space:
mode:
authorJakub Stachurski <j.stachurski@student.utwente.nl>2025-08-17 11:25:33 +0200
committerJakub Stachurski <j.stachurski@student.utwente.nl>2025-08-17 11:25:33 +0200
commit1be972048dd58218cd689ecb5cac562eb398b751 (patch)
tree203f19ee01ad5fe28f2868e8c1451f9538e4ab12 /home-modules/apps
parent3cd59d4670711e34a50adea912c3b0894883e490 (diff)
refreshed config
Diffstat (limited to 'home-modules/apps')
-rw-r--r--home-modules/apps/default.nix126
-rw-r--r--home-modules/apps/desktop/default.nix100
-rw-r--r--home-modules/apps/desktop/floorp.nix2
-rw-r--r--home-modules/apps/desktop/ghidra.nix3
-rw-r--r--home-modules/apps/desktop/wine.nix7
-rw-r--r--home-modules/apps/nvim/default.nix61
-rw-r--r--home-modules/apps/zsh.nix29
7 files changed, 328 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; [
+ ];
+ })
+ ];
+}
diff --git a/home-modules/apps/desktop/default.nix b/home-modules/apps/desktop/default.nix
new file mode 100644
index 0000000..3a06860
--- /dev/null
+++ b/home-modules/apps/desktop/default.nix
@@ -0,0 +1,100 @@
+{lib, pkgs, config ,hostconfig, ...}:
+let
+ cfg = config.homeapps.presets;
+in
+{
+ imports = [
+ ./floorp.nix
+ ];
+
+ config = lib.mkIf hostconfig.addons.desktop.enable or false (lib.mkMerge [
+ (lib.mkIf cfg.base.enable {
+ home.packages = with pkgs; [
+ # Base
+ evince
+ kitty
+ mpv
+ #Theme
+ qt6Packages.qt6ct
+ kdePackages.qtstyleplugin-kvantum
+ (catppuccin-kvantum.override {
+ accent = "pink";
+ variant = "mocha";
+ })
+ ];
+ })
+ (lib.mkIf cfg.email.enable {
+ home.packages = with pkgs; [
+ thunderbird
+ ];
+ })
+ (lib.mkIf cfg.comms.enable {
+ home.packages = with pkgs; [
+ element-desktop
+ vesktop
+ ];
+ })
+ (lib.mkIf cfg.utils.enable {
+ home.packages = with pkgs; [
+ kdePackages.filelight
+ qalculate-qt
+ gparted
+ ];
+ })
+ (lib.mkIf cfg.note-taking.enable {
+ home.packages = with pkgs; [ obsidian ];
+ # Todo force synthing to be on here
+ })
+ (lib.mkIf cfg.art.enable {
+ home.packages = with pkgs; [
+ krita
+ inkscape
+ ];
+ })
+ (lib.mkIf cfg.browser.enable {
+ home.packages = with pkgs; [
+ librewolf
+ ];
+ })
+ (lib.mkIf cfg.work.enable {
+ home.packages = with pkgs; [
+ libreoffice-qt6-fresh
+ zotero
+ ];
+ })
+ (lib.mkIf cfg.dev.enable {
+ home.packages = with pkgs; [
+ hugo
+ wireshark-qt
+ ];
+ })
+ (lib.mkIf cfg.connectivity.enable {
+ home.packages = with pkgs; [
+ libsForQt5.kdeconnect-kde
+ syncthingtray
+ eduvpn-client
+ ];
+ services.syncthing = {
+ tray = {
+ enable = true;
+ command = "syncthingtray --wait";
+ };
+ };
+ })
+ (lib.mkIf cfg.multimedia.enable {
+ home.packages = with pkgs; [
+ ani-cli
+ vlc
+ spotify
+ ];
+ })
+ (lib.mkIf cfg.games.enable {
+ home.packages = with pkgs; [
+ # Games
+ prismlauncher
+ openttd
+ anki-bin
+ ];
+ })
+ ]);
+}
diff --git a/home-modules/apps/desktop/floorp.nix b/home-modules/apps/desktop/floorp.nix
new file mode 100644
index 0000000..2d8cadb
--- /dev/null
+++ b/home-modules/apps/desktop/floorp.nix
@@ -0,0 +1,2 @@
+{pkgs, config, ...}: {
+}
diff --git a/home-modules/apps/desktop/ghidra.nix b/home-modules/apps/desktop/ghidra.nix
new file mode 100644
index 0000000..7bbcd0a
--- /dev/null
+++ b/home-modules/apps/desktop/ghidra.nix
@@ -0,0 +1,3 @@
+{pkgs, ...}:
+{
+}
diff --git a/home-modules/apps/desktop/wine.nix b/home-modules/apps/desktop/wine.nix
new file mode 100644
index 0000000..4aa00b6
--- /dev/null
+++ b/home-modules/apps/desktop/wine.nix
@@ -0,0 +1,7 @@
+{pkgs, config, lib, ...}:
+{
+ home.packages = with pkgs; [
+ wineWowPackages.waylandFull
+ winetricks
+ ];
+}
diff --git a/home-modules/apps/nvim/default.nix b/home-modules/apps/nvim/default.nix
new file mode 100644
index 0000000..64c9619
--- /dev/null
+++ b/home-modules/apps/nvim/default.nix
@@ -0,0 +1,61 @@
+{ pkgs, config, lib,...}:
+let
+ts_ls=pkgs.typescript-language-server;
+vue_ls=pkgs.vue-language-server;
+in {
+ options.homeapps.nvim = {
+ enable = lib.mkEnableOption "Enables neovim configuration";
+ };
+
+ config = lib.mkIf config.homeapps.nvim.enable {
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ viAlias = true;
+ vimAlias = true;
+ vimdiffAlias = true;
+ withPython3 = true;
+ withNodeJs = true;
+ withRuby = true;
+
+ coc.enable = false;
+ plugins = [
+ ];
+ };
+
+ home.file."./.config/nvim/lua/wilkuu/init.lua".text = ''
+ require("wilkuu.set")
+ require("wilkuu.remap")
+ '';
+
+ home.file."./.config/nvim/lua/wilkuu/nix.lua".text = ''
+ return {
+ vue_ts_plugin = "${lib.getBin vue_ls}/lib/node_modules/@vue/language-server/node_modules/@vue/typescript-plugin/"
+ }
+ '';
+
+ home.sessionPath = [
+ "/home/wilkuu/.npm/bin/"
+ ];
+
+ home.packages = with pkgs; [
+ lua
+ lua-language-server
+ gopls
+ go
+ typescript
+ nodejs_22
+ rustup
+ nil
+ statix
+ nixfmt-rfc-style
+ # phpactor
+ pyright
+ nodePackages.intelephense
+ texlive.combined.scheme-medium
+ texlab
+ mermaid-cli
+ ] ++ [ ts_ls vue_ls];
+
+ };
+}
diff --git a/home-modules/apps/zsh.nix b/home-modules/apps/zsh.nix
new file mode 100644
index 0000000..b979a83
--- /dev/null
+++ b/home-modules/apps/zsh.nix
@@ -0,0 +1,29 @@
+{config ,pkgs, lib, ...}: {
+ options.homeapps.zsh = {
+ enable = lib.mkEnableOption "Enable ZSH shell";
+ };
+
+ config = lib.mkIf config.homeapps.zsh.enable {
+
+ programs.zsh = {
+ enable = true;
+ enableCompletion = true;
+ oh-my-zsh = {
+ enable = true;
+ theme = "clean";
+ };
+ plugins = [
+ {
+ name = "zsh-nix-shell";
+ file = "nix-shell.plugin.zsh";
+ src = pkgs.fetchFromGitHub {
+ owner = "chisui";
+ repo = "zsh-nix-shell";
+ rev = "v0.8.0";
+ sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
+ };
+ }
+ ];
+ };
+ };
+}