[+] Hotkeys - OSD i dźwi

Tematy związane z oprogramowaniem, instalacją, konfiguracją
Kw4s
Posty: 14
Rejestracja: 01 maja 2008, 11:22

[+] Hotkeys - OSD i dźwięk

Post autor: Kw4s »

Witam

Skonfigurowałem hotkeys tak aby obsługiwał moją klawiaturę multimedialną, mój config wygląda tak:

Kod: Zaznacz cały

<?xml version="1.0"?>
<definition>
        <config model="tracer 17-MTB">
                <userdef keycode="162" command="dcop amarok player playPause">Play / Pause</userdef>
                <userdef keycode="164" command="dcop amarok player stop">Stop</userdef>
                <userdef keycode="144" command="dcop amarok player prev">Previous Track</userdef>
                <userdef keycode="153" command="dcop amarok player prev">Next Track</userdef>
                <userdef keycode="176" command="amixer sset 'PCM',0 5%+">Volume Up (+5%)</userdef>
                <userdef keycode="174" command="amixer sset 'PCM',0 5%-">Volume Down (-5%)</userdef>
                <userdef keycode="160" command="amixer sset 'PCM',0 toggle; amixer sset 'Master',0 toggle">Mute / Unmute</userdef>
                <userdef keycode="236" command="evolution --online">Evolution Mail</userdef>
                <userdef keycode="178" command="iceweasel">Iceweasel Web Browser</userdef>
                <userdef keycode="230" command="nautilus">Nautilus</userdef>
                <userdef keycode="232" command="xterm">XTerm</userdef>
        </config>
        <contributor>
                <name>lol</name>
                <email>lol</email>
        </contributor>
</definition>
Wszystko działa wspaniale, jednak mam kilka problemów:

1. Wyciszenie, oraz zwiększenie / zmniejszenie głośności - owszem, działa, ale tylko kanały Master / Master Mono (wycisza tylko głośniki), mnie interesuje głównie kanał PCM (wycisza zarówno głośniki, jak i słuchawki), dlatego właśnie musiałem ustawić własne komendy zamiast po prostu <Mute>, <VolUp>, <VolDown> - pytanie brzmi: jak zmienić wyciszany kanał? Bo w /etc/hotkeys.conf mogę tylko ustawić, jakich programów używam. Oczywiście ze zmianą głośności jest to samo.

2. Czy da się w jakiś sposób pozbyć tego napisu "Launching:" z OSD:
http://img357.imageshack.us/img357/4638/osd1vw8.th.jpg]
żeby było tylko samo "Previous Track", "Play / Pause" np.:
Evolution
zamiast:
Launching:
Evolution
itp.
Wiem, że sam sobie jestem winny stosując userdefy zamiast zdefiniowanych w hotkeys komend, ale ja jednak wole takie rozwiązanie.

PS. Jeśli zły dział, proszę o przeniesienie, ten wydawał mi się najodpowiedniejszy.
Akkon
Junior Member
Posty: 833
Rejestracja: 09 listopada 2007, 14:06

Post autor: Akkon »

Kw4s pisze:1. Wyciszenie, oraz zwiększenie / zmniejszenie głośności - owszem, działa, ale tylko kanały Master / Master Mono (wycisza tylko głośniki), mnie interesuje głównie kanał PCM (wycisza zarówno głośniki, jak i słuchawki)
Musisz sobie ustawić inne polecenie wyciszenia. Ja np. żeby wyciszyć kanał CD mam coś takiego:

Kod: Zaznacz cały

<userdef keycode="160" command="amixer sset CD toggle">Mute CD</userdef>
2. Czy da się w jakiś sposób pozbyć tego napisu "Launching:" z OSD:
Wszystkie parametry związane z wyglądem znajdują się w pliku:

Kod: Zaznacz cały

/etc/hotkeys.conf
Wiem, że sam sobie jestem winny stosując userdefy zamiast zdefiniowanych w hotkeys komend, ale ja jednak wole takie rozwiązanie
Jak zauważyłeś ja też stosuję takie rozwiązanie, bo (1) nie wszystkie standardowe ustawienia mi działały, (2) tak jest zdecydowanie wygodniej - można sobie wszystko skonfigurować jak się chce, a oto chyba w Linuksie chodzi, nie :-P
Kw4s
Posty: 14
Rejestracja: 01 maja 2008, 11:22

