Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - VastOne

#481
How To's / How To - NIC Bonding
January 14, 2013, 05:52:19 AM
How To - NIC Bonding

For anyone with dual NIC cards and the need to bond.

You will need to first install ifenslave-2.6

sudo apt-get install ifenslave-2.6

Next using your favorite editor, edit /etc/network/interfaces

sudo medit /-etc/network/interfaces

Now comment out what is already there for safe keeping and add the following

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
allow-hotplug eth1
allow-hotplug bond0

auto bond0

iface bond0 inet static
        address 192.168.40.133
        netmask 255.255.255.0
        network 192.168.40.0
        broadcast 192.168.40.255
        gateway 192.168.40.10
        # dns-* options are implemented by the resolvconf package, if installed
        # dns-nameservers 8.8.8.8 8.8.4.4
        # dns-nameservers 208.67.222.222 208.67.220.220
        # dns-search example.com

        up /sbin/ifenslave bond0 eth0 eth1
        down /sbin/ifenslave -d bond0 eth0 eth1


You will need to change this to match your network

Specifically these lines

        address 192.168.40.133
        netmask 255.255.255.0
        network 192.168.40.0
        broadcast 192.168.40.255
        gateway 192.168.40.10


Note - If you have different cards than eth0 and eth1, they will need to change also

These lines

        # dns-nameservers 8.8.8.8 8.8.4.4
        # dns-nameservers 208.67.222.222 208.67.220.220


are commented out here, but I have the second enabled in mine..  They are google and opendns servers. 

Others may have resolv.conf handling this .. I left this commented out so that you can decide

Save the file

Now use your favorite editor and create the following file

sudo medit /-etc/modprobe.d/bonding.conf

add these lines

alias netdev-bond0 bonding
options bonding mode=0 miimon=100

save the file

Now you can restart the network and you should see your bond

sudo /-etc/init.d/networking restart

I have disabled network-manager and wicd on my systems..  and use this for my network setup
#482
How To's / Grub2 Methodology
January 14, 2013, 05:51:26 AM
This is a simple explanation of how I use Grub2 so that I do not need to edit anything every time I do a new install or distro test.

This comes in handy when you are testing multiple distros or have multiple partitions for install testing.

VSIDO comes installed with Grub2 ... The real 'new grub2' has many new features, you can read about them in those release notes.

Unless this is a first time install of grub2 on a new disk or drive, all of us usually have a 'go to' distro partition.  Mine is on /dev/sda3 and from that login of VSIDO is where I manage Grub from.

The first step is easy, from your favorite go to login simply install grub2 to the MBR this way

sudo grub-install /dev/sda
This locks in grub2 from this login/device/distro as the Master Grub Keeper

Now update grub by running

sudo update-grub
NOTE - If you want grub2 to load every distro you have you must have each device mounted in order for grub2 to see them during this phase.  VSIDO comes with disk-manager, simply run it to mount everything in fstab.

NOTE - If this is your first install of any Linux / Distro /Grub2 then allow the install to install grbu2 to the MBR

Now lets say you decide you want to test another distro or install VSIDO to another partition for testing.

Do your normal installation, but DO NOT allow that installation to install grub to the MBR. Make it install it to it's own dev.  If you were installing onto /dev/sda2 for example, during the grub install you tell it to keep the grub install on it's own device (/dev/sda2).

Now that the install is done, you can now finish the grub setup this way.

Login into your Master Grub Keeper / favorite distro where you installed grub 2 to the MBR.  The UUID of the new install has changed and your login here will not recognize it.  Fix it all like this:

run disk-manager again so that it loads the new partition into fstab and mounts it

from terminal run

sudo update-grub
logout / reboot and in your Grub Menu your new distro install is there to choose and run.

I realize this takes an extra step and 5 more minutes on an installation, but for me having one Master Grub Keeper is easy and simple to manage. This is more about Methodology than a How To.  Let me know if you have questions.
#483
This How To will cover two methods of using Conky, one of 18 current Linux Music apps and Cover Art from local sources.

First and foremost, this work is based off of the development of 2 sources.  Kaivalagi Python Scripts and a  wlourf LUA sphere script that started on the Ubuntu Threads. All I did was take the genesis of these and expand upon them to create several more current applications.

EDIT - ImageMagick must be installed for the convert process in the LUA scripts.  ImageMagick is a very powerful lightweight and low resources set of imaging tools. 

To install ImageMagick:

sudo apt-get install imagemagick

