mirror of
https://github.com/caelestia-dots/cli.git
synced 2026-06-05 23:09:27 -05:00
Compare commits
59 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 909c25eefd | |||
| 434841e000 | |||
| 178e73a065 | |||
| 1cfd405eaa | |||
| 03d485ec07 | |||
| 0c08188584 | |||
| d89c438284 | |||
| f9acac8fb2 | |||
| 1e3d75fa8f | |||
| 5a80ac77ed | |||
| 9323fbf1b4 | |||
| c05f6ef57a | |||
| 57dfea955e | |||
| 0ae99bbe39 | |||
| f13803af6b | |||
| 1cea6fb42a | |||
| 94d5477908 | |||
| a8590220bb | |||
| 27be3dbd84 | |||
| cc458bf859 | |||
| b2ea4e3aad | |||
| 98da4c0266 | |||
| a9f8bde28e | |||
| d0f8a06e59 | |||
| dcca082ee6 | |||
| 4593b823d7 | |||
| c6f46db36c | |||
| 40fbf3bd68 | |||
| 8dc745c936 | |||
| 14ee3c66ef | |||
| 601d08bdec | |||
| e9668d58f5 | |||
| 3f7f3bab15 | |||
| 1394e32a7e | |||
| f912d33f26 | |||
| 8b1d0257df | |||
| 276f18d198 | |||
| ebbd636b79 | |||
| ee7c7c2d5d | |||
| 28a831779e | |||
| 069d3a95da | |||
| af79030bf5 | |||
| 1de7da5f2b | |||
| 4be834aa11 | |||
| 8399eee947 | |||
| 62e5dc317a | |||
| 60a6be2dfd | |||
| 7fc5bcca1a | |||
| 64fd3a4a28 | |||
| dd982bcb96 | |||
| 1bac394029 | |||
| b36794bbb5 | |||
| c3e8a6de72 | |||
| 65df31dca4 | |||
| ad6df1c9d2 | |||
| e038c5d86a | |||
| e560a6e3d2 | |||
| 62e7911864 | |||
| 6f8e5849cb |
@@ -20,18 +20,52 @@ The main control script for the Caelestia dotfiles.
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
### Package manager (recommended)
|
### Arch linux
|
||||||
|
|
||||||
The cli is available from the AUR as `caelestia-cli-git`. To install it you can use
|
The CLI is available from the AUR as `caelestia-cli`. You can install it with an AUR helper
|
||||||
an AUR helper like [`yay`](https://github.com/Jguer/yay), or manually download the
|
like [`yay`](https://github.com/Jguer/yay) or manually downloading the PKGBUILD and running `makepkg -si`.
|
||||||
PKGBUILD and run `makepkg -si`.
|
|
||||||
|
|
||||||
e.g. using yay
|
A package following the latest commit also exists as `caelestia-cli-git`. This is bleeding edge
|
||||||
|
and likely to be unstable/have bugs. Regular users are recommended to use the stable package
|
||||||
|
(`caelestia-cli`).
|
||||||
|
|
||||||
|
### Nix
|
||||||
|
|
||||||
|
You can run the CLI directly via `nix run`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
yay -S caelestia-cli-git
|
nix run github:caelestia-dots/cli
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Or add it to your system configuration:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
caelestia-cli = {
|
||||||
|
url = "github:caelestia-dots/cli";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The package is available as `caelestia-cli.packages.<system>.default`, which can be added to your
|
||||||
|
`environment.systemPackages`, `users.users.<username>.packages`, `home.packages` if using home-manager,
|
||||||
|
or a devshell. The CLI can then be used via the `caelestia` command.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> The default package does not have the shell enabled by default, which is required for full functionality.
|
||||||
|
> To enable the shell, use the `with-shell` package. This is the recommended installation method, as
|
||||||
|
> the CLI exposes the shell via the `shell` subcommand, meaning there is no need for the shell package
|
||||||
|
> to be exposed.
|
||||||
|
|
||||||
|
For home-manager, you can also use the Caelestia's home manager module (explained in
|
||||||
|
[configuring](https://github.com/caelestia-dots/shell?tab=readme-ov-file#home-manager-module)) that
|
||||||
|
installs and configures the shell and the CLI.
|
||||||
|
|
||||||
### Manual installation
|
### Manual installation
|
||||||
|
|
||||||
Install all [dependencies](#dependencies), then install
|
Install all [dependencies](#dependencies), then install
|
||||||
@@ -96,6 +130,12 @@ All configuration options are in `~/.config/caelestia/cli.json`.
|
|||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
"record": {
|
||||||
|
"extraArgs": []
|
||||||
|
},
|
||||||
|
"wallpaper": {
|
||||||
|
"postHook": "echo $WALLPAPER_PATH"
|
||||||
|
},
|
||||||
"theme": {
|
"theme": {
|
||||||
"enableTerm": true,
|
"enableTerm": true,
|
||||||
"enableHypr": true,
|
"enableHypr": true,
|
||||||
|
|||||||
+3
-2
@@ -65,10 +65,11 @@ python3.pkgs.buildPythonApplication {
|
|||||||
substituteInPlace src/caelestia/subcommands/screenshot.py \
|
substituteInPlace src/caelestia/subcommands/screenshot.py \
|
||||||
--replace-fail '"qs", "-c", "caelestia"' '"caelestia-shell"'
|
--replace-fail '"qs", "-c", "caelestia"' '"caelestia-shell"'
|
||||||
|
|
||||||
# Use config bin instead of discord + fix todoist
|
# Use config bin instead of discord + fix todoist + fix app2unit
|
||||||
substituteInPlace src/caelestia/subcommands/toggle.py \
|
substituteInPlace src/caelestia/subcommands/toggle.py \
|
||||||
--replace-fail 'discord' ${discordBin} \
|
--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
|
# Use config style instead of darkly
|
||||||
substituteInPlace src/caelestia/data/templates/qtct.conf \
|
substituteInPlace src/caelestia/data/templates/qtct.conf \
|
||||||
|
|||||||
Generated
+10
-10
@@ -9,11 +9,11 @@
|
|||||||
"quickshell": "quickshell"
|
"quickshell": "quickshell"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757726711,
|
"lastModified": 1763974329,
|
||||||
"narHash": "sha256-nihMIyW+IN01jLH+XhRDJ4V/9ulD/iqi0dvA7gYlclA=",
|
"narHash": "sha256-8bljTh08KrIzTwzJEM8rGCg56hGtIH6/oT0LctCPTOQ=",
|
||||||
"owner": "caelestia-dots",
|
"owner": "caelestia-dots",
|
||||||
"repo": "shell",
|
"repo": "shell",
|
||||||
"rev": "a57dd9343a2643f73f3994dc230b824617f89ecf",
|
"rev": "11282f6abe32f9671dc0a7ce49d64bc4f2d79e6b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -24,11 +24,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757487488,
|
"lastModified": 1763835633,
|
||||||
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
|
"narHash": "sha256-HzxeGVID5MChuCPESuC0dlQL1/scDKu+MmzoVBJxulM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0",
|
"rev": "050e09e091117c3d7328c7b2b7b577492c43c134",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -46,11 +46,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756981260,
|
"lastModified": 1763629934,
|
||||||
"narHash": "sha256-GhuD9QVimjynHI0OOyZsqJsnlXr2orowh9H+HYz4YMs=",
|
"narHash": "sha256-jWz10RbNAyylJbH4cUTLS/CsDjkd8gxfT8OsIgQIgEg=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "6eb12551baf924f8fdecdd04113863a754259c34",
|
"rev": "ed036d514b0fdbce03158a0b331305be166f4555",
|
||||||
"revCount": 672,
|
"revCount": 708,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -132,6 +132,7 @@
|
|||||||
😯 hushed face epic face hushed omg stunned surprised whoa woah
|
😯 hushed face epic face hushed omg stunned surprised whoa woah
|
||||||
😲 :o :O astonished face astonished cost face no omg shocked totally way
|
😲 :o :O astonished face astonished cost face no omg shocked totally way
|
||||||
😳 :$ flushed face amazed awkward crazy dazed dead disbelief embarrassed face flushed geez heat hot impressed jeez what wow
|
😳 :$ flushed face amazed awkward crazy dazed dead disbelief embarrassed face flushed geez heat hot impressed jeez what wow
|
||||||
|
distorted face anxiety bloated panic shocked surprised vulnerable
|
||||||
🥺 pleading face begging big eyes face mercy not pleading please pretty puppy sad why
|
🥺 pleading face begging big eyes face mercy not pleading please pretty puppy sad why
|
||||||
🥹 face holding back tears admiration aww back cry embarrassed face feelings grateful gratitude holding joy please proud resist sad tears
|
🥹 face holding back tears admiration aww back cry embarrassed face feelings grateful gratitude holding joy please proud resist sad tears
|
||||||
😦 frowning face with open mouth caught face frown frowning guard mouth open scared scary surprise what wow
|
😦 frowning face with open mouth caught face frown frowning guard mouth open scared scary surprise what wow
|
||||||
@@ -205,6 +206,7 @@
|
|||||||
💋 kiss mark dating emotion heart kiss kissing lips mark romance sexy
|
💋 kiss mark dating emotion heart kiss kissing lips mark romance sexy
|
||||||
💯 hundred points 100 a+ agree clearly definitely faithful fleek full hundred keep perfect point score true truth yup
|
💯 hundred points 100 a+ agree clearly definitely faithful fleek full hundred keep perfect point score true truth yup
|
||||||
💢 anger symbol anger angry comic mad symbol upset
|
💢 anger symbol anger angry comic mad symbol upset
|
||||||
|
fight cloud argument brawl debate disagreement fight ruckus wrestle
|
||||||
💥 collision bomb boom collide comic explode
|
💥 collision bomb boom collide comic explode
|
||||||
💫 dizzy comic shining shooting star stars
|
💫 dizzy comic shining shooting star stars
|
||||||
💦 sweat droplets comic drip droplet droplets drops splashing squirt sweat water wet work workout
|
💦 sweat droplets comic drip droplet droplets drops splashing squirt sweat water wet work workout
|
||||||
@@ -449,6 +451,7 @@
|
|||||||
🧟♂️ man zombie apocalypse dead halloween horror man scary undead walking zombie
|
🧟♂️ man zombie apocalypse dead halloween horror man scary undead walking zombie
|
||||||
🧟♀️ woman zombie apocalypse dead halloween horror scary undead walking woman zombie
|
🧟♀️ woman zombie apocalypse dead halloween horror scary undead walking woman zombie
|
||||||
🧌 troll fairy fantasy monster tale trolling
|
🧌 troll fairy fantasy monster tale trolling
|
||||||
|
hairy creature bigfoot cryptid forest giant hairy sasquatch woodwose yeti
|
||||||
💆 person getting massage face getting headache massage person relax relaxing salon soothe spa tension therapy treatment
|
💆 person getting massage face getting headache massage person relax relaxing salon soothe spa tension therapy treatment
|
||||||
💆♂️ man getting massage face getting headache man massage relax relaxing salon soothe spa tension therapy treatment
|
💆♂️ man getting massage face getting headache man massage relax relaxing salon soothe spa tension therapy treatment
|
||||||
💆♀️ woman getting massage face getting headache massage relax relaxing salon soothe spa tension therapy treatment woman
|
💆♀️ woman getting massage face getting headache massage relax relaxing salon soothe spa tension therapy treatment woman
|
||||||
@@ -458,42 +461,43 @@
|
|||||||
🚶 person walking amble gait hike man pace pedestrian person stride stroll walk walking
|
🚶 person walking amble gait hike man pace pedestrian person stride stroll walk walking
|
||||||
🚶♂️ man walking amble gait hike man pace pedestrian stride stroll walk walking
|
🚶♂️ man walking amble gait hike man pace pedestrian stride stroll walk walking
|
||||||
🚶♀️ woman walking amble gait hike man pace pedestrian stride stroll walk walking woman
|
🚶♀️ woman walking amble gait hike man pace pedestrian stride stroll walk walking woman
|
||||||
🚶➡️ person walking facing right amble gait hike man pace pedestrian person stride stroll walk walking
|
🚶➡️ person walking: facing right amble facing gait hike man pace pedestrian person right stride stroll walk walking
|
||||||
🚶♀️➡️ woman walking facing right amble gait hike man pace pedestrian stride stroll walk walking woman
|
🚶♀️➡️ woman walking: facing right amble facing gait hike man pace pedestrian right stride stroll walk walking woman
|
||||||
🚶♂️➡️ man walking facing right amble gait hike man pace pedestrian stride stroll walk walking
|
🚶♂️➡️ man walking: facing right amble facing gait hike man pace pedestrian right stride stroll walk walking
|
||||||
🧍 person standing person stand standing
|
🧍 person standing person stand standing
|
||||||
🧍♂️ man standing man stand standing
|
🧍♂️ man standing man stand standing
|
||||||
🧍♀️ woman standing stand standing woman
|
🧍♀️ woman standing stand standing woman
|
||||||
🧎 person kneeling kneel kneeling knees person
|
🧎 person kneeling kneel kneeling knees person
|
||||||
🧎♂️ man kneeling kneel kneeling knees man
|
🧎♂️ man kneeling kneel kneeling knees man
|
||||||
🧎♀️ woman kneeling kneel kneeling knees woman
|
🧎♀️ woman kneeling kneel kneeling knees woman
|
||||||
🧎➡️ person kneeling facing right kneel kneeling knees person
|
🧎➡️ person kneeling: facing right facing kneel kneeling knees person right
|
||||||
🧎♀️➡️ woman kneeling facing right kneel kneeling knees woman
|
🧎♀️➡️ woman kneeling: facing right facing kneel kneeling knees right woman
|
||||||
🧎♂️➡️ man kneeling facing right kneel kneeling knees man
|
🧎♂️➡️ man kneeling: facing right facing kneel kneeling knees man right
|
||||||
🧑🦯 person with white cane accessibility blind cane person probing white
|
🧑🦯 person with white cane accessibility blind cane person probing white
|
||||||
🧑🦯➡️ person with white cane facing right accessibility blind cane person probing white
|
🧑🦯➡️ person with white cane: facing right accessibility blind cane facing person probing right white
|
||||||
👨🦯 man with white cane accessibility blind cane man probing white
|
👨🦯 man with white cane accessibility blind cane man probing white
|
||||||
👨🦯➡️ man with white cane facing right accessibility blind cane man probing white
|
👨🦯➡️ man with white cane: facing right accessibility blind cane facing man probing right white
|
||||||
👩🦯 woman with white cane accessibility blind cane probing white woman
|
👩🦯 woman with white cane accessibility blind cane probing white woman
|
||||||
👩🦯➡️ woman with white cane facing right accessibility blind cane probing white woman
|
👩🦯➡️ woman with white cane: facing right accessibility blind cane facing probing right white woman
|
||||||
🧑🦼 person in motorized wheelchair accessibility motorized person wheelchair
|
🧑🦼 person in motorized wheelchair accessibility motorized person wheelchair
|
||||||
🧑🦼➡️ person in motorized wheelchair facing right accessibility motorized person wheelchair
|
🧑🦼➡️ person in motorized wheelchair: facing right accessibility facing motorized person right wheelchair
|
||||||
👨🦼 man in motorized wheelchair accessibility man motorized wheelchair
|
👨🦼 man in motorized wheelchair accessibility man motorized wheelchair
|
||||||
👨🦼➡️ man in motorized wheelchair facing right accessibility man motorized wheelchair
|
👨🦼➡️ man in motorized wheelchair: facing right accessibility facing man motorized right wheelchair
|
||||||
👩🦼 woman in motorized wheelchair accessibility motorized wheelchair woman
|
👩🦼 woman in motorized wheelchair accessibility motorized wheelchair woman
|
||||||
👩🦼➡️ woman in motorized wheelchair facing right accessibility motorized wheelchair woman
|
👩🦼➡️ woman in motorized wheelchair: facing right accessibility facing motorized right wheelchair woman
|
||||||
🧑🦽 person in manual wheelchair accessibility manual person wheelchair
|
🧑🦽 person in manual wheelchair accessibility manual person wheelchair
|
||||||
🧑🦽➡️ person in manual wheelchair facing right accessibility manual person wheelchair
|
🧑🦽➡️ person in manual wheelchair: facing right accessibility facing manual person right wheelchair
|
||||||
👨🦽 man in manual wheelchair accessibility man manual wheelchair
|
👨🦽 man in manual wheelchair accessibility man manual wheelchair
|
||||||
👨🦽➡️ man in manual wheelchair facing right accessibility man manual wheelchair
|
👨🦽➡️ man in manual wheelchair: facing right accessibility facing man manual right wheelchair
|
||||||
👩🦽 woman in manual wheelchair accessibility manual wheelchair woman
|
👩🦽 woman in manual wheelchair accessibility manual wheelchair woman
|
||||||
👩🦽➡️ woman in manual wheelchair facing right accessibility manual wheelchair woman
|
👩🦽➡️ woman in manual wheelchair: facing right accessibility facing manual right wheelchair woman
|
||||||
🏃 person running fast hurry marathon move person quick race racing run rush speed
|
🏃 person running fast hurry marathon move person quick race racing run rush speed
|
||||||
🏃♂️ man running fast hurry man marathon move quick race racing run rush speed
|
🏃♂️ man running fast hurry man marathon move quick race racing run rush speed
|
||||||
🏃♀️ woman running fast hurry marathon move quick race racing run rush speed woman
|
🏃♀️ woman running fast hurry marathon move quick race racing run rush speed woman
|
||||||
🏃➡️ person running facing right fast hurry marathon move person quick race racing run rush speed
|
🏃➡️ person running: facing right facing fast hurry marathon move person quick race racing right run rush speed
|
||||||
🏃♀️➡️ woman running facing right fast hurry marathon move quick race racing run rush speed woman
|
🏃♀️➡️ woman running: facing right facing fast hurry marathon move quick race racing right run rush speed woman
|
||||||
🏃♂️➡️ man running facing right fast hurry man marathon move quick race racing run rush speed
|
🏃♂️➡️ man running: facing right facing fast hurry man marathon move quick race racing right run rush speed
|
||||||
|
🧑🩰 ballet dancer ballet dancer
|
||||||
💃 woman dancing dance dancer dancing elegant festive flair flamenco groove let’s salsa tango woman
|
💃 woman dancing dance dancer dancing elegant festive flair flamenco groove let’s salsa tango woman
|
||||||
🕺 man dancing dance dancer dancing elegant festive flair flamenco groove let’s man salsa tango
|
🕺 man dancing dance dancer dancing elegant festive flair flamenco groove let’s man salsa tango
|
||||||
🕴️ person in suit levitating business levitating person suit
|
🕴️ person in suit levitating business levitating person suit
|
||||||
@@ -711,6 +715,7 @@
|
|||||||
🐳 spouting whale animal beach face ocean spouting whale
|
🐳 spouting whale animal beach face ocean spouting whale
|
||||||
🐋 whale animal beach ocean
|
🐋 whale animal beach ocean
|
||||||
🐬 dolphin animal beach flipper ocean
|
🐬 dolphin animal beach flipper ocean
|
||||||
|
orca marine ocean whale
|
||||||
🦭 seal animal lion ocean sea
|
🦭 seal animal lion ocean sea
|
||||||
🐟️ fish animal dinner fishes fishing pisces zodiac
|
🐟️ fish animal dinner fishes fishing pisces zodiac
|
||||||
🐠 tropical fish animal fish fishes tropical
|
🐠 tropical fish animal fish fishes tropical
|
||||||
@@ -910,6 +915,7 @@
|
|||||||
🧭 compass direction magnetic navigation orienteering
|
🧭 compass direction magnetic navigation orienteering
|
||||||
🏔️ snow-capped mountain cold mountain snow snow-capped
|
🏔️ snow-capped mountain cold mountain snow snow-capped
|
||||||
⛰️ mountain mountain
|
⛰️ mountain mountain
|
||||||
|
landslide avalanche danger disaster earthquake mountain mudslide rocks
|
||||||
🌋 volcano eruption mountain nature
|
🌋 volcano eruption mountain nature
|
||||||
🗻 mount fuji fuji mount mountain nature
|
🗻 mount fuji fuji mount mountain nature
|
||||||
🏕️ camping camping
|
🏕️ camping camping
|
||||||
@@ -1270,10 +1276,11 @@
|
|||||||
🎧️ headphone earbud sound
|
🎧️ headphone earbud sound
|
||||||
📻️ radio entertainment tbt video
|
📻️ radio entertainment tbt video
|
||||||
🎷 saxophone instrument music sax
|
🎷 saxophone instrument music sax
|
||||||
|
🎺 trumpet instrument music
|
||||||
|
trombone brass instrument jazz music sad slide
|
||||||
🪗 accordion box concertina instrument music squeeze squeezebox
|
🪗 accordion box concertina instrument music squeeze squeezebox
|
||||||
🎸 guitar instrument music strat
|
🎸 guitar instrument music strat
|
||||||
🎹 musical keyboard instrument keyboard music musical piano
|
🎹 musical keyboard instrument keyboard music musical piano
|
||||||
🎺 trumpet instrument music
|
|
||||||
🎻 violin instrument music
|
🎻 violin instrument music
|
||||||
🪕 banjo music stringed
|
🪕 banjo music stringed
|
||||||
🥁 drum drumsticks music
|
🥁 drum drumsticks music
|
||||||
@@ -1334,8 +1341,9 @@
|
|||||||
📑 bookmark tabs bookmark mark marker tabs
|
📑 bookmark tabs bookmark mark marker tabs
|
||||||
🔖 bookmark mark
|
🔖 bookmark mark
|
||||||
🏷️ label tag
|
🏷️ label tag
|
||||||
💰️ money bag bag bank bet billion cash cost dollar gold million money moneybag paid paying pot rich win
|
|
||||||
🪙 coin dollar euro gold metal money rich silver treasure
|
🪙 coin dollar euro gold metal money rich silver treasure
|
||||||
|
💰️ money bag bag bank bet billion cash cost dollar gold million money moneybag paid paying pot rich win
|
||||||
|
treasure chest gem gold jewels loot money prize silver valuables wealth
|
||||||
💴 yen banknote bank banknote bill currency money note yen
|
💴 yen banknote bank banknote bill currency money note yen
|
||||||
💵 dollar banknote bank banknote bill currency dollar money note
|
💵 dollar banknote bank banknote bill currency dollar money note
|
||||||
💶 euro banknote 100 bank banknote bill currency euro money note rich
|
💶 euro banknote 100 bank banknote bill currency euro money note rich
|
||||||
@@ -1608,16 +1616,16 @@
|
|||||||
splatter drip holi ink liquid mess paint spill stain
|
splatter drip holi ink liquid mess paint spill stain
|
||||||
#️⃣ keycap: # keycap
|
#️⃣ keycap: # keycap
|
||||||
*️⃣ keycap: * keycap
|
*️⃣ keycap: * keycap
|
||||||
0️⃣ keycap: 0 keycap
|
0️⃣ keycap: 0 0 keycap zero
|
||||||
1️⃣ keycap: 1 keycap
|
1️⃣ keycap: 1 1 keycap one
|
||||||
2️⃣ keycap: 2 keycap
|
2️⃣ keycap: 2 2 keycap two
|
||||||
3️⃣ keycap: 3 keycap
|
3️⃣ keycap: 3 3 keycap three
|
||||||
4️⃣ keycap: 4 keycap
|
4️⃣ keycap: 4 4 four keycap
|
||||||
5️⃣ keycap: 5 keycap
|
5️⃣ keycap: 5 5 five keycap
|
||||||
6️⃣ keycap: 6 keycap
|
6️⃣ keycap: 6 6 keycap six
|
||||||
7️⃣ keycap: 7 keycap
|
7️⃣ keycap: 7 7 keycap seven
|
||||||
8️⃣ keycap: 8 keycap
|
8️⃣ keycap: 8 8 eight keycap
|
||||||
9️⃣ keycap: 9 keycap
|
9️⃣ keycap: 9 9 keycap nine
|
||||||
🔟 keycap: 10 keycap
|
🔟 keycap: 10 keycap
|
||||||
🔠 input latin uppercase abcd input latin letters uppercase
|
🔠 input latin uppercase abcd input latin letters uppercase
|
||||||
🔡 input latin lowercase abcd input latin letters lowercase
|
🔡 input latin lowercase abcd input latin letters lowercase
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from argparse import Namespace
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from caelestia.utils.notify import close_notification, notify
|
from caelestia.utils.notify import close_notification, notify
|
||||||
from caelestia.utils.paths import recording_notif_path, recording_path, recordings_dir
|
from caelestia.utils.paths import recording_notif_path, recording_path, recordings_dir, user_config_path
|
||||||
|
|
||||||
RECORDER = "gpu-screen-recorder"
|
RECORDER = "gpu-screen-recorder"
|
||||||
|
|
||||||
@@ -63,6 +63,15 @@ class Command:
|
|||||||
if self.args.sound:
|
if self.args.sound:
|
||||||
args += ["-a", "default_output"]
|
args += ["-a", "default_output"]
|
||||||
|
|
||||||
|
try:
|
||||||
|
config = json.loads(user_config_path.read_text())
|
||||||
|
if "record" in config and "extraArgs" in config["record"]:
|
||||||
|
args += config["record"]["extraArgs"]
|
||||||
|
except (json.JSONDecodeError, FileNotFoundError):
|
||||||
|
pass
|
||||||
|
except TypeError as e:
|
||||||
|
raise ValueError(f"Config option 'record.extraArgs' should be an array: {e}")
|
||||||
|
|
||||||
recording_path.parent.mkdir(parents=True, exist_ok=True)
|
recording_path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
proc = subprocess.Popen([RECORDER, *args, "-o", str(recording_path)], start_new_session=True)
|
proc = subprocess.Popen([RECORDER, *args, "-o", str(recording_path)], start_new_session=True)
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ class Command:
|
|||||||
# Start the shell
|
# Start the shell
|
||||||
args = ["qs", "-c", "caelestia", "-n"]
|
args = ["qs", "-c", "caelestia", "-n"]
|
||||||
if self.args.log_rules:
|
if self.args.log_rules:
|
||||||
args.append("--log-rules", self.args.log_rules)
|
args.extend(["--log-rules", self.args.log_rules])
|
||||||
if self.args.daemon:
|
if self.args.daemon:
|
||||||
args.append("-d")
|
args.append("-d")
|
||||||
subprocess.run(args)
|
subprocess.run(args)
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ scheme: Scheme = None
|
|||||||
|
|
||||||
|
|
||||||
def read_colours_from_file(path: Path) -> dict[str, str]:
|
def read_colours_from_file(path: Path) -> dict[str, str]:
|
||||||
return {k.strip(): v.strip() for k, v in (line.split(" ") for line in path.read_text().splitlines())}
|
return {k.strip(): v.strip() for k, v in (line.split(" ") for line in path.read_text().splitlines() if line)}
|
||||||
|
|
||||||
|
|
||||||
def get_scheme_path() -> Path:
|
def get_scheme_path() -> Path:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from caelestia.utils.paths import config_dir
|
|||||||
def print_version() -> None:
|
def print_version() -> None:
|
||||||
if shutil.which("pacman"):
|
if shutil.which("pacman"):
|
||||||
print("Packages:")
|
print("Packages:")
|
||||||
pkgs = ["caelestia-shell-git", "caelestia-cli-git", "caelestia-meta"]
|
pkgs = ["caelestia-shell", "caelestia-cli", "caelestia-meta"]
|
||||||
versions = subprocess.run(
|
versions = subprocess.run(
|
||||||
["pacman", "-Q", *pkgs], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, text=True
|
["pacman", "-Q", *pkgs], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, text=True
|
||||||
).stdout
|
).stdout
|
||||||
@@ -31,6 +31,14 @@ def print_version() -> None:
|
|||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
print("Caelestia: not installed")
|
print("Caelestia: not installed")
|
||||||
|
|
||||||
|
print()
|
||||||
|
try:
|
||||||
|
shell_ver = subprocess.check_output(["/usr/lib/caelestia/version", "-s"], text=True).strip()
|
||||||
|
print("Shell:")
|
||||||
|
print(" ", shell_ver)
|
||||||
|
except FileNotFoundError:
|
||||||
|
print("Shell: version helper not available")
|
||||||
|
|
||||||
print()
|
print()
|
||||||
if shutil.which("qs"):
|
if shutil.which("qs"):
|
||||||
print("Quickshell:")
|
print("Quickshell:")
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
|
import os
|
||||||
import random
|
import random
|
||||||
|
import subprocess
|
||||||
from argparse import Namespace
|
from argparse import Namespace
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
@@ -11,6 +13,7 @@ from caelestia.utils.hypr import message
|
|||||||
from caelestia.utils.material import get_colours_for_image
|
from caelestia.utils.material import get_colours_for_image
|
||||||
from caelestia.utils.paths import (
|
from caelestia.utils.paths import (
|
||||||
compute_hash,
|
compute_hash,
|
||||||
|
user_config_path,
|
||||||
wallpaper_link_path,
|
wallpaper_link_path,
|
||||||
wallpaper_path_path,
|
wallpaper_path_path,
|
||||||
wallpaper_thumbnail_path,
|
wallpaper_thumbnail_path,
|
||||||
@@ -48,12 +51,7 @@ def get_wallpapers(args: Namespace) -> list[Path]:
|
|||||||
return walls
|
return walls
|
||||||
|
|
||||||
monitors = message("monitors")
|
monitors = message("monitors")
|
||||||
filter_size = monitors[0]["width"], monitors[0]["height"]
|
filter_size = min(m["width"] for m in monitors), min(m["height"] for m in monitors)
|
||||||
for monitor in monitors[1:]:
|
|
||||||
if filter_size[0] > monitor["width"]:
|
|
||||||
filter_size[0] = monitor["width"]
|
|
||||||
if filter_size[1] > monitor["height"]:
|
|
||||||
filter_size[1] = monitor["height"]
|
|
||||||
|
|
||||||
return [f for f in walls if check_wall(f, filter_size, args.threshold)]
|
return [f for f in walls if check_wall(f, filter_size, args.threshold)]
|
||||||
|
|
||||||
@@ -158,6 +156,19 @@ def set_wallpaper(wall: Path | str, no_smart: bool) -> None:
|
|||||||
scheme.update_colours()
|
scheme.update_colours()
|
||||||
apply_colours(scheme.colours, scheme.mode)
|
apply_colours(scheme.colours, scheme.mode)
|
||||||
|
|
||||||
|
# Run custom post-hook if configured
|
||||||
|
try:
|
||||||
|
cfg = json.loads(user_config_path.read_text()).get("wallpaper", {})
|
||||||
|
if post_hook := cfg.get("postHook"):
|
||||||
|
subprocess.run(
|
||||||
|
post_hook,
|
||||||
|
shell=True,
|
||||||
|
env={**os.environ, "WALLPAPER_PATH": str(wall)},
|
||||||
|
stderr=subprocess.DEVNULL,
|
||||||
|
)
|
||||||
|
except (FileNotFoundError, json.JSONDecodeError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def set_random(args: Namespace) -> None:
|
def set_random(args: Namespace) -> None:
|
||||||
wallpapers = get_wallpapers(args)
|
wallpapers = get_wallpapers(args)
|
||||||
|
|||||||
Reference in New Issue
Block a user