format nix files

This commit is contained in:
Pim Kunis 2023-11-05 18:49:51 +01:00
parent ee1dc21112
commit 3d34c1e691
13 changed files with 228 additions and 199 deletions

View file

@ -20,15 +20,26 @@
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
}; };
outputs = { nixpkgs, home-manager, homeage, agenix, nur, nixos-hardware, ... }: { outputs = {
nixpkgs,
home-manager,
homeage,
agenix,
nur,
nixos-hardware,
...
}: {
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
nixosConfigurations.pim = nixpkgs.lib.nixosSystem { nixosConfigurations.pim = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
{ nixpkgs.overlays = [ nur.overlay ]; } {nixpkgs.overlays = [nur.overlay];}
./nixos ./nixos
agenix.nixosModules.default agenix.nixosModules.default
nixos-hardware.nixosModules.lenovo-thinkpad-x260 nixos-hardware.nixosModules.lenovo-thinkpad-x260
home-manager.nixosModules.home-manager { home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.pim = { home-manager.users.pim = {

View file

@ -1,6 +1,9 @@
{ pkgs, lib, config, ... }:
{ {
pkgs,
lib,
config,
...
}: {
imports = [ imports = [
./bash ./bash
./neovim ./neovim
@ -30,7 +33,7 @@
strawberry strawberry
gimp gimp
libreoffice libreoffice
(pkgs.nerdfonts.override { fonts = [ "Hack" ]; }) (pkgs.nerdfonts.override {fonts = ["Hack"];})
virt-manager virt-manager
gnome.gnome-tweaks gnome.gnome-tweaks
]; ];
@ -82,22 +85,22 @@
xdg.userDirs.enable = true; xdg.userDirs.enable = true;
homeage = { homeage = {
identityPaths = [ "/home/pim/.ssh/age_ed25519" ]; identityPaths = ["/home/pim/.ssh/age_ed25519"];
installationType = "systemd"; installationType = "systemd";
file."common-pg-tfbackend" = { file."common-pg-tfbackend" = {
source = ../secrets/common-pg-tfbackend.age; source = ../secrets/common-pg-tfbackend.age;
symlinks = [ "${config.xdg.configHome}/home/common.pg.tfbackend" ]; symlinks = ["${config.xdg.configHome}/home/common.pg.tfbackend"];
}; };
file."ansible-vault-secret" = { file."ansible-vault-secret" = {
source = ../secrets/ansible-vault-secret.age; source = ../secrets/ansible-vault-secret.age;
symlinks = [ "${config.xdg.configHome}/home/ansible-vault-secret" ]; symlinks = ["${config.xdg.configHome}/home/ansible-vault-secret"];
}; };
file."powerdns-api-key" = { file."powerdns-api-key" = {
source = ../secrets/powerdns-api-key.json.age; source = ../secrets/powerdns-api-key.json.age;
symlinks = [ "${config.xdg.configHome}/home/powerdns-api-key.json" ]; symlinks = ["${config.xdg.configHome}/home/powerdns-api-key.json"];
}; };
}; };
@ -105,8 +108,8 @@
dconf.settings = with lib.hm.gvariant; { dconf.settings = with lib.hm.gvariant; {
"org/gnome/desktop/input-sources" = { "org/gnome/desktop/input-sources" = {
sources = [ (mkTuple [ "xkb" "us" ]) ]; sources = [(mkTuple ["xkb" "us"])];
xkb-options = [ "terminate:ctrl_alt_bksp" "caps:escape" ]; xkb-options = ["terminate:ctrl_alt_bksp" "caps:escape"];
}; };
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {

View file

@ -1,9 +1,7 @@
pkgs: lib: pkgs: lib: let
let
rycee-addons = pkgs.nur.repos.rycee.firefox-addons; rycee-addons = pkgs.nur.repos.rycee.firefox-addons;
custom-addons = import ./custom-addons.nix pkgs lib; custom-addons = import ./custom-addons.nix pkgs lib;
in in {
{
default = lib.concatLists [ default = lib.concatLists [
(with rycee-addons; [ (with rycee-addons; [
ublock-origin ublock-origin
@ -30,4 +28,4 @@ in
keepassxc-browser keepassxc-browser
custom-addons.simple-style-fox-2 custom-addons.simple-style-fox-2
]; ];
} }

View file

@ -1,13 +1,22 @@
pkgs: lib: pkgs: lib: let
let
# Stolen from: https://github.com/nix-community/nur-combined/blob/master/repos/rycee/pkgs/firefox-addons/default.nix # Stolen from: https://github.com/nix-community/nur-combined/blob/master/repos/rycee/pkgs/firefox-addons/default.nix
buildFirefoxXpiAddon = lib.makeOverridable ({ stdenv ? pkgs.stdenv, fetchurl ? pkgs.fetchurl, buildFirefoxXpiAddon = lib.makeOverridable ({
pname, version, addonId, url, sha256, meta, ... }: stdenv.mkDerivation { stdenv ? pkgs.stdenv,
fetchurl ? pkgs.fetchurl,
pname,
version,
addonId,
url,
sha256,
meta,
...
}:
stdenv.mkDerivation {
name = "${pname}-${version}"; name = "${pname}-${version}";
inherit meta; inherit meta;
src = fetchurl { inherit url sha256; }; src = fetchurl {inherit url sha256;};
preferLocalBuild = true; preferLocalBuild = true;
allowSubstitutes = true; allowSubstitutes = true;
@ -18,19 +27,17 @@ let
install -v -m644 "$src" "$dst/${addonId}.xpi" install -v -m644 "$src" "$dst/${addonId}.xpi"
''; '';
}); });
in in {
{
"http-version-indicator" = buildFirefoxXpiAddon { "http-version-indicator" = buildFirefoxXpiAddon {
pname = "http-version-indicator"; pname = "http-version-indicator";
version = "3.2.1"; version = "3.2.1";
addonId = "spdyindicator@chengsun.github.com"; addonId = "spdyindicator@chengsun.github.com";
url = "https://addons.mozilla.org/firefox/downloads/file/3767224/http2_indicator-3.2.1.xpi"; url = "https://addons.mozilla.org/firefox/downloads/file/3767224/http2_indicator-3.2.1.xpi";
sha256 = "be9518017334ce502a1da514542c2ca4f974217d0c8e6c7c31d518aba57c09a8"; sha256 = "be9518017334ce502a1da514542c2ca4f974217d0c8e6c7c31d518aba57c09a8";
meta = with lib; meta = with lib; {
{
homepage = "https://github.com/bsiegel/http-version-indicator"; homepage = "https://github.com/bsiegel/http-version-indicator";
description = "An indicator showing the HTTP version used to load the page in the address bar."; description = "An indicator showing the HTTP version used to load the page in the address bar.";
mozPermissions = [ "<all_urls>" "tabs" "webNavigation" "webRequest" ]; mozPermissions = ["<all_urls>" "tabs" "webNavigation" "webRequest"];
platforms = platforms.all; platforms = platforms.all;
}; };
}; };
@ -40,8 +47,7 @@ in
addonId = "{252ee273-8c8d-4609-b54d-62ae345be0a1}"; addonId = "{252ee273-8c8d-4609-b54d-62ae345be0a1}";
url = "https://addons.mozilla.org/firefox/downloads/file/3608595/indicatetls-0.3.0.xpi"; url = "https://addons.mozilla.org/firefox/downloads/file/3608595/indicatetls-0.3.0.xpi";
sha256 = "7a3b7edb1085f7b15d279c1013fac1d68f5247cfd6312d5275cb053e24a79465"; sha256 = "7a3b7edb1085f7b15d279c1013fac1d68f5247cfd6312d5275cb053e24a79465";
meta = with lib; meta = with lib; {
{
homepage = "https://github.com/jannispinter/indicatetls"; homepage = "https://github.com/jannispinter/indicatetls";
description = "Displays negotiated SSL/TLS protocol version and additional security information in the address bar"; description = "Displays negotiated SSL/TLS protocol version and additional security information in the address bar";
license = licenses.mpl20; license = licenses.mpl20;
@ -62,12 +68,11 @@ in
addonId = "{8c9cad02-c069-4e93-909d-d874da819c49}"; addonId = "{8c9cad02-c069-4e93-909d-d874da819c49}";
url = "https://addons.mozilla.org/firefox/downloads/file/3493442/sixindicator-1.3.0.xpi"; url = "https://addons.mozilla.org/firefox/downloads/file/3493442/sixindicator-1.3.0.xpi";
sha256 = "415ab83ed4ac94d1efe114752a09df29536d1bd54cc9b7e5ce5d9ee55a84226d"; sha256 = "415ab83ed4ac94d1efe114752a09df29536d1bd54cc9b7e5ce5d9ee55a84226d";
meta = with lib; meta = with lib; {
{
homepage = "https://github.com/HostedDinner/SixIndicator"; homepage = "https://github.com/HostedDinner/SixIndicator";
description = "Shows a simple icon, if IPv6 or IPv4 was used for the request of the site. When clicking on the icon, more information is shown, like the number of requests per domain and if these requests were made via IPv6 or IPv4."; description = "Shows a simple icon, if IPv6 or IPv4 was used for the request of the site. When clicking on the icon, more information is shown, like the number of requests per domain and if these requests were made via IPv6 or IPv4.";
license = licenses.mit; license = licenses.mit;
mozPermissions = [ "tabs" "webRequest" "<all_urls>" ]; mozPermissions = ["tabs" "webRequest" "<all_urls>"];
platforms = platforms.all; platforms = platforms.all;
}; };
}; };
@ -77,12 +82,11 @@ in
addonId = "{317526c6-ff2b-49c9-822e-d77b4a3da1d1}"; addonId = "{317526c6-ff2b-49c9-822e-d77b4a3da1d1}";
url = "https://addons.mozilla.org/firefox/downloads/file/3934220/simple_style_fox_2-10.0.xpi"; url = "https://addons.mozilla.org/firefox/downloads/file/3934220/simple_style_fox_2-10.0.xpi";
sha256 = "1aaac3ba08d21086d7087015f92a27661940df45a97bf5680588c883f799a97d"; sha256 = "1aaac3ba08d21086d7087015f92a27661940df45a97bf5680588c883f799a97d";
meta = with lib; meta = with lib; {
{
description = "Simple style fox 2"; description = "Simple style fox 2";
license = licenses.cc-by-30; license = licenses.cc-by-30;
mozPermissions = []; mozPermissions = [];
platforms = platforms.all; platforms = platforms.all;
}; };
}; };
} }

View file

@ -1,6 +1,8 @@
{ pkgs, lib, ... }: {
pkgs,
let lib,
...
}: let
firefoxAddons = import ./addons.nix pkgs lib; firefoxAddons = import ./addons.nix pkgs lib;
firefoxSettings = { firefoxSettings = {
"browser.aboutConfig.showWarning" = false; "browser.aboutConfig.showWarning" = false;
@ -13,8 +15,7 @@ let
"browser.gesture.swipe.left" = false; "browser.gesture.swipe.left" = false;
"browser.gesture.swipe.right" = false; "browser.gesture.swipe.right" = false;
}; };
in in {
{
config = { config = {
programs.firefox = { programs.firefox = {
enable = true; enable = true;
@ -34,7 +35,7 @@ in
}; };
xdg.desktopEntries.firefox-sue = { xdg.desktopEntries.firefox-sue = {
categories = [ "Network" "WebBrowser" ]; categories = ["Network" "WebBrowser"];
exec = "firefox -P sue --name firefox %U"; exec = "firefox -P sue --name firefox %U";
genericName = "Web Browser"; genericName = "Web Browser";
icon = "firefox"; icon = "firefox";
@ -53,7 +54,7 @@ in
}; };
xdg.desktopEntries.firefox = lib.mkForce { xdg.desktopEntries.firefox = lib.mkForce {
categories = [ "Network" "WebBrowser" ]; categories = ["Network" "WebBrowser"];
exec = "firefox --new-window --name firefox %U"; exec = "firefox --new-window --name firefox %U";
genericName = "Web Browser"; genericName = "Web Browser";
icon = "firefox"; icon = "firefox";

View file

@ -9,10 +9,12 @@
commit.verbose = true; commit.verbose = true;
pull.rebase = true; pull.rebase = true;
}; };
includes = [{ includes = [
{
path = "~/git/suecode/.gitconfig"; path = "~/git/suecode/.gitconfig";
condition = "gitdir:~/git/suecode/**"; condition = "gitdir:~/git/suecode/**";
}]; }
];
}; };
}; };
} }

View file

@ -1,11 +1,13 @@
{ pkgs, config, ...}:
{ {
pkgs,
config,
...
}: {
config = { config = {
home.packages = [ pkgs.keepassxc ]; home.packages = [pkgs.keepassxc];
homeage.file."keepassxc.ini" = { homeage.file."keepassxc.ini" = {
source = ../../secrets/keepassxc.ini.age; source = ../../secrets/keepassxc.ini.age;
symlinks = [ "${config.xdg.configHome}/keepassxc/keepassxc.ini" ]; symlinks = ["${config.xdg.configHome}/keepassxc/keepassxc.ini"];
}; };
}; };
} }

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
config = { config = {
programs.neovim = { programs.neovim = {
enable = true; enable = true;

View file

@ -1,36 +1,38 @@
{ config, lib, ...}:
{ {
config,
lib,
...
}: {
config = { config = {
programs.ssh = { programs.ssh = {
enable = true; enable = true;
extraConfig = "User root"; extraConfig = "User root";
matchBlocks = { matchBlocks = {
github = lib.hm.dag.entryBefore [ "*" ] { github = lib.hm.dag.entryBefore ["*"] {
hostname = "github.com"; hostname = "github.com";
user = "pizzapim"; user = "pizzapim";
identitiesOnly = true; identitiesOnly = true;
}; };
lewis = lib.hm.dag.entryBefore [ "*" ] { lewis = lib.hm.dag.entryBefore ["*"] {
hostname = "lewis.hyp"; hostname = "lewis.hyp";
}; };
atlas = lib.hm.dag.entryBefore [ "*" ] { atlas = lib.hm.dag.entryBefore ["*"] {
hostname = "atlas.hyp"; hostname = "atlas.hyp";
}; };
jefke = lib.hm.dag.entryBefore [ "*" ] { jefke = lib.hm.dag.entryBefore ["*"] {
hostname = "jefke.hyp"; hostname = "jefke.hyp";
}; };
hermes = lib.hm.dag.entryBefore [ "*" ] { hermes = lib.hm.dag.entryBefore ["*"] {
hostname = "hermes.dmz"; hostname = "hermes.dmz";
}; };
maestro = lib.hm.dag.entryBefore [ "*" ] { maestro = lib.hm.dag.entryBefore ["*"] {
hostname = "maestro.dmz"; hostname = "maestro.dmz";
}; };
bancomart = lib.hm.dag.entryBefore [ "*" ] { bancomart = lib.hm.dag.entryBefore ["*"] {
hostname = "bancomart.dmz"; hostname = "bancomart.dmz";
}; };
handjecontantje = lib.hm.dag.entryBefore [ "*" ] { handjecontantje = lib.hm.dag.entryBefore ["*"] {
hostname = "handjecontantje.dmz"; hostname = "handjecontantje.dmz";
}; };
}; };
@ -38,12 +40,12 @@
homeage.file."sue_ed25519" = { homeage.file."sue_ed25519" = {
source = ../../secrets/sue_ed25519.age; source = ../../secrets/sue_ed25519.age;
symlinks = [ "${config.home.homeDirectory}/.ssh/sue_ed25519" ]; symlinks = ["${config.home.homeDirectory}/.ssh/sue_ed25519"];
}; };
homeage.file."sue_azure_rsa" = { homeage.file."sue_azure_rsa" = {
source = ../../secrets/sue_azure_rsa.age; source = ../../secrets/sue_azure_rsa.age;
symlinks = [ "${config.home.homeDirectory}/.ssh/sue_azure_rsa" ]; symlinks = ["${config.home.homeDirectory}/.ssh/sue_azure_rsa"];
}; };
}; };
} }

View file

@ -1,6 +1,4 @@
{ config, ... }: {config, ...}: {
{
config = { config = {
services.syncthing.enable = true; services.syncthing.enable = true;
xdg.configFile."syncthing/config.xml".source = ./syncthing.xml; xdg.configFile."syncthing/config.xml".source = ./syncthing.xml;
@ -8,12 +6,12 @@
homeage.file."syncthing-key.pem" = { homeage.file."syncthing-key.pem" = {
source = ../../secrets/syncthing-key.pem.age; source = ../../secrets/syncthing-key.pem.age;
symlinks = [ "${config.xdg.configHome}/syncthing/key.pem" ]; symlinks = ["${config.xdg.configHome}/syncthing/key.pem"];
}; };
homeage.file."syncthing-cert.pem" = { homeage.file."syncthing-cert.pem" = {
source = ../../secrets/syncthing-cert.pem.age; source = ../../secrets/syncthing-cert.pem.age;
symlinks = [ "${config.xdg.configHome}/syncthing/cert.pem" ]; symlinks = ["${config.xdg.configHome}/syncthing/cert.pem"];
}; };
}; };
} }

View file

@ -1,4 +1,9 @@
{ pkgs, config, lib, ... }: { {
pkgs,
config,
lib,
...
}: {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -19,12 +24,12 @@
enable = true; enable = true;
}; };
desktopManager.gnome.enable = true; desktopManager.gnome.enable = true;
excludePackages = with pkgs; [ xterm ]; excludePackages = with pkgs; [xterm];
}; };
printing = { printing = {
enable = true; enable = true;
drivers = [ pkgs.hplip pkgs.gutenprint ]; drivers = [pkgs.hplip pkgs.gutenprint];
}; };
fprintd = { fprintd = {
@ -40,7 +45,7 @@
users = { users = {
users.pim = { users.pim = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" "docker" "input" ]; extraGroups = ["wheel" "docker" "input"];
}; };
}; };
@ -104,7 +109,7 @@
}; };
age = { age = {
identityPaths = [ "/home/pim/.ssh/age_ed25519" ]; identityPaths = ["/home/pim/.ssh/age_ed25519"];
secrets = { secrets = {
wg-quick-home-privkey.file = ../secrets/wg-quick-home-privkey.age; wg-quick-home-privkey.file = ../secrets/wg-quick-home-privkey.age;
@ -121,8 +126,9 @@
"10.225.191.4/24" "10.225.191.4/24"
"fd11:5ee:bad:c0de::4/64" "fd11:5ee:bad:c0de::4/64"
]; ];
dns = [ "192.168.30.8" ]; dns = ["192.168.30.8"];
peers = [{ peers = [
{
presharedKeyFile = config.age.secrets.wg-quick-home-preshared-key.path; presharedKeyFile = config.age.secrets.wg-quick-home-preshared-key.path;
endpoint = "84.245.14.149:51820"; endpoint = "84.245.14.149:51820";
publicKey = "fa3mQ7ximJbH7cu2ZbWidto5xBGxEEfWvCCiUDk00Hg="; publicKey = "fa3mQ7ximJbH7cu2ZbWidto5xBGxEEfWvCCiUDk00Hg=";
@ -130,7 +136,8 @@
"0.0.0.0/0" "0.0.0.0/0"
"::0/0" "::0/0"
]; ];
}]; }
];
}; };
}; };

View file

@ -1,32 +1,36 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/33e4587b-fba3-4a9d-82d2-a9e49a8e75fa"; device = "/dev/disk/by-uuid/33e4587b-fba3-4a9d-82d2-a9e49a8e75fa";
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-cd1139a7-0c1b-4459-b586-29b577825ee9".device = "/dev/disk/by-uuid/cd1139a7-0c1b-4459-b586-29b577825ee9"; boot.initrd.luks.devices."luks-cd1139a7-0c1b-4459-b586-29b577825ee9".device = "/dev/disk/by-uuid/cd1139a7-0c1b-4459-b586-29b577825ee9";
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/87DA-B083"; device = "/dev/disk/by-uuid/87DA-B083";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/908399cd-2f4f-4555-8805-80c9faf190aa"; } {device = "/dev/disk/by-uuid/908399cd-2f4f-4555-8805-80c9faf190aa";}
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -1,10 +1,9 @@
let let
pkgs = import <nixpkgs> {}; pkgs = import <nixpkgs> {};
publicKeysURL = "https://git.kun.is/pim.keys"; # https://github.com/pizzapim.keys publicKeysURL = "https://git.kun.is/pim.keys"; # https://github.com/pizzapim.keys
publicKeysFile = builtins.fetchurl { url = publicKeysURL; }; publicKeysFile = builtins.fetchurl {url = publicKeysURL;};
publicKeys = pkgs.lib.strings.splitString "\n" (pkgs.lib.strings.fileContents publicKeysFile); publicKeys = pkgs.lib.strings.splitString "\n" (pkgs.lib.strings.fileContents publicKeysFile);
in in {
{
"wg-quick-home-privkey.age".publicKeys = publicKeys; "wg-quick-home-privkey.age".publicKeys = publicKeys;
"wg-quick-home-preshared-key.age".publicKeys = publicKeys; "wg-quick-home-preshared-key.age".publicKeys = publicKeys;
"sue_ed25519.age".publicKeys = publicKeys; "sue_ed25519.age".publicKeys = publicKeys;