Kirjoittaja Aihe: Ohjelma käyntiin komentoriviltä kaikille työpöydille?  (Luettu 2830 kertaa)

kossu

  • Käyttäjä
  • Viestejä: 15
    • Profiili
Millä saan ohjelman komentoriviltä käynnistettyä siten, että se näkyy kaikilla työpöydillä? Käytössä Ubuntu 5.10 ja gnome 2.12.1.
HP Elitebook 8530p / Ubuntu 8.10

kossu

  • Käyttäjä
  • Viestejä: 15
    • Profiili
Re: Ohjelma käyntiin komentoriviltä kaikille työpöydille?
« Vastaus #1 : 18.05.06 - klo:16.55 »
wmctrl -niminen ohjelma näyttäisi olevan aika lähellä, mutta vielä en keksinyt haluamaani. Tarkoitus olisi, että Linpopup olisi näkyvillä jokaisella työpöydällä.

Ongelmani ja erityisesti viritelmäni naurattaa jo vähän itseänikin, mutta kuvio on seuraava:
Ubuntu on pääkäyttis ja ajan vmwaressa winkkaria ja  mailit tulee sinne Outlookiin.
Kun vmware on pienennettynä tai olen toisella työpöydällä, niin en saa mitään idikaatiota siitä, että mailia pamahti, vaan aina sillointällöin pitää klikkailla vmware-ikkuna isoksi.

Nyt minulla on Outlookissa rule, joka käynnistää windows komentojonon aina kun tulee uusi maili. Tuo komentojono taasen lähettää netsendillä popup-messagen ubuntuuni ja Linpopup nappaa sen ja alkaa vilkkumaan, jolloin tiedän että pienennettynä olevaan vmware-winkkariin tuli mailia. :D

Milläs muuten saisin jonkun skriptin ajettua aina silloin, kun vaihdan työpöytää? Tuolloin nimittäin olisi ongelma ratkaistu, koska tuolla wmctrl:llä saa jonkin ikkunan siirrettyä aina kulloinkin aktiiviselle työpöydälle. Esim 'wmctrl -R LinPopUp' Tuolla se pirulainen kyllä näyttää maksimoituvan samalla eli ei pysy minimoituna :P
HP Elitebook 8530p / Ubuntu 8.10

mikkohuo

  • Käyttäjä
  • Viestejä: 562
  • The Ubuntu Counter Project - user number #3339
    • Profiili
Re: Ohjelma käyntiin komentoriviltä kaikille työpöydille?
« Vastaus #2 : 18.05.06 - klo:17.08 »
Eikös tuon saman asian tee gnomen mail notification? (Järjestelmä -> Asetukset -> Mail notification)

Anssi

  • Käyttäjä
  • Viestejä: 1342
    • Profiili
Re: Ohjelma käyntiin komentoriviltä kaikille työpöydille?
« Vastaus #3 : 18.05.06 - klo:18.49 »
tuo sinun kuvio on kyllä ehkä hiukan sekava, mutta onnistuuko jos tuon wmware:n asettaa näkymään joka työpöydälle?

vai onko ongelma sitten että tuo Linpopup aukeaa vain tiettyyn työpöytään?
onko tuo linpopup paneelissa? jos on niin senhän voi laittaa näkymään joka työtilassa.
kumpikin ohjelma on minulle tuntematon joten en parempia neuvoja keksinyt.

raimo

  • Käyttäjä
  • Viestejä: 4268
  • openSUSE Tumbleweed
    • Profiili
Re: Ohjelma käyntiin komentoriviltä kaikille työpöydille?
« Vastaus #4 : 18.05.06 - klo:21.06 »
Rakentelin joutessani pienen ohjelman joka ilmenee jokaisella työpöydällä käynnistyessään.
En tiedä auttaako se asiassa sitten, mutta ilmenee kuitenkin jokaisella työpöydällä ja näyttää halutun tekstin jopa. ::)

Tallenna esim. /usr/bin hakemistoon haluamallasi nimellä, vaikkapa popup ja chmod 755 sitten sille.
Koodia: [Valitse]
#!/usr/bin/perl
#
# kopioi /usr/bin hakemistoon nimellä popup
# chmod 755 /usr/bin/popup
# käynnistä komennolla popup tai popup [näytettävä teksti]

use strict;
use Gtk2 "-init";

# -- asetukset -- #
my $message = "Mailia on!";       # oletusviesti
my $width   = 150;     # leveys
my $height  = 20;     # korkeus
# --           -- #

my $i = 0;
my $msg = "";

while ($ARGV[$i] && $i < 10){ #parametrit ja max. pituus
$msg = "$msg $ARGV[$i]";
$i++;
}

$message = $msg if $msg; # $message tai parametreinä annettu

my $window = Gtk2::Window -> new("toplevel"); #toplevel tai popup = normaali /  kehyksetön ikkuna
   $window -> stick;                       # kaikille työpöydille
   $window -> set_keep_above(1); # ylimpänä   
   $window -> set_resizable(0);      # ei kokomuutosta
   $window -> set_position("center-always"); # näytön keskelle
   $window -> set_size_request($width, $height);
   $window -> signal_connect(delete_event => sub{$window -> destroy;});
   $window -> signal_connect(destroy => sub {Gtk2 -> main_quit;});
my $label  = Gtk2::Label -> new($message);
   
$window -> add($label);
$window -> show_all;

Gtk2 -> main;

exit 0;
#

edit: kuva
edit2: haluttu viesti parametrinä






[ylläpito on poistanut liitteen]
« Viimeksi muokattu: 19.05.06 - klo:11.27 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

