From 23f51db3a56274190ced2539e6301a977cec8ce9 Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Wed, 9 Oct 2024 16:10:19 +0200 Subject: [PATCH] Outsource aspi and kardorf hm-configs to modules --- homes/x86_64-linux/julian@aspi/default.nix | 74 +----- homes/x86_64-linux/julian@aspi/fonts.nix | 15 -- homes/x86_64-linux/julian@aspi/packages.nix | 160 ------------- homes/x86_64-linux/julian@kardorf/default.nix | 25 +- homes/x86_64-linux/julian@kardorf/fonts.nix | 14 -- .../x86_64-linux/julian@kardorf/packages.nix | 188 --------------- modules/home/fonts/default.nix | 48 ++++ modules/home/suites/default/default.nix | 216 ++++++++++++++++++ 8 files changed, 266 insertions(+), 474 deletions(-) delete mode 100644 homes/x86_64-linux/julian@aspi/fonts.nix delete mode 100644 homes/x86_64-linux/julian@aspi/packages.nix delete mode 100644 homes/x86_64-linux/julian@kardorf/fonts.nix delete mode 100644 homes/x86_64-linux/julian@kardorf/packages.nix create mode 100644 modules/home/fonts/default.nix create mode 100644 modules/home/suites/default/default.nix diff --git a/homes/x86_64-linux/julian@aspi/default.nix b/homes/x86_64-linux/julian@aspi/default.nix index 07d7453..b7eb6af 100644 --- a/homes/x86_64-linux/julian@aspi/default.nix +++ b/homes/x86_64-linux/julian@aspi/default.nix @@ -43,79 +43,7 @@ nix-helper.enable = true; desktop.enable = true; - }; - - home.packages = - with pkgs; - [ - # Code formatters for use with doom emacs - nixfmt-rfc-style # nix - dockfmt # docker - google-java-format # java - - # Lsps for use with doom emacs - # neocmakelsp # cmake - - # Rust setup - rustc - rustfmt - cargo - clippy - rust-analyzer - - # Further tools - cntr # nix debugger - - lazygit - languagetool - # wireguard-tools - - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - (pkgs.writeShellScriptBin "matlab-paper" '' - matlab -desktop -sd "/home/julian/dev/phdthesis/Phase B/mainSimulation" -softwareopengl - '') - (pkgs.writeShellScriptBin "matlab-robotik" '' - matlab -desktop -sd "/home/julian/nas-sync/Studium/Vorlesungen-Master/ss24/Robotik2" -softwareopengl - '') - (pkgs.writeShellScriptBin "matlab-gram" '' - export GTK_PATH=/usr/lib/gtk-3.0 - nix shell nixpkgs#gcc11 --command matlab -desktop -sd "/home/julian/dev/matlab-gram" -softwareopengl - '') - (pkgs.writeShellScriptBin "expenses-tracker" '' - java -jar /home/julian/dev/expensestracker/app/build/libs/app.jar - '') - - zotero - xfce.mousepad - tor-browser - - ## My scripts - frajul.deploy-to-pianopi - frajul.open-messaging - frajul.edit-config - frajul.xwacomcalibrate - frajul.lntocp - ] - ++ lib.lists.concatMap (packages-list-file: import packages-list-file { inherit pkgs; }) [ - ./fonts.nix - ./packages.nix - ]; - - services.blueman-applet.enable = true; - services.nextcloud-client.enable = true; - services.nextcloud-client.startInBackground = true; - services.network-manager-applet.enable = true; - - services.syncthing.tray.enable = true; - services.syncthing.tray.command = "syncthingtray --wait"; # Wait for tray to become available - - programs.chromium = { - enable = true; - extensions = [ - # Tampermonkey - { id = "dhdgffkkebhmkfjojejmpbldmpobfkfo"; } - ]; + suites.default.enable = true; }; # Let Home Manager install and manage itself. diff --git a/homes/x86_64-linux/julian@aspi/fonts.nix b/homes/x86_64-linux/julian@aspi/fonts.nix deleted file mode 100644 index 72eee37..0000000 --- a/homes/x86_64-linux/julian@aspi/fonts.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, ... }: - -with pkgs; -[ - (nerdfonts.override { fonts = [ "FiraCode" ]; }) - font-awesome - dejavu_fonts - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - liberation_ttf - fira-code - fira-code-symbols - source-code-pro -] diff --git a/homes/x86_64-linux/julian@aspi/packages.nix b/homes/x86_64-linux/julian@aspi/packages.nix deleted file mode 100644 index e113297..0000000 --- a/homes/x86_64-linux/julian@aspi/packages.nix +++ /dev/null @@ -1,160 +0,0 @@ -{ pkgs, ... }: - -with pkgs; -[ - - shellcheck - - # Further tools - lazygit - - # makemkv - audacity - gnome.cheese - zoom-us - qutebrowser - - unetbootin - - # For SSS exercises - pwndbg - gcc - hexedit - - xournalpp - - zip - p7zip # unzip 7zip archives - - imagemagick - ghostscript # needed for imagemagick with pdfs - - firefox - thunderbird - # nextcloud-client # use service instead - qalculate-gtk - libqalculate - - # schildichat-desktop # not updated regularly - # element-desktop - nheko - tdesktop # telegram - - tealdeer - gcolor3 - # cups - wget - nodejs - git - dotter - mc - # broot - rnr # renaming tool in rust - # doublecmd - # mucommander - tree - wezterm - kitty - bat - ripgrep - fd - fzf - topgrade - - arandr - htop - # texlive.combined.scheme-full - # texlab - usbutils # lsusb - pciutils # lspci - - gnome.gnome-keyring - gnome.seahorse - polkit_gnome - nix-index - python3 - libnotify - libclang - libreoffice - killall - findutils - xorg.xkill - unzip - vlc - handbrake - nmap - jq - jdk - # emacsPackages.clang-format # formatting for java - gradle - maven - android-tools - scrcpy - # dvdisaster - mate.engrampa - unixtools.procps - ffmpeg - links2 - julia-bin - # xdg-desktop-portal-gtk - discord - lnav # log analyzing tool - fdupes # find and delete duplicate files - digikam - dbeaver-bin - sqlite - - nomacs - rocketchat-desktop - - (texlive.combine { - # for rendering latex in inkscape - inherit (texlive) - scheme-medium - standalone - amsmath - preview - ; - }) - # (pkgs.inkscape-with-extensions.override { - # inkscapeExtensions = [ pkgs.inkscape-extensions.textext ]; - # }) - # inkscape-with-extensions - # inkscape-extensions.textext - inkscape - - geogebra - - languagetool - xclip - okular # Pdf reader with many features, good for commenting documents - evince # Simple pdf reader, good for focusing on document content - pdfsam-basic # Split, merge, etc for pdfs - - poppler_utils # Pdf utils including pdfimages - matlab # Using nix-matlab overlay defined in flake - sage - - gimp - - devbox - parted - drawio - du-dust # Like du tree but better - gnupg - rpi-imager - - # lf - # rustdesk - # realvnc-vnc-viewer - calibre - - audible-cli - - unstable.path-of-building - - conda - watchexec # Run command when any file in current dir changes - - pkg-config # Often needed to build something -] diff --git a/homes/x86_64-linux/julian@kardorf/default.nix b/homes/x86_64-linux/julian@kardorf/default.nix index 0ebb39b..e8857cf 100644 --- a/homes/x86_64-linux/julian@kardorf/default.nix +++ b/homes/x86_64-linux/julian@kardorf/default.nix @@ -39,30 +39,7 @@ nix-helper.enable = true; desktop.enable = true; - }; - - home.packages = - lib.lists.concatMap (packages-list-file: import packages-list-file { inherit pkgs; }) - [ - ./fonts.nix - ./packages.nix - ]; - fonts.fontconfig.enable = true; # required to autoload fonts from packages - - gtk = { - enable = true; - # theme.name = "Adwaita-dark"; - }; - - services.syncthing.tray.enable = true; - services.syncthing.tray.command = "syncthingtray --wait"; # Wait for tray to become available - - programs.chromium = { - enable = true; - extensions = [ - # Tampermonkey - { id = "dhdgffkkebhmkfjojejmpbldmpobfkfo"; } - ]; + suites.default.enable = true; }; # Let Home Manager install and manage itself. diff --git a/homes/x86_64-linux/julian@kardorf/fonts.nix b/homes/x86_64-linux/julian@kardorf/fonts.nix deleted file mode 100644 index e95d6d9..0000000 --- a/homes/x86_64-linux/julian@kardorf/fonts.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, ... }: - -with pkgs; [ - (nerdfonts.override { fonts = [ "FiraCode" ]; }) - font-awesome - dejavu_fonts - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - liberation_ttf - fira-code - fira-code-symbols - source-code-pro -] diff --git a/homes/x86_64-linux/julian@kardorf/packages.nix b/homes/x86_64-linux/julian@kardorf/packages.nix deleted file mode 100644 index 492a2c2..0000000 --- a/homes/x86_64-linux/julian@kardorf/packages.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ pkgs, ... }: - -with pkgs; -[ - - shellcheck - - # Rust setup - rustc - rustfmt - cargo - clippy - rust-analyzer - - # Further tools - lazygit - languagetool - - # makemkv - audacity - gnome.cheese - zoom-us - qutebrowser - - unetbootin - - # For SSS exercises - pwndbg - gcc - hexedit - - # rfid reader tests - openct - opensc - pcsclite - pcsctools - ccid - libnfc - - xournalpp - - xfce.thunar-archive-plugin - zip - p7zip # unzip 7zip archives - imagemagick - firefox - thunderbird - nextcloud-client - qalculate-gtk - libqalculate - - # schildichat-desktop # not updated regularly - element-desktop - tdesktop # telegram - - tealdeer - gcolor3 - # cups - wget - gparted - nodejs - git - dotter - mc - broot - rnr # renaming tool in rust - doublecmd - mucommander - tree - wezterm - kitty - bat - ripgrep - fd - fzf - topgrade - - arandr - wireguard-tools - htop - texlive.combined.scheme-full - texlab - usbutils # lsusb - pciutils # lspci - - gnome.gnome-keyring - gnome.seahorse - polkit_gnome - nix-index - python3 - libnotify - libclang - libreoffice - killall - findutils - xorg.xkill - unzip - vlc - handbrake - nmap - jq - jdk - # emacsPackages.clang-format # formatting for java - gradle - maven - android-tools - scrcpy - # dvdisaster - mate.engrampa - # toybox - unixtools.procps - qpdfview - ffmpeg - links2 - julia-bin - xdg-desktop-portal-gtk - discord - lnav # log analyzing tool - fdupes # find and delete duplicate files - digikam - dbeaver-bin - pavucontrol - sqlite - - nomacs - rocketchat-desktop - zotero - inkscape - pulseaudio - gcolor3 - geogebra - - languagetool - xclip - okular # Pdf reader with many features, good for commenting documents - evince # Simple pdf reader, good for focusing on document content - pdfsam-basic # Split, merge, etc for pdfs - - poppler_utils # Pdf utils including pdfimages - matlab # Using nix-matlab overlay defined in flake - # sage - - gimp - - devbox - parted - drawio - du-dust # Like du tree but better - gnupg - rpi-imager - - wine - winetricks - - # lf - # rustdesk - # realvnc-vnc-viewer - calibre - - audible-cli - - # cudaPackages.cudatoolkit - # openmvg - # colmapWithCuda - path-of-building - - nheko - - pkg-config # Often needed to build something - - ## My scripts - frajul.edit-config - frajul.xwacomcalibrate - - (pkgs.writeShellScriptBin "matlab-paper" '' - matlab -desktop -sd "/home/julian/dev/phdthesis/Phase B/mainSimulation" -softwareopengl - '') - (pkgs.writeShellScriptBin "matlab-robotik" '' - matlab -desktop -sd "/home/julian/nas-sync/Studium/Vorlesungen-Master/ss24/Robotik2" -softwareopengl - '') - (pkgs.writeShellScriptBin "matlab-gram" '' - export GTK_PATH=/usr/lib/gtk-3.0 - nix shell nixpkgs#gcc11 --command matlab -desktop -sd "/home/julian/dev/matlab-gram" -softwareopengl - '') - (pkgs.writeShellScriptBin "expenses-tracker" '' - java -jar /home/julian/dev/expensestracker/app/build/libs/app.jar - '') -] diff --git a/modules/home/fonts/default.nix b/modules/home/fonts/default.nix new file mode 100644 index 0000000..302991a --- /dev/null +++ b/modules/home/fonts/default.nix @@ -0,0 +1,48 @@ +{ + # Snowfall Lib provides a customized `lib` instance with access to your flake's library + # as well as the libraries available from your flake's inputs. + lib, + # An instance of `pkgs` with your overlays and packages applied is also available. + pkgs, + # You also have access to your flake's inputs. + inputs, + + # Additional metadata is provided by Snowfall Lib. + system, # The system architecture for this host (eg. `x86_64-linux`). + target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). + format, # A normalized name for the system target (eg. `iso`). + virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. + systems, # An attribute map of your defined hosts. + + # All other arguments come from the module system. + config, + host, + ... +}: + +with lib; + +let + cfg = config.modules.fonts; +in +{ + options.modules.fonts = { + enable = mkOption { default = false; }; + }; + + config = mkIf cfg.enable { + fonts.fontconfig.enable = true; # required to autoload fonts from packages + home.packages = with pkgs; [ + (nerdfonts.override { fonts = [ "FiraCode" ]; }) + font-awesome + dejavu_fonts + noto-fonts + noto-fonts-cjk + noto-fonts-emoji + liberation_ttf + fira-code + fira-code-symbols + source-code-pro + ]; + }; +} diff --git a/modules/home/suites/default/default.nix b/modules/home/suites/default/default.nix new file mode 100644 index 0000000..f2e4011 --- /dev/null +++ b/modules/home/suites/default/default.nix @@ -0,0 +1,216 @@ +{ + # Snowfall Lib provides a customized `lib` instance with access to your flake's library + # as well as the libraries available from your flake's inputs. + lib, + # An instance of `pkgs` with your overlays and packages applied is also available. + pkgs, + # You also have access to your flake's inputs. + inputs, + + # Additional metadata is provided by Snowfall Lib. + system, # The system architecture for this host (eg. `x86_64-linux`). + target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). + format, # A normalized name for the system target (eg. `iso`). + virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. + systems, # An attribute map of your defined hosts. + + # All other arguments come from the module system. + config, + host, + ... +}: + +with lib; + +let + cfg = config.modules.suites.default; +in +{ + options.modules.suites.default = { + enable = mkOption { default = false; }; + }; + + config = mkIf cfg.enable { + # TODO: put this and relevant packages into desktop suite + services.blueman-applet.enable = true; + services.nextcloud-client.enable = true; + services.nextcloud-client.startInBackground = true; + services.network-manager-applet.enable = true; + + services.syncthing.tray.enable = true; + services.syncthing.tray.command = "syncthingtray --wait"; # Wait for tray to become available + + programs.chromium = { + enable = true; + extensions = [ + # Tampermonkey + { id = "dhdgffkkebhmkfjojejmpbldmpobfkfo"; } + ]; + }; + + home.packages = with pkgs; [ + android-tools # adb + arandr + audacity + audible-cli + bat + calibre # ebook manager and viewer + cargo + clippy + cntr # nix debugger + conda + dbeaver-bin + devbox # run docker-commands + digikam + discord + + drawio + du-dust # Like du tree but better + # dvdisaster + # element-desktop + # rocketchat-desktop + thunderbird + tdesktop # telegram + # schildichat-desktop # not updated regularly + nheko + evince # Simple pdf reader, good for focusing on document content + + fd # better find + fdupes # find and delete duplicate files + ffmpeg + findutils # locate + firefox + + fzf # Fuzzy finder + gcc + gcolor3 # Color picker + geogebra + ghostscript # needed for imagemagick with pdfs + imagemagick + gimp + git + gnome.cheese + gnupg + gradle + handbrake + hexedit + htop + + (texlive.combine { + # for rendering latex in inkscape + inherit (texlive) + scheme-medium + standalone + amsmath + preview + ; + }) + # (pkgs.inkscape-with-extensions.override { + # inkscapeExtensions = [ pkgs.inkscape-extensions.textext ]; + # }) + # inkscape-with-extensions + # inkscape-extensions.textext + inkscape + + jdk + jq # Command line JSON processor + julia-bin + killall + kitty # Terminal + languagetool # Grammar checker + lazygit # Git client + libclang + libnotify + libreoffice + links2 # Tui web-browser + lnav # log analyzing tool + mate.engrampa + + matlab # Using nix-matlab overlay defined in flake + maven + mc # Tui file browser + # nix-index + nmap + nodejs + nomacs # Image viewer + okular # Pdf reader with many features, good for commenting documents + p7zip # unzip 7zip archives + parted + pavucontrol + pciutils # lspci + pdfsam-basic # Split, merge, etc for pdfs + pkg-config # Often needed to build something + + poppler_utils # Pdf utils including pdfimages + pwndbg # improved gdb (debugger) + python3 + + libqalculate # Nice tui calculator (qalc) + qalculate-gtk # Nice gui calculator + + qpdfview + # qutebrowser + # realvnc-vnc-viewer + ripgrep # better grep + rnr # renaming tool + rpi-imager # make isos + + # rustdesk + + rust-analyzer + rustc + rustfmt + + sage # Maths notebooks + scrcpy # Mirror android screen to pc + # shellcheck # Check bash scripts for common errors + sqlite + tealdeer # tldr + topgrade # System update + tor-browser + tree + unetbootin # TODO + unixtools.procps # TODO + unstable.path-of-building # Path of Building + unzip + usbutils # lsusb + vlc + watchexec # Run command when any file in current dir changes + wezterm # Terminal + wget + + wine + winetricks + + wireguard-tools # wg-quick + xclip # x11 clipboard access from terminal + xfce.mousepad # simple text editor + xorg.xkill + xournalpp # Edit pdf files + zip + zoom-us # Video conferencing + zotero # Manage papers and other sources + + ## My scripts + frajul.deploy-to-pianopi + frajul.edit-config + frajul.lntocp + frajul.open-messaging + frajul.xwacomcalibrate + + (pkgs.writeShellScriptBin "matlab-paper" '' + matlab -desktop -sd "/home/julian/dev/phdthesis/Phase B/mainSimulation" -softwareopengl + '') + (pkgs.writeShellScriptBin "matlab-robotik" '' + matlab -desktop -sd "/home/julian/nas-sync/Studium/Vorlesungen-Master/ss24/Robotik2" -softwareopengl + '') + (pkgs.writeShellScriptBin "matlab-gram" '' + export GTK_PATH=/usr/lib/gtk-3.0 + nix shell nixpkgs#gcc11 --command matlab -desktop -sd "/home/julian/dev/matlab-gram" -softwareopengl + '') + (pkgs.writeShellScriptBin "expenses-tracker" '' + java -jar /home/julian/dev/expensestracker/app/build/libs/app.jar + '') + ]; + }; +}