Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[TIP] Gestire il mixer via tasti FN
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Wed Mar 17, 2004 11:22 pm    Post subject: [TIP] Gestire il mixer via tasti FN Reply with quote

Ero un po' frustrato dalle possibilita' che mi davano i miei tasti FN per quanto riguardava la gestione del volume.. Nulle o quasi, dipende dalle macchine.. Attraverso questo programma, con l'ausilio di xosd xbindkeys e setmixer otterrete una buona gestione del mixer, le features sono scritte nell'intestazione del programma.

A grandi linee potete alzare e abbassare il livello del volume e gestire in maniera precisa il mute e modificare il volume mentre il tutto e' muto, solitamente e' prerogativa di qualche mixer grafico e non di un uso tramite shortcut da tastiera.
Inoltre il livello e lo stato del volume vengono visualizzati a schermo quando vengono modificati.

Vi consiglio di mappare con xbindkeys o qualcosa del genere le combinazioni di tasti che servono per modificare lo stato del volume
Questo per me in .xbindkeysrc:

Code:

#Vol +
      "~/osdvol.py +"
        m:0x0 + c:176
#Vol -
      "~/osdvol.py -"
        m:0x0 + c:174
#Muto
      "~/osdvol.py mute"
      m:0x0 + c:160


Quindi il programma di gestione
http://www.sideralis.net/blackman/osdvol.py

Code:

#!/usr/bin/env python

"""
osdvol.py permette tramite l'ausilio di setmixer
http://packages.debian.org/testing/sound/setmixer.html
il controllo del volume sonoro.
osdvol.py e' ideato per lavorare preferibilmente coi tasti
funzione adeguati sulle tastiere multimediali e portatili.
osdvol.py supporta:
- creazione automatica del file di configurazione ~/.setmixer
- aumento,diminuzione e mute/unmute del volume
- mantenimento delle impostazioni del volume passando dallo stato di
  mute a quello di unmute e viceversa
- possibilita' di variare il volume nello stato di mute per riottenerlo
  modificato tornando unmute
- stampa a schermo dello stato sonoro tramite xosd http://www.ignavus.net

Questo programma e' liberamente modificabile.
Sideralis Programs
Federico e Riccardo Galli
http://www.sideralis.net
"""
import os,sys
PATH=os.sep.join((os.getenv('HOME'),'.setmixer'))
""" XOSDOPT sono le opzioni che vengono passata e osd_cat """
XOSDOPT='--font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*" --shadow=2 --pos=top --align=right --colour=green --delay=1'

show_vol='|'.join((
r'''echo `setmixer -V vol +0''',
r'''awk '/vol/{split ($3,a,",");print a[1];}'` "% Volume"''',
r'''osd_cat ''' + XOSDOPT
))

if not os.path.exists(PATH):
    fp=file(PATH,'w')
    fp.write('0\n70\n')
    fp.close()

def ismute():
    fp=file(PATH,'r')
    val=int(fp.read(1))
    fp.close()
    return val

def vol_modify(flag):
    """
    modifica il volume in base a flag
    flag false: lo aumenta
    flag true:  lo diminuisce
    """
    vol=None
    op= flag and '-' or '+'
    if ismute():
        fp=file(PATH,'r+')
        fp.readline()
        value=int(fp.readline())
        value=eval("value %s 3" % op)
        if value>100: value=100
        elif value<0: value=0
        fp.seek(0)
        fp.write('1\n%d\n' % value)
        fp.close()
        vol=value
    else:
        os.system('setmixer vol %s3' % op)
    return vol

if len(sys.argv)!=2: print 'You must pass ONE argument'; sys.exit(1)
if sys.argv[1] not in ('+','-','mute'):
    print 'Argument "%s" not supported' % sys.argv[1]; sys.exit(1)
if sys.argv[1] in ('+','-'):
    vol=vol_modify(sys.argv[1]=='-' and True or False)
    if not vol: os.system(show_vol)
    else: os.system(r'echo "MUTE %d%% Volume" | osd_cat %s' % (vol,XOSDOPT))