kossu

  • Käyttäjä
  • Viestejä: 15
    • Profiili
Re: Ohjelma käyntiin komentoriviltä kaikille työpöydille?
« Vastaus #5 : 19.05.06 - klo:08.19 »
Lainaus
Eikös tuon saman asian tee gnomen mail notification? (Järjestelmä -> Asetukset -> Mail notification)

Joo tekisi, jos käyttäisi jotakin Linux mail-clienttia, mutta käytännön syistä (Outlookin+Exchangen ei featuret, kalenterit jne) käytän Outlookia ja kun tuo Winkkari pitää jokatapauksessa olla tuossa päällä, niin en ole vaihtanut esim Evolutioniin+Connectoriin. Pitäisi kyllä kokeilla taas Evolutionina pitkästä aikaa josko nykyään toimisivat hyvin.

Lainaus
tuo sinun kuvio on kyllä ehkä hiukan sekava, mutta onnistuuko jos tuon wmware:n asettaa näkymään joka työpöydälle?

Ei auta, koska pienennetyn (eikä kyllä suurennetunkaan) vmwaren ikoni ei tiedä mistää maileista mitään.

Lainaus
vai onko ongelma sitten että tuo Linpopup aukeaa vain tiettyyn työpöytään?
onko tuo linpopup paneelissa? jos on niin senhän voi laittaa näkymään joka työtilassa.
kumpikin ohjelma on minulle tuntematon joten en parempia neuvoja keksinyt.

Joo, tuo on ongelma. Kun Linpopup käynnistyy gnomen autostartista, niin se näkyy vain yhdellä työpöydällä ja sitten pitää mennä käsin klikkailemaan linpopupin ikonia ja asettaa sieltä "Always on visible workspace" päälle. Eli ongelma yhdellä lauseella: Miten saan käynnistettävälle ohjelmalle päälle tuon "Always on visible workspace" -option ilman että se pitää käydä käynnistymisen jälkeen erikseen käsin laittamassa?  :)

Lainaus
[Rakentelin joutessani pienen ohjelman joka ilmenee jokaisella työpöydällä käynnistyessään.
En tiedä auttaako se asiassa sitten, mutta ilmenee kuitenkin jokaisella työpöydällä ja näyttää halutun tekstin jopa. Roll Eyes

Tuo on aika näppärä ja paljon hienompi kuin Linpopup, kiitos! Varsinaista ongelmaa tuo ei poista, mutta tuli tuossa mieleen, että jos tekisi pienen tcp-servon perlillä linuksin päähän, joka vain kuuntelee jotakin porttia ja heti kun porttiin tulee kamaa (tai vaikka vain siten, että heti kun porttiin tulee yhteys), niin se polkaisisi tuon Raimon skriptin käyntiin. Ja winkkarille siis vastaava tyhmä clientti, joka vain mailin tullessa avaa yhteyden tuohon linuksin porttiin ja sulkee sen samantien. Voisi toimia ja olisi aika helppo tehdä.


Alkuperäinen viritelmä on siksi tuo, että yritin käyttää valmiita palikoita: windowssissa on valmiina "net send" ja linuksiin saa samban päälle pyörimään palikan, joka näyttää nuo popup -viestit.
HP Elitebook 8530p / Ubuntu 8.10

kossu

  • Käyttäjä
  • Viestejä: 15
    • Profiili
Re: Ohjelma käyntiin komentoriviltä kaikille työpöydille?
« Vastaus #6 : 19.05.06 - klo:10.15 »
Lainaus
Tuo on aika näppärä ja paljon hienompi kuin Linpopup, kiitos! Varsinaista ongelmaa tuo ei poista, mutta tuli tuossa mieleen, että jos tekisi pienen tcp-servon perlillä linuksin päähän, joka vain kuuntelee jotakin porttia ja heti kun porttiin tulee kamaa (tai vaikka vain siten, että heti kun porttiin tulee yhteys), niin se polkaisisi tuon Raimon skriptin käyntiin. Ja winkkarille siis vastaava tyhmä clientti, joka vain mailin tullessa avaa yhteyden tuohon linuksin porttiin ja sulkee sen samantien. Voisi toimia ja olisi aika helppo tehdä.

No nih, nyt toimii niinkuin pitääkin :)
Pieni netistä haettu perl-serveri-example -koodinpätkä joka kuuntelee linuksissa ja kun joku ottaa yhteyden, niin polkaistaan tuo raimon popup käyntiin. Winkkarissa taas on pieni python-client, joka vain ottaa yhteyden tuohon linux-porttiin ja sulkee yhteyden samantien.

Mikään hieno systeemihän tämä ei ole ja esim tuohon voisi tehdä vähän parannusta, että linuxin pää haluaisi porttiinsa ihan oikeasti jotakin määrättyä dataa, että popup käynnistyisi, mutta tuo menee sitten jo hifistelyn puolelle ;)
HP Elitebook 8530p / Ubuntu 8.10

raimo

  • Käyttäjä
  • Viestejä: 4268
  • openSUSE Tumbleweed
    • Profiili
Re: Ohjelma käyntiin komentoriviltä kaikille työpöydille?
« Vastaus #7 : 19.05.06 - klo:11.22 »
Jep, Perl ja Gtk2 on makee yhdistelmä. ;)
Lisäsin siihen parametri-ominaisuuden, viestin saa muutettua tilanteen mukaan käynnistysparametreinä annettuna:
Koodia: [Valitse]
popup joku viisas viesti on tässä.

Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski