sway: disable vrr
This commit is contained in:
		
							parent
							
								
									789b651b4f
								
							
						
					
					
						commit
						b2b50bf5e3
					
				
					 3 changed files with 0 additions and 45 deletions
				
			
		| 
						 | 
					@ -130,7 +130,6 @@
 | 
				
			||||||
      coreutils
 | 
					      coreutils
 | 
				
			||||||
      gnugrep
 | 
					      gnugrep
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
    vrr-fullscreen = [ ];
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // lib.mapAttrs import_script {
 | 
					  // lib.mapAttrs import_script {
 | 
				
			||||||
    wdmenu = ./wdmenu.nix;
 | 
					    wdmenu = ./wdmenu.nix;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,28 +0,0 @@
 | 
				
			||||||
#!/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
 | 
					 | 
				
			||||||
| 
						 | 
					@ -69,7 +69,6 @@ in
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
        output = {
 | 
					        output = {
 | 
				
			||||||
          "*" = {
 | 
					          "*" = {
 | 
				
			||||||
            adaptive_sync = "off";
 | 
					 | 
				
			||||||
            bg = "${theme.background} fill";
 | 
					            bg = "${theme.background} fill";
 | 
				
			||||||
            mode = "1920x1080@144.000Hz";
 | 
					            mode = "1920x1080@144.000Hz";
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
| 
						 | 
					@ -116,21 +115,6 @@ in
 | 
				
			||||||
      indicator = true;
 | 
					      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;
 | 
					    services.gpg-agent.pinentryPackage = pkgs.pinentry-all;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xdg.configFile."OpenTabletDriver/settings.json".source = ./open-tablet-driver.json;
 | 
					    xdg.configFile."OpenTabletDriver/settings.json".source = ./open-tablet-driver.json;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue