Page 1 of 1

logging out from openbox (Python Script)

Posted: 15. Nov 2010, 21:13
by zAchAry
Source: logging out from openbox (the Upower way) « Gentoo Linux and Software

In the manner of batti, using the newest linux desktop technologies with minimal dependencies, I created a small python script to be able to logout from openbox (that one was really easy), but also to reboot, halt, suspend and hibernate my computer without the need of using sudo. The screenshot first:
Image

There are some things to keep in mind, when using the ConsoleKit and UPower backends.
  • openbox-session has to be launched with ConsoleKit to get an active session. So this should be the entry in your ~/.xinitrc:

    Code: Select all

          ck-launch-session openbox-session
  • A local session of D-Bus needs to be running. So this would be the entry in your autostart.sh:

    Code: Select all

          if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
              eval `dbus-launch --sh-syntax --exit-with-session`
              export DBUS_SESSION_BUS_ADDRESS
          fi
I know about oblogout. I even tried it, but it was too heavy for that simple purpose. Furthermore I believe it still depends on hal, but I’m not sure about that. The script below is just a starting point. It could be extended to a complete project, by adding localizations, an own icon-theme (installed in hicolor-icon-theme, of course), better aligning of the buttons and its icons (probably using GtkBuilder instead of python), disable/hide buttons if their corresponding action is not allowed, …
Feel free to contact me, if you are going for that.

But for this time, I wanted to keep it simple. So, finally the script:

Code: Select all

#!/usr/bin/env python
'''
    ob-logout, fire power-managment events without sudo

    Copyright (C) 2010 Arthur Spitzer <http://arthapex.wordpress.com/>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
'''

import dbus
import gtk
import os

class DBusExecutor(object):

    ConsoleKitService = 'org.freedesktop.ConsoleKit'
    ConsoleKitPath = '/org/freedesktop/ConsoleKit/Manager'
    ConsoleKitInterface = 'org.freedesktop.ConsoleKit.Manager'
    UPowerService = 'org.freedesktop.UPower'
    UPowerPath = '/org/freedesktop/UPower'
    UPowerInterface = UPowerService

    def __init__(self):
        self.__bus = dbus.SystemBus()

    def logout(self, widget=None):
        os.system("openbox --exit")
        self.cancel()

    def restart(self, widget=None):
        obj = self.__bus.get_object(self.ConsoleKitService, self.ConsoleKitPath)
        manager = dbus.Interface(obj, self.ConsoleKitInterface)
        if manager.CanRestart():
            manager.Restart()
            self.logout()

    def shutdown(self, widget=None):
        obj = self.__bus.get_object(self.ConsoleKitService, self.ConsoleKitPath)
        manager = dbus.Interface(obj, self.ConsoleKitInterface)
        if manager.CanStop():
            manager.Stop()
            self.logout()

    def suspend(self, widget=None):
        obj = self.__bus.get_object(self.UPowerService, self.UPowerPath)
        manager = dbus.Interface(obj, self.UPowerInterface)
        if manager.SuspendAllowed():
            manager.Suspend()
            self.cancel()

    def hibernate(self, widget=None):
        obj = self.__bus.get_object(self.UPowerService, self.UPowerPath)
        manager = dbus.Interface(obj, self.UPowerInterface)
        if manager.HibernateAllowed():
            manager.Hibernate()
            self.cancel()

    def cancel(self, widget=None):
        # Check if we're already in gtk.main loop
        if gtk.main_level() > 0:
            gtk.main_quit()
        else:
            exit(1)

class BiggerButton(gtk.Button):
    def __init__(self, label=None):
        gtk.Button.__init__(self, label, use_underline=True)
        self.set_size_request(200, 50)

class OBLogout(object):
    def __init__(self):
        self.executor = DBusExecutor()
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_border_width(16)
        self.window.set_resizable(False)
        self.window.connect("destroy", self.executor.cancel)

        vbox = gtk.VBox(False, 16)
        self.window.add(vbox)

        icon_size = gtk.ICON_SIZE_DND

        logout_btn = BiggerButton('_Logout')
        image = gtk.image_new_from_icon_name('gnome-session-logout', icon_size)
        logout_btn.set_property('image', image)
        logout_btn.connect('clicked', self.executor.logout)
        vbox.pack_start(logout_btn, True, True, 0)

        restart_btn = BiggerButton('_Restart')
        image = gtk.image_new_from_icon_name('gnome-session-reboot', icon_size)
        restart_btn.set_property('image', image)
        restart_btn.connect('clicked', self.executor.restart)
        vbox.pack_start(restart_btn, True, True, 0)

        shutdown_btn = BiggerButton('Shut_down')
        image = gtk.image_new_from_icon_name('gnome-session-halt', icon_size)
        shutdown_btn.set_property('image', image)
        shutdown_btn.connect('clicked', self.executor.shutdown)
        vbox.pack_start(shutdown_btn, True, True, 0)

        suspend_btn = BiggerButton('_Suspend')
        image = gtk.image_new_from_icon_name('gnome-session-suspend', icon_size)
        suspend_btn.set_property('image', image)
        suspend_btn.connect('clicked', self.executor.suspend)
        vbox.pack_start(suspend_btn, True, True, 0)

        hibernate_btn = BiggerButton('_Hibernate')
        image = gtk.image_new_from_icon_name('gnome-session-hibernate', icon_size)
        hibernate_btn.set_property('image', image)
        hibernate_btn.connect('clicked', self.executor.hibernate)
        vbox.pack_start(hibernate_btn, True, True, 0)

        sep = gtk.HSeparator()
        vbox.pack_start(sep, True, True, 0)

        cancel_btn = BiggerButton('_Abort')
        image = gtk.image_new_from_stock(gtk.STOCK_CANCEL, icon_size)
        cancel_btn.set_property('image', image)
        cancel_btn.connect('clicked', self.executor.cancel)
        vbox.pack_start(cancel_btn, True, True, 0)

        self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
        self.window.set_skip_taskbar_hint(True)
        self.window.stick()
        self.window.set_decorated(False)
        self.window.show_all()

    def main(self):
        try:
            gtk.main()
        except KeyboardInterrupt:
            pass

