nixos/configuration.nix
2026-07-03 23:20:11 +02:00

169 lines
4 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
./easyroam.nix
./stylix.nix
./nixvim.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxPackages;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nix.package = pkgs.lixPackageSets.stable.lix;
nix.settings.trusted-users = [ "lucy" ];
networking.hostName = "nixos"; # Define your hostname.
networking.networkmanager.enable = true;
networking.networkmanager.wifi.powersave = false;
networking.wireless.enable = true;
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
services.xserver.enable = true;
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
services.xserver.xkb = {
layout = "eu";
variant = "";
};
security.doas.enable = true;
security.sudo.enable = false;
security.doas.extraRules = [
{
users = [
"lucy"
"root"
];
groups = [ "wheel" ];
keepEnv = true;
persist = true; # Optional, only require password verification a single time
}
];
programs.bash.interactiveShellInit = ''
complete -F _command doas
'';
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
hardware.opentabletdriver = {
enable = true;
daemon.enable = true;
};
# Define a user account. Don't forget to set a password with ‘passwd’.
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
(iosevka.override {
set = "Custom";
privateBuildPlan = ''
[buildPlans.IosevkaCustom]
family = "Iosevka Custom"
spacing = "fontconfig-mono"
serifs = "slab"
noCvSs = true
exportGlyphNames = false
[buildPlans.IosevkaCustom.variants]
inherits = "ss12"
[buildPlans.IosevkaCustom.weights.Regular]
shape = 400
menu = 400
css = 400
[buildPlans.IosevkaCustom.weights.Bold]
shape = 700
menu = 700
css = 700
[buildPlans.IosevkaCustom.slopes.Upright]
angle = 0
shape = "upright"
menu = "upright"
css = "normal"
[buildPlans.IosevkaCustom.slopes.Italic]
angle = 9.4
shape = "italic"
menu = "italic"
css = "italic"
'';
})
nerd-fonts.symbols-only
];
users.users."lucy" = {
isNormalUser = true;
description = "lucy";
extraGroups = [
"networkmanager"
"wheel"
];
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
git
clang-tools
gcc
cargo
gnomeExtensions.user-themes
gnomeExtensions.blur-my-shell
];
environment.gnome.excludePackages = with pkgs; [
cheese # photo booth
eog # image viewer
epiphany # web browser
gedit # text editor
simple-scan # document scanner
totem # video player
yelp # help viewer
geary # email client
seahorse # password manager
# these should be self explanatory
gnome-calendar
gnome-characters
gnome-clocks
gnome-contacts
gnome-font-viewer
gnome-logs
gnome-maps
gnome-music
gnome-weather
];
# DO NOT CHANGE!!
system.stateVersion = "26.05"; # Did you read the comment?
}