Add looking glass for VMs, switch from scream-ivshmem to qemu-pulse

This commit is contained in:
Benjamin Bädorf 2021-12-11 21:08:20 +01:00
parent 7069fb2a62
commit 15c0412080
No known key found for this signature in database
GPG key ID: 4406E80E13CD656C
6 changed files with 35 additions and 18 deletions

View file

@ -20,7 +20,7 @@ in
playonlinux
godot
obs-studio
obs-wlrobs
obs-studio-plugins.wlrobs
];
};
};

View file

@ -3,6 +3,8 @@ with lib;
let
psCfg = config.pub-solar;
cfg = config.pub-solar.virtualisation;
doesGaming = config.pub-solar.gaming.enable;
extraObsPlugins = if doesGaming then [ pkgs.obs-studio-plugins.looking-glass-obs ] else [ ];
in
{
options.pub-solar.virtualisation = {
@ -32,17 +34,26 @@ in
virt-manager
python38Packages.libvirt
gvfs
scream
edk2
OVMF
win-virtio
looking-glass-client
lgcl
];
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
xdg.dataFile."libvirt/.keep".text = "# this file is here to generate the directory";
home.packages = extraObsPlugins;
};
systemd.tmpfiles.rules = [ "f /dev/shm/scream-ivshmem 0660 ${psCfg.user.name} kvm" ];
systemd.user.services.scream-ivshmem-pulse = import ./scream-ivshmem-pulse.service.nix pkgs;
systemd.tmpfiles.rules = [
"f /dev/shm/looking-glass 0660 ${psCfg.user.name} kvm"
];
networking.bridges.virbr1.interfaces = [ ];
networking.interfaces.virbr1 = {
ipv4.addresses = [
{ address = "192.168.123.1"; prefixLength = 24; }
];
};
};
}

View file

@ -16,12 +16,14 @@ channels: final: prev: {
qutebrowser
signal-desktop
tdesktop
obs-studio
starship
deploy-rs
xdg-desktop-portal
xdg-desktop-portal-gtk
xdg-desktop-portal-wlr
obs-studio
obs-studio-plugins
looking-glass-client
;
haskellPackages = prev.haskellPackages.override

View file

@ -4,6 +4,7 @@ final: prev:
sources = prev.callPackage (import ./_sources/generated.nix) { };
# then, call packages with `final.callPackage`
import-gtk-settings = writeShellScriptBin "import-gtk-settings" (import ./import-gtk-settings.nix final);
lgcl = writeShellScriptBin "lgcl" (import ./lgcl.nix final);
mailto-mutt = writeShellScriptBin "mailto-mutt" (import ./mailto-mutt.nix final);
mopidy-jellyfin = import ./mopidy-jellyfin.nix final;
mu = writeShellScriptBin "mu" (import ./mu.nix final);

3
pkgs/lgcl.nix Normal file
View file

@ -0,0 +1,3 @@
self: with self; ''
${self.looking-glass-client}/bin/looking-glass-client -f /dev/shm/looking-glass input:ignoreWindowsKeys=yes input:grabKeyboardOnFocus=no
''