Add looking glass for VMs, switch from scream-ivshmem to qemu-pulse
This commit is contained in:
parent
7069fb2a62
commit
15c0412080
|
@ -20,7 +20,7 @@ in
|
||||||
playonlinux
|
playonlinux
|
||||||
godot
|
godot
|
||||||
obs-studio
|
obs-studio
|
||||||
obs-wlrobs
|
obs-studio-plugins.wlrobs
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,6 +3,8 @@ with lib;
|
||||||
let
|
let
|
||||||
psCfg = config.pub-solar;
|
psCfg = config.pub-solar;
|
||||||
cfg = config.pub-solar.virtualisation;
|
cfg = config.pub-solar.virtualisation;
|
||||||
|
doesGaming = config.pub-solar.gaming.enable;
|
||||||
|
extraObsPlugins = if doesGaming then [ pkgs.obs-studio-plugins.looking-glass-obs ] else [ ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.pub-solar.virtualisation = {
|
options.pub-solar.virtualisation = {
|
||||||
|
@ -32,17 +34,26 @@ in
|
||||||
virt-manager
|
virt-manager
|
||||||
python38Packages.libvirt
|
python38Packages.libvirt
|
||||||
gvfs
|
gvfs
|
||||||
scream
|
|
||||||
edk2
|
edk2
|
||||||
OVMF
|
OVMF
|
||||||
win-virtio
|
win-virtio
|
||||||
|
looking-glass-client
|
||||||
|
lgcl
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
|
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
|
||||||
xdg.dataFile."libvirt/.keep".text = "# this file is here to generate the directory";
|
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.tmpfiles.rules = [
|
||||||
systemd.user.services.scream-ivshmem-pulse = import ./scream-ivshmem-pulse.service.nix pkgs;
|
"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; }
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,12 +16,14 @@ channels: final: prev: {
|
||||||
qutebrowser
|
qutebrowser
|
||||||
signal-desktop
|
signal-desktop
|
||||||
tdesktop
|
tdesktop
|
||||||
obs-studio
|
|
||||||
starship
|
starship
|
||||||
deploy-rs
|
deploy-rs
|
||||||
xdg-desktop-portal
|
xdg-desktop-portal
|
||||||
xdg-desktop-portal-gtk
|
xdg-desktop-portal-gtk
|
||||||
xdg-desktop-portal-wlr
|
xdg-desktop-portal-wlr
|
||||||
|
obs-studio
|
||||||
|
obs-studio-plugins
|
||||||
|
looking-glass-client
|
||||||
;
|
;
|
||||||
|
|
||||||
haskellPackages = prev.haskellPackages.override
|
haskellPackages = prev.haskellPackages.override
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
final: prev:
|
final: prev:
|
||||||
with final; {
|
with final; {
|
||||||
# keep sources this first
|
# keep sources this first
|
||||||
sources = prev.callPackage (import ./_sources/generated.nix) { };
|
sources = prev.callPackage (import ./_sources/generated.nix) { };
|
||||||
# then, call packages with `final.callPackage`
|
# then, call packages with `final.callPackage`
|
||||||
import-gtk-settings = writeShellScriptBin "import-gtk-settings" (import ./import-gtk-settings.nix final);
|
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);
|
mailto-mutt = writeShellScriptBin "mailto-mutt" (import ./mailto-mutt.nix final);
|
||||||
mopidy-jellyfin = import ./mopidy-jellyfin.nix final;
|
mopidy-jellyfin = import ./mopidy-jellyfin.nix final;
|
||||||
mu = writeShellScriptBin "mu" (import ./mu.nix final);
|
mu = writeShellScriptBin "mu" (import ./mu.nix final);
|
||||||
|
|
3
pkgs/lgcl.nix
Normal file
3
pkgs/lgcl.nix
Normal 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
|
||||||
|
''
|
Loading…
Reference in a new issue