meue
There's a new UI tool called Dora [3] that has a simple yet novel constraint system that you might like. Tool is still early alpha but growing quickly.
That being said, Graphite's node-based system makes it a viable foundation to build this on! I've helped contribute to the project and Keavon (the creator) definitely has some thoughts on constraint nodes (e.g. for snapping, but also for restraint/relationships).
[1]: https://astutegraphics.com/plugins/subscribe [2]: https://www.hotdoor.com/cadtools/ [3]: https://www.dora.run/
Since Alias corp. was later acquired by Autodesk in the early 2000's, you can imagine Fusion 360 as being the symbolical evolution of it. Especially considering the current Alias UI has not changed much since 1999! [3][4]
If interested more on this topic, fun HCI bath-time reading: Gord Kurtenbach's 1993 dissertation on The Design and Evaluation of Marking Menus [5]. Not surprisingly, from Alias/Wavefront he went on to head Autodesk Research for most of the 2000's.
[1]: https://books.google.com/books?id=7wEAAAAAMBAJ&pg=PT89&lpg=P...
[2]: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.86...
[3]: https://youtu.be/cVusw4JNK0s (1999)
[4]: https://youtu.be/323fmUgwMyI (2022)
[5]: https://damassets.autodesk.net/content/dam/autodesk/www/auto...
You can set these two features as active in Accessibility Shortcuts (bottom of the Accessibility menu), allowing them to be quickly toggled by triple clicking the power button. As an alternative gesture, you can also set Accessibility Shortcuts to activate via triple tap on the backside of the phone (Accessibility -> Touch -> Back Tap).
While I seldom partake in threads, I do read and save interesting perspectives and opinions on topics I am interested in for more personal dissection & discussion (with myself and close friends), and I found your comment to be valuable and worth reading, so thank you for sharing.
However, it seems it may not support the latest MacOS builds. Actually I just checked their Twitter page and saw they said it supports Mojave, so maybe it does.
CTRL+[ Decrease Speed
CTRL+] Increase Speed
CTRL+\ Set Increment Unit
CTRL+' Set Speed to Specific Rate
CTRL+; Reset Playback to Default
javascript:(function()%7B(function()%20%7Bvar%20rateUnit%20%20%20%20%3D%200.2%3Bvar%20osdTimeout%20%20%3D%203000%3Bvar%20eleOSD%2C%20osdTimer%3Bfunction%20showOSD(rate)%20%7Bif%20(eleOSD)%20%7BeleOSD.textContent%20%3D%20rate%20%2B%20%22X%22%3B%7D%20else%20%7BeleOSD%20%3D%20document.createElement(%22DIV%22)%3BeleOSD.style.cssText%20%3D%20%22position%3Afixed%3Bz-index%3A999999999%3Bright%3A5px%3Bbottom%3A5px%3Bmargin%3A0%3Bpadding%3A5px%3Bwidth%3Aauto%3Bheight%3Aauto%3Bfont%3Abold%2010pt%2Fnormal%20monospace%3Bbackground%3A%23444%3Bcolor%3A%23fff%22%3BeleOSD.textContent%20%3D%20rate%20%2B%20%22X%22%3Bdocument.body.appendChild(eleOSD)%3B%7DclearTimeout(osdTimer)%3BosdTimer%20%3D%20setTimeout(function()%20%7BeleOSD.remove()%3BeleOSD%20%3D%20null%3B%7D%2C%20osdTimeout)%3B%7DaddEventListener(%22keydown%22%2C%20function(ev)%20%7Bvar%20ele%20%3D%20document.querySelector(%22VIDEO%22)%2C%20rate%2C%20inp%3Bif%20(ele%20%26%26%20ev.ctrlKey%20%26%26%20!ev.shiftKey%20%26%26%20!ev.altKey)%20%7Brate%20%3D%20rate%20%3D%20ele.playbackRate%3Bswitch%20(ev.key)%20%7Bcase%20%22%5B%22%3Arate%20-%3D%20rateUnit%3Bif%20(rate%20%3C%200.1)%20rate%20%3D%200.1%3Bbreak%3Bcase%20%22%5D%22%3Arate%20%2B%3D%20rateUnit%3Bif%20(rate%20%3E%2016)%20rate%20%3D%2016%3Bbreak%3Bcase%20%22%5C%5C%22%3Aif%20((inp%20%3D%20prompt(%22Enter%20playback%20rate%20increment%2Fdecrement%20unit.%22%2C%20rateUnit))%20%3D%3D%3D%20null)%20return%3Bif%20(isNaN(inp%20%3D%20parseFloat(inp.trim()))%20%7C%7C%20(inp%20%3C%3D%200)%20%7C%7C%20(inp%20%3E%204))%20%7Balert(%22Number%20must%20be%20greater%20than%20zero%2C%20and%20less%20or%20equal%20to%204.%22)%3Breturn%3B%7DrateUnit%20%3D%20inp%3Breturn%3Bcase%20%22'%22%3Aif%20((inp%20%3D%20prompt(%22Enter%20playback%20rate.%5Cn(1.0%20%3D%20Normal)%22%2C%20rate))%20%3D%3D%3D%20null)%20return%3Bif%20(isNaN(inp%20%3D%20parseFloat(inp.trim()))%20%7C%7C%20(inp%20%3C%200.1)%20%7C%7C%20(inp%20%3E%2016))%20%7Balert(%22Number%20must%20be%20between%200.1%20to%2016%20(inclusive).%22)%3Breturn%3B%7Drate%20%3D%20inp%3Bbreak%3Bcase%20%22%3B%22%3Arate%20%3D%201%3Bbreak%3Bdefault%3Areturn%3B%7Drate%20%3D%20parseFloat(rate.toFixed(2))%3Bele.playbackRate%20%3D%20rate%3Bif%20(osdTimeout%20%3E%200)%20showOSD(ele.playbackRate)%3B%7D%7D)%3B%7D)()%7D)()One that I also use regularly, related to your "Open in wayback machine", is "Save to wayback machine". That way it'll be there when you click it!
javascript:location.href %3D %27//web.archive.org/save/%27 %2B location.href.split(%27%3F%27)%5B0%5D%3B