Post autor: Kw4s »

Akkon pisze:
Kw4s pisze:1. Wyciszenie, oraz zwiększenie / zmniejszenie głośności - owszem, działa, ale tylko kanały Master / Master Mono (wycisza tylko głośniki), mnie interesuje głównie kanał PCM (wycisza zarówno głośniki, jak i słuchawki)
Musisz sobie ustawić inne polecenie wyciszenia. Ja np. żeby wyciszyć kanał CD mam coś takiego:

Kod: Zaznacz cały

<userdef keycode="160" command="amixer sset CD toggle">Mute CD</userdef>

Kod: Zaznacz cały

                <userdef keycode="176" command="amixer sset 'PCM',0 5%+">Volume Up (+5%)</userdef>
                <userdef keycode="174" command="amixer sset 'PCM',0 5%-">Volume Down (-5%)</userdef>
                <userdef keycode="160" command="amixer sset 'PCM',0 toggle]
Tak to wygląda w moim obecnym konfigu, i o ile do Mute / Unmute nie mam (prawie) zastrzeżeń (jedyne co bym chciał, to żeby zamiast "Mute / Unmute" było samo "Mute" albo samo "Unmute" zależnie od tego co jest aktualnie wykonywane :P), to zmiana głośności już nie działa do końca tak jakbym chciał. Otóż standardowe <VolUp> i <VolDown> z hotkeys wyświetlają taki pasek pokazujący głośność. A obecnie mam tylko "Volume Down (-5%)" i mogę się tylko domyślać, czy dźwięk jest na poziomie 60%, czy 90% :P

[quote="Akkon"]
[quote]2. Czy da się w jakiś sposób pozbyć tego napisu "Launching:" z OSD:[/quote]
Wszystkie parametry związane z wyglądem znajdują się w pliku:
[code]/etc/hotkeys.conf
[/quote]
Mój /etc/hotkeys.conf:

Kod: Zaznacz cały

############################################################
# Global configuration for hotkeys                         #
############################################################

# These are the default values.
# A line starting with # is a comment.

### Specify the default keyboard  (without the .def extension) so you
### don't need to specify -t every time
Kbd=tracer-17MTB
# CDROM=/dev/cdrom

# PrevTrack=dcop amarok player prev
# Play=dcop amarok player playPause
# Stop=dcop amarok player stop
# Pause=dcop amarok player playPause
# NextTrack=dcop amarok player next
# Rewind=

# WebBrowser=iceweasel
# Email=evolution
# Calculator=xcalc
# FileManager=gmc
# MyComputer=gmc
# MyDocuments=gmc
# Favorites=gnome-moz-remote --remote=openBookmarks
# Transfer=gtp
# Record=grecord
# Shell=xterm
# ScreenSaver=xscreensaver-command -activate
# NewsReader=akregator
# Communities=mozilla -remote 'openURL([url]http://slashdot.org[/url])'
# Search=iceweasel google.pl
# Idea=mozilla -remote 'openURL([url]http://sourceforge.net[/url])'
# Shopping=mozilla -remote 'openURL([url]http://thinkgeek.com[/url])'
# Go=iceweasel google.pl
# Print=lpr
# Rotate=

# osd_font=-*-lucida-bold-*-normal-*-34-*-*-*-*-216-iso8859-*
### For the color, you can either use the strings in /etc/X11/rgb.txt,
### or use the RGB syntax #RRGGBB, e.g. ##A086FF
osd_color=Orange
# osd_timeout=3
### osd_position is either 'top' or 'bottom'
osd_position=bottom
# osd_offset=25
Jak widać nie ma nic związanego z napisem "Launching:" w OSD :P
A

Kod: Zaznacz cały

man hotkeys
mówi o OSD tylko tyle:

Kod: Zaznacz cały

         # OSD stuffs
         osd_font        lucidasanstypewriter-bold-24
         (should be aliased to -*-lucidatypewriter-bold-r-normal-*-*-240-*-*-*-*-*-*)
         osd_color       LawnGreen
         osd_timeout     3
         osd_position    bottom
         osd_offset      25
EDIT:
OK, chyba znalazłem rozwiązanie problemu z OSD (pozbycie się "Launching:") - wygląda na to, że wystarczy wyedytować 1 plik źródłowy i usunąć jedną linijkę. Ale teraz pojawia się nowy problem :P mianowicie:

Kod: Zaznacz cały