I will go over every step of the process in getting both methods working and how to use this How To.  At a minimum you should have a better understanding of several tools that you can use in Conky when done.

As I said, there are 18 music apps to work with.  Here is the list:

MPD - and any frontend client (ario, sonata, gmpc etc etc)
Gmusicbrowser
Clementine
Amarok2
Xnoise
Gogglesmm
Audacious
Decibel Audio Player
Exaile
Qmmp
Pogo
Deadbeef
Quod Libet
VLC
Rhythmbox
MoC (MoCP)
Banshee
Guayadeque

Here are screenshots of the end results :

First is conkyMpd.py script running mpd:



And the wlourf LUA Sphere running mpd:



Now this is how to get there

NOTE - mpDris is only needed if you are using mpd or plan on using mpd as your music source.

You will need to install mpDris, a very cool python script that puts an mpd  dbus/mpris instance on your system.  mpDris can be installed in debian/ubuntu with.

sudo apt-get install mpdris

or it can be compiled with sources from here (if you are willing). Beyond the scope of this HowTo, contact me if you need help.

For MPD, mpDris will need to be started with the location of your music files. MPD must also be running for this to initiate.

I run it from a script,  but you can run it from terminal or alt+f2 like this:

python /usr/bin/mpDris --path=/media/storage/Music/mp3new &

or depending on how it was installed:

python /usr/local/bin/mpDris --path=/media/storage/Music/mp3new &

NOTE - You MUST change the --path=/to/your/music/location

NOTE - If you run mpdRis from a script, it must be used like this from within autostart.sh or your bash script.

(python /usr/bin/mpDris --path=/media/storage/Music/mp3new) &

or depending on how it was installed:

(python /usr/local/bin/mpDris --path=/media/storage/Music/mp3new) &


        Next, 
download musictools.tar.gz. These are the files for everything needed to use in this How To.  Extract it to the same directory structure it is compressed in where / is your /home/user directory.  Each of the python and bash scripts should be made executable. They were all executables when I archived them, they should extract as executable. 

Check at least one python or bash script to make sure the executable flag is set after you extract them, it should be automatic.  If one is set they will all be set.

Once that is done we can now begin.  I am going to explain the Python method first.  I will be using MPD as the player for this discussion.

NOTE - In most players you MUST turn dbus/mpris on.  You can contact me if you are having trouble getting mpris/dbus enabled in any one of these apps.

VLC - To turn VLC Dbus on go to:

Tools -> Preferences -> Show all -> Interface -> Control Interface and Enable DBus

GmusicBrowser - To turn GMB mpris on go to:

Main -> Settings -> Plugins -> tick the MPRIS v1 check box and restart GMB

The Python Method

There are 3 components to running the Python Method

  • .conkympdrc   (this rc is included for 18 of the 18 players)
  • conkyMpd.py   The python that does the work
  • conkyMpd.template  The template used for displaying the python work

.conkympdrc

Set this file for your own conky display needs.  What you see in this file is what is necessary for the correct display on my system.

[/list][/list][/list] # .conkyrc - Edited from various examples across the 'net
# Used by VastOne on #! Debian Wheezy

# Font Settings ##############################################################
# Use Xft (anti-aliased font and stuff)
use_xft yes
xftfont Liberation Sans:size=15
# Alpha of Xft font. Must be a value at or between 1 and 0 ###
xftalpha 0.9
# Force UTF8? requires XFT ###
override_utf8_locale yes

draw_shades no
draw_outline no
uppercase no
######################## End Font Settings ###################################

# Begin Window Settings ######################################################
alignment top_right
own_window yes
own_window_type desktop
own_window_transparent yes
own_window_class Conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# ARGB can be used for real transparency
# NOTE that a composite manager is required for real transparency.
# This option will not work as desired (in most cases) in conjunction with
# 'own_window_type override'
own_window_argb_visual yes
# When ARGB visuals are enabled, this use this to modify the alpha value
# Valid range is 0-255, where 0 is 0% opacity, and 255 is 100% opacity.
#own_window_argb_value 0

minimum_size 335 5    ## width, height
maximum_width 335    ## width - usually a good idea to equal minimum width.

gap_x 5    ## left &right
gap_y 30    ## up & down
####################### End Window Settings ##################################

# Border Settings ############################################################
border_outer_margin 40
border_inner_margin 0

draw_borders no
border_width 1
stippled_borders 10
####################### End Border Settings ##################################

# Color Settings #############################################################
default_shade_color grey
default_outline_color black

# Main Color Settings ########################################################
default_color white
color1 B9CDD4
color2 white
color3 white
color4 BAF58B


# Use the Xdbe extension? (eliminates flicker)
# It is highly recommended to use own window with this
# one so double buffer won't be so big
double_buffer yes

# Adds spaces around certain objects to stop them
# from moving other things around.
# only works with mono fonts
use_spacer right
# Arguments are left, right, and none (default)

# Size of the standard text buffer (default is 256 bytes).
# Will allow for more text display per variable.
text_buffer_size 2048

# Sets bars size even for bars that do not hace that function
# IE: execbar and execibar
default_bar_size 235 9

# 0 makes Conky run forever
total_run_times 0
update_interval 1
cpu_avg_samples 1
net_avg_samples 1
no_buffers yes

# Defaults to 4MiB
# Set to 0 to disable the image cache
# Increase this value if you use $image lots
imlib_cache_size 0

TEXT

${if_running mpd}
${execp ~/conkyMpd.py --template=~/conkyMpd.template}
$endif

# delete this and add 19 blank lines















As you can see, all this does is invoke the conkyMpd.py to use the conkyMpd.template

conkyMpd.template

${color #7CB2E5}[--datatype=TI --maxlength=32]
${color #7CB2E5}[--datatype=AR --maxlength=32]
${color #7CB2E5}[--datatype=AL --maxlength=30]
${color #7CB2E5}[--datatype=PT]  -  ${color #7CB2E5}[--datatype=LE]
${#FFFFFF}${execibar 1 ~/conkyMpd.py --datatype=PP}
${color #7CB2E5}MPD      ${voffset 2}${#FFFFFF}[--datatype=ST] ${color #7CB2E5}    Volume ${#FFFFFF}[--datatype=VO] ${color 7CB2E5}
${image [--datatype=CA] -p 0,175 -s 335x335}${image ~/images/mpd.png -p 41,143 -s 30x30}


        NOTES:

        • The conkyMpd.template is the place to change colors, position and sizes of everything that is displayed.
        • Use the .conkympdrc to change the over all position of the displayed output; top, bottom, left, right or middle.
        • This MPD is good for any front end client you want to use.

        I start this conky this way:

conky -c .conkympdrc &

That is pretty much all there is for the Python method.  All you have to do is choose the .conkyxxxrc, python and template of the player you use and you are set.  All of these files are included in the download musictools.tar.gz

The LUA Sphere Method

(which uses the same python files and in this example using the conkyMpd.py)

This method is a bit more detailed.

It uses the following files -  Note - this example is for MPD.

.conkysphererc
conkyMpd.py
launcher.sh  (required to use)
getcover_sphere.sh
player.lua


.conkysphererc
# -- Conky settings -- #
background no
update_interval 1
 
cpu_avg_samples 2
net_avg_samples 2

override_utf8_locale yes

double_buffer yes
no_buffers yes

text_buffer_size 2048
imlib_cache_size 0

# -- Window specifications -- #

draw_borders no
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window yes
own_window_transparent yes
own_window_class conky-semi

border_inner_margin 0
border_outer_margin 0

minimum_size 400 400

alignment tr
gap_x 5
gap_y 60

# -- Graphics settings -- #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

# -- Text settings -- #
use_xft yes
xftfont Santana:size=8
xftalpha 0.8

uppercase no 

default_color FFFFFF

# -- Lua load -- #
lua_load ~/conky/conky-music/player.lua
lua_draw_hook_pre main

#at least one line (empty or not) after TEXT
#

TEXT

#this line for displaying cover
#set-up in getcover_sphere.sh
${execi 3 ~/conky/conky-music/cover/getcover_sphere.sh}${image ~/conky/conky-music/cover/cover_sphere.png -p 150,150}

#this line for xnoise only - If you use xnoise, uncomment the next line
#${execi 1 ~/bin/getcdxnoise.sh}

#this line for xnoise only - If you use xnoise, uncomment the next line
#${execi 1 ~/bin/getcdexaile.sh}

#this line for gogglesmm only - If you use gogglesmm, uncomment the next line
#${execi 1 ~/bin/getcdgmm.sh}

#this line for audacious only - If you use audacious, uncomment the next line
#${execi 1 ~/bin/getcdaud.sh}

#this line for mocp only - If you use mocp, uncomment the next line
#${execi 1 ~/bin/getcdmocp.sh}



NOTE  - There must be a blank line at the end of .conkysphererc.

As you see in this rc, there are several choices to make based on the music player you use. If you use exaile, xnoise, audacious, gogglesmm, deadbeef or mocp just uncomment the appropriate line so the covers can be pulled.  All of these scripts would have been extracted to your ~/bin directory.

Edit  - Thanks to some help from xaos52, the method of calling the covers has changed if you are running one of the following:

Deadbeef
Audacious
Exaile
Goggles Music Manager
Moc / MocP
Xnoise


NOTE  - lsof will need to be installed for these scripts to run properly:
sudo apt-get install lsof

lsof is an incredibly powerful tool for system information.  Here it locates the directory of the song  playing on MPD and uses 'find' to copy it to /tmp/covers

For the lsof method of finding the directory, it is assumed that your file structure has /Music somewhere in the path.

In other words; make sure /Music is in your path.

getcdxnoise.sh
#!/bin/bash
CURRENT_DIRECTORY_LOCATION="${HOME}/tmp/current-music-directory"
CURRENT_DIRECTORY="$(cat ${CURRENT_DIRECTORY_LOCATION})"
DIRECTORY=$(lsof -F n -c xnoise | grep /Mus | tail -c +2 | sed 's%/[^/]*$%%')
[ "$DIRECTORY" != "$CURRENT_DIRECTORY" ] && {
    find "$DIRECTORY" -iname "*.jpg" -exec cp {} /tmp/covers \; -quit
    echo "$DIRECTORY" >${CURRENT_DIRECTORY_LOCATION}
}


In this line, a combination of lsof and grep is used to find where the file is playing in all of the get cover art bash scripts like in db-cover.sh
lsof -F n -c deadbeef | grep /Mus | tail -c +2 | sed 's%/[^/]*$%%'
Notice that grep is looking or a /Mus as the key variable.

If your music is in a different directory, db-cover.sh would need to be edited to find the unique flag to search for.

To find out where your directory is run this while playing your music app
lsof -F n -c deadbeef

obviously changing to what ever music app you are using.

Please feel free to contact me for help on how to do this.

With this update to the bash scripts they now only copy the cover file one time. Thanks xaos52!!!

NOTE - You must run this one time from terminal for the bash scripts to work properly:

touch $HOME/tmp/current-music-directory

Now on to the working components of this Lua layout.  I have already completely setup up both of these files (and vetted all 18 players) so you will only have to select your player.

getcover_sphere.sh

#!/bin/bash
# by larryni
# get Amarok cover art of current track and transform into an album stack
# copypasta from http://www.imagemagick.org/Usage/mapping/#spherical
# thanks to eightmillion for rewriting the original script
# http://ubuntuforums.org/showpost.php?p=8117609&postcount=9846
# modded by wlourf for use with others players
# modded by VastOne for use with others players

##choose your player here
#player="amarok"
#player="guayadeque"
#player="xnoise"
#player="exaile"
#player="quodlibet"
#player="gogglesmm"
#player="gmusicbrowser"
#player="audacious"
#player="clementine"
#player="decibel"
#player="qmmp"
#player="pogo"
#player="deadbeef"
#player="banshee"
#player="rhythmbox"
#player="vlc"
player="mpd"
#player="mocp"

# Temp directory must be full path.
tempdir="$HOME/conky/conky-music/cover/"
tempfile="${tempdir}nowplaying"

[ -d "$tempdir" ] || mkdir -p "$tempdir"  #test if $tempdir exists, if not create it.
[ -e "$tempfile" ] || touch "$tempfile"

case $player in
    "amarok")
        cover="$(dcop amarok player coverImage)";;
    "guayadeque")
        cover="$(~/conkyGuayadeque.py --datatype=CA)";;
    "xnoise")
        cover=/tmp/covers;;
    "exaile")
        cover=/tmp/covers;;
    "quodlibet")
        cover=/tmp/current.cover;;
    "pogo")
        cover=~/.config/pogo/current-cover.png;;
    "decibel")
        cover=~/.config/decibel-audio-player/current-cover.png;;
    "deadbeef")
        cover=/tmp/covers;;
    "mpd")
        cover=/tmp/covers;;
    "mocp")
        cover=/tmp/covers;;
    "audacious")
        cover=/tmp/covers;;
    "gogglesmm")
        cover=/tmp/covers;;
    "gmusicbrowser")
        cover="$(~/conkyGmusicbrowser.py --datatype=CA)";;
    "banshee")
        cover="$(~/conkyBanshee.py --datatype=CA)";;       
    "qmmp")
        cover="$(~/conkyQmmp.py --datatype=CA)";;       
    "clementine")
        cover="$(~/conkyClementine.py --datatype=CA)";;
    "vlc") 
        cover="$(~/conkyVlc.py --datatype=CA)";;
    "rhythmbox")
            cover="$(~/conkyRhythmbox.py --datatype=CA)"
        #remove \ characters from conkyRhythmbox output
            cover=${cover//\\/};;
    *) echo "wrong player selected";;