elif sys.argv[1]=='mute':
    fp=file(PATH,"r+")
    flag=int(fp.readline())
   
    if flag:
        value=int(fp.readline())
        fp.seek(0)
        fp.write('0')
        os.system('setmixer vol %d' % value)
        os.system('echo "Mute OFF"| osd_cat %s' % XOSDOPT)
    else:
        out=os.popen('setmixer -V vol +0')
        value=int(out.readline().split(' - ')[1].split(',')[0])
        out.close()
        fp.seek(0)
        fp.write('1\n%d\n' % value)
        os.system("setmixer vol mute")
        os.system('echo "Mute ON"| osd_cat %s' % XOSDOPT)
    fp.close()


Vi consiglio tuttavia di wgettare il link proposto prima.

Spero che a qualcuno faciliti la vita...
Fede
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31357
Location: here

PostPosted: Fri Mar 19, 2004 8:40 pm    Post subject: Reply with quote

Grazie a federico sono riuscito a provare questo script e devo dire che e' molto carino e funzionale :D .
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3135

PostPosted: Fri Mar 19, 2004 8:45 pm    Post subject: Reply with quote

fedeliallalinea wrote:
Grazie a federico sono riuscito a provare questo script e devo dire che e' molto carino e funzionale :D .


a me i tasti funzione... funzionano senza aver dovuto fare nulla. L'unica stranezza é che F12, riporta la freccetta "Volume Su" abbassa il volume, e F11, che dovrebbe abbassarlo, lo alza. Il Mute funziona a dovere ;-)

... Certo: provero' giusto per avere anche la sezione grafica :D !

Grazie a federico,
Coda
Back to top
View user's profile Send private message
MyZelF
Bodhisattva
Bodhisattva


Joined: 25 Feb 2003
Posts: 2010
Location: Venice, Italy

PostPosted: Fri Mar 19, 2004 11:03 pm    Post subject: Reply with quote

codadilupo wrote:
a me i tasti funzione... funzionano senza aver dovuto fare nulla.


Credo questo dipenda dal fatto che su hardware non recentissimi di queste funzioni se ne occupa direttamente il BIOS, senza passare per il sistema operativo.
_________________
"Larry the Cow was a bit frustrated at the current state of Linux Distributions..."
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31357
Location: here

PostPosted: Sat Mar 20, 2004 9:57 am    Post subject: Reply with quote

MyZelF wrote:
Credo questo dipenda dal fatto che su hardware non recentissimi di queste funzioni se ne occupa direttamente il BIOS, senza passare per il sistema operativo.

Si anche a me funzionano ma non si capisce mai se il volume e' al massimo o no. Con lo script di federico tutto e' piu' chiaro :D .
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3135

PostPosted: Sat Mar 20, 2004 11:48 am    Post subject: Reply with quote

MyZelF wrote:
codadilupo wrote:
a me i tasti funzione... funzionano senza aver dovuto fare nulla.


Credo questo dipenda dal fatto che su hardware non recentissimi di queste funzioni se ne occupa direttamente il BIOS, senza passare per il sistema operativo.


oddio, non recentissimi: é il solito asus L3400H celeron 2.0Ghz, 256Mb DDR 20Gb HD.... quando l'ho comprato, un anno fa, non era cosi' obsoleto ;-))

Coda
Back to top
View user's profile Send private message
koma
Advocate
Advocate


Joined: 06 Jun 2003
Posts: 2702
Location: Italy

PostPosted: Mon Mar 22, 2004 10:35 pm    Post subject: Reply with quote

nn ho ben capito come usarlo :) perchè nn fai un piccolo howto?
_________________
http://www.youtube.com/watch?v=_yoJI-Tl94g GLORY GLORY HYPNOTOAD
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31357
Location: here

PostPosted: Tue Mar 23, 2004 7:21 am    Post subject: Reply with quote

Per prima cosa si devono installare dei programmi.
Code:
# emerge xosd

Librerie per la visualizzazione a schermo di testo.

Code:
# emerege xbindkeys

Programma che premette di lanciare comandi con i tasti.

Code:
# emerge setmixer

Mixer da linea di comando.


Ora che si hanno tutti i programmi necessari possiamo lanciare xbindkeys per vedere come sono mappati i tasti per il controllo del volume.
Code:
$ xbindkeys -mk

Una volta che sappiamo come sono mappati i tasti che vogliamo usare si crea il file, dentro la nostra home, .xbindkeysrc che nel mio caso e'
Code:
#Vol +
      "~/osdvol.py +"
        m:0x0 + c:176
#Vol -
      "~/osdvol.py -"
        m:0x0 + c:174
#Muto
      "~/osdvol.py mute"
      m:0x0 + c:160


A questo punto scarichiamo il programma osdvol.py che gestisce il mixer con setmixer e stampa a schermo il volume grazie alla librerie xosd.
Code:
#!/usr/bin/env python

"""
osdvol.py permette tramite l'ausilio di setmixer
http://packages.debian.org/testing/sound/setmixer.html
il controllo del volume sonoro.
osdvol.py e' ideato per lavorare preferibilmente coi tasti
funzione adeguati sulle tastiere multimediali e portatili.
osdvol.py supporta:
- creazione automatica del file di configurazione ~/.setmixer
- aumento,diminuzione e mute/unmute del volume
- mantenimento delle impostazioni del volume passando dallo stato di
  mute a quello di unmute e viceversa
- possibilita' di variare il volume nello stato di mute per riottenerlo
  modificato tornando unmute
- stampa a schermo dello stato sonoro tramite xosd http://www.ignavus.net

Questo programma e' liberamente modificabile.
Sideralis Programs
Federico e Riccardo Galli
http://www.sideralis.net
"""
import os,sys
PATH=os.sep.join((os.getenv('HOME'),'.setmixer'))
""" XOSDOPT sono le opzioni che vengono passata e osd_cat """
XOSDOPT='--font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*" --shadow=2 --pos=top --align=right --colour=green --delay=1'

show_vol='|'.join((
r'''echo `setmixer -V vol +0''',
r'''awk '/vol/{split ($3,a,",");print a[1];}'` "% Volume"''',
r'''osd_cat ''' + XOSDOPT
))

if not os.path.exists(PATH):
    fp=file(PATH,'w')
    fp.write('0\n70\n')
    fp.close()

def ismute():
    fp=file(PATH,'r')
    val=int(fp.read(1))
    fp.close()
    return val

def vol_modify(flag):
    """
    modifica il volume in base a flag
    flag false: lo aumenta
    flag true:  lo diminuisce
    """
    vol=None
    op= flag and '-' or '+'
    if ismute():
        fp=file(PATH,'r+')
        fp.readline()
        value=int(fp.readline())
        value=eval("value %s 3" % op)
        if value>100: value=100
        elif value<0: value=0
        fp.seek(0)
        fp.write('1\n%d\n' % value)
        fp.close()
        vol=value
    else:
        os.system('setmixer vol %s3' % op)
    return vol

if len(sys.argv)!=2: print 'You must pass ONE argument'; sys.exit(1)
if sys.argv[1] not in ('+','-','mute'):
    print 'Argument "%s" not supported' % sys.argv[1]; sys.exit(1)
if sys.argv[1] in ('+','-'):
    vol=vol_modify(sys.argv[1]=='-' and True or False)
    if not vol: os.system(show_vol)
    else: os.system(r'echo "MUTE %d%% Volume" | osd_cat %s' % (vol,XOSDOPT))
elif sys.argv[1]=='mute':
    fp=file(PATH,"r+")
    flag=int(fp.readline())
   
    if flag:
        value=int(fp.readline())
        fp.seek(0)
        fp.write('0')
        os.system('setmixer vol %d' % value)
        os.system('echo "Mute OFF"| osd_cat %s' % XOSDOPT)
    else:
        out=os.popen('setmixer -V vol +0')
        value=int(out.readline().split(' - ')[1].split(',')[0])
        out.close()
        fp.seek(0)
        fp.write('1\n%d\n' % value)
        os.system("setmixer vol mute")
        os.system('echo "Mute ON"| osd_cat %s' % XOSDOPT)
    fp.close()


A questo punto ci manca solo di fare partire xbindkeys
Code:
$ xbindkeys

Bisogna lanciare questo comando ogni volta quindi aggiungetelo nel file di autostart del vostro wm.