if __name__ == "__main__":
    obl = OBLogout()
    obl.main()
Please limit the FRAME SIZE of 'code' with CSS, geesh... (example)

Re: logging out from openbox (Python Script)

Posted: 25. May 2011, 13:26
by TerrorBite
I was aiming to write a script like this myself (I'm a Ubuntu Openbox user). The one that I found and decided to base my script off was using os.system() to execute the gdm-control utility to tell GDM what to do after the session ended (shutdown, reboot, or do nothing) and then logging out using `openbox --exit`. I wanted to add suspend and hibernate (using `pmi action suspend` and `pmi action hibernate`) and screen lock (using `gnome-screensaver-command --lock`). However I ran into trouble when I discovered that gdm-control would not run - it was looking for the .gdm_socket file in /tmp, and it wasn't there. In fact I couldn't find a gdm socket anywhere, even after checking all the usual places (/var/run, etc).

So I went looking, and found the following two commands:

Code: Select all

dbus-send --system --print-reply --dest="org.freedesktop.Hal" /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Reboot
dbus-send --system --print-reply --dest="org.freedesktop.Hal" /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
Well, I can do better than that, I thought. Why execute the dbus-send command, when I can just 'import dbus' and do it directly from Python? Blissfully unaware that HAL no longer exists in (due in part to having an older version of the system), I set to work. Then in the process of researching ways to suspend/resume with dbus, I came across your script, and decided to take inspiration from it.

I don't seem to have the same button icons on my system as you used, so I have had to improvise.

Here's what I came up with:

Code: Select all

#!/usr/bin/env python

'''
    openbox-logout - present a dialog to perform power management actions, lock the screen, or logout.

    Copyright (C) 2011 TerrorBite <https://launchpad.net/~terrorbite-industries>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

    Credit goes to Arthur Spitzer <http://arthapex.wordpress.com/> for the dbus code.
        See http://arthapex.wordpress.com/2010/04/15/logging-out-from-openbox-the-upower-way/
    Credit also goes to Philip Newborough <http://corenominal.org/> for the base script.
        See http://crunchbang.org/archives/2008/04/01/openbox-logout-reboot-and-shutdown-script/
'''

import pygtk
pygtk.require('2.0')
import gtk
import os
import dbus

#Don't need these
#HalService = 'org.freedesktop.Hal'
#HalPath = '/org/freedesktop/Hal/devices/computer'
#HalInterface = 'org.freedesktop.Hal.Devices.SystemPowerManagement')

# ConsoleKit - to reboot and shutdown (system bus)
ConsoleKitService = 'org.freedesktop.ConsoleKit'
ConsoleKitPath = '/org/freedesktop/ConsoleKit/Manager'
ConsoleKitInterface = 'org.freedesktop.ConsoleKit.Manager'

# UPower - to hibernate and suspend (system bus)
UPowerService = 'org.freedesktop.UPower'
UPowerPath = '/org/freedesktop/UPower'
UPowerInterface = UPowerService

# Gnome-Screensaver - to lock the screen (session bus)
ScreensaverService = 'org.gnome.ScreenSaver'
ScreensaverPath = '/org/gnome/ScreenSaver'
ScreensaverInterface = ScreensaverService

class OpenboxLogout:

    def __init__(self):
        # Initialize dbus system and session buses
        self.system_bus = dbus.SystemBus()
        self.session_bus = dbus.SessionBus()

        # Get the dbus interface for ConsoleKit
        self.consolekit = dbus.Interface(self.system_bus.get_object(ConsoleKitService,
            ConsoleKitPath), ConsoleKitInterface)

        # Get the dbus interface for UPower
        self.upower = dbus.Interface(self.system_bus.get_object(UPowerService,
            UPowerPath), UPowerInterface)

        # Get the dbus interface for Gnome-Screensaver
        self.screensaver = dbus.Interface(self.session_bus.get_object(ScreensaverService,
            ScreensaverPath), ScreensaverInterface)

        # Set up GTK window
        self.gtk_init()

    # Cancel/exit
    def cancel(self, widget=None, event=None, data=None):
        gtk.main_quit()
        return False

    # Logout
    def logout(self, widget=None):
        os.system('openbox --exit')

    # Reboot
    def reboot(self, widget=None):
        self.consolekit.Restart()
        self.logout()
        #os.system('gdm-control --reboot && openbox --exit')

    # Shutdown
    def shutdown(self, widget=None):
        self.consolekit.Stop()
        self.logout()
        #os.system('gdm-control --shutdown && openbox --exit')

    # Switch user
    #def switch_user(self, widget=None):
        #os.system('gdm-control --switch-user')

    # Suspend
    def suspend(self, widget=None):
        self.upower.Suspend()
        self.cancel()
        #os.system('pmi action suspend')

    # Hibernate
    def hibernate(self, widget=None):
        self.upower.Hibernate()
        self.cancel()
        #os.system('pmi action hibernate')

    # Lock screen
    def lock_screen(self, widget=None):
        self.screensaver.Lock()
        self.cancel()
        #os.system('gnome-screensaver-command --lock')

    def gtk_init(self):

        icon_size = gtk.ICON_SIZE_BUTTON
        btn_border_size = 8

        # Create a new window
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title("Please select an action")
        self.window.set_deletable(False)
        self.window.set_resizable(False)
        self.window.set_position(1)
        self.window.connect("delete_event", self.cancel)
        self.window.set_border_width(int(1.5*btn_border_size))

        # Create a box to pack other widgets into
        self.box_vert = gtk.VBox(False, 0)
        self.window.add(self.box_vert)

        # Create label
        self.lbl_message = gtk.Label('Please select an action.')
        self.box_vert.pack_start(self.lbl_message, True, True, 0)
        self.lbl_message.show()

        # Create a box for the top row of buttons
        self.box_top = gtk.HBox(False, 0)
        self.box_vert.pack_start(self.box_top, True, True, 0)

        # Create a box for the bottom row of buttons
        self.box_bottom = gtk.HBox(False, 0)
        self.box_vert.pack_start(self.box_bottom, True, True, 0)

        # Create reboot button
        self.btn_reboot = gtk.Button('_Reboot', None, True) # Instantiate button
        self.btn_reboot.set_border_width(btn_border_size) # Set border width to sane amount
        image = gtk.image_new_from_icon_name('reload', icon_size) # Retrieve relevant icon at a nice size
        self.btn_reboot.set_property('image', image) # Set icon
        self.btn_reboot.set_sensitive(self.consolekit.CanRestart()) # "Grey out" this button if we don't have this ability
        self.btn_reboot.connect("clicked", self.reboot) # Connect event handler
        self.box_top.pack_start(self.btn_reboot, True, True, 0) # Insert into the correct layout box
        self.btn_reboot.show() # Show button
        # Now repeat for remaining buttons

        # Create logout button
        self.btn_logout = gtk.Button('_Log out', None, True)
        self.btn_logout.set_border_width(btn_border_size)
        image = gtk.image_new_from_icon_name('gnome-logout', icon_size)
        self.btn_logout.set_property('image', image)
        self.btn_logout.connect("clicked", self.logout)
        self.box_top.pack_start(self.btn_logout, True, True, 0)
        self.btn_logout.show()

        # Create shutdown button
        self.btn_shutdown = gtk.Button('_Shutdown', None, True)
        self.btn_shutdown.set_border_width(btn_border_size)
        image = gtk.image_new_from_icon_name('gnome-shutdown', icon_size)
        self.btn_shutdown.set_property('image', image)
        self.btn_shutdown.set_sensitive(self.consolekit.CanStop())
        self.btn_shutdown.connect("clicked", self.shutdown)
        self.box_top.pack_start(self.btn_shutdown, True, True, 0)
        self.btn_shutdown.show()

        # Create lock button
        self.btn_lock = gtk.Button("L_ock Screen", None, True)
        self.btn_lock.set_border_width(btn_border_size)
        image = gtk.image_new_from_icon_name('gnome-lockscreen', icon_size)
        self.btn_lock.set_property('image', image)
        self.btn_lock.connect("clicked", self.lock_screen)
        self.box_bottom.pack_start(self.btn_lock, True, True, 0)
        self.btn_lock.show()

        # Create suspend button
        self.btn_suspend = gtk.Button('S_uspend', None, True)
        self.btn_suspend.set_border_width(btn_border_size)
        image = gtk.image_new_from_icon_name('gtk-media-pause', icon_size)
        self.btn_suspend.set_property('image', image)
        self.btn_suspend.set_sensitive(self.upower.SuspendAllowed())
        self.btn_suspend.connect("clicked", self.suspend)
        self.box_bottom.pack_start(self.btn_suspend, True, True, 0)
        self.btn_suspend.show()

        # Create hibernate button
        self.btn_hibernate = gtk.Button('_Hibernate', None, True)
        self.btn_hibernate.set_border_width(btn_border_size)
        image = gtk.image_new_from_icon_name('user-idle', icon_size)
        self.btn_hibernate.set_property('image', image)
        self.btn_hibernate.set_sensitive(self.upower.HibernateAllowed())
        self.btn_hibernate.connect("clicked", self.hibernate)
        self.box_bottom.pack_start(self.btn_hibernate, True, True, 0)
        self.btn_hibernate.show()

        # Create switch user button
        #self.btn_switch = gtk.Button('S_witch User', None, True)
        #self.btn_switch.set_border_width(btn_border_size)
        #self.btn_switch.connect("clicked", self.switch_user)
        #self.box_bottom.pack_start(self.btn_switch, True, True, 0)
        #self.btn_switch.show()

        # Create cancel button
        self.btn_cancel = gtk.Button(stock='gtk-cancel')
        self.btn_cancel.set_border_width(btn_border_size)
        self.btn_cancel.connect("clicked", self.cancel, 'Cancelled')
        self.box_vert.pack_start(self.btn_cancel, True, True, 0)
        self.btn_cancel.show()

        self.box_top.show()
        self.box_bottom.show()
        self.box_vert.show()
        self.window.set_focus(self.btn_logout)
        self.window.show()

if __name__ == "__main__":
    oblogout = OpenboxLogout()
    gtk.main()

Re: logging out from openbox (Python Script)

Posted: 16. Jun 2011, 09:09
by thenktor
zAchAry wrote:There are some things to keep in mind, when using the ConsoleKit and UPower backends.
  • openbox-session has to be launched with ConsoleKit to get an active session. So this should be the entry in your ~/.xinitrc:

    Code: Select all

          ck-launch-session openbox-session
What does this mean? What's an "active session"?

zAchAry wrote: [*]A local session of D-Bus needs to be running. So this would be the entry in your autostart.sh:

Code: Select all

      if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
          eval `dbus-launch --sh-syntax --exit-with-session`
          export DBUS_SESSION_BUS_ADDRESS
      fi
[/list]
In /etc/xdg/openbox/autostart.sh there already is:

Code: Select all

# D-bus
if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
       eval `dbus-launch --sh-syntax --exit-with-session`
fi
EDIT: It seems /etc/xdg/openbox/autostart.sh is not executed if you have a self defined autostart.sh for your user.

Re: logging out from openbox (Python Script)

Posted: 19. Oct 2011, 12:41
by thenktor
BTW: did anyone try wm-logout (available in our 13.37 repo).

Re: logging out from openbox (Python Script)

Posted: 15. Dec 2011, 14:18
by zAchAry
Yes, I did. It should be installed by default in the Fluxbox Edition.
You even made it compatible with icon/images in buttons on :-)

