-
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 analyzer -
dysk- Modern disk usage utility -
eza- Modern ls replacement with colors and icons
System Monitoring:
-
btop- Resource monitor (CPU, RAM, disk, network) -
inxi- System information tool -
lm_sensors- Hardware temperature monitoring -
nvtopPackages.full- GPU monitoring for NVIDIA
Text Processing:
-
ripgrep- Fast grep alternative -
fd- Fast find alternative -
jq- JSON processor -
yq-go- YAML processor
Network Tools:
-
nmap- Network scanner -
nettools- Basic network utilities -
openfortivpn- Fortinet VPN client -
wget- File downloader -
curl- Data transfer tool
Build Tools:
-
gcc- GNU Compiler Collection -
gnumake- Make build tool -
cmake- Cross-platform build system
Android Development:
-
android-tools- ADB and fastboot - Android Studio (via separate module)
Version Control:
-
git- Version control system -
gh(via home-manager) - GitHub CLI
Analysis Tools:
-
binwalk- Binary file analysis -
hexdump- Hex viewer -
hexedit- Hex editor
Image Viewing:
-
eog- Eye of GNOME image viewer
Video Editing:
-
ffmpeg- Command-line video/audio editing -
obs-studio- Screen recording and streaming
Media Libraries:
-
mesa-demos- OpenGL demos and utilities
Productivity:
-
obsidian- Note-taking application - Browser (configured via variables.nix)
Databases:
-
dbgate- Universal database client
Communication:
-
telegram-desktop- Telegram messenger
System:
-
brightnessctl- Screen brightness control -
libnotify- Desktop notifications -
killall- Process termination utility -
appimage-run- AppImage support -
pciutils- PCI utilities (lspci) -
usbutils- USB utilities (lsusb)
File Systems:
-
ntfs3g- NTFS support -
exfat- exFAT support
Fun:
-
lolcat- Colorful terminal output -
cmatrix- Matrix-style terminal screensaver
environment.systemPackages = with pkgs; [
gnupg
pass # 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-compose-
virt-manager(if enabled)
Configured in modules/software/steam.nix:
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
gamescopeSession.enable = true;
};
programs.gamemode.enable = true;Packages:
steamgamemodemangohud
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 GUI
fuse.userAllowOther = true;
direnv = {
enable = true;
enableZshIntegration = true;
silent = true;
};
};Benefits:
- Additional configuration options
- System integration
- Service management
Packages without special configuration:
environment.systemPackages = with pkgs; [
vim
wget
htop
];Search on https://search.nixos.org/packages or:
nix search nixpkgs package-nameAdd to modules/software/packages.nix:
environment.systemPackages = with pkgs; [
# Existing packages...
# Add new package
your-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 = with pkgs; [
# System monitoring
btop
inxi
# File management
p7zip
gdu
# Development
android-tools
binwalk
# Multimedia
ffmpeg
eog
# Network
nmap
wget
# Utilities
brightnessctl
killall
];environment.systemPackages = with pkgs;
# Core utilities
let
coreUtils = [
vim
git
wget
];
monitoring = [
btop
inxi
lm_sensors
];
multimedia = [
ffmpeg
eog
];
in
coreUtils ++ monitoring ++ multimedia;environment.systemPackages = with pkgs; [
# Common packages
vim
git
] ++ lib.optionals (vars.hostname == "nslapt") [
# Laptop only
powertop
tlp
] ++ lib.optionals (vars.hostname == "nspc") [
# Desktop only
obs-studio
];environment.systemPackages = with pkgs; [
# Common
mesa
] ++ lib.optionals vars.useNvidiaPrime [
# NVIDIA tools
nvtopPackages.full
nvidia-system-monitor
];Already enabled in NullOS:
nixpkgs.config.allowUnfree = true;Examples:
vscodediscordspotifysteam
Override if needed:
nixpkgs.config = {
allowUnfree = true;
allowBroken = true; # Not recommended
allowInsecure = true; # Not recommended
permittedInsecurePackages = [
"specific-package-version"
];
};NullOS uses unstable by default but includes stable overlay:
# Use stable version
environment.systemPackages = [
pkgs.stable.firefox
];Pin to specific commit:
# In flake.nix inputs
nixpkgs-old.url = "github:nixos/nixpkgs/commit-hash";
# Use
environment.systemPackages = [
inputs.nixpkgs-old.legacyPackages.${system}.package
];Edit modules/software/packages.nix and remove the line:
environment.systemPackages = with pkgs; [
vim
git
# 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 directly
environment.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 command
type command
# 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