diff options
Diffstat (limited to 'debian/source_gnome-shell.py')
-rw-r--r-- | debian/source_gnome-shell.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/debian/source_gnome-shell.py b/debian/source_gnome-shell.py new file mode 100644 index 0000000..3e48b8c --- /dev/null +++ b/debian/source_gnome-shell.py @@ -0,0 +1,46 @@ +from apport.hookutils import * +import os + +def is_process_running(proc): + ''' + Determine if process has a registered process id + ''' + log = command_output(['pidof', proc]) + if not log or log[:5] == "Error" or len(log)<1: + return False + return True + +def add_info(report): + attach_related_packages(report, ['mutter-common']) + + attach_gsettings_package(report, 'gnome-shell-common') + attach_gsettings_package(report, 'gsettings-desktop-schemas') + attach_gsettings_package(report, 'mutter-common') + attach_gsettings_schema(report, 'org.gnome.settings-daemon.plugins.color') + attach_gsettings_schema(report, 'org.gnome.settings-daemon.peripherals.mouse') + attach_gsettings_schema(report, 'org.gnome.settings-daemon.peripherals.touchscreen') + + try: + monitors = os.path.join(os.environ['XDG_CONFIG_HOME'], 'monitors.xml') + except KeyError: + monitors = os.path.expanduser('~/.config/monitors.xml') + + attach_file_if_exists(report, monitors, 'monitors.xml') + + result = '' + + dm_list = apport.hookutils.command_output(['sh', '-c', + 'apt-cache search \"display manager\" | cut -d \' \' -f1 | grep -E \"dm$|gdm3\"']) + + for line in dm_list.split('\n'): + if (is_process_running(line)): + result = line + break + + report['DisplayManager'] = result + + if command_available('journalctl') and os.path.exists('/run/systemd/system'): + report['ShellJournal'] = command_output(['journalctl', + '/usr/bin/gnome-shell', + '-b', '-o', 'short-monotonic', + '--lines', '3000']) |