esac

   
if [ "$cover" == "" ] && [ -f "${tempdir}cover_sphere.png" ] ; then
    rm "${tempdir}cover_sphere.png"
fi

[ -z "$cover" ] && exit      #test if $cover was set, if not exit.

hash=$(ls -l "$cover" )

read oldhash < "$tempfile"

if [ "$oldhash" == "$hash" ];then
        :
else
#add " and " around ${cover} for filename with spaces
    convert "${cover}" -resize 100x100! "${tempdir}sphere_overlay.png" -compose HardLight -composite "${tempdir}sphere_mask.png" -alpha off -compose CopyOpacity -composite "${tempdir}cover_sphere.png"
   echo $hash > "$tempfile"
fi
exit




The only area of this script to worry about is this:

##choose your player here
#player="amarok"
#player="guayadeque"
#player="xnoise"
#player="exaile"
#player="quodlibet"
#player="gogglesmm"
#player="gmusicbrowser"
#player="audacious"
#player="clementine"
#player="decibel"
#player="qmmp"
#player="pogo"
#player="deadbeef"
#player="banshee"
#player="rhythmbox"
#player="vlc"
player="mpd"
#player="mocp"



Simply edit this file ~/conky/conky-music/cover/getcover_sphere.sh and uncomment the player that you use. As in my example of using MPD, it is uncommented

