1

On my OS, there is no way to manually set the brightness, so I wrote a small shell script to do so:

#!/bin/sh
echo -n "Set Brightness To (from 0 to 100):"
read answer
echo $((answer * 8 + 50))>/sys/class/backlight/intel_backlight/brightness

But the problem is that running the script directly from the GUI runs it without prompting for user input on the terminal (answer = 0), and right clicking to run in terminal is necessary for the script to prompt for user input.

How can one display the terminal directly when executing said script?

1
  • A comment suggesting an alternative approach. A) Use brightnessctl. B) Bind the brightnessctl using some incremental brighter/dimmer to a pair of keys.
    – stevea
    Commented Sep 15 at 18:16

2 Answers 2

1

Prompting for input

Method #1

Using xterm you can simply run your application as an argument to whatever terminal emulator you're using. Here I'm using xterm:

$ xterm "./bright.bash"

Which will result in your application running inside of a xterm terminal:

                                ss1

The same method with gnome-terminal.

$ gnome-terminal -e ./bright.bash

                                  ss2

Method #2 - zenity

You could use the GUI toolkit zenity to open a dialog box asking for a response to be typed in, then take what was typed in and use the rest of your script to set it.

Example

$ cat brightness.bash
#!/bin/bash
answer="$(zenity --entry --title='Brightness setting' \
    --text='Set Brightness To (from 0 to 100):')"
echo $((answer * 8 + 50))>/sys/class/backlight/intel_backlight/brightness

If we run it, but merely echo the last line out instead of running it we can see what it'll do:

$ ./brightness.bash
echo 450 > /sys/class/backlight/intel_backlight/brightness

The UI looks like this:

                             ss2

1
  • @Jesse_b - yeah if you search the site I've recommended it before for similar types of work.
    – slm
    Commented Aug 5, 2018 at 0:05
0

Another way to do this is to invoke the terminal program and tell it to run the command. Most terminals have an option to do this; for xterm (which is pretty old-school), you can do

xterm -e PROGRAMNAME (replacing programname with the command)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .