From ccbbb7f26eb9f1a64b491d5ccb4cf2c6224e01b0 Mon Sep 17 00:00:00 2001 From: Vivian Date: Thu, 17 Oct 2024 17:30:48 +0200 Subject: [PATCH] updates --- common/default.nix | 2 + common/desktop/default.nix | 4 + common/desktop/home.nix | 26 +++ common/hm-modules/nvim/default.nix | 3 +- common/hm-modules/vscode.nix | 85 +++++--- common/modules/gnome/default.nix | 3 + common/modules/gnome/hm.nix | 190 +++++++++------- flake.lock | 204 +++++++++--------- flake.nix | 6 +- hosts/olympus/bastion/containers/common.nix | 1 + hosts/olympus/bastion/containers/default.nix | 72 +++++-- .../olympus/bastion/containers/syncthing.nix | 8 + hosts/olympus/bastion/default.nix | 7 + hosts/thalassa/aoife/default.nix | 18 +- hosts/thalassa/aoife/domain.crt | 21 -- hosts/thalassa/aoife/hardware.nix | 1 + hosts/thalassa/aoife/home/default.nix | 4 +- hosts/thalassa/aoife/uni.nix | 34 +++ 18 files changed, 441 insertions(+), 248 deletions(-) create mode 100644 hosts/olympus/bastion/containers/syncthing.nix delete mode 100644 hosts/thalassa/aoife/domain.crt diff --git a/common/default.nix b/common/default.nix index 47ee908a..88ee8ea6 100644 --- a/common/default.nix +++ b/common/default.nix @@ -14,7 +14,9 @@ sharedModules = [ ./hm-modules inputs.nixvim.homeManagerModules.nixvim + inputs.autostart.homeManagerModules.xdg-autostart inputs.catppuccin.homeManagerModules.catppuccin + inputs.autostart.homeManagerModules.xdg-autostart ]; }; diff --git a/common/desktop/default.nix b/common/desktop/default.nix index 62e84a2a..4cd0a2fa 100644 --- a/common/desktop/default.nix +++ b/common/desktop/default.nix @@ -38,6 +38,8 @@ # Enable my config for the gnome desktop environment v.gnome.enable = lib.mkDefault true; + flatpak.enable = true; + # Enable CUPS to print documents. printing.enable = true; pipewire = { @@ -120,6 +122,8 @@ adb.enable = true; }; + + networking = { # Networking networkmanager.enable = true; diff --git a/common/desktop/home.nix b/common/desktop/home.nix index 398f6640..ae91d789 100644 --- a/common/desktop/home.nix +++ b/common/desktop/home.nix @@ -53,7 +53,22 @@ in unzip yt-dlp # z3 + + obsidian + (lib.hiPrio (pkgs.writeShellScriptBin "obsidian" '' + unset WAYLAND_DISPLAY + ${pkgs.obsidian}/bin/obsidian + '')) ]; + # + # xdg.desktopEntries = { + # obsidian = { + # name = "Obsidian"; + # genericName = "Markdown Editor"; + # exec = "obsidian"; + # terminal = false; + # }; + # }; # Enable my own hm modules themes.v.catppuccin.enable = true; @@ -97,6 +112,17 @@ in shellIntegration.enableZshIntegration = true; }; }; + + + xdg.autoStart = { + packages = with pkgs; [ + obsidian + element-desktop + firefox + discord + ]; + }; + # Syncthing services.syncthing.enable = true; xdg.userDirs = diff --git a/common/hm-modules/nvim/default.nix b/common/hm-modules/nvim/default.nix index 599fa413..49950a22 100644 --- a/common/hm-modules/nvim/default.nix +++ b/common/hm-modules/nvim/default.nix @@ -203,6 +203,7 @@ with lib; image = { enable = true; }; + web-devicons.enable = true; bufferline.enable = true; nix.enable = true; luasnip.enable = true; @@ -217,7 +218,7 @@ with lib; new_notes_location = "notes_subdir"; notes_subdir = "Unsorted"; daily_notes = { - folder = "Periodics/Daily"; + folder = "Diary/Daily"; }; workspaces = [ { diff --git a/common/hm-modules/vscode.nix b/common/hm-modules/vscode.nix index 8454b5f9..08060471 100644 --- a/common/hm-modules/vscode.nix +++ b/common/hm-modules/vscode.nix @@ -1,8 +1,17 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: with lib; -let cfg = config.programs.v.vscode; -in { - options.programs.v.vscode = { enable = mkEnableOption "vscode"; }; +let + cfg = config.programs.v.vscode; +in +{ + options.programs.v.vscode = { + enable = mkEnableOption "vscode"; + }; config = mkIf cfg.enable { programs.vscode = { enable = true; @@ -12,23 +21,42 @@ in { "latex-workshop.linting.chktex.enabled" = true; "latex-workshop.latex.clean.subfolder.enabled" = true; "latex-workshop.latex.outDir" = "%TMPDIR%/%RELATIVE_DOC%"; - "editor.fontFamily" = - "'DejaVuSansMono Nerd Font', 'monospace', monospace"; + "editor.fontFamily" = "'DejaVuSansMono Nerd Font', 'monospace', monospace"; "keyboard.dispatch" = "keyCode"; "rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer"; - "rust-analyzer.check.extraArgs" = ["--profile" "rust-analyzer"]; + "rust-analyzer.check.extraArgs" = [ + "--profile" + "rust-analyzer" + ]; "rust-analyzer.check.command" = "clippy"; "terminal.integrated.defaultProfile.linux" = "zsh"; "nix.enableLanguageServer" = true; # Enable LSP. "nix.serverPath" = "${pkgs.nil}/bin/nil"; - "[nix]" = { "editor.defaultFormatter" = "brettm12345.nixfmt-vscode"; }; - "[python]" = { "editor.formatOnType" = true; }; + "[nix]" = { + "editor.defaultFormatter" = "brettm12345.nixfmt-vscode"; + }; + "[python]" = { + "editor.formatOnType" = true; + }; "debug.allowBreakpointsEverywhere" = true; - "C_Cpp.clang_format_fallbackStyle" = - "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0}"; - "crates.compatibleDecorator" = "✓"; - "crates.errorDecorator" = "✗"; - "crates.incompatibleDecorator" = "🛇"; + "C_Cpp.clang_format_fallbackStyle" = "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0}"; + # "crates.compatibleDecorator" = "✓"; + # "crates.errorDecorator" = "✗"; + # "crates.incompatibleDecorator" = "🛇"; + + # Verilog + "verilog.formatting.verilogHDL.formatter" = "verible-verilog-format"; + "verilog.languageServer.svls.enabled" = true; + "verilog.languageServer.svls.path" = "${pkgs.svls}/bin/svls"; + "verilog.languageServer.veribleVerilogLs.enabled" = true; + "verilog.languageServer.veribleVerilogLs.path" = "${pkgs.verible}/bin/verible-verilog-ls"; + "verilog.formatting.veribleVerilogFormatter.path" = "${pkgs.verible}/bin/verible-verilog-format"; + "verilog.linting.linter" = "verilator"; + "verilog.linting.path" = "${pkgs.verilator}/bin/verilator"; + "[verilog]" = { + "editor.defaultFormatter" = "mshr-h.veriloghdl"; + }; + # Don't index unecessary things "files.exclude" = { "**/.vscode" = true; @@ -47,33 +75,42 @@ in { "/nix" = true; }; }; - extensions = with pkgs.vscode-extensions; - with pkgs.v.vscode-extensions; [ + extensions = + with pkgs.vscode-extensions; + with pkgs.v.vscode-extensions; + [ brettm12345.nixfmt-vscode + catppuccin.catppuccin-vsc codezombiech.gitignore + codezombiech.gitignore + davidlday.languagetool-linter editorconfig.editorconfig foxundermoon.shell-format + github.copilot + github.copilot-chat + github.vscode-github-actions james-yu.latex-workshop jnoortheen.nix-ide - rust-lang.rust-analyzer mkhl.direnv ms-vscode-remote.remote-ssh ms-vscode.cpptools + ms-vsliveshare.vsliveshare + mshr-h.veriloghdl platformio.platformio-ide - redhat.vscode-yaml redhat.vscode-xml + redhat.vscode-yaml + rust-lang.rust-analyzer + skellock.just + sumneko.lua tamasfe.even-better-toml + vadimcn.vscode-lldb + vadimcn.vscode-lldb valentjn.vscode-ltex vscodevim.vim - vadimcn.vscode-lldb xaver.clang-format - sumneko.lua - davidlday.languagetool-linter - serayuzgur.crates - skellock.just + continue.continue ]; }; }; } - diff --git a/common/modules/gnome/default.nix b/common/modules/gnome/default.nix index 0c3fbcb9..9eb852e1 100644 --- a/common/modules/gnome/default.nix +++ b/common/modules/gnome/default.nix @@ -55,6 +55,7 @@ in # Add Home-manager dconf stuff home-manager.sharedModules = mkIf cfg.hm [ ./hm.nix ]; + environment.gnome.excludePackages = (with pkgs; [ gnome-photos @@ -82,6 +83,8 @@ in # Services required for gnome programs.dconf.enable = true; + + # Extra gnome packages environment.systemPackages = with pkgs; [ gnome-tweaks diff --git a/common/modules/gnome/hm.nix b/common/modules/gnome/hm.nix index 381e49f2..524b7706 100644 --- a/common/modules/gnome/hm.nix +++ b/common/modules/gnome/hm.nix @@ -4,18 +4,20 @@ with lib.hm.gvariant; let inherit (builtins) attrNames map; inherit (lib.attrsets) mapAttrs' nameValuePair; - generate_custom_keybindings = binds: + generate_custom_keybindings = + binds: { "org/gnome/settings-daemon/plugins/media-keys" = { - custom-keybindings = map (name: - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/${name}/") - (attrNames binds); + custom-keybindings = map ( + name: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/${name}/" + ) (attrNames binds); }; - } // mapAttrs' (name: - nameValuePair - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/${name}") - binds; -in { + } + // mapAttrs' ( + name: nameValuePair "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/${name}" + ) binds; +in +{ xdg.mimeApps.enable = true; xdg.mimeApps.defaultApplications = { "text/plain" = "org.gnome.TextEditor.desktop"; @@ -59,74 +61,106 @@ in { "image/x-icns" = "org.gnome.Loupe.desktop"; }; - dconf.settings = { - "org/gnome/desktop/input-sources" = { - sources = [ (mkTuple [ "xkb" "us+altgr-intl" ]) ]; - xkb-options = [ "terminate:ctrl_alt_bksp" ]; + dconf.settings = + { + + "org/gnome/shell" = { + disable-user-extensions = false; + enabled-extensions = with pkgs.gnomeExtensions; [ + auto-move-windows.extensionUuid + ]; + }; + + "org/gnome/shell/extensions/auto-move-windows" = { + application-list = [ + "element-desktop.desktop:1" + "discord.desktop:1" + "firefox.desktop:2" + "obsidian.desktop:3" + ]; + }; + + "org/gnome/desktop/input-sources" = { + sources = [ + (mkTuple [ + "xkb" + "us+altgr-intl" + ]) + ]; + xkb-options = [ "terminate:ctrl_alt_bksp" ]; + }; + + "org/gnome/desktop/peripherals/touchpad" = { + tap-to-click = true; + two-finger-scrolling-enabled = true; + }; + + "org/gnome/mutter" = { + attach-modal-dialogs = true; + dynamic-workspaces = false; + edge-tiling = true; + focus-change-on-pointer-rest = true; + workspaces-only-on-primary = true; + }; + + "org/gnome/mutter/keybindings" = { + toggle-tiled-left = [ "bracketleft" ]; + toggle-tiled-right = [ "bracketright" ]; + }; + + "org/gnome/shell/keybindings" = { + toggle-overview = [ "d" ]; + }; + + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + + "org/gnome/desktop/wm/preferences" = { + auto-raise = false; + num-workspaces = 6; + focus-mode = "sloppy"; + }; + + "org/gnome/desktop/wm/keybindings" = { + raise-or-lower = [ "s" ]; + switch-applications = [ "Tab" ]; + switch-applications-backward = [ "Tab" ]; + move-to-workspace-1 = [ "1" ]; + move-to-workspace-2 = [ "2" ]; + move-to-workspace-3 = [ "3" ]; + move-to-workspace-4 = [ "4" ]; + move-to-workspace-5 = [ "5" ]; + move-to-workspace-6 = [ "6" ]; + switch-to-workspace-1 = [ "1" ]; + switch-to-workspace-2 = [ "2" ]; + switch-to-workspace-3 = [ "3" ]; + switch-to-workspace-4 = [ "4" ]; + switch-to-workspace-5 = [ "5" ]; + switch-to-workspace-6 = [ "6" ]; + toggle-fullscreen = [ "M" ]; + toggle-maximized = [ "m" ]; + close = [ "Q" ]; + }; + + "org/gnome/tweaks" = { + show-extensions-notice = false; + }; + + "org/gnome/boxes" = { + first-run = false; + }; + } + // generate_custom_keybindings { + "terminal" = { + binding = "Return"; + command = "${pkgs.kitty}/bin/kitty"; + name = "Open Terminal"; + }; + "firefox" = { + binding = "f"; + command = "firefox"; + name = "Open Firefox"; + }; }; - - "org/gnome/desktop/peripherals/touchpad" = { - tap-to-click = true; - two-finger-scrolling-enabled = true; - }; - - "org/gnome/mutter" = { - attach-modal-dialogs = true; - dynamic-workspaces = false; - edge-tiling = true; - focus-change-on-pointer-rest = true; - workspaces-only-on-primary = true; - }; - - "org/gnome/mutter/keybindings" = { - toggle-tiled-left = [ "bracketleft" ]; - toggle-tiled-right = [ "bracketright" ]; - }; - - "org/gnome/shell/keybindings" = { toggle-overview = [ "d" ]; }; - - "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; - - "org/gnome/desktop/wm/preferences" = { - auto-raise = false; - num-workspaces = 6; - focus-mode = "sloppy"; - }; - - "org/gnome/desktop/wm/keybindings" = { - raise-or-lower = [ "s" ]; - switch-applications = [ "Tab" ]; - switch-applications-backward = [ "Tab" ]; - move-to-workspace-1 = [ "1" ]; - move-to-workspace-2 = [ "2" ]; - move-to-workspace-3 = [ "3" ]; - move-to-workspace-4 = [ "4" ]; - move-to-workspace-5 = [ "5" ]; - move-to-workspace-6 = [ "6" ]; - switch-to-workspace-1 = [ "1" ]; - switch-to-workspace-2 = [ "2" ]; - switch-to-workspace-3 = [ "3" ]; - switch-to-workspace-4 = [ "4" ]; - switch-to-workspace-5 = [ "5" ]; - switch-to-workspace-6 = [ "6" ]; - toggle-fullscreen = [ "M" ]; - toggle-maximized = [ "m" ]; - close = [ "Q" ]; - }; - - "org/gnome/tweaks" = { show-extensions-notice = false; }; - - "org/gnome/boxes" = { first-run = false; }; - } // generate_custom_keybindings { - "terminal" = { - binding = "Return"; - command = "${pkgs.kitty}/bin/kitty"; - name = "Open Terminal"; - }; - "firefox" = { - binding = "f"; - command = "firefox"; - name = "Open Firefox"; - }; - }; } diff --git a/flake.lock b/flake.lock index f0f1831c..ba7597ed 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1725815284, - "narHash": "sha256-nVWCR86XDjx9Tq6RHsNvhD03nNzIeKKc7UTPnXLyrDY=", + "lastModified": 1728577371, + "narHash": "sha256-f3bKclEV5t1eP1OH7kTGv/tLzlToSRIe0ktkdl1jihw=", "owner": "zhaofengli", "repo": "attic", - "rev": "aec90814a4ecbc40171d57eeef97c5cab4aaa7b4", + "rev": "e5c8d2d50981a34602358d917e7be011b2c397a8", "type": "github" }, "original": { @@ -24,6 +24,21 @@ "type": "github" } }, + "autostart": { + "locked": { + "lastModified": 1723314998, + "narHash": "sha256-BwP56CHfU3P7ZHr2SzAEjF3uveiN1dZ5hFHTzRLS/WI=", + "owner": "Zocker1999NET", + "repo": "home-manager-xdg-autostart", + "rev": "4d1def4a330d6812fe18be140781e94003c3cc0a", + "type": "github" + }, + "original": { + "owner": "Zocker1999NET", + "repo": "home-manager-xdg-autostart", + "type": "github" + } + }, "blobs": { "flake": false, "locked": { @@ -42,11 +57,11 @@ }, "catppuccin": { "locked": { - "lastModified": 1725509983, - "narHash": "sha256-NHCgHVqumPraFJnLrkanoLDuhOoUHUvRhvp/RIHJR+A=", + "lastModified": 1728407414, + "narHash": "sha256-B8LaxUP93eh+it8RW1pGq4SsU2kj7f0ipzFuhBvpON8=", "owner": "catppuccin", "repo": "nix", - "rev": "45745fe5960acaefef2b60f3455bcac6a0ca6bc9", + "rev": "96cf8b4a05fb23a53c027621b1147b5cf9e5439f", "type": "github" }, "original": { @@ -63,11 +78,11 @@ "stable": "stable" }, "locked": { - "lastModified": 1711386353, - "narHash": "sha256-gWEpb8Hybnoqb4O4tmpohGZk6+aerAbJpywKcFIiMlg=", + "lastModified": 1728263678, + "narHash": "sha256-gyUVsPAWY9AgVKjrNPoowrIr5BvK4gI0UkDXvv8iSxA=", "owner": "zhaofengli", "repo": "colmena", - "rev": "cd65ef7a25cdc75052fbd04b120aeb066c3881db", + "rev": "b0a62f234fae02a006123e661ff70e62af16106b", "type": "github" }, "original": { @@ -98,18 +113,12 @@ } }, "crane_2": { - "inputs": { - "nixpkgs": [ - "lanzaboote", - "nixpkgs" - ] - }, "locked": { - "lastModified": 1721842668, - "narHash": "sha256-k3oiD2z2AAwBFLa4+xfU+7G5fisRXfkvrMTCJrjZzXo=", + "lastModified": 1728776144, + "narHash": "sha256-fROVjMcKRoGHofDm8dY3uDUtCMwUICh/KjBFQnuBzfg=", "owner": "ipetkov", "repo": "crane", - "rev": "529c1a0b1f29f0d78fa3086b8f6a134c71ef3aaf", + "rev": "f876e3d905b922502f031aeec1a84490122254b7", "type": "github" }, "original": { @@ -125,11 +134,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1718194053, - "narHash": "sha256-FaGrf7qwZ99ehPJCAwgvNY5sLCqQ3GDiE/6uLhxxwSY=", + "lastModified": 1727447169, + "narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=", "owner": "serokell", "repo": "deploy-rs", - "rev": "3867348fa92bc892eba5d9ddb2d7a97b9e127a8a", + "rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76", "type": "github" }, "original": { @@ -146,11 +155,11 @@ ] }, "locked": { - "lastModified": 1722113426, - "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", + "lastModified": 1728330715, + "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", "owner": "numtide", "repo": "devshell", - "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", + "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", "type": "github" }, "original": { @@ -319,11 +328,11 @@ ] }, "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { @@ -340,11 +349,11 @@ ] }, "locked": { - "lastModified": 1722555600, - "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { @@ -373,15 +382,15 @@ "flake-utils": "flake-utils_3" }, "locked": { - "lastModified": 1714763823, - "narHash": "sha256-vU6uUoUOgqG7NSyqlU/b+tNnY0ABxldYUXmlki/7OiQ=", - "owner": "NULLx76", + "lastModified": 1722363685, + "narHash": "sha256-XCf2PIAT6lH7BwytgioPmVf/wkzXjSKScC4KzcZgb64=", + "owner": "gytis-ivaskevicius", "repo": "flake-utils-plus", - "rev": "293f1f9519579a3171d535652902bba9b7b0b08c", + "rev": "6b10f51ff73a66bb29f3bc8151a59d217713f496", "type": "github" }, "original": { - "owner": "NULLx76", + "owner": "gytis-ivaskevicius", "repo": "flake-utils-plus", "type": "github" } @@ -463,11 +472,11 @@ "systems": "systems_6" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -529,11 +538,11 @@ ] }, "locked": { - "lastModified": 1724857454, - "narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=", + "lastModified": 1728778939, + "narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6", + "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", "type": "github" }, "original": { @@ -614,11 +623,11 @@ ] }, "locked": { - "lastModified": 1726036828, - "narHash": "sha256-ZQHbpyti0jcAKnwQY1lwmooecLmSG6wX1JakQ/eZNeM=", + "lastModified": 1729027341, + "narHash": "sha256-IqWD7bA9iJVifvJlB4vs2KUXVhN+d9lECWdNB4jJ0tE=", "owner": "nix-community", "repo": "home-manager", - "rev": "8a1671642826633586d12ac3158e463c7a50a112", + "rev": "2a4fd1cfd8ed5648583dadef86966a8231024221", "type": "github" }, "original": { @@ -635,11 +644,11 @@ ] }, "locked": { - "lastModified": 1724435763, - "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", + "lastModified": 1728903686, + "narHash": "sha256-ZHFrGNWDDriZ4m8CA/5kDa250SG1LiiLPApv1p/JF0o=", "owner": "nix-community", "repo": "home-manager", - "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", + "rev": "e1aec543f5caf643ca0d94b6a633101942fd065f", "type": "github" }, "original": { @@ -660,11 +669,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1725379389, - "narHash": "sha256-qS1H/5/20ewJIXmf8FN2A5KTOKKU9elWvCPwdBi1P/U=", + "lastModified": 1729064530, + "narHash": "sha256-oSr/w/5dvf/8ll6NvQlL7+rrK8wzjIcEMP1LvI4Ag08=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "e7bd94e0b5ff3c1e686f2101004ebf4fcea9d871", + "rev": "2fa1368f938b50e35ca87334b5aeba38a3402165", "type": "github" }, "original": { @@ -703,11 +712,11 @@ "spectrum": "spectrum" }, "locked": { - "lastModified": 1725664757, - "narHash": "sha256-kUMgeF3hHJM8aBpdazNgtCeeOTrWext6lHfrYmC6otU=", + "lastModified": 1728779945, + "narHash": "sha256-RFKyZygnUbJlWq1uBn4JvEEcQKZW3AFBL3bQoywECPI=", "owner": "astro", "repo": "microvm.nix", - "rev": "caac7808d1e31f8a0fa408338cd3736947cb226d", + "rev": "4d81c4115ef832880561f243efec21f06d2a8b7c", "type": "github" }, "original": { @@ -724,11 +733,11 @@ ] }, "locked": { - "lastModified": 1724561770, - "narHash": "sha256-zv8C9RNa86CIpyHwPIVO/k+5TfM8ZbjGwOOpTe1grls=", + "lastModified": 1728901530, + "narHash": "sha256-I9Qd0LnAsEGHtKE9+uVR0iDFmsijWSy7GT0g3jihG4Q=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "ac5694a0b855a981e81b4d9f14052e3ff46ca39e", + "rev": "a60ac02f9466f85f092e576fd8364dfc4406b5a6", "type": "github" }, "original": { @@ -739,11 +748,11 @@ }, "nixlib": { "locked": { - "lastModified": 1725757153, - "narHash": "sha256-c1a6iLmCVPFI9EUVMrBN8xdmFxFXEjcVwiTSVmqajOs=", + "lastModified": 1728781282, + "narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "68584f89dd0eb16fea5d80ae127f3f681f6a5df7", + "rev": "16340f605f4e8e5cf07fd74dcbe692eee2d4f51b", "type": "github" }, "original": { @@ -760,11 +769,11 @@ ] }, "locked": { - "lastModified": 1725843519, - "narHash": "sha256-Z6DglUwgFDz6fIvQ89wx/uBVWrGvEGECq0Ypyk/eigE=", + "lastModified": 1728867876, + "narHash": "sha256-NCyOA8WZNoojmXH+kBDrQj3LwvakYNzSc0h+LTXkmPE=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "214efbd73241d72a8f48b8b9a73bb54895cd51a7", + "rev": "fdf142111597f6c6283cf5ffe092b6293a3911d0", "type": "github" }, "original": { @@ -775,11 +784,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1725885300, - "narHash": "sha256-5RLEnou1/GJQl+Wd+Bxaj7QY7FFQ9wjnFq1VNEaxTmc=", + "lastModified": 1728729581, + "narHash": "sha256-oazkQ/z7r43YkDLLQdMg8oIB3CwWNb+2ZrYOxtLEWTQ=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "166dee4f88a7e3ba1b7a243edb1aca822f00680e", + "rev": "a8dd1b21995964b115b1e3ec639dd6ce24ab9806", "type": "github" }, "original": { @@ -790,11 +799,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1696019113, - "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", + "lastModified": 1725103162, + "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", + "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", "type": "github" }, "original": { @@ -885,26 +894,26 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1725634671, - "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "lastModified": 1729121138, + "narHash": "sha256-YwgV6ORMYDj32ucAIDjUY+6vV7Sv5RNbnnsQx4+QNw8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", + "rev": "f67841950fe8e33ae6597cc2dac1bc179c3c2627", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-unstable", + "ref": "nixos-unstable-small", "type": "indirect" } }, "nixpkgs_5": { "locked": { - "lastModified": 1724819573, - "narHash": "sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w=", + "lastModified": 1728888510, + "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "71e91c409d1e654808b2621f28a327acfdad8dc2", + "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", "type": "github" }, "original": { @@ -943,11 +952,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1726000537, - "narHash": "sha256-Y1dEuf2wZkg2rhE8sf73x9K0zknUald4Ia6zXnGEfjg=", + "lastModified": 1729072117, + "narHash": "sha256-vAhQlGF9m3DY/9pgLQlBQnWz7YGuQ+FP3w5Ms5HSnZc=", "owner": "pta2002", "repo": "nixvim", - "rev": "fc7e9b29271a03459191955f78d4128451b7cd81", + "rev": "b9ea7f88b6117f076d3b122d9bec3f379c57a17a", "type": "github" }, "original": { @@ -958,11 +967,11 @@ }, "nur": { "locked": { - "lastModified": 1726036733, - "narHash": "sha256-2HtGkO408Gkvg/M+9s1jcDqt2+u7MzjzZPlxpBORfOQ=", + "lastModified": 1729077813, + "narHash": "sha256-61tT+dRuJ9kGfrKgDRE/ReNw9mgIL/0uep56gehEg5Y=", "owner": "nix-community", "repo": "NUR", - "rev": "76210ff4db87bac735c6a18e3443852563469704", + "rev": "0fb85cae559957a989166e8cb80a82f316959f8f", "type": "github" }, "original": { @@ -980,11 +989,11 @@ ] }, "locked": { - "lastModified": 1724584782, - "narHash": "sha256-7FfHv7b1jwMPSu9SPY9hdxStk8E6EeSwzqdvV69U4BM=", + "lastModified": 1728905062, + "narHash": "sha256-W/lClt0bRgFRO0WFtytX/LEILpPNq+FOjIfESpkeu5c=", "owner": "NuschtOS", "repo": "search", - "rev": "5a08d691de30b6fc28d58ce71a5e420f2694e087", + "rev": "f82d3e1c1c9d1eaeb91878519e2d27b27c66ce84", "type": "github" }, "original": { @@ -1007,11 +1016,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1721042469, - "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", + "lastModified": 1728778939, + "narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", + "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", "type": "github" }, "original": { @@ -1023,6 +1032,7 @@ "root": { "inputs": { "attic": "attic", + "autostart": "autostart", "catppuccin": "catppuccin", "colmena": "colmena", "deploy": "deploy", @@ -1051,11 +1061,11 @@ ] }, "locked": { - "lastModified": 1722219664, - "narHash": "sha256-xMOJ+HW4yj6e69PvieohUJ3dBSdgCfvI0nnCEe6/yVc=", + "lastModified": 1728959392, + "narHash": "sha256-fp4he1QQjE+vasDMspZYeXrwTm9otwEqLwEN6FKZ5v0=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "a6fbda5d9a14fb5f7c69b8489d24afeb349c7bb4", + "rev": "4c6e317300f05b8871f585b826b6f583e7dc4a9b", "type": "github" }, "original": { @@ -1082,16 +1092,16 @@ }, "stable": { "locked": { - "lastModified": 1696039360, - "narHash": "sha256-g7nIUV4uq1TOVeVIDEZLb005suTWCUjSY0zYOlSBsyE=", + "lastModified": 1724316499, + "narHash": "sha256-Qb9MhKBUTCfWg/wqqaxt89Xfi6qTD3XpTzQ9eXi3JmE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "32dcb45f66c0487e92db8303a798ebc548cadedc", + "rev": "797f7dc49e0bc7fab4b57c021cdf68f595e47841", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.05", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } @@ -1245,11 +1255,11 @@ ] }, "locked": { - "lastModified": 1724833132, - "narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=", + "lastModified": 1727984844, + "narHash": "sha256-xpRqITAoD8rHlXQafYZOLvUXCF6cnZkPfoq67ThN0Hc=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "3ffd842a5f50f435d3e603312eefa4790db46af5", + "rev": "4446c7a6fc0775df028c5a3f6727945ba8400e64", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d1a866e9..1489a7d0 100644 --- a/flake.nix +++ b/flake.nix @@ -5,8 +5,8 @@ # * https://github.com/Infinidoge/nix-minecraft inputs = { - nixpkgs.url = "nixpkgs/nixos-unstable"; - flake-utils-plus.url = "github:NULLx76/flake-utils-plus"; + nixpkgs.url = "nixpkgs/nixos-unstable-small"; + flake-utils-plus.url = "github:gytis-ivaskevicius/flake-utils-plus"; nur.url = "github:nix-community/NUR"; colmena.url = "github:zhaofengli/colmena"; deploy.url = "github:serokell/deploy-rs"; @@ -46,6 +46,8 @@ essentials.url = "github:jdonszelmann/essentials"; essentials.inputs.nixpkgs.follows = "nixpkgs"; + + autostart.url = "github:Zocker1999NET/home-manager-xdg-autostart"; }; outputs = diff --git a/hosts/olympus/bastion/containers/common.nix b/hosts/olympus/bastion/containers/common.nix index 6807b60d..065206f8 100644 --- a/hosts/olympus/bastion/containers/common.nix +++ b/hosts/olympus/bastion/containers/common.nix @@ -9,3 +9,4 @@ system.stateVersion = lib.mkDefault "24.05"; } + diff --git a/hosts/olympus/bastion/containers/default.nix b/hosts/olympus/bastion/containers/default.nix index 4f41ed31..edd293ae 100644 --- a/hosts/olympus/bastion/containers/default.nix +++ b/hosts/olympus/bastion/containers/default.nix @@ -1,42 +1,82 @@ -{ config, lib, inputs, ... }: +{ + config, + lib, + inputs, + ... +}: let hostAddress = "10.42.99.1"; hostAddress6 = "fc00::1"; -in { +in +{ networking.nat = { enable = true; internalInterfaces = [ "ve-+" ]; externalInterface = "ens18"; # Lazy IPv6 connectivity for the container enableIPv6 = true; - - forwardPorts = [ - - ]; }; + networking.firewall.allowedTCPPorts = [ + 8384 + 22000 + ]; + networking.firewall.allowedUDPPorts = [ + 22000 + 21027 + ]; + # Containers network is # * 10.42.99.0/24 # * fc00:x + users.groups.backup = { + gid = 10000; + members = [ "vivian" ]; + }; + containers = { - dns = { + syncthing = { autoStart = true; inherit hostAddress hostAddress6; localAddress = "10.42.99.2"; localAddress6 = "fc00::2"; - specialArgs = { inherit inputs; }; + forwardPorts = [ + { + containerPort = 8384; + hostPort = 8384; + protocol = "tcp"; + } + ]; - config = {pkgs, ...}: { - imports = [ - ./common.nix - # ./dns.nix - inputs.home-manager.nixosModules.home-manager - inputs.gnome-autounlock-keyring.nixosModules.default - inputs.catppuccin.nixosModules.catppuccin - ]; + bindMounts = { + "/data" = { + hostPath = "/mnt/backup"; + isReadOnly = false; + }; }; + + specialArgs = { + inherit inputs; + }; + + config = + { pkgs, ... }: + { + users.groups.backup = { + gid = 10000; + members = [ "syncthing" ]; + }; + + imports = [ + ./common.nix + ./syncthing.nix + inputs.home-manager.nixosModules.home-manager + inputs.gnome-autounlock-keyring.nixosModules.default + inputs.catppuccin.nixosModules.catppuccin + ]; + }; }; }; } diff --git a/hosts/olympus/bastion/containers/syncthing.nix b/hosts/olympus/bastion/containers/syncthing.nix new file mode 100644 index 00000000..0e10c83f --- /dev/null +++ b/hosts/olympus/bastion/containers/syncthing.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + services.syncthing = { + enable = true; + openDefaultPorts = true; + guiAddress = "0.0.0.0:8384"; + }; +} diff --git a/hosts/olympus/bastion/default.nix b/hosts/olympus/bastion/default.nix index c5386982..d5f7fcd5 100644 --- a/hosts/olympus/bastion/default.nix +++ b/hosts/olympus/bastion/default.nix @@ -19,6 +19,13 @@ mac = "82:F0:7C:CB:BD:6D"; }; + services.scrutiny = { + enable = true; + openFirewall = true; + influxdb.enable = true; + collector.enable = false; + }; + # Use the GRUB 2 boot loader. boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/sda"; diff --git a/hosts/thalassa/aoife/default.nix b/hosts/thalassa/aoife/default.nix index ac86bbc1..44da8c3b 100644 --- a/hosts/thalassa/aoife/default.nix +++ b/hosts/thalassa/aoife/default.nix @@ -23,11 +23,10 @@ users.users.vivian.extraGroups = [ "adbusers" ]; - security.pki.certificateFiles = [ ./domain.crt ]; - environment.systemPackages = with pkgs; [ - # (ollama.override {acceleration = "rocm"; }) + ]; + services.flatpak.enable = true; # Bootloader. @@ -35,7 +34,7 @@ bootspec.enable = true; initrd.kernelModules = [ "amdgpu" ]; resumeDevice = "/dev/nvme0n1p2"; - loader.systemd-boot.enable = lib.mkForce false; + loader.systemd-boot.enable = lib.mkForce false; # Using lanzaboote instead kernel.sysctl = { "perf_event_paranoid" = 1; @@ -59,11 +58,14 @@ ]; programs.hyprland.enable = true; + services.gnome.gnome-keyring.enable = true; - # services.gnome-autounlock-keyring = { - # enable = true; - # target = "hyprland-session.target"; - # }; + + services.ollama = { + enable = true; + acceleration = "rocm"; + rocmOverrideGfx = "10.3.4"; + }; services.interception-tools = { enable = true; diff --git a/hosts/thalassa/aoife/domain.crt b/hosts/thalassa/aoife/domain.crt deleted file mode 100644 index 3713f443..00000000 --- a/hosts/thalassa/aoife/domain.crt +++ /dev/null @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDZTCCAk2gAwIBAgIUcCV6T0NduGa58qOcAhe9n8oOcEIwDQYJKoZIhvcNAQEL -BQAwWzELMAkGA1UEBhMCTkwxFTATBgNVBAgMDFp1aWQtSG9sbGFuZDEOMAwGA1UE -BwwFRGVsZnQxETAPBgNVBAoMCFRVIERlbGZ0MRIwEAYDVQQDDAlsb2NhbGhvc3Qw -HhcNMjQwNDA1MDgyMDQxWhcNMjUwNDA1MDgyMDQxWjBbMQswCQYDVQQGEwJOTDEV -MBMGA1UECAwMWnVpZC1Ib2xsYW5kMQ4wDAYDVQQHDAVEZWxmdDERMA8GA1UECgwI -VFUgRGVsZnQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAIcX6xGqorbXkIqtH0ek2L9YAc0ruKF7aTpY9q7n6EpD4OC1 -Q575fvnEqBsvKC74xh1AO58x7HLxAIWmy76UqUxJIQ7vtfCKxFDjBDhgitmnxWK1 -3QCrHwFS3MThqOq0zhK7AqnpzzdHsj9zfPWbrhP86m4uugIAund2YiSUPX7ZrSSO -pY60bZiA2c3hJbqxg+NvNN1vZHEsPGaZHXMMrycw0bLOBoKPvbenl3ig23vsyRSO -MwiJgLK/ztMI6r2KMJVZofjbu1Mz+WPzotKaCrSArSRF36BOzafyxqgO0h3Vqp4W -Z6UpS1bFTpbJckz8LqNvlP/Z4mV5+1QyrwwN/iMCAwEAAaMhMB8wHQYDVR0OBBYE -FOSRI3SKLWlk2RamJJwyyFlP9UnhMA0GCSqGSIb3DQEBCwUAA4IBAQARLh5z4Ius -0kiejnMtzV5xAckbqbcultdEdGfjZciv3BM9C7DpEF5Nj8CbaK6TXrKh98bxQ6w+ -lPL/6LECkPhvHWRhTOsrhDV5h6eSPyV/TX4Jj127WnzA1LcjoEngUY97y6p/eBkE -hZWepPPAhuEmu/ws1UmF8vrT4sc+nMKXrOTsqkdUKHh2JZuFby3+SHDkYX66ZxXK -bQ3dEi6GyOkZIOuaNK+mS76yVanRU4k0A3dhIpW4pV6W12AAWioGaZv34uKVTp9E -XgNhqDC39lU4rLp260NvuRywAKxvR7hKyWfmwak5lr0dZ9t4eufPI4jU5SD+aotq -FVTMFwAKZO5v ------END CERTIFICATE----- diff --git a/hosts/thalassa/aoife/hardware.nix b/hosts/thalassa/aoife/hardware.nix index 2219c67a..88701699 100644 --- a/hosts/thalassa/aoife/hardware.nix +++ b/hosts/thalassa/aoife/hardware.nix @@ -39,6 +39,7 @@ # Video Driver xserver = { + videoDrivers = [ "displaylink" ]; dpi = 280; }; diff --git a/hosts/thalassa/aoife/home/default.nix b/hosts/thalassa/aoife/home/default.nix index e8df0a42..075a744a 100644 --- a/hosts/thalassa/aoife/home/default.nix +++ b/hosts/thalassa/aoife/home/default.nix @@ -20,7 +20,6 @@ jetbrains.idea-ultimate eduvpn-client localsend - obsidian typst prismlauncher libraw @@ -33,6 +32,9 @@ "student-linux.tudelft.nl" = { user = "vroest"; }; + "login.delftblue.tudelft.nl" = { + user = "vroest"; + }; "cese01" = { hostname = "cese01.ewi.tudelft.nl"; user = "vroest"; diff --git a/hosts/thalassa/aoife/uni.nix b/hosts/thalassa/aoife/uni.nix index 29b1d26d..ed09c077 100644 --- a/hosts/thalassa/aoife/uni.nix +++ b/hosts/thalassa/aoife/uni.nix @@ -32,4 +32,38 @@ ]; }; + + # Vivado udev + services.udev.packages = [ + (pkgs.writeTextFile { + name = "xilinx-dilligent-usb-udev"; + destination = "/etc/udev/rules.d/52-xilinx-digilent-usb.rules"; + text = '' + ATTR{idVendor}=="1443", MODE:="666" + ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666" + ''; + }) + (pkgs.writeTextFile { + name = "xilinx-pcusb-udev"; + destination = "/etc/udev/rules.d/52-xilinx-pcusb.rules"; + text = '' + ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666" + ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666" + ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666" + ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666" + ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666" + ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666" + ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666" + ''; + }) + (pkgs.writeTextFile { + name = "xilinx-ftdi-usb-udev"; + destination = "/etc/udev/rules.d/52-xilinx-ftdi-usb.rules"; + text = '' + ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Xilinx", MODE:="666" + ''; + }) + ]; } + +