Compare commits
2 Commits
ecb13d8b19
...
2de8603b49
| Author | SHA1 | Date | |
|---|---|---|---|
| 2de8603b49 | |||
| 13524322a2 |
@@ -118,7 +118,6 @@ in {
|
|||||||
format-icons = {
|
format-icons = {
|
||||||
"music" = "";
|
"music" = "";
|
||||||
"gaming" = "";
|
"gaming" = "";
|
||||||
"steam" = "";
|
|
||||||
"default" = "";
|
"default" = "";
|
||||||
"active" = "";
|
"active" = "";
|
||||||
|
|
||||||
@@ -164,13 +163,15 @@ in {
|
|||||||
show-special = true;
|
show-special = true;
|
||||||
special-visible-only = true;
|
special-visible-only = true;
|
||||||
all-outputs = true;
|
all-outputs = true;
|
||||||
ignore-workspaces = ["^([0-9]+|gaming|steam|music)$"];
|
ignore-workspaces = ["^([0-9]+|gaming|music)$"];
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
"special:youtube" = "";
|
"special:youtube" = "";
|
||||||
|
"special:steam" = "";
|
||||||
"special:custom" = "";
|
"special:custom" = "";
|
||||||
"special:preload" = "";
|
"special:preload" = "";
|
||||||
"youtube" = "";
|
"youtube" = "";
|
||||||
|
"steam" = "";
|
||||||
"custom" = "";
|
"custom" = "";
|
||||||
"preload" = "";
|
"preload" = "";
|
||||||
"default" = "";
|
"default" = "";
|
||||||
|
|||||||
+29
-28
@@ -4,12 +4,6 @@
|
|||||||
myConfig,
|
myConfig,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
games = [
|
|
||||||
"Deadlock"
|
|
||||||
"project8"
|
|
||||||
"citadel"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Games that should have `stayfocused` applied (to avoid multi-monitor focus issues)
|
# Games that should have `stayfocused` applied (to avoid multi-monitor focus issues)
|
||||||
stayFocusedGames = [
|
stayFocusedGames = [
|
||||||
"Deadlock"
|
"Deadlock"
|
||||||
@@ -19,18 +13,11 @@
|
|||||||
|
|
||||||
mkGameRules = selector: [
|
mkGameRules = selector: [
|
||||||
"monitor 0, ${selector}"
|
"monitor 0, ${selector}"
|
||||||
"workspace name:gaming, ${selector}"
|
|
||||||
"fullscreen, ${selector}"
|
"fullscreen, ${selector}"
|
||||||
"immediate, ${selector}"
|
"immediate, ${selector}"
|
||||||
|
"tile, ${selector}"
|
||||||
];
|
];
|
||||||
|
|
||||||
manualGameRules = lib.flatten (map (
|
|
||||||
game:
|
|
||||||
(mkGameRules "title:^(${game})$")
|
|
||||||
++ (mkGameRules "class:^(${game})$")
|
|
||||||
)
|
|
||||||
games);
|
|
||||||
|
|
||||||
stayFocusedRules = lib.flatten (map (
|
stayFocusedRules = lib.flatten (map (
|
||||||
game: [
|
game: [
|
||||||
"stayfocused, title:^(${game})$"
|
"stayfocused, title:^(${game})$"
|
||||||
@@ -61,39 +48,53 @@ in {
|
|||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
workspace = [
|
workspace = [
|
||||||
"name:gaming, monitor:0, default:true"
|
"name:gaming, monitor:0, default:true"
|
||||||
"name:steam, monitor:0, default:true"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
exec-once = [
|
exec-once = [
|
||||||
# No longer launching steam on startup
|
"[workspace special:steam silent] uwsm app -- steam"
|
||||||
# "[workspace special:steam silent] uwsm app -- steam"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
bindd = [
|
bindd = [
|
||||||
# "SUPER, A, Toggle Steam, togglespecialworkspace, steam"
|
"SUPER, A, Toggle Steam, togglespecialworkspace, steam"
|
||||||
# "SUPER SHIFT, A, Move to Steam Special Workspace, movetoworkspace, special:steam"
|
"SUPER SHIFT, A, Move to Steam Special Workspace, movetoworkspace, special:steam"
|
||||||
"SUPER, G, Switch to Gaming Workspace, workspace, name:gaming"
|
"SUPER, G, Switch to Gaming Workspace, workspace, name:gaming"
|
||||||
"SUPER, A, Switch to Steam Workspace, workspace, name:steam"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
windowrulev2 =
|
windowrulev2 =
|
||||||
[
|
[
|
||||||
# --- STEAM LAUNCHER RULES ---
|
"plugin:hyprbars:nobar, class:^(steam)$"
|
||||||
"workspace name:steam, class:^(steam)$"
|
"plugin:hyprbars:nobar, class:^(steam_app_\\d+)$"
|
||||||
# "workspace special:steam silent, class:^(steam)$"
|
|
||||||
|
# --- STEAM GENERAL RULES ---
|
||||||
|
# Default ALL steam class windows to float. This catches all dialogs & properties windows.
|
||||||
|
"float, class:^(steam)$"
|
||||||
|
# Suppress focus stealing from dialogs/etc.
|
||||||
"noinitialfocus, class:^(steam)$"
|
"noinitialfocus, class:^(steam)$"
|
||||||
"suppressevent activate, class:^(steam)$"
|
"suppressevent activate, class:^(steam)$"
|
||||||
|
|
||||||
|
# --- STEAM CLIENT OVERRIDE ---
|
||||||
|
# Override the float for the main Steam client, tile it, and move it to the special workspace.
|
||||||
|
"tile, class:^(steam)$, title:^(Steam)$"
|
||||||
|
"workspace special:steam, class:^(steam)$, title:^(Steam)$"
|
||||||
|
|
||||||
|
# --- STEAM GAME OVERRIDES ---
|
||||||
|
# Override the float for actual games and move them to the gaming workspace.
|
||||||
|
# 1. Auto-detected steam_app games (like Deadlock).
|
||||||
|
"tile, class:^(steam_app_\\d+)$"
|
||||||
|
"workspace name:gaming, class:^(steam_app_\\d+)$"
|
||||||
|
|
||||||
|
# 2. Behavior-detected manual games (e.g. ARC Raiders).
|
||||||
|
# This moves any steam game to the gaming workspace and tiles it when it becomes fullscreen.
|
||||||
|
"tile, class:^(steam)$, fullscreen:1"
|
||||||
|
"workspace name:gaming, class:^(steam)$, fullscreen:1"
|
||||||
]
|
]
|
||||||
# --- AUTO-DETECTED GAMES ---
|
# Other auto-detected non-steam games
|
||||||
++ (mkGameRules "class:^steam_app_\\d+$")
|
|
||||||
++ (mkGameRules "class:^(gamescope)$")
|
++ (mkGameRules "class:^(gamescope)$")
|
||||||
++ (mkGameRules "class:^(lutris)$")
|
++ (mkGameRules "class:^(lutris)$")
|
||||||
++ (mkGameRules "class:^(heroic)$")
|
++ (mkGameRules "class:^(heroic)$")
|
||||||
++ (mkGameRules "class:^wine-.*$")
|
++ (mkGameRules "class:^wine-.*$")
|
||||||
++ (mkGameRules "title:^Wine .*$")
|
++ (mkGameRules "title:^Wine .*$")
|
||||||
# --- MANUAL GAMES ---
|
# Stayfocused rules
|
||||||
++ manualGameRules
|
|
||||||
# --- STAYFOCUSED FOR SELECTED GAMES ---
|
|
||||||
++ stayFocusedRules;
|
++ stayFocusedRules;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user