this post was submitted on 08 May 2025
3 points (80.0% liked)

Nix / NixOS

2204 readers
71 users here now

Main links

Videos

founded 2 years ago
MODERATORS
 

I just want to know from you how you (or how you would) pass options to packages you develop with flakes.

I am currently writing a widget bar using Astal and then import the flake in my NixOS flake and use the package.default output in home.packages. I'd like to also style this bar according to my Stylix theme, how do you do something like this?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 1 week ago (1 children)

How are you importing it in your nixos config? I don't see any references to astal in there.

I try building this astal config using nix build (just to try to test it) and it creates a result folder inside the astal folder, where i have its flake and configs, see the astal repo, those are the contents of the folder. But there is no check.scss file gets created in the scss/theme/ folder.

That sounds right, nix build on that flake by itself wouldn't produce that file. You would have to import that home-manager module to your config and then switch to that config, and then the file will be created in your homedir, in ~/.config/astal/scss/themes/astel.scss to be specific.

[–] [email protected] 1 points 4 days ago* (last edited 4 days ago) (1 children)

So I am importing in home manager file and the syntax and building is fine, the file is also being created in my ~/requested folder.

But I think there has been a misunderstanding in my concept of how this package is being installed and where it will get its colors from, so this flake package astal takes colors from where it is built right? and inside there will be created a scss folder which will have the themes/astel.css file, but in our setup we will only create a file in *user's home/.config/astal directory, but then how will the app use that file? I am getting confuse here, I tried to change the astel.scss file lines to @import "~/.config/astal/scss/themes/astel.scss"; but no cigar. I am missing a piece here, can you please help me?

Sry I am asking a little too much help now.

Please consider these sources:

github.com/mobsenpai/hana

github.com/mobsenpai/aoi (just changed the name)

https://aylur.github.io/astal/guide/getting-started/nix

[–] [email protected] 2 points 4 days ago (1 children)

Your understanding is correct, you have to read that file (~/.config/astal/scss/thmees/astel.css) from your app somehow. I'm just guessing that @import might be compile-time, in which case you'll have to do it some other way, by reading this file at runtime and using it to configure the colors. If @import is runtime itself, perhaps you need to pass the entire path instead of using ~, like @import "/home/mobsenpai/.config/astal/scss/themes/astel.scss" or something.

[–] [email protected] 1 points 4 days ago (1 children)

I don't think there is a way to give the config during runtime or while calling the binary of the app, I will keep trying something, one thing I think that may help is creating that file during the build process, but I just don't have enough knowledge to do that.

[–] [email protected] 2 points 4 days ago (1 children)

one thing I think that may help is creating that file during the build process

This is certainly an option, but I would only use it as a last resort as it means recompiling the project every time you want to change the theme. It's quite easily done though, you can use overrideAttrs on the package in your home-manager module to pass in the desired colors.

[–] [email protected] 1 points 2 days ago

I am seeing this repo: https://github.com/Jas-SinghFSU/HyprPanel/blob/master/nix/module.nix

this uses astal to create the said interface but is also configuring the settings like how I want, except it uses json and ts for it where I have scss and lua, otherwise I just can't wrap my head around how i can translate it to my needs. Maybe I don't need to edit the files in the build, I could just edit or update the astel.scss using nix as well like how its done there using builtins and other functions, can you help me here, if you've got time.