|
|
{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
# }}}
|