1
0
Fork 1
mirror of https://github.com/Zerodya/hyprfreeze.git synced 2024-09-19 15:33:20 +02:00
Utility to suspend a game process (and other programs) in Hyprland.
Find a file
2024-02-10 19:23:05 +01:00
hyprfreeze Check if hyprprop is installed 2024-02-10 19:23:05 +01:00
LICENSE Create LICENSE 2023-10-13 12:37:05 +02:00
README.md Change notification timeout to 5 seconds 2023-12-06 14:35:47 +01:00

hyprfreeze

Hyprfreeze is a utility to suspend a game process (and other programs) in Hyprland.

Useful to:

  • Pause single-player games that can't be paused (like Dark Souls)
  • Pause during cutscenes to read the subtitles or when something urgent comes up
  • Save system resources (excluding RAM) if you need them for another computer task, or if the game's pause menu uses too many

Installation

Arch Linux

Hyprfreeze is available in AUR.

Dependencies

  • hyprland (to get the pid of the active window with hyprctl)
  • jq (to parse json)
  • hyprprop (to get the pid of a window by selecting it with your mouse)

Manual

Clone this repo and symlink the hyprfreeze script to a directory in your PATH:

$ git clone https://github.com/Zerodya/hyprfreeze.git Hyprfreeze
$ ln -s $(pwd)/Hyprfreeze/hyprfreeze $HOME/.local/bin
$ chmod +x Hyprfreeze/hyprfreeze

Usage

Add a bind in your Hyprland config to pause the current active window:

# ~/.config/hypr/hyprland.conf

...

# Toggle freeze on active window
bind = , PAUSE, exec, hyprfreeze -a

Available flags

-h, --help            show help message
-a, --active          suspend/resume active window
-p, --pid             suspend/resume by process id
-n, --name            suspend/resume by process name/command
-r, --prop            suspend/resume by clicking on window
-s, --silent          don't send notification
-t, --notif-timeout   notification timeout in milliseconds (default 5000)
--info                show information about the process
--dry-run             doesn't actually suspend/resume a process, useful with --info

Examples:

# Pause game by process name
hyprfreeze -n eldenring.exe
# Get info about a process by clicking on its window, without suspending it
hyprfreeze -r --info --dry-run

Disclaimer

There is always the risk, although slim, that an application may crash.

This is intrinsically related to modifying running processes and is not something that Hyprfreeze can prevent.

Please make sure to save your data before using hyprfreeze.

Known issues

  • Pausing Wine/Proton games will cause mouse input to not work inside XWayland windows #1
    • Workaround 1: Run the game in gamescope
    • Workaround 2: Pause the game from a terminal hyprfreeze -n eldenring.exe
  • Pausing Linux native games (e.g. Minecraft) may cause sound to stop in other apps #2