PS: Grazie mille federico :D
_________________
Questions are guaranteed in life; Answers aren't.


Last edited by fedeliallalinea on Sat May 08, 2004 12:30 pm; edited 1 time in total
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Tue Mar 23, 2004 8:55 am    Post subject: Reply with quote

Cavoli grazie mille a te che hai fatto il piccolo howto al posto mio 8) 8)

Se trovate bachi o migliorie sono qui disponibile :)

Chiaramente con lo stesso principio è possibile visualizzare o settare molte combinazioni di tasti.
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3135

PostPosted: Tue Mar 23, 2004 9:31 am    Post subject: Reply with quote

federico wrote:
Chiaramente con lo stesso principio è possibile visualizzare o settare molte combinazioni di tasti.


Infatti pensavo, appena ho sistemato anche il desktop, di sfruttare questo input per visualizzare i tasti speciali della tastiera wirless logitech ;-))

tienti pronto, che ti tampinero' non poco :D

Coda
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Tue Mar 23, 2004 9:41 am    Post subject: Reply with quote

Ho anche io su un pc quella tastiera, se una sera di queste ho tempo mi porto avanti col lavoro :))

Dunque abbiamo, un tasto per lo sleep (e a me nn va lo spleep percui sara' dura), muto, volume su e giu, e quelli sono a posto, poi tasti multimediali
play/pause avanti e indietro e stop (su quale programma li facciamo agire?)
Infine posta, home, cerca e.. cos'e' l'ultimo?

Fede
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3135

PostPosted: Tue Mar 23, 2004 9:57 am    Post subject: Reply with quote

federico wrote:
Infine posta, home, cerca e.. cos'e' l'ultimo?


il bloc maiusc e il numlock te li sei dimenticati: e' vero che non sono peculiari della tastiera, ma, visto che non ha led che indichino lo stato dei tasti, é cmq comodo vedere la scrittina verde, quando li premi, che ti dice: attivato/disattivato ;-))

P.S.: mi pare ci sia anche la navigazione browser, la cartella stampanti, e la rotellina per lo scroll da tastiera ;-)

P.S.: esiste già un programma, mi pare, per la gestione degli hotkeys... magari si puo' prendere spunto da li'.

Coda
Back to top
View user's profile Send private message
shev
Bodhisattva
Bodhisattva


Joined: 03 Feb 2003
Posts: 4084
Location: Italy

PostPosted: Tue Mar 23, 2004 10:23 am    Post subject: Reply with quote

codadilupo wrote:
P.S.: esiste già un programma, mi pare, per la gestione degli hotkeys... magari si puo' prendere spunto da li'


Esatto, io per gestire i tasti multimediali della mia logitech wireless uso con soddisfazione hotkeys, molto semplice da configurare, personalizzare ed usare. Ha anche "le scrittine verdi" ;) (con colore personalizzabile a scelta).
In alternativa esiste anche lineakd, ma l'ho provato quando ancora era alle prime versioni e non m'aveva impressionato molto.
_________________
Se per vivere ti dicono "siediti e stai zitto" tu alzati e muori combattendo
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Tue Mar 23, 2004 10:59 am    Post subject: Reply with quote

codadilupo wrote:

P.S.: mi pare ci sia anche la navigazione browser, la cartella stampanti, e la rotellina per lo scroll da tastiera ;-)


Mi sa che la tua e' molto + multimediale della mia..
Proviamo questo programma di gestione degli hotkeys e vediamo un po' cosa fa e cosa non ..

Fede
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
codadilupo
Advocate
Advocate


Joined: 05 Aug 2003
Posts: 3135

PostPosted: Tue Mar 23, 2004 11:19 am    Post subject: Reply with quote

federico wrote:
Mi sa che la tua e' molto + multimediale della mia..
Proviamo questo programma di gestione degli hotkeys e vediamo un po' cosa fa e cosa non ..


le nostre (mia e di shev) sono questa

Coda
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Tue Mar 23, 2004 9:00 pm    Post subject: Reply with quote

La mia e' NETTAMENTE meno multimediale :)
E' probabilmente un modello + vecchio ma presumo che la teoria di funzionamento sia la medesima
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
maschievano
n00b
n00b


