Week 1
Introduction
I am Khushal Agrawal (skippr), a Google Summer Of Code contributor and developer at Inkscape. This blog summarizes my progress during the bonding period and the first week of the Google Summer Of Code 2024.
Community Bonding
During the Community Bonding period, my main focus was to work with Adam upon finalising the UX features for the Node and Pen Tool, we had several meetings, and discussions in the UX channel as well as privately about what should the new features for these tools be and what shortcuts they should be assigned.
In the first meeting, we looked at the Pen / Bezier Tools of several other design tools such as Figma, Affinity Designer, Adobe Illustrator etc. We then started by first mapping out all the existing shortcuts for the Node and Pen Tool on a spreadsheet, then we wrote down all the new features we wanted to add, and discussed about what shortcuts they should be assigned.
The Node Tool is very complex, these discussions are still going on with Adam and will hopefully be completed soon. After Adam and I have discussed and finalised what according to us will be the right shortcuts, we will add a poll on the #team_ux channel and try to get everyone to agree on these shortcuts.
Since the key bindings were not finalised completely, my focus for the first week was to implement the desired features since the keybindings can be changed later on without much effort.
First Coding Week
In the first week, I mostly looked through the code of Pen and Node Tool and decided upon what are features that would only require slight modifications of code to change their keybindings, and features that are less likely to be changed much upon discussion with Adam and the rest of #team_ux.
In the proposal there are 6 features that are required from each the Node Tool and the Pen Tool. Some of these features exist, some require changing the key bindings and some are completely new that need to be implemented.
In the Node Tool, feature 1 and feature 5 already exist. I worked on implementing feature 3. This feature allows the user to hold the ALT
key while dragging handles to link them together. In the current node tool, the ALT
key the lengths of the handles are fixed and only their direction can be changed. I submitted a merge request where ALT+Shift
would do what ALT
does currently and implement feature 3 as the new ALT
. There have been discussions on the key bindings in the Merge Request but they would be finalised later in a poll. The link to the MR is here.
Similarly for the Pen Tool, feature 6 is already present in the current version of the tool. I have started working on feature 3 and having some troubles in the accuracy, I will submit a MR soon for the same.
Summary
Most of the Community Bonding period and the first coding week were spent in researching and finalising about the final key bindings and shortcuts of the new Node and Pen tools. A draft of the new pen tool bindings has been created and a poll will be created in #team_ux for the same. A few features from the proposal have been implemented and I will be focusing on implementing the remaining features (using random key binds for now) and also work with Adam on finalising the key bindings, once the bindings are final I will finalise the changes from the proposal according to these key bindings and submit Merge Requests.