From 567c22812fe1fbe525f1732661d253b3902710a9 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 22 Aug 2024 14:48:24 +0200 Subject: ... --- accounts/gkleen@sif/default.nix | 25 +++++++++++++++++----- accounts/gkleen@sif/emacs.el | 6 ++++-- accounts/gkleen@sif/hyprland.nix | 3 +++ accounts/gkleen@sif/libvirt/default.nix | 13 +++++++++++ flake.lock | 37 ++++++++++++++++++++++++++++++++ flake.nix | 4 ++++ hosts/sif/default.nix | 9 ++++---- hosts/sif/libvirt/default.nix | 38 +++++++++++++++++++++++++++++++++ system-profiles/core/default.nix | 10 +++++++++ user-profiles/core.nix | 14 +----------- user-profiles/mpv/default.nix | 1 + 11 files changed, 135 insertions(+), 25 deletions(-) create mode 100644 accounts/gkleen@sif/libvirt/default.nix create mode 100644 hosts/sif/libvirt/default.nix diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 09864bb2..61769adb 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix @@ -99,6 +99,7 @@ in { home-manager.users.${userName} = { imports = [ + ./libvirt flakeInputs.nix-index-database.hmModules.nix-index flakeInputs.impermanence.nixosModules.home-manager.impermanence ]; @@ -171,7 +172,7 @@ in { edit-server mediawiki editorconfig typescript-mode markdown-mode nftables-mode rustic lsp-mode lsp-ui direnv company projectile tomorrow-night-paradise-theme - treesit-grammars.with-all-grammars + treesit-grammars.with-all-grammars magit-delta ]; overrides = self: super: { tomorrow-night-paradise-theme = super.trivialBuild { @@ -275,7 +276,7 @@ in { output = "eDP-1"; modules-left = [ "hyprland/workspaces" ]; modules-center = [ "hyprland/window" ]; - modules-right = [ "custom/weather" "custom/keymap" "clock" "privacy" "tray" "wireplumber" "backlight" "battery" "idle_inhibitor" ]; + modules-right = [ "custom/weather" "custom/keymap" "privacy" "tray" "wireplumber" "backlight" "battery" "idle_inhibitor" "clock" ]; "custom/weather" = { format = "{}"; @@ -301,7 +302,7 @@ in { if keymap == "English (programmer Dvorak)": short = "dvp" elif keymap == "English (US)": - short = "us" + short = "us" print(json.dumps({'text': short, 'tooltip': keymap}, separators=(',', ':')), flush=True) # noqa: E501 @@ -471,6 +472,13 @@ in { #custom-weather, #custom-keymap { color: @grey; + margin: 0 5px; + } + #custom-weather { + margin-right: 3px; + } + #custom-keymap { + margin-left: 3px; } #tray { @@ -480,6 +488,13 @@ in { color: @grey; margin: 0 5px 0 2px; } + #idle_inhibitor { + margin-right: 2px; + margin-left: 3px; + } + #battery { + margin-right: 3px; + } #battery.discharging { color: @white; } @@ -505,7 +520,7 @@ in { margin: -1px 2px 0px 5px; } #clock { - margin-right: 5px; + /* margin-right: 5px; */ } ''; }; @@ -691,7 +706,6 @@ in { ]; file = { - ".emacs.d/init.el".source = ./emacs.el; ".backup-munin".source = ./backup-patterns; ".mozilla/firefox/default/chrome/userChrome.css".source = ./firefox-chrome.css; ".mozilla/firefox/default/chrome/userContent.css".source = ./firefox-content.css; @@ -757,6 +771,7 @@ in { }; }; }; + "emacs/init.el".source = ./emacs.el; }; xdg.dataFile = { diff --git a/accounts/gkleen@sif/emacs.el b/accounts/gkleen@sif/emacs.el index 7a8eb8f5..b1b1b198 100644 --- a/accounts/gkleen@sif/emacs.el +++ b/accounts/gkleen@sif/emacs.el @@ -38,6 +38,8 @@ (evil-set-undo-system 'undo-tree) +(add-hook 'magit-mode-hook (lambda () (magit-delta-mode +1))) + (global-set-key (kbd "RET") 'newline-and-indent) (global-set-key (kbd "M-g") 'magit-status) (global-set-key (kbd "M-?") 'vc-git-grep) @@ -54,8 +56,8 @@ (global-set-key (kbd "C-x K") 'kill-current-buffer) -(setq backup-directory-alist `(("." . "~/.saves"))) -(setq undo-tree-history-directory-alist `(("." . "~/.undo"))) +(setq backup-directory-alist `(("." . "~/.local/state/emacs/saves"))) +(setq undo-tree-history-directory-alist `(("." . "~/.local/state/emacs/undo"))) (setq delete-old-versions t kept-new-versions 6 kept-old-versions 2 diff --git a/accounts/gkleen@sif/hyprland.nix b/accounts/gkleen@sif/hyprland.nix index 9c33fda1..3b2f8879 100644 --- a/accounts/gkleen@sif/hyprland.nix +++ b/accounts/gkleen@sif/hyprland.nix @@ -297,6 +297,9 @@ in { "workspace 4, class:^imv$" "workspace 4, class:^org\.pwmt\.zathura$" "workspace 10, class:^mpv$" + "workspace 1, class:^Element$" + "workspace 1, class:^thunderbird$" + "workspace 5, class:^virt-manager$" "float, class:^org\.keepassxc\.KeePassXC$, title:Access Request$" "center, class:^org\.keepassxc\.KeePassXC$, title:Access Request$" "float, class:^org\.keepassxc\.KeePassXC$, title:^Unlock Database" diff --git a/accounts/gkleen@sif/libvirt/default.nix b/accounts/gkleen@sif/libvirt/default.nix new file mode 100644 index 00000000..a93a2266 --- /dev/null +++ b/accounts/gkleen@sif/libvirt/default.nix @@ -0,0 +1,13 @@ +{ flakeInputs, ... }: + +with flakeInputs.nixVirt.lib; + +{ + config = { + virtualisation.libvirt = { + enable = true; + connections."qemu:///session" = { + }; + }; + }; +} diff --git a/flake.lock b/flake.lock index 8d277b69..e659fdd1 100644 --- a/flake.lock +++ b/flake.lock @@ -450,6 +450,26 @@ "type": "github" } }, + "nixVirt": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-ovmf": "nixpkgs-ovmf" + }, + "locked": { + "lastModified": 1712439808, + "narHash": "sha256-QoONoZPBpNTw5cia05QSvDlaxXo3moKAJQOw7c5hMXA=", + "rev": "9f1cdca730d92461075709e867c1e9ad93d58a8d", + "revCount": 284, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/AshleyYakeley/NixVirt/0.5.0/018eb55e-7beb-75c5-919f-5b5b26136e06/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/AshleyYakeley/NixVirt/%2A.tar.gz" + } + }, "nixos-hardware": { "locked": { "lastModified": 1722332872, @@ -552,6 +572,22 @@ "type": "github" } }, + "nixpkgs-ovmf": { + "locked": { + "lastModified": 1708984720, + "narHash": "sha256-gJctErLbXx4QZBBbGp78PxtOOzsDaQ+yw1ylNQBuSUY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "13aff9b34cc32e59d35c62ac9356e4a41198a538", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-pgbackrest": { "locked": { "lastModified": 1685566663, @@ -812,6 +848,7 @@ "home-manager-eostre": "home-manager-eostre", "impermanence": "impermanence", "nix-index-database": "nix-index-database", + "nixVirt": "nixVirt", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", "nixpkgs-eostre": "nixpkgs-eostre", diff --git a/flake.nix b/flake.nix index 909d9da3..a5bcc93c 100644 --- a/flake.nix +++ b/flake.nix @@ -179,6 +179,10 @@ flake-compat.follows = "flake-compat"; }; }; + nixVirt = { + url = "https://flakehub.com/f/AshleyYakeley/NixVirt/*.tar.gz"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { self, nixpkgs, home-manager, sops-nix, deploy-rs, nvfetcher, ... }@inputs: diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix index e3becb4b..d2902f95 100644 --- a/hosts/sif/default.nix +++ b/hosts/sif/default.nix @@ -12,11 +12,12 @@ let in { imports = with flake.nixosModules.systemProfiles; [ ./hw.nix - ./mail + ./mail ./libvirt tmpfs-root bcachefs initrd-all-crypto-modules default-locale openssh rebuild-machines networkmanager flakeInputs.nixos-hardware.nixosModules.lenovo-thinkpad-p1 flakeInputs.impermanence.nixosModules.impermanence + flakeInputs.nixVirt.nixosModules.default ]; config = { @@ -627,10 +628,6 @@ in { dconf.enable = true; }; - virtualisation.libvirtd = { - enable = true; - }; - zramSwap = { enable = true; algorithm = "zstd"; @@ -704,6 +701,8 @@ in { security.pam.services.gtklock = {}; + home-manager.sharedModules = [ flakeInputs.nixVirt.homeModules.default ]; + system.stateVersion = "24.11"; }; } diff --git a/hosts/sif/libvirt/default.nix b/hosts/sif/libvirt/default.nix new file mode 100644 index 00000000..b5d95996 --- /dev/null +++ b/hosts/sif/libvirt/default.nix @@ -0,0 +1,38 @@ +{ flakeInputs, ... }: + +with flakeInputs.nixVirt.lib; + +{ + config = { + virtualisation.libvirtd.qemu.swtpm.enable = true; + virtualisation.libvirt = { + enable = true; + swtpm.enable = true; + connections."qemu:///system" = { + networks = [ + { active = null; + definition = network.writeXML { + name = "default"; + uuid = "012bfad7-4408-4345-8747-041853ef84c6"; + forward.mode = "nat"; + bridge = { + name = "virbr0"; + stp = true; + delay = 0; + }; + mac.address = "52:54:00:ad:34:af"; + ip = { + address = "192.168.122.1"; + netmask = "255.255.255.0"; + dhcp.range = { + start = "192.168.122.2"; + end = "192.168.122.254"; + }; + }; + }; + } + ]; + }; + }; + }; +} diff --git a/system-profiles/core/default.nix b/system-profiles/core/default.nix index 63b9a2b5..fede386b 100644 --- a/system-profiles/core/default.nix +++ b/system-profiles/core/default.nix @@ -160,7 +160,17 @@ in { home-manager = { useGlobalPkgs = true; # Otherwise home-manager would only work impurely useUserPackages = false; + useUserService = true; backupFileExtension = "bak"; + sharedModules = lib.attrValues flake.homeModules ++ [ + { + manual.manpages.enable = true; + systemd.user.startServices = "sd-switch"; + + programs.ssh.internallyManaged = mkForce true; + } + ]; + extraSpecialArgs = { inherit flake flakeInputs path; }; }; sops = mkIf hasSops { diff --git a/user-profiles/core.nix b/user-profiles/core.nix index ea782a4b..a8af48b3 100644 --- a/user-profiles/core.nix +++ b/user-profiles/core.nix @@ -5,19 +5,7 @@ with lib; { config = { users.users.${userName} = {}; # Just make sure the user is created - - home-manager.useUserService = true; - home-manager.extraSpecialArgs = { inherit flake flakeInputs path; }; - home-manager.users.${userName} = { - imports = lib.attrValues flake.homeModules; - - config = { - manual.manpages.enable = true; - systemd.user.startServices = "sd-switch"; - - programs.ssh.internallyManaged = mkForce true; - }; - }; + home-manager.users.${userName} = {}; systemd.services."home-manager-${utils.escapeSystemdPath userName}" = lib.mkIf (!config.home-manager.enableSystemd) { restartIfChanged = false; # only run once on startup, deploy to running system with deploy-rs diff --git a/user-profiles/mpv/default.nix b/user-profiles/mpv/default.nix index 7c8fc603..065b44ac 100644 --- a/user-profiles/mpv/default.nix +++ b/user-profiles/mpv/default.nix @@ -54,6 +54,7 @@ } ])}" ]; + watch-later-options = lib.concatStringsSep "," [ "start" ]; }; scripts = [ (pkgs.stdenv.mkDerivation (sources.mpv-reload // rec { -- cgit v1.2.3