mirror of
https://github.com/lhns/steam-frame-nix.git
synced 2026-10-06 02:00:13 +02:00
Launchers, VR "+" menu: module header comments point to the docs
The patch list, keyring summary, triggers and icon fallback history are in docs/launchers.md, docs/launcher-menu.md and next to the code they describe.
This commit is contained in:
1 parent
b0ca57d4bd
commit
9cd22f047d
2 files changed
+17
-38
No files matched your search
@@ -1,24 +1,8 @@
|
|||||||
# The VR dashboard's "+" menu (non-Steam programs). Steam lists them in GLib
|
# The VR dashboard's "+" menu (launcherMenu.*, docs/launcher-menu.md): Steam
|
||||||
# hash-table order (random-looking). Steam UI patches in SharedJSContext, each
|
# UI patches in SharedJSContext (launcher-menu/<patch>/), each registered
|
||||||
# registered only when its option is set, reverted when unset (next switch):
|
# only while its option is set (its unpatch runs on the next switch), and the
|
||||||
# - order/: sorts ScanForInstalledNonSteamApps() by name;
|
# icon fallbacks: Breeze icons linked into hicolor, hints from
|
||||||
# - pinned-desktop/: hides Desktop in the list, pins a proxy above/below it;
|
# launcher-menu/icon-fallbacks.sh. Tested with Steam client 1790377368.
|
||||||
# - launch/: wraps LaunchNonSteamApp (menu-only) to close the menu and/or
|
|
||||||
# debounce repeated launches;
|
|
||||||
# - grid/: programs as a grid of tiles, optionally maxRows visible;
|
|
||||||
# - show-all/: empties the list Steam hides without Developer Mode.
|
|
||||||
# Tested with Steam client 1790377368.
|
|
||||||
#
|
|
||||||
# iconFallbacks (not a patch): Steam resolves Icon= names only in hicolor (and
|
|
||||||
# pixmaps), so Breeze-only icons (Konsole, KDE System Settings) are missing.
|
|
||||||
# Home Manager links a fixed list of them from nixpkgs' Breeze into
|
|
||||||
# ~/.local/share/icons/hicolor/scalable/apps (a missing name fails the
|
|
||||||
# build); on switch, icon-fallbacks.sh --suggest only prints hints (names to
|
|
||||||
# add, names no longer needed), and hicolor's mtime is bumped when the list
|
|
||||||
# changed so a running Steam rescans. Until 2026-09 a script made the links
|
|
||||||
# on switch (removed by steam-frame-nix-cleanup, or before checkLinkTargets
|
|
||||||
# where Home Manager takes over). iconFallbacks was a list of names until
|
|
||||||
# 2026-09; a list fails with a pointer to enable/extra (until ~2026-12).
|
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.steamFrame.launcherMenu;
|
cfg = config.steamFrame.launcherMenu;
|
||||||
@@ -128,7 +112,8 @@ in {
|
|||||||
Hicolor links for program icons only Breeze has, so the "+" menu shows
|
Hicolor links for program icons only Breeze has, so the "+" menu shows
|
||||||
them (Steam looks only in hicolor).
|
them (Steam looks only in hicolor).
|
||||||
'';
|
'';
|
||||||
# Formerly a list of names: fail with a message instead (see assertion).
|
# A list of names until 2026-09: fails with a pointer to enable/extra
|
||||||
|
# (see the assertion; until ~2026-12).
|
||||||
type = lib.types.coercedTo (lib.types.listOf lib.types.str)
|
type = lib.types.coercedTo (lib.types.listOf lib.types.str)
|
||||||
(names: { legacyList = names; })
|
(names: { legacyList = names; })
|
||||||
(lib.types.submodule {
|
(lib.types.submodule {
|
||||||
@@ -181,7 +166,8 @@ in {
|
|||||||
value.source = breezeIcon name;
|
value.source = breezeIcon name;
|
||||||
}) icons);
|
}) icons);
|
||||||
|
|
||||||
# The script's links of 2026-09 where Home Manager links now.
|
# Until 2026-09 a script made these links on switch: replaced by Home
|
||||||
|
# Manager's (steam-frame-nix-cleanup removes the rest).
|
||||||
config.steamFrame.cleanup.migrateLinks = map (name: {
|
config.steamFrame.cleanup.migrateLinks = map (name: {
|
||||||
path = "${iconDir}/scalable/apps/${name}.svg";
|
path = "${iconDir}/scalable/apps/${name}.svg";
|
||||||
target = "/nix/store/*-breeze-icons-*/share/icons/breeze/apps/*";
|
target = "/nix/store/*-breeze-icons-*/share/icons/breeze/apps/*";
|
||||||
|
|||||||
+8
-15
@@ -1,18 +1,11 @@
|
|||||||
# Launchers: an app's own desktop entry (from its Flatpak, Nix package or a
|
# Launchers (launchers.<desktop ID>, docs/launchers.md): the app's own desktop
|
||||||
# host file), rewritten with extra environment, options, wrappers, MIME
|
# entry, rewritten (launchers/rewrite.awk), under the same desktop ID in
|
||||||
# defaults and wallet access, under the same desktop ID in
|
# ~/.local/share/applications. Package entries are rewritten at build time;
|
||||||
# ~/.local/share/applications, so it replaces the original in the KDE menu
|
# Flatpak and host file entries only exist at runtime, so
|
||||||
# and the "+" menu (which reads only that directory).
|
# steam-frame-nix-launchers (launchers/generate.sh) writes them to
|
||||||
# - Flatpak/host file entries only exist at runtime: steam-frame-nix-launchers
|
# <session.runtimeDir>/steam-frame-nix/applications (tmpfs), where the Home
|
||||||
# (launchers/generate.sh + rewrite.awk) writes them to
|
# Manager links point. Replaces the keyring module (steamFrame.keyring.*),
|
||||||
# <session.runtimeDir>/steam-frame-nix/applications (tmpfs), on switch, at
|
# whose options fail with the new form.
|
||||||
# login and when Flatpak installs/updates apps (path unit); the Home
|
|
||||||
# Manager links point there.
|
|
||||||
# - Package entries are rewritten at build time.
|
|
||||||
# - keyring: one kwalletd6 for both sessions (the outer bus), the wallet's
|
|
||||||
# D-Bus names for Flatpaks, --password-store=kwallet6 for Electron.
|
|
||||||
# Replaces the keyring module (steamFrame.keyring.*), whose options fail with
|
|
||||||
# the new form.
|
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.steamFrame.launchers;
|
cfg = config.steamFrame.launchers;
|
||||||
|
|||||||
Reference in new issue
Block a user