This commit is contained in:
2026-05-29 19:01:21 +02:00
parent 7101cd0860
commit bc1dae3cee
8 changed files with 255 additions and 379 deletions
+173 -137
View File
@@ -1,77 +1,82 @@
# Edit this configuration file to define what should be installed on your system. Help is available
# Edit this configuration file to define what should be installed on your system. Help is available
# in the configuration.nix(5) man page and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, ... }:
{
config,
pkgs,
inputs,
nix2511,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
];
{ imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
];
nix.settings.trusted-users = [ "root" "nico" ];
nix.settings.trusted-users = ["root" "nico"];
# home manager
home-manager = {
extraSpecialArgs = { inherit inputs; };
extraSpecialArgs = {inherit inputs;};
users = {
"nico" = import ./home-nico.nix;
};
};
# hyprland
# programs.hyprland = {
# enable = true;
# xwayland.enable = true;
# };
# programs.hyprland = {
# enable = true;
# xwayland.enable = true;
# };
programs.niri.enable = true;
programs.niri.enable = true;
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.useOSProber = true;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.useOSProber = true;
fileSystems."mnt/win" = {
device = "/dev/disk/by-partuuid/8d0a8dd9-7a4c-4d3e-a5eb-98c0aed35db5";
fsType = "ntfs-3g";
options = ["rw" "uid=1000"];
};
fileSystems."mnt/win" = {
device = "/dev/disk/by-partuuid/8d0a8dd9-7a4c-4d3e-a5eb-98c0aed35db5";
fsType = "ntfs-3g";
options = ["rw" "uid=1000"];
};
# hibernation
swapDevices = [
{
device = "/var/lib/swapfile";
size = 32 * 1024;
}
];
# hibernation
swapDevices = [
{
device = "/var/lib/swapfile";
size = 32 * 1024;
}
];
boot.resumeDevice = "/dev/disk/by-uuid/a4bfe07b-a6b5-47d9-80c7-f74b44f84f31";
boot.resumeDevice = "/dev/disk/by-uuid/a4bfe07b-a6b5-47d9-80c7-f74b44f84f31";
powerManagement.enable = true;
powerManagement.enable = true;
# Flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary networking.proxy.default =
# "http://user:password@proxy:port/"; networking.proxy.noProxy =
# Configure network proxy if necessary networking.proxy.default =
# "http://user:password@proxy:port/"; networking.proxy.noProxy =
# "127.0.0.1,localhost,internal.domain";
# Enable networking
boot.kernelParams = [ "ipv6.disable=1" "resume_offset=94015488"];
boot.kernelParams = ["ipv6.disable=1" "resume_offset=94015488"];
networking.networkmanager.enable = true;
networking.hostName = "nixos"; # Define your hostname.
networking.enableIPv6 = false;
networking.enableIPv6 = false;
# VM
# virtualisation.virtualbox.host.enable = true;
# virtualisation.virtualbox.host.enableExtensionPack = true;
# virtualisation.virtualbox.host.enableKvm = true;
# virtualisation.virtualbox.host.addNetworkInterface = false;
# users.extraGroups.vboxusers.members = [ "nico" ];
# # virtualisation.virtualbox.guest.enable = true;
# # virtualisation.virtualbox.guest.dragAndDrop = true;
virtualisation.docker.enable = true;
# virtualisation.virtualbox.host.enable = true;
# virtualisation.virtualbox.host.enableExtensionPack = true;
# virtualisation.virtualbox.host.enableKvm = true;
# virtualisation.virtualbox.host.addNetworkInterface = false;
# users.extraGroups.vboxusers.members = [ "nico" ];
# # virtualisation.virtualbox.guest.enable = true;
# # virtualisation.virtualbox.guest.dragAndDrop = true;
virtualisation.docker.enable = true;
# Set your time zone.
time.timeZone = "Europe/Berlin";
@@ -79,19 +84,36 @@ powerManagement.enable = true;
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC =
"en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
#hardware.opengl = {
# enable = true;
# driSupport32Bit = true;
# extraPackages = with pkgs; [
# vulkan-loader
# vulkan-validation-layers
# vulkan-extension-layer
# ];
#};
# Enable the X11 windowing system. You can disable this if you're only using the Wayland session.
services.xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
xfce.enable = false;
};
};
services.xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
xfce.enable = false;
};
};
xdg.portal = {
enable = true;
@@ -101,28 +123,30 @@ powerManagement.enable = true;
];
config = {
common = {
default = [ "gtk" ];
default = ["gtk"];
};
niri = {
# default = [
# "gtk"
# "gnome"
# ];
"org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ];
"org.freedesktop.impl.portal.Screenshot" = [ "gnome" ];
"org.freedesktop.impl.portal.ScreenCast" = ["gnome"];
"org.freedesktop.impl.portal.Screenshot" = ["gnome"];
};
};
};
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true;
services.displayManager.ly.enable = false;
services.desktopManager.plasma6.enable = true;
services.displayManager.enable = true;
services.displayManager.logToJournal = true;
services.displayManager.sddm.enable = false;
services.displayManager.ly.enable = true;
services.desktopManager.plasma6.enable = true;
# Configure keymap in X11
services.xserver = { xkb.layout = "us"; xkb.variant = "";
services.xserver = {
xkb.layout = "us";
xkb.variant = "";
};
# Configure console keymap
@@ -132,105 +156,113 @@ powerManagement.enable = true;
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;
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default, no
# use the example session manager (no others are packaged yet so this is enabled by default, no
# need to redefine it in your config for now)
#media-session.enable = true;
};
systemd.user.services.orca.enable = false;
# Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable
# Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable
# = true;
services.mullvad-vpn.enable = true;
services.mullvad-vpn.enable = true;
services.mullvad-vpn.package = pkgs.mullvad-vpn;
# Define a user account. Don't forget to set a password with passwd.
users.users.nico = { isNormalUser = true; description = "nico"; extraGroups = [ "networkmanager"
"wheel" "adbusers" "docker" "input" "dialout"]; packages = with pkgs; [
users.users.nico = {
isNormalUser = true;
description = "nico";
extraGroups = [
"networkmanager"
"wheel"
"adbusers"
"docker"
"input"
"dialout"
];
packages = with pkgs; [
];
};
users.defaultUserShell = pkgs.zsh;
environment.shells = with pkgs; [ zsh nushell ];
environment.shells = with pkgs; [zsh nushell];
programs.zsh.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
services.udev.packages = [
services.udev.packages = [
pkgs.platformio-core
pkgs.openocd
];
# services.flatpak.enable = true;
programs.nix-ld.enable = true;
# services.flatpak.enable = true;
programs.nix-ld.enable = true;
# List packages installed in system profile. To search, run: $ nix search wget
environment.systemPackages = with pkgs; [
environment.systemPackages = [
nix2511.lutris
# grayjay
signal-desktop
obsidian
# anki
grayjay
lutris
vim
wget
git
tree
ntfs3g
heroic
wineWow64Packages.stable
sshfs
devenv
logiops
pkgs.signal-desktop
pkgs.obsidian
pkgs.anki
pkgs.grayjay
# pkgs.vim
pkgs.wget
pkgs.git
pkgs.tree
pkgs.ntfs3g
pkgs.heroic
pkgs.wineWow64Packages.stable
pkgs.sshfs
pkgs.devenv
pkgs.logiops
pkgs.btop
# sway
networkmanager
networkmanagerapplet
# wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
cliphist
# mako # notification system developed by swaywm maintainer
waybar # bar
pulseaudio
pavucontrol
brightnessctl # brightness controls
# pkgs.sway
pkgs.networkmanager
pkgs.networkmanagerapplet
# pkgs.wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
pkgs.cliphist
# pkgs. mako # notification system developed by swaywm maintainer
pkgs.waybar # bar
pkgs.pulseaudio
pkgs.pavucontrol
pkgs.brightnessctl # brightness controls
# wpaperd # wallpaper manager
];
fonts.packages = with pkgs; [
# iosevka
# (nerdfonts.override { fonts = [ "JetBrainsMono" "UbuntuMono" ]; })
nerd-fonts.jetbrains-mono
nerd-fonts.ubuntu-mono
];
fonts.packages = with pkgs; [
# iosevka
# (nerdfonts.override { fonts = [ "JetBrainsMono" "UbuntuMono" ]; })
nerd-fonts.jetbrains-mono
nerd-fonts.ubuntu-mono
];
hardware.amdgpu.opencl.enable = true;
hardware.amdgpu.opencl.enable = true;
programs.steam = {
enable = true;
};
services.gnome.gnome-keyring.enable = true;
services.gnome.gnome-keyring.enable = true;
programs.sway = {
enable = false;
wrapperFeatures.gtk = true;
};
# programs.hyprland = {
# enable = true;
# package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# };
# programs.hyprland = {
# enable = true;
# package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# };
# Some programs need SUID wrappers, can be configured further or are started in user sessions.
# Some programs need SUID wrappers, can be configured further or are started in user sessions.
# programs.mtr.enable = true; programs.gnupg.agent = {
# enable = true; enableSSHSupport = true;
# };
@@ -244,26 +276,30 @@ hardware.amdgpu.opencl.enable = true;
};
};
# Open ports in the firewall. networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; Or disable the firewall altogether.
# Open ports in the firewall. networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; Or disable the firewall altogether.
# networking.firewall.enable = false;
networking.firewall = {
networking.firewall = {
enable = false;
allowedTCPPortRanges = [
{ from = 1714; to = 1764; } # KDE Connect
];
allowedUDPPortRanges = [
{ from = 1714; to = 1764; } # KDE Connect
];
};
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
} # KDE Connect
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
} # KDE Connect
];
};
# This value determines the NixOS release from which the default settings for stateful data, like
# file locations and database versions on your system were taken. Its perfectly fine and
# recommended to leave this value at the release version of the first install of this system. Before
# changing this value read the documentation for this option (e.g. man configuration.nix or on
# This value determines the NixOS release from which the default settings for stateful data, like
# file locations and database versions on your system were taken. Its perfectly fine and
# recommended to leave this value at the release version of the first install of this system. Before
# changing this value read the documentation for this option (e.g. man configuration.nix or on
# https://nixos.org/nixos/options.html).
system.stateVersion = "24.11"; # Did you read the comment?
}