mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 11:36:20 +00:00
improvements
This commit is contained in:
@@ -1,70 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.desktops.gamescope;
|
||||
in
|
||||
{
|
||||
options.desktops.gamescope.enable = mkEnableOption "Enable the SteamOS Compositor as a desktop environment";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
gamescopeSession = {
|
||||
enable = true;
|
||||
args = [
|
||||
"--hide-cursor-delay"
|
||||
"3000"
|
||||
"--fadee-out-duration"
|
||||
"200"
|
||||
"--xwayland-count"
|
||||
"2"
|
||||
"-W"
|
||||
(placeholder "SCREEN_WIDTH")
|
||||
"-H"
|
||||
(placeholder "SCREEN_HEIGHT")
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
services = {
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings = rec {
|
||||
initial_session = {
|
||||
command = "${pkgs.hyprland}/bin/Hyprland &> /dev/null";
|
||||
user = username;
|
||||
};
|
||||
default_session = "${pkgs.greetd.tuigreet}/bin/tuigreet";
|
||||
};
|
||||
};
|
||||
|
||||
dbus.enable = true;
|
||||
|
||||
pcscd.enable = true;
|
||||
|
||||
# nautilus on non-gnome
|
||||
gvfs.enable = true;
|
||||
# fix pinentry on non-gnome
|
||||
dbus.packages = with pkgs; [ gcr ];
|
||||
gnome.gnome-online-accounts.enable = true;
|
||||
gnome.evolution-data-server.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
hyprland.enable = true;
|
||||
kdeconnect.enable = true;
|
||||
};
|
||||
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
*/
|
||||
};
|
||||
}
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
let
|
||||
cfg = config.desktops.hyprland;
|
||||
homeConfig = config.home-manager.users.${username};
|
||||
in
|
||||
{
|
||||
options.desktops.hyprland = {
|
||||
@@ -15,12 +16,123 @@ in
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment = {
|
||||
sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
systemPackages = with pkgs; [ glib ];
|
||||
environment.systemPackages = with pkgs; [ glib ];
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
};
|
||||
home-manager.users.${username} = {
|
||||
wayland.windowManager.hyprland = {
|
||||
systemd.enable = false;
|
||||
};
|
||||
home.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GDK_BACKEND = "wayland,x11,*";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
};
|
||||
xdg.configFile."uwsm/env".source = pkgs.writeText "env" (
|
||||
lib.strings.concatLines (
|
||||
lib.attrsets.mapAttrsToList (
|
||||
k: v: "export ${builtins.toString k}=${builtins.toString v}"
|
||||
) config.home-manager.users.${username}.home.sessionVariables
|
||||
)
|
||||
);
|
||||
systemd.user.services = {
|
||||
"flatpak-managed-install".Unit = {
|
||||
After = [ "network-online.target" ];
|
||||
Wants = [ "network-online.target" ];
|
||||
};
|
||||
};
|
||||
/*
|
||||
programs.zsh.initExtraFirst = # sh
|
||||
''
|
||||
if uwsm check may-start; then
|
||||
exec uwsm start hyprland-uwsm.desktop > ${homeConfig.xdg.configHome}/uwsm.log 2> ${homeConfig.xdg.configHome}/uwsm.err
|
||||
fi
|
||||
'';
|
||||
*/
|
||||
};
|
||||
|
||||
systemd.services = {
|
||||
"flatpak-managed-install" = {
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
};
|
||||
greetd.serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
StandardOutput = "journal";
|
||||
StandardError = "journal";
|
||||
TTYReset = false;
|
||||
TTYVHangup = false;
|
||||
TTYVTDisallocate = false;
|
||||
};
|
||||
/*
|
||||
"uwsm-display-manager" = {
|
||||
description = "UWSM Display Manager";
|
||||
conflicts = [ "getty@tty1.service" ];
|
||||
after = [
|
||||
"systemd-user-sessions.service"
|
||||
"plymouth-quit-wait.service"
|
||||
"getty@tty1.service"
|
||||
];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
IgnoreSIGPIPE = "no";
|
||||
SendSIGHUP = "yes";
|
||||
TimeoutStopSec = "30s";
|
||||
KeyringMode = "shared";
|
||||
Restart = "always";
|
||||
RestartSec = "5";
|
||||
StartLimitBurst = "5";
|
||||
StartLimitInterval = "30";
|
||||
};
|
||||
restartIfChanged = false;
|
||||
script = ''
|
||||
${pkgs.sudo}/bin/sudo -u ${username} --login uwsm start hyprland-uwsm.desktop
|
||||
'';
|
||||
environment = {
|
||||
DISPLAY = ":0";
|
||||
# XDG_RUNTIME_DIR = "/run/user/$(id -u ${username})";
|
||||
};
|
||||
aliases = [ "display-manager.service" ];
|
||||
};
|
||||
*/
|
||||
/*
|
||||
"getty@tty1" = {
|
||||
overrideStrategy = "asDropin";
|
||||
description = "Start Hyprland";
|
||||
after = [
|
||||
"sysinit.target"
|
||||
"initrd-switch-root.service"
|
||||
"systemd-udev-trigger.service"
|
||||
"seatd.service"
|
||||
"systemd-logind.service"
|
||||
];
|
||||
wants = [
|
||||
"systemd-udev-trigger.service"
|
||||
"seatd.service"
|
||||
"systemd-logind.service"
|
||||
];
|
||||
unitConfig.ConditionPathExists = "/home/${username}";
|
||||
onFailure = [ "emergency.target" ];
|
||||
serviceConfig.Type = "simple";
|
||||
preStart = "+${pkgs.coreutils}/bin/rm -f /run/nologin";
|
||||
script = ''
|
||||
-${pkgs.util-linux}/bin/agetty -o '-p -f -- \u' --noclear --autologin ${username} %I $TERM StandardOutput=null StandardError=journal
|
||||
'';
|
||||
wantedBy = [
|
||||
"graphical.target"
|
||||
"initrd-switch-root.service"
|
||||
];
|
||||
};
|
||||
*/
|
||||
};
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
@@ -35,38 +147,46 @@ in
|
||||
};
|
||||
|
||||
# https://github.com/sjcobb2022/nixos-config/blob/70fb548b961c19e9855d2de86ee9569a7a88d976/hosts/common/optional/greetd.nix#L23C1-L33C2
|
||||
systemd.services.greetd.serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
StandardOutput = "tty";
|
||||
StandardError = "journal"; # Without this errors will spam on screen
|
||||
# Without these bootlogs will spam on screen
|
||||
TTYReset = true;
|
||||
TTYVHangup = true;
|
||||
TTYVTDisallocate = true;
|
||||
};
|
||||
/*
|
||||
systemd.services = {
|
||||
greetd.serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
StandardOutput = "tty";
|
||||
StandardError = "journal"; # Without this errors will spam on screen
|
||||
# Without these bootlogs will spam on screen
|
||||
TTYReset = true;
|
||||
TTYVHangup = true;
|
||||
TTYVTDisallocate = true;
|
||||
};
|
||||
};
|
||||
*/
|
||||
|
||||
services = {
|
||||
greetd = {
|
||||
enable = true;
|
||||
greeterManagesPlymouth = false;
|
||||
vt = 2;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --asterisks --remember --remember-session --sessions ${pkgs.hyprland}/share/wayland-sessions";
|
||||
initial_session = {
|
||||
command = "uwsm start hyprland-uwsm.desktop";
|
||||
user = username;
|
||||
};
|
||||
default_session = {
|
||||
command = "${lib.getExe pkgs.greetd.tuigreet} --asterisks --remember --user-menu --cmd 'uwsm start hyprland-uwsm.desktop'";
|
||||
user = username;
|
||||
};
|
||||
terminal.switch = false;
|
||||
};
|
||||
};
|
||||
|
||||
dbus.enable = true;
|
||||
|
||||
dbus = {
|
||||
enable = true;
|
||||
implementation = "broker";
|
||||
};
|
||||
pcscd.enable = true;
|
||||
|
||||
# nautilus on non-gnome
|
||||
gvfs.enable = true;
|
||||
# fix pinentry on non-gnome
|
||||
dbus.packages = with pkgs; [ gcr ];
|
||||
gnome.gnome-online-accounts.enable = true;
|
||||
gnome.evolution-data-server.enable = true;
|
||||
};
|
||||
programs.dconf.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user