From 6fc1fb122d4fcc88cfc6a41282acae45c105e940 Mon Sep 17 00:00:00 2001 From: itsscb Date: Tue, 26 Aug 2025 20:55:40 +0200 Subject: [PATCH] feat: monitors n stuff --- bin/comarchy-disable-internal-monitor | 35 +++++++++++++++++++++++++++ config/hypr/monitors.conf | 2 +- default/hypr/bindings/utilities.conf | 3 +++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100755 bin/comarchy-disable-internal-monitor diff --git a/bin/comarchy-disable-internal-monitor b/bin/comarchy-disable-internal-monitor new file mode 100755 index 00000000..9f7ecdca --- /dev/null +++ b/bin/comarchy-disable-internal-monitor @@ -0,0 +1,35 @@ + +#!/usr/bin/env bash +# ~/.local/bin/hypr‑auto‑internal.sh +# Disable the laptop panel (eDP‑1) when any other monitor is connected, +# otherwise enable it. + +set -u + +INT="eDP-1" # internal monitor name – change if yours differs + +log() { + notify-send "$*" +} + +# ------------------------------------------------- +# 1️⃣ Get current monitor list +# ------------------------------------------------- +MONS=$(hyprctl monitors 2>/dev/null || true) + +# ------------------------------------------------- +# 2️⃣ Decide whether an external monitor is present +# ------------------------------------------------- +# Any line that is *not* the internal monitor counts as external. +if echo "$MONS" | grep -qv "$INT"; then + # At least one external monitor is connected + log "External monitor detected → disabling $INT" + hyprctl keyword monitor $INT, disable 2>/dev/null + hyprctl keyword workspace r[1-5] m[DP-4] + hyprctl keyword workspace r[6-0] m[DP-5] +else + # No external monitor → make sure the internal one is on + log "No external monitor → enabling $INT" + hyprctl keyword monitor $INT, preferred,auto,1.5 2>/dev/null + hyprctl reload 2>/dev/null +fi diff --git a/config/hypr/monitors.conf b/config/hypr/monitors.conf index e6636923..4ee04f46 100644 --- a/config/hypr/monitors.conf +++ b/config/hypr/monitors.conf @@ -5,7 +5,7 @@ # Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K. env = GDK_SCALE,2 -monitor=,preferred,auto-left,auto +monitor=,preferred,auto-right,auto # Good compromise for 27" or 32" 4K monitors (but fractional!) # env = GDK_SCALE,1.75 diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index a4bef9f3..9dfb29d1 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -38,3 +38,6 @@ bindd = CTRL ALT, PRINT, Screen record display, exec, omarchy-cmd-screenrecord o # Color picker bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a + +# Disable internal monitor +bindd = SUPER CTRL, F12, Disable Internal Monitor, exec, comarchy-disable-internal-monitor