Separate hm suites into separate files

This commit is contained in:
Julian Mutter 2024-11-24 07:37:36 +01:00
parent b3e3352429
commit 8e36dc50c7
6 changed files with 288 additions and 219 deletions

View File

@ -43,8 +43,13 @@
nix-helper.enable = true;
desktop.enable = true;
suites.default.enable = true;
fonts.enable = true;
suites = {
cli.enable = true;
desktop.enable = true;
development.enable = true;
};
};
# Let Home Manager install and manage itself.

View File

@ -39,8 +39,13 @@
nix-helper.enable = true;
desktop.enable = true;
suites.default.enable = true;
fonts.enable = true;
suites = {
cli.enable = true;
desktop.enable = true;
development.enable = true;
};
};
# Let Home Manager install and manage itself.

View File

@ -0,0 +1,79 @@
{
# 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,
...
}:
let
cfg = config.modules.suites.cli;
in
{
options.modules.suites.cli = {
enable = lib.mkOption { default = false; };
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
bat
du-dust # Like du tree but better
fd # better find
fdupes # find and delete duplicate files
ffmpeg
findutils # locate
fzf # Fuzzy finder
ghostscript # needed for imagemagick with pdfs
imagemagick
git
gnupg
htop
jq # Command line JSON processor
killall
languagetool # Grammar checker
lazygit # Git client
links2 # Tui web-browser
lnav # log analyzing tool
mc # Tui file browser
# nix-index
nmap
p7zip # unzip 7zip archives
parted
pciutils # lspci
poppler_utils # Pdf utils including pdfimages
libqalculate # Nice tui calculator (qalc)
ripgrep # better grep
rnr # renaming tool
sage # Maths notebooks
tealdeer # tldr
topgrade # System update
tree
unetbootin # TODO
unixtools.procps # TODO
unzip
usbutils # lsusb
wget
wireguard-tools # wg-quick
xorg.xkill
zip
## My scripts
frajul.edit-config
frajul.lntocp
];
};
}

View File

@ -1,217 +0,0 @@
{
# 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
devcontainer # development container
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
'')
];
};
}

View File

@ -0,0 +1,97 @@
{
# 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,
...
}:
let
cfg = config.modules.suites.desktop;
in
{
options.modules.suites.desktop = {
enable = lib.mkOption { default = false; };
};
config = lib.mkIf cfg.enable {
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; [
arandr
calibre # ebook manager and viewer
digikam
discord
# dvdisaster
# element-desktop
# rocketchat-desktop
thunderbird
tdesktop # telegram
# schildichat-desktop # not updated regularly
nheko
evince # Simple pdf reader, good for focusing on document content
firefox
# geogebra
gnome.cheese
handbrake
kitty # Terminal
libnotify
libreoffice
mate.engrampa
nomacs # Image viewer
okular # Pdf reader with many features, good for commenting documents
pavucontrol
pdfsam-basic # Split, merge, etc for pdfs
qalculate-gtk # Nice gui calculator
qpdfview
# qutebrowser
# realvnc-vnc-viewer
rpi-imager # make isos
# rustdesk
tor-browser
unstable.path-of-building # Path of Building
# frajul.pob-dev-version # Path of Building
vlc
wezterm # Terminal
wine
winetricks
xclip # x11 clipboard access from terminal
xfce.mousepad # simple text editor
xournalpp # Edit pdf files
zoom-us # Video conferencing
zotero # Manage papers and other sources
## My scripts
frajul.open-messaging
frajul.xwacomcalibrate
];
};
}

View File

@ -0,0 +1,100 @@
{
# 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,
...
}:
let
cfg = config.modules.suites.development;
in
{
options.modules.suites.development = {
enable = lib.mkOption { default = false; };
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
watchexec # Run command when any file in current dir changes
android-tools # adb
# shellcheck # Check bash scripts for common errors
sqlite
scrcpy # Mirror android screen to pc
cargo
clippy
cntr # nix debugger
conda
micromamba # a better, faster conda
devcontainer # development container
dbeaver-bin
devbox # dev environments using nix
distrobox # run commands inside docker containers
gcc
gradle
hexedit
unstable.zed-editor
jdk
julia-bin
(texlive.combine {
# for rendering latex in inkscape
inherit (texlive)
scheme-medium
standalone
amsmath
preview
;
})
matlab # Using nix-matlab overlay defined in flake
maven
nodejs
pkg-config # Often needed to build something
pwndbg # improved gdb (debugger)
python3
rust-analyzer
rustc
rustfmt
# (pkgs.inkscape-with-extensions.override {
# inkscapeExtensions = [ pkgs.inkscape-extensions.textext ];
# })
# inkscape-with-extensions
# inkscape-extensions.textext
inkscape
gcolor3 # Color picker
gimp
drawio
audacity
## My scripts
frajul.deploy-to-pianopi
(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
'')
];
};
}