Compare commits

...

33 commits

Author SHA1 Message Date
9947d603d0
feat(tmux): Catppuccin -> Rose Pine
Some checks are pending
CI / Format Nix files (push) Waiting to run
CI / Test Modules (push) Waiting to run
CI / Validate sources (push) Waiting to run
Release / Publish to Flake registries (push) Blocked by required conditions
Release / Make release (push) Waiting to run
Build & deploy website / Build site (push) Waiting to run
Build & deploy website / Deploy website (push) Blocked by required conditions
2024-10-20 13:12:44 -07:00
2fbe5e2779
feat(sway): Catppuccin -> Rose Pine 2024-10-20 13:04:49 -07:00
1530686ee7
feat(swaylock): Catppuccin -> Rose Pine 2024-10-20 12:59:09 -07:00
6bc895a1f6
feat(starship): Catppuccin -> Rose Pine 2024-10-20 12:50:35 -07:00
4b7d02dd4e
feat(spotify-player): Remove spotify-player 2024-10-20 12:33:14 -07:00
20fd2d7b74
feat(skim): Remove skim 2024-10-20 12:20:28 -07:00
e1d74c0117
feat(rofi): Catppuccin -> Rose Pine 2024-10-20 12:19:42 -07:00
dc1c94c811
feat(rio): Catppuccin -> Rose Pine 2024-10-20 12:06:12 -07:00
5b93568483
feat(polybar): Catppuccin -> Rose Pine 2024-10-20 12:03:00 -07:00
4f738cbbf5
feat(neovim): Catppuccin -> Rose Pine 2024-10-20 11:51:39 -07:00
09370a33d1
feat(mpv): Remove mpv 2024-10-20 11:40:36 -07:00
7e82562b1c
feat(micro): Remove micro 2024-10-20 11:39:15 -07:00
f8c7812f4f
feat(mako): Catppuccin -> Rose Pine 2024-10-20 11:23:59 -07:00
bf5eb17672
feat(newsboat): Remove Newsboat 2024-10-20 11:18:01 -07:00
707617832c
feat(lazygit): Remove lazygit 2024-10-20 11:17:06 -07:00
7a65a5404c
feat(kvantum): Remove Kvantum 2024-10-20 11:16:51 -07:00
b5ecd9cab6
feat(kitty): Catppuccin -> Rose Pine 2024-10-20 11:14:35 -07:00
4c8ed054c1
feat(k9s): Catppuccin -> Rose Pine 2024-10-20 10:37:57 -07:00
6cd932a7fa
feat(imv): Remove imv 2024-10-20 10:20:27 -07:00
71a87bbaf4
feat(hyprlock): Remove Hyprlock 2024-10-20 10:17:51 -07:00
62331e913b
chore(sources): Remove unneeded sources 2024-10-19 23:44:49 -07:00
d4c3806c8f
feat(hyprland): Catppuccin -> Rose Pine 2024-10-19 23:39:46 -07:00
57afe4a40e
feat(helix): Catppuccin -> Rose Pine 2024-10-19 23:02:44 -07:00
09b2d0f6c4
feat(gtk): Catppuccin -> Rose Pine 2024-10-19 22:41:57 -07:00
8330baa99f
feat(home-manager): Update globals to Rose Pine 2024-10-19 22:07:48 -07:00
14e660df08
feat(glamour): Remove Glamour 2024-10-19 22:04:40 -07:00
9e2b868081
feat(gitui): Remove gitui 2024-10-19 22:03:51 -07:00
c202d1e3c8
feat(gh-dash): Remove gh-dash 2024-10-19 22:02:22 -07:00
1c6a265081
feat(fzf): Catppuccin -> Rose Pine 2024-10-19 22:00:01 -07:00
e83dd23931
feat(sources): Add palette JSON file
The easiest way to style FZF is through JSON input but Rose Pine doesn't
provide a JSON source so I had to make my own. Eventually it would be
nice to automate the generation of this file with @rose-pine/build.
2024-10-19 21:50:29 -07:00
04dc34f1db
feat(fuzzel): Remove Fuzzel 2024-10-19 20:49:16 -07:00
2e5fabb018
feat(freetube): Remove FreeTube 2024-10-19 20:48:07 -07:00
127d492d5a
feat(foot): Catppuccin -> Rose Pine 2024-10-19 20:38:50 -07:00
35 changed files with 836 additions and 895 deletions

425
.sources/palette.json Normal file
View file

@ -0,0 +1,425 @@
{
"main": {
"name": "",
"dark": true,
"colors": {
"base": {
"name": "Base",
"hex": "#191724",
"rgb": {
"r": 25,
"g": 23,
"b": 36
}
},
"surface": {
"name": "Surface",
"hex": "#1f1d2e",
"rgb": {
"r": 31,
"g": 29,
"b": 36
}
},
"overlay": {
"name": "Overlay",
"hex": "#26233a",
"rgb": {
"r": 38,
"g": 35,
"b": 58
}
},
"muted": {
"name": "Muted",
"hex": "#6e6a86",
"rgb": {
"r": 110,
"g": 106,
"b": 134
}
},
"subtle": {
"name": "Subtle",
"hex": "#908caa",
"rgb": {
"r": 144,
"g": 140,
"b": 170
}
},
"text": {
"name": "Text",
"hex": "#e0def4",
"rgb": {
"r": 224,
"g": 222,
"b": 244
}
},
"love": {
"name": "Love",
"hex": "#eb6f92",
"rgb": {
"r": 235,
"g": 111,
"b": 146
}
},
"gold": {
"name": "Gold",
"hex": "#f6c177",
"rgb": {
"r": 246,
"g": 193,
"b": 119
}
},
"rose": {
"name": "Rose",
"hex": "#ebbcba",
"rgb": {
"r": 235,
"g": 188,
"b": 186
}
},
"pine": {
"name": "Pine",
"hex": "#31748f",
"rgb": {
"r": 49,
"g": 116,
"b": 143
}
},
"foam": {
"name": "Foam",
"hex": "#9ccfd8",
"rgb": {
"r": 156,
"g": 207,
"b": 216
}
},
"iris": {
"name": "Iris",
"hex": "#c4a7e7",
"rgb": {
"r": 196,
"g": 167,
"b": 231
}
},
"highlight-low": {
"name": "Highlight Low",
"hex": "#21202e",
"rgb": {
"r": 33,
"g": 32,
"b": 46
}
},
"highlight-med": {
"name": "Highlight Med",
"hex": "#403d52",
"rgb": {
"r": 64,
"g": 61,
"b": 82
}
},
"highlight-high": {
"name": "Highlight High",
"hex": "#524f67",
"rgb": {
"r": 82,
"g": 79,
"b": 103
}
}
}
},
"moon": {
"name": "Moon",
"dark": true,
"colors": {
"base": {
"name": "Base",
"hex": "#232136",
"rgb": {
"r": 35,
"g": 33,
"b": 54
}
},
"surface": {
"name": "Surface",
"hex": "#2a273f",
"rgb": {
"r": 42,
"g": 39,
"b": 63
}
},
"overlay": {
"name": "Overlay",
"hex": "#26233a",
"rgb": {
"r": 57,
"g": 53,
"b": 82
}
},
"muted": {
"name": "Muted",
"hex": "#6e6a86",
"rgb": {
"r": 110,
"g": 106,
"b": 134
}
},
"subtle": {
"name": "Subtle",
"hex": "#908caa",
"rgb": {
"r": 144,
"g": 140,
"b": 170
}
},
"text": {
"name": "Text",
"hex": "#e0def4",
"rgb": {
"r": 224,
"g": 222,
"b": 244
}
},
"love": {
"name": "Love",
"hex": "#eb6f92",
"rgb": {
"r": 235,
"g": 111,
"b": 146
}
},
"gold": {
"name": "Gold",
"hex": "#f6c177",
"rgb": {
"r": 246,
"g": 193,
"b": 119
}
},
"rose": {
"name": "Rose",
"hex": "#ea9a97",
"rgb": {
"r": 234,
"g": 154,
"b": 151
}
},
"pine": {
"name": "Pine",
"hex": "#3e8fb0",
"rgb": {
"r": 62,
"g": 143,
"b": 176
}
},
"foam": {
"name": "Foam",
"hex": "#9ccfd8",
"rgb": {
"r": 156,
"g": 207,
"b": 216
}
},
"iris": {
"name": "Iris",
"hex": "#c4a7e7",
"rgb": {
"r": 196,
"g": 167,
"b": 231
}
},
"highlight-low": {
"name": "Highlight Low",
"hex": "#2a283e",
"rgb": {
"r": 42,
"g": 40,
"b": 62
}
},
"highlight-med": {
"name": "Highlight Med",
"hex": "#44415a",
"rgb": {
"r": 58,
"g": 65,
"b": 90
}
},
"highlight-high": {
"name": "Highlight High",
"hex": "#56526e",
"rgb": {
"r": 86,
"g": 82,
"b": 110
}
}
}
},
"dawn": {
"name": "Dawn",
"dark": false,
"colors": {
"base": {
"name": "Base",
"hex": "#faf4ed",
"rgb": {
"r": 250,
"g": 244,
"b": 237
}
},
"surface": {
"name": "Surface",
"hex": "#fffaf3",
"rgb": {
"r": 255,
"g": 250,
"b": 243
}
},
"overlay": {
"name": "Overlay",
"hex": "#f2e9e1",
"rgb": {
"r": 242,
"g": 233,
"b": 222
}
},
"muted": {
"name": "Muted",
"hex": "#9893a5",
"rgb": {
"r": 152,
"g": 147,
"b": 165
}
},
"subtle": {
"name": "Subtle",
"hex": "#797593",
"rgb": {
"r": 121,
"g": 117,
"b": 147
}
},
"text": {
"name": "Text",
"hex": "#575279",
"rgb": {
"r": 87,
"g": 82,
"b": 121
}
},
"love": {
"name": "Love",
"hex": "#b4637a",
"rgb": {
"r": 180,
"g": 99,
"b": 122
}
},
"gold": {
"name": "Gold",
"hex": "#ea9d34",
"rgb": {
"r": 234,
"g": 157,
"b": 52
}
},
"rose": {
"name": "Rose",
"hex": "#d7827e",
"rgb": {
"r": 215,
"g": 130,
"b": 126
}
},
"pine": {
"name": "Pine",
"hex": "#286983",
"rgb": {
"r": 40,
"g": 105,
"b": 131
}
},
"foam": {
"name": "Foam",
"hex": "#56949f",
"rgb": {
"r": 86,
"g": 148,
"b": 159
}
},
"iris": {
"name": "Iris",
"hex": "#907aa9",
"rgb": {
"r": 144,
"g": 122,
"b": 169
}
},
"highlight-low": {
"name": "Highlight Low",
"hex": "#f4ede8",
"rgb": {
"r": 244,
"g": 237,
"b": 232
}
},
"highlight-med": {
"name": "Highlight Med",
"hex": "#dfdad9",
"rgb": {
"r": 223,
"g": 218,
"b": 217
}
},
"highlight-high": {
"name": "Highlight High",
"hex": "#cecacd",
"rgb": {
"r": 206,
"g": 202,
"b": 205
}
}
}
}
}

