Compare commits
18 Commits
4360fbed68
...
0fccd2d54b
| Author | SHA1 | Date | |
|---|---|---|---|
|
0fccd2d54b
|
|||
|
3a95182d3a
|
|||
|
c125409336
|
|||
|
f3678a13c5
|
|||
|
520eadd6fb
|
|||
|
01f6137eed
|
|||
|
edd73ddf53
|
|||
|
31c4834a2d
|
|||
|
6d437c290f
|
|||
|
2cdd02b024
|
|||
|
7f57f89a77
|
|||
|
9cde74486a
|
|||
|
a045ca7d94
|
|||
|
3c18029b95
|
|||
|
d06ab6d54b
|
|||
|
6a9ba7082b
|
|||
|
64dee7a59f
|
|||
|
b4c3ddd300
|
@@ -1,200 +1,23 @@
|
|||||||
{ pkgs, lib, inputs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[
|
../../modules/nixos/bootloader.nix
|
||||||
./hardware-configuration.nix
|
../../modules/nixos/audio.nix
|
||||||
];
|
../../modules/nixos/compositor.nix
|
||||||
|
../../modules/nixos/gnupg.nix
|
||||||
# use flakes
|
../../modules/nixos/locales.nix
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
../../modules/nixos/networking.nix
|
||||||
|
../../modules/nixos/noctalia.nix
|
||||||
# configure bootloader
|
../../modules/nixos/openssh.nix
|
||||||
boot.loader.systemd-boot.enable = true;
|
../../modules/nixos/packages.nix
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
../../modules/nixos/sddm.nix
|
||||||
|
../../modules/nixos/services.nix
|
||||||
# plymouth boot eye candy
|
../../modules/nixos/settings.nix
|
||||||
boot.initrd.systemd.enable = true;
|
../../modules/nixos/steam.nix
|
||||||
boot.kernelParams = [ "quiet" "loglevel=2" ];
|
../../modules/nixos/users.nix
|
||||||
boot.plymouth.enable = true;
|
|
||||||
boot.plymouth.theme = "spinner";
|
|
||||||
|
|
||||||
# use latest kernel
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
|
|
||||||
# networking
|
|
||||||
networking.hostName = "neon";
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
# bluetooth
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
|
|
||||||
# time zone.
|
|
||||||
time.timeZone = "Europe/Amsterdam";
|
|
||||||
|
|
||||||
# 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";
|
|
||||||
};
|
|
||||||
console = {
|
|
||||||
font = "Lat2-Terminus16";
|
|
||||||
keyMap = "de_CH-latin1";
|
|
||||||
};
|
|
||||||
|
|
||||||
# set up niri as window manager
|
|
||||||
programs.niri.enable = true;
|
|
||||||
# set up sddm ad display manager
|
|
||||||
services.displayManager.sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
autoNumlock = true;
|
|
||||||
enableHidpi = true;
|
|
||||||
theme = "sddm-astronaut-theme";
|
|
||||||
settings = {
|
|
||||||
Theme = {
|
|
||||||
Current = "sddm-astronaut-theme";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
sddm-astronaut
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.tuned.enable = true;
|
|
||||||
services.upower.enable = true;
|
|
||||||
|
|
||||||
environment.pathsToLink = [ "/libexec" ];
|
|
||||||
environment.variables.EDITOR = "vim";
|
|
||||||
|
|
||||||
# enable sound
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# define a user account
|
|
||||||
users.users.aaron = {
|
|
||||||
isNormalUser = true;
|
|
||||||
group = "users";
|
|
||||||
extraGroups = [ "wheel" ];
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
};
|
|
||||||
|
|
||||||
# browser
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# zsh config
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
autosuggestions.enable = true;
|
|
||||||
ohMyZsh = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [ "git" "sudo" ];
|
|
||||||
theme = "gentoo";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# system packages
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
alacritty
|
|
||||||
btop
|
|
||||||
cowsay
|
|
||||||
dnsutils
|
|
||||||
efibootmgr
|
|
||||||
ethtool
|
|
||||||
file
|
|
||||||
ghostty
|
|
||||||
git
|
|
||||||
gnupg
|
|
||||||
iftop
|
|
||||||
imagemagick
|
|
||||||
imv
|
|
||||||
iotop
|
|
||||||
iperf3
|
|
||||||
jq
|
|
||||||
kdePackages.qtmultimedia
|
|
||||||
kitty
|
|
||||||
ldns
|
|
||||||
lm_sensors
|
|
||||||
lsof
|
|
||||||
ltrace
|
|
||||||
mtr
|
|
||||||
neovim
|
|
||||||
nh
|
|
||||||
nix-output-monitor
|
|
||||||
nmap
|
|
||||||
nvd
|
|
||||||
p7zip
|
|
||||||
pciutils
|
|
||||||
sddm-astronaut
|
|
||||||
socat
|
|
||||||
strace
|
|
||||||
sysstat
|
|
||||||
tree
|
|
||||||
unzip
|
|
||||||
usbutils
|
|
||||||
vim
|
|
||||||
wget
|
|
||||||
which
|
|
||||||
xwayland-satellite
|
|
||||||
xz
|
|
||||||
zip
|
|
||||||
zstd
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Some programs need SUID wrappers
|
|
||||||
programs.mtr.enable = true;
|
|
||||||
programs.gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# enable steam on this machine
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
remotePlay.openFirewall = true;
|
|
||||||
dedicatedServer.openFirewall = true;
|
|
||||||
localNetworkGameTransfers.openFirewall = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# fix black screen in steam on xwayland-satellite
|
|
||||||
programs.steam.package = pkgs.steam.override {
|
|
||||||
extraArgs = "-system-composer";
|
|
||||||
};
|
|
||||||
|
|
||||||
# enable the OpenSSH daemon
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# firewall configs
|
|
||||||
networking.firewall.allowedTCPPorts = [ ];
|
|
||||||
networking.firewall.allowedUDPPorts = [ ];
|
|
||||||
|
|
||||||
# enable home-manager globally
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.backupFileExtension = "backup";
|
|
||||||
|
|
||||||
# add flake env variable for nh
|
|
||||||
environment.sessionVariables = {
|
|
||||||
NH_FLAKE = "/home/aaron/git/nixconfig";
|
|
||||||
};
|
|
||||||
|
|
||||||
# install state version
|
# install state version
|
||||||
system.stateVersion = "25.11"; # Don't change
|
system.stateVersion = "25.11"; # Don't change
|
||||||
}
|
}
|
||||||
|
|||||||
9
modules/nixos/audio.nix
Normal file
9
modules/nixos/audio.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# enable sound through pipewire
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
27
modules/nixos/bootloader.nix
Normal file
27
modules/nixos/bootloader.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# set bootloader to systemd
|
||||||
|
boot.loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# enable systemd initrd
|
||||||
|
boot.initrd.systemd.enable = true;
|
||||||
|
|
||||||
|
# plymouth
|
||||||
|
boot.plymouth = {
|
||||||
|
enable = true;
|
||||||
|
theme = "spinner";
|
||||||
|
};
|
||||||
|
|
||||||
|
# kernel options
|
||||||
|
boot.kernelParams = [ "quiet" "loglevel=2" ];
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
# Add boot-related packages
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
efibootmgr
|
||||||
|
];
|
||||||
|
}
|
||||||
11
modules/nixos/compositor.nix
Normal file
11
modules/nixos/compositor.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# just enable and install niri
|
||||||
|
programs.niri.enable = true;
|
||||||
|
|
||||||
|
# Add compositor-related packages
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
xwayland-satellite
|
||||||
|
];
|
||||||
|
}
|
||||||
9
modules/nixos/gnupg.nix
Normal file
9
modules/nixos/gnupg.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# enable gnupg agent
|
||||||
|
services.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
26
modules/nixos/locales.nix
Normal file
26
modules/nixos/locales.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# set the time zone
|
||||||
|
time.timeZone = "Europe/Zurich";
|
||||||
|
|
||||||
|
# set 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";
|
||||||
|
};
|
||||||
|
|
||||||
|
# set console font and keymap
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
keyMap = "de_CH-latin1";
|
||||||
|
};
|
||||||
|
}
|
||||||
21
modules/nixos/networking.nix
Normal file
21
modules/nixos/networking.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# set hostnname
|
||||||
|
networking.hostName = "neon";
|
||||||
|
|
||||||
|
# user networkmanager
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
# firewall default configs
|
||||||
|
networking.firewall.allowedTCPPorts = [ ];
|
||||||
|
networking.firewall.allowedUDPPorts = [ ];
|
||||||
|
|
||||||
|
# enable bluetooth
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
|
# Add network-related packages
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wireguard-tools
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
{ pkgs, inputs, ... }:
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
{
|
{
|
||||||
# install noctalia and helper packages
|
# install noctalia and helper packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
|
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||||
#kdePackages.qt6ct
|
|
||||||
#nwg-look
|
|
||||||
adw-gtk3
|
adw-gtk3
|
||||||
adwaita-qt
|
adwaita-qt
|
||||||
adwaita-qt6
|
adwaita-qt6
|
||||||
9
modules/nixos/openssh.nix
Normal file
9
modules/nixos/openssh.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# enable the openssh daemon
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
50
modules/nixos/packages.nix
Normal file
50
modules/nixos/packages.nix
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# system packges
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
alacritty
|
||||||
|
btop
|
||||||
|
cowsay
|
||||||
|
dnsutils
|
||||||
|
ethtool
|
||||||
|
file
|
||||||
|
ghostty
|
||||||
|
git
|
||||||
|
gnupg
|
||||||
|
imagemagick
|
||||||
|
imv
|
||||||
|
iperf3
|
||||||
|
jq
|
||||||
|
kdePackages.qtmultimedia
|
||||||
|
kitty
|
||||||
|
ldns
|
||||||
|
lm_sensors
|
||||||
|
lsof
|
||||||
|
ltrace
|
||||||
|
mtr
|
||||||
|
neovim
|
||||||
|
nh
|
||||||
|
nix-output-monitor
|
||||||
|
nmap
|
||||||
|
nvd
|
||||||
|
p7zip
|
||||||
|
pciutils
|
||||||
|
sddm-astronaut
|
||||||
|
socat
|
||||||
|
strace
|
||||||
|
sysstat
|
||||||
|
tree
|
||||||
|
unzip
|
||||||
|
usbutils
|
||||||
|
vim
|
||||||
|
wget
|
||||||
|
which
|
||||||
|
xz
|
||||||
|
zip
|
||||||
|
zstd
|
||||||
|
];
|
||||||
|
|
||||||
|
# browser
|
||||||
|
programs.firefox.enable = true;
|
||||||
|
}
|
||||||
20
modules/nixos/sddm.nix
Normal file
20
modules/nixos/sddm.nix
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# enable sddm and use astronaut theme
|
||||||
|
services.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
autoNumlock = true;
|
||||||
|
enableHidpi = true;
|
||||||
|
theme = "sddm-astronaut-theme";
|
||||||
|
settings = {
|
||||||
|
Theme = {
|
||||||
|
Current = "sddm-astronaut-theme";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
sddm-astronaut
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
9
modules/nixos/services.nix
Normal file
9
modules/nixos/services.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# list of enabled services on the system
|
||||||
|
services = {
|
||||||
|
tuned.enable = true;
|
||||||
|
upower.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
16
modules/nixos/settings.nix
Normal file
16
modules/nixos/settings.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# use flakes and nix command
|
||||||
|
nix.settings.experimental-feature = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
|
# links /libexec from derivations to /run/current-system/sw
|
||||||
|
environment.pathsToLink = [ "/libexec" ];
|
||||||
|
# set the default editor to vim
|
||||||
|
environment.variables.EDITOR = "vim";
|
||||||
|
|
||||||
|
# enable home-manager globally
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.backupFileExtension = "backup";
|
||||||
|
}
|
||||||
19
modules/nixos/steam.nix
Normal file
19
modules/nixos/steam.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# allow unfree to install steam
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# enable steam and open firewall
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
dedicatedServer.openFirewall = true;
|
||||||
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# fix black screen in steam when using xwayland-satellite
|
||||||
|
programs.steam.package = pkgs.steam.override {
|
||||||
|
extraArgs = "-system-composer";
|
||||||
|
};
|
||||||
|
}
|
||||||
23
modules/nixos/users.nix
Normal file
23
modules/nixos/users.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# create users
|
||||||
|
users.users.aaron = {
|
||||||
|
isNormalUser = true;
|
||||||
|
group = "users";
|
||||||
|
extraGroups = [ "wheel" "networkmanager" ];
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
};
|
||||||
|
|
||||||
|
# add default zsh config
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestions.enable = true;
|
||||||
|
ohMyZsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [ "git" "sudo" ];
|
||||||
|
theme = "gentoo";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -142,6 +142,11 @@
|
|||||||
EDITOR = "vim";
|
EDITOR = "vim";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# add flake env variable for nh
|
||||||
|
environment.sessionVariables = {
|
||||||
|
NH_FLAKE = "/home/aaron/git/nixconfig";
|
||||||
|
};
|
||||||
|
|
||||||
# enable syncthing for user
|
# enable syncthing for user
|
||||||
services.syncthing.enable = true;
|
services.syncthing.enable = true;
|
||||||
# enable home manager
|
# enable home manager
|
||||||
Reference in New Issue
Block a user