player.lua





--set the main parameters  here
--other parameters can be set in widgets files

--font name to use
font_name="Ubuntu-Title"

--set the colors here
--for foreground
fg_col1=0x97EF93
fg_col2=0xF61330

--for background
bg_col1=0xC9C6C6

--choose player (amarok/rhythmbox)
--for the cover, see in file get_cover.sh
--player = "amarok"
--player = "guayadeque"
--player = "xnoise"
--player = "exaile"
--player = "quodlibet"
--player = "gogglesmm"
--player = "clementine"
--player = "deadbeef"
--player = "qmmp"
--player = "pogo"
--player = "decibel"
--player = "audacious"
--player = "gmusicbrowser"
--player = "banshee"
--player = "rhythmbox"
--player = "vlc"
player = "mpd"
--player = "mocp"

--END OF PARAMETERS


--call the widgets
--or use full path if you don't call the conkyrc from it's own directory
dofile ("./rings.lua")
dofile ("./text.lua")



function conky_main()
   
    --call the functions into the widgets
    choose_player(player)
    conky_main_rings()
    conky_draw_text()
end



function choose_player(player)

    --commmands line
    --pp is for percentage played
    --ar is for artist
    --al is for album
    --ti is for title
    --for the cover, see in file get_cover.sh
    if player == "amarok" then
        amarok_ct = io.popen("dcop amarok player trackCurrentTime"):read()
        amarok_tt = io.popen("dcop amarok player trackTotalTime"):read()
        amarok_pp = 100*amarok_ct/amarok_tt
        cmd_al = "${exec dcop amarok player album}"
        cmd_ar = "${exec dcop amarok player artist}"
        cmd_ti = "${exec dcop amarok player title}"
        cmd_pp = "${if_running amarokapp}" .. amarok_pp .. "${else}0${endif}"
    elseif player == "guayadeque" then
        cmd_al = "${exec ~/conkyGuayadeque.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyGuayadeque.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyGuayadeque.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyGuayadeque.py --datatype=PP}"
    elseif player == "clementine" then
        cmd_al = "${exec ~/conkyClementine.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyClementine.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyClementine.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyClementine.py --datatype=PP}"
    elseif player == "deadbeef" then
        cmd_al = "${exec ~/conkyDeadbeef.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyDeadbeef.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyDeadbeef.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyDeadbeef.py --datatype=PP}"
    elseif player == "decibel" then
        cmd_al = "${exec ~/conkyDecibel.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyDecibel.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyDecibel.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyDecibel.py --datatype=PP}"
    elseif player == "xnoise" then
        cmd_al = "${exec ~/conkyXnoise.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyXnoise.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyXnoise.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyXnoise.py --datatype=PP}"
    elseif player == "exaile" then
        cmd_al = "${exec ~/conkyExaile.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyExaile.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyExaile.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyExaile.py --datatype=PP}"       
    elseif player == "quodlibet" then
        cmd_al = "${exec ~/conkyQuodlibet.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyQuodlibet.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyQuodlibet.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyQuodlibet.py --datatype=PP}"       
    elseif player == "gogglesmm" then
        cmd_al = "${exec ~/conkyGogglesmm.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyGogglesmm.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyGogglesmm.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyGogglesmm.py --datatype=PP}"
    elseif player == "gmusicbrowser" then
        cmd_al = "${exec ~/conkyGmusicbrowser.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyGmusicbrowser.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyGmusicbrowser.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyGmusicbrowser.py --datatype=PP}"       
    elseif player == "banshee" then
        cmd_al = "${exec ~/conkyBanshee.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyBanshee.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyBanshee.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyBanshee.py --datatype=PP}"       
    elseif player == "audacious" then
        cmd_al = "${exec ~/conkyAudacious.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyAudacious.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyAudacious.py --datatype=TI}"
        cmd_pp = "${exec audtool --current-song-output-length-seconds \/ $audtool --current-song-length-seconds}"       
    elseif player == "pogo" then
        cmd_al = "${exec ~/conkyPogo.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyPogo.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyPogo.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyPogo.py --datatype=PP}"
    elseif player == "qmmp" then
        cmd_al = "${exec ~/conkyQmmp.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyQmmp.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyQmmp.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyQmmp.py --datatype=PP}"
    elseif player == "rhythmbox" then
        cmd_al = "${exec ~/conkyRhythmbox --datatype=AL}"
        cmd_ar = "${exec ~/conkyRhythmbox --datatype=AR}"
        cmd_ti = "${exec ~/conkyRhythmbox --datatype=TI}"
        cmd_pp = "${exec ~/conkyRhythmbox --datatype=PP}"
    elseif player == "vlc" then
        cmd_al = "${exec ~/conkyVlc.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyVlc.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyVlc.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyVlc.py --datatype=PP}"
    elseif player == "mpd" then
        cmd_al = "${exec ~/conkyMpd.py --datatype=AL}"
        cmd_ar = "${exec ~/conkyMpd.py --datatype=AR}"
        cmd_ti = "${exec ~/conkyMpd.py --datatype=TI}"
        cmd_pp = "${exec ~/conkyMpd.py --datatype=PP}"
    elseif player == "mocp" then
        cmd_al = "${exec mocp -Q %album}"
        cmd_ar = "${exec mocp -Q %artist}"
        cmd_ti = "${exec mocp -Q %song}"
        cmd_pp = "${exec mocp -Q '%cs/%ts*100' | bc -l}"
    else
        print (player .. " not defined")
        cmd_ar = player
        cmd_al = " not defined"
        cmd_ti = player .. " : player unknow"
        cmd_pp =""
    end
