Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
bc17bc7
My local changes
devalentineomonya Nov 2, 2025
46c589b
Added my screen recorder config
devalentineomonya Dec 14, 2025
79c613e
Updated audio options
devalentineomonya Dec 14, 2025
7f0860e
Fixed window option
devalentineomonya Dec 14, 2025
6ad4fc5
Fixed window option
devalentineomonya Dec 14, 2025
4edc017
Update src/caelestia/subcommands/record.py
devalentineomonya Jan 6, 2026
6c89b83
[CI] chore: update flake
github-actions[bot] Dec 14, 2025
9434451
[CI] chore: update flake
github-actions[bot] Dec 16, 2025
a94dccf
[CI] chore: update flake
github-actions[bot] Dec 20, 2025
8eb805b
[CI] chore: update flake
github-actions[bot] Dec 21, 2025
182b92e
[CI] chore: update flake
github-actions[bot] Dec 23, 2025
3dbfe79
[CI] chore: update flake
github-actions[bot] Dec 26, 2025
60b80ad
[CI] chore: update flake
github-actions[bot] Dec 28, 2025
66295a4
[CI] chore: update flake
github-actions[bot] Dec 29, 2025
f6cae21
[CI] chore: update flake
github-actions[bot] Jan 2, 2026
a8ccaaf
[CI] chore: update flake
github-actions[bot] Jan 4, 2026
6c756aa
[CI] chore: update flake
github-actions[bot] Jan 7, 2026
c57314e
[CI] chore: update flake
github-actions[bot] Jan 8, 2026
076a098
[CI] chore: update flake
github-actions[bot] Jan 10, 2026
f7fed17
[CI] chore: update flake
github-actions[bot] Jan 11, 2026
285048b
[CI] chore: update flake
github-actions[bot] Jan 12, 2026
8054f7e
[CI] chore: update flake
github-actions[bot] Jan 13, 2026
c8326c1
theme: update discord theme template
soramanew Jan 14, 2026
8a48ae8
[CI] chore: update flake
github-actions[bot] Jan 16, 2026
acfb6b0
[CI] chore: update flake
github-actions[bot] Jan 17, 2026
adbc893
theme: ensure atomic writes for configuration files (#76)
mj0x0 Jan 17, 2026
6a8c5cf
[CI] chore: update flake
github-actions[bot] Jan 18, 2026
7e7f743
[CI] chore: update flake
github-actions[bot] Jan 20, 2026
3354dc5
[CI] chore: update flake
github-actions[bot] Jan 21, 2026
e6e9742
[CI] chore: update flake
github-actions[bot] Jan 22, 2026
b01aaec
[CI] chore: update flake
github-actions[bot] Jan 23, 2026
7718720
theme: inject mode into user templates (#77)
Kalagmitan Jan 24, 2026
1a6eb20
[CI] chore: update flake
github-actions[bot] Jan 25, 2026
0b78da6
[CI] chore: update flake
github-actions[bot] Jan 26, 2026
34f7e88
[CI] chore: update flake
github-actions[bot] Jan 30, 2026
2372525
[CI] chore: update flake
github-actions[bot] Feb 1, 2026
a7d12d8
[CI] chore: update flake
github-actions[bot] Feb 2, 2026
0b025b8
[CI] chore: update flake
github-actions[bot] Feb 3, 2026
af15c4f
[CI] chore: update flake
github-actions[bot] Feb 4, 2026
2bf4097
[CI] chore: update flake
github-actions[bot] Feb 5, 2026
03035f1
[CI] chore: update flake
github-actions[bot] Feb 6, 2026
e97388f
[CI] chore: update flake
github-actions[bot] Feb 8, 2026
d62f643
[CI] chore: update flake
github-actions[bot] Feb 9, 2026
775aaf2
record: add arg to copy screen recording to clipboard (#83)
chea-vuthearith Feb 10, 2026
44a2171
fix: xxx_paletteKeyColor rename in myc 3.0.0
soramanew Feb 10, 2026
9228232
fix: apply mode substitution after dynamic template fill (#84)
AteebXYZ Feb 10, 2026
ff5a2f3
nix: fix todoist command replacement in default.nix (#86)
nicklany01 Feb 10, 2026
4daa4a6
[CI] chore: update flake
github-actions[bot] Feb 11, 2026
d319feb
[CI] chore: update flake
github-actions[bot] Feb 13, 2026
9e20fcf
fix: compat for python-materialyoucolor < 3.0.0
soramanew Feb 14, 2026
2ab351a
feat: thunar & papirus-folders theming + new schemes (#80)
PixelKhaos Feb 14, 2026
1d4fdfc
feat: add dynamic hard flavour
soramanew Feb 14, 2026
93041e7
[CI] chore: update flake
github-actions[bot] Feb 15, 2026
2021bd7
feat: scheme support for Pandora Minecraft launcher (#87)
Unrectified Feb 17, 2026
6f713c6
fix: dynamic scheme import
soramanew Feb 18, 2026
bec59b8
[CI] chore: update flake
github-actions[bot] Feb 19, 2026
12683d0
[CI] chore: update flake
github-actions[bot] Feb 20, 2026
97a3942
feat: add GIF files support as wallpaper (#88)
Unrectified Feb 20, 2026
999aad8
fix: missing colon
soramanew Feb 20, 2026
e833312
[CI] chore: update flake
github-actions[bot] Feb 21, 2026
7e43dc7
[CI] chore: update flake
github-actions[bot] Feb 22, 2026
a6d4c74
[CI] chore: update flake
github-actions[bot] Feb 25, 2026
c3d9f2d
[CI] chore: update flake
github-actions[bot] Mar 1, 2026
0238e15
fix: dynamic scheme import <3.0.0 compat
soramanew Mar 2, 2026
71931aa
[CI] chore: update flake
github-actions[bot] Mar 3, 2026
cf37f6a
[CI] chore: update flake
github-actions[bot] Mar 4, 2026
67a3e8f
fix: wall not Path type (#89)
xxeisenberg Mar 4, 2026
80f9cb8
[CI] chore: update flake
github-actions[bot] Mar 6, 2026
af04523
[CI] chore: update flake
github-actions[bot] Mar 8, 2026
95fdf10
[CI] chore: update flake
github-actions[bot] Mar 9, 2026
8b66cbd
fix: format
soramanew Mar 9, 2026
198675f
feat: switch to qtengine
soramanew Mar 9, 2026
cb1f3fe
refactor: enforce stricter type hints (#91)
Kalagmitan Mar 15, 2026
ef516af
nix: fix qtct sub (#98)
SamiyelF Mar 16, 2026
3f85e7f
[CI] chore: update flake
github-actions[bot] Mar 17, 2026
c3b168b
[CI] chore: update flake
github-actions[bot] Mar 18, 2026
31ad3ad
[CI] chore: update flake
github-actions[bot] Mar 19, 2026
7b7d2de
[CI] chore: update flake
github-actions[bot] Mar 20, 2026
0146690
readme: document user templates (#99)
AteebXYZ Mar 20, 2026
838c86c
[CI] chore: update flake
github-actions[bot] Mar 21, 2026
3e3a539
[CI] chore: update flake
github-actions[bot] Mar 22, 2026
05c5f10
[CI] chore: update flake
github-actions[bot] Mar 23, 2026
82a8313
[CI] chore: update flake
github-actions[bot] Mar 24, 2026
36a0c7f
[CI] chore: update flake
github-actions[bot] Mar 26, 2026
42db885
[CI] chore: update flake
github-actions[bot] Mar 27, 2026
0302d67
[CI] chore: update flake
github-actions[bot] Mar 28, 2026
ad203da
[CI] chore: update flake
github-actions[bot] Mar 29, 2026
a76f595
[CI] chore: update flake
github-actions[bot] Mar 30, 2026
e9d7a5a
[CI] chore: update flake
github-actions[bot] Mar 31, 2026
faf996f
[CI] chore: update flake
github-actions[bot] Apr 1, 2026
39ba0ee
[CI] chore: update flake
github-actions[bot] Apr 2, 2026
d2eeabf
[CI] chore: update flake
github-actions[bot] Apr 3, 2026
acaf95b
[CI] chore: update flake
github-actions[bot] Apr 4, 2026
e99e658
[CI] chore: update flake
github-actions[bot] Apr 7, 2026
84a364f
[CI] chore: update flake
github-actions[bot] Apr 9, 2026
f9e5dc8
feat: add caelestia scheme
soramanew Apr 10, 2026
a46f268
[CI] chore: update flake
github-actions[bot] Apr 11, 2026
f0ecb6b
theme: add zed editor theme support (#102)
yukazakiri Apr 12, 2026
bb2fced
fix: remove troublesome resizer rules
soramanew Apr 14, 2026
f2e06b3
theme: add live theming for chromium-based browsers (#103)
yukazakiri Apr 15, 2026
c5eae87
docs: add missing theme.enable* opts to example conf
soramanew Apr 19, 2026
2066956
[CI] chore: update flake
github-actions[bot] Apr 20, 2026
c0dae18
[CI] chore: update flake
github-actions[bot] Apr 21, 2026
03ae9c1
UPdated recording util combined sink
devalentineomonya Apr 21, 2026
c2fa415
Updated screenrecorder to re-encord audio to aac
devalentineomonya Apr 22, 2026
1200740
Added logging for screenshot
devalentineomonya May 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ if has nix; then
fi

PATH_add bin
cls
90 changes: 77 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ The main control script for the Caelestia dotfiles.

<details><summary id="dependencies">External dependencies</summary>

- [`libnotfy`](https://gitlab.gnome.org/GNOME/libnotify) - sending notifications
- [`swappy`](https://github.com/jtheoof/swappy) - screenshot editor
- [`grim`](https://gitlab.freedesktop.org/emersion/grim) - taking screenshots
- [`dart-sass`](https://github.com/sass/dart-sass) - discord theming
- [`app2unit`](https://github.com/Vladimir-csp/app2unit) - launching apps
- [`wl-clipboard`](https://github.com/bugaevc/wl-clipboard) - copying to clipboard
- [`slurp`](https://github.com/emersion/slurp) - selecting an area
- [`gpu-screen-recorder`](https://git.dec05eba.com/gpu-screen-recorder/about) - screen recording
- `glib2` - closing notifications
- [`cliphist`](https://github.com/sentriz/cliphist) - clipboard history
- [`fuzzel`](https://codeberg.org/dnkl/fuzzel) - clipboard history/emoji picker
- [`libnotfy`](https://gitlab.gnome.org/GNOME/libnotify) - sending notifications
- [`swappy`](https://github.com/jtheoof/swappy) - screenshot editor
- [`grim`](https://gitlab.freedesktop.org/emersion/grim) - taking screenshots
- [`dart-sass`](https://github.com/sass/dart-sass) - discord theming
- [`app2unit`](https://github.com/Vladimir-csp/app2unit) - launching apps
- [`wl-clipboard`](https://github.com/bugaevc/wl-clipboard) - copying to clipboard
- [`slurp`](https://github.com/emersion/slurp) - selecting an area
- [`gpu-screen-recorder`](https://git.dec05eba.com/gpu-screen-recorder/about) - screen recording
- `glib2` - closing notifications
- [`cliphist`](https://github.com/sentriz/cliphist) - clipboard history
- [`fuzzel`](https://codeberg.org/dnkl/fuzzel) - clipboard history/emoji picker

</details>

Expand Down Expand Up @@ -93,6 +93,45 @@ sudo python -m installer dist/*.whl
sudo cp completions/caelestia.fish /usr/share/fish/vendor_completions.d/caelestia.fish
```

### Additional steps

#### Auto folder colour theming

For automatic Papirus folder icon colour syncing, you must have [`papirus-folders`](https://github.com/PapirusDevelopmentTeam/papirus-folders)
installed, and `papirus-folders` must to be able to run with `sudo` without a password prompt.

You can allow this by creating a sudoers file:

```sh
echo "$USER ALL=(ALL) NOPASSWD: $(which papirus-folders)" | sudo tee /etc/sudoers.d/papirus-folders
sudo chmod 440 /etc/sudoers.d/papirus-folders
```

#### Chromium-based browser theming

For live Chromium-based browser theming, the CLI must be allowed to create certain directories in `/etc`
and write to them via `sudo` without a password prompt.

You can allow this by creating a sudoers file:

```fish
# Fish shell
for dir in /etc/chromium/policies/managed /etc/brave/policies/managed /etc/opt/chrome/policies/managed
echo "$USER ALL=(ALL) NOPASSWD: $(which mkdir) -p $dir" | sudo tee -a /etc/sudoers.d/caelestia-chromium
echo "$USER ALL=(ALL) NOPASSWD: $(which tee) $dir/caelestia.json" | sudo tee -a /etc/sudoers.d/caelestia-chromium
end
sudo chmod 440 /etc/sudoers.d/caelestia-chromium
```

```sh
# Bash/other shells
for dir in /etc/chromium/policies/managed /etc/brave/policies/managed /etc/opt/chrome/policies/managed; do
echo "$USER ALL=(ALL) NOPASSWD: $(which mkdir) -p $dir" | sudo tee -a /etc/sudoers.d/caelestia-chromium
echo "$USER ALL=(ALL) NOPASSWD: $(which tee) $dir/caelestia.json" | sudo tee -a /etc/sudoers.d/caelestia-chromium
done
sudo chmod 440 /etc/sudoers.d/caelestia-chromium
```

## Usage

All subcommands/options can be explored via the help flag.
Expand Down Expand Up @@ -122,6 +161,24 @@ subcommands:
resizer window resizer daemon
```

### User templates

Custom user templates can be defined in `~/.config/caelestia/templates/`.

#### Template syntax

`{{ <color>.<format> }}`

- `<color>` is a theme color role derived from the Material You color system (e.g. `primary`, `secondary`, `background`)
- `<format>` is the output format: `hex` or `rgb`

#### Examples

- `{{ primary.hex }}` outputs `3f4ba2`
- `{{ primary.rgb }}` outputs `rgb(193, 132, 207)`

Output files are written to `~/.local/state/caelestia/theme/`. You can symlink them to your desired locations.

## Configuring

All configuration options are in `~/.config/caelestia/cli.json`.
Expand All @@ -134,17 +191,24 @@ All configuration options are in `~/.config/caelestia/cli.json`.
"extraArgs": []
},
"wallpaper": {
"postHook": "echo $WALLPAPER_PATH"
"postHook": "echo $WALLPAPER_PATH"
},
"theme": {
"enableTerm": true,
"enableHypr": true,
"enableDiscord": true,
"enableSpicetify": true,
"enablePandora": true,
"enableFuzzel": true,
"enableBtop": true,
"enableNvtop": true,
"enableHtop": true,
"enableGtk": true,
"enableQt": true
"enableQt": true,
"enableWarp": true,
"enableChromium": true,
"enableZed": true,
"enableCava": true
},
"toggles": {
"communication": {
Expand Down
1 change: 1 addition & 0 deletions completions/caelestia.fish
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ complete -c caelestia -n "$seen screenshot" -s 'f' -l 'freeze' -d 'Freeze while
# Record
complete -c caelestia -n "$seen record" -s 'r' -l 'region' -d 'Capture region'
complete -c caelestia -n "$seen record" -s 's' -l 'sound' -d 'Capture sound'
complete -c caelestia -n "$seen record" -s 'c' -l 'clipboard' -d 'Copy recording path to clipboard'

# Clipboard
complete -c caelestia -n "$seen clipboard" -s 'd' -l 'delete' -d 'Delete from cliboard history'
Expand Down
4 changes: 2 additions & 2 deletions default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ python3.pkgs.buildPythonApplication {
# Use config bin instead of discord + fix todoist + fix app2unit
substituteInPlace src/caelestia/subcommands/toggle.py \
--replace-fail 'discord' ${discordBin} \
--replace-fail 'todoist' 'todoist.desktop'\
--replace-fail '["todoist"]' '["todoist.desktop"]'\
--replace-fail 'app2unit' ${app2unit}/bin/app2unit

# Use config style instead of darkly
substituteInPlace src/caelestia/data/templates/qtct.conf \
substituteInPlace src/caelestia/data/templates/qtengine.json \
--replace-fail 'Darkly' '${qtctStyle}'
'';

Expand Down
20 changes: 10 additions & 10 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

120 changes: 120 additions & 0 deletions src/caelestia/data/schemes/caelestia/default/dark.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
background 0a0f0f
onBackground dce8e6
surface 0a0f0f
surfaceDim 0a0f0f
surfaceBright 242e2d
surfaceContainerLowest 000000
surfaceContainerLow 0e1514
surfaceContainer 131b1a
surfaceContainerHigh 192120
surfaceContainerHighest 1d2827
onSurface dce8e6
surfaceVariant 1d2827
onSurfaceVariant a2adac
outline 6d7876
outlineVariant 3f4a49
inverseSurface f6faf9
inverseOnSurface 515655
shadow 000000
scrim 000000
surfaceTint 9bd0cc
primary 9bd0cc
primaryDim 8ec2bf
onPrimary 0d4845
primaryContainer 255b58
onPrimaryContainer b8ede9
inversePrimary 336764
primaryFixed b7ede9
primaryFixedDim a9deda
onPrimaryFixed 0c4744
onPrimaryFixedVariant 306461
secondary b0ccc9
secondaryDim a3bebc
onSecondary 2c4543
secondaryContainer 27403e
onSecondaryContainer a9c5c2
secondaryFixed cce8e5
secondaryFixedDim bedad7
onSecondaryFixed 2b4442
onSecondaryFixedVariant 47605e
tertiary d5efff
tertiaryDim b6e3fe
onTertiary 2e5c72
tertiaryContainer b6e3fe
onTertiaryContainer 255369
tertiaryFixed b6e3fe
tertiaryFixedDim a8d5ef
onTertiaryFixed 0b4156
onTertiaryFixedVariant 2f5d73
error fa746f
errorDim c54d4a
onError 490006
errorContainer 871f21
onErrorContainer ff9993
primaryPaletteKeyColor 4c807d
secondaryPaletteKeyColor 627c7a
tertiaryPaletteKeyColor 517d94
neutralPaletteKeyColor 737877
neutralVariantPaletteKeyColor 6e7978
errorPaletteKeyColor c84f4c
primary_paletteKeyColor 4c807d
secondary_paletteKeyColor 627c7a
tertiary_paletteKeyColor 517d94
neutral_paletteKeyColor 737877
neutral_variant_paletteKeyColor 6e7978
term0 343434
term1 769e00
term2 56e2c0
term3 81fcce
term4 76b6b3
term5 7aaee9
term6 83d8c9
term7 cddcd3
term8 9aa59e
term9 85b900
term10 41f7d0
term11 cdffe9
term12 a3c8c3
term13 a2c0f7
term14 8bedd9
term15 ffffff
rosewater f1f3e5
flamingo e3e4c5
pink bae2ff
mauve 60cfe8
red 8ab5ff
maroon abbef0
peach a9daac
yellow d3fae8
green 8df1df
teal 9feee7
sky 93eae9
sapphire 70d7db
blue 57cdda
lavender 86d9e7
klink 00969e
klinkSelection 00969e
kvisited 008ca9
kvisitedSelection 008ca9
knegative 838f00
knegativeSelection 838f00
kneutral 34c359
kneutralSelection 34c359
kpositive 00beab
kpositiveSelection 00beab
text dce8e6
subtext1 a2adac
subtext0 6d7876
overlay2 5f6967
overlay1 505958
overlay0 434b4a
surface2 353d3c
surface1 282e2e
surface0 191f1e
base 0a0f0f
mantle 0a0f0f
crust 090e0e
success B5CCBA
onSuccess 213528
successContainer 374B3E
onSuccessContainer D1E9D6
Loading