nixos-config/users/simon/modules/programs.nix

196 lines
5.5 KiB
Nix

{ lib, nixosConfig, pkgs, ... }:
let
waifu2x-photo-models = pkgs.stdenvNoCC.mkDerivation {
name = "waifu2x-photo-models";
src = pkgs.fetchFromGitHub {
owner = "nagadomi";
repo = "waifu2x";
rev = "v0.13.2";
sha256 = "1dqyp1gvw53gs3a1mfylxhj2kghwb3gx1ybsynzbanq84vx6grs2";
};
dontBuild = true;
installPhase = ''
cp -r $src/models/vgg_7/photo $out
'';
meta.license = lib.licenses.mit;
};
# waifu2x-converter-cpp wrapper for real life images
waifu2x-photo = pkgs.writeShellScriptBin "waifu2x-photo" ''
${pkgs.waifu2x-converter-cpp}/bin/waifu2x-converter-cpp \
--model-dir ${waifu2x-photo-models} \
$@
'';
in
{
home.packages = with pkgs; [
# batch processing/automation
parallel # parallel batch processing
yq # sed for yaml
# unix tools on steroids
du-dust # intuitive du
exa # better ls
fd # better find
ripgrep # better grep
# file tools
aria # multithreaded http/ftp/bittorrent download manager
hexyl # user friendly hex file viewer
hyperfine # cli benchmarking
mktorrent # bittorrent seed file generator
qrencode # qr code generator
rclone # rsync for cloud storage
tokei # fast cloc
xdelta # binary diff
# file format tools
imagemagick # image conversion
(p7zip.override { enableUnfree = nixosConfig.sbruder.unfree.allowSoftware; }) # 7z cli (with optional rar support)
pdftk # pdf multitool
# network tools
dnsutils # dig
dogdns # better dig
miniserve # small http server
sshfs # mount remote host
vnstat # client for vnstatd
whois # whois client
zmap # scanner for large address spaces
# system tools
libva-utils # vainfo
# clients
hcloud # cli for Hetzner Cloud
libnotify # notify-send
# function eye candy
pv # monitor progress in pipe
# end user programs
apacheHttpd # for htpasswd
libqalculate # flexible calculator for humans
taskell # tui kanban board
# passwords
mkpasswd # crypt frontend
pwgen
pwgen-secure # password generator
xkcdpass # memorable password generator
# misc
bwrap-helper # helper to create bubblewrap containers
dynamic-colors # on-the-fly color scheme switching
python3Packages.ipython # better python repl (useful for one-liners)
toilet # free figlet
# git
gitAndTools.pre-commit # pre-commit hook for git
# nix tools
nixpkgs-fmt # format nix expressions
nixpkgs-review # review nixpkgs pull request
## media
# audio and video
ffmpeg-full # A/V multitool
mediainfo # show information about media files
streamlink # video stream downloader
waifu2x-converter-cpp # super-resolution for anime-style images
waifu2x-photo # waifu2x-converter-cpp for real life photos
# audio
cyanrip # cd ripper
flac # flac encoder
opusTools # opus encoder
shntool # split audio with cue
sidplayfp # SID chiptune player
sox # “Swiss Army knife of audio manipulation”
# images
exiftool # manipulate EXIF meta data
gallery-dl # image gallery downloader
jpegoptim # lossless jpeg optimiser
libwebp # tools for webp image format
oxipng # lossless png optimiser
pngcrush
pngquant # lossy png optimisers
# documents
mupdf # document (pdf) viewer and tools
poppler_utils # pdf manipulation tools
] ++ lib.optionals (!nixosConfig.sbruder.gui.enable) [
mkvtoolnix-cli # matroska (de-)muxing
] ++ lib.optionals nixosConfig.sbruder.gui.enable [
# communication
claws-mail # email client that looks ugly but just works
firefox-esr # a bad browser
mumble # VoIP group chat
# creative/design
openscad # parametric/procedural 3d modelling
inkscape # vector graphics editor
# audio and video
libbluray # includes command line tools
mkvtoolnix # matroska (de-)muxing with gui
wf-recorder # wlroots screen recorder
# documents
calibre # ebook library
# office
aspellDicts.de
aspellDicts.en
gnome.evince # pdf viewer
gnucash # bookkeeping
hunspellDicts.de-de
hunspellDicts.en-gb-ise # dictionary
libreoffice # office suite
unstable.rnote # notebook
xournalpp # notebook
xsane # scanning tool
# tools
antimicroX # gamepad to keyboard/mouse mapping
filezilla # ftp client
gparted # gui for parted
qalculate-gtk # flexible calculator
remmina # remote desktop client
scrcpy # stream/control android phones over adb
v4l-utils # video4linux configuration
xfce.thunar # graphical file manager
] ++ lib.optionals (nixosConfig.sbruder.full) [
# tools
gdb # debugger (for coredumpctl debug)
gdrive # cli downloader for google drive
] ++ lib.optionals (nixosConfig.sbruder.gui.enable && nixosConfig.sbruder.full) [
# communication
ungoogled-chromium # for most webrtc applications and for cross-browser testing
# creative/design
blender # 3d animation
darktable # raw image processor
gimp-with-plugins # bitmap image editor
# audio
audacity # audio editor
easyeffects # signal processing for pipewire
picard # musicbrainz tagger
# office
jameica # application framework (used for hibiscus online banking)
pdfarranger # pdf multitool
textidote # LaTeX document linter
] ++ lib.optionals (nixosConfig.sbruder.gui.enable && !nixosConfig.sbruder.full) [
# creative/design
gimp # without plugins
] ++ lib.optionals (nixosConfig.sbruder.gui.enable && nixosConfig.virtualisation.libvirtd.enable) [
virt-manager
];
}