This commit is contained in:
Madeleine Sydney
2025-03-23 23:16:03 -06:00
parent c3c1359b4f
commit ef9943b707
22 changed files with 300 additions and 106 deletions

118
flake.lock generated
View File

@@ -93,11 +93,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1740346641,
"narHash": "sha256-0djPRTfFhRo2FTYVNGkw9zFh8SbH0e0lyIwsrvwA1OY=",
"lastModified": 1742772485,
"narHash": "sha256-8JuQ87ZScrTtvHGIW9LB1OiFU/EkcBIvuQFVvirqI4k=",
"owner": "9001",
"repo": "copyparty",
"rev": "598a29a7339f0824bc042f35c31697e239475095",
"rev": "e1dea7ef3ee397d50bd0ab14e2eb71bec2256d9b",
"type": "github"
},
"original": {
@@ -133,11 +133,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1738148035,
"narHash": "sha256-KYOATYEwaKysL3HdHdS5kbQMXvzS4iPJzJrML+3TKAo=",
"lastModified": 1741786315,
"narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
"owner": "nix-community",
"repo": "disko",
"rev": "18d0a984cc2bc82cf61df19523a34ad463aa7f54",
"rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
"type": "github"
},
"original": {
@@ -152,11 +152,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1741658994,
"narHash": "sha256-frkkZXUXAHRKPhGdoWSYx6LOxdKQUQRl/1Hjj3XTzc0=",
"lastModified": 1742838319,
"narHash": "sha256-daVj+uHpHvndui9DOxytAjVP7Kx8lG3/W3KPNR0EG/0=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "e6acc4327ba98ade994a6b804b01ab5087726ce2",
"rev": "cb257a1d672f75f2f3e375fe1080216131dd1fb0",
"type": "github"
},
"original": {
@@ -411,18 +411,14 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1741376022,
"narHash": "sha256-EPMhteiZurPFiVs1ioBtiUgUMih52w3IwOWLV0hoX1w=",
"owner": "msyds",
"repo": "home-manager",
"rev": "7b87c2d8b9ad72e83402f8fc6dde24e76b28ee67",
"type": "github"
"lastModified": 1742856449,
"narHash": "sha256-J0qKDH7bTrzDYjLzwXiaGE2pdaL/OycvRy/6h6Ih2oo=",
"path": "/home/crumb/git/home-manager",
"type": "path"
},
"original": {
"owner": "msyds",
"ref": "service-mpdscribble",
"repo": "home-manager",
"type": "github"
"path": "/home/crumb/git/home-manager",
"type": "path"
}
},
"home-manager_2": {
@@ -471,11 +467,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1742280890,
"narHash": "sha256-Kluc8ORAYjyPA5gD4HfXiv7bxmGftGAQ5eFAJ7uJwiE=",
"lastModified": 1742832363,
"narHash": "sha256-STJUQ7PVfjlWdHSuxXDH/UZNjrUVO1Up/x2AwhtJRio=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "808d8bf8cd9adb4bd20ba9411346d42ece5de4ca",
"rev": "8720365191e3931cefd3fc9484dccba5e219b73d",
"type": "github"
},
"original": {
@@ -504,11 +500,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1742276600,
"narHash": "sha256-muceB5DW++WPqrGKpX3Hkii/DNSMmFs2oQrYRYHmPiU=",
"lastModified": 1742719554,
"narHash": "sha256-zBB/Niset99u6/b6z9hS2IYfDigDI9huiG0QXvDKDS4=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "e251ca7340bc71870c3a81a7ffc3d9bde58e685a",
"rev": "c709696237f3e963225b8df248538cc691ccba3d",
"type": "github"
},
"original": {
@@ -591,11 +587,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1741445498,
"narHash": "sha256-F5Em0iv/CxkN5mZ9hRn3vPknpoWdcdCyR0e4WklHwiE=",
"lastModified": 1742751704,
"narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "52e3095f6d812b91b22fb7ad0bfc1ab416453634",
"rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092",
"type": "github"
},
"original": {
@@ -607,11 +603,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1742136038,
"narHash": "sha256-DDe16FJk18sadknQKKG/9FbwEro7A57tg9vB5kxZ8kY=",
"lastModified": 1742512142,
"narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a1185f4064c18a5db37c5c84e5638c78b46e3341",
"rev": "7105ae3957700a9646cc4b766f5815b23ed0c682",
"type": "github"
},
"original": {
@@ -671,11 +667,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1737879851,
"narHash": "sha256-H+FXIKj//kmFHTTW4DFeOjR7F1z2/3eb2iwN6Me4YZk=",
"lastModified": 1741402956,
"narHash": "sha256-y2hByvBM03s9T2fpeLjW6iprbxnhV9mJMmSwCHc41ZQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5d3221fd57cc442a1a522a15eb5f58230f45a304",
"rev": "ed0b1881565c1ffef490c10d663d4f542031dad3",
"type": "github"
},
"original": {
@@ -687,11 +683,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1741513245,
"narHash": "sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk=",
"lastModified": 1742669843,
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e3e32b642a31e6714ec1b712de8c91a3352ce7e1",
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
"type": "github"
},
"original": {
@@ -703,11 +699,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1741010256,
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
"lastModified": 1742422364,
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
"type": "github"
},
"original": {
@@ -719,11 +715,11 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1742069588,
"narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=",
"lastModified": 1742422364,
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5",
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
"type": "github"
},
"original": {
@@ -767,11 +763,11 @@
},
"nixpkgs_8": {
"locked": {
"lastModified": 1738517419,
"narHash": "sha256-tttEXgKimgbtPvxFl+Avos4P4lssIqxHhxpLbbvNekk=",
"lastModified": 1742738698,
"narHash": "sha256-KCtAXWwQs03JmEhP4ss59QVzT+rHZkhQO85KjNy8Crc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8532db2a88ba56de9188af72134d93e39fd825f3",
"rev": "f3a2a0601e9669a6e38af25b46ce6c4563bcb6da",
"type": "github"
},
"original": {
@@ -783,11 +779,11 @@
},
"nixpkgs_9": {
"locked": {
"lastModified": 1731763621,
"narHash": "sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk=",
"lastModified": 1742578646,
"narHash": "sha256-GiQ40ndXRnmmbDZvuv762vS+gew1uDpFwOfgJ8tLiEs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d",
"rev": "94c4dbe77c0740ebba36c173672ca15a7926c993",
"type": "github"
},
"original": {
@@ -806,11 +802,11 @@
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1741373419,
"narHash": "sha256-RkLmZob4GnlKntjO26io6wf6haE24pcTr3jAljMJ45c=",
"lastModified": 1742849190,
"narHash": "sha256-Isnx5t+L/G7AxpUwNvFgPiYc4IcZjdBrg3MIVz1cfnk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "4463e6382eca077dbd3c74ae336aef516221b4fc",
"rev": "797067d7e3601713a3b43f823248a6232486376c",
"type": "github"
},
"original": {
@@ -863,11 +859,11 @@
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1738291974,
"narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=",
"lastModified": 1742700801,
"narHash": "sha256-ZGlpUDsuBdeZeTNgoMv+aw0ByXT2J3wkYw9kJwkAS4M=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7",
"rev": "67566fe68a8bed2a7b1175fdfb0697ed22ae8852",
"type": "github"
},
"original": {
@@ -898,11 +894,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1742234510,
"narHash": "sha256-dQoo4XivjZuJiSi8ePv9CuP0ncE64RLyz2vb46blRx0=",
"lastModified": 1742855382,
"narHash": "sha256-C/aBeGktWiRg2EoSc0Aug8v+cZirSkyoVtMx1P0Dex0=",
"owner": "danth",
"repo": "stylix",
"rev": "fa288c0dc695b49c9af38614af8da981371fe92a",
"rev": "5321ab0c763caa786c9756a8e8e85d1c35a8e650",
"type": "github"
},
"original": {
@@ -1135,11 +1131,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1742249030,
"narHash": "sha256-YZ+axsuNsgIKWfnRkt6Qa9UoKfUOIWf42vNUonXxmxM=",
"lastModified": 1742671548,
"narHash": "sha256-nJK70IyhyOXth5Dcyv7DKtv95TTZkqcAYHVj4Uq2Blw=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "cca74a5f6b23742d77dc5db4312dfc40fd4a0fcc",
"rev": "0fa13c6fb43ae26a597103989a42e44a03d2d827",
"type": "github"
},
"original": {

View File

@@ -6,8 +6,8 @@
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
impermanence.url = "github:nix-community/impermanence";
# We're using my branch until #6259 is merged.
home-manager.url = "github:msyds/home-manager/service-mpdscribble";
# home-manager.url = "path:///persist/dots/DELETE-ME/home-manager";
# home-manager.url = "github:msyds/home-manager/service-mpdscribble";
home-manager.url = "path:///home/crumb/git/home-manager";
sops-nix.url = "github:Mic92/sops-nix";
sydnix-cli.url = "path:///persist/dots/scripts/sydnix-cli";
copyparty.url = "github:9001/copyparty";

View File

@@ -63,8 +63,12 @@
};
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
autoNumlock = true;
};
# services.desktopManager.plasma6.enable = true;
services.xserver.xkb.layout = "us";
services.xserver.xkb.options = "ctrl:swapcaps";

View File

@@ -6,12 +6,17 @@
./disks.nix
];
boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
sydnix = {
filesystemType = "btrfs";
steam.enable = true;
niri.enable = true;
stylix.enable = true;
qemu.enable = true;
users.users = [
"crumb"
@@ -73,7 +78,7 @@
};
services.displayManager.sddm.enable = true; # WAIT4NIRI
services.desktopManager.plasma6.enable = true; # WAIT4NIRI
# services.desktopManager.plasma6.enable = true; # WAIT4NIRI
services.libinput = {
enable = true;
@@ -87,11 +92,15 @@
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
# Pulseaudio compatibility layer.
pulse.enable = true;
wireplumber.enable = true;
};
services.pulseaudio.package = pkgs.pulseaudioFull;
# Ensure pipewire processes get realtime priority.
security.rtkit.enable = true;
# services.pulseaudio.package = pkgs.pulseaudioFull;
# Usually we try to delegate declarations of globally-available packages to
# separate modules. These are some exceptional essentials.

View File

@@ -14,11 +14,7 @@ in {
};
scrobbling = {
enable = mkOption {
description = "Enable scrobbling for MPD via mpdscribble.";
type = types.bool;
default = cfg.enable;
};
enable = mkEnableOption "Enable scrobbling for MPD via mpdscribble.";
endpoints = mkOption {
type = types.attrsOf (types.submodule ({ ... }: {
@@ -35,16 +31,22 @@ in {
};
discord = {
enable = mkOption {
description = "Enable Discord integration for MPD via mpd-discord-rpc.";
type = types.bool;
default = cfg.enable;
};
enable =
mkEnableOption "Discord integration for MPD via mpd-discord-rpc";
};
};
};
config = mkIf cfg.enable {
sydnix.impermanence.directories =
let xdg-state-dir =
config.home.statehome
or "${config.home.homeDirectory}/.local/state";
in [
(lib.removePrefix
config.home.homeDirectory
"${xdg-state-dir}/mpd")
];
services.mpd = {
enable = true;
musicDirectory = cfg.musicDirectory;

View File

@@ -23,7 +23,7 @@ in {
vesktop = {
state.firstLaunch = false;
settings = {
discordBranch = "stable";
discordBranch = "canary";
minimizeToTray = false;
arRPC = true;
};

View File

@@ -63,8 +63,9 @@
(require 'syd-projects)
(require 'syd-scratch)
(require 'syd-smartparens)
(require 'syd-snippets)
(require 'syd-tabs)
(require 'syd-tooling)
(require 'syd-tramp)
(require 'syd-trust)
(require 'syd-ui)

View File

@@ -24,11 +24,12 @@
;; Managed by Nix: libenchant dependency.
:straight nil
:commands (jinx-mode jinx-correct jinx-correct-word)
:init (defun syd-jinx--jinx-or-ispell ()
(interactive)
(if (bound-and-true-p jinx-mode)
(call-interactively #'jinx-correct-word)
(call-interactively #'ispell-word)))
:init
(defun syd-jinx--jinx-or-ispell ()
(interactive)
(if (bound-and-true-p jinx-mode)
(call-interactively #'jinx-correct-word)
(call-interactively #'ispell-word)))
:general (:states '(normal visual)
"z =" #'syd-jinx--jinx-or-ispell)
:config

View File

@@ -72,7 +72,13 @@
"r r" #'cider-ns-refresh
"r R" #'cider-restart
"r q" #'cider-quit
"d d" #'cider-debug-defun-at-point
"M-:" #'cider-read-and-eval
"h d" #'cider-doc
"h c" #'cider-cheatsheet)
(:keymaps 'cider-repl-mode-map
:states 'insert
"S-<return>" #'cider-repl-newline-and-indent)
:config
(add-hook 'cider-mode-hook #'eldoc-mode)
(add-hook 'cider-repl-mode-hook #'syd-lisp-mode)
@@ -91,7 +97,9 @@
(,(rx bol "*cider-doc*")
:slot 2 :vslot -8 :quit t :select t)))
;; DEPRECATED: Remove once syd-strategies is working.
(syd-add-hook 'clojure-mode-hook
(syd-add-hook '(clojure-mode-hook
clojurescript-mode-hook
cider-repl-mode-hook)
(defun syd-clojure-set-handlers-h ()
(setq-local syd-lookup-documentation-handlers
(list #'cider-doc))))

View File

@@ -0,0 +1,9 @@
;;; syd-snippets.el -*- lexical-binding: t; -*-
(use-package yasnippet
:hook (on-first-input . yas-global-mode))
(use-package yasnippet-snippets
:after yasnippet)
(provide 'syd-snippets)

View File

@@ -0,0 +1,7 @@
;;; syd-trust.el -*- lexical-binding: t; -*-
(setq safe-local-variable-directories
(list "/persist/dots"
(expand-file-name "~/org")))
(provide 'syd-trust)

View File

@@ -0,0 +1,27 @@
;;; .yas-setup.el -*- lexical-binding: t; -*-
(require 'dash)
(require 's)
(defun snippet-bibtex--make-id ()
(let ((surname (--> (or (yas-field-value 2)
"surname")
(s-downcase it)
(string-to-list it)
(-take-while (lambda (x) (/= x ?,)) it)
(-filter (lambda (x) (not (memq x '(?- ?\s)))) it)
(apply #'string it)))
(year (--> (or (yas-field-value 3)
"1234")
(string-to-list it)
(-take-while (lambda (x) (<= ?0 x ?9)) it)
(apply #'string it)))
(keyword (or (-some--> (or (yas-field-value 1)
"keyword")
(s-downcase it)
(s-split-words it)
(-find (lambda (x)
(not (member x '("the" "on" "of" "a" "when"))))
it))
"keyword")))
(concat surname year keyword)))

View File

@@ -0,0 +1,13 @@
# -*- mode: snippet -*-
# name: Article
# uuid:
# key: @art
# condition: t
# --
@article{${1:$(snippet-bibtex--make-id)}
, title = {${1:Principia Mathematica}}
, author = {${2:of Sinope, Diogenes}}
, year = {${3:1992}}
, url = {${4:https://example.com/}}
, urldate = {${5:`(format-time-string "%Y-%m-%d")`}}
}

View File

@@ -0,0 +1,9 @@
# -*- mode: snippet -*-
# name: foreign
# uuid: haskell-foreign
# key: foreign
# condition: t
# --
foreign import ccall unsafe "src/bridge.c $1"
$1 :: $2

View File

@@ -0,0 +1,21 @@
# -*- mode: snippet -*-
# name: Nix module
# uuid:
# key: __module
# condition: t
# expand-env: ((yas-indent-line 'fixed) (yas-wrap-around-region 'nil) (this-current-file-name (file-name-base (buffer-file-name (current-buffer)))))
# --
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.${1:`this-current-file-name`};
in {
options.$1 = {
enable = mkEnableOption "$2";
};
config = mkIf cfg.enable {
$3
};
}

View File

@@ -0,0 +1,7 @@
# -*- mode: snippet -*-
# name: enable
# uuid:
# key: enable
# condition: t
# --
enable = lib.mkEnableOption "$1";

View File

@@ -100,7 +100,22 @@ in {
};
profiles."msyds" = {
bookmarks = [];
bookmarks = {
force = true;
settings = [
{
name = "Nix";
toolbar = true;
bookmarks = [
{
name = "Home-manager options";
tags = [ "nix" "docs" ];
url = "https://nix-community.github.io/home-manager/options.xhtml";
}
];
}
];
};
# Check about:support for extension/add-on ID strings.
extensions = {
@@ -186,9 +201,9 @@ in {
# Override non-declared settings.
force = true;
# Precedence of search engines.
order = [ "Kagi" "DuckDuckGo" ];
order = [ "Kagi" "ddg" ];
default = "Kagi";
privateDefault = "DuckDuckGo";
privateDefault = "ddg";
engines = {
"Kagi" = {
urls = [{
@@ -198,6 +213,18 @@ in {
];
}];
};
"Nixopts" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "channel"; value = "unstable"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon =
"${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "!no" ];
};
"Nixpkgs" = {
urls = [{
template = "https://search.nixos.org/packages";

View File

@@ -14,26 +14,27 @@ in {
sydnix.mpd = {
enable = true;
scrobbling.endpoints = {
"last.fm" = {
passwordFile =
"/home/crumb/.config/sops-nix/secrets/lastfm-password";
username = "crumb1";
};
"libre.fm" = {
passwordFile =
"/home/crumb/.config/sops-nix/secrets/librefm-password";
username = "crumbtoo";
discord.enable = true;
scrobbling = {
enable = true;
endpoints = {
"last.fm" = {
passwordFile =
"/home/crumb/.config/sops-nix/secrets/lastfm-password";
username = "crumb1";
};
"libre.fm" = {
passwordFile =
"/home/crumb/.config/sops-nix/secrets/librefm-password";
username = "crumbtoo";
};
};
};
};
# mpdscribble uses our password files, so it is imperative that the service
# Mpdscribble uses our password files, so it is imperative that the service
# runs only after said password files are brought into existence. }:)
systemd.user.services.mpdscribble.Unit = {
After = [ "sops-nix.service" ];
WantedBy = [ "mpd.service" ];
};
# systemd.user.services.mpdscribble.Unit.After = [ "sops-nix.service" ];
};
}

View File

@@ -21,7 +21,7 @@ in {
config = lib.mkIf cfg.enable {
stylix.targets.swaylock.enable = true;
programs.niri = {
# Activates some Nixpkgs patches to help run Electron applications under
# Wayland.
@@ -57,7 +57,7 @@ in {
layout = {
gaps = 8;
# center-focused-column = "always";
center-focused-column = "on-overflow";
center-focused-column = "never";
preset-column-widths = [
{ proportion = 1.0 / 3.0; }
{ proportion = 1.0 / 2.0; }
@@ -91,6 +91,12 @@ in {
size = 24;
};
window-rules = [
{
matches = [
{ title = "Element.*wishdir"; }
];
block-out-from = "screen-capture";
}
{
# This regular expression is intentionally made as specific as
# possible, since this is the default config, and we want no false

View File

@@ -8,6 +8,24 @@ in {
config = lib.mkIf cfg.enable {
programs.niri.enable = true;
# Necessary for e.g. screensharing.
xdg.portal = {
enable = true;
# See https://github.com/YaLTeR/niri/wiki/Important-Software#portals.
# Niri's NixOS module appears to automatically bring in
# xdg-desktop-portal-gnome and gnome-keyring.
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-wlr
];
xdgOpenUsePortal = true;
config.preferred = {
default = [ "gtk" ];
"org.freedesktop.impl.portal.Screenshot" = [ "wlr" ];
"org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ];
};
};
};
}

29
modules/nixos/qemu.nix Normal file
View File

@@ -0,0 +1,29 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.sydnix.qemu;
in {
options.sydnix.qemu = {
enable = mkEnableOption "Qemu";
};
config = mkIf cfg.enable
(let
# Necessary for UEFI boot with libvirt.
qemu-uefi = pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
qemu-system-x86_64 \
-bios ${pkgs.OVMF.fd}/FV/OVMF.fd \
"$@"
'';
in {
programs.virt-manager.enable = true;
environment.systemPackages = [
pkgs.virtiofsd
qemu-uefi
];
virtualisation.libvirtd.enable = true;
});
}

View File

@@ -1,4 +1,3 @@
{ config, lib, pkgs, ... }:
let