[mutter] get-state: Move code into __main__ functions
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] get-state: Move code into __main__ functions
- Date: Thu, 28 Jul 2022 09:37:34 +0000 (UTC)
commit 40509154fb5d5e9b566fba47f70fbe76a381f678
Author: Marco Trevisan (Treviño) <mail 3v1n0 net>
Date: Fri Jun 3 18:57:41 2022 +0200
get-state: Move code into __main__ functions
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2448>
tools/get-state.py | 202 +++++++++++++++++++++++++++--------------------------
1 file changed, 104 insertions(+), 98 deletions(-)
---
diff --git a/tools/get-state.py b/tools/get-state.py
index b721e3d4ec..de0dfbf891 100755
--- a/tools/get-state.py
+++ b/tools/get-state.py
@@ -13,41 +13,6 @@ class Source(enum.Enum):
FILE = 2
-parser = argparse.ArgumentParser(description='Get display state')
-parser.add_argument('file', metavar='FILE', type=str, nargs='?',
- help='Read the output from gdbus call instead of calling D-Bus')
-parser.add_argument('--short', action='store_true')
-
-args = parser.parse_args()
-
-if args.file:
- source = Source.FILE
- path = args.file
-else:
- source = Source.DBUS
-
-short = args.short
-
-type_signature = '(ua((ssss)a(siiddada{sv})a{sv})a(iiduba(ssss)a{sv})a{sv})'
-variant_type = GLib.VariantType.new(type_signature)
-
-if source == Source.DBUS:
- command = 'gdbus call -e '\
- '-d org.gnome.Mutter.DisplayConfig '\
- '-o /org/gnome/Mutter/DisplayConfig '\
- '-m org.gnome.Mutter.DisplayConfig.GetCurrentState'
- result = subprocess.run(command,
- shell=True, check=True, capture_output=True, text=True)
- data = result.stdout
-else:
- if path == '-':
- data = sys.stdin.read()
- else:
- with open(path) as file:
- data = file.read()
-
-variant = GLib.variant_parse(variant_type, data)
-
def transform_to_string(transform):
match transform:
case 0: return 'normal'
@@ -95,72 +60,113 @@ def print_properties(level, lines, properties):
for property in property_list:
is_last = property == property_list[-1]
print_data(level + 1, is_last, lines,
- f'{property} ⇒ {properties[property]}')
-
-print('Serial: {}'.format(variant[0]))
-print()
-print('Monitors:')
-monitors = variant[1]
-lines=[]
-for monitor in monitors:
- is_last = monitor == monitors[-1]
- spec = monitor[0]
- modes = monitor[1]
- properties = monitor[2]
- print_data(0, is_last, lines, 'Monitor {}'.format(spec[0]))
- print_data(1, False, lines, f'EDID: vendor: {spec[1]}, product: {spec[2]}, serial: {spec[3]}')
-
- mode_count = len(modes)
- if short:
- modes = [mode for mode in modes if len(mode[6]) > 0]
- print_data(1, False, lines,
- f'Modes ({len(modes)}, {mode_count - len(modes)} omitted)')
+ f'{property} ⇒ {properties[property]}')
+
+def print_current_state(args):
+ if args.file:
+ source = Source.FILE
+ path = args.file
else:
- print_data(1, False, lines,
- f'Modes ({len(modes)})')
-
- for mode in modes:
- is_last = mode == modes[-1]
- print_data(2, is_last, lines, f'{mode[0]}')
- print_data(3, False, lines, f'Dimension: {mode[1]}x{mode[2]}')
- print_data(3, False, lines, f'Refresh rate: {mode[3]}')
- print_data(3, False, lines, f'Preferred scale: {mode[4]}')
- print_data(3, False, lines, f'Supported scales: {mode[5]}')
-
- mode_properties = mode[6]
- print_properties(3, lines, mode_properties)
-
- print_properties(1, lines, properties)
-
-print()
-print('Logical monitors:')
-logical_monitors = variant[2]
-index = 1
-for logical_monitor in logical_monitors:
- is_last = logical_monitor == logical_monitors[-1]
- properties = logical_monitor[2]
- print_data(0, is_last, lines, f'Logical monitor #{index}')
- print_data(1, False, lines,
- f'Position: ({logical_monitor[0]}, {logical_monitor[1]})')
- print_data(1, False, lines,
- f'Scale: {logical_monitor[2]}')
- print_data(1, False, lines,
- f'Transform: {transform_to_string(logical_monitor[3])}')
- print_data(1, False, lines,
- f'Primary: {logical_monitor[4]}')
- monitors = logical_monitor[5]
- print_data(1, False, lines,
- f'Monitors: ({len(monitors)})')
+ source = Source.DBUS
+
+ short = args.short
+
+ type_signature = '(ua((ssss)a(siiddada{sv})a{sv})a(iiduba(ssss)a{sv})a{sv})'
+ variant_type = GLib.VariantType.new(type_signature)
+
+ if source == Source.DBUS:
+ command = 'gdbus call -e '\
+ '-d org.gnome.Mutter.DisplayConfig '\
+ '-o /org/gnome/Mutter/DisplayConfig '\
+ '-m org.gnome.Mutter.DisplayConfig.GetCurrentState'
+ result = subprocess.run(command,
+ shell=True, check=True, capture_output=True, text=True)
+ data = result.stdout
+ else:
+ if path == '-':
+ data = sys.stdin.read()
+ else:
+ with open(path) as file:
+ data = file.read()
+
+ variant = GLib.variant_parse(variant_type, data)
+
+ print('Serial: {}'.format(variant[0]))
+ print()
+ print('Monitors:')
+ monitors = variant[1]
+ lines = []
for monitor in monitors:
is_last = monitor == monitors[-1]
- print_data(2, is_last, lines,
- f'{monitor[0]} ({monitor[1]}, {monitor[2]}, {monitor[3]})')
+ spec = monitor[0]
+ modes = monitor[1]
+ properties = monitor[2]
+ print_data(0, is_last, lines, 'Monitor {}'.format(spec[0]))
+ print_data(
+ 1, False, lines, f'EDID: vendor: {spec[1]}, product: {spec[2]}, serial: {spec[3]}')
+
+ mode_count = len(modes)
+ if short:
+ modes = [mode for mode in modes if len(mode[6]) > 0]
+ print_data(1, False, lines,
+ f'Modes ({len(modes)}, {mode_count - len(modes)} omitted)')
+ else:
+ print_data(1, False, lines,
+ f'Modes ({len(modes)})')
+
+ for mode in modes:
+ is_last = mode == modes[-1]
+ print_data(2, is_last, lines, f'{mode[0]}')
+ print_data(3, False, lines, f'Dimension: {mode[1]}x{mode[2]}')
+ print_data(3, False, lines, f'Refresh rate: {mode[3]}')
+ print_data(3, False, lines, f'Preferred scale: {mode[4]}')
+ print_data(3, False, lines, f'Supported scales: {mode[5]}')
+
+ mode_properties = mode[6]
+ print_properties(3, lines, mode_properties)
+
+ print_properties(1, lines, properties)
+
+ print()
+ print('Logical monitors:')
+ logical_monitors = variant[2]
+ index = 1
+ for logical_monitor in logical_monitors:
+ is_last = logical_monitor == logical_monitors[-1]
+ properties = logical_monitor[2]
+ print_data(0, is_last, lines, f'Logical monitor #{index}')
+ print_data(1, False, lines,
+ f'Position: ({logical_monitor[0]}, {logical_monitor[1]})')
+ print_data(1, False, lines,
+ f'Scale: {logical_monitor[2]}')
+ print_data(1, False, lines,
+ f'Transform: {transform_to_string(logical_monitor[3])}')
+ print_data(1, False, lines,
+ f'Primary: {logical_monitor[4]}')
+ monitors = logical_monitor[5]
+ print_data(1, False, lines,
+ f'Monitors: ({len(monitors)})')
+ for monitor in monitors:
+ is_last = monitor == monitors[-1]
+ print_data(2, is_last, lines,
+ f'{monitor[0]} ({monitor[1]}, {monitor[2]}, {monitor[3]})')
+
+ properties = logical_monitor[6]
+ print_properties(1, lines, properties)
+
+ index += 1
+
+ properties = variant[3]
+ print()
+ print_properties(-1, lines, properties)
+
- properties = logical_monitor[6]
- print_properties(1, lines, properties)
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Get display state')
+ parser.add_argument('file', metavar='FILE', type=str, nargs='?',
+ help='Read the output from gdbus call instead of calling D-Bus')
+ parser.add_argument('--short', action='store_true')
- index += 1
+ args = parser.parse_args()
-properties = variant[3]
-print()
-print_properties(-1, lines, properties)
+ print_current_state(args)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]