Lightweight Linux OSD (On Screen Display) daemon with GTK4 overlay UI written in C

I agree with what @kovacslt says.
I can add this
Can you make it more general … ie it seems to be tied to certain sound etc events. If I were programming could I use it via some API to display events within my running program?

One can use github to make a webpage for a github repo.

Honestly, I doubt it. If something is so difficult to explain, there might be another problem. BTW, in general I refuse to view any of those explain-videos.

Me too. I want my explanations in writing.

I dislike tutorials having a pointless intro. Say, the tutor speaks for about 7..9 minutes about what he/she is going to speak about, then he speaks about it really in 2 minutes. The valuable content is 2 minutes, still took 11 minutes…
I always remember how much I liked Daria Fissouns courses about Davinci.
Few seconds main title, then “hi there, let’s get to it…”
A random sample: https://www.youtube.com/watch?v=pMkyyIBbLHI
Every (really every!) explain videos should be like that.

Personally I use them a lot, when faced with a new box, mainly laptops, especially apple, I watch how to strip them as each one is different build. Remove keyboard, location of cmos battery etc. With many new apples I use the video of the strip down to decide if I am going to take on a job or not. In many cases now batteries are glued inside and need heat guns to strip, or the ribbon cable for track pad is so fine … almost impossible to repair.

Some cheap laptops now no longer have cmos batteries but use capacitors soldered onto the motherboard and are just so tiny

I dont touch mobile phones for that reason, I lack fine motor skills due to age.

Without a video may not know where to start

Both approaches are valid Tutorial + Videos.

There are channels with a lot of videos about Java, Docker, phyton and Linux tutorials in YouTube … being much better than a written tutorial … and of course there are a lot of tutorials with excellent quality. I use both

For example in 2014 was mandatory for me use YouTube to learn Git. The written tutorials in that point of time were not comfortable for me.

How I always say: How do you learn to ride a bike? By reading a book or watching a video?

Paul

About laptops I apply the same approach as you.

It to know what to expect once open the laptop and how to upgrade/change correctly both SSD and RAM.

It varies of course for Apple, HP, Lenovo, Asus, Acer and Dell

Neither one. :grinning_face:

Yes, very useful. I have watch videos of how to disassemble a laptop. It was very useful to know not only how to do take the laptop apart, but to know what you were going to run into doing it.

Hi Ninja,
First of all, welcome to the forum and congratulations on your project.

I have a question—even though I’m a newbie at this—in your release you have:

Volume level monitoring via PulseAudio

How does ozhium-ollium handle volume when it doesn’t use PulseAudio but uses PipeWire?


A question I’m not sure is possible:

Real-time backlight brightness monitoring

If there are multiple monitors, is it possible to have more than one control, or is there just one main control that adjusts the brightness on all monitors?


Is AppImage out of the question?

Thank you, and good luck with your project

Jorge

App. 90% of them are useless crap, created by people without any teaching and rethoric experience.

I use YouTube for learning since 2014 (apart from written tutorials)… excellent videos I found (with or without playlist) and there are valuable channels about Linux. All in English and Spanish.

90% crap? Interesting your stats … anyway each one process a tutorial in different way

I avoid to use YouTube wherever I can.

Me three… I hate tech videos - mostly… and there’s all that talking and “what’s up guys…” that annoys me - I just wanna cut straight to the guts of the matter…

Neither - by falling off lots of times and hurting yourself! i.e. bicycle…

If “bike”=motorcycle - riding very slowly and getting use to releasing the clutch and gently throttling and hopefully not stalling it and going into a tank-slapper :smiley:

Foot gear changes are a learning curve.

Procrastination irritates, whether written or videod.
I cant take in oral info … had trouble at uni with lectures … had to use the textbook.

Most of my learning starts with trying to do something and failing.
Then I get motivated to look up the docs.
I dont try to follow success stories.

“It is the true nature of mankind to learn from mistakes, not from example”
Fred Hoyle

Hi “Ninja”, nice project you have! I use Sway and have the waybar with brightness and volume controls but still wanted to try your daemon. I’m using pipewire instead of pulse audio so I needed to modify your code a bit. I used gemini to make me an ebuild (I’m using Gentoo) so I can install the daemon with package manager.

Here’s the ebuild (I have a local repository for my own ebuilds, /usr/local/portage/gui-apps/ozhium-ollium/ozhium-ollium-1.0.0.ebuild):

Copyright 2026 Gentoo Authors

Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit toolchain-funcs

DESCRIPTION=“A Wayland status bar written in C using GTK4”
HOMEPAGE=“https://github.com/Nithin-3/ozhium-ollium”
SRC_URI=“https://github.com/Nithin-3/ozhium-ollium/archive/refs/tags/v${PV}.tar.gz → ${P}.tar.gz”

LICENSE=“MIT”
SLOT=“0”
KEYWORDS=“~amd64”

DEPEND="
gui-libs/gtk:4
gui-libs/gtk4-layer-shell
"
RDEPEND="
${DEPEND}
media-video/wireplumber
"
BDEPEND="
virtual/pkgconfig
"

src_compile() {
local mycflags=(
${CFLAGS}
-Iinclude
-Ithird_party/inih
$(pkg-config --cflags gtk4 gtk4-layer-shell)
)

local myldflags=(
	${LDFLAGS}
	$(pkg-config --libs gtk4 gtk4-layer-shell)
	-lutil
)

emake CC="$(tc-getCC)" CFLAGS="${mycflags[*]}" LDFLAGS="${myldflags[*]}"

}

src_install() {
# Asennetaan binäärit puhtaina järjestelmään
if [[ -f “ozhium-ollium” ]]; then dobin ozhium-ollium; fi
if [[ -f “ozhium-ollium-ui” ]]; then dobin ozhium-ollium-ui; fi

# Tehdään yhteensopivuus-symlinkki
dosym ozhium-ollium-ui /usr/bin/ollium-ui

# Asennetaan oletuskonfiguraatio dokumentaation mukaan, jos sellainen on
if [[ -f "config.ini" ]]; then
	dodoc config.ini
fi

einstalldocs
}

The program works great. If you read the ebuild I changed the RDEPEND to wireblumber. It’s easy to change the pulseaudio to pipewire on Gentoo because the package is build from source directly. I can’t however change the default font size. Is there a possibility for this?

edit: Here’s a screenshot of my waybar. I’d like to have the ozhium-ollium’s font bigger

waybar_with_ozhium-ollium

Most of my learning starts with trying to do something and failing.
Then I get motivated to look up the docs.
I dont try to follow success stories.
“It is the true nature of mankind to learn from mistakes, not from example”

I do the same but inverted, I read the docs, see screenshots and watch videos (according the case). Once with some basis … I go to get the hands dirty. The quick and best example is how to learn tmux.

The point is … get experience through an isolated environment

  • install tmux
  • read and understand the man page
  • learn by using it with examples
  • get one of those cheat-sheets around if require

No video involved.

About Tmux

1 install tmux
2 read and understand the man page
3 learn by using it with examples
4 get one of those cheat-sheets around if require

2 and 3 replaced by

  • a. Read and understand some tutorials (it is your 3)
  • b. Watch some videos

Finally

  • c. Read man page

The point is there are many sources to learn and what vary is the order