Move most tools to user environment

Fixes #1.
This commit is contained in:
Simon Bruder 2020-12-05 19:44:41 +01:00
parent 40d898bd0d
commit 29cfc3750d
No known key found for this signature in database
GPG key ID: 6F03E0000CC5B62F
10 changed files with 181 additions and 214 deletions

View file

@ -1,8 +0,0 @@
{ config, lib, pkgs, ... }:
lib.mkIf config.sbruder.gui.enable {
environment.systemPackages = with pkgs; [
(mumble.override { pulseSupport = true; }) # VoIP group chat
claws-mail # email client that looks ugly but just works
];
}

View file

@ -1,13 +0,0 @@
{ config, lib, pkgs, ... }:
lib.mkIf config.sbruder.gui.enable {
environment.systemPackages = with pkgs; [
blender # 3d animation
darktable # photo development
gimp
gimpPlugins.gmic # bitmap editor
krita # drawing
openscad # parametric/procedural 3d modelling
inkscape # vector graphics editor
];
}

View file

@ -9,9 +9,7 @@
# All modules are imported but non-essential modules are activated by # All modules are imported but non-essential modules are activated by
# configuration options # configuration options
imports = [ imports = [
./communication.nix
./cpu ./cpu
./creative.nix
./cups.nix ./cups.nix
./docker.nix ./docker.nix
./fonts.nix ./fonts.nix
@ -19,7 +17,6 @@
./grub.nix ./grub.nix
./libvirt.nix ./libvirt.nix
./locales.nix ./locales.nix
./media.nix
./network-manager.nix ./network-manager.nix
./office.nix ./office.nix
./prometheus/node_exporter.nix ./prometheus/node_exporter.nix
@ -31,7 +28,6 @@
./sway.nix ./sway.nix
./tools.nix ./tools.nix
./udev.nix ./udev.nix
./web.nix
./wireguard ./wireguard
]; ];

View file

@ -1,45 +0,0 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Audio
abcde # cd ripper
flac # flac encoder
shntool # split audio with cue
sidplayfp # SID chiptune player
sox # “Swiss Army knife of audio manipulation”
# Audio + Video
mediainfo # show information about media files
youtube-dl # universal video downloader
# Images
exiftool # manipulate EXIF meta data
jpegoptim # lossless jpeg optimiser
libwebp # tools for webp image format
optipng # lossless png optimiser
pngcrush
pngquant # lossy png optimisers
# Literature
mupdf # document (pdf) viewer and tools
] ++ (
if config.sbruder.gui.enable then [
# Audio
audacity # audio editor
picard # musicbrainz tagger
# Audio + Video
ffmpeg-full # A/V multitool
mkvtoolnix # matroska (de-)muxing
mpv # media player
# Literature
calibre # ebook library
zathura # plugin based document viewer
] else [
# Packages only installed when gui is disabled
mkvtoolnix-cli # matroska (de-)muxing
]
);
}

View file

@ -1,21 +1,5 @@
{ config, lib, pkgs, ... }: { config, lib, ... }:
lib.mkIf config.sbruder.gui.enable { lib.mkIf config.sbruder.gui.enable {
environment.systemPackages = with pkgs; [
aspellDicts.de
aspellDicts.en
hunspellDicts.de-de
hunspellDicts.en-gb-ise # dictionary
gscan2pdf # scanning tool
jameica # application framework (used for hibiscus online banking)
khal # calendar
khard # address book
libreoffice # office suite
pdfsam-basic # pdf multitool
vdirsyncerStable # dav sync client
xournalpp # notebook
xsane # scanning tool
];
hardware.sane.enable = true; hardware.sane.enable = true;
} }

View file

