Roadmap and Todo for Draw on Gnome
Here's the roadmap. The program works very well as is, but could always use some improvement. Plus there are minor bugs, errata, and issues that need to be realized.
If you have any ideas or suggestions, feel free to post them here.
Consider committing code to the project!
If you are interested in contributing, read through the contributing document, and then take a look at the list below and add your distinctiveness to our own!(1)
You can begin a pull request here.
Primary Goals
- Work on Version 12 (for GNOMEv50)
- New arrow support (from PR49) in version 12.0. I will have to modify this to work with GNOMEv50
- Other new tools as listed below in Planned Features
Issues
- Need the Polish translation for upcoming V11.1 and V12
- When switching from text mode to drawing mode, a color change will change the last typed text! (This is fixed in 11.1 but not shipped yet.)
- Sometimes, when the eyedropper tool is used, you can't select another tool (like the drawing tool), the
esckey has to be pressed to get out of eyedropper mode.
Planned Features (long-term)
Here are the planned features:
Arrow Toggle
Allows for four arrow types (instead of just one): Forward, backward, Both, and Inverse. My plan is to implement this using the Ctrl+Alt+A shortcut as well as within the drop-down menu. This shortcut will replace the text alignment option (which I fee is not often used).
Toggle for all tools
This is for better functionality and economy of movement. It's already being done with the Laser tool.
The ideas is for toggling on any tool with the end result being returning to the drawing tool. So for example, you are using the drawing tool (Ctrl+P) and then move to the arrow tool (Ctrl+A). Draw an arrow. Then, press Ctrl+A again to toggle the arrow tool off and return to the drawing tool. The main drawing tool would be the default for any tool...
This way, a person could quickly access one tool with the left hand (for example, arrow, ellipse, rectangle) while drawing with the right. Then, toggle it off easily and return to the drawing tool without having to move the left hand.
Default Font
Right now, it appears that D.O.G. defaults to a font and stays on whatever you choose with Ctrl+F for the session. But if you restart, it goes back to the default font (Serif?). It would be nice to set a default font in the preferences that it always defaults to.
Touchscreen support
See this link for the GitHub Issue.
My plan for this would be to incorporate the following:
- a toggle in preferences to turn on touchscreen support
- This would place a clickable/tappable icon in the System Status Area (even while the extension is not enabled). This would be in an "idle" state.
- User would tap on the icon to go into drawing mode (equal to pressing
Super+Alt+D). - The icon would change shape and color to indicate that the extension is running.
- User would tap the icon again to exit the extension
- Icon would change back to idle.
Should work??? It will require some heavy duty programming and testing though...
Different Laser Types
I designed the laser pointer to work with Ctrl+Q but it was a quick design. The laser is okay, but I would like to design a couple of others and give people the ability to use each variant by pressing Ctrl+Alt+Q
Potential cursors using the eyedropper approach
We might be able to solve the cursors issues and create crosshair, I-beam, and others with our own code, emulating that which is used ny the eyedropper. However, there can be some lag and offset, which I don't want. Need to investigate further. This is not high priority as most people are fine with the default cursor.
Fade-out option
Toggle that enables the fade out option for drawing - (Similar to macOS ScreenBrush). For example, if you draw an arrow pointing to an element, the arrow would fade out after x seconds. see this link
Clip bin
When enabled this would show a clip bin on the right side where we could click and drag icons or images to our drawing. The bin would have to be populated beforehand. Could be really good to quickly add shapes, icons, tokens, etc... We could pre-populate it with basic, common icons.
Random Die Roll
Ctrl+D. This would allow a person to roll a die on the screen (similar to D&D Beyond). Perhaps a variety of dice. Requires pseudorandom generator, possible within GJS. This is a big project and kind of "pie-in-the-sky" so it's very backburner for me!
Cursors
I'm talking about pointer, hand, crosshair, etc... As of early 2026 this is not possible with GNOMEv50 because there is no API for it. GNOMEv50 uses Wayland only. When they write an API for it, I will embrace it - because it was awesome in x11!
MORE
- a timer. This could be a great function for live training. The problem with the extension is that you cannot run things simultaenously. Well, you can I suppose, build your drawing, then press
Super+Ctrl+Alt+Dto access the keyboard and mouse, start a timer in a terminal (and make it always on top) and pressSuper+Ctrl+Alt+Dagain to return to the drawing (and draw while the timer is running). However, a built in timer would be super-duper... OpenBoard has this functionality and I used to like it... - Overwrite save? Currently, when you press
Ctrl+S, the extension will save with an automatically generated name (based on the date and time). If a user saves often, this can create a lot of clutter files. My thought is to change it so that the defaultCtrl+Saction will be to overwrite (like most applications out there), and the auto-generated name would only happen the first time. If a user wants to save as a differnt file, they would have to open the right-click menu or pressCtrl+Shift+Sto save as a new file. It seems logical. As part of this, I would like to modify how the "Persistent over Restarts" option saves the file. As is, it saves in the default location asundefined.json. I'm waiting on fixing this until auto-save works properly. It probably entails ensuring thatmetadata['persistent-file-name']is properly defined. We'll see! - Selection Tool: Currently can only manipulate one element. This is a huge limitation for complex drawings.
- Freehand Eraser: Fixing mistakes is clunky now. A proper eraser is essential. THe
Shiftkey works as an eraser right now, but it is invisible. Some sort of icon or unfilled circle would be much better. - Snap-to-Grid: Grid exists but doesn't snap. This would make technical drawings so much easier.
- Clipboard Rich Copy: Being able to paste drawings directly into other apps would be a massive workflow improvement.
- Auto-save feature: As of now, there is no auto-save option. The user needs to manually press
Ctrl + Sto save a drawing. - Delete Tool: Currently you can only delete in a LIFO manner. This proposed tool would use a hot-key to activate Delete on any item that was drawn. This one will require some work!
- More development of the "Mirror" tool.
- Blur option - for redacting - see this link
- Whiteboard option with one shortcut (similar to Microsoft Powerpoint option) - or a way to change the background color while it is activated.
- Feature Request - ICONS - see this link
- Feature Request - Opacity for drawings
- Pencil cursor? See this link
- Smooth line fix - testing with area.js currently. However, this is very dependent on the video card in the user's system, so I'm not sure how much we can accomplish within the confines of the GNOME desktop.
- Reorder palettes via drag and drop
Planned Features (super-duper long-term)
- Port the program to Rust (or C) so that it can be used on any Linux system: GNOME, KDE, Tiling systems, etc... This would be a massive undertaking, maybe too much. A smaller step would be a port for KDE only (perhaps C or Rust-based).
Documentation ToDo
- How to Use D.O.G. Video
- Add animated gifs
- More common "known" issues in Troubleshooting
- Search function for Keyboard shortcuts
- Navigation - stickier on scroll?
- Update to Zensical from Material for mkdocs?