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";