View file

@ -24,18 +24,6 @@
"url": "https://github.com/catppuccin/bat/archive/d3feec47b16a8e99eabb34cdfbaa115541d374fc.tar.gz",
"hash": "1g73x0p8pbzb8d1g1x1fwhwf05sj3nzhbhb65811752p5178fh5k"
},
"bottom": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "bottom"
},
"branch": "main",
"revision": "ed09bd5a5dd78d83acdc8ff5fdec40a6340ed1c2",
"url": "https://github.com/catppuccin/bottom/archive/ed09bd5a5dd78d83acdc8ff5fdec40a6340ed1c2.tar.gz",
"hash": "0x5mcddn1ia8d9dkg54kxmmpgm17c7gxmshwvc1zlmlqizq3fbjn"
},
"btop": {
"type": "Git",
"repository": {
@ -60,18 +48,6 @@
"url": "https://github.com/rose-pine/cava/archive/f9a915563d281d4a58e6f9fe701bdb769f1bbf26.tar.gz",
"hash": "06qzrlbj2kzrbrq6ag9kha0yx3yvixsz79p7x4ib2dxl9rkxk7gf"
},
"delta": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "delta"
},
"branch": "main",
"revision": "5c2c59991b950ce230f48cb3f2546e37ca65597b",
"url": "https://github.com/catppuccin/delta/archive/5c2c59991b950ce230f48cb3f2546e37ca65597b.tar.gz",
"hash": "0fpv7vkbc70h4bds77amxqidwacgzf55mrqj615hnwk7l13v366q"
},
"dunst": {
"type": "Git",
"repository": {
@ -112,61 +88,13 @@
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"owner": "EuCaue",
"repo": "foot"
},
"branch": "main",
"revision": "17e2bdc8a8d854e8d390919579f87ab7d5f86e38",
"url": "https://github.com/catppuccin/foot/archive/17e2bdc8a8d854e8d390919579f87ab7d5f86e38.tar.gz",
"hash": "145icc622jf5j9sb4d5phclh47s6n6zi9c906p3n935q2yycg7rg"
},
"fuzzel": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "fuzzel"
},
"branch": "main",
"revision": "125dc68ba79ddfe71e59412257698418c4f05218",
"url": "https://github.com/catppuccin/fuzzel/archive/125dc68ba79ddfe71e59412257698418c4f05218.tar.gz",
"hash": "12vdwfm17f40c0pv8i36kfmpsx5jnxbdjyz0jajcfx419dl3mpms"
},
"gh-dash": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "gh-dash"
},
"branch": "main",
"revision": "1c53a7ce647114c25d6e7459907c567531593b71",
"url": "https://github.com/catppuccin/gh-dash/archive/1c53a7ce647114c25d6e7459907c567531593b71.tar.gz",
"hash": "11a963hlk27p53p2rka6r10ay10slakfvqcn19qlf9kxf6wjmw5h"
},
"gitui": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "gitui"
},
"branch": "main",
"revision": "c7661f043cb6773a1fc96c336738c6399de3e617",
"url": "https://github.com/catppuccin/gitui/archive/c7661f043cb6773a1fc96c336738c6399de3e617.tar.gz",
"hash": "0ja8wwm3zvnaf16yfwnm86xpql6cg6sw15ylca2c0hd16h86j709"
},
"glamour": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "glamour"
},
"branch": "main",
"revision": "f410083af1e9b2418bcd73dbbbc987461d4aa292",
"url": "https://github.com/catppuccin/glamour/archive/f410083af1e9b2418bcd73dbbbc987461d4aa292.tar.gz",
"hash": "0h7az265yx20zhsdrjjy7vqaq7yhjwgq8vpqa2w89i4wsbbr3g3b"
"revision": "a4504926bf7aa748479adf4103d721aec7b735c5",
"url": "https://github.com/EuCaue/foot/archive/a4504926bf7aa748479adf4103d721aec7b735c5.tar.gz",
"hash": "1a4854csxs4x5hjmz2k5zr68qmxi117bgq90yd62kz6v4lbn8jqa"
},
"grub": {
"type": "Git",
@ -184,25 +112,37 @@
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"owner": "rose-pine",
"repo": "helix"
},
"branch": "main",
"revision": "7e468da5dbdd54c7504519499f82c4862af472fd",
"url": "https://github.com/catppuccin/helix/archive/7e468da5dbdd54c7504519499f82c4862af472fd.tar.gz",
"hash": "0xwdvbjlhlkhcj7mjc954gfkm6a978a0xn64i7yy674pzs8x90xq"
"revision": "15e1ff4ff7c59bf8d75d648d652112acb1efc412",
"url": "https://github.com/rose-pine/helix/archive/15e1ff4ff7c59bf8d75d648d652112acb1efc412.tar.gz",
"hash": "1gmvjks39spz1lmv1b1f1jgpfjhsg603gc2dxs5hzj93vmlbl7ph"
},
"hyprland": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"owner": "rose-pine",
"repo": "hyprland"
},
"branch": "main",
"revision": "c388ac55563ddeea0afe9df79d4bfff0096b146b",
"url": "https://github.com/catppuccin/hyprland/archive/c388ac55563ddeea0afe9df79d4bfff0096b146b.tar.gz",
"hash": "0cxzxfgbqnkdnvn8nch4z4s7izzlm2jgciq1s8cjmypf8g7vy9n5"
"revision": "6898fe967c59f9bec614a9a58993e0cb8090d052",
"url": "https://github.com/rose-pine/hyprland/archive/6898fe967c59f9bec614a9a58993e0cb8090d052.tar.gz",
"hash": "1l9xrrympg8ikvmq8mazb9x2byci4l230hqgyagvl3id8xkiicm1"
},
"i3": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "rose-pine",
"repo": "i3"
},
"branch": "main",
"revision": "d4f374a5a582f6594e09ff08e85cb31f1be3b9e3",
"url": "https://github.com/rose-pine/i3/archive/d4f374a5a582f6594e09ff08e85cb31f1be3b9e3.tar.gz",
"hash": "1r1ma3whdks87c2vs6cj3kq2kqyhahqvsxbdfgm132fpwxgpbk77"
},
"imv": {
"type": "Git",
@ -228,65 +168,41 @@
"url": "https://github.com/catppuccin/k9s/archive/fdbec82284744a1fc2eb3e2d24cb92ef87ffb8b4.tar.gz",
"hash": "0cs7j1z0xq66w0700qcrc6ynzmw3bdr422p1rnkl7hxq8g4a67zn"
},
"lazygit": {
"k9s-theme": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "lazygit"
"owner": "sasoria",
"repo": "k9s-theme"
},
"branch": "main",
"revision": "772b45481933de5b912cd6176ea8d827217efd1b",
"url": "https://github.com/catppuccin/lazygit/archive/772b45481933de5b912cd6176ea8d827217efd1b.tar.gz",
"hash": "01airvhdh5mnsr945a6ij8rz5ks8cn246q3an5k8k4b9zari0r6c"
"revision": "4ed8c473f16642b894bb501f1cd979fb670cce2d",
"url": "https://github.com/sasoria/k9s-theme/archive/4ed8c473f16642b894bb501f1cd979fb670cce2d.tar.gz",
"hash": "17lrv30wiql6i0ll33wng9ziizlzg9kx0wa960i900crfcq94168"
},
"kitty": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "rose-pine",
"repo": "kitty"
},
"branch": "main",
"revision": "788bf1bf1a688dff9bbacbd9e516d83ac7dbd216",
"url": "https://github.com/rose-pine/kitty/archive/788bf1bf1a688dff9bbacbd9e516d83ac7dbd216.tar.gz",
"hash": "0a5r70q7g29b3fwz3i6rlj8jkyw5rc1pv92icndyc6lbb291bhq1"
},
"mako": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"owner": "rose-pine",
"repo": "mako"
},
"branch": "main",
"revision": "92844f144e72f2dc8727879ec141ffdacf3ff6a1",
"url": "https://github.com/catppuccin/mako/archive/92844f144e72f2dc8727879ec141ffdacf3ff6a1.tar.gz",
"hash": "0nz5x66bv0nhmgh2slw647j69x7pqcw0cyclkpv3bq6c5bw9j24f"
},
"micro": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "micro"
},
"branch": "main",
"revision": "2802b32308e5b1a827689c095f11ae604bbc85e6",
"url": "https://github.com/catppuccin/micro/archive/2802b32308e5b1a827689c095f11ae604bbc85e6.tar.gz",
"hash": "1d28rhywzwhdg3qzjmgq4xjga7lg19hm4zkcfqjaf7c25pczg5zq"
},
"mpv": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "mpv"
},
"branch": "main",
"revision": "7b93fb0febd0490a8ccfe3077ab7741a9b4ef44a",
"url": "https://github.com/catppuccin/mpv/archive/7b93fb0febd0490a8ccfe3077ab7741a9b4ef44a.tar.gz",
"hash": "1wzahqxqrblalkcxi4ll05vi5rhmsm3z4mk7d96rfka2c38wc5wj"
},
"newsboat": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "newsboat"
},
"branch": "main",
"revision": "be3d0ee1ba0fc26baf7a47c2aa7032b7541deb0f",
"url": "https://github.com/catppuccin/newsboat/archive/be3d0ee1ba0fc26baf7a47c2aa7032b7541deb0f.tar.gz",
"hash": "04ib4lvma5959n943f7myzbc2blmb8n2dd7bkb0xgl2rnpfx2fvk"
"revision": "07bc71ed12be3ce7d0b728eee58c5e183f78f40e",
"url": "https://github.com/rose-pine/mako/archive/07bc71ed12be3ce7d0b728eee58c5e183f78f40e.tar.gz",
"hash": "0xxkj2x4nz6qkdjdfr5fddb24ab51519xnai63x62zlij0fzgdq0"
},
"nvim": {
"type": "Git",
@ -328,13 +244,13 @@
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"owner": "rose-pine",
"repo": "polybar"
},
"branch": "main",
"revision": "20054f39d3b77bd1afc765981a42c3467bf91204",
"url": "https://github.com/catppuccin/polybar/archive/20054f39d3b77bd1afc765981a42c3467bf91204.tar.gz",
"hash": "130szcc72vnsl0872qpiiqad1qcspmasana4p2g9v3jxgn03xi4c"
"revision": "2c94fbc4997915c1c877cecc9aaf5b63797f74a4",
"url": "https://github.com/rose-pine/polybar/archive/2c94fbc4997915c1c877cecc9aaf5b63797f74a4.tar.gz",
"hash": "10b09fypcp8bj92wwkc95w4nwk4rxh0an3v2hdp551f8lc7qz75j"
},
"rio": {
"type": "Git",
@ -348,17 +264,29 @@
"url": "https://github.com/catppuccin/rio/archive/6d93b3385a0f2ae586edc30aa64601d40ea382d5.tar.gz",
"hash": "171pb62q1rzpr802yb93sj30vq3b3kiqlac8nva08rgjb94z5ipi"
},
"rio-terminal": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "rose-pine",
"repo": "rio-terminal"
},
"branch": "main",
"revision": "6c0422dc266bc4c85849c2cae9727a3f105c9285",
"url": "https://github.com/rose-pine/rio-terminal/archive/6c0422dc266bc4c85849c2cae9727a3f105c9285.tar.gz",
"hash": "0970n6gba1cwa5wcvmxvfb7bx3pdw2rqysxzcxqyzsvj7ykxgmsr"
},
"rofi": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"owner": "rose-pine",
"repo": "rofi"
},
"branch": "main",
"revision": "b636a00fd40a7899a8206195464ae8b7f0450a6d",
"url": "https://github.com/catppuccin/rofi/archive/b636a00fd40a7899a8206195464ae8b7f0450a6d.tar.gz",
"hash": "1a1sr451nsfii70j2f5qf8wq4jns0d4477a2kzh3993xdnx1j3yc"
"revision": "414bb2538713a874dbb357f19212c96a011e1ac8",
"url": "https://github.com/rose-pine/rofi/archive/414bb2538713a874dbb357f19212c96a011e1ac8.tar.gz",
"hash": "19kif3nh0lr934blam971fm55pr1pdbn9b3lnrpc0yq2vpgf8x9y"
},
"rose-pine-dunst": {
"type": "Git",
@ -372,41 +300,29 @@
"url": "https://github.com/d2718nis/rose-pine-dunst/archive/496499eaed38a07ce4f79ec91baaf6e1e4c28bc5.tar.gz",
"hash": "0x7cqbcn7zygab9xbmbarz06wxkj3wxxffwmka33ljhm8gk3x0ay"
},
"skim": {
"rose-pine-swaylock": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "skim"
"owner": "d2718nis",
"repo": "rose-pine-swaylock"
},
"branch": "main",
"revision": "d39304b5f84721788b19bc40aebcfd7720208d8a",
"url": "https://github.com/catppuccin/skim/archive/d39304b5f84721788b19bc40aebcfd7720208d8a.tar.gz",
"hash": "1b6cd1wfkprrn7imgf1w1f9a6iqy3bql2ansy7l0k44ps1gwrvxq"
},
"spotify-player": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "spotify-player"
},
"branch": "main",
"revision": "34b3d23806770185b72466d777853c73454b85a6",
"url": "https://github.com/catppuccin/spotify-player/archive/34b3d23806770185b72466d777853c73454b85a6.tar.gz",
"hash": "15cz4x432681zwik8dwmjljj628v540c1fz1m4v6nvvw63bdzsbr"
"revision": "8a2aefbc9996941535bb10f0df5357687c43c06a",
"url": "https://github.com/d2718nis/rose-pine-swaylock/archive/8a2aefbc9996941535bb10f0df5357687c43c06a.tar.gz",
"hash": "15inlf8j6vn5k9d71lzmxsrqn55qha1idmpxbk4v1ji0sywrw1f6"
},
"starship": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"owner": "rose-pine",
"repo": "starship"
},
"branch": "main",
"revision": "3c4749512e7d552adf48e75e5182a271392ab176",
"url": "https://github.com/catppuccin/starship/archive/3c4749512e7d552adf48e75e5182a271392ab176.tar.gz",
"hash": "0w1i9zjngx63khwrdcmw0zzpvp860aznq9dmdh07s1kkcxvydwdp"
"revision": "ed68857c08cf49dcbf2575c5d4f491155750d011",
"url": "https://github.com/rose-pine/starship/archive/ed68857c08cf49dcbf2575c5d4f491155750d011.tar.gz",
"hash": "0ywwyy3j5n3qj39d855sj0iy4dm55j83cmpjgnx1hqx0vp5zynn8"
},
"sway": {
"type": "Git",
@ -444,18 +360,6 @@
"url": "https://github.com/rose-pine/tm-theme/archive/c4235f9a65fd180ac0f5e4396e3a86e21a0884ec.tar.gz",
"hash": "19k0r1mrhqhlf1xfzvd1q8ihpic86f84kbmgy0m314w3w9cbqf4f"
},
"tmux": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "tmux"
},
"branch": "main",
"revision": "1612a23174a6771ac466312eb156f83b8b89d907",
"url": "https://github.com/catppuccin/tmux/archive/1612a23174a6771ac466312eb156f83b8b89d907.tar.gz",
"hash": "0mrj9kasry1csfh24gpdh713ha3ia2vfljjd81kw40rg1nn58g4d"
},
"tofi": {
"type": "Git",
"repository": {
@ -518,4 +422,5 @@
}
},
"version": 3
}
}