Joined: 18 Apr 2004
Posts: 41
Location: Padova (italy)

PostPosted: Sat Jan 15, 2005 9:28 pm    Post subject: Reply with quote

shev wrote:
codadilupo wrote:
P.S.: esiste già un programma, mi pare, per la gestione degli hotkeys... magari si puo' prendere spunto da li'


Esatto, io per gestire i tasti multimediali della mia logitech wireless uso con soddisfazione hotkeys, molto semplice da configurare, personalizzare ed usare. Ha anche "le scrittine verdi" ;) (con colore personalizzabile a scelta).
In alternativa esiste anche lineakd, ma l'ho provato quando ancora era alle prime versioni e non m'aveva impressionato molto.


Come si fa a far partire hotkeys a DM già avviato?
Se faccio
Code:
rc-update add hotkeys default


lo script viene lanciato durante l'avvio testuale e va in errore non trovando X in run mode.
_________________
Gentoo 2005.1 - windowmaker 0.91
I also write on Forum HTML
The avatar is a picture of me, when I was a baby - Pasquinelli '73
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31357
Location: here

PostPosted: Sat Jan 15, 2005 9:50 pm    Post subject: Reply with quote

Con
Code:
# /etc/init.d/hotkeys restart

_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
maschievano
n00b
n00b


Joined: 18 Apr 2004
Posts: 41
Location: Padova (italy)

PostPosted: Sat Jan 15, 2005 10:13 pm    Post subject: Reply with quote

Così ogni volta che apro X devo da terminal dare il comando.
Invece dovrebbe esserci qualcosa tipo Autostart
_________________
Gentoo 2005.1 - windowmaker 0.91
I also write on Forum HTML
The avatar is a picture of me, when I was a baby - Pasquinelli '73
Back to top
View user's profile Send private message
shev
Bodhisattva
Bodhisattva


Joined: 03 Feb 2003
Posts: 4084
Location: Italy

PostPosted: Sat Jan 15, 2005 10:28 pm    Post subject: Reply with quote

Io lo avvio tramite apposita linea di configurazione in .xinitrc, così viene lanciato ad ogni startx. Per maggiori info, cerca ".xinitrc" su questo forum, dovresti trovare diversa roba a riguardo.
_________________
Se per vivere ti dicono "siediti e stai zitto" tu alzati e muori combattendo
Back to top
View user's profile Send private message
nick_spacca
l33t
l33t


Joined: 29 May 2004
Posts: 689
Location: Paris/France

PostPosted: Fri Feb 25, 2005 6:26 pm    Post subject: Reply with quote

Io non riesco a scaricare + il file di Federico....forse il link non e' + quello giusto!!!
(poco male comunque visto che si puo' fare copia/incolla dal testo...)
_________________
I can resist anything but temptation.
(O. Wilde)
Back to top
View user's profile Send private message
koma
Advocate
Advocate


Joined: 06 Jun 2003
Posts: 2702
Location: Italy

PostPosted: Fri Feb 25, 2005 8:14 pm    Post subject: Reply with quote

a me i tasti FN non funzionano e xbindkeys non li traccia.
_________________
http://www.youtube.com/watch?v=_yoJI-Tl94g GLORY GLORY HYPNOTOAD
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Fri Feb 25, 2005 9:06 pm    Post subject: Reply with quote

koma wrote:
a me i tasti FN non funzionano e xbindkeys non li traccia.


Che portatile hai? Hai provato ad usare acpi?
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
koma
Advocate
Advocate


Joined: 06 Jun 2003
Posts: 2702
Location: Italy

PostPosted: Fri Feb 25, 2005 10:49 pm    Post subject: Reply with quote

latitude d600, no, come provo?
_________________
http://www.youtube.com/watch?v=_yoJI-Tl94g GLORY GLORY HYPNOTOAD
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31357
Location: here

PostPosted: Fri Feb 25, 2005 11:00 pm    Post subject: Reply with quote

koma wrote:
a me i tasti FN non funzionano e xbindkeys non li traccia.

Anche a me ma usavo altri file. acpi non posso metterlo
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
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