Separate hm suites into separate files
This commit is contained in:
parent
b3e3352429
commit
8e36dc50c7
@ -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.
|
||||
|
@ -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.
|
||||
|
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