summaryrefslogtreecommitdiffstatshomepage
path: root/dot_local/share/gnome-shell/extensions/external-display@dotfiles
diff options
context:
space:
mode:
authorsommerfeld <sommerfeld@sommerfeld.dev>2026-09-22 13:57:08 +0100
committersommerfeld <sommerfeld@sommerfeld.dev>2026-09-22 13:57:08 +0100
commit7773d867f6266a5cd72971bfb1256c8976b280f4 (patch)
tree1b7703a6569f0b5ef397217b18e68cb90c5a3dd4 /dot_local/share/gnome-shell/extensions/external-display@dotfiles
parent33406d6cf63fe12e495381511cf6af54704d0933 (diff)
downloaddotfiles-7773d867f6266a5cd72971bfb1256c8976b280f4.tar.gz
dotfiles-7773d867f6266a5cd72971bfb1256c8976b280f4.tar.bz2
dotfiles-7773d867f6266a5cd72971bfb1256c8976b280f4.zip
Prefer external displays on the corporate laptop
Diffstat (limited to 'dot_local/share/gnome-shell/extensions/external-display@dotfiles')
-rw-r--r--dot_local/share/gnome-shell/extensions/external-display@dotfiles/extension.js26
-rw-r--r--dot_local/share/gnome-shell/extensions/external-display@dotfiles/metadata.json7
2 files changed, 33 insertions, 0 deletions
diff --git a/dot_local/share/gnome-shell/extensions/external-display@dotfiles/extension.js b/dot_local/share/gnome-shell/extensions/external-display@dotfiles/extension.js
new file mode 100644
index 0000000..ce32fd9
--- /dev/null
+++ b/dot_local/share/gnome-shell/extensions/external-display@dotfiles/extension.js
@@ -0,0 +1,26 @@
+import Meta from "gi://Meta";
+import { Extension } from "resource:///org/gnome/shell/extensions/extension.js";
+
+export default class ExternalDisplay extends Extension {
+ enable() {
+ this._manager = global.backend.get_monitor_manager();
+ this._signal = this._manager.connect("monitors-changed", () =>
+ this._apply(),
+ );
+ this._apply();
+ }
+
+ _apply() {
+ if (
+ this._manager.has_builtin_panel &&
+ this._manager.can_switch_config() &&
+ this._manager.get_is_builtin_display_on()
+ )
+ this._manager.switch_config(Meta.MonitorSwitchConfigType.EXTERNAL);
+ }
+
+ disable() {
+ this._manager.disconnect(this._signal);
+ this._manager = null;
+ }
+}
diff --git a/dot_local/share/gnome-shell/extensions/external-display@dotfiles/metadata.json b/dot_local/share/gnome-shell/extensions/external-display@dotfiles/metadata.json
new file mode 100644
index 0000000..ab3eba8
--- /dev/null
+++ b/dot_local/share/gnome-shell/extensions/external-display@dotfiles/metadata.json
@@ -0,0 +1,7 @@
+{
+ "uuid": "external-display@dotfiles",
+ "name": "External Display",
+ "description": "Use external displays when connected to a laptop.",
+ "shell-version": ["50"],
+ "version": 1
+}