View file

@ -8,32 +8,18 @@
./fcitx5.nix
./fish.nix
./foot.nix
./freetube.nix
./fuzzel.nix
./fzf.nix
./gh-dash.nix
./gitui.nix
./glamour.nix
./globals.nix
./gtk.nix
./helix.nix
./hyprland.nix
./hyprlock.nix
./imv.nix
./k9s.nix
./kitty.nix
./kvantum.nix
./lazygit.nix
./newsboat.nix
./mako.nix
./micro.nix
./mpv.nix
./neovim.nix
./polybar.nix
./rio.nix
./rofi.nix
./skim.nix
./spotify-player.nix
./starship.nix
./swaylock.nix
./sway.nix

View file

@ -1,14 +1,21 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.foot.catppuccin;
enable = cfg.enable && config.programs.foot.enable;
in
{
options.programs.foot.catppuccin = lib.ctp.mkCatppuccinOpt { name = "foot"; };
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.programs.foot.rose-pine;
enable = cfg.enable && config.programs.foot.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.programs.foot.rose-pine = lib.rp.mkRosePineOpt {name = "foot";};
config.programs.foot = lib.mkIf enable {
settings.main.include = sources.foot + "/themes/catppuccin-${cfg.flavor}.ini";
settings.main.include = sources.foot + "/${themeName}.ini";
};
}

