Separate hm suites into separate files
This commit is contained in:
parent
b3e3352429
commit
8e36dc50c7
@ -43,8 +43,13 @@
|
|||||||
nix-helper.enable = true;
|
nix-helper.enable = true;
|
||||||
|
|
||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
suites.default.enable = true;
|
|
||||||
fonts.enable = true;
|
fonts.enable = true;
|
||||||
|
|
||||||
|
suites = {
|
||||||
|
cli.enable = true;
|
||||||
|
desktop.enable = true;
|
||||||
|
development.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
|
@ -39,8 +39,13 @@
|
|||||||
nix-helper.enable = true;
|
nix-helper.enable = true;
|
||||||
|
|
||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
suites.default.enable = true;
|
|
||||||
fonts.enable = true;
|
fonts.enable = true;
|
||||||
|
|
||||||
|
suites = {
|
||||||
|
cli.enable = true;
|
||||||
|
desktop.enable = true;
|
||||||
|
development.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
|
79
modules/home/suites/cli/default.nix
Normal file
79
modules/home/suites/cli/default.nix
Normal 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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@ -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
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
97
modules/home/suites/desktop/default.nix
Normal file
97
modules/home/suites/desktop/default.nix
Normal 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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
100
modules/home/suites/development/default.nix
Normal file
100
modules/home/suites/development/default.nix
Normal 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
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user