Montag, 25. Januar 2016

xrandr-tui

So, you want to change your screen resolution?
Have added a new LCD to your laptop and want to switch the displays?

Depends on: (xorg -)xrandr, bash and TUI (0.9.4-5 or later) (Website, Download, Install)

Have a look at xrandr-tui, if you do not want to type in those commands:

More functions are planned for the future, but first some optimizations for what currently is have to be applied.

It is meant for the use with WMs (Awesome, I3,dwm, etc) as it lets you set a base config, which will be used for:

xrandr-tui --switch
xrandr-tui --reset
xrandr-tui --mirror
Keep in mind, calling xrandr-tui by itself, will let you customize the task every time.
Whereas the quickaccess (arguments) will rely on the configuration file.
The screenshots you see here, are from xrandr-tui called without arguments.

You can even add and remove new/old resolutons:

Links

Sonntag, 24. Januar 2016

Change brightness of Screen

Well, beeing all about scripts here, got a new one:

The script is also a wrapper wether you have (xorg-)xbacklight installed or not, but if not, it requires sudo to be passwordless for the user (if called by a WM/without using terminal).

#!/usr/bin/env  bash
# Description:    Change brightness of laptop lcd
#        This script is part of my AwesomeWM configuration (https://github.com/sri-arjuna/awesome)
#        The most recent version should be available on: https://raw.githubusercontent.com/sri-arjuna/awesome/master/scripts/brightness.sh
# Disclaimer:   This code comes without any warrenty of any kind, use at your own risk!
# GNU General Public License (GPL) 2016 by Simon Arjuna Erat (sea) (erat.simon æ gmail,com)
#
#
#    Variables
#
    BASE=/sys/class/backlight
    ITEM=$(cd $BASE;ls)
    DIR=$BASE/$ITEM
    FILE=$DIR/backlight
    MAX=$(<$DIR/max_backlight)
    STEP_COUNT=20
    STEP_VALUE=$(( $MAX / $STEP_COUNT ))
    CUR=$(<$FILE)
#
#    Action
#
    if which xbacklight 2>/dev/null >&2
    then    # xbacklight is installed
        #cur=$(xbacklight)
        #cur=${cur/\.*}
        case "${1,,}" in
        "")    echo "Usage: brightness.sh up|down"
            exit 1
            ;;
        up)    xbacklight -inc 20
            ;;
        down)    xbacklight -dec 20
            ;;
        esac
    else    # Fallback, dont like the use of sudo in a background script
        # Required/recomend passwordless sudo, but is a security risk!
        case "${1,,}" in
        "")    echo "Usage: brightness.sh up|down"
            exit 1
            ;;
        up)    num=$(( $CUR + $STEP_VALUE ))
            [ $num -ge $MAX ] && num=$MAX
            [ $num -le 0 ] && num=0
            sudo tee $FILE <<< $num
            ;;
        down)
            num=$(( $CUR - $STEP_VALUE ))
            [ $num -ge $MAX ] && num=$MAX
            [ $num -le 0 ] && num=0
            sudo tee $FILE <<< $num
            ;;
        esac
    fi

Freitag, 22. Januar 2016

Awesome WM - MPD

Yeah finaly i got it working!
Took me only like 3 years to rework my original AwesomeWM configuration, and now, i'm almost done.

Currently just so happy about mpd finaly working, that i've added some tweakings for it...

When left clicking on the artist/title, mpc volume rises by 25, right click, lowers by 25.Mousewheel up increases mpc volume by 10, mousewheel down lowers by 10.

Click on the icon to get the playlist menu, with basic commands (in case the laptop is docked and i dont have 'fn'-key) for playback.
Anyhow, selecting any entry of the playlists, starts playing that directly.


CTRL+F4 (doesnt reckognize fn+f4) spawns an xrandr script, to change res/displaymonitor.
CTRL+F5, toggles the laptops touchpad
CTRL+F12 spanws my 'connect' script, for wifi.

The last thing i'm working on now, is to alarm when when/if battery drops below 10%, to get an annoying warning and reminderto plug in the power cord.

The complete config is found at: https://github.com/sri-arjuna/awesome
Enjoy and have a nice weekend!

Montag, 14. Dezember 2015

GNU rejected TUI, for the moment

Hello everyone

As TUI can show its true power only when it is already installed on your system, so one could simply share the scripts that  rely on TUI, just like one shares any bash or other shell script, I wanted to become part of GNU.

That is no easy task, specialy if you come from a 4 year old project that hasnt had this goal from start.
So, for the past 10 months, its been in the GNU Evaluation queue and just until a day ago it look very promising.

However, it got rejected for the moment, as more user feedback is wanted for them to evaluate the need/profit of making TUI part of the GNU family.

With one of the arguments beeing that we would need some user feedback for further evaluation.

That is, because TUI has a new approach to the terminal...
An approach mainwhile quite the same, but also quite different.

In the beginning, I wanted the 'ultimate' dir/menu browser for (a single specific) directory based script project/s.
In the end I extracted those functions as I wanted to have the scripts provided in named directories to look/match the containing 'ultimate' menu, so I made them individual commands.

