Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: Nodon 16 Ledna 2011, 13:16:24
-
Ahoj, potřeboval bych abych když kliknu na ikonu skype kterou mám na ploše, aby se mi nezapl další skype ale pouze vyhodil z lišty ten který už je zaplý. Nešlo by to nějak vytvořit nový spoušteč, který by volal příkaz v terminálu který by něco takového dělal?
-
Pokud chceš, aby jedna ikona zapínala i ukončovala, dej si do spouštěče tento příkaz:
bash -c "[ `pidof skype` ] && killall skype || skype"nebo lépe
bash -c "if ! killall skype; then skype;fi"
-
Potřeboval bych spíše něco co zjistí jestli je skype zapnutý, a když nebude tak ho zapne a když bude tak ho vyhodí do popředí.
-
sudo apt-get install wmctrl
Do spouštěče:
bash -c "if pidof skype; then wmctrl -R Skype™; else skype; fi"
Pokud Skype běží a jeho okno bude existovat (nebude minimalizované Skype ikonou v oznamovací oblasti), udělá to to samé, jako když klikneš na tu ikonu v oznamovací oblasti panelu.
-
Vyzkouším, dík.
-
Diky GDH K+ presne tohle sem shanel. Jenom by to chtelo poresit tu maximalizaci z listy. Zkusim popatrat v nastaveni wmctrl.
EDIT : nasel jsem hodne zajimave forum : http://askubuntu.com/questions/16612/how-can-i-activate-a-panel-icon-via-a-script-or-get-its-screen-co-ordinates-to (http://askubuntu.com/questions/16612/how-can-i-activate-a-panel-icon-via-a-script-or-get-its-screen-co-ordinates-to) Popatram co z toho funguje.
;D ;D ;D
Tak tenhle Pythoni skript opravdu umi probrat Skype z oznamovaci oblasti :
#!/usr/bin/env python
import dbus
# Get a D-Bus interface to Skype
bus = dbus.SessionBus()
skype_object = bus.get_object('com.Skype.API', '/com/Skype')
skype = dbus.Interface(skype_object, dbus_interface='com.Skype.API')
# Ask for permission to control Skype
response = skype.Invoke("NAME " + __file__)
response = skype.Invoke("PROTOCOL 8")
# Issue commands
response = skype.Invoke("SET WINDOWSTATE NORMAL")
Bohuzel me znalosti pythonu zatim nejsou na dostatecne urovni abych umel posoudit jestli bude pracovat za vsech okolnosti.
-
Pokud bude mít Skype zapnutý D-Bus, tak to fungovat bude. Ten skript jen posílá příkazy na API Skype. Samozřejmě je možné podstatně víc, než jen zobrazit okno.
-
No pro me potreby cokoliv co zobrazi okno z tray aniz by se muselo klikat na ikonu v trayi. Funguje to celkem spolehlive az na pripad kdy je otevrene nejakej okno skypu ale je neaktivni a na pozadi. Ja totiz pro velmi specificke ucely spoustim vsechna okna maximalizovana a ve chvili kdy je okno zobrazene ale neni aktivni a je na pozadi a spustim ten skript zobrazi mi ho to bohuzel v klasicke velikosti.
Poresil by to skript :
if existuje okno skypu
than wmctrl -R Skype™
else python wake_up_skype_over_Dbus.pyBohuzel je to zatim nad me znalosti programovani v pythonu.
-
Na tohle ti stačí Bash a wmctrl.
if wmctrl -l|grep Skype™
atd. To zvládneš ;)