forked from Shinonome/caelestia-cli
@@ -71,7 +71,7 @@ complete -c caelestia -n "$seen shell && $seen wallpaper && $seen set" -F
|
|||||||
complete -c caelestia -n "$seen shell && $seen notifs && not $seen clear" -a 'clear' -d 'Clear popup notifications'
|
complete -c caelestia -n "$seen shell && $seen notifs && not $seen clear" -a 'clear' -d 'Clear popup notifications'
|
||||||
|
|
||||||
# Toggles
|
# Toggles
|
||||||
set -l commands communication music specialws sysmon todo steam
|
set -l commands communication music specialws sysmon todo
|
||||||
complete -c caelestia -n "$seen toggle && not $seen drawers && not $seen $commands" -a "$commands" -d 'toggle'
|
complete -c caelestia -n "$seen toggle && not $seen drawers && not $seen $commands" -a "$commands" -d 'toggle'
|
||||||
|
|
||||||
# Scheme
|
# Scheme
|
||||||
|
|||||||
+39
-136
@@ -1,52 +1,27 @@
|
|||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
from caelestia.subcommands import (
|
from caelestia.subcommands import clipboard, emoji, pip, record, scheme, screenshot, shell, toggle, wallpaper
|
||||||
clipboard,
|
|
||||||
emoji,
|
|
||||||
pip,
|
|
||||||
record,
|
|
||||||
scheme,
|
|
||||||
screenshot,
|
|
||||||
shell,
|
|
||||||
toggle,
|
|
||||||
wallpaper,
|
|
||||||
)
|
|
||||||
from caelestia.utils.paths import wallpapers_dir
|
from caelestia.utils.paths import wallpapers_dir
|
||||||
from caelestia.utils.scheme import get_scheme_names, scheme_variants
|
from caelestia.utils.scheme import get_scheme_names, scheme_variants
|
||||||
from caelestia.utils.wallpaper import get_wallpaper
|
from caelestia.utils.wallpaper import get_wallpaper
|
||||||
|
|
||||||
|
|
||||||
def parse_args() -> (argparse.ArgumentParser, argparse.Namespace):
|
def parse_args() -> (argparse.ArgumentParser, argparse.Namespace):
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(prog="caelestia", description="Main control script for the Caelestia dotfiles")
|
||||||
prog="caelestia", description="Main control script for the Caelestia dotfiles"
|
parser.add_argument("-v", "--version", action="store_true", help="print the current version")
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"-v", "--version", action="store_true", help="print the current version"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add subcommand parsers
|
# Add subcommand parsers
|
||||||
command_parser = parser.add_subparsers(
|
command_parser = parser.add_subparsers(
|
||||||
title="subcommands",
|
title="subcommands", description="valid subcommands", metavar="COMMAND", help="the subcommand to run"
|
||||||
description="valid subcommands",
|
|
||||||
metavar="COMMAND",
|
|
||||||
help="the subcommand to run",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create parser for shell opts
|
# Create parser for shell opts
|
||||||
shell_parser = command_parser.add_parser("shell", help="start or message the shell")
|
shell_parser = command_parser.add_parser("shell", help="start or message the shell")
|
||||||
shell_parser.set_defaults(cls=shell.Command)
|
shell_parser.set_defaults(cls=shell.Command)
|
||||||
shell_parser.add_argument(
|
shell_parser.add_argument("message", nargs="*", help="a message to send to the shell")
|
||||||
"message", nargs="*", help="a message to send to the shell"
|
shell_parser.add_argument("-d", "--daemon", action="store_true", help="start the shell detached")
|
||||||
)
|
shell_parser.add_argument("-s", "--show", action="store_true", help="print all shell IPC commands")
|
||||||
shell_parser.add_argument(
|
shell_parser.add_argument("-l", "--log", action="store_true", help="print the shell log")
|
||||||
"-d", "--daemon", action="store_true", help="start the shell detached"
|
|
||||||
)
|
|
||||||
shell_parser.add_argument(
|
|
||||||
"-s", "--show", action="store_true", help="print all shell IPC commands"
|
|
||||||
)
|
|
||||||
shell_parser.add_argument(
|
|
||||||
"-l", "--log", action="store_true", help="print the shell log"
|
|
||||||
)
|
|
||||||
shell_parser.add_argument(
|
shell_parser.add_argument(
|
||||||
"--log-rules",
|
"--log-rules",
|
||||||
default="quickshell.dbus.properties.warning=false;quickshell.dbus.dbusmenu.warning=false;quickshell.service.notifications.warning=false;quickshell.service.sni.host.warning=false;qt.qpa.wayland.textinput.warning=false",
|
default="quickshell.dbus.properties.warning=false;quickshell.dbus.dbusmenu.warning=false;quickshell.service.notifications.warning=false;quickshell.service.sni.host.warning=false;qt.qpa.wayland.textinput.warning=false",
|
||||||
@@ -55,145 +30,75 @@ def parse_args() -> (argparse.ArgumentParser, argparse.Namespace):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Create parser for toggle opts
|
# Create parser for toggle opts
|
||||||
toggle_parser = command_parser.add_parser(
|
toggle_parser = command_parser.add_parser("toggle", help="toggle a special workspace")
|
||||||
"toggle", help="toggle a special workspace"
|
|
||||||
)
|
|
||||||
toggle_parser.set_defaults(cls=toggle.Command)
|
toggle_parser.set_defaults(cls=toggle.Command)
|
||||||
toggle_parser.add_argument(
|
toggle_parser.add_argument(
|
||||||
"workspace",
|
"workspace", choices=["communication", "music", "sysmon", "specialws", "todo"], help="the workspace to toggle"
|
||||||
choices=["communication", "music", "sysmon", "specialws", "todo", "steam"],
|
|
||||||
help="the workspace to toggle",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create parser for scheme opts
|
# Create parser for scheme opts
|
||||||
scheme_parser = command_parser.add_parser("scheme", help="manage the colour scheme")
|
scheme_parser = command_parser.add_parser("scheme", help="manage the colour scheme")
|
||||||
scheme_command_parser = scheme_parser.add_subparsers(title="subcommands")
|
scheme_command_parser = scheme_parser.add_subparsers(title="subcommands")
|
||||||
|
|
||||||
list_parser = scheme_command_parser.add_parser(
|
list_parser = scheme_command_parser.add_parser("list", help="list available schemes")
|
||||||
"list", help="list available schemes"
|
|
||||||
)
|
|
||||||
list_parser.set_defaults(cls=scheme.List)
|
list_parser.set_defaults(cls=scheme.List)
|
||||||
list_parser.add_argument(
|
list_parser.add_argument("-n", "--names", action="store_true", help="list scheme names")
|
||||||
"-n", "--names", action="store_true", help="list scheme names"
|
list_parser.add_argument("-f", "--flavours", action="store_true", help="list scheme flavours")
|
||||||
)
|
list_parser.add_argument("-m", "--modes", action="store_true", help="list scheme modes")
|
||||||
list_parser.add_argument(
|
list_parser.add_argument("-v", "--variants", action="store_true", help="list scheme variants")
|
||||||
"-f", "--flavours", action="store_true", help="list scheme flavours"
|
|
||||||
)
|
|
||||||
list_parser.add_argument(
|
|
||||||
"-m", "--modes", action="store_true", help="list scheme modes"
|
|
||||||
)
|
|
||||||
list_parser.add_argument(
|
|
||||||
"-v", "--variants", action="store_true", help="list scheme variants"
|
|
||||||
)
|
|
||||||
|
|
||||||
get_parser = scheme_command_parser.add_parser("get", help="get scheme properties")
|
get_parser = scheme_command_parser.add_parser("get", help="get scheme properties")
|
||||||
get_parser.set_defaults(cls=scheme.Get)
|
get_parser.set_defaults(cls=scheme.Get)
|
||||||
get_parser.add_argument(
|
get_parser.add_argument("-n", "--name", action="store_true", help="print the current scheme name")
|
||||||
"-n", "--name", action="store_true", help="print the current scheme name"
|
get_parser.add_argument("-f", "--flavour", action="store_true", help="print the current scheme flavour")
|
||||||
)
|
get_parser.add_argument("-m", "--mode", action="store_true", help="print the current scheme mode")
|
||||||
get_parser.add_argument(
|
get_parser.add_argument("-v", "--variant", action="store_true", help="print the current scheme variant")
|
||||||
"-f", "--flavour", action="store_true", help="print the current scheme flavour"
|
|
||||||
)
|
|
||||||
get_parser.add_argument(
|
|
||||||
"-m", "--mode", action="store_true", help="print the current scheme mode"
|
|
||||||
)
|
|
||||||
get_parser.add_argument(
|
|
||||||
"-v", "--variant", action="store_true", help="print the current scheme variant"
|
|
||||||
)
|
|
||||||
|
|
||||||
set_parser = scheme_command_parser.add_parser("set", help="set the current scheme")
|
set_parser = scheme_command_parser.add_parser("set", help="set the current scheme")
|
||||||
set_parser.set_defaults(cls=scheme.Set)
|
set_parser.set_defaults(cls=scheme.Set)
|
||||||
set_parser.add_argument(
|
set_parser.add_argument("--notify", action="store_true", help="send a notification on error")
|
||||||
"--notify", action="store_true", help="send a notification on error"
|
set_parser.add_argument("-r", "--random", action="store_true", help="switch to a random scheme")
|
||||||
)
|
set_parser.add_argument("-n", "--name", choices=get_scheme_names(), help="the name of the scheme to switch to")
|
||||||
set_parser.add_argument(
|
|
||||||
"-r", "--random", action="store_true", help="switch to a random scheme"
|
|
||||||
)
|
|
||||||
set_parser.add_argument(
|
|
||||||
"-n",
|
|
||||||
"--name",
|
|
||||||
choices=get_scheme_names(),
|
|
||||||
help="the name of the scheme to switch to",
|
|
||||||
)
|
|
||||||
set_parser.add_argument("-f", "--flavour", help="the flavour to switch to")
|
set_parser.add_argument("-f", "--flavour", help="the flavour to switch to")
|
||||||
set_parser.add_argument(
|
set_parser.add_argument("-m", "--mode", choices=["dark", "light"], help="the mode to switch to")
|
||||||
"-m", "--mode", choices=["dark", "light"], help="the mode to switch to"
|
set_parser.add_argument("-v", "--variant", choices=scheme_variants, help="the variant to switch to")
|
||||||
)
|
|
||||||
set_parser.add_argument(
|
|
||||||
"-v", "--variant", choices=scheme_variants, help="the variant to switch to"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create parser for screenshot opts
|
# Create parser for screenshot opts
|
||||||
screenshot_parser = command_parser.add_parser(
|
screenshot_parser = command_parser.add_parser("screenshot", help="take a screenshot")
|
||||||
"screenshot", help="take a screenshot"
|
|
||||||
)
|
|
||||||
screenshot_parser.set_defaults(cls=screenshot.Command)
|
screenshot_parser.set_defaults(cls=screenshot.Command)
|
||||||
|
screenshot_parser.add_argument("-r", "--region", nargs="?", const="slurp", help="take a screenshot of a region")
|
||||||
screenshot_parser.add_argument(
|
screenshot_parser.add_argument(
|
||||||
"-r", "--region", nargs="?", const="slurp", help="take a screenshot of a region"
|
"-f", "--freeze", action="store_true", help="freeze the screen while selecting a region"
|
||||||
)
|
|
||||||
screenshot_parser.add_argument(
|
|
||||||
"-f",
|
|
||||||
"--freeze",
|
|
||||||
action="store_true",
|
|
||||||
help="freeze the screen while selecting a region",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create parser for record opts
|
# Create parser for record opts
|
||||||
record_parser = command_parser.add_parser("record", help="start a screen recording")
|
record_parser = command_parser.add_parser("record", help="start a screen recording")
|
||||||
record_parser.set_defaults(cls=record.Command)
|
record_parser.set_defaults(cls=record.Command)
|
||||||
record_parser.add_argument(
|
record_parser.add_argument("-r", "--region", nargs="?", const="slurp", help="record a region")
|
||||||
"-r", "--region", nargs="?", const="slurp", help="record a region"
|
record_parser.add_argument("-s", "--sound", action="store_true", help="record audio")
|
||||||
)
|
|
||||||
record_parser.add_argument(
|
|
||||||
"-s", "--sound", action="store_true", help="record audio"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create parser for clipboard opts
|
# Create parser for clipboard opts
|
||||||
clipboard_parser = command_parser.add_parser(
|
clipboard_parser = command_parser.add_parser("clipboard", help="open clipboard history")
|
||||||
"clipboard", help="open clipboard history"
|
|
||||||
)
|
|
||||||
clipboard_parser.set_defaults(cls=clipboard.Command)
|
clipboard_parser.set_defaults(cls=clipboard.Command)
|
||||||
clipboard_parser.add_argument(
|
clipboard_parser.add_argument("-d", "--delete", action="store_true", help="delete from clipboard history")
|
||||||
"-d", "--delete", action="store_true", help="delete from clipboard history"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create parser for emoji-picker opts
|
# Create parser for emoji-picker opts
|
||||||
emoji_parser = command_parser.add_parser("emoji", help="emoji/glyph utilities")
|
emoji_parser = command_parser.add_parser("emoji", help="emoji/glyph utilities")
|
||||||
emoji_parser.set_defaults(cls=emoji.Command)
|
emoji_parser.set_defaults(cls=emoji.Command)
|
||||||
emoji_parser.add_argument(
|
emoji_parser.add_argument("-p", "--picker", action="store_true", help="open the emoji/glyph picker")
|
||||||
"-p", "--picker", action="store_true", help="open the emoji/glyph picker"
|
emoji_parser.add_argument("-f", "--fetch", action="store_true", help="fetch emoji/glyph data from remote")
|
||||||
)
|
|
||||||
emoji_parser.add_argument(
|
|
||||||
"-f", "--fetch", action="store_true", help="fetch emoji/glyph data from remote"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create parser for wallpaper opts
|
# Create parser for wallpaper opts
|
||||||
wallpaper_parser = command_parser.add_parser(
|
wallpaper_parser = command_parser.add_parser("wallpaper", help="manage the wallpaper")
|
||||||
"wallpaper", help="manage the wallpaper"
|
|
||||||
)
|
|
||||||
wallpaper_parser.set_defaults(cls=wallpaper.Command)
|
wallpaper_parser.set_defaults(cls=wallpaper.Command)
|
||||||
wallpaper_parser.add_argument(
|
wallpaper_parser.add_argument(
|
||||||
"-p",
|
"-p", "--print", nargs="?", const=get_wallpaper(), metavar="PATH", help="print the scheme for a wallpaper"
|
||||||
"--print",
|
|
||||||
nargs="?",
|
|
||||||
const=get_wallpaper(),
|
|
||||||
metavar="PATH",
|
|
||||||
help="print the scheme for a wallpaper",
|
|
||||||
)
|
)
|
||||||
wallpaper_parser.add_argument(
|
wallpaper_parser.add_argument(
|
||||||
"-r",
|
"-r", "--random", nargs="?", const=wallpapers_dir, metavar="DIR", help="switch to a random wallpaper"
|
||||||
"--random",
|
|
||||||
nargs="?",
|
|
||||||
const=wallpapers_dir,
|
|
||||||
metavar="DIR",
|
|
||||||
help="switch to a random wallpaper",
|
|
||||||
)
|
|
||||||
wallpaper_parser.add_argument(
|
|
||||||
"-f", "--file", help="the path to the wallpaper to switch to"
|
|
||||||
)
|
|
||||||
wallpaper_parser.add_argument(
|
|
||||||
"-n", "--no-filter", action="store_true", help="do not filter by size"
|
|
||||||
)
|
)
|
||||||
|
wallpaper_parser.add_argument("-f", "--file", help="the path to the wallpaper to switch to")
|
||||||
|
wallpaper_parser.add_argument("-n", "--no-filter", action="store_true", help="do not filter by size")
|
||||||
wallpaper_parser.add_argument(
|
wallpaper_parser.add_argument(
|
||||||
"-t",
|
"-t",
|
||||||
"--threshold",
|
"--threshold",
|
||||||
@@ -210,8 +115,6 @@ def parse_args() -> (argparse.ArgumentParser, argparse.Namespace):
|
|||||||
# Create parser for pip opts
|
# Create parser for pip opts
|
||||||
pip_parser = command_parser.add_parser("pip", help="picture in picture utilities")
|
pip_parser = command_parser.add_parser("pip", help="picture in picture utilities")
|
||||||
pip_parser.set_defaults(cls=pip.Command)
|
pip_parser.set_defaults(cls=pip.Command)
|
||||||
pip_parser.add_argument(
|
pip_parser.add_argument("-d", "--daemon", action="store_true", help="start the daemon")
|
||||||
"-d", "--daemon", action="store_true", help="start the daemon"
|
|
||||||
)
|
|
||||||
|
|
||||||
return parser, parser.parse_args()
|
return parser, parser.parse_args()
|
||||||
|
|||||||
@@ -66,18 +66,10 @@ class Command:
|
|||||||
and c["title"] == "btop"
|
and c["title"] == "btop"
|
||||||
and c["workspace"]["name"] == "special:sysmon",
|
and c["workspace"]["name"] == "special:sysmon",
|
||||||
# ["foot", "-a", "btop", "-T", "btop", "fish", "-C", "exec btop"],
|
# ["foot", "-a", "btop", "-T", "btop", "fish", "-C", "exec btop"],
|
||||||
["kitty", "-T", "btop", "fish", "-c", "btop"],
|
["sleep", "1", "kitty", "-T", "btop", "fish", "-c", "btop"],
|
||||||
)
|
)
|
||||||
hypr.dispatch("togglespecialworkspace", "sysmon")
|
hypr.dispatch("togglespecialworkspace", "sysmon")
|
||||||
|
|
||||||
def steam(self) -> None:
|
|
||||||
self.spawn_or_move(
|
|
||||||
lambda c: c["class"] == "steam" or c["initialTitle"] == "Steam",
|
|
||||||
["steam"],
|
|
||||||
"steam",
|
|
||||||
)
|
|
||||||
hypr.dispatch("togglespecialworkspace", "steam")
|
|
||||||
|
|
||||||
def todo(self) -> None:
|
def todo(self) -> None:
|
||||||
self.spawn_or_move(lambda c: c["class"] == "Todoist", ["todoist"], "todo")
|
self.spawn_or_move(lambda c: c["class"] == "Todoist", ["todoist"], "todo")
|
||||||
hypr.dispatch("togglespecialworkspace", "todo")
|
hypr.dispatch("togglespecialworkspace", "todo")
|
||||||
|
|||||||
Reference in New Issue
Block a user