aboutsummaryrefslogtreecommitdiff
path: root/dot_config/hypr/executable_games.py
diff options
context:
space:
mode:
authorpablu <me@pablu.de>2026-03-22 18:04:35 +0100
committerpablu <me@pablu.de>2026-03-22 18:04:35 +0100
commit1d5ca0aa2971d2485575ed7c5efad17144cb3fb1 (patch)
tree325017afee1cc8cde6808fa390e26394528bdfc1 /dot_config/hypr/executable_games.py
Initial commit
Diffstat (limited to 'dot_config/hypr/executable_games.py')
-rw-r--r--dot_config/hypr/executable_games.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/dot_config/hypr/executable_games.py b/dot_config/hypr/executable_games.py
new file mode 100644
index 0000000..3d59232
--- /dev/null
+++ b/dot_config/hypr/executable_games.py
@@ -0,0 +1,56 @@
+#!/usr/bin/python3
+
+games = [
+ ("all", "Stardew Valley"),
+ ("ic", "steam_app_.*", "tile", "max"),
+ ("all", "ffxiv*", "sf"),
+ ("all", "Hollow Knight"),
+ ("all", "HELLDIVERS*"),
+ ("all", "CS", "tile", "max"),
+ ("title", "Warhammer 40.000: Darktide", "tile", "max")
+]
+
+def main():
+ f = open("config/games.conf", "w")
+ conf: str = "# Auto generated window rules for Games\n\n"
+ for game in games:
+ if type(game) is not tuple:
+ continue
+
+ name = game[1]
+ match game[0]:
+ case "ic":
+ selector = f"match:initial_class \"{name}\""
+ case "title":
+ selector = f"match:title \"{name}\""
+ case "class":
+ selector = f"match:class \"{name}\""
+ case "all":
+ selector = f"match:title \"{name}\", match:class \"{name}\""
+ case s:
+ print(f"Could not find selector for \"{s}\"")
+ continue
+
+ for setting in game[2::]:
+ match setting:
+ case "sf":
+ conf += f"windowrule = stay_focused on, {selector}\n"
+ case "tile":
+ conf += f"windowrule = tile on, {selector}\n"
+ case "max":
+ conf += f"windowrule = maximize on, {selector}\n"
+ case s:
+ print(f"Could not find setting \"{s}\"")
+
+
+ conf += f"""windowrule = fullscreen on, {selector}
+windowrule = monitor DP-3, {selector}
+windowrule = allows_input on, {selector}\n
+"""
+ f.write(conf)
+ f.close()
+
+
+if __name__ == "__main__":
+ main()
+