View file

@ -1,25 +0,0 @@
{ config, lib, ... }:
let
inherit (config.programs.freetube.settings) baseTheme;
inherit (lib.ctp) mkAccentOpt mkUpper;
cfg = config.programs.freetube.catppuccin;
enable = cfg.enable && config.programs.freetube.enable;
in
{
options.programs.freetube.catppuccin = lib.ctp.mkCatppuccinOpt { name = "freetube"; } // {
accent = mkAccentOpt "FreeTube";
# FreeTube supports two accent colors
secondaryAccent = mkAccentOpt "FreeTube" // {
# Have the secondary accent default to FreeTube's main accent rather than the global Catppuccin accent
# This assumes most users would prefer both accent colors to be the same when only overriding the main one
default = cfg.accent;
};
};
config.programs.freetube.settings = lib.mkIf enable {
# NOTE: For some reason, baseTheme does not capitalize first letter, but the other settings do
baseTheme = "catppuccin${mkUpper cfg.flavor}";
mainColor = mkUpper "${baseTheme}${mkUpper cfg.accent}";
secColor = mkUpper "${baseTheme}${mkUpper cfg.secondaryAccent}";
};
}

View file

@ -1,14 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.fuzzel.catppuccin;
in
{
options.programs.fuzzel.catppuccin = lib.ctp.mkCatppuccinOpt { name = "fuzzel"; } // {
accent = lib.ctp.mkAccentOpt "fuzzel";
};
config = lib.mkIf cfg.enable {
programs.fuzzel.settings.main.include = sources.fuzzel + "/themes/${cfg.flavor}/${cfg.accent}.ini";
};
}

View file

@ -1,34 +1,36 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.fzf.catppuccin;
enable = cfg.enable && config.programs.fzf.enable;
palette = (lib.importJSON "${sources.palette}/palette.json").${cfg.flavor}.colors;
in
{
options.programs.fzf.catppuccin = lib.ctp.mkCatppuccinOpt { name = "fzf"; } // {
accent = lib.ctp.mkAccentOpt "fzf";
};
config,
lib,
...
}: let
cfg = config.programs.fzf.rose-pine;
enable = cfg.enable && config.programs.fzf.enable;
palette = (lib.importJSON "../../.sources/palette.json").${cfg.flavor}.colors;
in {
options.programs.fzf.rose-pine =
lib.rp.mkRosePineOpt {name = "fzf";};
config.programs.fzf.colors =
lib.mkIf enable
# Manually populate with colors from catppuccin/fzf
# The ordering is meant to match the order of catppuccin/fzf to make comparison easier
(
lib.attrsets.mapAttrs (_: color: palette.${color}.hex) {
"bg+" = "surface0";
bg = "base";
spinner = "rosewater";
hl = cfg.accent;
fg = "text";
header = cfg.accent;
info = cfg.accent;
pointer = cfg.accent;
marker = cfg.accent;
"fg+" = "text";
prompt = cfg.accent;
"hl+" = cfg.accent;
}
);
# Manually populate with colors from rose-pine/fzf
# The ordering is meant to match the order of rose-pine/fzf to make
# comparison easier
(
lib.attrsets.mapAttrs (_: color: palette.${color}.hex) {
fg = "subtle";
bg = "base";
hl = "rose";
"fg+" = "text";
"bg+" = "overlay";
"hl+" = "rose";
border = "highlight-med";
header = "pine";
gutter = "base";
spinner = "gold";
info = "foam";
pointer = "iris";
marker = "love";
prompt = "subtle";
}
);
}

