- Notifications
You must be signed in to change notification settings - Fork 0
System Applications
System-level packages installed globally in NullOS.
System packages are installed via NixOS configuration and available to all users. They're defined in modules/software/packages.nix.
Rebuild command:
sudo nixos-rebuild switch --flake .#yourhostnameFile Management:
p7zip- Archive compression (.7z, .zip, etc.)gdu- Graphical disk usage analyzerdysk- Modern disk usage utilityeza- Modern ls replacement with colors and icons
System Monitoring:
btop- Resource monitor (CPU, RAM, disk, network)inxi- System information toollm_sensors- Hardware temperature monitoringnvtopPackages.full- GPU monitoring for NVIDIA
Text Processing:
ripgrep- Fast grep alternativefd- Fast find alternativejq- JSON processoryq-go- YAML processor
Network Tools:
nmap- Network scannernettools- Basic network utilitiesopenfortivpn- Fortinet VPN clientwget- File downloadercurl- Data transfer tool
Build Tools:
gcc- GNU Compiler Collectiongnumake- Make build toolcmake- Cross-platform build system
Android Development:
android-tools- ADB and fastboot- Android Studio (via separate module)
Version Control:
git- Version control systemgh(via home-manager) - GitHub CLI
Analysis Tools:
binwalk- Binary file analysishexdump- Hex viewerhexedit- Hex editor
Image Viewing:
eog- Eye of GNOME image viewer
Video Editing:
ffmpeg- Command-line video/audio editingobs-studio- Screen recording and streaming
Media Libraries:
mesa-demos- OpenGL demos and utilitiessox- Sound eXchangeplayerctl- Media player control
Audio Players:
rhythmbox- Music player
Productivity:
obsidian- Note-taking application- Browser (configured via machines/{hostname}/default.nix)
Databases:
dbgate- Universal database client
Communication:
telegram-desktop- Telegram messengerteams-for-linux- Microsoft Teams client
System:
brightnessctl- Screen brightness controllibnotify- Desktop notificationskillall- Process termination utilityappimage-run- AppImage supportpciutils- PCI utilities (lspci)usbutils- USB utilities (lsusb)
File Systems:
ntfs3g- NTFS supportexfat- exFAT support
Fun:
lolcat- Colorful terminal outputcmatrix- Matrix-style terminal screensaver
environment.systemPackages=withpkgs;[gnupgpass# Password manager];Configured via:
programs.gnupg.agent={enable=true;enableSSHSupport=true;};Docker and VM support configured separately in modules/services/virtualisation.nix:
virtualisation={docker.enable=true;libvirtd.enable=true;};Packages:
dockerdocker-composevirt-manager(if enabled)
Configured in modules/software/steam.nix:
programs.steam={enable=true;remotePlay.openFirewall=true;gamescopeSession.enable=true;};programs.gamemode.enable=true;Packages:
steamgamemodemangohudmoonlight-qt(NVIDIA Game Streaming)wineWowPackages.waylandFull(Windows Compatibility)
Some applications have dedicated program modules:
programs={neovim={enable=true;defaultEditor=true;};hyprland.enable=true;hyprlock.enable=true;dconf.enable=true;seahorse.enable=true;# GNOME keyring GUIfuse.userAllowOther=true;direnv={enable=true;enableZshIntegration=true;silent=true;};};Benefits:
- Additional configuration options
- System integration
- Service management
Packages without special configuration:
environment.systemPackages=withpkgs;[vimwgethtop];Search on https://search.nixos.org/packages or:
nix search nixpkgs package-nameAdd to modules/software/packages.nix:
environment.systemPackages=withpkgs;[# Existing packages...# Add new packageyour-package];sudo nixos-rebuild switch --flake .#yourhostname✅ System-level:
- Required by multiple users
- System services dependencies
- Low-level tools (drivers, kernel modules)
- Security tools
- Virtualization
✅ User-level:
- Desktop applications
- Personal productivity tools
- Development tools
- Dotfile configurations
environment.systemPackages=withpkgs;[# System monitoringbtopinxi# File managementp7zipgdu# Developmentandroid-toolsbinwalk# Multimediaffmpegeog# Networknmapwget# Utilitiesbrightnessctlkillall];environment.systemPackages=withpkgs;# Core utilitiesletcoreUtils=[vimgitwget];monitoring=[btopinxilm_sensors];multimedia=[ffmpegeog];incoreUtils++monitoring++multimedia;environment.systemPackages=withpkgs;[# Common packagesvimgit]++lib.optionals(vars.hostname=="nslapt")[# Laptop onlypowertoptlp]++lib.optionals(vars.hostname=="nspc")[# Desktop onlyobs-studio];environment.systemPackages=withpkgs;[# Commonmesa]++lib.optionalsvars.useNvidiaPrime[# NVIDIA toolsnvtopPackages.fullnvidia-system-monitor];Already enabled in NullOS:
nixpkgs.config.allowUnfree=true;Examples:
vscodediscordspotifysteam
Override if needed:
nixpkgs.config={allowUnfree=true;allowBroken=true;# Not recommendedallowInsecure=true;# Not recommendedpermittedInsecurePackages=["specific-package-version"];};NullOS uses unstable by default but includes stable overlay:
# Use stable versionenvironment.systemPackages=[pkgs.stable.firefox];Pin to specific commit:
# In flake.nix inputsnixpkgs-old.url="github:nixos/nixpkgs/commit-hash";# Useenvironment.systemPackages=[inputs.nixpkgs-old.legacyPackages.${system}.package];Edit modules/software/packages.nix and remove the line:
environment.systemPackages=withpkgs;[vimgit# removed-package # Delete this line];Rebuild:
sudo nixos-rebuild switch --flake .#yourhostnamexdg.mime.defaultApplications={"text/html"="firefox.desktop";"x-scheme-handler/http"="firefox.desktop";"x-scheme-handler/https"="firefox.desktop";"application/pdf"="okular.desktop";"image/png"="eog.desktop";};programs.neovim={enable=true;defaultEditor=true;};# Or set directlyenvironment.variables.EDITOR="nvim";System packages are built during nixos-rebuild:
- More packages = longer rebuild time
- Use binary cache when possible
- Consider moving some to home-manager
Check package sizes:
nix path-info -Sh /run/current-systemOptimize store:
sudo nix-store --optimise# Search for package
nix search nixpkgs package-name
# Check attribute path
nix eval nixpkgs#package.meta.description# Check build log
nix log /nix/store/failed-build
# Try stable version
pkgs.stable.package# Check what provides command
which commandtypecommand# Use different attribute
pkgs.package-specificView all installed system packages:
# Current generation
nix-store -q --requisites /run/current-system | grep -v '\.drv$'# Or simpler
nix-env -qa --installed '*' --profile /nix/var/nix/profiles/system- Home Applications - User-level packages
- Adding Applications - Detailed guide
- Services - System services configuration
- Customization Guide - Advanced customization