Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Mon 19 Nov 2018, 01:06
All times are UTC - 4
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Desktop
Brightness & colour temperature control for desktop PCs
Post new topic   Reply to topic View previous topic :: View next topic
Page 4 of 6 [84 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6 Next
Author Message
Mike Walsh


Joined: 28 Jun 2014
Posts: 4380
Location: King's Lynn, UK.

PostPosted: Mon 08 Oct 2018, 06:57    Post subject:  

(deleted - n/a)
_________________
MY PUPPY PACKAGES | 'Thanks' are always appreciated!
--------------------------------------


Last edited by Mike Walsh on Tue 09 Oct 2018, 19:38; edited 2 times in total
Back to top
View user's profile Send private message Visit poster's website 
MochiMoppel


Joined: 26 Jan 2011
Posts: 1679
Location: Japan

PostPosted: Mon 08 Oct 2018, 09:02    Post subject:  

greengeek wrote:
Do you have a test pet that I could trial on Slacko 5.6? (I am not keen to add sct or yad). cheers!

Sorry, no pet, just a testscript. I haven't tested extensively since I don't need and use it. IIRC worked OK on my Slacko 5.6.
Uses gtkdialog and Xdialog.
Supports more than 1 attached monitor (e.g. Laptop/Docking station + external monitor)
Supports Up/Down keys
Exits when focus is reset to window or desktop

I tested with a traybutton in JWM. No icon, just a Unicode symbol:
Code:
<TrayButton label="◑">exec:/usr/bin/mm_brightness_slider</TrayButton>


The script:
Code:
#!/bin/bash
ALIVE=$(xrandr --verbose | tr "\n" "\x0" | sed '   #replace linefeeds with NULL characters, thus putting the whole output on a single line
s/\x0[A-Z]/\n&/g      #xrandr output is indented. Only 'Screen' and Monitors appear left aligned, i.e they follow immediately after a linefeed. This command adds a 'real' lf before them
s/\x0//g' | sed -r '   #remove all NULL characters and pipe to another sed in order to detect newly inserted LFs
/Brightness/!d         #remove all lines not containing Brightness (leaving only monitors set 'on')
')
MON=$(echo "$ALIVE" | awk '{print $1}')      #may produce more than 1 monitor
if [ $(echo "$MON" | wc -l) -gt 1 ];then   #if more than 1, ask!
   XLIST=
   for monitor in $MON ;do
   XLIST="$XLIST $monitor $monitor off"
   done
   MON=$(Xdialog --title "Brightness" --under-mouse --stdout --no-tags --radiolist "Please select monitor" x 4 $XLIST)
   [ $? != 0 ] && exit
fi
BrCur=$(echo  "$ALIVE" | sed -nr "s/$MON.*Brightness[: ]*([0-9.]*).*/\1/p" )
BrMax=1
BrMin=0.1
export STARTTIME=$(date +%s%2N)   #work around for bug that immediately fires focus-out-event (= exit) when slider opened on a desktop with no windows
echo -n '
<window  type-hint="6" margin="0" window_position="2">
   <vscale range-value="'$BrCur'" range-min="'$BrMin'" range-max="'$BrMax'" range-step="0.05" width-request="28" height-request="200" inverted="true">
      <variable>vSLIDER</variable>
      <action>xrandr --output "'$MON'" --brightness $vSLIDER</action>
   </vscale>
   <action signal="focus-out-event" condition="command_is_true(N=$(date +%s%2N);[ $((N-STARTTIME)) -gt 150 ] && echo true)">exit:</action>
</window>'|gtkdialog  -s
mm_brightness_slider.png
 Description   
 Filesize   9.58 KB
 Viewed   214 Time(s)

mm_brightness_slider.png

Back to top
View user's profile Send private message 
greengeek


Joined: 20 Jul 2010
Posts: 5288
Location: Republic of Novo Zelande

PostPosted: Mon 08 Oct 2018, 14:36    Post subject:  

MochiMoppel wrote:
I tested with a traybutton in JWM. No icon, just a Unicode symbol:
Code:
<TrayButton label="◑">exec:/usr/bin/mm_brightness_slider</TrayButton>

My slider seems to have lost it's bottom. Is that something peculiar with my setup?
slider_R.jpg
 Description   
 Filesize   7.75 KB
 Viewed   185 Time(s)

slider_R.jpg

slider_L.jpg
 Description   
 Filesize   19.9 KB
 Viewed   185 Time(s)

slider_L.jpg

Back to top
View user's profile Send private message 
MochiMoppel


Joined: 26 Jan 2011
Posts: 1679
Location: Japan

PostPosted: Tue 09 Oct 2018, 10:56    Post subject:  

greengeek wrote:
Is that something peculiar with my setup?
Definitely. In a pristine Slacko 5.6. the whole slider would be displayed. Your screenshot looks very strange. IMO this can only happen when the selected screen resolution and the physical resolution of the monitor don't match or when the wm is buggy. A window manager should never ever open a window off screen. Which JWM version do you use?
Back to top
View user's profile Send private message 
fabrice_035


Joined: 28 Apr 2014
Posts: 534
Location: Bretagne / France

PostPosted: Tue 09 Oct 2018, 11:44    Post subject:  

hey,

Not working for me

Code:

(gtkdialog:5862): Gtk-CRITICAL **: IA__gtk_vscale_new_with_range: assertion 'step != 0.0' failed

(gtkdialog:5862): Gtk-CRITICAL **: IA__gtk_range_set_value: assertion 'GTK_IS_RANGE (range)' failed
**
ERROR:variables.c:189:variables_new_with_widget: assertion failed: (widget != NULL)
./add.sh: line 27:  5861 Done                    echo -n '
<window  type-hint="6" margin="0" window_position="2">
   <vscale range-value="'$BrCur'" range-min="'$BrMin'" range-max="'$BrMax'" range-step="0.05" width-request="28" height-request="200" inverted="true">
      <variable>vSLIDER</variable>
      <action>xrandr --output "'$MON'" --brightness $vSLIDER</action>
   </vscale>
   <action signal="focus-out-event" condition="command_is_true(N=$(date +%s%2N);[ $((N-STARTTIME)) -gt 150 ] && echo true)">exit:</action>
</window>'
      5862 Aborted                 | gtkdialog -s


I use that, my old tiny brightness control

Code:
#!/bin/sh

# mini tool ! Easy change luminosity (mouse wheel)
#
# !!!! right for DELL XPS 1640 !!!!
#
#  14 fev 2016

b=`cat /sys/class/backlight/acpi_video0/actual_brightness `

lumi () {
if [ "$hs" -lt "0" ] ; then
hs="1"
echo $(( $b + $hs )) > /sys/class/backlight/acpi_video0/brightness
exit 0
fi
echo $(( $b + $hs )) > /sys/class/backlight/acpi_video0/brightness

}
export -f lumi

GTKDIALOG=gtkdialog

MAIN_DIALOG='
<window title="Lum" decorated="false"  skip_taskbar_hint="true"  window_position="2">
   
<vbox border-width="1" spacing="1">
   <hbox homogeneous="true">
<button use-stock="true" >  <input file stock="gtk-quit"></input> </button>
            <hscale space-expand="true" space-fill="true" range-min="1"  range-max="16" range-value="'$b'"  range-step="1" tooltip-text="change luminosity">
               <variable>hs</variable>
            <action>lumi</action>
            </hscale>
         </hbox>
         </vbox>
   <variable>MAIN_DIALOG</variable>
</window>
'
export MAIN_DIALOG
case $1 in
   -d | --dump) echo "$MAIN_DIALOG" ;;
   *) $GTKDIALOG  --program=MAIN_DIALOG ;;