end



The only section you need to worry about is:

--choose player (amarok/rhythmbox)
--for the cover, see in file get_cover.sh
--player = "amarok"
--player = "guayadeque"
--player = "xnoise"
--player = "exaile"
--player = "quodlibet"
--player = "gogglesmm"
--player = "clementine"
--player = "deadbeef"
--player = "qmmp"
--player = "pogo"
--player = "decibel"
--player = "audacious"
--player = "gmusicbrowser"
--player = "banshee"
--player = "rhythmbox"
--player = "vlc"
player = "mpd"
--player = "mocp"


Simply edit  ~/conky/conky-music/cover/player.lua and uncomment the player you are using. As in my example of using MPD, it is uncommented.

NOTE that in this script -- is the comment code and NOT #

launcher.sh
- MUST be used to run the LUA Sphere Method

#!/bin/bash

rm ~/conky/conky-music/cover/nowplaying
rm ~/conky/conky-music/cover/cover_sphere.png
#need to cd to avoid problems with rhythmbox.lua
cd ~/conky/conky-music/
conky -c .conkysphererc


I run it using alt F2 and this:

~/conky/conky-music/launcher.sh &

If everything is setup correctly, you should have the desired outcome.

Important Note - 07 October 2011  - If you receive this error from conky:

/usr/bin/env: python2: No such file or directory


Run this in terminal to correct it

sudo ln -s /usr/bin/python2.6 /usr/bin/python2

Contact me if this error persists.

OK, that  is it.  I have worked on this testing and retesting for 3 days.  I have enjoyed it and it has been frustrating.  There were mistakes that have been corrected. Hopefully, anyone seeing ways to improve on these methods will speak up.

I am open to any challenge to add any music apps to this process.  Please let me know of any that you want to be included in this. Please also feel free ask me anything on this process either here or in a PM.

