Default canvas style (page attributes) can only be changed once in startup wizard
Summary:
Quite some time ago (probably when I upgraded to 1.0), I got a startup screen to help me set up Inkscape. Since I like dark themes, I selected a dark canvas scheme, but that did not work well, so I wanted to change back to a light canvas. However, there does not seem to be any way to change this in the preferences.
Steps to reproduce:
- Open Inkscape (with clean preferences, or edit preferences.xml and set /options/boot/enabled to 1)
- In the startup screen, select a dark canvas
- Click "Save", then "Thanks"
- Uncheck "Show this every time"
- Click New document
- Try to change the canvas back to light mode
What happened?
- There is no option to do so
What should have happened?
Some option in the preferences to change the canvas theme (or possibly individual values, even, since that is what is stored in preferences.xml it seems).
Looking through the source shows that these options are indeed only written by StartupScreen, other code only references the current values:
git grep template/base
src/document.cpp: nv->setDefaultAttribute("pagecolor", "/template/base/pagecolor", "");
src/document.cpp: nv->setDefaultAttribute("bordercolor", "/template/base/bordercolor", "");
src/document.cpp: nv->setDefaultAttribute("borderopacity", "/template/base/borderopacity", "");
src/document.cpp: nv->setDefaultAttribute("inkscape:pageshadow", "/template/base/pageshadow", "2");
src/document.cpp: nv->setDefaultAttribute("inkscape:pageopacity", "/template/base/pageopacity", "0.0");
src/document.cpp: nv->setDefaultAttribute("inkscape:pagecheckerboard", "/template/base/pagecheckerboard", "0");
src/document.cpp: nv->setDefaultAttribute("blackoutcolor", "/template/base/blackoutcolor", "");
src/document.cpp: nv->setDefaultAttribute("inkscape:blackoutopacity", "/template/base/blackoutopacity", "0.0");
src/object/sp-namedview.cpp: int w = prefs->getInt("/template/base/inkscape:window-width", 0);
src/object/sp-namedview.cpp: int h = prefs->getInt("/template/base/inkscape:window-height", 0);
src/ui/dialog/startup.cpp: prefs->setString("/template/base/pagecolor", sp_color.toString());
src/ui/dialog/startup.cpp: prefs->setDouble("/template/base/pageopacity", gdk_color.get_alpha());
src/ui/dialog/startup.cpp: prefs->setString("/template/base/bordercolor", sp_border.toString());
src/ui/dialog/startup.cpp: prefs->setDouble("/template/base/borderopacity", gdk_border.get_alpha());
src/ui/dialog/startup.cpp: prefs->setBool("/template/base/pagecheckerboard", row[cols.checkered]);
src/ui/dialog/startup.cpp: prefs->setInt("/template/base/pageshadow", row[cols.shadow] ? 2 : 0);
A current workaround is to go to preferences -> Interfaces -> Windows and check "Show Welcome Dialog" and restart inkscape. However, that is a roundabout way, and that option is hard to miss (I looked for it and could not find it, I only found it by grepping through the inkscape source...).
Version info
Inkscape 1.1.1 (3bf5ae0d25, 2021-09-20)
GLib version: 2.68.4
GTK version: 3.24.30
glibmm version: 2.64.2
gtkmm version: 3.24.5
libxml2 version: 2.9.12
libxslt version: 1.1.34
Cairo version: 1.16.0
Pango version: 1.48.10
HarfBuzz version: 2.7.4
Poppler version: 21.06.1
OS version: Ubuntu 21.10