View file

@ -1,14 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.gh-dash.catppuccin;
enable = cfg.enable && config.programs.gh-dash.enable;
theme = "${sources.gh-dash}/themes/${cfg.flavor}/catppuccin-${cfg.flavor}-${cfg.accent}.yml";
in
{
options.programs.gh-dash.catppuccin = lib.ctp.mkCatppuccinOpt { name = "gh-dash"; } // {
accent = lib.ctp.mkAccentOpt "gh-dash";
};
config.programs.gh-dash.settings = lib.mkIf enable (lib.ctp.fromYaml theme);
}

View file

@ -1,17 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.gitui.catppuccin;
enable = cfg.enable && config.programs.gitui.enable;
in
{
options.programs.gitui.catppuccin = lib.ctp.mkCatppuccinOpt { name = "gitui"; };
config = lib.mkIf enable {
programs.gitui.theme = builtins.path {
name = "${cfg.flavor}.ron";
path = "${sources.gitui}/themes/catppuccin-${cfg.flavor}.ron";
};
};
}

View file

@ -1,15 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.glamour.catppuccin;
inherit (cfg) enable;
in
{
options.programs.glamour.catppuccin = lib.ctp.mkCatppuccinOpt { name = "glamour"; };
config = {
home.sessionVariables = lib.mkIf enable {
GLAMOUR_STYLE = "${sources.glamour}/themes/catppuccin-${cfg.flavor}.json";
};
};
}

View file

