System64fumo / syshud

Simple heads up display written in gtkmm 4
Do What The F*ck You Want To Public License
49 stars 0 forks source link

suggestions #4

Closed shadowe1ite closed 4 months ago

shadowe1ite commented 4 months ago

Hey me again :smile:

Just wanted to say a big thanks for this awesome project. It's been super helpful for me, and I really appreciate all the work you've done on it.

Suggestions:

I hope you'll take these suggestions into account. Once again, thank you for your hard work!

System64fumo commented 4 months ago

Thanks for the suggestions!

Adding a volume input indicator is a great idea, I think i can do that but it might take some time.

As for gradient colors, I think i can just add a class called .volume-%%% with 10 different values .volume-0 to .volume-100

Specifying minimum and maximum volume levels should be easy to implement, Will take a look at that shortly.

Exact position control might be annoying to add, I hope it's possible to add with how layer shell works.

I've been considering rebranding this program as syshud and include brightness stuff or caps/num lock stuff Buuuuut that might be a bit of a stretch, I could just add it and see how it goes from there though.

shadowe1ite commented 4 months ago

Thanks for the suggestions!

Adding a volume input indicator is a great idea, I think i can do that but it might take some time.

As for gradient colors, I think i can just add a class called .volume-%%% with 10 different values .volume-0 to .volume-100

Specifying minimum and maximum volume levels should be easy to implement, Will take a look at that shortly.

Exact position control might be annoying to add, I hope it's possible to add with how layer shell works.

I've been considering rebranding this program as syshud and include brightness stuff or caps/num lock stuff Buuuuut that might be a bit of a stretch, I could just add it and see how it goes from there though.

The gradient color is related to the volume's min and max values. If the volume increases, the gradient color intensifies; if the volume decreases, the gradient color saturation decreases accordingly.

System64fumo commented 4 months ago

Understood, the way you'd do that would be like this:

.volume-10 scale highlight {
    background: linear-gradient(90deg, rgba(112,193,255,1) 0%, rgba(0,144,255,1) 100%);
    opacity: 0.1
}

And then increase the opacity with each number

Also as for min-max values Isn't that determined by you? As in, the way you would change the volume level, eg: wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ -l 1.0

Now that i think about it, I'm not sure i understood how you want me to implement a min/max I can totally do that ui wise But wouldn't it function just fine right now?

System64fumo commented 4 months ago

Okay i think this should do it, I did away with the whole .volume-%% thing, instead now it uses names.

Here's an example: (Throw this at the bottom of your css for it to work)

/* Volume states */
.overamplified scale highlight {
    background: Red;
}
.high scale highlight {
    background: MediumSeaGreen;
}
.medium scale highlight {
    background: LightSeaGreen;
}
.low scale highlight {
    background: Teal;
}
.muted scale highlight {
    background: SeaGreen;
}
.muted-blocking scale highlight {
    background: Black;
}
System64fumo commented 4 months ago

Hopefully i didn't break everything with this major update :crossed_fingers: This one "should" add more control over the position and layout of sysvol Let me know if anything broke.

shadowe1ite commented 4 months ago

Hopefully i didn't break everything with this major update 🤞 This one "should" add more control over the position and layout of sysvol Let me know if anything broke.

exactly what i wanted thankyou

However, there seems to be an issue with the margin (-m) property. It only works when the position is set to top, and even then, only the first argument of the margin (-m 100) is applied.

command

./sysvol -p top -o h -m 100 600

output

Thursday_24_2024_10_21_45_AM

System64fumo commented 4 months ago

You're supposed to wrap it with "" as shown in the readme The argument is read as a single string not all trailing arguments past -m

eg: sysvol -m "10 0 0 0" ect

Also i'm unsure about it not working if it's not set to top It should work?

shadowe1ite commented 4 months ago

You're supposed to wrap it with "" as shown in the readme The argument is read as a single string not all trailing arguments past -m

eg: sysvol -m "10 0 0 0" ect

Also i'm unsure about it not working if it's not set to top It should work?

Sorry, my mistake. It's working like a charm. Thank you so much! I hope you implement other features too

System64fumo commented 4 months ago

Just checked again, confirmed working.

sysvol -p "bottom" -m "0 0 100 0"

Though i wouldn't recommend using these margins to space the module away from the screen as it moves the whole overlay away and thus the revealer animation might not look right. Use css if you want to make it float (as shown in the example css) I posted this before reciving the comment above, my bad!

System64fumo commented 4 months ago

