From 2aae128ce81dee4e264669fcb3cef42bd212634a Mon Sep 17 00:00:00 2001 From: Tobias Frischmann Date: Sun, 6 Sep 2026 19:38:45 +0200 Subject: [PATCH] restucture shared folder --- flake.nix | 19 +++++-- hosts/homeserver/configuration.nix | 21 +++----- .../services/{mod.nix => default.nix} | 4 -- hosts/laptop/configuration.nix | 33 +++++++----- hosts/pc/configuration.nix | 36 +++++++------ shared/app/browser.nix | 21 ++++++++ shared/app/default.nix | 11 ++++ shared/app/gameDev.nix | 19 +++++++ shared/app/gaming.nix | 20 ++++++++ shared/app/music.nix | 18 +++++++ shared/app/office.nix | 23 +++++++++ shared/app/social.nix | 18 +++++++ shared/app/textEditor.nix | 25 +++++++++ shared/cli.nix | 37 -------------- shared/cli/default.nix | 6 +++ shared/cli/device.nix | 19 +++++++ shared/cli/shell.nix | 36 +++++++++++++ shared/default.nix | 8 +++ shared/desktop.nix | 31 ----------- shared/desktop/default.nix | 7 +++ shared/desktop/font.nix | 51 +++++++++++++++++++ shared/desktop/kde.nix | 21 ++++++++ shared/desktop/sddm.nix | 39 ++++++++++++++ shared/dev/apps.nix | 16 ------ shared/dev/db.nix | 18 +++++++ shared/dev/default.nix | 10 ++++ shared/dev/docker.nix | 20 ++++++++ shared/dev/managment.nix | 20 ++++++++ shared/dev/mod.nix | 35 ------------- shared/dev/nix.nix | 33 ++++++++++++ shared/dev/node.nix | 19 +++++++ shared/dev/rust.nix | 33 +++++++----- shared/font.nix | 41 --------------- shared/sddm-theme.nix | 26 ---------- 34 files changed, 545 insertions(+), 249 deletions(-) rename hosts/homeserver/services/{mod.nix => default.nix} (94%) create mode 100644 shared/app/browser.nix create mode 100644 shared/app/default.nix create mode 100644 shared/app/gameDev.nix create mode 100644 shared/app/gaming.nix create mode 100644 shared/app/music.nix create mode 100644 shared/app/office.nix create mode 100644 shared/app/social.nix create mode 100644 shared/app/textEditor.nix delete mode 100644 shared/cli.nix create mode 100644 shared/cli/default.nix create mode 100644 shared/cli/device.nix create mode 100644 shared/cli/shell.nix create mode 100644 shared/default.nix delete mode 100644 shared/desktop.nix create mode 100644 shared/desktop/default.nix create mode 100644 shared/desktop/font.nix create mode 100644 shared/desktop/kde.nix create mode 100644 shared/desktop/sddm.nix delete mode 100644 shared/dev/apps.nix create mode 100644 shared/dev/db.nix create mode 100644 shared/dev/default.nix create mode 100644 shared/dev/docker.nix create mode 100644 shared/dev/managment.nix delete mode 100644 shared/dev/mod.nix create mode 100644 shared/dev/nix.nix create mode 100644 shared/dev/node.nix delete mode 100644 shared/font.nix delete mode 100644 shared/sddm-theme.nix diff --git a/flake.nix b/flake.nix index 7ed2841..7bfea43 100644 --- a/flake.nix +++ b/flake.nix @@ -42,19 +42,32 @@ config.allowUnfree = true; }; }; - modules = [ ./hosts/homeserver/configuration.nix ]; + modules = [ + ./hosts/homeserver/configuration.nix + ./shared/default.nix + inputs.sops-nix.nixosModules.sops + inputs.system-screen.nixosModules.default + ]; }; laptop = nixpkgs-unstable.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; - modules = [ ./hosts/laptop/configuration.nix ]; + modules = [ + ./hosts/laptop/configuration.nix + ./shared/default.nix + inputs.hydration-notifier.nixosModules.default + ]; }; pc = nixpkgs-unstable.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; - modules = [ ./hosts/pc/configuration.nix ]; + modules = [ + ./hosts/pc/configuration.nix + ./shared/default.nix + inputs.hydration-notifier.nixosModules.default + ]; }; }; }; diff --git a/hosts/homeserver/configuration.nix b/hosts/homeserver/configuration.nix index fa76780..a4e7544 100644 --- a/hosts/homeserver/configuration.nix +++ b/hosts/homeserver/configuration.nix @@ -1,6 +1,5 @@ { pkgs, - inputs, ... }: @@ -10,14 +9,7 @@ ./hardware-configuration.nix # Services - ./services/mod.nix - - # Common modules - ../../shared/cli.nix - - # External Modules - inputs.sops-nix.nixosModules.sops - inputs.system-screen.nixosModules.default + ./services/default.nix ]; # Bootloader. @@ -76,6 +68,12 @@ LC_TIME = "de_AT.UTF-8"; }; + myCli.device.enable = true; + myCli.shell.enable = true; + + myDev.management.enable = true; + myDev.docker.enable = true; + # Configure keymap in X11 services.xserver.xkb = { layout = "at"; @@ -129,7 +127,6 @@ # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - docker-compose sops restic @@ -161,10 +158,6 @@ # Enable the OpenSSH daemon. services.openssh.enable = true; - virtualisation.docker = { - enable = true; - }; - # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ 5353 1900 ]; diff --git a/hosts/homeserver/services/mod.nix b/hosts/homeserver/services/default.nix similarity index 94% rename from hosts/homeserver/services/mod.nix rename to hosts/homeserver/services/default.nix index a940fc6..9b456af 100644 --- a/hosts/homeserver/services/mod.nix +++ b/hosts/homeserver/services/default.nix @@ -1,7 +1,3 @@ -{ - ... -}: - { imports = [ ./homeassistant.nix diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 7cdfa2d..f2668a8 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -1,5 +1,4 @@ { - inputs, pkgs, ... }: @@ -8,16 +7,6 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix - - # Common modules - ../../shared/cli.nix - ../../shared/dev/mod.nix - ../../shared/desktop.nix - ../../shared/font.nix - ../../shared/sddm-theme.nix - - # External modules - inputs.hydration-notifier.nixosModules.default ]; # Bootloader. @@ -65,9 +54,25 @@ LC_TIME = "de_AT.UTF-8"; }; - # Enable the KDE Plasma Desktop Environment. - services.displayManager.sddm.enable = true; - services.desktopManager.plasma6.enable = true; + myDesktop.sddm.enable = true; + myDesktop.kde.enable = true; + myDesktop.fontFix.enable = true; + + myApps.browser.enable = true; + myApps.gameDev.enable = true; + myApps.office.enable = true; + myApps.social.enable = true; + myApps.textEditor.enable = true; + + myCli.device.enable = true; + myCli.shell.enable = true; + + myDev.db.enable = true; + myDev.docker.enable = true; + myDev.management.enable = true; + myDev.nix.enable = true; + myDev.node.enable = true; + myDev.rust.enable = true; # Configure keymap in X11 services.xserver.xkb = { diff --git a/hosts/pc/configuration.nix b/hosts/pc/configuration.nix index 07f6bae..bcf64d9 100644 --- a/hosts/pc/configuration.nix +++ b/hosts/pc/configuration.nix @@ -1,5 +1,4 @@ { - inputs, pkgs, ... }: @@ -8,16 +7,6 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix - - # Common modules - ../../shared/cli.nix - ../../shared/dev/mod.nix - ../../shared/desktop.nix - ../../shared/font.nix - ../../shared/sddm-theme.nix - - # External modules - inputs.hydration-notifier.nixosModules.default ]; # Bootloader. @@ -70,8 +59,27 @@ LC_TIME = "de_AT.UTF-8"; }; - services.displayManager.sddm.enable = true; - services.desktopManager.plasma6.enable = true; + myDesktop.sddm.enable = true; + myDesktop.kde.enable = true; + myDesktop.fontFix.enable = true; + + myApps.browser.enable = true; + myApps.gameDev.enable = true; + myApps.gaming.enable = true; + myApps.music.enable = true; + myApps.office.enable = true; + myApps.social.enable = true; + myApps.textEditor.enable = true; + + myCli.device.enable = true; + myCli.shell.enable = true; + + myDev.db.enable = true; + myDev.docker.enable = true; + myDev.management.enable = true; + myDev.nix.enable = true; + myDev.node.enable = true; + myDev.rust.enable = true; # Configure keymap in X11 services.xserver.xkb = { @@ -125,8 +133,6 @@ # $ nix search wget environment.systemPackages = with pkgs; [ pika-backup - blockbench - vscode amdgpu_top ]; diff --git a/shared/app/browser.nix b/shared/app/browser.nix new file mode 100644 index 0000000..f443614 --- /dev/null +++ b/shared/app/browser.nix @@ -0,0 +1,21 @@ +{ + pkgs, + inputs, + config, + lib, + ... +}: + +{ + options = { + myApps.browser.enable = lib.mkEnableOption "enables Browsers"; + }; + + config = lib.mkIf config.myApps.browser.enable { + environment.systemPackages = with pkgs; [ + inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default + chromium + firefox-bin + ]; + }; +} diff --git a/shared/app/default.nix b/shared/app/default.nix new file mode 100644 index 0000000..d864e7f --- /dev/null +++ b/shared/app/default.nix @@ -0,0 +1,11 @@ +{ + imports = [ + ./browser.nix + ./gameDev.nix + ./gaming.nix + ./textEditor.nix + ./social.nix + ./office.nix + ./music.nix + ]; +} diff --git a/shared/app/gameDev.nix b/shared/app/gameDev.nix new file mode 100644 index 0000000..0c44cbb --- /dev/null +++ b/shared/app/gameDev.nix @@ -0,0 +1,19 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myApps.gameDev.enable = lib.mkEnableOption "enables GameDev Apps"; + }; + + config = lib.mkIf config.myApps.gameDev.enable { + environment.systemPackages = with pkgs; [ + blockbench + aseprite + ]; + }; +} diff --git a/shared/app/gaming.nix b/shared/app/gaming.nix new file mode 100644 index 0000000..b22d026 --- /dev/null +++ b/shared/app/gaming.nix @@ -0,0 +1,20 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myApps.gaming.enable = lib.mkEnableOption "enables gaming Apps"; + }; + + config = lib.mkIf config.myApps.gaming.enable { + environment.systemPackages = with pkgs; [ + prismlauncher + ]; + + programs.steam.enable = true; + }; +} diff --git a/shared/app/music.nix b/shared/app/music.nix new file mode 100644 index 0000000..2feeaad --- /dev/null +++ b/shared/app/music.nix @@ -0,0 +1,18 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myApps.music.enable = lib.mkEnableOption "enables Music Apps"; + }; + + config = lib.mkIf config.myApps.music.enable { + environment.systemPackages = with pkgs; [ + spotify + ]; + }; +} diff --git a/shared/app/office.nix b/shared/app/office.nix new file mode 100644 index 0000000..5e485f0 --- /dev/null +++ b/shared/app/office.nix @@ -0,0 +1,23 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myApps.office.enable = lib.mkEnableOption "enables Office Apps"; + }; + + config = lib.mkIf config.myApps.office.enable { + environment.systemPackages = with pkgs; [ + proton-vpn + + libreoffice + drawy + + nextcloud-client + ]; + }; +} diff --git a/shared/app/social.nix b/shared/app/social.nix new file mode 100644 index 0000000..eb97fa7 --- /dev/null +++ b/shared/app/social.nix @@ -0,0 +1,18 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myApps.social.enable = lib.mkEnableOption "enables social Apps"; + }; + + config = lib.mkIf config.myApps.social.enable { + environment.systemPackages = with pkgs; [ + discord + ]; + }; +} diff --git a/shared/app/textEditor.nix b/shared/app/textEditor.nix new file mode 100644 index 0000000..5df6621 --- /dev/null +++ b/shared/app/textEditor.nix @@ -0,0 +1,25 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myApps.textEditor.enable = lib.mkEnableOption "enables textEditor Apps"; + }; + + config = lib.mkIf config.myApps.textEditor.enable { + programs.fish.interactiveShellInit = '' + alias zed zeditor + ''; + + environment.systemPackages = with pkgs; [ + vscode + zed-editor + ]; + + programs.steam.enable = true; + }; +} diff --git a/shared/cli.nix b/shared/cli.nix deleted file mode 100644 index 49298b0..0000000 --- a/shared/cli.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - pkgs, - ... -}: - -{ - environment.systemPackages = with pkgs; [ - btop - dust - - git - gh - just - - nvd - - starship - zoxide - fastfetch - ]; - - programs.fish = { - enable = true; - interactiveShellInit = '' - if test $COLUMNS -ge 120; and test $LINES -ge 30 - fastfetch -l nixos2 --logo-padding-right 6 --separator " " --structure "break:break:title:break:os:kernel:packages:disk:shell:terminal:wm:uptime:media:break:colors" - end - - set fish_greeting # Disable greeting - - starship init fish | source - zoxide init fish | source - - alias cd z - ''; - }; -} diff --git a/shared/cli/default.nix b/shared/cli/default.nix new file mode 100644 index 0000000..7fc6643 --- /dev/null +++ b/shared/cli/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./shell.nix + ./device.nix + ]; +} diff --git a/shared/cli/device.nix b/shared/cli/device.nix new file mode 100644 index 0000000..966d6d1 --- /dev/null +++ b/shared/cli/device.nix @@ -0,0 +1,19 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myCli.device.enable = lib.mkEnableOption "cli tools for device managment"; + }; + + config = lib.mkIf config.myCli.device.enable { + environment.systemPackages = with pkgs; [ + btop + dust + ]; + }; +} diff --git a/shared/cli/shell.nix b/shared/cli/shell.nix new file mode 100644 index 0000000..ff8eb13 --- /dev/null +++ b/shared/cli/shell.nix @@ -0,0 +1,36 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myCli.shell.enable = lib.mkEnableOption "enables fish shell"; + }; + + config = lib.mkIf config.myCli.shell.enable { + environment.systemPackages = with pkgs; [ + starship + zoxide + fastfetch + ]; + + programs.fish = { + enable = true; + interactiveShellInit = '' + if test $COLUMNS -ge 120; and test $LINES -ge 30 + fastfetch -l nixos2 --logo-padding-right 6 --separator " " --structure "break:break:title:break:os:kernel:packages:disk:shell:terminal:wm:uptime:media:break:colors" + end + + set fish_greeting # Disable greeting + + starship init fish | source + zoxide init fish | source + + alias cd z + ''; + }; + }; +} diff --git a/shared/default.nix b/shared/default.nix new file mode 100644 index 0000000..4335b5c --- /dev/null +++ b/shared/default.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./desktop/default.nix + ./app/default.nix + ./cli/default.nix + ./dev/default.nix + ]; +} diff --git a/shared/desktop.nix b/shared/desktop.nix deleted file mode 100644 index b4c2430..0000000 --- a/shared/desktop.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - pkgs, - inputs, - ... -}: - -{ - environment.systemPackages = with pkgs; [ - inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default - chromium - firefox-bin - - proton-vpn - - libreoffice - drawy - - kdePackages.partitionmanager - - discord - spotify - - prismlauncher - aseprite - - nextcloud-client - ]; - - programs.kdeconnect.enable = true; - programs.steam.enable = true; -} diff --git a/shared/desktop/default.nix b/shared/desktop/default.nix new file mode 100644 index 0000000..8410d27 --- /dev/null +++ b/shared/desktop/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./sddm.nix + ./kde.nix + ./font.nix + ]; +} diff --git a/shared/desktop/font.nix b/shared/desktop/font.nix new file mode 100644 index 0000000..46e6d50 --- /dev/null +++ b/shared/desktop/font.nix @@ -0,0 +1,51 @@ +{ + pkgs, + lib, + config, + ... +}: +{ + options = { + myDesktop.fontFix.enable = lib.mkEnableOption "fix brail font"; + }; + + config = lib.mkIf config.myDesktop.fontFix.enable { + # Disable default packages to prevent bad fallback fonts (like freefont_ttf) + fonts.enableDefaultPackages = false; + fonts.fontconfig.enable = true; + fonts.fontDir.enable = true; + + fonts.packages = with pkgs; [ + # --- Primary Monospace & Nerd Fonts --- + nerd-fonts.jetbrains-mono + nerd-fonts.fira-code + + # --- System & UI Fonts (Noto / Liberation / DejaVu) --- + noto-fonts + noto-fonts-cjk-sans # Chinese / Japanese / Korean glyphs + noto-fonts-color-emoji # System-wide color emojis + liberation_ttf # Metrically compatible with Times/Arial/Courier + dejavu_fonts + ]; + + # Force Fontconfig priority so terminal/system pick the right fonts first + fonts.fontconfig.defaultFonts = { + monospace = [ + "JetBrainsMono Nerd Font" + "Noto Sans Mono" + "DejaVu Sans Mono" + ]; + sansSerif = [ + "Noto Sans" + "DejaVu Sans" + ]; + serif = [ + "Noto Serif" + "DejaVu Serif" + ]; + emoji = [ + "Noto Color Emoji" + ]; + }; + }; +} diff --git a/shared/desktop/kde.nix b/shared/desktop/kde.nix new file mode 100644 index 0000000..b698659 --- /dev/null +++ b/shared/desktop/kde.nix @@ -0,0 +1,21 @@ +{ + pkgs, + lib, + config, + ... +}: +{ + options = { + myDesktop.kde.enable = lib.mkEnableOption "enables kde"; + }; + + config = lib.mkIf config.myDesktop.kde.enable { + services.desktopManager.plasma6.enable = true; + + environment.systemPackages = with pkgs; [ + kdePackages.partitionmanager + ]; + + programs.kdeconnect.enable = true; + }; +} diff --git a/shared/desktop/sddm.nix b/shared/desktop/sddm.nix new file mode 100644 index 0000000..a0873d2 --- /dev/null +++ b/shared/desktop/sddm.nix @@ -0,0 +1,39 @@ +{ + pkgs, + lib, + config, + ... +}: +{ + options = { + myDesktop.sddm.enable = lib.mkEnableOption "enables ssdm"; + }; + + config = + let + sddm-astronaut = + (pkgs.sddm-astronaut.override { + themeConfig = { + Background = "Backgrounds/outerwildsMap.png"; + }; + }).overrideAttrs + (oldAttrs: { + installPhase = oldAttrs.installPhase + '' + chmod u+w $out/share/sddm/themes/sddm-astronaut-theme/Backgrounds/ + cp ${../../resources/outerwildsMap.png} \ + $out/share/sddm/themes/sddm-astronaut-theme/Backgrounds/outerwildsMap.png + ''; + }); + in + lib.mkIf config.myDesktop.sddm.enable { + environment.systemPackages = [ sddm-astronaut ]; + + services.displayManager.sddm = { + enable = true; + extraPackages = with pkgs; [ + kdePackages.qtmultimedia + ]; + theme = "sddm-astronaut-theme"; + }; + }; +} diff --git a/shared/dev/apps.nix b/shared/dev/apps.nix deleted file mode 100644 index b2bb35b..0000000 --- a/shared/dev/apps.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - pkgs, - ... -}: - -{ - programs.fish.interactiveShellInit = '' - alias zed zeditor - ''; - - environment.systemPackages = with pkgs; [ - zed-editor - - pgadmin4-desktopmode - ]; -} diff --git a/shared/dev/db.nix b/shared/dev/db.nix new file mode 100644 index 0000000..b9d552f --- /dev/null +++ b/shared/dev/db.nix @@ -0,0 +1,18 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myDev.db.enable = lib.mkEnableOption "cli tools for databanks"; + }; + + config = lib.mkIf config.myDev.db.enable { + environment.systemPackages = with pkgs; [ + pgadmin4-desktopmode + ]; + }; +} diff --git a/shared/dev/default.nix b/shared/dev/default.nix new file mode 100644 index 0000000..a7ae909 --- /dev/null +++ b/shared/dev/default.nix @@ -0,0 +1,10 @@ +{ + imports = [ + ./nix.nix + ./rust.nix + ./node.nix + ./docker.nix + ./managment.nix + ./db.nix + ]; +} diff --git a/shared/dev/docker.nix b/shared/dev/docker.nix new file mode 100644 index 0000000..73c0036 --- /dev/null +++ b/shared/dev/docker.nix @@ -0,0 +1,20 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myDev.docker.enable = lib.mkEnableOption "cli tools for docker"; + }; + + config = lib.mkIf config.myDev.docker.enable { + environment.systemPackages = with pkgs; [ + docker-compose + ]; + + virtualisation.docker.enable = true; + }; +} diff --git a/shared/dev/managment.nix b/shared/dev/managment.nix new file mode 100644 index 0000000..05b49e6 --- /dev/null +++ b/shared/dev/managment.nix @@ -0,0 +1,20 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myDev.management.enable = lib.mkEnableOption "cli tools for project managment"; + }; + + config = lib.mkIf config.myDev.management.enable { + environment.systemPackages = with pkgs; [ + git + gh + just + ]; + }; +} diff --git a/shared/dev/mod.nix b/shared/dev/mod.nix deleted file mode 100644 index ceb9b74..0000000 --- a/shared/dev/mod.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - pkgs, - ... -}: - -{ - imports = [ - ./apps.nix - ./rust.nix - ]; - - environment.systemPackages = with pkgs; [ - nixd - nixfmt - - nodejs - pnpm - - docker-compose - ]; - - programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; [ - stdenv.cc.cc - zlib - openssl - ]; - - programs.direnv = { - enable = true; - nix-direnv.enable = true; - }; - - virtualisation.docker.enable = true; -} diff --git a/shared/dev/nix.nix b/shared/dev/nix.nix new file mode 100644 index 0000000..ef59430 --- /dev/null +++ b/shared/dev/nix.nix @@ -0,0 +1,33 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myDev.nix.enable = lib.mkEnableOption "cli tools for nix"; + }; + + config = lib.mkIf config.myDev.nix.enable { + environment.systemPackages = with pkgs; [ + nixd + nixfmt + + nvd + ]; + + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; + + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ + stdenv.cc.cc + zlib + openssl + ]; + }; +} diff --git a/shared/dev/node.nix b/shared/dev/node.nix new file mode 100644 index 0000000..e3cafa3 --- /dev/null +++ b/shared/dev/node.nix @@ -0,0 +1,19 @@ +{ + pkgs, + config, + lib, + ... +}: + +{ + options = { + myDev.node.enable = lib.mkEnableOption "cli tools for node"; + }; + + config = lib.mkIf config.myDev.node.enable { + environment.systemPackages = with pkgs; [ + nodejs + pnpm + ]; + }; +} diff --git a/shared/dev/rust.nix b/shared/dev/rust.nix index 6cd5287..1514b5a 100644 --- a/shared/dev/rust.nix +++ b/shared/dev/rust.nix @@ -1,22 +1,29 @@ { pkgs, + lib, + config, ... }: - { - programs.fish.interactiveShellInit = '' - . /home/tobinio/export-esp.sh - ''; + options = { + myDev.rust.enable = lib.mkEnableOption "cli tools for rust"; + }; + + config = lib.mkIf config.myDev.rust.enable { + programs.fish.interactiveShellInit = '' + . /home/tobinio/export-esp.sh + ''; - environment.systemPackages = with pkgs; [ - rustup - gcc + environment.systemPackages = with pkgs; [ + rustup + gcc - cargo-features-manager - cargo-outdated + cargo-features-manager + cargo-outdated - espup - espflash - esp-generate - ]; + espup + espflash + esp-generate + ]; + }; } diff --git a/shared/font.nix b/shared/font.nix deleted file mode 100644 index 747a964..0000000 --- a/shared/font.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ pkgs, ... }: - -{ - # Disable default packages to prevent bad fallback fonts (like freefont_ttf) - fonts.enableDefaultPackages = false; - fonts.fontconfig.enable = true; - fonts.fontDir.enable = true; - - fonts.packages = with pkgs; [ - # --- Primary Monospace & Nerd Fonts --- - nerd-fonts.jetbrains-mono - nerd-fonts.fira-code - - # --- System & UI Fonts (Noto / Liberation / DejaVu) --- - noto-fonts - noto-fonts-cjk-sans # Chinese / Japanese / Korean glyphs - noto-fonts-color-emoji # System-wide color emojis - liberation_ttf # Metrically compatible with Times/Arial/Courier - dejavu_fonts - ]; - - # Force Fontconfig priority so terminal/system pick the right fonts first - fonts.fontconfig.defaultFonts = { - monospace = [ - "JetBrainsMono Nerd Font" - "Noto Sans Mono" - "DejaVu Sans Mono" - ]; - sansSerif = [ - "Noto Sans" - "DejaVu Sans" - ]; - serif = [ - "Noto Serif" - "DejaVu Serif" - ]; - emoji = [ - "Noto Color Emoji" - ]; - }; -} diff --git a/shared/sddm-theme.nix b/shared/sddm-theme.nix deleted file mode 100644 index 6a31e8c..0000000 --- a/shared/sddm-theme.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ pkgs, ... }: -let - sddm-astronaut = - (pkgs.sddm-astronaut.override { - themeConfig = { - Background = "Backgrounds/outerwildsMap.png"; - }; - }).overrideAttrs - (oldAttrs: { - installPhase = oldAttrs.installPhase + '' - chmod u+w $out/share/sddm/themes/sddm-astronaut-theme/Backgrounds/ - cp ${../resources/outerwildsMap.png} \ - $out/share/sddm/themes/sddm-astronaut-theme/Backgrounds/outerwildsMap.png - ''; - }); -in -{ - environment.systemPackages = [ sddm-astronaut ]; - - services.displayManager.sddm = { - extraPackages = with pkgs; [ - kdePackages.qtmultimedia - ]; - theme = "sddm-astronaut-theme"; - }; -} -- 2.51.2