@ -1,28 +1,26 @@
{ lib, ... }:
{
{lib, ...}: {
config = {
assertions = [ (lib.ctp.assertMinimumVersion "24.05") ];
assertions = [(lib.rp.assertMinimumVersion "24.05")];
};
options.catppuccin = {
enable = lib.mkEnableOption "Catppuccin globally";
options.rose-pine = {
enable = lib.mkEnableOption "Rose Pine globally";
flavor = lib.mkOption {
type = lib.ctp.types.flavorOption;
default = "mocha";
description = "Global Catppuccin flavor";
type = lib.rp.types.flavorOption;
default = "main";
description = "Global Rose Pine flavor";
};
accent = lib.mkOption {
type = lib.ctp.types.accentOption;
default = "mauve";
description = "Global Catppuccin accent";
type = lib.rp.types.accentOption;
default = "love";
description = "Global Rose Pine accent";
};
sources =
let
defaultSources = import ../../.sources;
in
sources = let
defaultSources = import ../../.sources;
in
lib.mkOption {
type = lib.types.lazyAttrsOf lib.types.raw;
default = defaultSources;

View file

@ -3,182 +3,53 @@
pkgs,
lib,
...
}:
let
inherit (lib)
concatStringsSep
ctp
}: let
inherit
(lib)
rp
mkIf
mkEnableOption
mkMerge
mkOption
mkRenamedOptionModule
types
;
cfg = config.gtk.catppuccin;
cfg = config.gtk.rose-pine;
enable = cfg.enable && config.gtk.enable;
in
{
options.gtk.catppuccin =
ctp.mkCatppuccinOpt {
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.gtk.rose-pine =
rp.mkRosePineOpt {
name = "gtk";
enableDefault = false;
}
// {
accent = ctp.mkAccentOpt "gtk";
size = mkOption {
type = types.enum [
"standard"
"compact"
];
default = "standard";
description = "Catppuccin size variant for gtk";
icon = rp.mkRosePineOpt {
name = "GTK icon theme";
# NOTE: we exclude this from the global `catppuccin.enable` as there
# is no `enable` option in the upstream module to guard it.
enableDefault = false;
};
tweaks = mkOption {
type = types.listOf (
types.enum [
"black"
"rimless"
"normal"
"float"
]
);
default = [ ];
description = "Catppuccin tweaks for gtk";
};
gnomeShellTheme = mkEnableOption "Catppuccin gtk theme for GNOME Shell";
icon =
ctp.mkCatppuccinOpt {
name = "GTK modified Papirus icon theme";
# NOTE: we exclude this from the global `catppuccin.enable` as there is no
# `enable` option in the upstream module to guard it
enableDefault = false;
}
// {
accent = ctp.mkAccentOpt "GTK modified Papirus icon theme";
};
};
imports = [
(mkRenamedOptionModule
[
"gtk"
"catppuccin"
"cursor"
"enable"
]
[
"catppuccin"
"pointerCursor"
"enable"
]
)
(mkRenamedOptionModule
[
"gtk"
"catppuccin"
"cursor"
"flavor"
]
[
"catppuccin"
"pointerCursor"
"flavor"
]
)
(mkRenamedOptionModule
[
"gtk"
"catppuccin"
"cursor"
"accent"
]
[
"catppuccin"
"pointerCursor"
"accent"
]
)
];
config = mkMerge [
(mkIf (enable || cfg.gnomeShellTheme) {
warnings = [
''
`gtk.catppuccin.enable` and `gtk.catppuccin.gnomeShellTheme` are deprecated and will be removed in a future release.
The upstream port has been archived and support will no longer be provided.
Please see https://github.com/catppuccin/gtk/issues/262
''
];
})
(mkIf enable {
gtk.theme =
let
gtkTweaks = "+" + concatStringsSep "," cfg.tweaks;
in
{
name =
"catppuccin-${cfg.flavor}-${cfg.accent}-${cfg.size}"
+ lib.optionalString (cfg.tweaks != [ ]) gtkTweaks;
package = pkgs.catppuccin-gtk.override {
inherit (cfg) size tweaks;
accents = [ cfg.accent ];
variant = cfg.flavor;
};
};
gtk.theme = {
name = "${themeName}-gtk";
package = pkgs.rose-pine-gtk-theme;
};
xdg.configFile =
let
gtk4Dir = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0";
in
{
"gtk-4.0/assets".source = "${gtk4Dir}/assets";
"gtk-4.0/gtk.css".source = "${gtk4Dir}/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${gtk4Dir}/gtk-dark.css";
};
xdg.configFile = let
gtk4Dir = "${config.gtk.theme.package}/share/themes/${themeName}/gtk-4.0";
in {
"gtk-4.0/gtk.css".source = "${gtk4Dir}/gtk.css";
};
})
(mkIf cfg.icon.enable {
gtk.iconTheme =
let
# use the light icon theme for latte
polarity = if cfg.icon.flavor == "latte" then "Light" else "Dark";
in
{
name = "Papirus-${polarity}";
package = pkgs.catppuccin-papirus-folders.override { inherit (cfg.icon) accent flavor; };
};
})
(mkIf cfg.gnomeShellTheme {
assertions = [
{
assertion = enable;
message = "`gtk.enable` and `gtk.catppuccin.enable` must be `true` to use the GNOME shell theme";
}
];
home.packages = [ pkgs.gnomeExtensions.user-themes ];
dconf.settings = {
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [ "user-theme@gnome-shell-extensions.gcampax.github.com" ];
};
"org/gnome/shell/extensions/user-theme" = {
inherit (config.gtk.theme) name;
};
"org/gnome/desktop/interface" = {
color-scheme = if cfg.flavor == "latte" then "default" else "prefer-dark";
};
gtk.iconTheme = {
name = "${themeName}-icons";
package = pkgs.rose-pine-icon-theme;
};
})
];

View file

@ -1,26 +1,28 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.helix.catppuccin;
enable = cfg.enable && config.programs.helix.enable;
in
{
options.programs.helix.catppuccin = lib.ctp.mkCatppuccinOpt { name = "helix"; } // {
useItalics = lib.mkEnableOption "Italics in Catppuccin theme for Helix";
};
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.programs.helix.rose-pine;
enable = cfg.enable && config.programs.helix.enable;
themeName =
if (cfg.flavor == "main")
then "rose_pine"
else "rose_pine_${cfg.flavor}";
in {
options.programs.helix.rose-pine = lib.rp.mkRosePineOpt {name = "helix";};
config = lib.mkIf enable {
programs.helix =
let
subdir = if cfg.useItalics then "default" else "no_italics";
in
{
settings = {
theme = "catppuccin-${cfg.flavor}";
editor.color-modes = lib.mkDefault true;
};
themes."catppuccin-${cfg.flavor}" = lib.importTOML "${sources.helix}/themes/${subdir}/catppuccin_${cfg.flavor}.toml";
programs.helix = {
settings = {
theme = themeName;
editor.color-modes = lib.mkDefault true;
};
themes."${themeName}" = lib.importTOML "${sources.helix}/${themeName}.toml";
};
};
}

View file

@ -1,29 +1,31 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources pointerCursor;
cfg = config.wayland.windowManager.hyprland.catppuccin;
enable = cfg.enable && config.wayland.windowManager.hyprland.enable;
in
{
options.wayland.windowManager.hyprland.catppuccin =
lib.ctp.mkCatppuccinOpt { name = "hyprland"; }
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.wayland.windowManager.hyprland.rose-pine;
enable = cfg.enable && config.wayland.windowManager.hyprland.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.wayland.windowManager.hyprland.rose-pine =
lib.rp.mkRosePineOpt {name = "hyprland";}
// {
accent = lib.ctp.mkAccentOpt "hyprland";
accent = lib.rp.mkAccentOpt "hyprland";
};
config = lib.mkIf enable {
home.sessionVariables = lib.mkIf pointerCursor.enable {
HYPRCURSOR_SIZE = config.home.pointerCursor.size;
HYPRCURSOR_THEME = "catppuccin-${pointerCursor.flavor}-${pointerCursor.accent}-cursors";
};
wayland.windowManager.hyprland.settings = {
source = [
"${sources.hyprland}/themes/${cfg.flavor}.conf"
# Define accents in file to ensure they appear before user vars
"${sources.hyprland}/${themeName}.conf"
# Define accent in file to ensure it appears before user vars
(builtins.toFile "hyprland-${cfg.accent}-accent.conf" ''
$accent = ''$${cfg.accent}
$accentAlpha = ''$${cfg.accent}Alpha
'')
];
};

View file

@ -1,24 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.hyprlock.catppuccin;
enable = cfg.enable && config.programs.hyprlock.enable;
in
{
options.programs.hyprlock.catppuccin = lib.ctp.mkCatppuccinOpt { name = "hyprlock"; } // {
accent = lib.ctp.mkAccentOpt "hyprlock";
};
config = lib.mkIf enable {
programs.hyprlock.settings = {
source = [
"${sources.hyprland}/themes/${cfg.flavor}.conf"
# Define accents in file to ensure they appear before user vars
(builtins.toFile "hyprland-${cfg.accent}-accent.conf" ''
$accent = ''$${cfg.accent}
$accentAlpha = ''$${cfg.accent}Alpha
'')
];
};
};
}

View file

@ -1,13 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.imv.catppuccin;
enable = cfg.enable && config.programs.imv.enable;
in
{
options.programs.imv.catppuccin = lib.ctp.mkCatppuccinOpt { name = "imv"; };
config.programs.imv.settings = lib.mkIf enable (
lib.ctp.fromINI (sources.imv + "/themes/${cfg.flavor}.config")
);
}

View file

@ -3,34 +3,34 @@
lib,
pkgs,
...
}:
let
inherit (config.catppuccin) sources;
}: let
inherit (config.rose-pine) sources;
cfg = config.programs.k9s.catppuccin;
cfg = config.programs.k9s.rose-pine;
enable = cfg.enable && config.programs.k9s.enable;
# NOTE: On MacOS specifically, k9s expects its configuration to be in
# `~/Library/Application Support` when not using XDG
# `~/Library/Application Support` when not using XDG.
enableXdgConfig = !pkgs.stdenv.hostPlatform.isDarwin || config.xdg.enable;
themeName = "catppuccin-${cfg.flavor}" + lib.optionalString cfg.transparent "-transparent";
themeFile = "${themeName}.yaml";
themeFile = "rose-pine.yaml";
themePath = "k9s/skins/${themeFile}";
theme = sources.k9s + "/dist/${themeFile}";
in
{
options.programs.k9s.catppuccin = lib.ctp.mkCatppuccinOpt { name = "k9s"; } // {
transparent = lib.mkEnableOption "transparent version of flavor";
};
theme = sources.k9s + "/skin.yml";
in {
options.programs.k9s.rose-pine = lib.rp.mkRosePineOpt {name = "k9s";};
config = lib.mkIf enable (
lib.mkMerge [
(lib.mkIf (!enableXdgConfig) {
home.file."Library/Application Support/${themePath}".source = theme;
})
(lib.mkIf enableXdgConfig { xdg.configFile.${themePath}.source = theme; })
{ programs.k9s.settings.k9s.ui.skin = themeName; }
(lib.mkIf enableXdgConfig {
xdg.configFile.${themePath}.source = theme;
})
{
programs.k9s.settings.k9s.ui.skin = "rose-pine";
}
]
);
}

View file

@ -1,15 +1,27 @@
{ config, lib, ... }:
let
inherit (lib) ctp;
cfg = config.programs.kitty.catppuccin;
{
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.programs.kitty.rose-pine;
enable = cfg.enable && config.programs.kitty.enable;
# TODO: Remove after 24.11 is stable
# https://github.com/nix-community/home-manager/pull/5750
attrName = if (lib.versionAtLeast ctp.getModuleRelease "24.11") then "themeFile" else "theme";
in
{
options.programs.kitty.catppuccin = ctp.mkCatppuccinOpt { name = "kitty"; };
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
themePath = "themes/${themeName}.conf";
theme = sources.kitty + "/dist/${themeName}.conf";
in {
options.programs.kitty.rose-pine = lib.rp.mkRosePineOpt {name = "kitty";};
config = lib.mkIf enable { programs.kitty.${attrName} = "Catppuccin-${ctp.mkUpper cfg.flavor}"; };
config = lib.mkIf enable {
xdg.configFile."kitty/${themePath}".source = theme;
programs.kitty.settings = {
include = themePath;
};
};
}

View file

@ -1,58 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.qt.style.catppuccin;
enable = cfg.enable && config.qt.enable;
flavorCapitalized = lib.ctp.mkUpper cfg.flavor;
accentCapitalized = lib.ctp.mkUpper cfg.accent;
theme = pkgs.catppuccin-kvantum.override {
accent = accentCapitalized;
variant = flavorCapitalized;
};
themeName = "Catppuccin-${flavorCapitalized}-${accentCapitalized}";
in
{
options.qt.style.catppuccin = lib.ctp.mkCatppuccinOpt { name = "Kvantum"; } // {
accent = lib.ctp.mkAccentOpt "Kvantum";
apply = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Applies the theme by overwriting `$XDG_CONFIG_HOME/Kvantum/kvantum.kvconfig`.
If this is disabled, you must manually set the theme (e.g. by using `kvantummanager`).
'';
};
};
config = lib.mkIf enable {
assertions = [
{
assertion = lib.elem config.qt.style.name [
"kvantum"
"Kvantum"
];
message = ''`qt.style.name` must be `"kvantum"` to use `qt.style.catppuccin`'';
}
{
assertion = lib.elem (config.qt.platformTheme.name or null) [ "kvantum" ];
message = ''`qt.platformTheme.name` must be set to `"kvantum"` to use `qt.style.catppuccin`'';
}
];
xdg.configFile = {
"Kvantum/${themeName}".source = "${theme}/share/Kvantum/${themeName}";
"Kvantum/kvantum.kvconfig" = lib.mkIf cfg.apply {
text = ''
[General]
theme=${themeName}
'';
};
};
};
}

View file

@ -1,34 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
inherit (lib) ctp;
inherit (config.catppuccin) sources;
cfg = config.programs.lazygit.catppuccin;
enable = cfg.enable && config.programs.lazygit.enable;
# NOTE: On MacOS specifically, k9s expects its configuration to be in
# `~/Library/Application Support` when not using XDG
enableXdgConfig = !pkgs.stdenv.hostPlatform.isDarwin || config.xdg.enable;
configDirectory =
if enableXdgConfig then
config.xdg.configHome
else
"${config.home.homeDirectory}/Library/Application Support";
configFile = "${configDirectory}/lazygit/config.yml";
in
{
options.programs.lazygit.catppuccin = lib.ctp.mkCatppuccinOpt { name = "lazygit"; } // {
accent = ctp.mkAccentOpt "lazygit";
};
config.home.sessionVariables = lib.mkIf enable {
# Ensure that the default config file is still sourced
LG_CONFIG_FILE = "${sources.lazygit}/themes-mergable/${cfg.flavor}/${cfg.accent}.yml,${configFile}";
};
}

View file

@ -3,31 +3,33 @@
pkgs,
lib,
...
}:
let
inherit (config.catppuccin) sources;
cfg = config.services.mako.catppuccin;
}: let
inherit (config.rose-pine) sources;
cfg = config.services.mako.rose-pine;
enable = cfg.enable && config.services.mako.enable;
theme = lib.ctp.fromINI (
sources.mako + "/themes/catppuccin-${cfg.flavor}/catppuccin-${cfg.flavor}-${cfg.accent}"
);
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
theme = lib.rp.fromINI (sources.mako + "/theme/${themeName}.theme");
# Settings that need to be extracted and put in extraConfig
extraConfigAttrs = lib.attrsets.getAttrs [ "urgency=high" ] theme;
in
{
options.services.mako.catppuccin = lib.ctp.mkCatppuccinOpt { name = "mako"; } // {
accent = lib.ctp.mkAccentOpt "mako";
};
extraConfigAttrs = lib.attrsets.getAttrs ["urgency=high"] theme;
in {
options.services.mako.rose-pine =
lib.rp.mkRosePineOpt {name = "mako";};
# Will cause infinite recursion if config.services.mako is directly set as a whole
# Will cause infinite recursion if config.services.mako is directly set as a
# whole.
config.services.mako = lib.mkIf enable {
backgroundColor = theme.background-color;
textColor = theme.text-color;
borderColor = theme.border-color;
progressColor = theme.progress-color;
extraConfig = builtins.readFile (
(pkgs.formats.ini { }).generate "mako-extra-config" extraConfigAttrs
(pkgs.formats.ini {}).generate "mako-extra-config" extraConfigAttrs
);
};
}

