Minäkin olen joskus ihmetellyt samaa asiaa: Miten saa suomenkielisestä Ubuntusta (lue: Linuxista) selville, minkä niminen ohjelma on kyseessä? Siis vaikka jos sen tosiaankin haluaisi tappaa tai poistaa automaattisesti käynnistyvien joukosta... Kun ohjelman ikkunan otsikkopalkissa lukee suomeksi jotain Järjestelmän valvonta...
X-ikkunointijärjestelmässä voi selvittää ikkunan tiedot xwininfo-työkalulla. Se käynnistyy päätteessä komennolla:
xwininfo
Hiiren osoitin muuttuu tähtäimeksi, jolla valitaan ikkuna. Esimerkiksi klikkaamalla Järjestelmän valvonnan ikkunaa xwininfo antaa tällaiset tiedot:
xwininfo: Window id: 0x5600008 "Järjestelmän valvonta"
Absolute upper-left X: 137
Absolute upper-left Y: 372
Relative upper-left X: 0
Relative upper-left Y: 0
Width: 716
Height: 495
Depth: 32
Visual: 0x6e
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x5600007 (not installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +137+372 -747+372 -747-33 +137-33
-geometry 716x495+128-24
Oleellista tuossa on Window id: 0x5600008 (joka vaihtuu aina kun ohjelma/ikkuna käynnistetään uudelleen). Sen perusteella voidaan selvittää lisää xprop-komennon avulla:
xprop -id 0x5600008
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 0, 716, 495
_NET_WM_ICON_GEOMETRY(CARDINAL) = 2, 504, 38, 38
_NET_WM_DESKTOP_FILE(STRING) = "/usr/share/applications/gnome-system-monitor.desktop"
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 25, 0
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_STATE(ATOM) =
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x560000c
bitmap id # of mask for icon: 0x5600013
window id # of group leader: 0x5600001
XdndAware(ATOM) = BITMAP
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_STICK, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW
_GTK_MENUBAR_OBJECT_PATH(UTF8_STRING) = "/com/canonical/unity/gtk/window/0"
_UNITY_OBJECT_PATH(UTF8_STRING) = "/com/canonical/unity/gtk/window/0"
_GTK_APP_MENU_OBJECT_PATH(UTF8_STRING) = "/org/gnome/SystemMonitor/menus/appmenu"
_GTK_WINDOW_OBJECT_PATH(UTF8_STRING) = "/org/gnome/SystemMonitor/window/1"
_GTK_APPLICATION_OBJECT_PATH(UTF8_STRING) = "/org/gnome/SystemMonitor"
_GTK_UNIQUE_BUS_NAME(UTF8_STRING) = ":1.345"
_GTK_APPLICATION_ID(UTF8_STRING) = "org.gnome.SystemMonitor"
[kuvakkeita]
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 90177546, 90177547
_NET_WM_USER_TIME(CARDINAL) = 231146611
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x5600009
WM_CLIENT_LEADER(WINDOW): window id # 0x5600001
_NET_WM_PID(CARDINAL) = 22218
WM_LOCALE_NAME(STRING) = "fi_FI.UTF-8"
WM_CLIENT_MACHINE(STRING) = "s4"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified location: 0, 0
program specified minimum size: 716 by 378
program specified base size: 0 by 0
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "gnome-system-monitor", "Gnome-system-monitor"
WM_ICON_NAME(STRING) = "Järjestelmän valvonta"
_NET_WM_ICON_NAME(UTF8_STRING) = "Järjestelmän valvonta"
WM_NAME(STRING) = "Järjestelmän valvonta"
_NET_WM_NAME(UTF8_STRING) = "Järjestelmän valvonta"
Ohjelman alkuperäinen nimi ja PID ovat siis:
WM_CLASS(STRING) = "gnome-system-monitor", "Gnome-system-monitor"
_NET_WM_PID(CARDINAL) = 22218
Tässä vielä yhdistetty komento, joka antaa valita ikkunan ja listaa sen prosessitunnuksen:
xprop -id $(xwininfo |grep "Window id" | sed "s/^.*Window id: \(0x[0-9a-f]*\) .*$/\1/") _NET_WM_PID | cut -d" " -f 3
Paneeleihin integroitujen sovelmien kanssa tästä ei kuitenkaan ole apua, koska sovelmilla ei ole omia X-ikkunoita vaan xwininfo palauttaa paneelin ikkunan tiedot.