meld issueshttps://gitlab.gnome.org/GNOME/meld/-/issues2024-03-22T22:21:31Zhttps://gitlab.gnome.org/GNOME/meld/-/issues/834Feature suggestion: synchronized multi-cursor2024-03-22T22:21:31ZFox RedFeature suggestion: synchronized multi-cursorI would love to see a **synchronized multi-cursor** feature, which would allow users to **simultaneously edit text in multiple comparison panes**. This would make it much easier to make changes simultaneously in multiple files, as users ...I would love to see a **synchronized multi-cursor** feature, which would allow users to **simultaneously edit text in multiple comparison panes**. This would make it much easier to make changes simultaneously in multiple files, as users would not have to constantly switch between panes or editors
![Screenshot from 2024-03-22 20-24-51.png](/uploads/a9ebc5bca5ed2da7d3bfcebc3b985db5/Screenshot_from_2024-03-22_20-24-51.png)https://gitlab.gnome.org/GNOME/meld/-/issues/833Crash because of security check on Windows2024-03-13T09:14:34ZThomas WCrash because of security check on WindowsI just installed Meld via the MSI, but I can't even run it.
```
ModLoad: 00007fff`ae8a0000 00007fff`ae8b9000 C:\WINDOWS\System32\wkscli.dll
ModLoad: 00007fff`66b30000 00007fff`66b42000 C:\WINDOWS\SYSTEM32\cscapi.dll
ModLoad: 00007ff...I just installed Meld via the MSI, but I can't even run it.
```
ModLoad: 00007fff`ae8a0000 00007fff`ae8b9000 C:\WINDOWS\System32\wkscli.dll
ModLoad: 00007fff`66b30000 00007fff`66b42000 C:\WINDOWS\SYSTEM32\cscapi.dll
ModLoad: 00007fff`aeb60000 00007fff`aeb6c000 C:\WINDOWS\System32\netutils.dll
(6ee8.2a40): Unknown exception - code 000006ba (first chance)
(6ee8.2a40): Security check failure or stack buffer overrun - code c0000409 (!!! second chance !!!)
Subcode: 0x5 FAST_FAIL_INVALID_ARG
ucrtbase!invoke_watson+0x18:
00007fff`af831208 cd29 int 29h
```
Call stack:
```
0:000> k
# Child-SP RetAddr Call Site
00 000000c7`39bf8f70 00007fff`af7e24b1 ucrtbase!invoke_watson+0x18
01 000000c7`39bf8fa0 00007fff`af7e2379 ucrtbase!_invalid_parameter+0x12d
02 000000c7`39bf8fe0 00007fff`af861e22 ucrtbase!invalid_parameter_noinfo+0x9
03 000000c7`39bf9020 00007ffe`f13ba549 ucrtbase!common_fstat<_stat64>+0xda
04 000000c7`39bf90a0 00007ffe`f13bf502 libgtk_3_0!gtk_header_bar_get_decoration_layout+0x13d9
05 000000c7`39bf91c0 00007ffe`f13bf9f2 libgtk_3_0!gtk_header_bar_get_decoration_layout+0x6392
06 000000c7`39bf92b0 00007ffe`f13bfbd9 libgtk_3_0!gtk_header_bar_get_decoration_layout+0x6882
07 000000c7`39bf93a0 00007ffe`f13c19db libgtk_3_0!gtk_header_bar_get_decoration_layout+0x6a69
08 000000c7`39bf94a0 00007ffe`f13c2364 libgtk_3_0!gtk_icon_info_get_type+0x96b
09 000000c7`39bf95b0 00007ffe`f13bbaa5 libgtk_3_0!gtk_icon_info_get_type+0x12f4
0a 000000c7`39bf9650 00007ffe`f13bc1d7 libgtk_3_0!gtk_header_bar_get_decoration_layout+0x2935
0b 000000c7`39bf97a0 00007ffe`f13bc47e libgtk_3_0!gtk_header_bar_get_decoration_layout+0x3067
0c 000000c7`39bf9840 00007ffe`f13d165b libgtk_3_0!gtk_header_bar_get_decoration_layout+0x330e
0d 000000c7`39bf98e0 00007ffe`f131685b libgtk_3_0!gtk_icon_view_get_activate_on_single_click+0x28b
0e 000000c7`39bf9960 00007ffe`f131b79d libgtk_3_0!gtk_container_get_path_for_child+0x629b
0f 000000c7`39bf99c0 00007ffe`f13d1e03 libgtk_3_0!gtk_style_properties_lookup_property+0x452d
10 000000c7`39bf9ac0 00007ffe`f14a18d1 libgtk_3_0!gtk_icon_view_get_activate_on_single_click+0xa33
11 000000c7`39bf9b10 00007ffe`f14a2609 libgtk_3_0!gtk_widget_get_preferred_height+0x2b1
12 000000c7`39bf9c60 00007ffe`f12bde2f libgtk_3_0!gtk_widget_get_preferred_width+0x69
13 000000c7`39bf9cc0 00007ffe`f131685b libgtk_3_0!gtk_border_get_type+0x204f
14 000000c7`39bf9db0 00007ffe`f131b79d libgtk_3_0!gtk_container_get_path_for_child+0x629b
15 000000c7`39bf9e10 00007ffe`f12bd2c3 libgtk_3_0!gtk_style_properties_lookup_property+0x452d
16 000000c7`39bf9f10 00007ffe`f14a18d1 libgtk_3_0!gtk_border_get_type+0x14e3
17 000000c7`39bf9f60 00007ffe`f14a2609 libgtk_3_0!gtk_widget_get_preferred_height+0x2b1
18 000000c7`39bfa0b0 00007ffe`f14a18d1 libgtk_3_0!gtk_widget_get_preferred_width+0x69
19 000000c7`39bfa110 00007ffe`f14a2609 libgtk_3_0!gtk_widget_get_preferred_height+0x2b1
1a 000000c7`39bfa260 00007ffe`f12b8442 libgtk_3_0!gtk_widget_get_preferred_width+0x69
1b 000000c7`39bfa2c0 00007ffe`f147b98a libgtk_3_0!gtk_button_box_set_child_non_homogeneous+0x692
1c 000000c7`39bfa320 00007ffe`f14a18d1 libgtk_3_0!gtk_render_icon_surface+0x4e1a
1d 000000c7`39bfa390 00007ffe`f14a2609 libgtk_3_0!gtk_widget_get_preferred_height+0x2b1
1e 000000c7`39bfa4e0 00007ffe`f131685b libgtk_3_0!gtk_widget_get_preferred_width+0x69
1f 000000c7`39bfa540 00007ffe`f131b79d libgtk_3_0!gtk_container_get_path_for_child+0x629b
20 000000c7`39bfa5a0 00007ffe`f13ee567 libgtk_3_0!gtk_style_properties_lookup_property+0x452d
21 000000c7`39bfa6a0 00007ffe`f14a18d1 libgtk_3_0!gtk_link_button_get_visited+0xac7
22 000000c7`39bfa6f0 00007ffe`f14a2609 libgtk_3_0!gtk_widget_get_preferred_height+0x2b1
23 000000c7`39bfa840 00007ffe`f13ee1e2 libgtk_3_0!gtk_widget_get_preferred_width+0x69
24 000000c7`39bfa8a0 00007ffe`f131685b libgtk_3_0!gtk_link_button_get_visited+0x742
25 000000c7`39bfa950 00007ffe`f131b79d libgtk_3_0!gtk_container_get_path_for_child+0x629b
26 000000c7`39bfa9b0 00007ffe`f13ee38b libgtk_3_0!gtk_style_properties_lookup_property+0x452d
27 000000c7`39bfaab0 00007ffe`f131685b libgtk_3_0!gtk_link_button_get_visited+0x8eb
28 000000c7`39bfab60 00007ffe`f131b79d libgtk_3_0!gtk_container_get_path_for_child+0x629b
29 000000c7`39bfabc0 00007ffe`f13ee4ea libgtk_3_0!gtk_style_properties_lookup_property+0x452d
2a 000000c7`39bfacc0 00007ffe`f14a1fbc libgtk_3_0!gtk_link_button_get_visited+0xa4a
2b 000000c7`39bfad10 00007ffe`f14a168c libgtk_3_0!gtk_widget_get_preferred_height+0x99c
2c 000000c7`39bfae60 00007ffe`f15534c8 libgtk_3_0!gtk_widget_get_preferred_height+0x6c
2d 000000c7`39bfaec0 00007ffe`f1553a88 libgtk_3_0!gtk_volume_button_new+0x3c8
2e 000000c7`39bfaf90 00007fff`0eeed07e libgtk_3_0!gtk_volume_button_new+0x988
2f 000000c7`39bfb000 00007fff`0eef05f8 libgobject_2_0_0!g_object_unref+0x24e
30 000000c7`39bfb0b0 00007fff`0eef11db libgobject_2_0_0!g_object_set_valist+0x1c8
31 000000c7`39bfb1c0 00007ffe`f148a918 libgobject_2_0_0!g_object_set+0x4b
32 000000c7`39bfb210 00007fff`0eeed1d7 libgtk_3_0!gtk_scrolled_window_set_hadjustment+0x198
33 000000c7`39bfb280 00007fff`0eeed8a5 libgobject_2_0_0!g_object_unref+0x3a7
34 000000c7`39bfb330 00007fff`0eeef69e libgobject_2_0_0!g_object_unref+0xa75
35 000000c7`39bfb3c0 00007ffe`f12c5fd9 libgobject_2_0_0!g_object_newv+0x1ee
36 000000c7`39bfb460 00007ffe`f12c76ad libgtk_3_0!gtk_builder_value_from_string+0xa39
37 000000c7`39bfb550 00007ffe`f12c88eb libgtk_3_0!gtk_builder_get_application+0x93d
38 000000c7`39bfb5b0 00007ffe`f26f5ad7 libgtk_3_0!gtk_builder_get_application+0x1b7b
39 000000c7`39bfb770 00007ffe`f26f7530 libglib_2_0_0!g_mapped_file_get_bytes+0x1e57
3a 000000c7`39bfb840 00007ffe`f12c9b9e libglib_2_0_0!g_markup_parse_context_parse+0x1070
3b 000000c7`39bfb900 00007ffe`f12c3e3e libgtk_3_0!gtk_builder_get_application+0x2e2e
3c 000000c7`39bfb990 00007ffe`f156c134 libgtk_3_0!gtk_builder_extend_with_template+0x1de
3d 000000c7`39bfba20 00007ffe`f1384004 libgtk_3_0!gtk_widget_init_template+0xe4
3e 000000c7`39bfbad0 00007fff`0ef0b50a libgtk_3_0!gtk_file_chooser_native_new+0x5564
3f 000000c7`39bfbb20 00007fff`0eeed801 libgobject_2_0_0!g_type_create_instance+0x1da
40 000000c7`39bfbc10 00007fff`0eeef69e libgobject_2_0_0!g_object_unref+0x9d1
41 000000c7`39bfbca0 00007ffe`f12c5fd9 libgobject_2_0_0!g_object_newv+0x1ee
42 000000c7`39bfbd40 00007ffe`f12c76ad libgtk_3_0!gtk_builder_value_from_string+0xa39
43 000000c7`39bfbe30 00007ffe`f12c88eb libgtk_3_0!gtk_builder_get_application+0x93d
44 000000c7`39bfbe90 00007ffe`f26f5ad7 libgtk_3_0!gtk_builder_get_application+0x1b7b
45 000000c7`39bfc050 00007ffe`f26f7530 libglib_2_0_0!g_mapped_file_get_bytes+0x1e57
46 000000c7`39bfc120 00007ffe`f12c9b9e libglib_2_0_0!g_markup_parse_context_parse+0x1070
47 000000c7`39bfc1e0 00007ffe`f12c3e3e libgtk_3_0!gtk_builder_get_application+0x2e2e
48 000000c7`39bfc270 00007ffe`f156c134 libgtk_3_0!gtk_builder_extend_with_template+0x1de
49 000000c7`39bfc300 00007ffe`f137b1d2 libgtk_3_0!gtk_widget_init_template+0xe4
4a 000000c7`39bfc3b0 00007fff`0ef0b50a libgtk_3_0!gtk_file_chooser_button_get_focus_on_click+0x162
4b 000000c7`39bfc3e0 00007fff`0eeed801 libgobject_2_0_0!g_type_create_instance+0x1da
4c 000000c7`39bfc4d0 00007fff`0eeef302 libgobject_2_0_0!g_object_unref+0x9d1
4d 000000c7`39bfc560 00007fff`0eef00d3 libgobject_2_0_0!g_object_new_with_properties+0x1e2
4e 000000c7`39bfc600 00007ffe`f137db41 libgobject_2_0_0!g_object_new+0x53
4f 000000c7`39bfc640 00007fff`0ef0b50a libgtk_3_0!gtk_file_chooser_dialog_new+0x1e91
50 000000c7`39bfc690 00007fff`0eeed801 libgobject_2_0_0!g_type_create_instance+0x1da
51 000000c7`39bfc780 00007fff`0eeefd8b libgobject_2_0_0!g_object_unref+0x9d1
52 000000c7`39bfc810 00007fff`0eef00b4 libgobject_2_0_0!g_object_new_valist+0x53b
53 000000c7`39bfcc30 00007ffe`f137eb1b libgobject_2_0_0!g_object_new+0x34
54 000000c7`39bfcc70 00007ffe`f137aa76 libgtk_3_0!gtk_file_chooser_native_new+0x7b
55 000000c7`39bfcd00 00007fff`0eeed8c3 libgtk_3_0!gtk_file_chooser_button_set_title+0x776
56 000000c7`39bfce20 00007fff`0eeef69e libgobject_2_0_0!g_object_unref+0xa93
57 000000c7`39bfceb0 00007ffe`f12c5fd9 libgobject_2_0_0!g_object_newv+0x1ee
58 000000c7`39bfcf50 00007ffe`f12c76ad libgtk_3_0!gtk_builder_value_from_string+0xa39
59 000000c7`39bfd040 00007ffe`f12c945a libgtk_3_0!gtk_builder_get_application+0x93d
5a 000000c7`39bfd0a0 00007ffe`f26f63d8 libgtk_3_0!gtk_builder_get_application+0x26ea
5b 000000c7`39bfd130 00007ffe`f26f71ac libglib_2_0_0!g_markup_parse_context_pop+0xf8
5c 000000c7`39bfd190 00007ffe`f12c9b9e libglib_2_0_0!g_markup_parse_context_parse+0xcec
5d 000000c7`39bfd250 00007ffe`f12c3e3e libgtk_3_0!gtk_builder_get_application+0x2e2e
5e 000000c7`39bfd2e0 00007ffe`f156c134 libgtk_3_0!gtk_builder_extend_with_template+0x1de
5f 000000c7`39bfd370 00007fff`8d754c91 libgtk_3_0!gtk_widget_init_template+0xe4
60 000000c7`39bfd420 00007fff`8d754897 libffi_8!ffi_call_win64+0x41
61 000000c7`39bfd450 00007fff`8d754a72 libffi_8!ffi_tramp_free+0x167
62 000000c7`39bfd4e0 00007fff`172b0350 libffi_8!ffi_call+0x12
63 000000c7`39bfd520 00007fff`172b2102 gi__gi_cp311_mingw_x86_64!PyInit__gi+0x10cd0
64 000000c7`39bfd620 00007ffe`f2acb19f gi__gi_cp311_mingw_x86_64!PyInit__gi+0x12a82
65 000000c7`39bfd6c0 00007ffe`f2acb8db libpython3_11!PyObject_MakeTpCall+0x6f
66 000000c7`39bfd730 00007ffe`f2b7f142 libpython3_11!PyObject_Vectorcall+0x6b
67 000000c7`39bfd780 00007ffe`f2b7e071 libpython3_11!PyEval_EvalFrameDefault+0x5e2
68 000000c7`39bfd920 00007ffe`f2acbcc1 libpython3_11!Py_LeaveRecursiveCall+0x41c
69 000000c7`39bfd990 00007ffe`f2ace3c5 libpython3_11!PyFunction_Vectorcall+0x41
6a 000000c7`39bfd9d0 00007ffe`f2acb0c6 libpython3_11!PyMethod_New+0x2c5
6b 000000c7`39bfdaa0 00007ffe`f29f4dd7 libpython3_11!PyObject_CallFunction+0x5d6
6c 000000c7`39bfdae0 00007fff`1729e100 libpython3_11!PyObject_CallMethod_SizeT+0x77
6d 000000c7`39bfdb50 00007fff`0ef0b50a gi__gi_cp311_mingw_x86_64+0xe100
6e 000000c7`39bfdba0 00007fff`0eeed801 libgobject_2_0_0!g_type_create_instance+0x1da
6f 000000c7`39bfdc90 00007fff`0eeef302 libgobject_2_0_0!g_object_unref+0x9d1
70 000000c7`39bfdd20 00007fff`1729f60e libgobject_2_0_0!g_object_new_with_properties+0x1e2
71 000000c7`39bfddc0 00007fff`17294918 gi__gi_cp311_mingw_x86_64+0xf60e
72 000000c7`39bfde30 00007ffe`f2a0dbcc gi__gi_cp311_mingw_x86_64+0x4918
73 000000c7`39bfdee0 00007ffe`f2acb19f libpython3_11!PyType_GetQualName+0xcc
74 000000c7`39bfdf10 00007ffe`f2acb8db libpython3_11!PyObject_MakeTpCall+0x6f
75 000000c7`39bfdf80 00007ffe`f2b7f142 libpython3_11!PyObject_Vectorcall+0x6b
76 000000c7`39bfdfd0 00007ffe`f2b7e071 libpython3_11!PyEval_EvalFrameDefault+0x5e2
77 000000c7`39bfe170 00007ffe`f2acbe75 libpython3_11!Py_LeaveRecursiveCall+0x41c
78 000000c7`39bfe1e0 00007ffe`f2b1cf4f libpython3_11!PyObject_Call_Prepend+0xe5
79 000000c7`39bfe2c0 00007ffe`f2b1ab2c libpython3_11!PyType_GenericNew+0x43f
7a 000000c7`39bfe370 00007ffe`f2acb19f libpython3_11!PyType_IsSubtype+0x19c
7b 000000c7`39bfe3c0 00007ffe`f2acb8db libpython3_11!PyObject_MakeTpCall+0x6f
7c 000000c7`39bfe430 00007ffe`f2b7f142 libpython3_11!PyObject_Vectorcall+0x6b
7d 000000c7`39bfe480 00007ffe`f2b7e071 libpython3_11!PyEval_EvalFrameDefault+0x5e2
7e 000000c7`39bfe620 00007ffe`f2acbcc1 libpython3_11!Py_LeaveRecursiveCall+0x41c
7f 000000c7`39bfe690 00007fff`172ad9fd libpython3_11!PyFunction_Vectorcall+0x41
80 000000c7`39bfe6d0 00007fff`8d754c0c gi__gi_cp311_mingw_x86_64!PyInit__gi+0xe37d
81 000000c7`39bfe7e0 00007fff`8d754dbe libffi_8!ffi_closure_win64_inner+0xec
82 000000c7`39bfe870 00007ffe`f2532499 libffi_8!ffi_closure_win64+0x46
83 000000c7`39bfe8d0 00007fff`0eee8344 libgio_2_0_0!g_loadable_icon_load_finish+0xe99
84 000000c7`39bfe920 00007fff`0eefbf47 libgobject_2_0_0!g_closure_invoke+0x354
85 000000c7`39bfe9e0 00007fff`0ef023bb libgobject_2_0_0!g_param_spec_variant+0x2c57
86 000000c7`39bfebd0 00007ffe`f2596505 libgobject_2_0_0!g_signal_emit+0x5b
87 000000c7`39bfec40 00007ffe`f2598ad3 libgio_2_0_0!g_win32_output_stream_get_handle+0x4745
88 000000c7`39bfeca0 00007ffe`f2598c46 libgio_2_0_0!g_application_open+0x323
89 000000c7`39bfed40 00007fff`8d754c91 libgio_2_0_0!g_application_run+0x116
8a 000000c7`39bfedc0 00007fff`8d754897 libffi_8!ffi_call_win64+0x41
8b 000000c7`39bfedf0 00007fff`8d754a72 libffi_8!ffi_tramp_free+0x167
8c 000000c7`39bfee80 00007fff`172b0350 libffi_8!ffi_call+0x12
8d 000000c7`39bfeec0 00007fff`172b2102 gi__gi_cp311_mingw_x86_64!PyInit__gi+0x10cd0
8e 000000c7`39bfefc0 00007ffe`f2acc512 gi__gi_cp311_mingw_x86_64!PyInit__gi+0x12a82
8f 000000c7`39bff060 00007ffe`f2b828bf libpython3_11!PyObject_Call+0xc2
90 000000c7`39bff100 00007ffe`f2b7e071 libpython3_11!PyEval_EvalFrameDefault+0x3d5f
91 000000c7`39bff2a0 00007ffe`f2a2d5fe libpython3_11!Py_LeaveRecursiveCall+0x41c
92 000000c7`39bff310 00007ffe`f2a2c0ec libpython3_11!PyEval_EvalCode+0xae
93 000000c7`39bff3c0 00007ffe`f2b06d3d libpython3_11!PyInit__ast+0x4e3c
94 000000c7`39bff4b0 00007ffe`f2acb8a3 libpython3_11!PyCMethod_New+0x41d
95 000000c7`39bff500 00007ffe`f2b7f142 libpython3_11!PyObject_Vectorcall+0x33
96 000000c7`39bff550 00007ffe`f2b7e071 libpython3_11!PyEval_EvalFrameDefault+0x5e2
97 000000c7`39bff6f0 00007ffe`f2acbcc1 libpython3_11!Py_LeaveRecursiveCall+0x41c
98 000000c7`39bff760 00007ffe`f2acb0c6 libpython3_11!PyFunction_Vectorcall+0x41
99 000000c7`39bff7a0 00007ffe`f2acd18a libpython3_11!PyObject_CallFunction+0x5d6
9a 000000c7`39bff7e0 00007ff7`e19e1dab libpython3_11!PyObject_CallObject+0x7a
9b 000000c7`39bff840 00007ff7`e19e12f7 Meld+0x1dab
9c 000000c7`39bff8c0 00007ff7`e19e13e6 Meld+0x12f7
9d 000000c7`39bff910 00007fff`b0747344 Meld+0x13e6
9e 000000c7`39bff940 00007fff`b20c26b1 KERNEL32!BaseThreadInitThunk+0x14
9f 000000c7`39bff970 00000000`00000000 ntdll!RtlUserThreadStart+0x21
```
Version info:
```
0:000> lmvmMeld
start end module name
00007ff7`e19e0000 00007ff7`e19fa000 Meld (no symbols)
Loaded symbol image file: C:\Program Files\Meld\Meld.exe
Image path: C:\Program Files\Meld\Meld.exe
Image name: Meld.exe
Browse all global symbols functions data
Timestamp: Sat Feb 10 10:52:55 2024 (65C74777)
CheckSum: 000193F0
ImageSize: 0001A000
File version: 3.22.1.0
Product version: 3.22.1.0
File flags: 1 (Mask 3F) Debug
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04e4
Information from resource tables:
CompanyName: The Meld project
ProductName: Meld
InternalName: Meld.exe
OriginalFilename: Meld.exe
ProductVersion: 3.22.1
FileVersion: 3.22.1.0
FileDescription: Visual diff and merge tool
LegalCopyright:
LegalTrademarks:
Comments:
```
System is: Windows 10 22H2, Build 19045.4046
If you tell me where to get symbols from, I can probably reproduce and provide a call stack with proper symbols.https://gitlab.gnome.org/GNOME/meld/-/issues/832Browsing differences of 2 (or 3) directories2024-03-26T03:46:02ZThomasBrowsing differences of 2 (or 3) directoriesHi :-)
Currently, we can browse differences of a file by block, with `Alt-Up/Down`.
When I review the code before commit, I would like to browse all the differences of the 2 directories with keyboard shortcuts like `Alt-Up/Down/Right/L...Hi :-)
Currently, we can browse differences of a file by block, with `Alt-Up/Down`.
When I review the code before commit, I would like to browse all the differences of the 2 directories with keyboard shortcuts like `Alt-Up/Down/Right/Left`, please. :-) (Please choose a key-modifier that I can find on the right of the keyboard, so I'd be able to browse using a single hand.)
---
`Alt-Right/Left` would allow to change the focus:
* files being different
* differences of a file by block
* differences of a block by inline differences.
Copying differences from a file to the other could be done by adding a key-modifier to the previous keyboard shortcuts, for example `Ctrl-Alt-Right/Left`.
---
Then, if we start at the top of a directory comparison:
* `Alt-Down`: go to the next file
* `Alt-Right`: go to the 1st block in the current file
* `Alt-Down`: go to the next block
* `Ctrl-Alt-Right`: Copy the current block from the left file to the right file
* `Alt-Down`: go to the next block
* `Alt-Right`: go to the 1st inline in the current block
* `Alt-Down`: go to the next inline
* `Ctrl-Alt-Right`: Copy the current inline from the left file to the right file
* `Alt-Left`: come back to the current block
* `Alt-Left`: come back to the current file
---
The view which I imagine is:
- 3/4 top: current file comparison
- 1/4 bottom: directory comparisonhttps://gitlab.gnome.org/GNOME/meld/-/issues/831Add support for .rtf files2024-03-23T04:33:44ZJonathan BergenAdd support for .rtf filesI work with a lot of rtf templates and would like to use Meld to view the changes instead of switching diff tools for specific files.
Is there a current format that would work for these types of files? If not, could someone familiar wit...I work with a lot of rtf templates and would like to use Meld to view the changes instead of switching diff tools for specific files.
Is there a current format that would work for these types of files? If not, could someone familiar with Meld's architecture reach out to me? I have the time to add this feature, but need an introduction.
Thanks,
Jonathanhttps://gitlab.gnome.org/GNOME/meld/-/issues/830how to PR your repo's wiki?2024-03-23T20:12:25ZArt M.G.how to PR your repo's wiki?Hi,
I would like to propose some new content on https://gitlab.gnome.org/GNOME/meld/-/wikis/home
I have forked the project to https://gitlab.gnome.org/artmg/meld but if I add a wiki there i do not think that will be linked to the upstr...Hi,
I would like to propose some new content on https://gitlab.gnome.org/GNOME/meld/-/wikis/home
I have forked the project to https://gitlab.gnome.org/artmg/meld but if I add a wiki there i do not think that will be linked to the upstream wiki. I have seen the PR-via-email feature but I think that's just for the main repo.
I can clone the pages to my local machine, but then how would I submit the PR?
Please let me know how I can send you any diff
Thanks for keeping this project fed and wateredhttps://gitlab.gnome.org/GNOME/meld/-/issues/829Left right left right! Blank comparisons are saved in the "Recent comparisons...2024-03-11T21:29:11ZJeff FortinLeft right left right! Blank comparisons are saved in the "Recent comparisons" popoverAs observed with Meld 3.22.1:
![Screencast_from_2024-02-28_16-08-51](/uploads/fb2bb9bbc51c0f770a964d222f4a3555/Screencast_from_2024-02-28_16-08-51.webm){width=100%}
I think the cause behind this is either:
* I often start Meld standalo...As observed with Meld 3.22.1:
![Screencast_from_2024-02-28_16-08-51](/uploads/fb2bb9bbc51c0f770a964d222f4a3555/Screencast_from_2024-02-28_16-08-51.webm){width=100%}
I think the cause behind this is either:
* I often start Meld standalone and create a blank two-way comparison, then paste contents into the left and right panes to manually compare something that comes from the web or some other type of document.
* Or, possibly, this might be because I sometimes use `git meld`, which is an alias like this in my `.gitconfig` file:
`meld = difftool --dir-diff -t meld`
Meld should not populate the history with those ghost comparisons :)https://gitlab.gnome.org/GNOME/meld/-/issues/828Undo tool missing in header bar2024-02-28T22:30:20ZpkzcUndo tool missing in header barIn the pre-CSD era Meld had an Undo button (key shortcut: Ctrl-Z) in the toolbar. (Maybe a Redo button, too, I can't remember now.)
I would like to get back at least the Undo button in the new header bar, it was so handy and there is ple...In the pre-CSD era Meld had an Undo button (key shortcut: Ctrl-Z) in the toolbar. (Maybe a Redo button, too, I can't remember now.)
I would like to get back at least the Undo button in the new header bar, it was so handy and there is plenty of space for it.
Of course, the nicest would be a user-configurable tool set in the header bar: I would remove the push change buttons as I never use them, but that may be only me.https://gitlab.gnome.org/GNOME/meld/-/issues/827pick filename filters from `.gitignore` file2024-02-27T19:56:07ZYash Pal Goyalpick filename filters from `.gitignore` filepick filename filters from `.gitignore` file
it will ease the folder comparisons of two repo directories.
basically it will have to ignore the comments from gitignore file, what remains is just plain patterns.pick filename filters from `.gitignore` file
it will ease the folder comparisons of two repo directories.
basically it will have to ignore the comments from gitignore file, what remains is just plain patterns.https://gitlab.gnome.org/GNOME/meld/-/issues/826'libpango-1.0-0.dll': The specified module could not be found2024-02-26T19:13:57ZCésar Izurieta'libpango-1.0-0.dll': The specified module could not be foundOn a fresh install of meld for windows v3.22.1, `Meld.exe` does not open and I get the following error when running `MeldConsole.exe`:
```
** (process:4176): WARNING **: 14:01:32.046: Failed to load shared library 'libpango-1.0-0.dll' re...On a fresh install of meld for windows v3.22.1, `Meld.exe` does not open and I get the following error when running `MeldConsole.exe`:
```
** (process:4176): WARNING **: 14:01:32.046: Failed to load shared library 'libpango-1.0-0.dll' referenced by the typelib: 'libpango-1.0-0.dll': The specified module could not be found.
```
Meld 3.21.1 works correctly. It seems that the location of the installation changed from `C:\Program Files (x86)` to `C:\Program Files` and I see a lot less `dll` files on the new version.https://gitlab.gnome.org/GNOME/meld/-/issues/825Meld messes up file permissions on Windows2024-03-10T00:28:41ZpkzcMeld messes up file permissions on WindowsAfter having modified a file in Meld and saving it, the "Read & Execute" flag for the owner gets set on that file under Windows. I use cygwin git and the ACL flag is reflected in the file permissions which interacts badly with git.
Woul...After having modified a file in Meld and saving it, the "Read & Execute" flag for the owner gets set on that file under Windows. I use cygwin git and the ACL flag is reflected in the file permissions which interacts badly with git.
Would it be possible to make Meld preserve the ACL flags of the files it writes to?
I worked around this problem by running Meld from a wrapper script which restores the file permissions of the files under git control after Meld has terminated, but I regard it to be very awkward.https://gitlab.gnome.org/GNOME/meld/-/issues/823meld offers to discard changes in both compared files when the file from only...2024-02-13T21:30:00Zyurivictmeld offers to discard changes in both compared files when the file from only one of the sides changes on diskI was hand-merging changes from the right side into the left side.
Then I decided to use an external tool to update the right-side file because there were too many changes to be made.
When the right-side file changed on disk meld offer...I was hand-merging changes from the right side into the left side.
Then I decided to use an external tool to update the right-side file because there were too many changes to be made.
When the right-side file changed on disk meld offered me to discard changes in both left and right sides, despite only the right side has changed on disk.
meld should only offer to discard the changes from the same side of the comparison when the disk changes, because the other side has nothing to do with the disk file change.https://gitlab.gnome.org/GNOME/meld/-/issues/822cannot do version compare with git in the /.git work tree2024-02-18T03:27:08ZDoug Maxeycannot do version compare with git in the /.git work treeIt seems like it was working at some point in the last few months, as root working with the system config files with the work tree rooted at /.
```
# python --version
Python 3.9.18
# meld --version
meld 3.22.0
# git --version
git versio...It seems like it was working at some point in the last few months, as root working with the system config files with the work tree rooted at /.
```
# python --version
Python 3.9.18
# meld --version
meld 3.22.0
# git --version
git version 2.42.0
# pwd
/etc/NetworkManager/system-connections
# git rev-parse --show-toplevel
/
# git ls how.nmconnection
how.nmconnection
# echo "#" >> how.nmconnection
# git --no-pager status --porcelain=1 --short --branch
## master...origin/master
M how.nmconnection
# meld how.nmconnection
Usage:
meld Start with an empty window
meld <file|folder> Start a version control comparison
meld <file> <file> [<file>] Start a 2- or 3-way file comparison
meld <folder> <folder> [<folder>] Start a 2- or 3-way folder comparison
Error: Git: Path /etc/NetworkManager/system-connections/how.nmconnection is invalid or not present
Error: Path not in repository
```
The version control stuff works fine when the repo is not '/'.https://gitlab.gnome.org/GNOME/meld/-/issues/821Directory comparison - "no differences" even if different no. of files2024-01-30T13:43:01ZHolger MendeDirectory comparison - "no differences" even if different no. of filesMeld 3.22
Win10
Main issue is that both directories are shown as empty...
even if one directory is empty, the other containing 9 binary files, switching through all 4 combination of settings in preferences -> Folder comparison ("Compare...Meld 3.22
Win10
Main issue is that both directories are shown as empty...
even if one directory is empty, the other containing 9 binary files, switching through all 4 combination of settings in preferences -> Folder comparison ("Compare files based only on size and timestamp" yes/no, "apply text filters during folder comparison").
Is meld dependant on windows 10 file indexing? (It is turned off). Meld works for different directories.
![dir_comparison_messed_up](/uploads/5737a92eb7d880534f41f8be5c9c5352/dir_comparison_messed_up.png)https://gitlab.gnome.org/GNOME/meld/-/issues/820unsaved status no longer valid2024-01-24T05:31:32ZChristoph Anton Mitterercalestyo@scientia.orgunsaved status no longer validHey.
I'm afraid I won't be able to give much valuable information on this, as I haven't found a way yet to reproduce it (though it did happen numerous times by now).
When I diff two files with meld, make some edits, save one of the sid...Hey.
I'm afraid I won't be able to give much valuable information on this, as I haven't found a way yet to reproduce it (though it did happen numerous times by now).
When I diff two files with meld, make some edits, save one of the sides with Ctrl-S,... then it happens every now and then, that meld ends up in a state, where "arrow down icon", which indicates whether there are unsaved changes by being black or grey, gets in a state where it just stays gray, even when further changes are made.
Once in that state, I can also go the undo history back and forth, and it will just remain gray.
Cheers,
Chris.https://gitlab.gnome.org/GNOME/meld/-/issues/819Repeated problem with .pdf files2024-01-19T14:11:40ZAlastair Budge-ReidRepeated problem with .pdf filesI am using meld for first time and therefore may be doing something wrong but when comparing pdf files I am getting an orange error warning:-
`There was a character encoding conversion error and it was needed to use a fallback character....I am using meld for first time and therefore may be doing something wrong but when comparing pdf files I am getting an orange error warning:-
`There was a character encoding conversion error and it was needed to use a fallback character.`
Am I missing sometheing?https://gitlab.gnome.org/GNOME/meld/-/issues/818meld opens with it's height equal to tallest screen2024-01-12T21:30:16ZJulien Lecomtemeld opens with it's height equal to tallest screenUnder Debian bookworm, meld opens with it's height equal to the tallest screen.
My screen setup, from left to right, is a vertical screen (rotated right), a horizontal one, and a vertical one (rotated right).
The first issue is that ev...Under Debian bookworm, meld opens with it's height equal to the tallest screen.
My screen setup, from left to right, is a vertical screen (rotated right), a horizontal one, and a vertical one (rotated right).
The first issue is that every time I open meld, it will open on the middle screen, with it's width a bit smaller than the middle screen, but with the window's height equal to the height of the vertical screens.
I click to make the window full screen on the middle screen, but every time I double click to open a file by file comparison, it reverts back to the height of one of the middle screens.
This regression makes using meld on bookworm almost unusable. It's become easier to use meld in F11 type fullscreen which doesn't present the regression.
I can screen record the issue if you wish.
Screen setup:
![image](/uploads/404b7a0204283c3383bb985a955eea4e/image.png)https://gitlab.gnome.org/GNOME/meld/-/issues/816Error compiling meld from latest git: ModuleNotFoundError: No module named 'm...2023-12-31T06:53:10ZDaSnoopyError compiling meld from latest git: ModuleNotFoundError: No module named 'meld.ui.gtkutil'Hi, trying to compile MELD from [latest GIT commi](https://gitlab.gnome.org/GNOME/meld/-/commit/069f6b0344cfe654c49a050ae31294e0399ac293)t on Archlinux using the [AUR](https://aur.archlinux.org/packages/meld-git) file
Compile and instal...Hi, trying to compile MELD from [latest GIT commi](https://gitlab.gnome.org/GNOME/meld/-/commit/069f6b0344cfe654c49a050ae31294e0399ac293)t on Archlinux using the [AUR](https://aur.archlinux.org/packages/meld-git) file
Compile and install goes fine as usual, but when I run the application from console terminal, I obtain this following error:
```
Traceback (most recent call last):
File "/usr/bin/meld", line 463, in <module>
sys.exit(main())
^^^^^^
File "/usr/bin/meld", line 459, in main
return run_application()
^^^^^^^^^^^^^^^^^
File "/usr/bin/meld", line 439, in run_application
from meld.meldapp import MeldApp
File "/usr/lib/python3.11/site-packages/meld/meldapp.py", line 27, in <module>
from meld.filediff import FileDiff
File "/usr/lib/python3.11/site-packages/meld/filediff.py", line 36, in <module>
from meld.gutterrendererchunk import GutterRendererChunkLines
File "/usr/lib/python3.11/site-packages/meld/gutterrendererchunk.py", line 23, in <module>
from meld.ui.gtkutil import make_gdk_rgba
ModuleNotFoundError: No module named 'meld.ui.gtkutil'
```
I did some few test , and error appeared after [this commit](https://gitlab.gnome.org/GNOME/meld/-/commit/750560312a6a298cd8a3e0febc2a6e4eded77b2e),
## Software Information:
- **GNOME Version:** 45.2
- **Windowing System:** Wayland
- **Kernel Version:** Linux 6.6.8-arch1-1
- **GTK4 Version:** 4.12.4
- **LibAdwaita:** 1.4.2
Thanks
Andreahttps://gitlab.gnome.org/GNOME/meld/-/issues/815Meld can't recognize the file path with "~" begin in a bash shell2023-12-24T15:20:05Ziw dsMeld can't recognize the file path with "~" begin in a bash shellMy bash script is as below:
``` bash
#!/usr/bin/bash
path1="~/a.txt"
path2="~/b.txt"
meld "$path1" "$path2" # This line can't work.
# meld ~/a.txt ~/b.txt This line works.
```
and then meld told me something wrong: "There was a prob...My bash script is as below:
``` bash
#!/usr/bin/bash
path1="~/a.txt"
path2="~/b.txt"
meld "$path1" "$path2" # This line can't work.
# meld ~/a.txt ~/b.txt This line works.
```
and then meld told me something wrong: "There was a problem opening the file "/home/username/~/a.txt".https://gitlab.gnome.org/GNOME/meld/-/issues/814meld in bookworm 12 debian linux fail2023-12-21T15:41:24Zelias tsmeld in bookworm 12 debian linux failmeld in bookworm 12 debian linux fail
here the log from strace:
https://file.io/3Bku5uiBMUPW
""inappropriate ioctl for device"?
is it relevant [here?](https://stackoverflow.com/questions/1605195/inappropriate-ioctl-for-device)
using ...meld in bookworm 12 debian linux fail
here the log from strace:
https://file.io/3Bku5uiBMUPW
""inappropriate ioctl for device"?
is it relevant [here?](https://stackoverflow.com/questions/1605195/inappropriate-ioctl-for-device)
using `sudo apt-get install libglib*-dev` for glib schemas results
```
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'libglib2.0-dev' for glob 'libglib*-dev'
Note, selecting 'libglibd-2.0-dev' for glob 'libglib*-dev'
Note, selecting 'libglib2.0-cil-dev' for glob 'libglib*-dev'
Note, selecting 'libglib-testing-0-dev' for glob 'libglib*-dev'
Note, selecting 'libglib3.0-cil-dev' for glob 'libglib*-dev'
Note, selecting 'libglibmm-2.68-dev' for glob 'libglib*-dev'
Note, selecting 'libglibmm-2.4-dev' for glob 'libglib*-dev'
libglib2.0-dev is already the newest version (2.74.6-2).
libglibmm-2.4-dev is already the newest version (2.66.5-2).
libglibd-2.0-dev is already the newest version (2.3.0-3).
libglibmm-2.68-dev is already the newest version (2.74.0-2).
libglib2.0-cil-dev is already the newest version (2.12.45-0xamarin19+ubuntu1804b1).
libglib3.0-cil-dev is already the newest version (2.99.3-4.1).
libglib-testing-0-dev is already the newest version (0.1.1-1).
0 upgraded, 0 newly installed, 0 to remove and 92 not upgraded.
```
relevant to glib schemas bug?
https://groups.google.com/g/linux.debian.bugs.dist/c/LbyM1Ds8UfM
```
locate glib-compile-schemas
/home/elias/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/glib-2.0/glib-compile-schemas
/home/elias/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas
/home/elias/.local/share/Steam/ubuntu12_32/steam-runtime.old/usr/lib/i386-linux-gnu/glib-2.0/glib-compile-schemas
/home/elias/.local/share/Steam/ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas
/home/elias/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas
/home/elias/Downloads/_LINUX_PKGS/glib/_build/gio/glib-compile-schemas
/home/elias/Downloads/_LINUX_PKGS/glib/_build/gio/glib-compile-schemas.p
/home/elias/Downloads/_LINUX_PKGS/glib/_build/gio/glib-compile-schemas.p/.._subprojects_gvdb_gvdb_gvdb-builder.c.o
/home/elias/Downloads/_LINUX_PKGS/glib/_build/gio/glib-compile-schemas.p/.._subprojects_gvdb_gvdb_gvdb-reader.c.o
/home/elias/Downloads/_LINUX_PKGS/glib/_build/gio/glib-compile-schemas.p/glib-compile-schemas.c.o
/home/elias/Downloads/_LINUX_PKGS/glib/docs/reference/gio/glib-compile-schemas.xml
/home/elias/Downloads/_LINUX_PKGS/glib/gio/glib-compile-schemas.c
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.0/_build/gio/glib-compile-schemas
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.0/_build/gio/glib-compile-schemas.p
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.0/_build/gio/glib-compile-schemas.p/.._subprojects_gvdb_gvdb_gvdb-builder.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.0/_build/gio/glib-compile-schemas.p/.._subprojects_gvdb_gvdb_gvdb-reader.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.0/_build/gio/glib-compile-schemas.p/glib-compile-schemas.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.1/_build/gio/glib-compile-schemas
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.1/_build/gio/glib-compile-schemas.p
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.1/_build/gio/glib-compile-schemas.p/.._subprojects_gvdb_gvdb_gvdb-builder.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.1/_build/gio/glib-compile-schemas.p/.._subprojects_gvdb_gvdb_gvdb-reader.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.1/_build/gio/glib-compile-schemas.p/glib-compile-schemas.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.1/docs/reference/gio/glib-compile-schemas.xml
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.1/gio/glib-compile-schemas.c
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.3/_build/gio/glib-compile-schemas
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.3/_build/gio/glib-compile-schemas.p
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.3/_build/gio/glib-compile-schemas.p/.._subprojects_gvdb_gvdb_gvdb-builder.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.3/_build/gio/glib-compile-schemas.p/.._subprojects_gvdb_gvdb_gvdb-reader.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.3/_build/gio/glib-compile-schemas.p/glib-compile-schemas.c.o
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.3/docs/reference/gio/glib-compile-schemas.xml
/home/elias/Downloads/_LINUX_PKGS/glib-2.76.3/gio/glib-compile-schemas.c
/home/elias/anaconda3/bin/glib-compile-schemas
/home/elias/anaconda3/pkgs/glib-2.69.1-he621ea3_2/bin/glib-compile-schemas
/usr/lib/i386-linux-gnu/glib-2.0/glib-compile-schemas
/usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas
/usr/share/gtk-doc/html/gio/glib-compile-schemas.html
/usr/share/man/man1/glib-compile-schemas.1.gz
/var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/21.08/fb5e773453be4c35c971eb4a855a0a2809207fc9ee0cde6d96fd1b5f103b9d5f/files/bin/glib-compile-schemas
/var/lib/flatpak/runtime/org.kde.Platform/x86_64/6.2/de45d03c1948be9ad998e162e27ef801762284d808d9dc9b8e3add69ea6f00ec/files/bin/glib-compile-schemas
```
```
sudo meson --reconfigure _build
The Meson build system
Version: 1.0.1
Source dir: /home/elias/Downloads/_LINUX_PKGS/meld
Build dir: /home/elias/Downloads/_LINUX_PKGS/meld/_build
Build type: native build
Project name: meld
Project version: 3.22.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program python3 found: YES (/usr/bin/python3)
Dependency python3 found: YES 3.11 (cached)
Dependency gtk+-3.0 found: YES 3.24.38 (cached)
Dependency glib-2.0 found: YES 2.74.6 (cached)
Dependency gtksourceview-4 found: YES 4.8.4 (cached)
Dependency pygobject-3.0 found: YES 3.42.2 (cached)
Dependency py3cairo found: YES 1.20.1 (cached)
Dependency gio-2.0 found: YES 2.74.6 (cached)
Configuring meld with command
Configuring conf.py using configuration
Found pkg-config: /usr/bin/pkg-config (1.8.1)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Configuring org.gnome.Meld.desktop.in using configuration
Program msgfmt found: YES (/usr/bin/msgfmt)
Program desktop-file-validate found: YES (/usr/bin/desktop-file-validate)
Configuring org.gnome.Meld.appdata.xml.in using configuration
Program appstream-util found: YES (/usr/bin/appstream-util)
Program glib-compile-schemas found: NO
Program itstool found: YES (/usr/bin/itstool)
Program msgmerge found: YES (/usr/bin/msgmerge)
Program msgfmt found: YES (/usr/bin/msgfmt)
Program msginit found: YES (/usr/bin/msginit)
Program msgmerge found: YES (/usr/bin/msgmerge)
Program xgettext found: YES (/usr/bin/xgettext)
Dependency gio-2.0 found: YES 2.74.6 (cached)
Program glib-compile-schemas found: YES (/usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas)
Program gtk4-update-icon-cache found: YES (/usr/bin/gtk4-update-icon-cache)
Program update-desktop-database found: YES (/usr/bin/update-desktop-database)
Build targets in project: 76
Found ninja-1.11.1 at /usr/local/bin/ninja
```
```
elias@eliasc:~/Downloads/meld$ meld
Trace/breakpoint trap
```https://gitlab.gnome.org/GNOME/meld/-/issues/813Feature request: store settings in plain text file instead of dconf or registry2023-12-10T22:16:10ZmivkFeature request: store settings in plain text file instead of dconf or registryCurrently, Meld stores it's configuration in dconf on Linux, and in the registry on Windows.
This makes the config settings very hard to find until you know that, and then hard to modify / copy to other machines etc.
Please consider us...Currently, Meld stores it's configuration in dconf on Linux, and in the registry on Windows.
This makes the config settings very hard to find until you know that, and then hard to modify / copy to other machines etc.
Please consider using a simple .ini or similar text file to store the settings.
( And then, we could even use Meld to compare the settings between 2 machines, or older config versions etc. :-) )
( see also #567, #302 and probably others )