chore(portfolio): remove small projects
This commit is contained in:
parent
dd10f02ea2
commit
c68f6d43bb
8 changed files with 0 additions and 160 deletions
Binary file not shown.
Before Width: | Height: | Size: 17 KiB |
Binary file not shown.
Before Width: | Height: | Size: 112 KiB |
Binary file not shown.
Before Width: | Height: | Size: 36 KiB |
Binary file not shown.
Before Width: | Height: | Size: 83 KiB |
|
@ -1,16 +0,0 @@
|
|||
---
|
||||
name: Llama Bot
|
||||
overview: A discord bot.
|
||||
image: /img/portfolio/llama-bot.avif
|
||||
repo: https://github.com/developomp/llama-bot
|
||||
badges:
|
||||
- typescript
|
||||
- firebase
|
||||
---
|
||||
|
||||
## Introduction
|
||||
|
||||
The llama bot is a discord bot made for the
|
||||
[Llama's Pyjamas community discord server](discord.gg/2fsar34APa).
|
||||
It is written in typescript and uses the
|
||||
[sapphire framework](https://sapphirejs.dev).
|
|
@ -1,94 +0,0 @@
|
|||
---
|
||||
name: pomky
|
||||
overview: A gtk-based, conky-like system monitor written in rust.
|
||||
image: /img/portfolio/pomky.avif
|
||||
repo: https://github.com/developomp/pomky
|
||||
badges:
|
||||
- rust
|
||||
- gtk
|
||||
- cairographics
|
||||
- linux
|
||||
---
|
||||
|
||||
## Introduction
|
||||
|
||||
If you're into desktop customization, chances are, you're using (or used)
|
||||
[rainmeter][rainmeter]. In case you don't know what that is, it is by far the
|
||||
most popular desktop customization tool. Think of Windows 7 widgets on steroid.
|
||||
|
||||
However, rainmeter only works in the Windows Operating System. Which means Linux
|
||||
users like me have to look elsewhere for alternatives. Fortunately, there are
|
||||
projects like [conky][conky] and [polybar][polybar], so getting started should
|
||||
not be too difficult especially with the endless supply of ideas, references,
|
||||
and guides from communities such as [r/unixporn][unixporn].
|
||||
|
||||
When I first switched to Linux back in 2017, I was somewhat satisfied with my
|
||||
simple conky widgets, but I knew I had to eventually do something about its
|
||||
primitive configuration system that prevented me from making anything with
|
||||
complexity without looking like a card pyramid that could collapse at the
|
||||
slightest disturbance. So one day in December 2021, after finishing
|
||||
[The Rust Book][the-rust-book], I decided to make my own tailor-made system
|
||||
monitor as my first rust project.
|
||||
|
||||
## Challenges
|
||||
|
||||
### What framework to use
|
||||
|
||||
When I first started the project, I considered using [tauri][tauri] which is
|
||||
basically [ElectronJS][electronjs] but with rust & WebKit for backend and is
|
||||
much more lightweight.
|
||||
|
||||
However, that plan quickly fall apart when it turned out to be impossible to
|
||||
make a window that acted like it's part of the desktop (like the task bar)
|
||||
instead of a regular window without access to the lower level code. In technical
|
||||
terms, I wasn't able to mark the window as `_NET_WM_WINDOW_TYPE_DESKTOP`
|
||||
([FreeDesktop Documentation][freedesktop-docs]). This is now possible thanks to
|
||||
[tauri-apps/tao#522][tauri-always-on-bottom] PR being merged, but at the time,
|
||||
there was no simple and clean solution.
|
||||
|
||||
After going through different options, I ended up implementing everything from
|
||||
scratch using the [rust binding for gtk][gtk-rs]. This allowed me to simply set
|
||||
a `WindowTypeHint` ([GDK documentation][gdk-docs]) and expect everything to work
|
||||
flawlessly. This also allowed me to use powerful GUI design tools such as
|
||||
[glade][glade].
|
||||
|
||||
### Drawing graphs
|
||||
|
||||
Although GTK doesn't provide any usable built-in graph & chart components,
|
||||
developers can still implement their own using the
|
||||
[Cairo Graphics Library][cairographics] which is part of the
|
||||
[GTK architecture][gtk-architecture].
|
||||
|
||||
After reading some documentations and way more google searches than I'd like to
|
||||
admit, I was able to make a simple graph and bar component I was happy with.
|
||||
|
||||
## Future
|
||||
|
||||
Although the end result looks rather marvelous if you ask me, there are several
|
||||
rough edges I'd like to smooth out. For starters, it acts erratically on
|
||||
[Wayland][wayland] (getting a title bar all of a sudden, moving out of its set
|
||||
position, etc.), gets drawn over other window when switching workspaces, has
|
||||
higher CPU usage than other system monitors, has unpredictable CPU spikes, etc.
|
||||
|
||||
Which is why in the future, I'll be using [eww][eww]: yet another Linux widget
|
||||
system written in rust. The way it works is very similar to pomky behind the
|
||||
scenes (uses gtk, draws with cairo, custom components, all the good stuff), but
|
||||
it is better than pomky in almost every conceivable way. It is more configurable
|
||||
, more lightweight, more modular, and solves the previously mentioned issues.
|
||||
|
||||
[rainmeter]: https://www.rainmeter.net "rainmeter"
|
||||
[conky]: https://github.com/brndnmtthws/conky "conky"
|
||||
[polybar]: https://github.com/polybar/polybar "polybar"
|
||||
[unixporn]: https://www.reddit.com/r/unixporn "unixporn"
|
||||
[the-rust-book]: https://doc.rust-lang.org/book "The Rust Book"
|
||||
[tauri]: https://tauri.app "tauri"
|
||||
[electronjs]: https://www.electronjs.org "ElectronJS"
|
||||
[freedesktop-docs]: https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm45299620502752 "Freedesktop Documentation"
|
||||
[tauri-always-on-bottom]: https://github.com/tauri-apps/tao/pull/522 "tauri-apps/tao PR #522"
|
||||
[gtk-rs]: https://gtk-rs.org "gtk-rs"
|
||||
[gdk-docs]: https://docs.gtk.org/gdk3/enum.WindowTypeHint.html#desktop "GDK Documentation"
|
||||
[glade]: https://wiki.gnome.org/Apps/Glade "Glade"
|
||||
[cairographics]: https://www.cairographics.org "Cairo Graphics"
|
||||
[gtk-architecture]: https://www.gtk.org/docs/architecture "GTK architecture"
|
||||
[wayland]: https://wayland.freedesktop.org "Wayland"
|
||||
[eww]: https://github.com/elkowar/eww "eww"
|
|
@ -1,26 +0,0 @@
|
|||
---
|
||||
name: Pompup
|
||||
overview: My Arch Linux desktop setup
|
||||
image: /img/portfolio/pompup.avif
|
||||
repo: https://github.com/developomp/pompup
|
||||
badges:
|
||||
- go
|
||||
- python
|
||||
- gnubash
|
||||
- linux
|
||||
---
|
||||
|
||||
## Introduction
|
||||
|
||||
Pompup is my third attempt at making my personal post-install utility for
|
||||
[Arch Linux](https://archlinux.org).
|
||||
|
||||
Here are the past versions:
|
||||
|
||||
1. [https://github.com/developomp/setup-script-sh][setup-script-sh] - Third version written in Shell Script
|
||||
2. [https://github.com/developomp/setup-script-py][setup-script-py] - Second version written in Python
|
||||
3. [https://github.com/developomp/pompup][pompup] - First version written in Shell Go
|
||||
|
||||
[setup-script-sh]: https://github.com/developomp/setup-script-sh
|
||||
[setup-script-py]: https://github.com/developomp/setup-script-py
|
||||
[pompup]: https://github.com/developomp/pompup
|
|
@ -1,24 +0,0 @@
|
|||
---
|
||||
name: War Brokers Timeline
|
||||
overview: A list of events happened in the War Brokers community in a chronological order.
|
||||
image: /img/portfolio/wbtimeline.avif
|
||||
repo: https://github.com/developomp/wbtimeline
|
||||
badges:
|
||||
- rust
|
||||
- typescript
|
||||
- deno
|
||||
- webassembly
|
||||
---
|
||||
|
||||
<!-- add yew to badges https://github.com/simple-icons/simple-icons/issues/7122 -->
|
||||
|
||||
## Introduction
|
||||
|
||||
wbtimeline is an experimental project made as an excuse to use [deno][deno]
|
||||
and [rust][rust]. The most notable thing about this project is that the frontend
|
||||
code is entirely written in the rust programming language by the power of the
|
||||
[yew][yew] framework.
|
||||
|
||||
[deno]: https://github.com/denoland/deno
|
||||
[rust]: https://github.com/rust-lang/rust
|
||||
[yew]: https://github.com/yewstack/yew
|
Loading…
Add table
Add a link
Reference in a new issue