Compare commits

..

2 Commits

Author SHA1 Message Date
Nathan McCarty a798185a17
Format 2023-05-07 02:16:39 -04:00
Nathan McCarty c24e1ca432
Automount user tmpfs 2023-05-07 02:16:31 -04:00
5 changed files with 43 additions and 31 deletions

View File

@ -68,11 +68,11 @@ in with lib; {
gtk = true; gtk = true;
}; };
extraSessionCommands = '' extraSessionCommands = ''
# Make qt theming work # Make qt theming work
export QT_QPA_PLATFORMTHEME="qt5ct" export QT_QPA_PLATFORMTHEME="qt5ct"
# Prepare for wob # Prepare for wob
export WOBSOCK="$XDG_RUNTIME_DIR/wob.sock" export WOBSOCK="$XDG_RUNTIME_DIR/wob.sock"
rm -rf $WOBSOCK && mkfifo $WOBSOCK rm -rf $WOBSOCK && mkfifo $WOBSOCK
''; '';
config = { config = {
# Startup wob # Startup wob

View File

@ -41,6 +41,7 @@
}; };
config = { config = {
setupGrub = false; setupGrub = false;
userUid = "1001";
nix = { nix = {
autoUpdate = true; autoUpdate = true;
autoGC = true; autoGC = true;

View File

@ -138,6 +138,12 @@ in {
description = "Whether to install the 'nathan' user"; description = "Whether to install the 'nathan' user";
type = lib.types.bool; type = lib.types.bool;
}; };
homeTmpfs = mkEnableOptionT "~/.tmp as tmpfs";
userUid = mkOption {
default = "1000";
example = "1000";
description = "UID of the user";
};
# Should we harden this system? # Should we harden this system?
# On by default # On by default
harden = mkEnableOptionT "Apply system hardening"; harden = mkEnableOptionT "Apply system hardening";

View File

@ -19,8 +19,7 @@ in with lib; {
}; };
environment.shells = [ pkgs.fish ]; environment.shells = [ pkgs.fish ];
users = { users = {
# If we install the user and the system is hardended, then disable mutable users mutableUsers = !nc.installUser;
mutableUsers = !(nc.installUser && nc.harden);
# Configure our user, if enabled # Configure our user, if enabled
users."${nc.user}" = mkMerge [ users."${nc.user}" = mkMerge [
(mkIf nc.installUser { (mkIf nc.installUser {
@ -65,5 +64,11 @@ in with lib; {
(mkIf config.nathan.hardware.amdPassthrough { (mkIf config.nathan.hardware.amdPassthrough {
users.users."${nc.user}".extraGroups = [ "libvirtd" ]; users.users."${nc.user}".extraGroups = [ "libvirtd" ];
}) })
(mkIf (nc.homeTmpfs && nc.installUser) {
fileSystems."/home/${nc.user}/.tmp" = {
fsType = "tmpfs";
options = [ "mode=700" "uid=${nc.userUid}" "gid=100" ];
};
})
]; ];
} }

View File

@ -1,29 +1,29 @@
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland-scanner { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland-scanner
, libxkbcommon, mesa, pixman, xorg, wayland, gtest }: , libxkbcommon, mesa, pixman, xorg, wayland, gtest }:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "sommelier"; pname = "sommelier";
version = "104.0"; version = "104.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "akvadrako"; owner = "akvadrako";
repo = "sommelier"; repo = "sommelier";
rev = "31a42a2f8c649ae82a3239284bced7ef39a569ef"; rev = "31a42a2f8c649ae82a3239284bced7ef39a569ef";
sha256 = "sha256-ZTvH4mn7eK2e/1u6FVVpR7aaeAQ+JxSa4nhXWLxSfvo="; sha256 = "sha256-ZTvH4mn7eK2e/1u6FVVpR7aaeAQ+JxSa4nhXWLxSfvo=";
}; };
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ]; nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
buildInputs = [ libxkbcommon mesa pixman wayland xorg.libxcb ]; buildInputs = [ libxkbcommon mesa pixman wayland xorg.libxcb ];
doCheck = true; doCheck = true;
nativeCheckInputs = [ gtest ]; nativeCheckInputs = [ gtest ];
meta = with lib; { meta = with lib; {
homepage = homepage =
"https://chromium.googlesource.com/chromiumos/platform2/+/refs/heads/main/vm_tools/sommelier/"; "https://chromium.googlesource.com/chromiumos/platform2/+/refs/heads/main/vm_tools/sommelier/";
description = "Nested Wayland compositor with support for X11 forwarding"; description = "Nested Wayland compositor with support for X11 forwarding";
maintainers = with maintainers; [ qyliss ]; maintainers = with maintainers; [ qyliss ];
license = licenses.bsd3; license = licenses.bsd3;
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }