182 lines
4.6 KiB
Nix
182 lines
4.6 KiB
Nix
{
|
||
config,
|
||
lib,
|
||
pkgs,
|
||
...
|
||
}:
|
||
{
|
||
imports = [
|
||
./stylix.nix
|
||
./nixvim/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.xserver.xkb = {
|
||
layout = "eu";
|
||
variant = "";
|
||
};
|
||
services = {
|
||
desktopManager.plasma6.enable = true;
|
||
displayManager.sddm.enable = true;
|
||
displayManager.sddm.wayland.enable = true;
|
||
};
|
||
|
||
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;
|
||
programs.xppen = {
|
||
enable = false;
|
||
package = pkgs.xppen_4.overrideAttrs (old: {
|
||
src = pkgs.fetchurl {
|
||
url = "https://download01.xp-pen.com/file/2026/04/XPPenLinux4.0.15-260422.tar.gz";
|
||
hash = "sha256-Jady+pbqnzmVMuM0Io4/aE5B7dqNlDKPsnRj/Fbln6U=";
|
||
};
|
||
buildInputs = (old.buildInputs or [ ]) ++ [
|
||
pkgs.libXtst
|
||
pkgs.libXrandr
|
||
];
|
||
});
|
||
};
|
||
|
||
# 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"
|
||
];
|
||
};
|
||
programs.direnv.enable = true;
|
||
# Allow unfree packages
|
||
nixpkgs.config.allowUnfree = true;
|
||
|
||
environment.systemPackages = with pkgs; [
|
||
git
|
||
kdePackages.discover # Optional: Software center for Flatpaks/firmware updates
|
||
kdePackages.kcalc # Calculator
|
||
kdePackages.kcharselect # Character map
|
||
kdePackages.kclock # Clock app
|
||
kdePackages.kcolorchooser # Color picker
|
||
kdePackages.kolourpaint # Simple paint program
|
||
kdePackages.ksystemlog # System log viewer
|
||
kdePackages.sddm-kcm # SDDM configuration module
|
||
kdePackages.isoimagewriter # Write hybrid ISOs to USB
|
||
kdePackages.partitionmanager # Disk and partition management
|
||
hardinfo2 # System benchmarks and hardware info
|
||
];
|
||
hardware.bluetooth = {
|
||
enable = true;
|
||
powerOnBoot = true;
|
||
settings = {
|
||
General = {
|
||
Experimental = true;
|
||
FastConnectable = true;
|
||
};
|
||
Policy = {
|
||
AutoEnable = true;
|
||
};
|
||
};
|
||
};
|
||
|
||
# DO NOT CHANGE!!
|
||
system.stateVersion = "26.05"; # Did you read the comment?
|
||
|
||
}
|