This commit is contained in:
PapaTutuWawa 2023-04-01 00:12:40 +02:00
parent 1de2a362d7
commit b716c8a288
12 changed files with 193 additions and 57 deletions

View File

@ -56,7 +56,7 @@
]; ];
}; };
in { in {
inherit (pkgs) wayqt dfl-ipc dfl-applications dfl-utils qtgreet; inherit (pkgs) wayqt dfl-ipc dfl-applications dfl-utils qtgreet xwaylandvideobridge obs-websocket obs-cli;
}; };
}); });
} }

View File

@ -58,7 +58,7 @@
programs = { programs = {
#bluray.enable = true; #bluray.enable = true;
mpv = { mpv = {
primaryScreen = "DP-2"; primaryScreen = "DP-1";
enable = true; enable = true;
}; };
sway.enable = false; sway.enable = false;
@ -116,14 +116,14 @@
}; };
virtualisation = { virtualisation = {
#podman = { podman = {
# enable = true;
# dockerCompat = true;
#};
docker = {
enable = true; enable = true;
storageDriver = "btrfs"; dockerCompat = true;
}; };
# docker = {
# enable = true;
# storageDriver = "btrfs";
# };
}; };
boot = let boot = let
@ -192,6 +192,13 @@
udev.extraRules = '' udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52b", ATTR{power/wakeup}="disabled", ATTR{driver/1-7/power/wakeup}="disabled" ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52b", ATTR{power/wakeup}="disabled", ATTR{driver/1-7/power/wakeup}="disabled"
''; '';
hardware = {
openrgb = {
enable = true;
motherboard = "amd";
};
};
}; };
hardware = { hardware = {

View File

@ -101,42 +101,17 @@ in {
# See https://github.com/NixOS/nixpkgs/commit/a506f9c79700255c215dddb53455d5e2bed6c1af # See https://github.com/NixOS/nixpkgs/commit/a506f9c79700255c215dddb53455d5e2bed6c1af
displayManager = { displayManager = {
sddm = {
enable = true;
};
defaultSession = lib.mkIf cfg.wayland.enable "plasmawayland"; defaultSession = lib.mkIf cfg.wayland.enable "plasmawayland";
#sessionPackages = lib.mkIf cfg.mobile.enable [ pkgs.libsForQt5.plasma5.plasma-mobile ]; #sessionPackages = lib.mkIf cfg.mobile.enable [ pkgs.libsForQt5.plasma5.plasma-mobile ];
}; };
}; };
users.users.greeter = {
home = "/var/lib/greeter";
createHome = true;
isSystemUser = true;
};
services.greetd = {
enable = true;
settings = let
swayGreeterConfig = pkgs.writeText "sway-config" ''
exec "${pkgs.qtgreet}/bin/qtgreet -d ${config.users.users.greeter.home}/data; ${pkgs.sway}/bin/swaymsg exit"
bindsym Mod4+shift+e exec ${pkgs.sway}/bin/swaynag \
-t warning \
-m 'What do you want to do?' \
-b 'Poweroff' 'systemctl poweroff' \
-b 'Reboot' 'systemctl reboot'
input * {
xkb_layout de
}
'';
in {
default_session = {
command = "${pkgs.sway}/bin/sway --config ${swayGreeterConfig}";
};
};
};
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-kde ]; extraPortals = with pkgs; [ xdg-desktop-portal-kde xdg-desktop-portal-gtk ];
}; };
environment = { environment = {

View File

@ -13,6 +13,8 @@ in {
lutris-free-wrapped lutris-free-wrapped
# prismlauncher-wrapped
(pkgs.callPackage ./wrapper.nix { (pkgs.callPackage ./wrapper.nix {
inherit (pkgs) retroarch; inherit (pkgs) retroarch;
cores = with pkgs.libretro; [ cores = with pkgs.libretro; [
@ -22,6 +24,13 @@ in {
#steam-wrapped # Custom package #steam-wrapped # Custom package
(pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [
obs-vaapi obs-vkcapture obs-pipewire-audio-capture
];
})
obs-cli
gamescope gamescope
corectrl corectrl

View File

@ -16,26 +16,32 @@ in {
}; };
config = lib.mkIf true { config = lib.mkIf true {
environment.etc."logid.cfg".text = '' systemd.services.logiops = {
description = "An unofficial userspace driver for HID++ Logitech devices";
wantedBy = [ "default.target" ];
serviceConfig = let
logiopsConfig = pkgs.writeText "logiops.cfg" ''
devices: ( devices: (
{ {
name: "Wireless Mouse MX Master 3"; name: "Wireless Mouse MX Master 3";
hiresscroll: { hiresscroll: {
hires: true; hires: true;
target: false;
};
smartshift: {
on: true;
threshold: 30;
default_threshold: 30;
}; };
dpi: 800; dpi: 800;
} }
); );
''; '';
in {
systemd.services.logiops = {
description = "An unofficial userspace driver for HID++ Logitech devices";
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple"; Type = "simple";
ExecStart = let ExecStart = let
renice = lib.optionalString cfg.renice "${pkgs.coreutils-full}/bin/nice -n ${builtins.toString cfg.reniceValue}"; renice = lib.optionalString cfg.renice "${pkgs.coreutils-full}/bin/nice -n ${builtins.toString cfg.reniceValue}";
in "${renice} ${pkgs.logiops}/bin/logid"; in "${renice} ${pkgs.logiops}/bin/logid -c ${logiopsConfig}";
}; };
}; };
}; };

View File

@ -26,14 +26,17 @@ in {
enableDesktopFile = true; enableDesktopFile = true;
}; };
/*minecraft-wrapped = wrapInSandbox { # prismlauncher-wrapped = wrapInSandbox {
name = "minecraft-launcher"; # name = "prismlauncher";
package = prev.minecraft; # binary = "${prev.prismlauncher}/bin/prismlauncher";
binaryName = "minecraft-launcher"; # launchScriptName = "prismlauncher-wrapped";
mountInHome = [ ".local/share/minecraft" ".minecraft" ]; # mountInHome = [".local/share/PrismLauncher"];
additionalBlacklist = [ "/mnt" ]; # additionalMounts = [
chdirTo = "/home/$USER"; # "/etc/profile"
};*/ # ];
# additionalBlacklist = [ "/mnt" ];
# chdirTo = "/home/$USER";
# };
steam-wrapped = wrapInSandbox { steam-wrapped = wrapInSandbox {
name = "steam-wrapped"; name = "steam-wrapped";

View File

@ -1,7 +1,14 @@
final: prev: final: prev: {
{
gajim = prev.gajim.overrideAttrs (old: { gajim = prev.gajim.overrideAttrs (old: {
# version = "1.7";
# format = "pyproject";
# src = builtins.fetchurl {
# url = "https://gajim.org/downloads/1.7/gajim-1.7.1.tar.gz";
# sha256 = "sha256:1ij3fnfpyjnb84haqwjy23bjpi6bk37k1h8bbvk9y6296lsnm8mr";
# };
# Enable notification sounds # Enable notification sounds
propagatedBuildInputs = old.propagatedBuildInputs ++ [ prev.gsound ]; propagatedBuildInputs = old.propagatedBuildInputs ++ [ prev.gsound ];
}); });

View File

@ -0,0 +1,24 @@
{
stdenv
, lib, fetchFromGitLab
, cmake, extra-cmake-modules, pkg-config
, qtbase, qtx11extras, wrapQtAppsHook
, kpipewire, plasma-framework
, xorg
}:
stdenv.mkDerivation rec {
pname = "xwaylandvideobridge";
version = "5.27.3";
src = fetchFromGitLab {
owner = "davidedmundson";
repo = "xwaylandvideobridge";
rev = "b876b5f3ee5cc810c99b08e8f0ebb29553e45e47";
domain = "invent.kde.org";
sha256 = "sha256-gfQkOIZegxdFQ9IV2Qp/lLRtfI5/g6bDD3XRBdLh4q0=";
};
buildInputs = [ qtbase qtx11extras plasma-framework xorg.xcbproto kpipewire cmake pkg-config ];
nativeBuildInputs = [ wrapQtAppsHook extra-cmake-modules ];
}

View File

@ -44,6 +44,16 @@ let
dfl-applications = prev.libsForQt5.callPackage development/cpp/dfl-app { dfl-applications = prev.libsForQt5.callPackage development/cpp/dfl-app {
inherit dfl-ipc; inherit dfl-ipc;
}; };
kpipewire = prev.libsForQt5.kpipewire.overrideAttrs (old: {
src = prev.fetchFromGitLab {
owner = "plasma";
repo = "kpipewire";
rev = "ed99b94be40bd8c5b7b2a2f17d0622f11b2ab7fb";
domain = "invent.kde.org";
sha256 = "sha256-KhmhlH7gaFGrvPaB3voQ57CKutnw5DlLOz7gy/3Mzms=";
};
});
in { in {
inherit discord-system-electron dfl-ipc dfl-applications dfl-utils wayqt; inherit discord-system-electron dfl-ipc dfl-applications dfl-utils wayqt;
@ -101,4 +111,12 @@ in {
qtgreet = prev.libsForQt5.callPackage applications/desktop/qtgreet { qtgreet = prev.libsForQt5.callPackage applications/desktop/qtgreet {
inherit dfl-applications dfl-utils dfl-ipc wayqt; inherit dfl-applications dfl-utils dfl-ipc wayqt;
}; };
kpipewire = prev.libsForQt5.callPackage development/cpp/libkpipewire {};
xwaylandvideobridge = prev.libsForQt5.callPackage applications/desktop/xwaylandvideobridge {
inherit kpipewire;
};
#obs-websocket = prev.libsForQt5.callPackage obs/obs-websocket {};
obs-cli = prev.callPackage obs/obs-cli {};
} }

View File

@ -0,0 +1,21 @@
{
stdenv
, lib, fetchFromGitLab
, cmake, pkg-config
, qtbase, wrapQtAppsHook
, kwayland, ki18n, kcoreaddons
, pipewire, libepoxy, ffmpeg
}:
stdenv.mkDerivation rec {
pname = "xwaylandvideobridge";
version = "5.27.3";
src = builtins.fetchurl {
url = "https://download.kde.org/stable/plasma/${version}/${pname}-${version}.tar.xz";
sha256 = "sha256:0b95jjkfpkvc2ld3x6p7nw6kn6fkqba9q7x95ywvgag2b00jdb56";
};
buildInputs = [ qtbase kwayland ki18n kcoreaddons pipewire libepoxy ffmpeg cmake pkg-config ];
nativeBuildInputs = [ wrapQtAppsHook ];
}

View File

@ -0,0 +1,27 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "obs-cli";
version = "0.5.0";
src = fetchFromGitHub {
owner = "muesli";
repo = "obs-cli";
rev = "v${version}";
hash = "sha256-4tjS+PWyP/T0zs4IGE6VQ5c+3tuqxlBwfpPBVEcim6c=";
};
vendorHash = "sha256-RGpkqX97zalZv4aDfihJBKO1l2O8tcxn0I1SPL1WIg8=";
ldflags = [ "-s" "-w" ];
meta = with lib; {
description = "OBS-cli is a command-line remote control for OBS";
homepage = "https://github.com/muesli/obs-cli";
license = licenses.mit;
maintainers = with maintainers; [ ];
};
}

View File

@ -0,0 +1,39 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake, ninja, pkg-config
, qtbase, wrapQtAppsHook
, nlohmann_json, asio, websocketpp
, obs-studio
}:
stdenv.mkDerivation rec {
pname = "obs-websocket";
version = "4.9.1-compat";
src = fetchFromGitHub {
owner = "obsproject";
repo = pname;
rev = "${version}";
sha256 = "14xhk6d7j2q5swfj0b7jdgmswjdkqjnj3q11qs5vbh93hk30jyvh";
};
nativeBuildInputs = [ cmake ninja pkg-config wrapQtAppsHook ];
buildInputs = [ obs-studio qtbase nlohmann_json asio websocketpp ];
cmakeFlags = [
"-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
"-Wno-dev"
];
preConfigure = ''
cp ${obs-studio.src}/cmake/external/ObsPluginHelpers.cmake cmake/FindLibObs.cmake
'';
meta = with lib; {
description = "Remote-control of OBS Studio through WebSocket";
homepage = "https://github.com/obsproject/obs-websocket";
license = licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ];
};
}