-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.fish
executable file
·78 lines (66 loc) · 2.29 KB
/
main.fish
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/fish
set -l src (dirname (realpath (status filename)))
. $src/util.fish
if test "$argv[1]" = shell
# Start shell if no args
if test -z "$argv[2..]"
$C_DATA/shell/run.fish
else
if contains -- 'caelestia' (astal -l)
astal -i caelestia $argv[2..]
else
warn 'Shell unavailable'
end
end
exit
end
if test "$argv[1]" = toggle
set -l valid_toggles communication music sysmon specialws todo
contains -- "$argv[2]" $valid_toggles && $src/toggles/$argv[2].fish || error "Invalid toggle: $argv[2]"
exit
end
if test "$argv[1]" = workspace-action
$src/workspace-action.sh $argv[2..]
exit
end
if test "$argv[1]" = scheme
$src/scheme/main.fish $argv[2..]
exit
end
if test "$argv[1]" = install
set -l valid_modules scripts discord fish foot fuzzel hypr safeeyes shell gtk vscode
if test "$argv[2]" = all
for module in $valid_modules
$src/install/$module.fish $argv[3..]
end
else
contains -- "$argv[2]" $valid_modules && $src/install/$argv[2].fish $argv[3..] || error "Invalid module: $argv[2]"
end
exit
end
set -l valid_subcommands screenshot record clipboard clipboard-delete emoji-picker wallpaper pip
if contains -- "$argv[1]" $valid_subcommands
$src/$argv[1].fish $argv[2..]
exit
end
test "$argv[1]" != help && error "Unknown command: $argv[1]"
echo 'Usage: caelestia COMMAND [ ...args ]'
echo
echo 'COMMAND := help | install | shell | toggle | workspace-action | scheme | screenshot | record | clipboard | clipboard-delete | emoji-picker | wallpaper | pip'
echo
echo ' help: show this help message'
echo ' install: install a module'
echo ' shell: start the shell or message it'
echo ' toggle: toggle a special workspace'
echo ' workspace-action: execute a Hyprland workspace dispatcher in the current group'
echo ' scheme: change the current colour scheme'
echo ' screenshot: take a screenshot'
echo ' record: take a screen recording'
echo ' clipboard: open clipboard history'
echo ' clipboard-delete: delete an item from clipboard history'
echo ' emoji-picker: open the emoji picker'
echo ' wallpaper: change the wallpaper'
echo ' pip: move the focused window into picture in picture mode or start the pip daemon'
# Set exit status
test "$argv[1]" = help
exit