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