diff options
-rwxr-xr-x | src/__main__.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/__main__.py b/src/__main__.py index 126ca49..c545a66 100755 --- a/src/__main__.py +++ b/src/__main__.py @@ -440,6 +440,37 @@ class Bar: return n +## Set process title +def setproctitle(title): + ''' + Set process title + + @param title:str The title of the process + ''' + import ctypes + try: + # Remove path, keep only the file, + # otherwise we get really bad effects, namely + # the name title is truncates by the number + # of slashes in the title. At least that is + # the observed behaviour when using procps-ng. + title = title.split('/')[-1] + # Create strng buffer with title + title = title.encode(sys.getdefaultencoding(), 'replace') + title = ctypes.create_string_buffer(title) + if 'linux' in sys.platform: + # Set process title on Linux + libc = ctypes.cdll.LoadLibrary('libc.so.6') + libc.prctl(15, ctypes.byref(title), 0, 0, 0) + elif 'bsd' in sys.platform: + # Set process title on at least FreeBSD + libc = ctypes.cdll.LoadLibrary('libc.so.7') + libc.setproctitle(ctypes.create_string_buffer(b'-%s'), title) + except: + pass +setproctitle(sys.argv[0]) + + ## Read command line arguments parser = ArgParser('A highly extensible minimalistic dock panel', sys.argv[0] + ' [options] [-- configuration-options]', |