esac

Back to top
View user's profile Send private message 
fredx181


Joined: 11 Dec 2013
Posts: 3539
Location: holland

PostPosted: Tue 09 Oct 2018, 12:09    Post subject:  

fabrice_035 wrote:
Not working for me

Code:

(gtkdialog:5862): Gtk-CRITICAL **: IA__gtk_vscale_new_with_range: assertion 'step != 0.0' failed

(gtkdialog:5862): Gtk-CRITICAL **: IA__gtk_range_set_value: assertion 'GTK_IS_RANGE (range)' failed
**
ERROR:variables.c:189:variables_new_with_widget: assertion failed: (widget != NULL)
......
......


Yes, tried on a few OS's with same gtkdialog version, on one I get the same errors as above, on the others it works fine.
Can't figure out what causes this.

Fred

_________________
Dog Linux website
Back to top
View user's profile Send private message 
fabrice_035


Joined: 28 Apr 2014
Posts: 534
Location: Bretagne / France

PostPosted: Tue 09 Oct 2018, 12:44    Post subject:  

Must have range-step="1" , range-step=".01" crash

that it's ok :

Code:

#!/bin/bash
ALIVE=$(xrandr --verbose | tr "\n" "\x0" | sed '   #replace linefeeds with NULL characters, thus putting the whole output on a single line
s/\x0[A-Z]/\n&/g      #xrandr output is indented. Only 'Screen' and Monitors appear left aligned, i.e they follow immediately after a linefeed. This command adds a 'real' lf before them
s/\x0//g' | sed -r '   #remove all NULL characters and pipe to another sed in order to detect newly inserted LFs
/Brightness/!d         #remove all lines not containing Brightness (leaving only monitors set 'on')
')
MON=$(echo "$ALIVE" | awk '{print $1}')      #may produce more than 1 monitor
if [ $(echo "$MON" | wc -l) -gt 1 ];then   #if more than 1, ask!
   XLIST=
   for monitor in $MON ;do
   XLIST="$XLIST $monitor $monitor off"
   done
   MON=$(Xdialog --title "Brightness" --under-mouse --stdout --no-tags --radiolist "Please select monitor" x 4 $XLIST)
   [ $? != 0 ] && exit
fi
BrCur=$(echo  "$ALIVE" | sed -nr "s/$MON.*Brightness[: ]*([0-9.]*).*/\1/p" )
BrMax=9
BrMin=1
export STARTTIME=$(date +%s%2N)   #work around for bug that immediately fires focus-out-event (= exit) when slider opened on a desktop with no windows
echo -n '
<window  type-hint="6" margin="0" window_position="2">
   <vscale range-value="'$BrCur'" range-min="'$BrMin'" range-max="'$BrMax'" range-step="1" width-request="28" height-request="200" inverted="true">
      <variable>vSLIDER</variable>
      <action>xrandr --output "'$MON'" --brightness "'0.'"$vSLIDER</action>
   </vscale>
   <action signal="focus-out-event" condition="command_is_true(N=$(date +%s%2N);[ $((N-STARTTIME)) -gt 150 ] && echo true)">exit:</action>
</window>'|gtkdialog  -s
Back to top
View user's profile Send private message 
fredx181


Joined: 11 Dec 2013
Posts: 3539
Location: holland

PostPosted: Tue 09 Oct 2018, 13:05    Post subject:  

fabrice_035 wrote:
Must have range-step="1" , range-step=".01" crash

that it's ok :
....


That works, but then the maximum brightness to adjust is only 0.90

I think I found why it didn't work on one OS for me, I had that one set to Dutch language.
When I do e.g:
Code:
LANG=C /usr/bin/mm_brightness_slider

Then the original script from MochiMoppel works fine for me.
EDIT: Or add on top of script:
Code:
export LANG=C


EDIT: Just to mention, to make it work, I changed first line "tr" command to "busybox tr" (Debian Stretch here)

Fred

Last edited by fredx181 on Tue 09 Oct 2018, 13:25; edited 1 time in total
Back to top
View user's profile Send private message 
fabrice_035


Joined: 28 Apr 2014
Posts: 534
Location: Bretagne / France

PostPosted: Tue 09 Oct 2018, 13:25    Post subject:  

fredx181 wrote:

That works, but then the maximum brightness to adjust is only 0.90


Change BrMax=9 Wink
Back to top
View user's profile Send private message 
fredx181


Joined: 11 Dec 2013
Posts: 3539
Location: holland

PostPosted: Tue 09 Oct 2018, 13:29    Post subject:  

fabrice_035 wrote:
fredx181 wrote:

That works, but then the maximum brightness to adjust is only 0.90


Change BrMax=9 Wink


I did just copy your code as is, so with the BrMax=9, but that value is not full brightness.
EDIT: I think I see what you mean now, change BrMax=9 to something else probably?
Tried changing to BrMax=10, but gives weird result.

_________________
Dog Linux website
Back to top
View user's profile Send private message 
greengeek


Joined: 20 Jul 2010
Posts: 5288
Location: Republic of Novo Zelande

PostPosted: Tue 09 Oct 2018, 14:06    Post subject:  

MochiMoppel wrote:
Which JWM version do you use?
Code:
# jwm -v
JWM vgit-895 by Joe Wingbermuehle
compiled options: confirm fribidi icons jpeg nls png shape svg xft xinerama xpm xrender
system configuration: /etc/system.jwmrc
#


also:
Code:
# xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1280x800       60.0*+
   1024x768       60.0 
   800x600        60.3 
VGA1 disconnected (normal left inverted right x axis y axis)
DVI1 disconnected (normal left inverted right x axis y axis)
#
Back to top
View user's profile Send private message 
greengeek


Joined: 20 Jul 2010
Posts: 5288
Location: Republic of Novo Zelande

PostPosted: Tue 09 Oct 2018, 14:25    Post subject:  

Mike Walsh wrote:
For a lot of the older 5-series Pups (570, 560, 571, Raring, Racy, etc.,) I've used a redshift binary of version 1.8 that I sourced from the Slackware repos via pkgs.org. It doesn't seem to need the addition of anything else;
Hi Mike, I would like to try your sct based utility so I installed your ScreenControl-v1.3-i686.pet but have no clue what to do after that.

Can you give me a quick tute that will help me get this running on Slacko 5.6 please?

The pet seems to include sct
- do I need to install redshift?
- how do i start this screen control utility?

Treat me like a numbskull and hold my hand Razz

cheers!
Back to top
View user's profile Send private message 
Mike Walsh


Joined: 28 Jun 2014
Posts: 4380
Location: King's Lynn, UK.

PostPosted: Tue 09 Oct 2018, 19:34    Post subject:  

greengeek wrote:
Mike Walsh wrote:
For a lot of the older 5-series Pups (570, 560, 571, Raring, Racy, etc.,) I've used a redshift binary of version 1.8 that I sourced from the Slackware repos via pkgs.org. It doesn't seem to need the addition of anything else;
Hi Mike, I would like to try your sct based utility so I installed your ScreenControl-v1.3-i686.pet but have no clue what to do after that.

Can you give me a quick tute that will help me get this running on Slacko 5.6 please?

The pet seems to include sct
- do I need to install redshift?
- how do i start this screen control utility?

Treat me like a numbskull and hold my hand Razz

cheers!


@ Ian:-

Hah. I had in fact already run you up a 'test' package for Screen Control v1.3 - reference the deleted post at the top of this page. Upon re-reading your previous post more closely, it appeared you didn't want to install either 'sct' or 'yad', and were in fact only interested in Mochi's script. So, I deleted the post as being 'n/a' (not applicable), in order to save on forum bandwidth.....something I feel we all of us (myself included here) tend to take way too much for granted.

---------------------------------

That being said, if you'd like to try it out, we need to ascertain one thing - whether you have YAD installed or not - which is needed for this to function correctly.

I know Slacko 5.6 doesn't come with YAD by default, so I have to assume you do not. If you enter this in the terminal:-

Code:
yad --version


.....it'll soon tell us. If you do, you'll get something similar to the following:-

Code:
0.40.0 (GTK+ 2.24.17)
sh-4.1#


.....otherwise, you'll get 'bash:command not found' returned.

----------------------------------------------------------

The 'trial' package I made up for you contains both 'sct' and 'yad'. This way, if you don't like it, simply uninstall, and they'll both be removed again. If you don't have YAD already on your system, then uninstall the ScreenControl .pet you've already got, and install this one instead:-

ScreenControl-v1.3-i686

Otherwise, continue with the version you do have.

Usage:-

You'll need to re-start 'X', first of all, since this is tray-based. That will place a black/yellow 'split-circle' icon in the tray.

Click on it. The 'Brightness' slider will appear. If you want to adjust this, set this first. I like to set this to around 88-90 for night-time use, but you'll find your own preference. To set the colour temperature with 'sct', click on the 'Colour Temperature' button. A second slider control will show, staggered above and to the left of the first. Adjust this to your personal preference (around 3600-4000 is a good starting point). Then click 'Done', and 'Done' again.

If, after this, you want to re-set the brightness, you'll find that it 'unsets' the 'colour temperature. Just bring the colour temp control up again, and 'nudge' it very slightly up or down.....that will restore it. (I never did figure out how to prevent it from doing this; later, I continued developing this using the redshift-cli script Fred wrote for it, so it kinda got forgotten about.)

Still works well enough, though.


Mike. Wink

_________________
MY PUPPY PACKAGES | 'Thanks' are always appreciated!
--------------------------------------

Back to top
View user's profile Send private message Visit poster's website 
MochiMoppel


Joined: 26 Jan 2011
Posts: 1679
Location: Japan

PostPosted: Wed 10 Oct 2018, 00:01    Post subject:  

@greengeek: With JWM vgit-895 you are on your own. Your distro shipped with -835.
The fixed script below *may* solve your issue as it uses a different window type-hint, reducing the chance that the window manager misinterprets it.

@fabrice_035, fredx181: Many thanks for checking and fixing the script. I made the proposed changes and hope that it now works even for European users.

I also tried to make it consistent with the behavior of the retrovol slider. The retrovol slider keeps the button visible and uses the button as a toggle switch. By removing type-hint="6", which puts a window on top of any other window, even on top of the tray, I can prevent the "no open on empty desktop" bug mentioned in the comments. Interestingly the retrovol slider also shows a different behavior when opened on an empty desktop. The button opens/closes as expected, but the slider also closes when the mouse is removed from the slider (=leave-notify-event). Intended behavior or benign bug?

Unlike retrovol the brightness slider also closes on focus out. Personally I like the behavior of retrovol on an empty desktop but I think it may confuse users. This functionality - if desired - can easily be added to the existing focus-out instruction:
Code:
   <action signal="focus-out-event">exit:</action>
   <action signal="leave-notify-event">exit:</action>


The (hopefully working) script now looks like this:
Code:
#!/bin/bash
busybox pkill brightslider && exit
export LANG=C
ALIVE=$(xrandr --verbose | busybox tr "\n" "\x0" | sed '   #replace linefeeds with NULL characters, thus putting the whole output on a single line
s/\x0[A-Z]/\n&/g      #xrandr output is indented. Only 'Screen' and Monitors appear left aligned, i.e they follow immediately after a linefeed. This command adds a 'real' lf before them
s/\x0//g' | sed -r '   #remove all NULL characters and pipe to another sed in order to detect newly inserted LFs
/Brightness/!d         #remove all lines not containing Brightness (leaving only monitors set 'on')
')
MON=$(echo "$ALIVE" | awk '{print $1}')      #may produce more than 1 monitor
if [ $(echo "$MON" | wc -l) -gt 1 ];then   #if more than 1, ask!
   XLIST=
   for monitor in $MON ;do
      XLIST="$XLIST $monitor $monitor off"
   done
   MON=$(Xdialog --title "Brightness" --under-mouse --stdout --no-tags --radiolist "Please select monitor" x 4 $XLIST)
   [ $? != 0 ] && exit
fi
BrCur=$(echo  "$ALIVE" | sed -nr "s/$MON.*Brightness[: ]*([0-9.]*).*/\1/p" )
BrMax=1
BrMin=0.1
echo -n '
<window decorated="false" skip_taskbar_hint="true" margin="0" window_position="2">
   <vscale range-value="'$BrCur'" range-min="'$BrMin'" range-max="'$BrMax'" range-step="0.05" width-request="28" height-request="200" inverted="true">
      <variable>vSLIDER</variable>
      <action>xrandr --output "'$MON'" --brightness $vSLIDER</action>
   </vscale>
   <action signal="focus-out-event">exit:</action>
</window>'| exec -a brightslider gtkdialog  -s


@Mike Walsh: Sorry for the intrusion into your thread. I tried to respond to a request and didn't realize that such a small script can trigger so many issues. I just don't want to leave a mess Laughing
Back to top
View user's profile Send private message 
greengeek


Joined: 20 Jul 2010
Posts: 5288
Location: Republic of Novo Zelande

PostPosted: Wed 10 Oct 2018, 01:50    Post subject:  

MochiMoppel wrote:
With JWM vgit-895 you are on your own. Your distro shipped with -835.
The fixed script below *may* solve your issue as it uses a different window type-hint, reducing the chance that the window manager misinterprets it.
Thank you - unfortunately it did not change my symptom so I will need to review the reasons why I changed to jwm 895.

Also - the script does not work the same way my usual method does - the script seems to alter the gamma instead of backlight intensity. This gives an unnatural blue hue at lower intensities. Have I misunderstood what it is intended to do?
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 4 of 6 [84 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Desktop
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0896s ][ Queries: 12 (0.0134s) ][ GZIP on ]