View file

@ -1,17 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.micro.catppuccin;
enable = cfg.enable && config.programs.micro.enable;
themePath = "catppuccin-${cfg.flavor}.micro";
in
{
options.programs.micro.catppuccin = lib.ctp.mkCatppuccinOpt { name = "micro"; };
config = lib.mkIf enable {
programs.micro.settings.colorscheme = lib.removeSuffix ".micro" themePath;
xdg.configFile."micro/colorschemes/${themePath}".source = "${sources.micro}/src/${themePath}";
};
}

View file

@ -1,16 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
inherit (lib) ctp mkIf;
cfg = config.programs.mpv.catppuccin;
enable = cfg.enable && config.programs.mpv.enable;
in
{
options.programs.mpv.catppuccin = ctp.mkCatppuccinOpt { name = "mpv"; } // {
accent = ctp.mkAccentOpt "mpv";
};
config.programs.mpv = mkIf enable {
config.include = sources.mpv + "/themes/${cfg.flavor}/${cfg.accent}.conf";
};
}

View file

@ -3,30 +3,23 @@
pkgs,
lib,
...
}:
let
cfg = config.programs.neovim.catppuccin;
}: let
cfg = config.programs.neovim.rose-pine;
enable = cfg.enable && config.programs.neovim.enable;
in
{
options.programs.neovim.catppuccin = lib.ctp.mkCatppuccinOpt { name = "neovim"; };
in {
options.programs.neovim.rose-pine = lib.rp.mkRosePineOpt {name = "neovim";};
config.programs.neovim = lib.mkIf enable {
plugins = with pkgs.vimPlugins; [
{
plugin = catppuccin-nvim;
plugin = rose-pine;
config = ''
lua << EOF
local compile_path = vim.fn.stdpath("cache") .. "/catppuccin-nvim"
vim.fn.mkdir(compile_path, "p")
vim.opt.runtimepath:append(compile_path)
require("catppuccin").setup({
compile_path = compile_path,
flavour = "${cfg.flavor}",
require("rose-pine").setup({
variant = "${cfg.flavor}",
})
vim.api.nvim_command("colorscheme catppuccin")
vim.api.nvim_command("colorscheme rose-pine")
EOF
'';
}

View file

@ -1,15 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.newsboat.catppuccin;
enable = cfg.enable && config.programs.newsboat.enable;
theme = if cfg.flavor == "latte" then "latte" else "dark";
in
{
options.programs.newsboat.catppuccin = lib.ctp.mkCatppuccinOpt { name = "newsboat"; };
config = lib.mkIf enable {
programs.newsboat.extraConfig = builtins.readFile "${sources.newsboat}/themes/${theme}";
};
}

View file

@ -1,13 +1,21 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.services.polybar.catppuccin;
enable = cfg.enable && config.services.polybar.enable;
in
{
options.services.polybar.catppuccin = lib.ctp.mkCatppuccinOpt { name = "polybar"; };
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.services.polybar.rose-pine;
enable = cfg.enable && config.services.polybar.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.services.polybar.rose-pine = lib.rp.mkRosePineOpt {name = "polybar";};
config.services.polybar.extraConfig = lib.mkIf enable (
builtins.readFile "${sources.polybar}/themes/${cfg.flavor}.ini"
builtins.readFile "${sources.polybar}/schemes/${themeName}.ini"
);
}

View file

@ -1,15 +1,21 @@
{ config, lib, ... }:
let
inherit (lib) ctp;
inherit (config.catppuccin) sources;
cfg = config.programs.rio.catppuccin;
enable = cfg.enable && config.programs.rio.enable;
in
{
options.programs.rio.catppuccin = ctp.mkCatppuccinOpt { name = "rio"; };
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.programs.rio.rose-pine;
enable = cfg.enable && config.programs.rio.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.programs.rio.rose-pine = lib.rp.mkRosePineOpt {name = "rio";};
config = lib.mkIf enable {
programs.rio.settings = lib.importTOML "${sources.rio}/themes/catppuccin-${cfg.flavor}.toml";
programs.rio.settings = lib.importTOML "${sources.rio}/${themeName}.toml";
};
}

View file

@ -1,18 +1,25 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.rofi.catppuccin;
enable = cfg.enable && config.programs.rofi.enable;
in
{
options.programs.rofi.catppuccin = lib.ctp.mkCatppuccinOpt { name = "rofi"; };
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.programs.rofi.rose-pine;
enable = cfg.enable && config.programs.rofi.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.programs.rofi.rose-pine = lib.rp.mkRosePineOpt {name = "rofi";};
config.programs.rofi = lib.mkIf enable {
theme = {
"@theme" = builtins.path {
name = "catppuccin-${cfg.flavor}.rasi";
path = "${sources.rofi}/basic/.local/share/rofi/themes/catppuccin-${cfg.flavor}.rasi";
name = "${themeName}.rasi";
path = "${sources.rofi}/${themeName}.rasi";
};
};
};

View file

@ -1,16 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.skim.catppuccin;
enable = cfg.enable && config.programs.skim.enable;
palette = (lib.importJSON "${sources.palette}/palette.json").${cfg.flavor}.colors;
in
{
options.programs.skim.catppuccin = lib.ctp.mkCatppuccinOpt { name = "skim"; };
config.programs.skim = lib.mkIf enable {
defaultOptions = [
"--color=fg:${palette.text.hex},bg:${palette.base.hex},matched:${palette.surface0.hex},matched_bg:${palette.flamingo.hex},current:${palette.text.hex},current_bg:${palette.surface1.hex},current_match:${palette.base.hex},current_match_bg:${palette.rosewater.hex},spinner:${palette.green.hex},info:${palette.mauve.hex},prompt:${palette.blue.hex},cursor:${palette.red.hex},selected:${palette.maroon.hex},header:${palette.teal.hex},border:${palette.overlay0.hex}"
];
};
}

View file

@ -1,16 +0,0 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.spotify-player.catppuccin;
enable = cfg.enable && config.programs.spotify-player.enable;
in
{
options.programs.spotify-player.catppuccin = lib.ctp.mkCatppuccinOpt { name = "spotify-player"; };
config = lib.mkIf enable {
programs.spotify-player = {
settings.theme = "Catppuccin-${cfg.flavor}";
inherit (lib.importTOML "${sources.spotify-player}/theme.toml") themes;
};
};
}

View file

@ -1,17 +1,21 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.starship.catppuccin;
enable = cfg.enable && config.programs.starship.enable;
in
{
options.programs.starship.catppuccin = lib.ctp.mkCatppuccinOpt { name = "starship"; };
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.programs.starship.rose-pine;
enable = cfg.enable && config.programs.starship.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.programs.starship.rose-pine = lib.rp.mkRosePineOpt {name = "starship";};
config.programs.starship.settings = lib.mkIf enable (
{
format = lib.mkDefault "$all";
palette = "catppuccin_${cfg.flavor}";
}
// lib.importTOML "${sources.starship}/themes/${cfg.flavor}.toml"
lib.importTOML "${sources.starship}/${themeName}.toml"
);
}

View file

@ -1,12 +1,20 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.wayland.windowManager.sway.catppuccin;
enable = cfg.enable && config.wayland.windowManager.sway.enable;
theme = "${sources.sway}/themes/catppuccin-${cfg.flavor}";
in
{
options.wayland.windowManager.sway.catppuccin = lib.ctp.mkCatppuccinOpt { name = "sway"; };
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
cfg = config.wayland.windowManager.sway.rose-pine;
enable = cfg.enable && config.wayland.windowManager.sway.enable;
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
theme = "${sources.sway}/themes/${themeName}.theme";
in {
options.wayland.windowManager.sway.rose-pine = lib.rp.mkRosePineOpt {name = "sway";};
config = lib.mkIf enable {
wayland.windowManager.sway.extraConfigEarly = ''

View file

@ -1,39 +1,51 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.swaylock.catppuccin;
in
{
options.programs.swaylock.catppuccin = {
enable = lib.mkEnableOption "Catppuccin theme" // {
/*
global `catppuccin.enable` purposefully doesn't work here in configurations with a `home.stateVersion`
that is >= 23.05
config,
lib,
...
}: let
inherit (config.rose-pine) sources;
this is because the upstream module will automatically enable itself if `programs.swaylock.settings`
is set in configurations with a `home.stateVersion` that is < 23.05. so, we can't use the
`programs.swaylock.enable` option to guard against defining this like we usually do, as when the
upstream `enable` option is unset on these systems it checks that same `settings` option we would be
defining if *our* and the upstream's `enable` option is `true` ...leading to a case of infinite
recursion where `programs.swaylock.settings` is only being defined if `programs.swaylock.settings` is
defined
cfg = config.programs.swaylock.rose-pine;
debugging this was the most confusing and horrifying thing i've had to deal with throughout working on
this project.
themeName =
if (cfg.flavor == "main")
then "rose-pine"
else "rose-pine-${cfg.flavor}";
in {
options.programs.swaylock.rose-pine = {
enable =
lib.mkEnableOption "Rosé Pine theme"
// {
/*
global `rose-pine.enable` purposefully doesn't work here in
configurations with a `home.stateVersion` that is >= 23.05
this is because the upstream module will automatically enable itself if
`programs.swaylock.settings` is set in configurations with a
`home.stateVersion` that is < 23.05. so, we can't use the
`programs.swaylock.enable` option to guard against defining this like we
usually do, as when the upstream `enable` option is unset on these
systems it checks that same `settings` option we would be defining if
*our* and the upstream's `enable` option is `true` ...leading to a case
of infinite recursion where `programs.swaylock.settings` is only being
defined if `programs.swaylock.settings` is defined
debugging this was the most confusing and horrifying thing i've had to
deal with throughout working on this project.
- @getchoo
*/
default = lib.versionAtLeast config.home.stateVersion "23.05" && config.catppuccin.enable;
defaultText = lib.literalExpression ''
`catppuccin.enable` if `home.stateVersion` is >= 23.05, false otherwise
*/
default = lib.versionAtLeast config.home.stateVersion "23.05" && config.rose-pine.enable;
defaultText = lib.literalExpression ''
`rose-pine.enable` if `home.stateVersion` is >= 23.05, false otherwise.
Yes this is weird, and there's a funny story about it in the code comments
'';
};
Yes this is weird, and there's a funny story about it in the code comments.
'';
};
flavor = lib.ctp.mkFlavorOpt "swaylock";
flavor = lib.rp.mkFlavorOpt "swaylock";
};
config = lib.mkIf cfg.enable {
programs.swaylock.settings = lib.ctp.fromINI (sources.swaylock + "/themes/${cfg.flavor}.conf");
programs.swaylock.settings = lib.rp.fromINI (sources.swaylock + "/${themeName}");
};
}

View file

@ -3,44 +3,29 @@
lib,
pkgs,
...
}:
let
inherit (lib)
ctp
mkOption
types
concatStrings
;
inherit (config.catppuccin) sources;
cfg = config.programs.tmux.catppuccin;
}: let
cfg = config.programs.tmux.rose-pine;
enable = cfg.enable && config.programs.tmux.enable;
plugin =
# TODO @getchoo: upstream this in nixpkgs
pkgs.tmuxPlugins.mkTmuxPlugin {
pluginName = "catppuccin";
version = builtins.substring 0 7 sources.tmux.revision;
src = sources.tmux;
in {
options.programs.tmux.rose-pine =
lib.rp.mkRosePineOpt {name = "tmux";}
// {
extraConfig = lib.mkOption {
type = lib.types.lines;
description = "Additional configuration for the rose-pine plugin.";
default = "";
example = ''
set -g @rose-pine "application session user host date_time"
'';
};
};
in
{
options.programs.tmux.catppuccin = ctp.mkCatppuccinOpt { name = "tmux"; } // {
extraConfig = mkOption {
type = types.lines;
description = "Additional configuration for the catppuccin plugin.";
default = "";
example = ''
set -g @catppuccin_status_modules_right "application session user host date_time"
'';
};
};
config.programs.tmux.plugins = lib.mkIf enable [
{
inherit plugin;
extraConfig = concatStrings [
plugin = pkgs.tmuxPlugins.rose-pine;
extraConfig = lib.concatStrings [
''
set -g @catppuccin_flavor '${cfg.flavor}'
set -g @rose_pine_variant '${cfg.flavor}'
''
cfg.extraConfig
];

View file

@ -17,7 +17,7 @@ in {
lib.mkOption {
inherit type;
default = config.rose-pine.${attr};
description = "Rose Pine ${attr} for ${name}";
description = "Rosé Pine ${attr} for ${name}";
};
# string -> a