this post was submitted on 14 May 2025
56 points (100.0% liked)

Linux

56009 readers
1114 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
 

I created a simple Bash script that will always disable the default/internal monitor on your laptop when using AR glasses (or any other external monitor). I find this useful for when using AR glasses such as the XReal One which allows you to change the mode from regular mode to ultra-wide mode and when doing this, it will act as your unplugging the XReal ones and plugging in XReal one again in a new mode, causing the interal laptop display to become enabled.

To keep the laptop display always off, weather the laptop lid is either closed or open, this simple bash script will always disable the laptop screen every X seconds (You can change it by changing the wait variable)

Simply copy this script and create a new bash script such as disable-display.sh, make the script file executable and add it to your startup applications and it will run in the background. You will need to run xrandr command with all of your displays enabled to get the names of the displays and change the variable names in the script accordingly.

NOTE: This script may not work with a full Wayland setup and may only work on X11.

Enjoy

#!/bin/bash

#RUN xrandr TO GET THE NAMES OF THE DISPLAYS AND SET THE VARIABLES TO THESE NAMES

readonly default_display="eDP"
readonly external_display="USB-C-0"

readonly wait=5

while true; do
    #Check if there is an external display connected
    if xrandr | grep -q "$external_display connected"; then
        #Disable the internal display
        xrandr --output $default_display --off
    fi

    sleep $wait
done
you are viewing a single comment's thread
view the rest of the comments
[–] smeg@feddit.uk 3 points 1 month ago (7 children)

I'd write

while true; do
    X
done

for the same reason I'd write

if [ something ]; then
    X
fi

or in another language

if (something) {
    X
}

Because it's all part of the same statement and having a single line with just do or { seems silly and implies (to me) that the lines aren't related.

[–] oshu@lemmy.world 1 points 1 month ago* (last edited 1 month ago) (5 children)

I feel exactly the opposite.

while true do stuff done

looks much more clean to me.

[–] oshu@lemmy.world 1 points 1 month ago (4 children)

It just looks weird to me to stick a semicolon into the middle of a line when a compound command isn't actually needed.

[–] smeg@feddit.uk 1 points 1 month ago (1 children)

So you'd rather it all be on one line? I'd only do that if it's a very simple command, otherwise you're just making the code harder to read.

[–] oshu@lemmy.world 1 points 1 month ago* (last edited 1 month ago) (1 children)

No the opposite. I think more shorter lines makes it easier to read than fewer longer lines.

[–] smeg@feddit.uk 1 points 1 month ago (1 children)
while true; do

isn't exactly harder to read than

while true
do

though, is it? And going back to my original point, I don't like while true being on its own as to me it looks like it's meant to be a separate statement rather than part of the do/done block.

[–] oshu@lemmy.world 1 points 1 month ago

Its a personal style choice.

With a blank line before the 'while' and another after the 'done' its a nice little easy to identify block. I don't know how the 'while' would look like its not a part of that block.

A midline semicolon just looks ugly to me so I don't do it unless it is the only way to make a statement work.

load more comments (2 replies)
load more comments (2 replies)
load more comments (3 replies)