Activity

khr519

I think this is ready to ship. I did some cleanup on the readme and added screenshots. I made an installation script that git clones and creates python venvs and installs all deps. It can also create a shell alias for running the app.

Attachment
Attachment
0
khr519

I changed the settings format to TOML. Much better than jsonc in my opinion.
Also I am almost done writing the documentations for this. I think it can be shipped within this week

Attachment
0
khr519

Forgot to write a devlog yesterday so here goes a lot of new stuff :)
Changes:

  • Now the Log and Custom command widgets are named ‘tabs’. And are actually in tabs.
  • Now the user can choose between docker containers and other things. (User has to specify log commands when not using docker)
  • I’ve made a settings_example.jsonc
  • Also made subproc shell use up to 4MB of buffer space per line. (A single line of log from Nextcloud can sometimes be VERY long. Like, more than 1MB, cuz it errored when I set the limit to 1MB)
  • Did a lot of styling. I used Dracula Theme’s color pallets. UI looks much better now!
  • Now the CPU has a history graph. (I used textual’s Sparkline for this, alongside a circular buffer for a tiny bit more efficient storage. (but then realized I could have just used dequeue)
  • Previously the widgets didn’t returned data right away. I forgot to assign a worker to the async update functions. for the CPU, RAM, and DISK, I just got rid of async. For the custom commands I ran them in workers.

Finally, I draw a new logo in Inkscape!

Attachment
Attachment
Attachment
Attachment
0
khr519

I added some lines and stars to the QuickDash ASCII art so that it looks more… ‘dashing’
(sorry :P)

I also fixed settings live loading. Previously, the watchfiles awatch only watched the settings file itself. But turns out vim deletes and recreates files…? (At least that’s what it said in the watchfiles logs, which means watchfiles can’t watch the file after I change the file with vim) So I just made watchfile watch the whole directory, which solved the issue.

Also the settings file is now jsonc not json. I want to comment out parts of the container definitions when for example my mc server is no longer running.

  • The disks can be configured in the settings file as well
    ++ For some reason, after I made the disk paths configurable, the CPU widget refused to show up. Ill fix that next time…
Attachment
0
khr519

I finally implemented live loading the configs. If the json setting file is updated, the watchfiles library catches it and updates the commands, texts, etc… Only problem is that it works only once :P Ill fix it tomorrow probably.

Also, I got rid of the docker sdk and just went back to using asyncio subproc shells. I think this way is better because I can use the same function on LXC’s and VMs later on.

I am still using eval on the custom commands parts DX if anyone has an idea to replace eval it would be very appreciated! :)

Attachment
0
khr519

Made the CPU part display more info.
Also the disks arn’t placeholders now. (only problem, I use btrfs so the root and home subvols just return the same usage…)
Finally got the Docker SDK log view working. I really need to get used to async…
Also the ‘custom’ command widget is kinda working. (It uses EVAL. very customizable. gota fix that someday)

Attachment
0
khr519

I needed a TUI dashboard for my homelab so that i can ssh with my phone and see the stats easily.
I wanted a btop like smooth TUI so i decided on using Textual.
I first created the ram and cpu stat windows.
The progress bar was a lot of pain to render properly :(

Attachment
Attachment
1

Comments

khr519
khr519 2 months ago

The SSD’s are placeholders. I only have 1T :)

khr519

I’m still cleaning up the code :(
However…
I got tired at one point and made changes to how the buttons on each track component work.
Previously, when the user clicks the play button, it would just empty the queue and play the track immediately.
Now, it doesn’t empty the queue. And if another track is playing, it will be added right after the current track in the queue. if no track is playing, the button will play the track immediately.

Attachment
0
khr519

Today I revisited a project I abandoned 2 months ago.

Back then, I wanted a music player that has yt-dlp features, and I wanted it quick. So I used Copilot a lot to quickly make it. It worked for a while, but one day it didn’t.

Since it’s winter vacation now, I have more time to actually make it elegant.
So today I mainly focused on refactoring and cleaning up the awful code me and copilot wrote 2 months ago. I think that’s how it’s going to be for this week. Next week, I’ll work on improving the UX and stuff.

Attachment
2

Comments

Keyboard1000n17
Keyboard1000n17 3 months ago

w music choice 🔥

Keyboard1000n17
Keyboard1000n17 3 months ago

w music choice 🔥