System Configuration
Customize your Abora system by editing configuration files and applying changes.
Configuration Files
/etc/nixos/configuration.nix
Your main system configuration file. Define packages, services, and settings here.
/etc/nixos/abora-local.nix
Abora-specific settings: hostname, timezone, locale, desktop choice.
~/.config/
User-level application configurations and dotfiles.
Basic Configuration Structure
Your configuration.nix follows this structure:
{ config, pkgs, ... }:
{
# System packages
environment.systemPackages = [
pkgs.vim
pkgs.git
];
# Enable services
services.openssh.enable = true;
# Set hostname
networking.hostname = "my-machine";
# Set timezone
time.timeZone = "America/New_York";
}Common Configuration Tasks
Install System Packages
Add packages to your system:
Run anix switch to install.
Set Hostname
Change your system hostname:
Set Timezone
Configure your timezone:
See all available timezones in /usr/share/zoneinfo
Enable SSH
Allow remote login via SSH:
Set Locale
Configure system language and locale:
Change Desktop
Switch to a different desktop environment:
Abora-Local Configuration
The /etc/nixos/abora-local.nix file contains Abora-specific settings. Edit it directly or use `abora config`:
abora.hostname = "my-pc"; abora.timezone = "America/New_York"; abora.desktop = "gnome"; abora.locale = "en_US.UTF-8";
Or use commands:
Applying Changes
After editing your configuration, apply changes:
Most changes take effect immediately. Desktop changes usually require logout/login or reboot.
Services Management
Enable or disable system services by editing configuration:
Enable SSH
services.openssh.enable = true;
Enable Docker
virtualisation.docker.enable = true;
Enable Bluetooth
hardware.bluetooth.enable = true;
User Management
Create additional user accounts through configuration:
users.users.alice = {
isNormalUser = true;
home = "/home/alice";
extraGroups = [ "wheel" "docker" ];
};User-Level Configuration
User-specific settings go in ~/.config/. These are managed separately from system configuration and don't require sudo:
- • Application settings:
~/.config/application-name/ - • Shell configuration:
~/.bashrc,~/.zshrc - • Editor config:
~/.config/vim/,~/.config/nvim/
Troubleshooting
Configuration has syntax errors
Run nix-instantiate /etc/nixos/configuration.nix to check for errors.
anix switch fails
Check the error message. Usually a package name is wrong or doesn't exist. Verify with nix-env -qa | grep package-name
Changes didn't take effect
Some changes (like desktop environment) require reboot or logout/login. Check the documentation for the specific setting.
Need to rollback? See the Recovery guide.