diff --git a/hosts/phantom/forgejo.nix b/hosts/phantom/forgejo.nix index cd95461..eefb003 100644 --- a/hosts/phantom/forgejo.nix +++ b/hosts/phantom/forgejo.nix @@ -13,6 +13,9 @@ in virtualHosts.${cfg.settings.server.DOMAIN} = { forceSSL = true; enableACME = true; + extraConfig = '' + client_max_body_size 512M; + ''; locations."/".proxyPass = "http://localhost:${toString srv.HTTP_PORT}"; }; }; diff --git a/hosts/phantom/invidious.nix b/hosts/phantom/invidious.nix index 8c1e0f6..739d9ae 100644 --- a/hosts/phantom/invidious.nix +++ b/hosts/phantom/invidious.nix @@ -1,12 +1,20 @@ +{ config, ... }: { services.invidious = { enable = true; domain = "invidious.lelgenio.com"; nginx.enable = true; - port = 10601; settings.db = { user = "invidious"; dbname = "invidious"; }; }; + + services.nginx = { + clientMaxBodySize = "100m"; + virtualHosts.${config.services.invidious.domain} = { + enableACME = true; + forceSSL = true; + }; + }; } diff --git a/hosts/phantom/nginx.nix b/hosts/phantom/nginx.nix index bfff32c..0153fa6 100644 --- a/hosts/phantom/nginx.nix +++ b/hosts/phantom/nginx.nix @@ -11,7 +11,6 @@ recommendedTlsSettings = true; recommendedOptimisation = true; recommendedGzipSettings = true; - clientMaxBodySize = "512M"; }; # Redirect *lelgenio.xyz -> *lelgenio.com diff --git a/scripts/default.nix b/scripts/default.nix index 01ce2b8..72f9cc6 100644 --- a/scripts/default.nix +++ b/scripts/default.nix @@ -130,6 +130,7 @@ coreutils gnugrep ]; + vrr-fullscreen = [ ]; } // lib.mapAttrs import_script { wdmenu = ./wdmenu.nix; diff --git a/scripts/vrr-fullscreen b/scripts/vrr-fullscreen new file mode 100755 index 0000000..8413923 --- /dev/null +++ b/scripts/vrr-fullscreen @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# List of supported outputs for VRR +output_vrr_whitelist=( + "DP-1" + "DP-2" +) + +# Toggle VRR for fullscreened apps in prespecified displays to avoid stutters while in desktop +swaymsg -t subscribe -m '[ "window" ]' | while read window_json; do + window_event=$(echo ${window_json} | jq -r '.change') + + # Process only focus change and fullscreen toggle + if [[ $window_event = "focus" || $window_event = "fullscreen_mode" ]]; then + output_json=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused == true)') + output_name=$(echo ${output_json} | jq -r '.name') + + # Use only VRR in whitelisted outputs + if [[ ${output_vrr_whitelist[*]} =~ ${output_name} ]]; then + output_vrr_status=$(echo ${output_json} | jq -r '.adaptive_sync_status') + window_fullscreen_status=$(echo ${window_json} | jq -r '.container.fullscreen_mode') + + # Only update output if nesseccary to avoid flickering + [[ $output_vrr_status = "disabled" && $window_fullscreen_status = "1" ]] && swaymsg output "${output_name}" adaptive_sync 1 + [[ $output_vrr_status = "enabled" && $window_fullscreen_status = "0" ]] && swaymsg output "${output_name}" adaptive_sync 0 + fi + fi +done diff --git a/user/sway/default.nix b/user/sway/default.nix index 9fcf2a0..3e86994 100644 --- a/user/sway/default.nix +++ b/user/sway/default.nix @@ -69,6 +69,7 @@ in }; output = { "*" = { + adaptive_sync = "off"; bg = "${theme.background} fill"; mode = "1920x1080@144.000Hz"; }; @@ -115,6 +116,21 @@ in indicator = true; }; + systemd.user.services.vrr-fullscreen = { + Unit = { + Description = "Enable VRR for fullscreen windows"; + PartOf = [ "graphical-session.target" ]; + After = [ "graphical-session.target" ]; + }; + Service = { + ExecStart = "${lib.getExe pkgs.vrr-fullscreen}"; + Restart = "on-failure"; + }; + Install = { + WantedBy = [ "sway-session.target" ]; + }; + }; + services.gpg-agent.pinentryPackage = pkgs.pinentry-all; xdg.configFile."OpenTabletDriver/settings.json".source = ./open-tablet-driver.json; diff --git a/user/thunar.nix b/user/thunar.nix index 26b90e9..2a9fe5b 100644 --- a/user/thunar.nix +++ b/user/thunar.nix @@ -10,12 +10,6 @@ }) ]; - wayland.windowManager.sway = { - extraConfig = '' - exec_always systemctl --user import-environment PATH - ''; - }; - xdg.configFile = { "Thunar/".source = ./thunar; }; diff --git a/user/waybar/default.nix b/user/waybar/default.nix index c94edf5..d2dc661 100644 --- a/user/waybar/default.nix +++ b/user/waybar/default.nix @@ -106,7 +106,7 @@ in }; clock = { interval = 60; - format = "{:L%H:%M %a %d/%m}"; + format = "{:%H:%M %a %d/%m}"; tooltip-format = "{calendar}"; calendar = { mode = "year";