noname@debian:~/Desktop/hotkeys-0.5$ ./configure 
...
checking for db_open in -ldb2... no
You need Berkeley DB 2 to compile successfully.
Please use --with-db2-incdir and --with-db2-libdir to configure.
noname@debian:~/Desktop/hotkeys-0.5$ ./configure --help
...
  --with-db2-inc=DIR      Set the include directory of Berkeley DB2
  --with-db2-lib=DIR      Set the library directory of Berkeley DB2
...
noname@debian:~/Desktop/hotkeys-0.5$ 
 
wie ktoś jakie powinienem podać ścieżki do tej Berkeley DB2? Próbowałem szukać w repo db2 - nic, jak wyszukałem Berkeley to się okazało że w repo jest wersja db4.6 (którą mam, nawiasem mówiąc, zainstalowaną):

Kod: Zaznacz cały

libdb4.6
Berkeley v4.6 Database Libraries [runtime] 
This is the runtime package for programs that use the v4.6 Berkeley
database library.
libdb4.6-dev
Berkeley v4.6 Database Libraries [development] 
This is the development package which contains headers and static
libraries for the Berkeley v4.6 database library.
Akkon
Junior Member
Posty: 833
Rejestracja: 09 listopada 2007, 14:06

Post autor: Akkon »

Kw4s pisze:EDIT:
OK, chyba znalazłem rozwiązanie problemu z OSD (pozbycie się "Launching:") - wygląda na to, że wystarczy wyedytować 1 plik źródłowy i usunąć jedną linijkę
Skoro znalazłeś rozwiązanie to wypadałoby je chyba opisać :-/ W ten sposób nie tylko Ty będziesz mógł z tego skorzystać. Być może wtedy będzie również więcej chętnych żeby Ci pomóc ;-)
Kw4s
Posty: 14
Rejestracja: 01 maja 2008, 11:22

Post autor: Kw4s »

Akkon pisze:
Kw4s pisze:EDIT:
OK, chyba znalazłem rozwiązanie problemu z OSD (pozbycie się "Launching:") - wygląda na to, że wystarczy wyedytować 1 plik źródłowy i usunąć jedną linijkę
Skoro znalazłeś rozwiązanie to wypadałoby je chyba opisać :-/ W ten sposób nie tylko Ty będziesz mógł z tego skorzystać. Być może wtedy będzie również więcej chętnych żeby Ci pomóc ]
No więc wygląda na to, że za wyświetlanie tego nieszczęsnego "Launching:" odpowiadają dwa fragmenty w pliku hotkeys.c w źródłach:
Wyświetlanie Launching przy komendach zdefiniowanych w hotkeys (chyba :P):

Kod: Zaznacz cały

#ifdef HAVE_LIBXOSD
        xosd_display(osd, 0, XOSD_string, "Launching:");
        xosd_display(osd, 1, XOSD_string, getConfig(type));
#endif
oraz wyświetlanie launching przy userdefach:

Kod: Zaznacz cały

#ifdef HAVE_LIBXOSD
                xosd_display(osd, 0, XOSD_string, "Launching:");
                xosd_display(osd, 1, XOSD_string, kbd.customCmds[i].desc);
#endif
a funkcja xosd_display przyjmuje następujące parametry:
  • osd to wskaźnik do obiektu osd przy pomocy którego ma to być wyświetlane
  • 0 lub 1 (drugi parametr) to linia osd w której ma być wyświetlony tekst
  • 3 parametr (XOSD_string) to typ wyświetlanych danych.
  • i w końcu czwarty parametr - to co ma być wyświetlone
Wynika z tego,że pozbycie się tego napisu sprowadza się do wyedytowania pliku hotkeys.c, i zamienienia tych 2 fragmentów na poniższe:
pierwszy:

Kod: Zaznacz cały

#ifdef HAVE_LIBXOSD
        xosd_display(osd, 0, XOSD_string, getConfig(type));
#endif
drugi:

Kod: Zaznacz cały

#ifdef HAVE_LIBXOSD
                xosd_display(osd, 0, XOSD_string, kbd.customCmds[i].desc);
#endif
Ale jak już napisałem pojawia się malutki problem (niezwiązany z wyedytowaniem źródła, przy normalnym, nietkniętym jest to samo) z Berkeley DB 2 a konkretnie ścieżkami do odpowiednich plików :P
ODPOWIEDZ