And with this commit sysvol now supports microphones! (Tho it's pipewire only, i don't really care about pulse so unless someone specifically asks for it or i get bored enough i won't bother with it)

Please let me know what you think

shadowe1ite commented 4 months ago

And with this commit sysvol now supports microphones! (Tho it's pipewire only, i don't really care about pulse so unless someone specifically asks for it or i get bored enough i won't bother with it)

Please let me know what you think

cool, working perfectly ! , its time to delete my volume.sh :smile: waiting for brightness control

System64fumo commented 4 months ago

Ho boy.. brightness.. Yeaaah maybe next week Too much work to rebrand this project It was just added to nix os repos not that long ago I'm hoping it won't bother the person who added it :grimacing:

Alternatively i could create a new project? Idk? At the end of the day i plan to merge all of my projects into 1 to reduce resource usage and such So i don't mind creating a different independent project just for brightness/capslock/numlock/scrolllock/ect indicators

Tell me what you think

shadowe1ite commented 4 months ago

Ho boy.. brightness.. Yeaaah maybe next week Too much work to rebrand this project It was just added to nix os repos not that long ago I'm hoping it won't bother the person who added it 😬

Alternatively i could create a new project? Idk? At the end of the day i plan to merge all of my projects into 1 to reduce resource usage and such So i don't mind creating a different independent project just for brightness/capslock/numlock/scrolllock/ect indicators

Tell me what you think

I think it would be better to add all of this into one repo. It will be easier to install, and from a user perspective, it’s simpler to install one package instead of several different ones.

Plus, we can add more features like keyboard backlight control (similar to GNOME).

Take your time. I'm always happy to test. :smile:

shadowe1ite commented 4 months ago

one issue image

program crashing when i change device (connect to bluetooth headset)

System64fumo commented 4 months ago

one issue image

program crashing when i change device (connect to bluetooth headset)

Thaat ill have to look into I'd prefer you open a new issue for that

System64fumo commented 4 months ago

Ho boy.. brightness.. Yeaaah maybe next week Too much work to rebrand this project It was just added to nix os repos not that long ago I'm hoping it won't bother the person who added it 😬 Alternatively i could create a new project? Idk? At the end of the day i plan to merge all of my projects into 1 to reduce resource usage and such So i don't mind creating a different independent project just for brightness/capslock/numlock/scrolllock/ect indicators Tell me what you think

I think it would be better to add all of this into one repo. It will be easier to install, and from a user perspective, it’s simpler to install one package instead of several different ones.

Plus, we can add more features like keyboard backlight control (similar to GNOME).

Take your time. I'm always happy to test. 😄

As for this, i'd like to hear @uninsane's opinion on that I'm hoping it won't be too much trouble to rename the project in nixos

Like it just got added and now it's getting a rebrand

If it's too much trouble i'm fine with it staying as sysvol But hopefully by next week it "should" (if i'm not lazy) become syshud

Quick note: As per usual I will leave an option to opt out of the additional features when compiling My software is supposed to be modular by design

uninsane commented 4 months ago

@System64fumo projects get renamed all the time, we're used to that & it's not much trouble on my end.

as for consolidating everything into one repository, also not an issue. i've seen it where each component of the repo gets its own directory and Makefile and we package each component individually even though it's part of the same "project" (Buffyboard/Unl0kr is an example of that), or where it's just a toplevel Makefile/build script and we ship a single package for everything in the repo (e.g. coreutils, busybox, etc). i don't think distros tend to have a strong preference toward any specific approach here, just do whatever you prefer.

on the topic of backlight display, notifiers, etc: i don't have any strong opinions for or against it. not something i need, but not something that would get in my way either.

uninsane commented 4 months ago

re-reading @shadowelite-sec's post, SwayOSD might be worth a look. i don't use it, because rather than monitor the system volume like sysvol does, SwayOSD requires you to route all volume changes through it. but by doing that it's able to support modifiers like caps lock, brightness, and those other things pretty easily.

shadowe1ite commented 4 months ago

re-reading @shadowelite-sec's post, SwayOSD might be worth a look. i don't use it, because rather than monitor the system volume like sysvol does, SwayOSD requires you to route all volume changes through it. but by doing that it's able to support modifiers like caps lock, brightness, and those other things pretty easily.

Yeah, I have tried SwayOSD, but it didn't work well for me. personally really liked this project, simple and very easy to configure

System64fumo commented 4 months ago

@shadowelite-sec So regarding the brightness related stuff, You said "but I'd love to see a similar program for controlling screen brightness"

sysvol doesn't control your volume, It just monitors changes and displays them. I assume that's how you'd like me to implement brightness stuff correct?

System64fumo commented 4 months ago

Done.

Let me know if this works for you. Gonna.. have to clean up the code behind this.. I highly discourage you from taking a look, It's a mess (that works)

shadowe1ite commented 4 months ago

Done.

Let me know if this works for you. Gonna.. have to clean up the code behind this.. I highly discourage you from taking a look, It's a mess (that works)

its working bro :+1: but its it possible to set a different position for brightness (like : left -> volume, right -> brightness, etc)

System64fumo commented 4 months ago

Idk i feel like that would be "too" much if you catch my drift.

Unless you meant for something like an icon_on_start sorta deal that changes both at the same time.

Still feel like that would be a bit "too much" but it would be more reasonable.

Alternatively if and whenever i get to adding css names for the brightness stuff just hide the icons and do whatever from css.

shadowe1ite commented 4 months ago

Idk i feel like that would be "too" much if you catch my drift.

Unless you meant for something like an icon_on_start sorta deal that changes both at the same time.

Still feel like that would be a bit "too much" but it would be more reasonable.

Alternatively if and whenever i get to adding css names for the brightness stuff just hide the icons and do whatever from css.

oh ok , no problem

shadowe1ite commented 4 months ago

Can you tell me what the CSS class names for this are?

System64fumo commented 4 months ago

Have not added yet but they will be similar to how the volume ones work.