Compare commits
26 Commits
64a12d1cae
...
feature/ch
| Author | SHA1 | Date | |
|---|---|---|---|
|
212dddaffd
|
|||
|
58509367a3
|
|||
|
fdc93aff91
|
|||
|
f9f9c72498
|
|||
|
0fdada8766
|
|||
|
554462128e
|
|||
|
7c0bbf18c8
|
|||
| d1222fc204 | |||
|
da8fa17202
|
|||
| e143872f25 | |||
|
db22935910
|
|||
| b62d9f7630 | |||
|
20e19bb0be
|
|||
|
c31478461e
|
|||
|
073d257ca8
|
|||
|
7b50d5327c
|
|||
| 642e723fd6 | |||
|
9a8090dac2
|
|||
|
4e9ffcf6bd
|
|||
|
02a5d03d1a
|
|||
|
b480e8224d
|
|||
|
32a62aadd4
|
|||
|
619c00e678
|
|||
|
a02da7f66d
|
|||
|
8b616b65af
|
|||
|
17158618ee
|
52
flake.lock
generated
52
flake.lock
generated
@@ -28,11 +28,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774007980,
|
"lastModified": 1774584114,
|
||||||
"narHash": "sha256-FOnZjElEI8pqqCvB6K/1JRHTE8o4rer8driivTpq2uo=",
|
"narHash": "sha256-uWR9fC+4NykFJVn4GN4Ini9LX+w8Llj7BnWKKp0N6bw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "9670de2921812bc4e0452f6e3efd8c859696c183",
|
"rev": "4b1be5c38be350ee9452a4847945ce71d950dc31",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -43,11 +43,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773821835,
|
"lastModified": 1774386573,
|
||||||
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=",
|
"narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0",
|
"rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -57,22 +57,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770107345,
|
|
||||||
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
@@ -82,11 +66,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772402258,
|
"lastModified": 1774309640,
|
||||||
"narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=",
|
"narHash": "sha256-8oWL7YLwElBY9ebYri1LlSlhf/gd1Qoqj0nbBwG2yso=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10",
|
"rev": "28c58bf023bf537354f78d6e496a349d7a0ed554",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -103,11 +87,11 @@
|
|||||||
"noctalia-qs": "noctalia-qs"
|
"noctalia-qs": "noctalia-qs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774014047,
|
"lastModified": 1774574060,
|
||||||
"narHash": "sha256-pSbjavFqmHzbR4aG+22k81yGgjIUrV64UePEf4m/s5U=",
|
"narHash": "sha256-1aPBtIO74L/S4ymQ//qgWJfjknjpAlKEPULOL833wOc=",
|
||||||
"owner": "noctalia-dev",
|
"owner": "noctalia-dev",
|
||||||
"repo": "noctalia-shell",
|
"repo": "noctalia-shell",
|
||||||
"rev": "e2ba46ed122082a15841be9e2b9fb392395c5a4f",
|
"rev": "f19a19cfc6dcf2cd73b1d9d11460cbe363b0c967",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -126,11 +110,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773842483,
|
"lastModified": 1774556355,
|
||||||
"narHash": "sha256-oRqz+5AbNKfUWWwN5c83CsSOsUWVGITh0HZg+wX5Q/8=",
|
"narHash": "sha256-N131zILQ06ZNEvtgtjjFZ0N5qEI70rKKhCZsBcZoDH8=",
|
||||||
"owner": "noctalia-dev",
|
"owner": "noctalia-dev",
|
||||||
"repo": "noctalia-qs",
|
"repo": "noctalia-qs",
|
||||||
"rev": "3962ff1e0b59ef067c57199d31271ddbf23b29cd",
|
"rev": "070340934ca374bc770fd500a0fd7b3210f06b1c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -179,7 +163,11 @@
|
|||||||
},
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": [
|
||||||
|
"noctalia",
|
||||||
|
"noctalia-qs",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772660329,
|
"lastModified": 1772660329,
|
||||||
|
|||||||
78
flake.nix
78
flake.nix
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
description = "0x29a NixOS flake";
|
description = "0x29a NixOS flake";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
@@ -16,60 +16,30 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, home-manager, nixvim, ... }@inputs: {
|
outputs = { self, nixpkgs, home-manager, nixvim, ... }@inputs:
|
||||||
|
let
|
||||||
|
mkHost = hostName: nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./hosts/${hostName}/hardware-configuration.nix
|
||||||
|
./hosts/${hostName}/configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||||
|
home-manager.users.aaron.imports = [
|
||||||
|
nixvim.homeModules.nixvim
|
||||||
|
./users/aaron/home.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in {
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
|
default = mkHost "default";
|
||||||
default = nixpkgs.lib.nixosSystem {
|
neon = mkHost "neon";
|
||||||
system = "x86_64-linux";
|
argon = mkHost "argon";
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./hosts/default/hardware-configuration.nix
|
|
||||||
./hosts/default/configuration.nix
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
|
||||||
home-manager.users.aaron.imports = [
|
|
||||||
nixvim.homeModules.nixvim
|
|
||||||
./users/aaron/home.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
neon = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./hosts/neon/hardware-configuration.nix
|
|
||||||
./hosts/neon/configuration.nix
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
|
||||||
home-manager.users.aaron.imports = [
|
|
||||||
nixvim.homeModules.nixvim
|
|
||||||
./users/aaron/home.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
argon = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./hosts/argon/hardware-configuration.nix
|
|
||||||
./hosts/argon/configuration.nix
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
|
||||||
home-manager.users.aaron.imports = [
|
|
||||||
nixvim.homeModules.nixvim
|
|
||||||
./users/aaron/home.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,6 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
|
||||||
[
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# use flakes
|
# use flakes
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
|
|||||||
@@ -22,5 +22,6 @@
|
|||||||
plugins.telescope.enable = true;
|
plugins.telescope.enable = true;
|
||||||
plugins.web-devicons.enable = true;
|
plugins.web-devicons.enable = true;
|
||||||
plugins.indent-blankline.enable = true;
|
plugins.indent-blankline.enable = true;
|
||||||
|
extraPlugins = [ pkgs.vimPlugins.plenary-nvim ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,18 @@
|
|||||||
{
|
{
|
||||||
# user packages
|
# user packages
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
devenv
|
||||||
discord
|
discord
|
||||||
fastfetch
|
fastfetch
|
||||||
keepassxc
|
keepassxc
|
||||||
screenfetch
|
teamspeak6-client
|
||||||
devenv
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# services and other software
|
# services and other software
|
||||||
services.syncthing.enable = true;
|
services.syncthing.enable = true;
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
# browsers
|
||||||
|
programs.chromium.enable = true;
|
||||||
|
programs.firefox.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
package = pkgs.gnome-themes-extra;
|
package = pkgs.gnome-themes-extra;
|
||||||
};
|
};
|
||||||
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||||
|
gtk4.theme = null;
|
||||||
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
|
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
{ config, lib, pkgs, ...}:
|
{ config, lib, pkgs, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
# add docker group to user
|
||||||
|
users.users.aaron.extraGroups = [ "docker" ];
|
||||||
|
|
||||||
virtualisation.docker = {
|
virtualisation.docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# Customize Docker daemon settings
|
# Customize Docker daemon settings
|
||||||
|
|||||||
@@ -4,18 +4,18 @@
|
|||||||
# set the time zone
|
# set the time zone
|
||||||
time.timeZone = "Europe/Zurich";
|
time.timeZone = "Europe/Zurich";
|
||||||
|
|
||||||
# set internationalisation properties
|
# keep system language in english, but use swiss locale for formatting
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
LC_ADDRESS = "de_CH.UTF-8";
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
LC_IDENTIFICATION = "de_CH.UTF-8";
|
||||||
LC_MEASUREMENT = "en_US.UTF-8";
|
LC_MEASUREMENT = "de_CH.UTF-8";
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
LC_MONETARY = "de_CH.UTF-8";
|
||||||
LC_NAME = "en_US.UTF-8";
|
LC_NAME = "de_CH.UTF-8";
|
||||||
LC_NUMERIC = "en_US.UTF-8";
|
LC_NUMERIC = "de_CH.UTF-8";
|
||||||
LC_PAPER = "en_US.UTF-8";
|
LC_PAPER = "de_CH.UTF-8";
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
LC_TELEPHONE = "de_CH.UTF-8";
|
||||||
LC_TIME = "en_US.UTF-8";
|
LC_TIME = "de_CH.UTF-8";
|
||||||
};
|
};
|
||||||
|
|
||||||
# set console font and keymap
|
# set console font and keymap
|
||||||
|
|||||||
@@ -8,9 +8,8 @@
|
|||||||
networking.firewall.allowedTCPPorts = [ ];
|
networking.firewall.allowedTCPPorts = [ ];
|
||||||
networking.firewall.allowedUDPPorts = [ ];
|
networking.firewall.allowedUDPPorts = [ ];
|
||||||
|
|
||||||
# enable wifi
|
# enable wifi firmware
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
networking.wireless.enable = true;
|
|
||||||
|
|
||||||
# enable bluetooth
|
# enable bluetooth
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|||||||
@@ -1,24 +1,19 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# system packges
|
# system packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
alacritty
|
|
||||||
btop
|
btop
|
||||||
cowsay
|
cowsay
|
||||||
dnsutils
|
dnsutils
|
||||||
ethtool
|
ethtool
|
||||||
file
|
file
|
||||||
fwupd
|
|
||||||
fwupd-efi
|
|
||||||
ghostty
|
|
||||||
git
|
git
|
||||||
imagemagick
|
imagemagick
|
||||||
imv
|
imv
|
||||||
iperf3
|
iperf3
|
||||||
jq
|
jq
|
||||||
kdePackages.qtmultimedia
|
kdePackages.qtmultimedia
|
||||||
kitty
|
|
||||||
ldns
|
ldns
|
||||||
lm_sensors
|
lm_sensors
|
||||||
lsof
|
lsof
|
||||||
@@ -31,12 +26,10 @@
|
|||||||
nvd
|
nvd
|
||||||
p7zip
|
p7zip
|
||||||
pciutils
|
pciutils
|
||||||
sddm-astronaut
|
|
||||||
socat
|
socat
|
||||||
sof-firmware
|
sof-firmware
|
||||||
strace
|
strace
|
||||||
sysstat
|
sysstat
|
||||||
terminus_font
|
|
||||||
tree
|
tree
|
||||||
unzip
|
unzip
|
||||||
usbutils
|
usbutils
|
||||||
@@ -48,7 +41,4 @@
|
|||||||
zip
|
zip
|
||||||
zstd
|
zstd
|
||||||
];
|
];
|
||||||
|
|
||||||
# browser
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
networking.firewall.checkReversePath = false;
|
# protonvpn uses wireguard tunnels, which break strict reverse path filtering
|
||||||
|
# because packets arrive on the tunnel interface but may be routed back differently.
|
||||||
|
# "loose" checks that the source is routable through *any* interface (not necessarily
|
||||||
|
# the same one), which is sufficient for wireguard while still preventing IP spoofing.
|
||||||
|
networking.firewall.checkReversePath = "loose";
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
wireguard-tools
|
|
||||||
protonvpn-gui
|
protonvpn-gui
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,4 +17,9 @@
|
|||||||
sddm-astronaut
|
sddm-astronaut
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Make the theme available in the system path so sddm can find it
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
sddm-astronaut
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,10 +32,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# allow unfree packages (steam, protonvpn, discord, etc.)
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# links /libexec from derivations to /run/current-system/sw
|
# links /libexec from derivations to /run/current-system/sw
|
||||||
environment.pathsToLink = [ "/libexec" ];
|
environment.pathsToLink = [ "/libexec" ];
|
||||||
# set the default editor to vim
|
|
||||||
environment.variables.EDITOR = "vim";
|
|
||||||
|
|
||||||
# enable home-manager globally
|
# enable home-manager globally
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# allow unfree to install steam
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
# enable steam and open firewall
|
# enable steam and open firewall
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
users.users.aaron = {
|
users.users.aaron = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
group = "users";
|
group = "users";
|
||||||
extraGroups = [ "wheel" "networkmanager" "docker" ];
|
extraGroups = [ "wheel" "networkmanager" "dialout" ];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user