Due to this change, one can also create great (single file) wizzards or wrappers around other cli/clu applications or make tools that act (but dont look like) 'ip' or 'iw' commands, just for your custom directory-tree structure.

It comes with many commands/functions for often used tasks, such as tui-yesno, tui-select, tui-read, as well as nice optical commands such as tui-header and tui-title.

As it is a command and line-based-output framework, it might look weird if you just try a single command.
To get started - once installed, you might want to check:
tuirc samples
tuirc provides
To get the manual, please check either:
info tui
tuirc info
tuirc html  # Only if you used "make install all"
I'm asking here for this required feedback:
  • Which OS/Distro?
  • Does Installer work?
  • Does running 'tuirc' raise any, and if - what kind of - error messages? (Besides initial creating of user configuration)
  • Any other errors/bugs/unexpected behaviour you came along?
Additionally according to your skill, time and preferences:
  • What are our thoughts about the 'tuirc samples'  and info page?
  • Did you find any security bugs? - have any advice how to fix them?
Get it from: https://savannah.nongnu.org/projects/tui/
Issue is, all i can say for sure is that it runs well on my system.
I'd very much like to have confirmed reports on which OS or Distro it installs and runs well or not.
That is also required to get it working for that OS/Distro, eventhough most of them work alike, there are differences i might not be aware to catch and handle (properly) without reports and hints how its done on your OS.

Thank you in advance for sharing your thoughts about TUI.

Freitag, 27. November 2015

VHS 2.6e

The new VHS provides several .desktop files,
  • to ease association to play audio and video files directly from GUI
  • to start screen-, webcam, or guide- recording directly
  • to configure VHS from the settings menu.
Get the latest tarball: https://github.com/sri-arjuna/vhs/releases/tag/v2.6e
Or download from github directly:

git clone https://github.com/sri-arjuna/vhs.git
cd vhs
./configure --prefix=/usr
./make-install

Hope you like it, enjoy!

Samstag, 21. November 2015

Two advanced simple bash menus

Many times one comes along a situation one wants to present a menu.
There are many ways to achieve this, none is wrong, none is right - each has its own value for its own situation.
However, to maintain or extend an existing menu can be hard to manage, at times.

I'd like to present you two of my favorite menu styles/types.
Hope you like them. :)

Variables:

Lets say you have a bunch of lists to handle, that you would like to present as menu...
It takes the variable prefix BUY_ and lists only the 'suffix' as menu content.
Simply add a new variable, and it will be listed in the menu.
Simply rename an existing variable, and as long the prefix BUY_ exists, it will be applied to the menu.
## Uncomment the variable assignments, to extend the menu
## Alll the menu 'management' can be done 'up here'
    BUY_FRUITS="apple banana kiwi"
    #BUY_PROTEIN="steak lenses"
    #BUY_DRINK="water milk limo"

## Expand/List all variables starting with BUI_
    MENU="${!BUY_*}"

## Loops the menus
while :;do
    echo "What variable to expand?"
   
    ## Cut of BUY_ from all (//) items of the list MENU
    select item in ${MENU//BUY_} Quit;do break;done
   
    ## Let the user Quit the loop
    [ Quit = $item ] && break
   
    ## RE-append the leading BUY_ variable prefix
    sel_item=BUY_$item
   
    ## Finaly expand / list the content of sel_item (BUY_$item).
    ## These 2 echo's should replace your function
    echo "${!sel_item}"
    echo
done

Array:

Lets say you have a bunch of tasks which you want to describe, and you know you might require to change the description.
This way, you only need to change the description in the array, and it keeps working.

    # Make sure no entries remain from possible previous runs
    unset MENU
   
    # Fill the values
    MENU[0]="First menu entry"
    MENU[1]="Menu entry one"
    MENU[2]="All good things are three"
   
    # Let the user select
    select choice in Quit "${MENU[@]}";do
        # Act accordingly
        # Its recomended to call functions from here, so the menu remains 'over-see-able'
        case "$choice" in
        Quit)        break        ;;
        "${MENU[0]}")    echo "first"    ;;
        "${MENU[1]}")    echo "second"    ;;
        "${MENU[2]}")    echo "third"    ;;
        esac
    done
Have fun tweaking!

Dienstag, 29. September 2015

Almost there...

Oh yeah, i'm happy already, allthough it has not yet passed evaluation.

What i'm talking about?
I'm talking about TUI - Text User Interface for scripts, which has reached 0.8.9-GNU-RC16 yesterday evening, and if everything works out as expected, it will reach "GNU TUI 0.9.0" this week.

I've been using TUI already for about 3 years for my own 'production', but by now, it has achieved a state that deserves the label 'stable'!

The feedback, so far, has been good and promising.

What to expect when it passes the evaluation?
I plan to move the project home to: http://www.gnu.org/software/tui to share the texinfo manual and to be the first and primary point of announcements regarding it.

Obviously i'll post here about it too, but more in a human-speaking way, and less technical as there.

Oh im so excited, that i just cant hide it...
*dance dance*