diff options
Diffstat (limited to 'modules/common')
-rw-r--r-- | modules/common/default.nix | 113 | ||||
-rw-r--r-- | modules/common/nixos_shell_configuration.nix | 66 | ||||
-rw-r--r-- | modules/common/projects.json | 69 | ||||
-rw-r--r-- | modules/common/secrets/backup/privatePassword.age | 14 | ||||
-rw-r--r-- | modules/common/secrets/backup/privateSshKey.age | 22 |
5 files changed, 161 insertions, 123 deletions
diff --git a/modules/common/default.nix b/modules/common/default.nix index 893ffab5..a272bd52 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -13,9 +13,21 @@ config, pkgs, lib, + # Needed for nixos-shell + libraries, + modules, + openPRsNixpkgs, + packageSets, + system, + self, + externalDependencies, + externalBinaries, ... }: { + # TODO(@bpeetz): Move this file to default options in their respective modules. <2025-05-31> + soispha = { + age.enable = true; boot.enable = true; cleanup.enable = true; documentation.enable = true; @@ -25,17 +37,60 @@ enableEmoji = true; }; + hardware = { + enable = lib.mkDefault true; + }; home-manager.enable = true; impermanence = { enable = true; directories = [ "/etc/nixos" - "/var/log" "/var/lib/systemd" - "/var/lib/nixos" ]; }; + + nixos-shell = { + enable = lib.mkDefault true; + configuration = { + specialArgs = { + inherit + libraries + modules + ; + }; + value = lib.mkMerge [ + { + _module.args = { + inherit + # extra package sources + openPRsNixpkgs + packageSets + # extra information + system + # nix registry + self + externalDependencies + # bins + # TODO: Integrate these into `pkgs/by-name` <2024-05-22> + externalBinaries + ; + }; + } + + { + require = [ + ./nixos_shell_configuration.nix + + ../../modules + ../../modules/common + ]; + } + ]; + }; + mounts = {}; + }; + polkit.enable = true; power.enable = true; xdg.enable = true; @@ -46,12 +101,16 @@ user = "soispha"; }; backup = { - enable = true; - user = "u459143-sub1"; - privateSshKey = ./secrets/backup/privateSshKey.age; - privatePassword = ./secrets/backup/privatePassword.age; + storagebox = { + enable = lib.mkDefault true; + user = "u459143-sub1"; + }; + local = { + enable = lib.mkDefault true; + }; }; fwupd.enable = true; + mako.enable = true; mpd = { enable = true; directories = let @@ -75,7 +134,7 @@ water-reminder.enable = true; systemDiff.enable = true; unison = { - enable = true; + enable = lib.mkDefault true; foreign.userName = "soispha"; dataDir = "${config.home-manager.users.soispha.xdg.dataHome}/unison"; @@ -88,10 +147,13 @@ config.home-manager.users.soispha.home.file); in [ + # TODO(@bpeetz): Move these to their respective modules <2025-05-09> # Already synchronized by TaskChampion sync server "~/.local/share/task" # Already synchronized by atuin sync server "~/.local/share/atuin" + # Already synchronized by mbsync + "~/.local/share/maildir" # Should not be synchronized "~/.local/share/unison" @@ -108,8 +170,6 @@ "~/.local/share" "~/.local/.Trash-1000" - "~/.mozilla/firefox" - "~/media" "~/school" "~/repos" @@ -118,11 +178,21 @@ }; programs = { + i3bar-river.enable = true; + i3status-rust.enable = true; + + qutebrowser = { + enable = true; + }; + nvim = { enable = true; shell = pkgs.zsh; }; - atuin.enable = true; + atuin = { + enable = true; + enableAge = lib.mkDefault true; + }; cargo.enable = true; direnv.enable = true; git.enable = true; @@ -131,7 +201,7 @@ lf.enable = true; gpg.enable = true; river = { - enable = true; + enable = lib.mkDefault true; init = { rules = [ { @@ -165,12 +235,12 @@ title = "*"; action = "ssd"; } - # This remove the focus border around Firefox (which is useful because the Firefox is nearly always in its own tag.) - { - app-id = "firefox"; - title = "*"; - action = "csd"; - } + # # This remove the focus border around Firefox (which is useful because the Firefox is nearly always in its own tag.) + # { + # app-id = "firefox"; + # title = "*"; + # action = "csd"; + # } ]; generalSettings = { # background @@ -193,8 +263,8 @@ pointer-12951-6505-ZSA_Technology_Labs_Moonlander_Mark_I = [["pointer-accel" "0"] ["accel-profile" "none"]]; }; backgroundStart = [ + # TODO(@bpeetz): Move these to systemd units/their own modules <2025-05-18> pkgs.gammastep - pkgs.yambar pkgs.mako ["${lib.getExe pkgs.swaybg}" "--image" "${./abstract-nord.png}"] @@ -203,20 +273,23 @@ ]; }; }; - firefox.enable = true; mpv.enable = true; steam.enable = true; + ssh.enable = true; swaylock.enable = true; timewarrior.enable = true; taskwarrior = { enable = true; + enableAge = lib.mkDefault true; + hooks = import ./hooks {inherit pkgs lib config;}; }; tskm = { enable = true; projects = builtins.fromJSON (builtins.readFile ./projects.json); }; - yambar.enable = true; + nix-index.enable = true; + yambar.enable = false; yt.enable = true; zathura.enable = true; zsh.enable = true; diff --git a/modules/common/nixos_shell_configuration.nix b/modules/common/nixos_shell_configuration.nix new file mode 100644 index 00000000..1bec0145 --- /dev/null +++ b/modules/common/nixos_shell_configuration.nix @@ -0,0 +1,66 @@ +# nixos-config - My current NixOS configuration +# +# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de> +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This file is part of my nixos-config. +# +# You should have received a copy of the License along with this program. +# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. +{...}: { + soispha = { + networking = { + enable = true; + hostName = "lahmu"; + mode = "systemd-networkd"; + }; + + nixos-shell.enable = false; + + nixpkgs = { + enable = true; + systemName = "x86_64-linux"; + }; + + services = { + unison.enable = false; + backup = { + storagebox.enable = false; + local.enable = false; + }; + }; + + programs = { + river.enable = false; + + # We don't have access to the age secrets. + atuin.enableAge = false; + taskwarrior.enableAge = false; + }; + + locale = { + enable = true; + keyMap = "us"; + }; + + users = { + enable = true; + enableDeprecatedPlugdev = true; + + # Make logging in impossible. + # (This also removes root a obvious access-point from the virtual machine) + hashedPassword = ""; + }; + }; + + soispha = { + hardware = { + enable = false; + }; + + disks.enable = false; + }; + + # We run without state + # system.stateVersion = null; +} diff --git a/modules/common/projects.json b/modules/common/projects.json index 48a10f03..df3b0c60 100644 --- a/modules/common/projects.json +++ b/modules/common/projects.json @@ -1,7 +1,4 @@ { - "3d-printer": { - "prefix": "hardware" - }, "aoc": { "prefix": "programming/advent_of_code" }, @@ -15,19 +12,6 @@ "pc": {} } }, - "camera": { - "prefix": "programming/zig" - }, - "hardware": { - "prefix": "research" - }, - "input": { - "prefix": "research", - "subprojects": { - "dotfiles": {}, - "read-things": {} - } - }, "latex": { "prefix": "programming/latex" }, @@ -36,45 +20,10 @@ "bank": {}, "google": {}, "health": {}, + "job": {}, "sweden": {} } }, - "possible-projects": { - "prefix": "research" - }, - "presentation": { - "prefix": "research" - }, - "school": { - "prefix": "research", - "subprojects": { - "biologie": {}, - "chemie": { - "subprojects": { - "facharbeit": {} - } - }, - "deutsch": {}, - "english": {}, - "extern": { - "subprojects": { - "bwinf": {}, - "dsa": {} - } - }, - "geographie": {}, - "geschichte": {}, - "infomatik": {}, - "klausuren": {}, - "latein": {}, - "mathematik": {}, - "musik": {}, - "philosophie": {}, - "physik": {}, - "sozialkunde": {}, - "sport": {} - } - }, "server": { "prefix": "config", "subprojects": { @@ -86,15 +35,8 @@ "sudo-less": {} } }, - "serverphone": { - "prefix": "programming/rust" - }, "smartphone": { - "prefix": "hardware", - "subprojects": { - "airdrop": {}, - "airplay": {} - } + "prefix": "hardware" }, "system": { "prefix": "config", @@ -121,12 +63,5 @@ "netflix": {}, "youtube": {} } - }, - "trinitrix": { - "prefix": "programming/rust", - "subprojects": { - "documentation": {}, - "testing": {} - } } } diff --git a/modules/common/secrets/backup/privatePassword.age b/modules/common/secrets/backup/privatePassword.age deleted file mode 100644 index a2aa984a..00000000 --- a/modules/common/secrets/backup/privatePassword.age +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzbnJ5Z3NXRFRtdEdCNk1z -NG9Cb2FUTEZ2U2hTdUptWGpneHd2RGxGQlY0ClhqcHlMSUZlLzBPZko4a2hKdnE1 -Q1hnc3ErWlJiSk1HVXFLcSswQlV0WTAKLT4gc3NoLWVkMjU1MTkgelpFb25nIG5I -cFpMY21ZdU9TUHY5VksraG1xeFByQlM1WE1INEk0SWFJQzIvSXhZbXMKSWxiNlIr -NjZ6bEgySUJGdnpoZTY2MmxxajJMaUVTM3RkTmhpdkxaRnNCQQotPiBzc2gtZWQy -NTUxOSA3SGZGVXcgRGtLMHFORm9mUDUwZnBXM0djcFlxTExJbWVDeDJmbVVSRi9l -QTFmekpROApZY3Z0Zlc1SUdCcllKQ01ZNmdFQkI3UnViVGxzNTJNUkhqc2hOejY3 -MndrCi0+IG1Hbi1ncmVhc2UgUDJJdgpGUmVHa1NPWGtzUmZmMXM3eWkxVnJkek1h -MUxZeS9qMlArendXZ1ltdFgvMTBabTlPM2hzSjhuVXBQNktHKzc1ClF6bjZob09B -Ci0tLSB3dEZpbnpVR0pPdGpFVmNyM0JzUGl6eGcreXpkTG9xQUc5S09ndUthaEpR -CuHgXCIq/AUCuIQWepBRapAab6zczOwxEBpDv5R2kw2mw34UVRLuFs7hB1cHE79y -7Fc= ------END AGE ENCRYPTED FILE----- diff --git a/modules/common/secrets/backup/privateSshKey.age b/modules/common/secrets/backup/privateSshKey.age deleted file mode 100644 index a7f30c7c..00000000 --- a/modules/common/secrets/backup/privateSshKey.age +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJOTFaQVpnQ2VJN1pJbmdu -STF2UTF1Y3lyU2p3OUJlcWRFWlg3Mm9vSEFFCjg4RklaZ0hqdWdZSlJ0dGx0ckJN -eHE4R1QyTEJEVkZudnVQV2VpblBYTW8KLT4gc3NoLWVkMjU1MTkgelpFb25nIDR0 -Z2RwTXJGV1VYT2Y1OUcxbXpnOGNEbG9BWmFxeWUzZ1huNW1YQk5BM3cKK1hLNnYx -VnNvRDZWM3Y4VUpCQTRtbHJOcDJLdTBOUXJ1ak52Mkp3TE9OcwotPiBzc2gtZWQy -NTUxOSA3SGZGVXcgSHFSOXM1Vm1lY0ErRkZobndEU0xvQjVXbnhDbUlGNmE2dStY -SEFqSk9TMAo2VU5UbW9rc29kendvcHNuU3hFQ2lBQWNjRUxUSE10RmtjbkdwWGlv -cTRVCi0+IDwtZ3JlYXNlIHNPT3N1IHNkZzcoQzUgLUM3Ml1Tcgorb3FQcWlDSkJQ -L1g4WisydkYxdnJMeDNISVVDTGlZdmUyRkV0TkFUdW4ycXZBSlF3UWM2R3FTYjRs -ckEyaTg2ClVrbwotLS0gdHF5Q3BqV3h2TzEySCs4OFNIYmx1U0hsTWo1RDlTV3VC -T1RmelZaWXh4YwoeRkYbirDGX9aZj6OVxZ8sVsm2Sz23ikcBhAdTIXKErM7eQcdp -Y2nA5kUebPVznbSq/XSQNbqvCfSv9wVVTZWww7AqkrltjFS8yxQVMKB37IfnJsZI -92OCjJKArxAbvS7ERKY51Cf9oY/VqGk5WqxExH5ZvdbL144UI8JzrxhDopVXBWNd -fCrHirRAdlu3wgVILXV3vk1kmE69sspuV4cer5f/kOBKT1w09s2NFFHH4TO3cLTJ -Obgi/HWYHBjqGSgwd4bDtNOW2UDE1LN3YeUhloutWhuX8yt+NFzZJtl+CBrRqLKA -0CK+ZPKPWWKYPCNlzKT4vDF9BZeyCfoEj9dTXvxrNPEB6YYi16aQ8DhI8wxADl41 -ShrULlEmB8rfz7V+8TFmERKISBRSSH0p+XJi8e2DWh2dSco16rizmbFFNDdcYiGT -WWbXYCFNzj+kNFI/vEtt9dEWmfXlgg01khnyoOuRLedtoCDSuF+8z7YYy6oYt/2h -gmf4NHOUgyxK56c17JMQ3xT97d2odgqmwB+YZQ13IJCjt3M3pmSssD4sTgmA5alH -vtUlci6dZdO801h5vOesbAJplXCEyw== ------END AGE ENCRYPTED FILE----- |