You are browsing as a guest. Sign up (or log in) to start making projects!

quartz

  • 10 Devlogs
  • 41 Total hours

automation/shortcuts app for linux and windows

Ship #1 Changes requested

I made Quartz, a desktop automation app for Windows and Linux. It’s pretty similar to the Shortcuts app on MacOS. Quartz allows you to create shortcuts, which are lists of actions, that run things on your computer, whether that is read a file, send a web request, or something else. These shortcuts can be activated manually or using triggers (e.g. at a certain time). The main reason I created this, and the most important QoL improvement is that with Quartz, you can easily create and manage small scripts that do stuff on your computer, like watch a file or directory and running subsequent actions. The most challenging part was adapting/scrapping features for Linux, since a user’s environment can be very different from another user’s environment, so I had to choose some important features and scrap the unrealistic ones. For example, I really wanted to add an emulate mouse/keyboard button action, but it simply wasn’t feasible, since the app would have to require root privileges on both platforms, which was something I was trying to avoid. I am proud of how the project turned out, but especially the user interface, since it took a while to design and actually build the interface, and I think it turned out well, with a bit room for improvement. Some UI changes will come in future updates.

To test the project, you first need to make sure that you are on either Windows or a systemd-based Linux distribution. Then you can simply just follow the instructions on the README. The app uses a Python FastAPI daemon with a Flutter UI. To save memory, the UI is a completely seperate process than the daemon, so it’s OK to close the app window/kill the UI process without affecting the backend.

Try project → See source code →
Open comments for this post

1h 17m 20s logged

i said last time that it was the final devlog before ship but then i realized there were a lot of bugs to fix and stuff so this the the ACTUAL final devlog before ship!!!

changes include:

  • bugfixes (a lot)
  • github actions
  • wiki/docs
  • release 0.2.0
0
0
40
Open comments for this post

2h 47m 18s logged

final devlog before ship!!

i mostly just worked on refining the build process and bug fixing, which is why im not going over each change individually. the UI/UX could be improved, but its good enough for the initial ship.

all that’s left:

  • re-build the new binaries and release
  • release the windows binaries
  • ship!!!

the very compressed and unreadable gif below is the one in the readme lol

0
0
39
Open comments for this post

9h 20m 35s logged

FINALLY i got the build process and packaging working

now it works and people can install it! windows works now too!
i didnt have time to create a devlog until now so enjoy

heres the full changelog:

main changes:

  • added action: truncate number
  • allowed users to assign each shortcut a color
  • removed shortcut icons since an icon picker would be really annoying to add
  • overhauled the homepage, now you can select shortcuts, batch delete, and more (see screenshot!!)
  • fixed kill process action
  • disabled running a shortcut while it’s already running (very inconsistent behavior previously)
  • UI now ensures that there is only one window using a weird hack
  • fixed notifications not showing on windows
  • removed emulate mouse button stub action (extremely difficult cross-platform)
  • wrote some docs that i realize i need to update now since i changed the linux install process lol

packaging

  • AI: create the windows installer builder
  • AI: create uninstaller
  • create a logo that i put so much effort into (2 minutes in figma)
  • a ton of other stuff including a whole build process for linux

notes

  • yea, i did use ai for some stuff, either because i was lazy or… yeah i was lazy.

todo

  • major UI improvements
  • released binaries
  • 🚢ing
0
0
5
Open comments for this post

2h 7m 57s logged

quartz update 5.1: the actions update 1

added a ton of cool actions, heres the full list:

  • NEW filesystem: create directory
  • NEW filesystem: create file
  • NEW filesystem: delete directory
  • NEW filesystem: delete file
  • NEW filesystem: get file properties
  • NEW filesystem: read file
  • NEW filesystem: write file
  • NEW filesystem: rename or move file or directory
  • NEW system: power - lock, logout, suspend, hibernate, shutdown, reboot
  • NEW system: send notification
  • NEW misc: send web request

other changes:

  • fixed some overflow issues in the UI

ok bye new update coming soon

0
0
11
Open comments for this post

2h 54m 26s logged

quartz update #5: the apps update

smaller update this time

changes

  • added some config file support (located in USER/.config/quartz)
  • added tooltips (?) to certain action inputs
  • added the app selector, as seen in the screenshot below!
  • action updates:
    • NEW open app: opens an app using the selector
    • NEW open link: opens a link, as a website, file, etc.
    • NEW kill process: kills a process via app selector, name, or pid with the option to terminate instead
    • WIP emulate mouse: stub (not implemented)
  • trigger updates:
    • app open: change to use app selector
    • app close: change to use app selector
  • lots of bugfixes, both on backend and UI
  • fixed a lot of overflow issues on UI on smaller screens

todo

  • add the remaining trigger types
  • add some more actions
  • figure out how to build and package the app (really need this to ship)

notes

  • yes i am aware that deltarune is in my apps list, and yes i have played chapter five
0
0
12
Open comments for this post

2h 7m 37s logged

quartz update #4

changes:

  • optimize polling trigger listeners by limiting one polling agent per trigger type
  • add more triggerss
    • directory watch (file create/delete/rename)
    • directory contents watch (file content changes)
    • app open
    • app close
    • schedule (cron)
  • fixed file watch trigger
  • updated ui pubsec.yaml name to “quartz” instead of “ui”
  • added bracket/quote formatting to text fields
  • added trigger output usage in ui like action outputs
  • allow viewing run logs from settings page
0
0
34
Open comments for this post

2h 55m 21s logged

quartz update #3

changes:

  • added some basic automatic shortcut triggers
    • startup, file watch, clipboard watch
    • will add more later
  • fixed some issues and improved message box/dialog box (using ai)
  • removed collapsible sidebar on editor page
  • polishing/consistency changes including adding a mono font for text fields
  • allow changing shortcut properties through inspector (see image)
  • split editor page file into several modules (previously 1400+ lines long…)

to-do:

  • add more triggers and actions
  • figure out how to detect hotkeys on linux (may not be possible on wayland)
  • fix windows functionality
  • figure out how to build/package app
  • more stuff that i forgot about
0
0
4
Open comments for this post

48m 27s logged

update 2: made a cool thing where variables and outputs in a text field are highlighted (see right of image)

0
0
5
Open comments for this post

4h 19m 2s logged

update: added drag and drop, added flow control, removed client side decorations on linux, and more

0
0
4
Open comments for this post

12h 38m logged

devlog #1 of quartz, a desktop automation app similar to shortcuts on ios/mac but for linux (and maybe windows in the future).
the main idea is that you create shortcuts that contain multiple “steps”, which can do many things, including: setting a variable, showing a pop-up, running a command, and more. the main reason i decided to work on this is because making shell scripts and managing them are kind of annoying, so creating a nice interface to easily manage scripts (or shortcuts) would be very helpful.

as for technical details, the backend (saving and running) uses a background python process, while the ui uses flutter and material design.

current features done:

  • basic backend (saving and running shortcuts),
  • some ui (creating, editing shortcuts/steps).

todo:

  • add UI for control flow (if/else),
  • add shortcut triggers (to automatically run shortcuts),
  • add a lot more actions, improve the UI, (maybe) app integrations.

the reason this took over 10hr is mostly because of the ui, since i am not the most familiar with flutter and there are a lot of moving parts.

0
0
29

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…