View previous topic :: View next topic |
Author |
Message |
federico Advocate
Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Wed Mar 17, 2004 11:22 pm Post subject: [TIP] Gestire il mixer via tasti FN |
|
|
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 |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31374 Location: here
|
Posted: Fri Mar 19, 2004 8:40 pm Post subject: |
|
|
Grazie a federico sono riuscito a provare questo script e devo dire che e' molto carino e funzionale . _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
codadilupo Advocate
Joined: 05 Aug 2003 Posts: 3135
|
Posted: Fri Mar 19, 2004 8:45 pm Post subject: |
|
|
fedeliallalinea wrote: | Grazie a federico sono riuscito a provare questo script e devo dire che e' molto carino e funzionale . |
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 !
Grazie a federico,
Coda |
|
Back to top |
|
|
MyZelF Bodhisattva
Joined: 25 Feb 2003 Posts: 2010 Location: Venice, Italy
|
Posted: Fri Mar 19, 2004 11:03 pm Post subject: |
|
|
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 |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31374 Location: here
|
Posted: Sat Mar 20, 2004 9:57 am Post subject: |
|
|
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 . _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
codadilupo Advocate
Joined: 05 Aug 2003 Posts: 3135
|
Posted: Sat Mar 20, 2004 11:48 am Post subject: |
|
|
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 |
|
|
koma Advocate
Joined: 06 Jun 2003 Posts: 2702 Location: Italy
|
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31374 Location: here
|
Posted: Tue Mar 23, 2004 7:21 am Post subject: |
|
|
Per prima cosa si devono installare dei programmi.
Librerie per la visualizzazione a schermo di testo.
Code: | # emerege xbindkeys |
Programma che premette di lanciare comandi con i tasti.
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.
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
Bisogna lanciare questo comando ogni volta quindi aggiungetelo nel file di autostart del vostro wm.
PS: Grazie mille federico _________________ 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 |
|
|
federico Advocate
Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Tue Mar 23, 2004 8:55 am Post subject: |
|
|
Cavoli grazie mille a te che hai fatto il piccolo howto al posto mio
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 |
|
|
codadilupo Advocate
Joined: 05 Aug 2003 Posts: 3135
|
Posted: Tue Mar 23, 2004 9:31 am Post subject: |
|
|
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
Coda |
|
Back to top |
|
|
federico Advocate
Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Tue Mar 23, 2004 9:41 am Post subject: |
|
|
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 |
|
|
codadilupo Advocate
Joined: 05 Aug 2003 Posts: 3135
|
Posted: Tue Mar 23, 2004 9:57 am Post subject: |
|
|
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 |
|
|
shev Bodhisattva
Joined: 03 Feb 2003 Posts: 4084 Location: Italy
|
Posted: Tue Mar 23, 2004 10:23 am Post subject: |
|
|
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 |
|
|
federico Advocate
Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Tue Mar 23, 2004 10:59 am Post subject: |
|
|
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 |
|
|
codadilupo Advocate
Joined: 05 Aug 2003 Posts: 3135
|
Posted: Tue Mar 23, 2004 11:19 am Post subject: |
|
|
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 |
|
|
federico Advocate
Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Tue Mar 23, 2004 9:00 pm Post subject: |
|
|
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 |
|
|
maschievano n00b
Joined: 18 Apr 2004 Posts: 41 Location: Padova (italy)
|
Posted: Sat Jan 15, 2005 9:28 pm Post subject: |
|
|
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 |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31374 Location: here
|
Posted: Sat Jan 15, 2005 9:50 pm Post subject: |
|
|
Con
Code: | # /etc/init.d/hotkeys restart |
_________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
maschievano n00b
Joined: 18 Apr 2004 Posts: 41 Location: Padova (italy)
|
Posted: Sat Jan 15, 2005 10:13 pm Post subject: |
|
|
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 |
|
|
shev Bodhisattva
Joined: 03 Feb 2003 Posts: 4084 Location: Italy
|
Posted: Sat Jan 15, 2005 10:28 pm Post subject: |
|
|
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 |
|
|
nick_spacca l33t
Joined: 29 May 2004 Posts: 689 Location: Paris/France
|
Posted: Fri Feb 25, 2005 6:26 pm Post subject: |
|
|
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 |
|
|
koma Advocate
Joined: 06 Jun 2003 Posts: 2702 Location: Italy
|
|
Back to top |
|
|
gutter Bodhisattva
Joined: 13 Mar 2004 Posts: 7162 Location: Aarau, Aargau, Switzerland
|
Posted: Fri Feb 25, 2005 9:06 pm Post subject: |
|
|
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 |
|
|
koma Advocate
Joined: 06 Jun 2003 Posts: 2702 Location: Italy
|
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31374 Location: here
|
Posted: Fri Feb 25, 2005 11:00 pm Post subject: |
|
|
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 |
|
|
|