I personally don't like how it splits the distance equally between icons, it leads to a huge gap between them. Furthermore, it seems that even if there is enough space, the Wacom tablet icon in the Hardware flexbox is still saying on a separate line.
It seems if you have two rows of icons in "Personal", it only skips the first row, so it goes to the first icon in the second row. Maybe there's some overlap?
Below is the log of a gdb session where you can see the stacktrace of where that g_sequence_get assert failure is happening:
(gdb) bt
#0 0x00007ffff60063c0 in g_sequence_get (iter=0xc0c4c0)
at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./glib/gsequence.c:1186
#1 0x0000000000411e48 in switchboard_category_has_child ()
#2 0x000000000040edd4 in switchboard_category_view_filter_plugs ()
#3 0x000000000040e793 in switchboard_category_view_add_plug ()
#4 0x000000000040e10b in __lambda11_ ()
#5 0x000000000040e15c in ___lambda11__gsource_func ()
#6 0x00007ffff5febfda in g_main_context_dispatch (context=0x666cb0)
at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./glib/gmain.c:3154
#7 0x00007ffff5febfda in g_main_context_dispatch (context=context@entry=0x666cb0)
at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./glib/gmain.c:3769
#8 0x00007ffff5fec380 in g_main_context_iterate (context=0x666cb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./glib/gmain.c:3840
#9 0x00007ffff5fec6a2 in g_main_loop_run (loop=0xc96f40)
at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./glib/gmain.c:4034
#10 0x00007ffff6a9f6f5 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x0000000000407640 in _switchboard_switchboard_app_command_line ()
#12 0x0000000000406a62 in switchboard_switchboard_app_real_command_line ()
#13 0x00007ffff1c42e40 in ffi_call_unix64 () at /usr/lib/x86_64-linux-gnu/libffi.so.6
#14 0x00007ffff1c428ab in ffi_call () at /usr/lib/x86_64-linux-gnu/libffi.so.6
#15 0x00007ffff62c3cf5 in g_cclosure_marshal_generic_va (closure=0x70b480, return_value=0x7fffffffd9d0, instance=0xa8e150, args_list=<optimized out>, marshal_data=0x4069e4 <switchboard_switchboard_app_real_command_line>, n_params=1, param_types=0x70b4f0) at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gobject/gclosure.c:1604
#16 0x00007ffff62c31d4 in _g_closure_invoke_va (closure=closure@entry=0x70b480, return_value=return_value@entry=0x7fffffffd9d0, instance=instance@entry=0xa8e150, args=args@entry=0x7fffffffdaa0, n_params=<optimized out>, param_types=0x70b4f0) at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gobject/gclosure.c:867
#17 0x00007ffff62dd4b8 in g_signal_emit_valist (instance=0xa8e150, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffdaa0) at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gobject/gsignal.c:3294
#18 0x00007ffff62de08f in g_signal_emit (instance=instance@entry=0xa8e150, signal_id=<optimized out>, detail=detail@entry=0) at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gobject/gsignal.c:3441
#19 0x00007ffff65b1a13 in g_application_call_command_line (application=0xa8e150 [SwitchboardSwitchboardApp], arguments=<optimized out>, options=<optimized out>, exit_status=0x7fffffffdcd4)
at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gio/gapplication.c:982
#20 0x00007ffff65b3a6d in g_application_real_local_command_line (application=0xa8e150 [SwitchboardSwitchboardApp], arguments=0x7fffffffdcd8, exit_status=0x7fffffffdcd4)
---Type <return> to continue, or q <return> to quit---
at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gio/gapplication.c:1036
#21 0x00007ffff65b3c32 in g_application_run (application=0xa8e150 [SwitchboardSwitchboardApp], argc=1, argv=0x7fffffffdee8) at /build/glib2.0-t9oPgV/glib2.0-2.48.0/./gio/gapplication.c:2350
#22 0x00007ffff7b70d70 in granite_application_run () at /usr/lib/x86_64-linux-gnu/libgranite.so.3
#23 0x0000000000406999 in switchboard_main ()
#24 0x00000000004069e2 in main ()
(gdb) continue
Continuing.
[FATAL 23:18:41.669581] [GLib] g_sequence_get: assertion '!is_end (iter)' failed
I personally don't like how it splits the distance equally between icons, it leads to a huge gap between them. Furthermore, it seems that even if there is enough space, the Wacom tablet icon in the Hardware flexbox is still saying on a separate line.
It seems if you have two rows of icons in "Personal", it only skips the first row, so it goes to the first icon in the second row. Maybe there's some overlap?
Below is the log of a gdb session where you can see the stacktrace of where that g_sequence_get assert failure is happening:
(gdb) bt glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./glib/ gsequence. c:1186 category_ has_child () category_ view_filter_ plugs () category_ view_add_ plug () _gsource_ func () context_ dispatch (context=0x666cb0) glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./glib/ gmain.c: 3154 context_ dispatch (context= context@ entry=0x666cb0) glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./glib/ gmain.c: 3769 context_ iterate (context=0x666cb0, block=block@ entry=1, dispatch= dispatch@ entry=1, self=<optimized out>) at /build/ glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./glib/ gmain.c: 3840 glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./glib/ gmain.c: 4034 x86_64- linux-gnu/ libgtk- 3.so.0 switchboard_ app_command_ line () switchboard_ app_real_ command_ line () x86_64- linux-gnu/ libffi. so.6 x86_64- linux-gnu/ libffi. so.6 marshal_ generic_ va (closure=0x70b480, return_ value=0x7ffffff fd9d0, instance=0xa8e150, args_list= <optimized out>, marshal_ data=0x4069e4 <switchboard_ switchboard_ app_real_ command_ line>, n_params=1, param_types= 0x70b4f0) at /build/ glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./gobject/ gclosure. c:1604 invoke_ va (closure= closure@ entry=0x70b480, return_ value=return_ value@entry= 0x7fffffffd9d0, instance= instance@ entry=0xa8e150, args=args@ entry=0x7ffffff fdaa0, n_params=<optimized out>, param_types= 0x70b4f0) at /build/ glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./gobject/ gclosure. c:867 emit_valist (instance=0xa8e150, signal_ id=<optimized out>, detail=0, var_args= var_args@ entry=0x7ffffff fdaa0) at /build/ glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./gobject/ gsignal. c:3294 instance@ entry=0xa8e150, signal_ id=<optimized out>, detail= detail@ entry=0) at /build/ glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./gobject/ gsignal. c:3441 call_command_ line (application= 0xa8e150 [SwitchboardSwi tchboardApp] , arguments= <optimized out>, options=<optimized out>, exit_status= 0x7fffffffdcd4) glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./gio/gapplicat ion.c:982 real_local_ command_ line (application= 0xa8e150 [SwitchboardSwi tchboardApp] , arguments= 0x7fffffffdcd8, exit_status= 0x7fffffffdcd4) glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./gio/gapplicat ion.c:1036 0xa8e150 [SwitchboardSwi tchboardApp] , argc=1, argv=0x7fffffff dee8) at /build/ glib2.0- t9oPgV/ glib2.0- 2.48.0/ ./gio/gapplicat ion.c:2350 application_ run () at /usr/lib/ x86_64- linux-gnu/ libgranite. so.3
#0 0x00007ffff60063c0 in g_sequence_get (iter=0xc0c4c0)
at /build/
#1 0x0000000000411e48 in switchboard_
#2 0x000000000040edd4 in switchboard_
#3 0x000000000040e793 in switchboard_
#4 0x000000000040e10b in __lambda11_ ()
#5 0x000000000040e15c in ___lambda11_
#6 0x00007ffff5febfda in g_main_
at /build/
#7 0x00007ffff5febfda in g_main_
at /build/
#8 0x00007ffff5fec380 in g_main_
#9 0x00007ffff5fec6a2 in g_main_loop_run (loop=0xc96f40)
at /build/
#10 0x00007ffff6a9f6f5 in gtk_main () at /usr/lib/
#11 0x0000000000407640 in _switchboard_
#12 0x0000000000406a62 in switchboard_
#13 0x00007ffff1c42e40 in ffi_call_unix64 () at /usr/lib/
#14 0x00007ffff1c428ab in ffi_call () at /usr/lib/
#15 0x00007ffff62c3cf5 in g_cclosure_
#16 0x00007ffff62c31d4 in _g_closure_
#17 0x00007ffff62dd4b8 in g_signal_
#18 0x00007ffff62de08f in g_signal_emit (instance=
#19 0x00007ffff65b1a13 in g_application_
at /build/
#20 0x00007ffff65b3a6d in g_application_
---Type <return> to continue, or q <return> to quit---
at /build/
#21 0x00007ffff65b3c32 in g_application_run (application=
#22 0x00007ffff7b70d70 in granite_
#23 0x0000000000406999 in switchboard_main ()
#24 0x00000000004069e2 in main ()
(gdb) continue
Continuing.
[FATAL 23:18:41.669581] [GLib] g_sequence_get: assertion '!is_end (iter)' failed