Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: Nodon 16 Ledna 2011, 13:16:24

Název: Ikona pro maximalizaci - skype
Přispěvatel: 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?
Název: Re: Ikona pro maximalizaci - skype
Přispěvatel: GdH 16 Ledna 2011, 13:32:41
Pokud chceš, aby jedna ikona zapínala i ukončovala, dej si do spouštěče tento příkaz:

Kód: [Vybrat]
bash -c "[ `pidof skype` ] && killall skype || skype"nebo lépe
Kód: [Vybrat]
bash -c "if ! killall skype; then skype;fi"
Název: Re: Ikona pro maximalizaci - skype
Přispěvatel: Nodon 16 Ledna 2011, 13:54:26
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í.
Název: Re: Ikona pro maximalizaci - skype
Přispěvatel: GdH 16 Ledna 2011, 16:35:01
Kód: [Vybrat]
sudo apt-get install wmctrl
Do spouštěče:

Kód: [Vybrat]
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.
Název: Re: Ikona pro maximalizaci - skype
Přispěvatel: Nodon 18 Ledna 2011, 16:55:48
Vyzkouším, dík.
Název: Re: Ikona pro maximalizaci - skype
Přispěvatel: karlitos 20 Ledna 2011, 21:00:14
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 :
Kód: [Vybrat]
#!/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.
Název: Re: Ikona pro maximalizaci - skype
Přispěvatel: GdH 20 Ledna 2011, 23:49:15
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.
Název: Re: Ikona pro maximalizaci - skype
Přispěvatel: karlitos 22 Ledna 2011, 18:19:21
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 :
Kód: [Vybrat]
if existuje okno skypu
than wmctrl -R Skype™
else python wake_up_skype_over_Dbus.py
Bohuzel je to zatim nad me znalosti programovani v pythonu.
Název: Re: Ikona pro maximalizaci - skype
Přispěvatel: GdH 22 Ledna 2011, 18:36:25
Na tohle ti stačí Bash a wmctrl.

Kód: [Vybrat]
if wmctrl -l|grep Skype™
atd. To zvládneš ;)