--no-lock was recently removed from brew-bundle and is no longer valid.
See Homebrew/homebrew-bundle@98d8ad7#diff-2ba13d1d1d9b7abcde49568b7aec20c97f4541f44f6befd62ac6a4d820ddb7ccL96-L98
* feat: Introduce gamescope-overlay-injector
This is a modified version of @coolavery's script from https://github.com/ValveSoftware/gamescope/issues/835#issuecomment-2496383830
It introduces the `scb` command which is a symlink to `scopebuddy` that will do the whole unset `LD_PRELOAD` for gamescope and re-apply it for `%command%` song and dance.
`scb` can replace `gamescope` in the launch options for games in steam
ex: `gamescope -w 1920 -h 1080 -W 2560 -H 1440 -r 180 --hdr-enabled -- %command% --nointro --etc` --> `scb -w 1920 -h 1080 -W 2560 -H 1440 -r 180 --hdr-enabled -- %command% --nointro --etc`
Furthermore if the user has a config file `~/.config/scopebuddy/scb.conf` it will be sourced before starting gamescope.
If the above file exists and a config with the games AppID exists in `~/.config/scopebuddy/AppID/` then that file will be loaded instead of the `scb.conf` unless a custom one is set through the SCB_CONF env var.
The file can set a `SCB_DEFAULT_ARGS` variable to provide `scb` with default gamescope arguments as long as the user gives `scb` no arguments before the `--` in the launch options, providing __any__ args to `scb` will make it ignore `SCB_DEFAULT_ARGS` completely and use whatever the user provides in the launch options.
This lets the user apply a default set of env vars and gamescope args that they use regularly for games to avoid messes like
`env -u LD_PRELOAD ENABLE_GAMESCOPE_WSI=0 SteamDeck=0 XKB_DEFAULT_LAYOUT=no MANGOHUD_CONFIG=read_cfg,preset=2 gamescope --mangoapp -f -w 2560 -h 1440 -W 2560 -H 1440 -e --force-grab-cursor --hdr-enabled -- env LD_PRELOAD="$LD_PRELOAD" %command%`
Instead they can define the defaults in `~/.config/scopebuddy/scb.conf` like this
```ini
export XKB_DEFAULT_LAYOUT=no
export MANGOHUD_CONFIG=read_cfg,preset=2
SCB_DEFAULT_ARGS="--mangoapp -f -w 2560 -h 1440 -W 2560 -H 1440 -r 180 --force-grab-cursor --hdr-enabled -e --adaptive-sync"
```
now this is simplified in the launch options as
`SteamDeck=0 ENABLE_GAMESCOPE_WSI=0 scb -- %command%`
If the user wants a specific config they do not need to remember for a specific game (in this example warframe) then they can make an AppID config in `~/.config/scopebuddy/AppID/230410.conf`, `230410` is the Steam App ID for warframe. In this we can add
```ini
export MANGOHUD_CONFIG=read_cfg,preset=3
export SteamDeck=0
export ENABLE_GAMESCOPE_WSI=0
SCB_DEFAULT_ARGS="--mangoapp -f -w 1920 -h 1080 -W 2560 -H 1440 -r 60 --force-grab-cursor --hdr-enabled -e --adaptive-sync"
```
So now i can set the launch options for warframe to `scb -- %command%` and it will source `~/.config/scopebuddy/scb.conf` then source `~/.config/scopebuddy/AppID/230410.conf` which will override anything set by `scb.conf` if they touch the same variables, in this example it will upscale the game from 1080p to 1440p and limit refresh rate to 60 while setting the `SteamDeck` and `ENABLE_GAMESCOPE_WSI` environment variables, change MangoHud to preset 3 and keep the XDG keyboard layout set by `scb.conf`.
This also means it will run any bash code written in the config file before launching the game too!
Then to not use the gamescope args defined in `SCB_DEFAULT_ARGS` the user just has to supply any gamescope arg like so, as they clearly do not want the defaults then. (current implementation still will apply default env vars though)
`scb -r 180 -- %command%`
The user can also define a different file that contains different defaults too by overriding `SCB_CONF` with the new filename.
`SCB_CONF=1080_180hz_upscaled_hdr.conf scb -- %command%`
this will then load the config from `~/.config/scopebuddy/1080_180hz_upscaled_hdr.conf` instead
RFC:
* Unsure if we should make the script not load the config file at all if a gamescope arg is provided or if we should make it just load the env vars
* ~~Should we preemptively have this named something else in prep for upstream fixing this issue?~~
PROS:
* Fixes overlay when using nested gamescope in most titles
* Gives users a command to use for using nested gamescope with a default set of env vars and args (giving this a purpose once it is fixed upstream)
Limitations:
* ~~`%command%` has to be in double quotes, args after `"%command%"` does not need to be quoted unless you would normally~~ fixed with 58f5bf648d
* does not fix the overlay in all games (usually games where it didn't work to begin with)
* `gamemode.conf` will be forced as the only possible default config when running inside gamemode (appid configs will still be loaded as usual if they exist)
Co-authored-by: Avery <git@avery.cafe>
* feat: only load default args if the user supplies none, but do load default env vars
* fix: output each line from gamescope-overlay-injector.gamescope.out until xwayland is initialized
* feat: Use a fifo file so we dont end up filling memory by accident
Co-authored-by: Zeglius <33781398+Zeglius@users.noreply.github.com>
* feat: rename to scopebuddy
* feat: add GAMESCOPE_BIN env var
according to @tulilirockz it will help making this work inside flatpak
Co-authored-by: Tulip Blossom <tulilirockz@outlook.com>
* chore: improve wording
* feat: make SCB_CONFFILE configurable through env vars
For advanced users
* fix: remove rogue $ in example config
* fix(scopebuddy): double quoting %command% is no longer required
* chore: remove quoted %command% from example
* chore(scopebuddy): rename SCB_CONFFILE to SCB_CONF for clairity and less to type for overriding and renamd SCB_CONFIG to SCB_CONFIGFILE for clairity in code
* feat: add support for automatic loading of configs based on Steam AppID
example:
throw a config named `230410.conf` into `~/.config/scopebuddy/AppID/` and it will automatically be loaded instead of `scb.conf`
as long as the user does not specify a custom file through the SCB_CONF env var
* chore(scopebuddy): shellcheck cleanup
* chore: remove old references to GOI
* feat: add SCB_NOSCOPE override to launch %command% without gamescope
@wolfyreload wanted to use this nonsense in gamemode :P
* feat(scopebuddy): add separate default conf file for SCB_NOSCOPE=1
* feat(scopebuddy): add support for usage inside gamemode
* chore(scopebuddy): clarify advanced example text
* fix(scopebuddy): HDR now works with gamescope spawned by scopebuddy
---------
Co-authored-by: Avery <git@avery.cafe>
Co-authored-by: Zeglius <33781398+Zeglius@users.noreply.github.com>
Co-authored-by: Tulip Blossom <tulilirockz@outlook.com>
Tested-by: Crono <39300993+EPOCHvoyager@users.noreply.github.com>
Tested-by: wolfyreload <open.chords.app@gmail.com>
* feat: toggle-wol ujust script now dynamically detects active network interface on run
* feat: add service, disable in containerfile, adj toggle wol ujust
* feat: adj containerfile, add system file for force-wol
* Update 81-bazzite-fixes.just
Co-authored-by: HikariKnight <2557889+HikariKnight@users.noreply.github.com>
* fix: changed wording of enable at boot option for wol
* fix: make force-wol executable
* fix: populate force-wol
* fix: make wol executable
* fix: change wording for clarity
---------
Co-authored-by: HikariKnight <2557889+HikariKnight@users.noreply.github.com>
* chore: Bump media-automount-generator 0.2.3 -> 0.2.4
This fixes /dev/dm-X devices not being excluded
* chore: Bump media-automount-generator 0.2.3 -> 0.2.5
Fixes a typo in the installer at 0.2.4
* chore: Bump media-automount-generator 0.2.3 -> 0.2.6
Fixes a typo in the installer at 0.2.5