virtiofsd: Implement
This commit is contained in:
parent
91298bbfe5
commit
1fa05e9822
@ -16,7 +16,7 @@
|
||||
};
|
||||
"/mnt/Storage" = {
|
||||
device = "/dev/disk/by-label/storage";
|
||||
fsType = "ext4";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
};
|
||||
|
||||
@ -39,14 +39,23 @@
|
||||
anki
|
||||
#psst
|
||||
];
|
||||
|
||||
|
||||
ptw = {
|
||||
programs = {
|
||||
mpv = {
|
||||
primaryScreen = "C27F398";
|
||||
enable = true;
|
||||
};
|
||||
sway.enable = true;
|
||||
sway = {
|
||||
enable = true;
|
||||
extraSessionCommands = ''
|
||||
# Pick the dGPU as the first one
|
||||
#DGPU_DRM_NODE=$(ls /sys/bus/pci/devices/0000:01:00.0/drm | grep card)
|
||||
#IGPU_DRM_NODE=$(ls /sys/bus/pci/devices/0000:08:00.0/drm | grep card)
|
||||
|
||||
#WLR_DRM_DEVICES=/dev/dri/$DGPU_DRM_NODE:/dev/dri/$IGPU_DRM_NODE
|
||||
'';
|
||||
};
|
||||
alacritty.enable = true;
|
||||
emacs.enable = true;
|
||||
firefox.enable = true;
|
||||
@ -66,6 +75,16 @@
|
||||
services = {
|
||||
gamemode.enable = true;
|
||||
gnome.enable = true;
|
||||
greetd = {
|
||||
enable = true;
|
||||
/*
|
||||
swayExtra = ''
|
||||
output HDMI-A-3 transform 90 anticlockwise
|
||||
|
||||
workspace 1 output HDMI-A-3
|
||||
'';
|
||||
*/
|
||||
};
|
||||
kanshi = let
|
||||
horizontal = "Samsung Electric Company C27F398 H4ZR101145";
|
||||
vertical = "Goldstar Company Ltd IPS235 305NDPHKN600";
|
||||
@ -181,7 +200,7 @@
|
||||
libinput.enable = true;
|
||||
displayManager.gdm = {
|
||||
wayland = true;
|
||||
enable = true;
|
||||
enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
53
modules/services/greetd/default.nix
Normal file
53
modules/services/greetd/default.nix
Normal file
@ -0,0 +1,53 @@
|
||||
{ lib, config, ... }:
|
||||
|
||||
let
|
||||
cfg = config.ptw.services.greetd;
|
||||
in {
|
||||
options.ptw.services.greetd = {
|
||||
enable = lib.mkEnableOption "Enable greetd with gtkgreet";
|
||||
swayExtra = lib.mkOption {
|
||||
description = "Extra options to include in the sway config";
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users.greeter = {
|
||||
isSystemUser = lib.mkForce false;
|
||||
isNormalUser = true;
|
||||
createHome = true;
|
||||
uid = 992;
|
||||
};
|
||||
|
||||
services = {
|
||||
greetd = {
|
||||
enable = true;
|
||||
restart = true;
|
||||
settings = {
|
||||
default_session = let
|
||||
swayConfig = pkgs.writeText "login-sway-config" ''
|
||||
exec ${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; ${pkgs.sway}/bin/swaymsg exit;
|
||||
|
||||
bindsym Mod4+shift+e exec swaynag \
|
||||
-t warning \
|
||||
-m 'What do you want to do?' \
|
||||
-b 'Poweroff' 'systemctl poweroff' \
|
||||
-b 'Reboot' 'systemctl reboot'
|
||||
|
||||
input "*" {
|
||||
xkb_layout de
|
||||
}
|
||||
|
||||
${cfg.swayExtra}
|
||||
|
||||
include /etc/sway/config.d/*
|
||||
'';
|
||||
in {
|
||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -83,10 +83,22 @@ in {
|
||||
services.udev.packages = with pkgs; [ evdev-proxy ];
|
||||
|
||||
systemd = {
|
||||
services.libvirtd.path = with pkgs; [ vfio-isolate systemd bash ];
|
||||
services = {
|
||||
libvirtd.path = with pkgs; [ vfio-isolate systemd bash ];
|
||||
virtiofsd = {
|
||||
description = "vhost-user virtio-fs device backend written in Rust";
|
||||
wantedBy = [ "default.target" "libvirtd.service" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.virtiofsd}/bin/virtiofsd --socket-path=/tmp/vfsd.sock --shared-dir /mnt/Storage/Games --announce-submounts --inode-file-handles=mandatory";
|
||||
Restart = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
user.services.evdev-proxy = {
|
||||
description = "Creates virtual device to proxy evdev devices events";
|
||||
#wantedBy = [ "default.target" ];
|
||||
wantedBy = [ "default.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.evdev-proxy}/bin/evdev-proxy";
|
||||
|
32
packages/tools/virtualisation/virtiofsd/default.nix
Normal file
32
packages/tools/virtualisation/virtiofsd/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
lib
|
||||
, rustPlatform
|
||||
, pkgconfig, libcap_ng, libseccomp
|
||||
, fetchFromGitLab
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "virtiofsd";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "virtio-fs";
|
||||
repo = "virtiofsd";
|
||||
rev = "a31ad19efc302836a364fd6d79bda63160404b01";
|
||||
sha256 = "12nxm40sjx2jzl1j2czzanmk9b922dvfh64ndvgf5z4g4cviv33x";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-uRPmZE/xc0yeurBZ4rnrZua5d4lbPwStMUacFgbquuk=";
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
||||
buildInputs = [ libcap_ng libseccomp ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "vhost-user virtio-fs device backend written in Rust";
|
||||
homepage = "https://gitlab.com/virtio-fs/virtiofsd";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user