A million thanks go to Kaivalagi and Wlourf, both I consider pure geniuses.  Also thanks to Sector11 because he challenged me to write this up and was instrumental in helping me clean it up.  Also, Ivanovnegro who challenged me to create some of these in the beginning and for his plum liqueur. :cool:

I hope it is useful to some of you.

VastOne

NOTE  - I use gmusicbrowser that has some awesome plugins for getting the cover art from several sources by just right clicking on the album, artist or track.

NOTE  - I have also found a stand alone app that does the same thing.  It is UberView 1.14 download .  I have tested this app and find it a good addition. Nice job wittfella.

Edit - 04 October 2011  -  Added MOCP - Grab the latest archive from the same link to capture these changes.

Edit - 04 October 2011  -  Added Banshee  - Grab the latest archive from the same link to capture these changes.

Edit - 07 October 2011  - Added the latest rings.lua and text.lua from wlourf..  These are more efficient versions. Grab the latest archive from the same link to capture these changes.

Edit - 08 October 2011  -  Added Exaile to the mix - Grab the latest archive from the same link to capture these changes.

Edit - 09 October 2011  -  Added Quod Libet to the mix - Grab the latest archive from the same link to capture these changes.

Edit - 13 October 2011  -  Changed the method of starting mpDris in the instructions.

Edit - 16 October 2011  -  Changed all bash scripts with new functions to copy the cover file one time, thanks xaos52!!  -  Grab the latest archive from the same link to capture these changes.

Edit - 16 October 2011  -  Changed the mpd method of getting the cover thanks to a python change.  Thanks wlourf!!   -  Grab the latest archive from the same link to capture these changes.

Edit - 17 October 2011  -  Added ImageMagick requirements.

Edit - 19 October 2011  -  Added Amarok2 - This replaces the original Amarok  - Grab the latest archive from the same link to capture these changes download musictools.tar.gz

Files added:

conkyAmarok.py
conkyAmarok.template
.conkyamarokrc
amarok.png

Updated files:

player.lua
getcover_sphere.sh

Edit - 21 October 2011  -  Did a major overhaul of all conky rc files and all templates to standardize each.    Grab the latest archive to capture these changes download musictools.tar.gz

Edit - 5 November 2011  -  Added the lsof requirements

Edit - 21 December 2011  -  Changed how all the scripts using lsof get the directory structure. All changes are here in the download musictools.tar.gz

Edit - 15 August 2012  -  Added the requirements for correctly starting mpdRis from autostart.sh or a bash script.
#484
Artwork & Screenshots / January 2013 Screenshots
January 14, 2013, 05:41:34 AM
Post your January Scrots here
#485
How To's / How To - smxi Install and Setup
January 14, 2013, 05:38:33 AM
NOTE - smxi and all it's powerful scripts are already installed in VSIDO.  You will not need to install it, but this guide can help you through the initial setup and understand smxi. Simply start at Step 2

This is for anyone wanting to use smxi to manage kernel installs, kernel updates, nVidia, ATI, Radeon, Intel driver installations and the dkpg process for these when you update your kernel.

smxi is a set of incredible scripts developed here

Theses include the smxi, sgfxi, svmi, rbxi, and inxi scripts and have been developed for years.

There is also a really good wiki and doc collection here

VSIDO comes with unzip installed, but if your distro does not have it, you will need to install unzip

sudo apt-get install unzip

Step 1: Installing smxi

At the first login screen, do not log in. Instead, hit

ctrl + alt + f1

to take you to tty1 since smxi is best used outside of Xorg

Login as you and then:

sudo su

cd /usr/local/bin && wget -Nc smxi.org/smxi.zip && unzip smxi.zip && smxi

This will install and run smxi for the first time.  The first time run is where you tell smxi your options.

NOTE - these settings can be changed at any time within smxi after this first run through

Step 2: Setting up smxi

The first step any time smxi is run is to exit the X/Desktop, as it needs to perform outside of Xorg

1) shutdown-desktop-and-continue

Next is confirming what distro you are on and that you want to run smxi

1) continue-no-change

Next is to add Liquorix Kernel Sources.  I use Liquorix Kernels and this is the primary reason why I use smxi.  It is entirely up to you on this choice.  You can add the Liquorix Kernel sources and still use the Debian Kernel and switch between the two at any time using smxi.

1) yes-add-liquorix-sources

apt-get update will now automatically run and the liquorix keyring will be added if you chose liquorix sources.

