Compare commits
38 Commits
64a12d1cae
...
feature/ad
| Author | SHA1 | Date | |
|---|---|---|---|
|
ee127abe7e
|
|||
|
a14e5b5a77
|
|||
|
69ca1dbaca
|
|||
| c38d3ec7b8 | |||
|
d5d6488761
|
|||
|
e0e282a547
|
|||
| 9f0ee40cc3 | |||
|
68fc3a2df2
|
|||
| 5dfc62fc83 | |||
|
1b82de5c92
|
|||
|
c1d1fb7793
|
|||
| e6bc267161 | |||
|
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
|
64
flake.lock
generated
64
flake.lock
generated
@@ -8,11 +8,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769996383,
|
||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||
"lastModified": 1775087534,
|
||||
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -28,11 +28,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774007980,
|
||||
"narHash": "sha256-FOnZjElEI8pqqCvB6K/1JRHTE8o4rer8driivTpq2uo=",
|
||||
"lastModified": 1777004352,
|
||||
"narHash": "sha256-SV+9PgNwZ8jHVCjK6YaCBzaheLSW7cDnm5DpOYrD8Vw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "9670de2921812bc4e0452f6e3efd8c859696c183",
|
||||
"rev": "6012cf1fed3eba66115f3fd117b9be6bd2a15b2f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -43,11 +43,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1773821835,
|
||||
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=",
|
||||
"lastModified": 1776548001,
|
||||
"narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0",
|
||||
"rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -57,22 +57,6 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
@@ -82,11 +66,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772402258,
|
||||
"narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=",
|
||||
"lastModified": 1777051818,
|
||||
"narHash": "sha256-2tuHuYmcg8HQSYamI1FoLLVFFOSYK2Alqr/cGiVIfG4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10",
|
||||
"rev": "b684241888d9271ab5196383e24098ad4400a372",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -103,11 +87,11 @@
|
||||
"noctalia-qs": "noctalia-qs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774014047,
|
||||
"narHash": "sha256-pSbjavFqmHzbR4aG+22k81yGgjIUrV64UePEf4m/s5U=",
|
||||
"lastModified": 1776888984,
|
||||
"narHash": "sha256-Up2F/eoMuPUsZnPVYdH5TMHe1TBP2Ue1QuWd0vWZoxY=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "e2ba46ed122082a15841be9e2b9fb392395c5a4f",
|
||||
"rev": "2c1808f9f8937fc0b82c54af513f7620fec56d71",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -126,11 +110,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773842483,
|
||||
"narHash": "sha256-oRqz+5AbNKfUWWwN5c83CsSOsUWVGITh0HZg+wX5Q/8=",
|
||||
"lastModified": 1776585574,
|
||||
"narHash": "sha256-j35EWhKoGhKrfcXcAOpoRVgXEPQt41Eukji/h59cnjk=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-qs",
|
||||
"rev": "3962ff1e0b59ef067c57199d31271ddbf23b29cd",
|
||||
"rev": "75d180c28a9ab4470e980f3d6f706ad6c5213add",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -179,14 +163,18 @@
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": [
|
||||
"noctalia",
|
||||
"noctalia-qs",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772660329,
|
||||
"narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=",
|
||||
"lastModified": 1775636079,
|
||||
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "3710e0e1218041bbad640352a0440114b1e10428",
|
||||
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
78
flake.nix
78
flake.nix
@@ -1,6 +1,6 @@
|
||||
{
|
||||
description = "0x29a NixOS flake";
|
||||
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
@@ -16,60 +16,30 @@
|
||||
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 = {
|
||||
|
||||
default = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
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
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
default = mkHost "default";
|
||||
neon = mkHost "neon";
|
||||
argon = mkHost "argon";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,9 +4,11 @@
|
||||
imports = [
|
||||
../../modules/nixos/audio.nix
|
||||
../../modules/nixos/bootloader.nix
|
||||
../../modules/nixos/calibre.nix
|
||||
../../modules/nixos/certificates.nix
|
||||
../../modules/nixos/drives.nix
|
||||
../../modules/nixos/gnupg.nix
|
||||
../../modules/nixos/gnuradio.nix
|
||||
../../modules/nixos/graphics.nix
|
||||
../../modules/nixos/greetd.nix
|
||||
../../modules/nixos/locales.nix
|
||||
|
||||
@@ -3,11 +3,6 @@
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# use flakes
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
|
||||
@@ -22,5 +22,6 @@
|
||||
plugins.telescope.enable = true;
|
||||
plugins.web-devicons.enable = true;
|
||||
plugins.indent-blankline.enable = true;
|
||||
extraPlugins = [ pkgs.vimPlugins.plenary-nvim ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,14 +3,18 @@
|
||||
{
|
||||
# user packages
|
||||
home.packages = with pkgs; [
|
||||
devenv
|
||||
discord
|
||||
fastfetch
|
||||
keepassxc
|
||||
screenfetch
|
||||
devenv
|
||||
teamspeak6-client
|
||||
];
|
||||
|
||||
# services and other software
|
||||
services.syncthing.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;
|
||||
};
|
||||
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
gtk4.theme = null;
|
||||
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
|
||||
|
||||
8
modules/nixos/calibre.nix
Normal file
8
modules/nixos/calibre.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# install calibre for ebook management and kobo syncing
|
||||
environment.systemPackages = with pkgs; [
|
||||
calibre
|
||||
];
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{ config, lib, pkgs, ...}:
|
||||
|
||||
{
|
||||
# add docker group to user
|
||||
users.users.aaron.extraGroups = [ "docker" ];
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
# Customize Docker daemon settings
|
||||
|
||||
12
modules/nixos/gnuradio.nix
Normal file
12
modules/nixos/gnuradio.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# install gnuradio companion along with it's osmocom library
|
||||
environment.systemPackages = with pkgs; [
|
||||
(gnuradio.override {
|
||||
extraPackages = with gnuradio.pkgs; [ osmosdr ];
|
||||
})
|
||||
gqrx
|
||||
hackrf
|
||||
];
|
||||
}
|
||||
@@ -4,18 +4,18 @@
|
||||
# set the time zone
|
||||
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.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";
|
||||
LC_ADDRESS = "de_CH.UTF-8";
|
||||
LC_IDENTIFICATION = "de_CH.UTF-8";
|
||||
LC_MEASUREMENT = "de_CH.UTF-8";
|
||||
LC_MONETARY = "de_CH.UTF-8";
|
||||
LC_NAME = "de_CH.UTF-8";
|
||||
LC_NUMERIC = "de_CH.UTF-8";
|
||||
LC_PAPER = "de_CH.UTF-8";
|
||||
LC_TELEPHONE = "de_CH.UTF-8";
|
||||
LC_TIME = "de_CH.UTF-8";
|
||||
};
|
||||
|
||||
# set console font and keymap
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
networking.firewall.allowedTCPPorts = [ ];
|
||||
networking.firewall.allowedUDPPorts = [ ];
|
||||
|
||||
# enable wifi
|
||||
# enable wifi firmware
|
||||
hardware.enableAllFirmware = true;
|
||||
networking.wireless.enable = true;
|
||||
|
||||
# enable bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# system packges
|
||||
# system packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
alacritty
|
||||
btop
|
||||
cowsay
|
||||
dnsutils
|
||||
ethtool
|
||||
file
|
||||
fwupd
|
||||
fwupd-efi
|
||||
ghostty
|
||||
git
|
||||
imagemagick
|
||||
imv
|
||||
iperf3
|
||||
jq
|
||||
kdePackages.qtmultimedia
|
||||
kitty
|
||||
ldns
|
||||
lm_sensors
|
||||
lsof
|
||||
@@ -31,12 +26,10 @@
|
||||
nvd
|
||||
p7zip
|
||||
pciutils
|
||||
sddm-astronaut
|
||||
socat
|
||||
sof-firmware
|
||||
strace
|
||||
sysstat
|
||||
terminus_font
|
||||
tree
|
||||
unzip
|
||||
usbutils
|
||||
@@ -48,7 +41,4 @@
|
||||
zip
|
||||
zstd
|
||||
];
|
||||
|
||||
# browser
|
||||
programs.firefox.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{ 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; [
|
||||
wireguard-tools
|
||||
protonvpn-gui
|
||||
proton-vpn
|
||||
];
|
||||
}
|
||||
|
||||
@@ -17,4 +17,9 @@
|
||||
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
|
||||
environment.pathsToLink = [ "/libexec" ];
|
||||
# set the default editor to vim
|
||||
environment.variables.EDITOR = "vim";
|
||||
|
||||
# enable home-manager globally
|
||||
home-manager.useGlobalPkgs = true;
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# allow unfree to install steam
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# enable steam and open firewall
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
users.users.aaron = {
|
||||
isNormalUser = true;
|
||||
group = "users";
|
||||
extraGroups = [ "wheel" "networkmanager" "docker" ];
|
||||
extraGroups = [ "wheel" "networkmanager" "dialout" ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user