Skip to content

myume/ciri

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ciri

CI

Nix configuration options generated directly from Niri

Flake Usage

Add ciri to your flake inputs:

ciri.url = "github:myume/ciri";

Make sure to import the home manager modules in your config:

imports = [ inputs.ciri.homeManagerModules.default ];

and set up your Niri config in the settings

{
    programs.ciri = {
        enable = true;
        settings = {
            ...
        }
    }
}

You can view the documentation here. For more information on each option, you can visit the niri wiki. The name of the options should generally mirror the niri ones 1:1.

To look up options types directly, see the types file. The config type contains all options that you can pass to the settings option.

You can also see the example-config for more info on how configure the options.

Type Generation

Check Niri Types

The niri configuration options are generated by the complementing rust program. It parses the options from upstream niri repo automatically. The types are automatically updated weekly by a github actions workflow.

To regenerate the types you can run

ciri

This will clone the repo under /tmp/niri by default.

Note: that the program doesn't clean up the repo by default. To cleanup, make sure to pass the --cleanup flag.

You can reclone the repo with the clean flag.

ciri --clean

Niri version

To use a specific version/branch of niri you can pass in the -b or --branch flag. This will clone the repo at that version, and generate types accordingly.

ciri --branch 'v25.11'

The main branch of this repo will target niri/main.

For more options see ciri --help

KDL Generation

This flake uses a best effort approach to translate Nix options to KDL. There are bound to be edge cases that aren't handled since Nix attrsets doesn't map to KDL nicely.

We use overrides to fix and adjust options that aren't quite right. I'm fixing these issues as I run into them, so whatever options I use in my config probably work, but outside of that, there might be issues.

If you notice that the kdl config generation is wrong, feel free to file an issue or open a PR with an override.

Credits

About

automatically generated nix configuration options from the niri source code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors