Kas huomenta. Kuinkas voin C++:aa käyttämällä selvittää suoritushetkellä pyörivän ikkunaohjelman (window manager) Ubuntussa? Olenko ihan toivoton tapaus, kun en Googlestakaan vastausta löydä? :D
Tällainen taas silti löytyi: http://stackoverflow.com/questions/3496774/
Mutta eivät ole keksineet ratkaisua sielläkään.
Pystyisikö asian hoitamaa getenv:llä?
Kiitosta :)
Miksi se pitää tietää?
vesikuusi kirjoitti:
Olenko ihan toivoton tapaus, kun en Googlestakaan vastausta löydä? :D
Luultavasti olet, koska tuossakin linkissä lukee "desktop environment" eikä "window manager". Nämä ovat kaksi ihan eri asiaa.
Siitä huolimatta tuonkin keskustelun aloitusviestissä on yksi mahdollinen ratkaisu, jota kysyjä ei vain siellä halunnut käyttää, koska se on DE:n kanssa vähän huono. Kuitenkin WM:n selvittämiseen sama ratkaisu käy yleensä ihan hyvin, jos et pelleile X-etäyhteyksillä tai monella X-istunnolla. Voit siis etsiä prosessia listauksesta (ps | grep X) tai yksinkertaisemmin pidof-ohjelmalla:
if (system("pidof fluxbox >/dev/null") == 0) { printf("Käytössä on Fluxbox.\n"); } if (system("pidof kwin >/dev/null") == 0) { printf("Käytössä on KWin.\n"); }
Toinen mahdollisuus on googlettaa oikeilla sanoilla (Linux detect window manager), jolloin löytyy oikeita vastauksia (esim. tämä). Ikkunointiohjelman nimen saa siis komentorivillä näin:
xprop -root _NET_SUPPORTING_WM_CHECK # _NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0x400022 xprop -id 0x400022 _NET_WM_NAME # _NET_WM_NAME(UTF8_STRING) = "Fluxbox"
Tai yhdellä rivillä:
xprop -id "$(xprop -root _NET_SUPPORTING_WM_CHECK | grep -oE '0x.*')" _NET_WM_NAME
Voit itse selvittää, miten näitä X-ikkunoiden ominaisuuksia luetaan C:llä.
Metabolix kirjoitti:
...linkissä lukee "desktop environment" eikä "window manager". Nämä ovat kaksi ihan eri asiaa.
Joo, mutta tuossa ketjussa kaveri tarkentaa, ettei takoittanutkaan ympäristöä, vaan ohjelmaa.
Mutta kiitos sinulle.
_Pete_ kirjoitti:
Miksi se pitää tietää?
Se menee edelleen tuohon teemajuttuun, jotta homma toimisi toisilla managereilla.
vesikuusi kirjoitti:
Joo, mutta tuossa ketjussa kaveri tarkentaa, ettei takoittanutkaan ympäristöä, vaan ohjelmaa.
Voisitko osoittaa sellaisen kohdan? Minä näen vain kohtia, joissa painotetaan, että tarkoitettiin nimenomaan DE:tä eikä pelkkää WM:ää.
Aa hups se menikin toisinpäin :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.