1) Why did you write "Please" select... (I think that Please should be omitted)
1.1) Remove all of it, leave just buttons.
2) Proposed structure

Code: Select all

[Shutdown] [Log out] [Reboot]
[Suspend] [Switch user] [Hibernate]
[Cancel]
OR

Code: Select all

[Log out] [Switch user]
[Shutdown] [Reboot] [Suspend] [Hibernate]
System shutdown within *Counter* [Cancel]
* System shutdown within 120... 119... 118... seconds
3) What is the command to see which WM is currently running?

Do you know how to log out from Fluxbox without using fluxbox-remote?

Code: Select all

$ fluxbox-remote exit
$ fluxbox-remote quit
Edit: https://bbs.archlinux.org/viewtopic.php ... 45#p535045

Code: Select all

$ kill -TERM $(xprop -root _BLACKBOX_PID | awk '{print $3}')


Related posts: http://www.salixos.org/forum/viewtopic. ... 872#p13872 http://www.salixos.org/forum/viewtopic. ... 009#p14009


Edit: WM recognition
Fluxbox:
_BLACKBOX_PID(CARDINAL) = 6047

Code: Select all

_NET_ACTIVE_WINDOW(WINDOW): window id # 0x1200004
_WIN_WORKSPACE(CARDINAL) = 0
_WIN_WORKSPACE_COUNT(CARDINAL) = 5
_WIN_WORKSPACE_NAMES(STRING) = "General", "Internet", "Multimedia", "Work", "Entertainment"
_WIN_CLIENT_LIST(WINDOW): window id # 0x1200004
_WIN_PROTOCOLS(ATOM) = _WIN_SUPPORTING_WM_CHECK, _WIN_WORKSPACE_NAMES, _WIN_CLIENT_LIST, _WIN_STATE, _WIN_HINTS, _WIN_LAYER
_WIN_SUPPORTING_WM_CHECK(WINDOW): window id # 0x600336
_NET_WORKAREA(CARDINAL) = 0, 28, 1280, 772, 0, 28, 1280, 772, 0, 28, 1280, 772, 0, 28, 1280, 772, 0, 28, 1280, 772
_NET_DESKTOP_GEOMETRY(CARDINAL) = 1280, 800
_NET_DESKTOP_VIEWPORT(CARDINAL) = 0, 0
_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0x1200004
_NET_CLIENT_LIST(WINDOW): window id # 0x1200004
_NET_DESKTOP_NAMES(UTF8_STRING) = "General", "Internet", "Multimedia", "Work", "Entertainment"
_NET_CURRENT_DESKTOP(CARDINAL) = 0
_NET_NUMBER_OF_DESKTOPS(CARDINAL) = 5
_NET_SUPPORTED(ATOM) = _NET_WM_STRUT, _NET_WM_STATE, _NET_WM_NAME, _NET_WM_ICON, _NET_WM_ICON_NAME, _NET_WM_STATE_STICKY, _NET_WM_STATE_SHADED, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_HIDDEN, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_MODAL, _NET_WM_STATE_BELOW, _NET_WM_STATE_ABOVE, _NET_WM_STATE_DEMANDS_ATTENTION, _NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_SPLASH, _NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_MENU, _NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_NORMAL, _NET_WM_ALLOWED_ACTIONS, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_STICK, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_ACTIVE_WINDOW, _NET_CLOSE_WINDOW, _NET_MOVERESIZE_WINDOW, _NET_WORKAREA, _NET_RESTACK_WINDOW, _NET_REQUEST_FRAME_EXTENTS, _NET_WM_MOVERESIZE, _NET_FRAME_EXTENTS, _NET_WM_DESKTOP, _NET_DESKTOP_NAMES, _NET_DESKTOP_VIEWPORT, _NET_DESKTOP_GEOMETRY, _NET_SUPPORTING_WM_CHECK
_NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0x600057
_BLACKBOX_PID(CARDINAL) = 6047
ESETROOT_PMAP_ID(PIXMAP): pixmap id # 0x1000001
_XROOTPMAP_ID(PIXMAP): pixmap id # 0x1000001
RESOURCE_MANAGER(STRING) = "Xft.dpi:\t96\nXft.antialias:\ttrue\nXft.rgba:\trgb\nXft.hinting:\ttrue\nXft.hintstyle:\thintslight\nXcursor.theme:\tVanilla-DMZ\nXTerm*background:\t#000000\nXTerm*foreground:\t#C0C0C0\nXTerm*cursorColor:\t#C0C0C0\nXTerm*faceName:\tTerminus:size=10\nXTerm*dynamicColors:\ttrue\nxterm*utf8:\t2\nxterm*eightBitInput:\ttrue\nxterm*saveLines:\t65000\nxterm*scrollTtyKeypress:\ttrue\nxterm*scrollTtyOutput:\tfalse\nxterm*scrollBar:\ttrue\nXTerm*rightScrollBar:\ttrue\nxterm*jumpScroll:\ttrue\nxterm*multiScroll:\ttrue\nxterm*toolBar:\tfalse\nXTerm*metaSendsEscape:\ttrue\nXTerm*eightBitInput:\tfalse\nXTerm*activeIcon:\ttrue\nURxvt.title:\tterminal\nURxvt.background:\t#000000\nURxvt.foreground:\t#ffffff\nurxvt*cursorColor:\t#ffffff\nurxvt*cursorColor2:\t#000000\nURxvt.internalBorder:\t2\nURxvt.font:\txft:Terminus:size=10:VL Gothic:antialias=true:hinting=true\nURxvt.boldFont:\txft:Terminus:size=10:antialias=true:hinting=true:style=bold\nURxvt.shading:\t100\nURxvt.inheritPixmap:\tFalse\nURxvt.cursorBlink:\tFalse\nURxvt.scrollBar:\tFalse\nURxvt.colorUL:\t#729fcf\nURxvt.perl-ext:\tdefault,keyboard-select,matcher,clipboard,url-select\nURxvt.keysym.C-Insert:\tperl:clipboard:copy\nURxvt.keysym.S-Insert:\tperl:clipboard:paste\nURxvt.keysym.M-Insert:\tperl:clipboard:paste_escaped\nURxvt.keysym.M-y:\tperl:keyboard-select:activate\nURxvt.keysym.M-s:\tperl:keyboard-select:search\nURxvt.keysym.M-u:\tperl:url-select:select_next\nURxvt.underlineURLs:\ttrue\nURxvt.colorURL:\t11\nURxvt.matcher.button:\t1\nURxvt*matcher.pattern.0:\t\\\\b(?:(?:https?|ftp):\\/\\/|mailto:)[\\\\w\\-\\@;\\/?:&=%\\$_.+!*\\x27(),~#]+ [\\\\w\\-\\@;\\/?:&=%\\$_+!*\\x27()~]\nURxvt.matcher.pattern.1:\t\\\\bwww\\\\.[\\\\w-]+\\\\.[\\\\w./?&@#-]*[\\\\w/-]\nURxvt*matcher.pattern.2:\t\\\\bhttps?:\\/\\/[\\\\w-.]*\\/[\\\\w./?&@#-]*.(jpg|jpeg|gif|png)\nURxvt*matcher.launcher.2:\tfeh $0\nURxvt.cutchars:\t\"'()*<>[]{|}\"\nxcalc*geometry:\t200x275\nxcalc.ti.bevel.background:\t#111111\nxcalc.ti.bevel.screen.background:\t#000000\nxcalc.ti.bevel.screen.DEG.background:\t#000000\nxcalc.ti.bevel.screen.DEG.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.GRAD.background:\t#000000\nxcalc.ti.bevel.screen.GRAD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.RAD.background:\t#000000\nxcalc.ti.bevel.screen.RAD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.INV.background:\t#000000\nxcalc.ti.bevel.screen.INV.foreground:\tRed\nxcalc.ti.bevel.screen.LCD.background:\t#000000\nxcalc.ti.bevel.screen.LCD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.LCD.shadowWidth:\t0\nxcalc.ti.bevel.screen.M.background:\t#000000\nxcalc.ti.bevel.screen.M.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.P.background:\t#000000\nxcalc.ti.bevel.screen.P.foreground:\tYellow\nxcalc.ti.Command.foreground:\tWhite\nxcalc.ti.Command.background:\t#777777\nxcalc.ti.button5.background:\tOrange3\nxcalc.ti.button19.background:\t#611161\nxcalc.ti.button18.background:\t#611161\nxcalc.ti.button20.background:\t#611111\nxcalc.ti.button25.background:\t#722222\nxcalc.ti.button30.background:\t#833333\nxcalc.ti.button35.background:\t#944444\nxcalc.ti.button40.background:\t#a55555\nxcalc.ti.button22.background:\t#222262\nxcalc.ti.button23.background:\t#222262\nxcalc.ti.button24.background:\t#222272\nxcalc.ti.button27.background:\t#333373\nxcalc.ti.button28.background:\t#333373\nxcalc.ti.button29.background:\t#333373\nxcalc.ti.button32.background:\t#444484\nxcalc.ti.button33.background:\t#444484\nxcalc.ti.button34.background:\t#444484\nxcalc.ti.button37.background:\t#555595\nxcalc.ti.button38.background:\t#555595\nxcalc.ti.button39.background:\t#555595\nXCalc*Cursor:\thand2\nXCalc*ShapeStyle:\trectangle\nxcalc.ti.button20.label:\t/\n"
_XKB_RULES_NAMES(STRING) = "evdev", "evdev", "us,il", "", "grp:alt_shift_toggle"
XFree86_VT(INTEGER) = 7
XFree86_DDC_EDID1_RAWDATA(INTEGER) = 0, -1, -1, -1, -1, -1, -1, 0, 6, -81, 116, 33, 0, 0, 0, 0, 1, 15, 1, 3, -128, 33, 21, 120, 10, 28, -11, -105, 88, 80, -114, 39, 39, 80, 84, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -57, 27, 0, -96, 80, 32, 23, 48, 48, 32, 54, 0, 75, -49, 16, 0, 0, 24, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, -2, 0, 65, 85, 79, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, -2, 0, 66, 49, 53, 52, 69, 87, 48, 50, 32, 86, 49, 32, 10, 0, -86
IceWM:
lines 23 & 24

