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

202 lines
5.8 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.unstable.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
curlie # better httpie (easier curl)
exa # better ls
fd # better find
ripgrep # better grep
# file tools
aria # multithreaded http/ftp/bittorrent download manager
fdupes # find duplicate files
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
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
sqlite-interactive # cli for sqlite databses
# network tools
dnsutils # dig
gatling # high performance web server
sshfs # mount remote host
vnstat # client for vnstatd
whois # whois client
zmap # scanner for large address spaces
# system tools
libva-utils # vainfo
# 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
# end user programs
apacheHttpd # for htpasswd
libqalculate # flexible calculator for humans
taskwarrior # todo list manager
# passwords
pwgen
pwgen-secure # password generator
xkcdpass # memorable password generator
# misc
toilet # free figlet
python38Packages.ipython # better python repl (useful for one-liners)
bwrap-helper # helper to create bubblewrap containers
# 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
nix-diff # diff for nix derivations
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
mkvtoolnix-cli # matroska (de-)muxing
unstable.waifu2x-converter-cpp # super-resolution for anime-style images
waifu2x-photo # waifu2x-converter-cpp for real life photos
# 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
poppler_utils # pdf manipulation tools
] ++ lib.optionals nixosConfig.sbruder.gui.enable [
# communication
claws-mail # email client that looks ugly but just works
firefox-esr # the least bad browser
((mumble.override { pulseSupport = true; }).overrideAttrs (o: o // {
patches = o.patches ++ [
# TODO: remove patch once stable release supports this
(pkgs.fetchpatch {
url = "https://github.com/mumble-voip/mumble/commit/03dbea56f650bba4f1aa0c54d02b6e8c3639d04f.patch";
sha256 = "1l7q2lxdkmykmqrvl5ga81vahs666yxiqsavx682kj1mh95pk3s4";
})
];
})) # VoIP group chat
# creative/design
openscad # parametric/procedural 3d modelling
inkscape # vector graphics editor
# audio and video
wf-recorder # wlroots screen recorder
# documents
calibre # ebook library
# office
aspellDicts.de
aspellDicts.en
hunspellDicts.de-de
hunspellDicts.en-gb-ise # dictionary
gscan2pdf # scanning tool
libreoffice # office suite
xournalpp # notebook
xsane # scanning tool
# tools
antimicroX # gamepad to keyboard/mouse mapping
filezilla # ftp client
gparted # gui for parted
qalculate-gtk # flexible calculator
scrcpy # stream/control android phones over adb
wev # wayland event monitor
wl-clipboard # not really gui, but cli tool to manage wayland clipboard
wxhexeditor # hex editor
xfce.thunar # graphical file manager
] ++ lib.optionals (nixosConfig.sbruder.gui.enable && nixosConfig.sbruder.full) [
# communication
ungoogled-chromium # useful for exporting pages as pdf
# creative/design
blender # 3d animation
darktable # photo development
gimp-with-plugins # bitmap image editor
krita # drawing
# audio
audacity # audio editor
picard # musicbrainz tagger
# office
jameica # application framework (used for hibiscus online banking)
pdfsam-basic # pdf multitool
] ++ lib.optionals (nixosConfig.sbruder.gui.enable && !nixosConfig.sbruder.full) [
# creative/design
gimp # without plugins
];
}