feat(bbsteamie): add gaming mode button
All checks were successful
Discord / discord commits (push) Has been skipped

This commit is contained in:
matt1432 2024-06-30 02:20:12 -04:00
parent 1bb3f8e5e1
commit 2413c5b74f

View file

@ -1,5 +1,31 @@
{config, ...}: let {
config,
lib,
pkgs,
...
}: let
inherit (config.vars) mainUser; inherit (config.vars) mainUser;
inherit (lib) getExe;
switch-session = pkgs.writeShellApplication {
name = "switch-session";
text = ''
mkdir -p /etc/sddm.conf.d
cat <<EOF | tee /etc/sddm.conf.d/autologin.conf
[Autologin]
User=${mainUser}
Session=$1
Relogin=true
EOF
'';
};
gaming-mode = pkgs.writeShellScriptBin "gaming-mode" ''
sudo ${pkgs.systemd}/bin/systemctl start to-gaming-mode.service
'';
in { in {
# Auto-login to plasma # Auto-login to plasma
services = { services = {
@ -11,16 +37,59 @@ in {
wayland.enable = true; wayland.enable = true;
autoLogin.relogin = true; autoLogin.relogin = true;
}; };
};
autoLogin = {
enable = true;
user = mainUser;
}; };
defaultSession = "plasma"; systemd.services."set-session" = {
wantedBy = ["multi-user.target"];
before = ["display-manager.service"];
path = [switch-session];
script = ''
switch-session "plasma"
'';
}; };
systemd.services."to-gaming-mode" = {
wantedBy = lib.mkForce [];
path = [switch-session];
script = ''
switch-session "gamescope-wayland"
systemctl restart display-manager
sleep 10
switch-session "plasma"
'';
}; };
security.sudo.extraRules = [
{
users = [mainUser];
groups = [100];
commands = [
{
command = "${pkgs.systemd}/bin/systemctl start to-gaming-mode.service";
options = ["SETENV" "NOPASSWD"];
}
];
}
];
home-manager.users.${mainUser}.xdg.desktopEntries."Gaming Mode" = {
name = "Gaming Mode";
exec = getExe gaming-mode;
icon = "steam";
terminal = false;
type = "Application";
};
environment.systemPackages = [
pkgs.firefox
pkgs.wl-clipboard
];
programs = { programs = {
xwayland.enable = true; xwayland.enable = true;
kdeconnect.enable = true; kdeconnect.enable = true;
@ -29,7 +98,6 @@ in {
# Enable flatpak support # Enable flatpak support
services.flatpak.enable = true; services.flatpak.enable = true;
services.packagekit.enable = true; services.packagekit.enable = true;
jovian.steam = { jovian.steam = {
enable = true; enable = true;
user = mainUser; user = mainUser;