Next smxi needs to know what kernel you are going to use.  There are four choices, the only two that matter now is either 2 or 3 depending on what you are going to use

1) no-kernel
2) debian
3) liquorix
4) continue

Next smxi needs to know if you want to use apt-get or aptitude as  package manager.  It is strongly recommended by the script developer to use apt-get

1) apt-get

Now smxi needs to know if you want to use dist-upgrade or upgrade.  I have always used dist-upgrade

1) dist-upgrade

Next smxi needs to know your Distro level identification. Since Waldorf is based on testing smxi detects that and your choice here should be debian-testing. If you are using Debian sid, then select debian-sid

2) debian-testing

Next smxi needs to install dctrl-tools and gawk to run properly

1) yes-install

Next you can and should select your closest debian mirror.  Since I am in the US I choose

36) us:United-States

NOTE - Some users report that keeping US as the default works best because some of the foreign mirrors are extremely slow

Next Are the Kernel Upgrade Options.  If you selected the debian kernel, smxi would now find the latest kernel and install it.  If you selected to use Liquorix, it would install the latest Liqourix kernel

Enter to Continue

Recommended Step

smxi now will do a dist-upgrade to make sure everything is up to date

1) continue

Enter to Continue

Y to any questions asked


When done you will be presented choices, select

4) continue

After the dist-upgrade is done, select

6) kernel options

This is where you can update to your latest kernel

1) install-apt-kernel

then

1) yes-install-kernel

Once the kernel is updated you can now proceed to

7) continue-to-graphics

Now you are presented with several choices to install your video drivers. Since I use nVidia, my choice is

6) current-nvidia

1) yes-create-xorg-conf-file

Enter


Now the driver will be downloaded and installed to your current kernel.

When nouveau is used, it will report a failure to remove.  This is normal.  Just select

2) reboot

Log back into the new kernel you just installed and at the login screen hit ctrl alt f1 again

login as you

sudo su

smxi

2) continue-no-dist-upgrade

7) continue-to-graphics

6) current-nvidia

Enter


Now the driver is installed

1) start-desktop

That is it...  You are now using the latest kernel and the current nVidia drivers.

NOTE - If at any time you login during the process to a blinking cursor on the top left, just do

ctrl alt f1

login as you

sudo su

smxi

2) continue-no-dist-upgrade

7) continue-to-graphics

6) current-nvidia


Please feel free to comment on how this can be improved.

Thank You!
#486
VSIDO Installation Help / VSIDO Installation Guide
January 14, 2013, 05:07:51 AM
This How To is for anyone installing VSIDO for the first time or to use it as a reference on additional installations.

If you need assistance creating a USB of VSIDO, please read this How To first

When you download the ISO and burn it to CD / DVD / USB you can boot to a LiveCD session of VSIDO.  The first screen you see upon boot is FluxBox.  This guide will show you what will happen and an explanation to each step.


Initial Grub Boot LiveCD Screen



LiveCD Screen / Right Click Menu

This image shows that by Right Clicking on the desktop you can start the VSIDO installer



VSIDO Installer Welcome Screen



Installer Update Screen - Note this is always updated for VSIDO by default so it can be checked off



Language Selection



Keyboard Selection



Time Zone Selection



Users, hostname and root access control setup

Note There is an issue now in enabling root. If you do this it in turn removes sudo for the user login. There is a bug now that whatever password you give root, it will not be changed. It is strongly suggested that you do not enable root at this stage, but once you login run sudo passwd root to change/enable root then



Disk Partitioning - Choose between Automatic or Manual Partitioning



Automatic Partitioning Choices - This selection creates a swap drive, the root install drive and installs grub to the mbr



Manual Partitioning Choices



Several DropDown Choices in Manual Partitioning



Where to Install the Bootloader / Grub - (The mbr is always the best choice)



Summary Screen - This screen summarizes everything you just chose to do and confirms that it is in fact correct.   If you are ready, click Forward



Installing Screen



Installation Complete Screen Proceed with Reboot -  (Yes that IS 2 Minutes and 29 seconds install time)



Finally we reach our destination and after login the vsido-welcome screen






Profit!

Explore, learn, create, destroy, and then give feedback on how VSIDO can be better

Good luck!   Do not hesitate to ask any of us a question on this process

Note - For those of you using wired connections, /etc/network/interfaces and /etc/resolv.conf will handle your Internet connection OOTB as long as your device is eth0

For wireless, there is a ceni How To here that will guide you through setting up wireless or you can use WICD which is installed and is loaded on boot