How to set Keybindings for LCD Brightness in i3wm
#1
Information 
Greetings,

The purpose of this tutorial blog post is to describe how to setup LCD brightness keybindings in the i3wm tiling window manager , on your Pinebook.

Below I am providing a script which will be placed in /usr/local/sbin/lcd_bright.sh , which may be used to set the brightness of the LCD display in increments of +10 or -10.  I will describe the step(s) necessary to activate the script via /etc/sudoers.d so that the keybindings ( bindsym ) in the i3 config can run as sudo without needing to prompt for the password !

First, the scripts... the first one is the lcd_bright.sh ( which does the work ) and the second one is the source file for /etc/sudoers.d which allows the bindsym to call lcd_bright.sh without a password. 

lcd_bright.sh

Code:
#!/bin/bash
#
# lcd_bright.sh v0.1a
#
# Mark H. Harris
# 08/31/2017
#
# Usage:  lcd_bright.sh <U|D> <value>
#

MODE=`echo $1 |tr '[a-z]' '[A-Z]'`
LCDVALUE=`cat /sys/class/backlight/lcd0/brightness`

if [ "$MODE" = "U" ]
then
  NEWVALUE=$(( $LCDVALUE + $2 ))
  if [ $NEWVALUE -le 100 ]
  then
      echo $NEWVALUE > /sys/class/backlight/lcd0/brightness
      echo $NEWVALUE
  else
      echo $LCDVALUE
  fi
else
  NEWVALUE=$(( $LCDVALUE - $2 ))
  if [ $NEWVALUE -gt 30 ]
  then
      echo $NEWVALUE > /sys/class/backlight/lcd0/brightness
      echo $NEWVALUE
  else
      echo $LCDVALUE
  fi
fi

lcd_bright_rules

Code:
# lcd bright rules
Cmnd_Alias LCDBRIGHT=/usr/local/sbin/lcd_bright.sh
ALL ALL=NOPASSWD: LCDBRIGHT

Procedure:

Open a terminal and access root with :

       sudo  -i

Place the  lcd_bright.sh  script in the  /usr/local/sbin/  directory.

Set the owner and group with :

       cd  /usr/local/sbin/

       chown  root  lcd_bright.sh

       chgrp  root  lcd_bright.sh

Make the script executable with :

       chmod  0754  lcd_bright.sh

Place the  lcd_bright_rules  file in the  /etc/sudoers.d/  directory.

Set the owner and group with :

       cd  /etc/sudoers.d

       chown  root  lcd_bright_rules

       chgrp  root  lcd_bright_rules

Set special read permissions with :

       chmod  0440  lcd_bright_rules



At this point the system is setup to use the  lcd_bright.sh  script.  The last step(s) necessary is to set the keybindings in the i3wm config file.

You do not need root permissions to do the following;  if you're still in root#  please exit.

       exit

Change into the i3wm config directory for your default  pine64  i3 user with :

       cd  ~/.config/i3/

Use your favorite editor to edit the  config  file.

Somewhere near the end of the other bindsym entries ,  add these two definitions :


Code:
bindsym $mod+Shift+u exec sudo /usr/local/sbin/lcd_bright.sh u 10
bindsym $mod+Shift+d exec sudo /usr/local/sbin/lcd_bright.sh d 10


Save the file.

Re-read the config file with :

       mod + Shift + c

Restart the i3wm tiling window manager with :

       mod + Shift + r

Congratulations!  Your brightness keybindings are set for i3wm.

To use the keybindings use :

       mod + Shift + u        (turns up the LCD backlight by 10)

       mod + Shift + d        (turns down the LCD backlight by 10)

Shy
marcushh777    Cool

please join us for a chat @  irc.pine64.xyz:6667   or ssl  irc.pine64.xyz:6697

( I regret that I am not able to respond to personal messages;  let's meet on irc! )


Messages In This Thread
How to set Keybindings for LCD Brightness in i3wm - by MarkHaysHarris777 - 09-01-2017, 03:21 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
Information How to set the Power Off key binding in i3wm for the Pinebook MarkHaysHarris777 4 7,383 12-25-2018, 05:57 AM
Last Post: binholz
  How to Configure Screen Brightness in mate on pinebook via terinal? shirman 6 9,022 12-02-2018, 05:37 AM
Last Post: mikee3000
Information How to manage Wifi in xenial-i3 i3wm image UPDATE MarkHaysHarris777 4 6,526 09-14-2017, 12:12 AM
Last Post: dahni
Information i3wm xenial-i3 introduction -- mate terminal & battery monitor MarkHaysHarris777 4 6,960 08-31-2017, 04:47 AM
Last Post: shirman

Forum Jump:


Users browsing this thread: 1 Guest(s)