@ -1,120 +1,4 @@
{ config, lib, pkgs, ... }:
{ {
environment.systemPackages = with pkgs; lib.mkMerge [
[
# top like tools
bmon # network monitor
gotop # fancy top
mtr # interactive traceroute
# batch processing/automation
jq # sed for json
parallel # parallel batch processing
yq # sed for yaml
# unix tools on steroids
curlie # better httpie (easier curl)
exa # better ls
fd # better find
ripgrep # better grep
# file tools
aria # multithreaded http/ftp/bittorrent download manager
dos2unix # convert CRLF (dos) or CR (classic mac) line endings to LF (unix)
fdupes # find duplicate files
file # file type
hexyl # user friendly hex file viewer
hyperfine # cli benchmarking
megatools # cli for mega.nz
minio-client # client for s3 compatible storage systems
mktorrent # bittorrent seed file generator
ntfs3g # ntfs filesystem driver
rclone # rsync for cloud storage
rename # sed for filenames
rsync # incremental file transfer
tokei # fast cloc
wget # download tool
xdelta # binary diff
# file format tools
imagemagick # image conversion
p7zip # 7z cli
pdftk # pdf multitool
sqlite-interactive # cli for sqlite databses
upx # executable packer
# network tools
dnsutils # dig
gatling # high performance web serve
iperf
iperf2 # bandwidth measurement tool
nmap # port scanner
sshfs # mount remote host
vnstat # client for vnstatd
whois # whois client
zmap # scanner for large address spaces
# system tools
libva-utils # vainfo
lm_sensors # temperature sensors
ncdu # interactive du
pciutils # lspci
reptyr # move process to current terminal
smartmontools # hard drive monitoring
usbutils # lsusb
# clients
drone-cli # client for drone ci
hcloud # cli for Hetzner Cloud
libnotify # notify-send
# function eye candy
fzf # fuzzy finder
pv # monitor progress in pipe
starship # zsh prompt
# end user programs
apacheHttpd # for htpasswd
libqalculate # flexible calculator for humans
scrcpy # stream/control android phones over adb
taskwarrior # todo list manager
# passwords
(pass-wayland.withExtensions (es: with es; [ pass-otp ])) # password manager
pwgen
pwgen-secure # password generator
xkcdpass # memorable password generator
# misc
toilet # free figlet
python38Packages.ipython # better python repl (useful for one-liners)
# vim
neovim-remote # controlling another neovim process
universal-ctags # ctags
# git
gitAndTools.delta # nicer diff
gitAndTools.git-annex
gitAndTools.git-annex-remote-rclone # git for non source files
gitAndTools.pre-commit # pre-commit hook for git
# nix tools
niv # depdendency manager
]
(lib.mkIf config.sbruder.gui.enable [
anki # flashcard SRS
filezilla # ftp client
gparted # gui for parted
qalculate-gtk # flexible calculator
antimicroX # gamepad to keyboard/mouse mapping
wl-clipboard # not really gui, but cli tool to manage wayland clipboard
wxhexeditor # hex editor
xfce.thunar # graphical file manager
])
];
programs = { programs = {
adb.enable = true; adb.enable = true;
bandwhich.enable = true; bandwhich.enable = true;

View file

@ -1,9 +0,0 @@
{ config, lib, pkgs, ... }:
lib.mkIf config.sbruder.gui.enable {
environment.systemPackages = with pkgs; [
firefox-wayland
# Buidling chromium from source on a potato laptop is not fun
#(ungoogled-chromium.override { useOzone = true; })
];
}

View file

@ -1,5 +1,9 @@
{ config, lib, ... }: { config, lib, pkgs, ... }:
lib.mkIf config.sbruder.gui.enable { lib.mkIf config.sbruder.gui.enable {
home.packages = [
pkgs.anki
];
home.file.".local/share/Anki2/addons21/ankisyncd/__init__.py".source = ../files/ankisyncd/__init__.py; home.file.".local/share/Anki2/addons21/ankisyncd/__init__.py".source = ../files/ankisyncd/__init__.py;
} }

View file

@ -1,7 +1,7 @@
{ {
imports = [ imports = [
./alacritty.nix ./alacritty.nix
./ankisyncd.nix ./anki.nix
./git.nix ./git.nix
./gtk.nix ./gtk.nix
./htop.nix ./htop.nix
@ -9,6 +9,7 @@
./mpd.nix ./mpd.nix
./mpv.nix ./mpv.nix
./neovim.nix ./neovim.nix
./programs.nix
./sway.nix ./sway.nix
./tmux.nix ./tmux.nix
./vdirsyncer.nix ./vdirsyncer.nix

View file

@ -0,0 +1,173 @@
{ config, lib, pkgs, ... }:
{
home.packages = with pkgs; [
# top like tools
bmon # network monitor
gotop # fancy top
mtr # interactive traceroute
# batch processing/automation
jq # sed for json
parallel # parallel batch processing
yq # sed for yaml
# unix tools on steroids
curlie # better httpie (easier curl)
exa # better ls
fd # better find
ripgrep # better grep
# file tools
aria # multithreaded http/ftp/bittorrent download manager
dos2unix # convert CRLF (dos) or CR (classic mac) line endings to LF (unix)
fdupes # find duplicate files
file # file type
hexyl # user friendly hex file viewer
hyperfine # cli benchmarking
megatools # cli for mega.nz
minio-client # client for s3 compatible storage systems
mktorrent # bittorrent seed file generator
ntfs3g # ntfs filesystem driver
rclone # rsync for cloud storage
rename # sed for filenames
rsync # incremental file transfer
tokei # fast cloc
wget # download tool
xdelta # binary diff
# file format tools
imagemagick # image conversion
p7zip # 7z cli
pdftk # pdf multitool
sqlite-interactive # cli for sqlite databses
upx # executable packer
# network tools
dnsutils # dig
gatling # high performance web serve
iperf
iperf2 # bandwidth measurement tool
nmap # port scanner
sshfs # mount remote host
vnstat # client for vnstatd
whois # whois client
zmap # scanner for large address spaces
# system tools
libva-utils # vainfo
lm_sensors # temperature sensors
ncdu # interactive du
pciutils # lspci
reptyr # move process to current terminal
smartmontools # hard drive monitoring
usbutils # lsusb
# clients
drone-cli # client for drone ci
hcloud # cli for Hetzner Cloud
libnotify # notify-send
# function eye candy
fzf # fuzzy finder
pv # monitor progress in pipe
starship # zsh prompt
# end user programs
apacheHttpd # for htpasswd
libqalculate # flexible calculator for humans
scrcpy # stream/control android phones over adb
taskwarrior # todo list manager
# passwords
(pass-wayland.withExtensions (es: with es; [ pass-otp ])) # password manager
pwgen
pwgen-secure # password generator
xkcdpass # memorable password generator
# misc
toilet # free figlet
python38Packages.ipython # better python repl (useful for one-liners)
# vim
neovim-remote # controlling another neovim process
universal-ctags # ctags
# git
gitAndTools.delta # nicer diff
gitAndTools.git-annex
gitAndTools.git-annex-remote-rclone # git for non source files
gitAndTools.pre-commit # pre-commit hook for git
# nix tools
niv # depdendency manager
## media
# audio and video
ffmpeg-full # A/V multitool
mediainfo # show information about media files
mkvtoolnix-cli # matroska (de-)muxing
youtube-dl # universal video downloader
# audio
abcde # cd ripper
flac # flac encoder
shntool # split audio with cue
sidplayfp # SID chiptune player
sox # “Swiss Army knife of audio manipulation”
# images
exiftool # manipulate EXIF meta data
jpegoptim # lossless jpeg optimiser
libwebp # tools for webp image format
optipng # lossless png optimiser
pngcrush
pngquant # lossy png optimisers
# documents
mupdf # document (pdf) viewer and tools
] ++ (if config.sbruder.gui.enable then [
# communication
claws-mail # email client that looks ugly but just works
firefox-wayland # the least bad browser
(mumble.override { pulseSupport = true; }) # VoIP group chat
ungoogled-chromium # useful for exporting pages as pdf
# creative/design
blender # 3d animation
darktable # photo development
gimp-with-plugins # bitmap image editor
krita # drawing
openscad # parametric/procedural 3d modelling
inkscape # vector graphics editor
# audio
audacity # audio editor
picard # musicbrainz tagger
# documents
calibre # ebook library
# office
aspellDicts.de
aspellDicts.en
hunspellDicts.de-de
hunspellDicts.en-gb-ise # dictionary
gscan2pdf # scanning tool
jameica # application framework (used for hibiscus online banking)
libreoffice # office suite
pdfsam-basic # pdf multitool
xournalpp # notebook
xsane # scanning tool
# tools
filezilla # ftp client
gparted # gui for parted
qalculate-gtk # flexible calculator
antimicroX # gamepad to keyboard/mouse mapping
wl-clipboard # not really gui, but cli tool to manage wayland clipboard
wxhexeditor # hex editor
xfce.thunar # graphical file manager
] else [ ]);
}