Code: Select all

_ROX_FILER_1000_darkstar.example.net(WINDOW): window id # 0x1400003
_ROX_FILER_1000_2.9_darkstar.example.net(WINDOW): window id # 0x1400003
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x1800004
_WIN_DESKTOP_BUTTON_PROXY(CARDINAL) = 4194662
_WIN_WORKAREA(CARDINAL) = 0, 0, 1280, 775
_NET_CURRENT_DESKTOP(CARDINAL) = 0
_WIN_WORKSPACE(CARDINAL) = 0
_NET_NUMBER_OF_DESKTOPS(CARDINAL) = 4
_WIN_WORKSPACE_COUNT(CARDINAL) = 4
_WIN_WORKSPACE_NAMES(STRING) = " 1 ", " 2 ", " 3 ", " 4 "
_NET_CLIENT_LIST(WINDOW): window id # 0xc00003, 0x1800004
_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0xc00003, 0x1800004
_WIN_CLIENT_LIST(CARDINAL) = 12582915, 25165828
_NET_WORKAREA(CARDINAL) = 0, 0, 1280, 775, 0, 0, 1280, 775, 0, 0, 1280, 775, 0, 0, 1280, 775
WM_ICON_SIZE(WM_ICON_SIZE):
		minimum icon size: 32 by 32
		maximum icon size: 32 by 32
		incremental size change: 1 by 1
_WIN_AREA(CARDINAL) = 0, 0
_WIN_AREA_COUNT(CARDINAL) = 1, 1
_NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0x40003e
_WIN_SUPPORTING_WM_CHECK(CARDINAL) = 4194366
_NET_SUPPORTED(ATOM) = _WIN_WORKSPACE, _WIN_WORKSPACE_COUNT, _WIN_WORKSPACE_NAMES, _WIN_ICONS, _WIN_WORKAREA, _WIN_STATE, _WIN_HINTS, _WIN_LAYER, _ICEWM_TRAY, _WIN_SUPPORTING_WM_CHECK, _WIN_CLIENT_LIST, _NET_SUPPORTING_WM_CHECK, _NET_SUPPORTED, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_WM_DESKTOP, _NET_ACTIVE_WINDOW, _NET_CLOSE_WINDOW, _NET_WM_STRUT, _NET_WORKAREA, _NET_WM_STATE, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_SHADED, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_SPLASH
_WIN_PROTOCOLS(ATOM) = _WIN_WORKSPACE, _WIN_WORKSPACE_COUNT, _WIN_WORKSPACE_NAMES, _WIN_ICONS, _WIN_WORKAREA, _WIN_STATE, _WIN_HINTS, _WIN_LAYER, _ICEWM_TRAY, _WIN_SUPPORTING_WM_CHECK, _WIN_CLIENT_LIST, _NET_SUPPORTING_WM_CHECK, _NET_SUPPORTED, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_WM_DESKTOP, _NET_ACTIVE_WINDOW, _NET_CLOSE_WINDOW, _NET_WM_STRUT, _NET_WORKAREA, _NET_WM_STATE, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_SHADED, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_SPLASH
_XROOTCOLOR_PIXEL(CARDINAL) = 8256
_XROOTPMAP_ID(PIXMAP): pixmap id # 0x0
RESOURCE_MANAGER(STRING) = "Xft.dpi:\t96\nXft.antialias:\ttrue\nXft.rgba:\trgb\nXft.hinting:\ttrue\nXft.hintstyle:\thintslight\nXcursor.theme:\tVanilla-DMZ\nXTerm*background:\t#000000\nXTerm*foreground:\t#C0C0C0\nXTerm*cursorColor:\t#C0C0C0\nXTerm*faceName:\tTerminus:size=10\nXTerm*dynamicColors:\ttrue\nxterm*utf8:\t2\nxterm*eightBitInput:\ttrue\nxterm*saveLines:\t65000\nxterm*scrollTtyKeypress:\ttrue\nxterm*scrollTtyOutput:\tfalse\nxterm*scrollBar:\ttrue\nXTerm*rightScrollBar:\ttrue\nxterm*jumpScroll:\ttrue\nxterm*multiScroll:\ttrue\nxterm*toolBar:\tfalse\nXTerm*metaSendsEscape:\ttrue\nXTerm*eightBitInput:\tfalse\nXTerm*activeIcon:\ttrue\nURxvt.title:\tterminal\nURxvt.background:\t#000000\nURxvt.foreground:\t#ffffff\nurxvt*cursorColor:\t#ffffff\nurxvt*cursorColor2:\t#000000\nURxvt.internalBorder:\t2\nURxvt.font:\txft:Terminus:size=10:VL Gothic:antialias=true:hinting=true\nURxvt.boldFont:\txft:Terminus:size=10:antialias=true:hinting=true:style=bold\nURxvt.shading:\t100\nURxvt.inheritPixmap:\tFalse\nURxvt.cursorBlink:\tFalse\nURxvt.scrollBar:\tFalse\nURxvt.colorUL:\t#729fcf\nURxvt.perl-ext:\tdefault,keyboard-select,matcher,clipboard,url-select\nURxvt.keysym.C-Insert:\tperl:clipboard:copy\nURxvt.keysym.S-Insert:\tperl:clipboard:paste\nURxvt.keysym.M-Insert:\tperl:clipboard:paste_escaped\nURxvt.keysym.M-y:\tperl:keyboard-select:activate\nURxvt.keysym.M-s:\tperl:keyboard-select:search\nURxvt.keysym.M-u:\tperl:url-select:select_next\nURxvt.underlineURLs:\ttrue\nURxvt.colorURL:\t11\nURxvt.matcher.button:\t1\nURxvt*matcher.pattern.0:\t\\\\b(?:(?:https?|ftp):\\/\\/|mailto:)[\\\\w\\-\\@;\\/?:&=%\\$_.+!*\\x27(),~#]+ [\\\\w\\-\\@;\\/?:&=%\\$_+!*\\x27()~]\nURxvt.matcher.pattern.1:\t\\\\bwww\\\\.[\\\\w-]+\\\\.[\\\\w./?&@#-]*[\\\\w/-]\nURxvt*matcher.pattern.2:\t\\\\bhttps?:\\/\\/[\\\\w-.]*\\/[\\\\w./?&@#-]*.(jpg|jpeg|gif|png)\nURxvt*matcher.launcher.2:\tfeh $0\nURxvt.cutchars:\t\"'()*<>[]{|}\"\nxcalc*geometry:\t200x275\nxcalc.ti.bevel.background:\t#111111\nxcalc.ti.bevel.screen.background:\t#000000\nxcalc.ti.bevel.screen.DEG.background:\t#000000\nxcalc.ti.bevel.screen.DEG.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.GRAD.background:\t#000000\nxcalc.ti.bevel.screen.GRAD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.RAD.background:\t#000000\nxcalc.ti.bevel.screen.RAD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.INV.background:\t#000000\nxcalc.ti.bevel.screen.INV.foreground:\tRed\nxcalc.ti.bevel.screen.LCD.background:\t#000000\nxcalc.ti.bevel.screen.LCD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.LCD.shadowWidth:\t0\nxcalc.ti.bevel.screen.M.background:\t#000000\nxcalc.ti.bevel.screen.M.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.P.background:\t#000000\nxcalc.ti.bevel.screen.P.foreground:\tYellow\nxcalc.ti.Command.foreground:\tWhite\nxcalc.ti.Command.background:\t#777777\nxcalc.ti.button5.background:\tOrange3\nxcalc.ti.button19.background:\t#611161\nxcalc.ti.button18.background:\t#611161\nxcalc.ti.button20.background:\t#611111\nxcalc.ti.button25.background:\t#722222\nxcalc.ti.button30.background:\t#833333\nxcalc.ti.button35.background:\t#944444\nxcalc.ti.button40.background:\t#a55555\nxcalc.ti.button22.background:\t#222262\nxcalc.ti.button23.background:\t#222262\nxcalc.ti.button24.background:\t#222272\nxcalc.ti.button27.background:\t#333373\nxcalc.ti.button28.background:\t#333373\nxcalc.ti.button29.background:\t#333373\nxcalc.ti.button32.background:\t#444484\nxcalc.ti.button33.background:\t#444484\nxcalc.ti.button34.background:\t#444484\nxcalc.ti.button37.background:\t#555595\nxcalc.ti.button38.background:\t#555595\nxcalc.ti.button39.background:\t#555595\nXCalc*Cursor:\thand2\nXCalc*ShapeStyle:\trectangle\nxcalc.ti.button20.label:\t/\n"
_XKB_RULES_NAMES(STRING) = "evdev", "evdev", "us,il", "", "grp:alt_shift_toggle"
XFree86_VT(INTEGER) = 7
XFree86_DDC_EDID1_RAWDATA(INTEGER) = 0, -1, -1, -1, -1, -1, -1, 0, 6, -81, 116, 33, 0, 0, 0, 0, 1, 15, 1, 3, -128, 33, 21, 120, 10, 28, -11, -105, 88, 80, -114, 39, 39, 80, 84, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -57, 27, 0, -96, 80, 32, 23, 48, 48, 32, 54, 0, 75, -49, 16, 0, 0, 24, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, -2, 0, 65, 85, 79, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, -2, 0, 66, 49, 53, 52, 69, 87, 48, 50, 32, 86, 49, 32, 10, 0, -86
Openbox:
_OPENBOX_PID(CARDINAL) = 6195

Code: Select all

_ROX_FILER_1000_darkstar.example.net(WINDOW): window id # 0x1400003
_ROX_FILER_1000_2.9_darkstar.example.net(WINDOW): window id # 0x1400003
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x1800004
_WIN_DESKTOP_BUTTON_PROXY(CARDINAL) = 4194662
_WIN_WORKAREA(CARDINAL) = 0, 0, 1280, 775
_NET_CURRENT_DESKTOP(CARDINAL) = 0
_WIN_WORKSPACE(CARDINAL) = 0
_NET_NUMBER_OF_DESKTOPS(CARDINAL) = 4
_WIN_WORKSPACE_COUNT(CARDINAL) = 4
_WIN_WORKSPACE_NAMES(STRING) = " 1 ", " 2 ", " 3 ", " 4 "
_NET_CLIENT_LIST(WINDOW): window id # 0xc00003, 0x1800004
_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0xc00003, 0x1800004
_WIN_CLIENT_LIST(CARDINAL) = 12582915, 25165828
_NET_WORKAREA(CARDINAL) = 0, 0, 1280, 775, 0, 0, 1280, 775, 0, 0, 1280, 775, 0, 0, 1280, 775
WM_ICON_SIZE(WM_ICON_SIZE):
		minimum icon size: 32 by 32
		maximum icon size: 32 by 32
		incremental size change: 1 by 1
