{pkgs, ...}: with pkgs; let Gui = { Terminals = [ alacritty # terminal emulator ]; Browsers = [ firefox # web browser ungoogled-chromium # web browser (only for web programming) ]; ImageManipulation = [ krita # new, and better (KDE) gimp # conservative, and old (GNOME) ]; Social = [ mumble # voice chat software (client) nheko # Matrix Desktop client ]; Misc = [ kalzium # Periodic Table of Elements keepassxc # password manager onlykey # OnlyKey Chrome Desktop App steam # Valve's digital software delivery system ]; }; TuiCli = { Networking = { OneOffThings = [ #bind # A complete, highly portable implementation of the DNS protocol #firewalld # Firewall daemon with D-Bus interface #ngrep # A grep-like utility that allows you to search for network packets on an interface. #openbsd-netcat # TCP/IP swiss army knife. OpenBSD variant. ]; Misc = [ lftp # FTP client openssh # SSH client ]; }; EyeCandy = [ banner # Print large banners to ASCII terminals cmatrix # A curses-based scrolling 'Matrix'-like screen hyfetch # Neofetch with LGBTQ pride flags. ]; Backups = [ rclone # Sync files to and from Google Drive, S3, Swift, Cloudfiles, Dropbox and Google Cloud Storage snapper # A tool for managing BTRFS and LVM snapshots. It can create, diff and restore snapshots and provides timelined auto-snapping. #snap-sync # Use snapper snapshots to backup to external drive ]; Misc = [ android-file-transfer # Android MTP client with minimalistic UI #python39Packages.docx2txt # Recovers text from DOCX files, with good formatting. btop # Interactive process viewer (maybe better than htop) nerdfonts # Patched font Source Code Pro from nerd fonts library xdg-ninja # A shell script which checks your $HOME for unwanted files and directories. yokadi # Command line oriented, sqlite powered, todo list ]; WM = { river = [river]; # A dynamic tiling wayland compositor CLITools = [ lswt # List Wayland toplevels wlopm # Wayland output power management. wlr-randr # Utility to manage outputs wl-clipboard # Command-line copy/paste utilities gammastep # Adjust the color temperature of your screen according to your surroundings. ]; Components = [ yambar # status panel swaybg # Wallpaper mako # notification daemon bemenu # Run prompt ]; Media = [ slurp # Select a region (used in the coordinates for grim/maim) grim # Screenshot utility #maim # Screenshot utility wf-recorder # Screen recorder ]; Idle = [ swayidle # Idle management daemon swaylock # Screen locker ]; }; LF = { lf = [lf]; # A terminal file manager inspired by ranger Functions = [ broot # Fuzzy Search + tree + cd xdragon # Simple drag-and-drop source/sink trash-cli # Command line trashcan (recycle bin) interface ]; Previewer = [ chafa # Image-to-text converter highlight # source code highlighter mediainfo # Supplies technical and tag information about a video or audio file w3m # Text-based Web browser as well as pager ffmpegthumbnailer # video thumbnailer that can be used by file managers ]; }; Media = { Download = [ yt-dlp # A youtube-dl fork with additional features and fixes #cclive # Commandline downloader for popular video websites. ]; Manipulate = [ ffmpeg # Complete solution to record, convert and stream audio and video ]; View = [ imv # Image viewer mpv # media player ]; Listen = [ moc # An ncurses console audio player designed to be powerful and easy to use pavucontrol # PulseAudio Volume Control #pipewire-alsa # Low-latency audio/video router and processor - ALSA configuration #pipewire-jack # Low-latency audio/video router and processor - JACK support #pipewire-pulse # Low-latency audio/video router and processor - PulseAudio replacement ]; }; Hardware = { Boot = [ #efibootmgr # Linux user-space application to modify the EFI Boot Manager #grub # GNU GRand Unified Bootloader (2) ]; Storage = [ compsize # Calculate compression ratio of a set of files on Btrfs smartmontools # Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives ]; Input = [ piper # GTK application to configure gaming mice ]; Printer = [ gutenprint # Top quality printer drivers for POSIX systems sane-airscan # SANE - SANE backend for AirScan (eSCL) and WSD document scanners ]; }; Zsh = [ #zsh # A very advanced and programmable command interpreter (shell) for UNIX #zsh-syntax-highlighting # Fish shell like syntax highlighting for Zsh # next one only works if your alias is only a command, e.g. if you `alias='cat some_file.txt &2> /dev/null'`, running `cat some_file.txt` won't trigger it. # TODO find something better for this use case # zsh-you-should-use # ZSH plugin that reminds you to use existing aliases for commands you just typed ]; CoreUtils = [ file # File type identification utility #grep # A string search utility sudo # Give certain users the ability to run some commands as root wget # Network utility to retrieve files from the Web which # A utility to show the full path of commands ]; FileListers = [ tree # A directory listing program displaying a depth indented list of files findutils # GNU utilities to locate files fd # Simple, fast and user-friendly alternative to find ripgrep # A search tool that combines the usability of ag with the raw speed of grep ]; UnCompressors = [ zip # Compressor/archiver for creating and modifying zipfiles gzip # GNU compression utility p7zip # Command-line file archiver with high compression ratio unzip # For extracting and viewing files in .zip archives ]; Editors = [ ed # A POSIX-compliant line-oriented text editor #sed # GNU stream editor #vi # The original ex/vi text editor neovim # Fork of Vim aiming to improve user experience, plugins, and GUIs ]; Programming = { GeneralTools = [ git # the fast distributed version control system git-bug # Distributed, offline-first bug tracker embedded in git, with bridges glow # Command-line markdown renderer strace # A diagnostic, debugging and instructional userspace tracer tokei # A blazingly fast CLOC (Count Lines Of Code) program ]; Rust = [ rustup # The Rust toolchain installer rust-analyzer # Rust compiler front-end for IDEs ]; Yaml = [ yamllint # Linter for YAML files ]; TeX = [ zathura # Minimalistic document viewer #zathura-pdf-poppler # Adds pdf support to zathura by using the poppler engine ltex-ls # LTeX Language Server biber # A Unicode-capable BibTeX replacement for biblatex users pandoc # Conversion between markup formats ]; Web = [ nodePackages_latest.vscode-langservers-extracted # Language servers extracted from VSCode. rsass # dart-sass # Sass makes CSS fun again nodePackages_latest.prettier # An opinionated code formatter for JS, JSON, CSS, YAML and much more ]; Shell = [ dash # POSIX compliant shell that aims to be as small as possible shellcheck # Shell script analysis tool ]; Lua = [ lua # Powerful lightweight programming language designed for extending applications luaformatter # lua-format # LuaFormatter - Code formatter for Lua sumneko-lua-language-server #lua-language-server # Lua Language Server coded by Lua ]; R = [ R # Language and environment for statistical computing and graphics ]; }; }; #expect # A tool for automating interactive applications #handlr # Powerful alternative to xdg-utils written in Rust #linux # The Linux kernel and modules #linux-firmware # Firmware files for Linux #packagekit-qt5 # Qt5 bindings for PackageKit #vulkan-radeon # Radeon's Vulkan mesa driver #xorg-bdftopcf # Convert X font from Bitmap Distribution Format to Portable Compiled Format mapFun = x: if builtins.isAttrs x then if lib.isDerivation x then [x] else builtins.attrValues x else [x]; in { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steam-original" ]; environment.systemPackages = with builtins; concatLists (concatLists [ (concatMap mapFun (concatMap mapFun (concatMap mapFun (concatMap mapFun (concatMap mapFun (concatMap mapFun (attrValues Gui))))))) (concatMap mapFun (concatMap mapFun (concatMap mapFun (concatMap mapFun (concatMap mapFun (concatMap mapFun (attrValues TuiCli))))))) ]); } # QEMU # TEX # {{{ #adobe-source-han-sans-kr-fonts # Adobe Source Han Sans Subset OTF - Korean OpenType/CFF fonts #alsa-utils # Advanced Linux Sound Architecture - Utilities #element-desktop # Glossy Matrix collaboration client — desktop version. #gawk # GNU version of awk #gimp # GNU Image Manipulation Program #git-lfs # Git extension for versioning large files #gnome-epub-thumbnailer # Thumbnailer for EPub and MOBI books #gnumeric # A GNOME Spreadsheet Program #gpick # Advanced color picker written in C++ using GTK+ toolkit #gradle # Powerful build system for the JVM #groff # GNU troff text-formatting system #jre11-openjdk-headless # OpenJDK Java 11 headless runtime environment #klavaro # Free touch typing tutor program #lifeograph # Private journal, diary and note taking application #lynx # A text browser for the World Wide Web #man-db # A utility for reading man pages #networkmanager # Network connection manager and user applications #nss-mdns # glibc plugin providing host name resolution via mDNS #python-spotdl # Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found). #python-xlsx2csv # xlsx to csv converter #ruff # An extremely fast Python linter, written in Rust #signal-desktop # Signal Private Messenger for Linux #slides # Terminal based presentation tool #torbrowser-launcher # Securely and easily download, verify, install, and launch Tor Browser in Linux #web-ext # A command line tool to help build, run, and test web extensions #wkhtmltopdf # Command line tools to render HTML into PDF and various image formats #xcursor-bluecurve # Redhat's Bluecurve X mouse cursor theme # XORG #xorg-docs # X.org documentations #xorg-font-util # X.Org font utilities #xorg-fonts-100dpi # X.org 100dpi fonts #xorg-fonts-75dpi # X.org 75dpi fonts #xorg-fonts-encodings # X.org font encoding files #xorg-iceauth # ICE authority file utility #xorg-mkfontscale # Create an index of scalable font files for X #xorg-server # Xorg X server #xorg-server-common # Xorg server common files #xorg-server-devel # Development files for the X.Org X server #xorg-server-xephyr # A nested X server that runs as an X application #xorg-server-xnest # A nested X server that runs as an X application #xorg-server-xvfb # Virtual framebuffer X server #xorg-sessreg # Register X sessions in system utmp/utmpx databases #xorg-setxkbmap # Set the keyboard using the X Keyboard Extension #xorg-smproxy # Allows X applications that do not support X11R6 session management to participate in an X11R6 session #xorg-x11perf # Simple X server performance benchmarker #xorg-xauth # X.Org authorization settings program #xorg-xbacklight # RandR-based backlight control application #xorg-xcmsdb # Device Color Characterization utility for X Color Management System #xorg-xcursorgen # Create an X cursor file from PNG images #xorg-xdpyinfo # Display information utility for X #xorg-xdriinfo # Query configuration information of DRI drivers #xorg-xev # Print contents of X events #xorg-xgamma # Alter a monitor's gamma correction #xorg-xhost # Server access control program for X #xorg-xinit # X.Org initialisation program #xorg-xinput # Small commandline tool to configure devices #xorg-xkbcomp # X Keyboard description compiler #xorg-xkbevd # XKB event daemon #xorg-xkbutils # XKB utility demos #xorg-xkill # Kill a client by its X resource #xorg-xlsatoms # List interned atoms defined on server #xorg-xlsclients # List client applications running on a display #xorg-xmodmap # Utility for modifying keymaps and button mappings #xorg-xpr # Print an X window dump from xwd #xorg-xrandr # Primitive command line interface to RandR extension #xorg-xrdb # X server resource database utility #xorg-xrefresh # Refresh all or part of an X screen #xorg-xsetroot # Classic X utility to set your root window background to a given pattern or color #xorg-xvinfo # Prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension #xorg-xwayland # run X clients under wayland #xorg-xwininfo # Command-line utility to print information about windows on an X server #xorg-xwud # X Window System image undumping utility # }}}