_WIN_AREA(CARDINAL) = 0, 0
_WIN_AREA_COUNT(CARDINAL) = 1, 1
_NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0x40003e
_WIN_SUPPORTING_WM_CHECK(CARDINAL) = 4194366
_NET_SUPPORTED(ATOM) = _WIN_WORKSPACE, _WIN_WORKSPACE_COUNT, _WIN_WORKSPACE_NAMES, _WIN_ICONS, _WIN_WORKAREA, _WIN_STATE, _WIN_HINTS, _WIN_LAYER, _ICEWM_TRAY, _WIN_SUPPORTING_WM_CHECK, _WIN_CLIENT_LIST, _NET_SUPPORTING_WM_CHECK, _NET_SUPPORTED, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_WM_DESKTOP, _NET_ACTIVE_WINDOW, _NET_CLOSE_WINDOW, _NET_WM_STRUT, _NET_WORKAREA, _NET_WM_STATE, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_SHADED, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_SPLASH
_WIN_PROTOCOLS(ATOM) = _WIN_WORKSPACE, _WIN_WORKSPACE_COUNT, _WIN_WORKSPACE_NAMES, _WIN_ICONS, _WIN_WORKAREA, _WIN_STATE, _WIN_HINTS, _WIN_LAYER, _ICEWM_TRAY, _WIN_SUPPORTING_WM_CHECK, _WIN_CLIENT_LIST, _NET_SUPPORTING_WM_CHECK, _NET_SUPPORTED, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_WM_DESKTOP, _NET_ACTIVE_WINDOW, _NET_CLOSE_WINDOW, _NET_WM_STRUT, _NET_WORKAREA, _NET_WM_STATE, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_SHADED, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_SPLASH
_XROOTCOLOR_PIXEL(CARDINAL) = 8256
_XROOTPMAP_ID(PIXMAP): pixmap id # 0x0
RESOURCE_MANAGER(STRING) = "Xft.dpi:\t96\nXft.antialias:\ttrue\nXft.rgba:\trgb\nXft.hinting:\ttrue\nXft.hintstyle:\thintslight\nXcursor.theme:\tVanilla-DMZ\nXTerm*background:\t#000000\nXTerm*foreground:\t#C0C0C0\nXTerm*cursorColor:\t#C0C0C0\nXTerm*faceName:\tTerminus:size=10\nXTerm*dynamicColors:\ttrue\nxterm*utf8:\t2\nxterm*eightBitInput:\ttrue\nxterm*saveLines:\t65000\nxterm*scrollTtyKeypress:\ttrue\nxterm*scrollTtyOutput:\tfalse\nxterm*scrollBar:\ttrue\nXTerm*rightScrollBar:\ttrue\nxterm*jumpScroll:\ttrue\nxterm*multiScroll:\ttrue\nxterm*toolBar:\tfalse\nXTerm*metaSendsEscape:\ttrue\nXTerm*eightBitInput:\tfalse\nXTerm*activeIcon:\ttrue\nURxvt.title:\tterminal\nURxvt.background:\t#000000\nURxvt.foreground:\t#ffffff\nurxvt*cursorColor:\t#ffffff\nurxvt*cursorColor2:\t#000000\nURxvt.internalBorder:\t2\nURxvt.font:\txft:Terminus:size=10:VL Gothic:antialias=true:hinting=true\nURxvt.boldFont:\txft:Terminus:size=10:antialias=true:hinting=true:style=bold\nURxvt.shading:\t100\nURxvt.inheritPixmap:\tFalse\nURxvt.cursorBlink:\tFalse\nURxvt.scrollBar:\tFalse\nURxvt.colorUL:\t#729fcf\nURxvt.perl-ext:\tdefault,keyboard-select,matcher,clipboard,url-select\nURxvt.keysym.C-Insert:\tperl:clipboard:copy\nURxvt.keysym.S-Insert:\tperl:clipboard:paste\nURxvt.keysym.M-Insert:\tperl:clipboard:paste_escaped\nURxvt.keysym.M-y:\tperl:keyboard-select:activate\nURxvt.keysym.M-s:\tperl:keyboard-select:search\nURxvt.keysym.M-u:\tperl:url-select:select_next\nURxvt.underlineURLs:\ttrue\nURxvt.colorURL:\t11\nURxvt.matcher.button:\t1\nURxvt*matcher.pattern.0:\t\\\\b(?:(?:https?|ftp):\\/\\/|mailto:)[\\\\w\\-\\@;\\/?:&=%\\$_.+!*\\x27(),~#]+ [\\\\w\\-\\@;\\/?:&=%\\$_+!*\\x27()~]\nURxvt.matcher.pattern.1:\t\\\\bwww\\\\.[\\\\w-]+\\\\.[\\\\w./?&@#-]*[\\\\w/-]\nURxvt*matcher.pattern.2:\t\\\\bhttps?:\\/\\/[\\\\w-.]*\\/[\\\\w./?&@#-]*.(jpg|jpeg|gif|png)\nURxvt*matcher.launcher.2:\tfeh $0\nURxvt.cutchars:\t\"'()*<>[]{|}\"\nxcalc*geometry:\t200x275\nxcalc.ti.bevel.background:\t#111111\nxcalc.ti.bevel.screen.background:\t#000000\nxcalc.ti.bevel.screen.DEG.background:\t#000000\nxcalc.ti.bevel.screen.DEG.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.GRAD.background:\t#000000\nxcalc.ti.bevel.screen.GRAD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.RAD.background:\t#000000\nxcalc.ti.bevel.screen.RAD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.INV.background:\t#000000\nxcalc.ti.bevel.screen.INV.foreground:\tRed\nxcalc.ti.bevel.screen.LCD.background:\t#000000\nxcalc.ti.bevel.screen.LCD.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.LCD.shadowWidth:\t0\nxcalc.ti.bevel.screen.M.background:\t#000000\nxcalc.ti.bevel.screen.M.foreground:\tLightSeaGreen\nxcalc.ti.bevel.screen.P.background:\t#000000\nxcalc.ti.bevel.screen.P.foreground:\tYellow\nxcalc.ti.Command.foreground:\tWhite\nxcalc.ti.Command.background:\t#777777\nxcalc.ti.button5.background:\tOrange3\nxcalc.ti.button19.background:\t#611161\nxcalc.ti.button18.background:\t#611161\nxcalc.ti.button20.background:\t#611111\nxcalc.ti.button25.background:\t#722222\nxcalc.ti.button30.background:\t#833333\nxcalc.ti.button35.background:\t#944444\nxcalc.ti.button40.background:\t#a55555\nxcalc.ti.button22.background:\t#222262\nxcalc.ti.button23.background:\t#222262\nxcalc.ti.button24.background:\t#222272\nxcalc.ti.button27.background:\t#333373\nxcalc.ti.button28.background:\t#333373\nxcalc.ti.button29.background:\t#333373\nxcalc.ti.button32.background:\t#444484\nxcalc.ti.button33.background:\t#444484\nxcalc.ti.button34.background:\t#444484\nxcalc.ti.button37.background:\t#555595\nxcalc.ti.button38.background:\t#555595\nxcalc.ti.button39.background:\t#555595\nXCalc*Cursor:\thand2\nXCalc*ShapeStyle:\trectangle\nxcalc.ti.button20.label:\t/\n"
_XKB_RULES_NAMES(STRING) = "evdev", "evdev", "us,il", "", "grp:alt_shift_toggle"
XFree86_VT(INTEGER) = 7
XFree86_DDC_EDID1_RAWDATA(INTEGER) = 0, -1, -1, -1, -1, -1, -1, 0, 6, -81, 116, 33, 0, 0, 0, 0, 1, 15, 1, 3, -128, 33, 21, 120, 10, 28, -11, -105, 88, 80, -114, 39, 39, 80, 84, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -57, 27, 0, -96, 80, 32, 23, 48, 48, 32, 54, 0, 75, -49, 16, 0, 0, 24, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, -2, 0, 65, 85, 79, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, -2, 0, 66, 49, 53, 52, 69, 87, 48, 50, 32, 86, 49, 32, 10, 0, -86

Maybe it would be better to scan /usr/bin/ to see what WM is installed and running? (by comparing all the potential WMs with the system processes.