Cli tool #9
@@ -20,7 +20,7 @@ Searcher {
|
|||||||
actualCurrent = path;
|
actualCurrent = path;
|
||||||
WallpaperPath.currentWallpaperPath = path;
|
WallpaperPath.currentWallpaperPath = path;
|
||||||
Wallust.generateColors(WallpaperPath.currentWallpaperPath);
|
Wallust.generateColors(WallpaperPath.currentWallpaperPath);
|
||||||
Quickshell.execDetached(["sh", "-c", `python3 ${Quickshell.shellPath("scripts/LockScreenBg.py")} --input_image=${root.actualCurrent} --output_path=${Paths.state}/lockscreen_bg.png --blur_amount=${Config.lock.blurAmount}`]);
|
Quickshell.execDetached(["sh", "-c", `zshell-cli wallpaper lockscreen --input_image=${root.actualCurrent} --output_path=${Paths.state}/lockscreen_bg.png --blur_amount=${Config.lock.blurAmount}`]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function preview(path: string): void {
|
function preview(path: string): void {
|
||||||
|
|||||||
@@ -5,22 +5,33 @@ args = ["qs", "-c", "zshell"]
|
|||||||
|
|
||||||
app = typer.Typer()
|
app = typer.Typer()
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def kill():
|
def kill():
|
||||||
subprocess.run(args + ["kill"], check=True)
|
subprocess.run(args + ["kill"], check=True)
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def start(no_daemon: bool = False):
|
def start(no_daemon: bool = False):
|
||||||
subprocess.run(args + ([] if no_daemon else ["-d"]), check=True)
|
subprocess.run(args + ([] if no_daemon else ["-d"]), check=True)
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def show():
|
def show():
|
||||||
subprocess.run(args + ["ipc"] + ["show"], check=True)
|
subprocess.run(args + ["ipc"] + ["show"], check=True)
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def log():
|
def log():
|
||||||
subprocess.run(args + ["log"], check=True)
|
subprocess.run(args + ["log"], check=True)
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def lock():
|
def lock():
|
||||||
subprocess.run(args + ["ipc"] + ["call"] + ["lock"] + ["lock"], check=True)
|
subprocess.run(args + ["ipc"] + ["call"] + ["lock"] + ["lock"], check=True)
|
||||||
|
|
||||||
|
|
||||||
|
@app.command()
|
||||||
|
def call(target: str, method: str, method_args: list[str] = typer.Argument(None)):
|
||||||
|
subprocess.run(args + ["ipc"] + ["call"] + [target] +
|
||||||
|
[method] + method_args, check=True)
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
import typer
|
import typer
|
||||||
|
|
||||||
|
from typing import Annotated
|
||||||
|
from PIL import Image, ImageFilter
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
args = ["qs", "-c", "zshell"]
|
args = ["qs", "-c", "zshell"]
|
||||||
@@ -12,3 +14,27 @@ app = typer.Typer()
|
|||||||
def set(wallpaper: Path):
|
def set(wallpaper: Path):
|
||||||
subprocess.run(args + ["ipc"] + ["call"] +
|
subprocess.run(args + ["ipc"] + ["call"] +
|
||||||
["wallpaper"] + ["set"] + [wallpaper], check=True)
|
["wallpaper"] + ["set"] + [wallpaper], check=True)
|
||||||
|
|
||||||
|
|
||||||
|
@app.command()
|
||||||
|
def lockscreen(
|
||||||
|
input_image: Annotated[
|
||||||
|
Path,
|
||||||
|
typer.Option(),
|
||||||
|
],
|
||||||
|
output_path: Annotated[
|
||||||
|
Path,
|
||||||
|
typer.Option(),
|
||||||
|
],
|
||||||
|
blur_amount: int = 20
|
||||||
|
):
|
||||||
|
img = Image.open(input_image)
|
||||||
|
size = img.size
|
||||||
|
if (size[0] < 3840 or size[1] < 2160):
|
||||||
|
img = img.resize((size[0] // 2, size[1] // 2), Image.NEAREST)
|
||||||
|
else:
|
||||||
|
img = img.resize((size[0] // 4, size[1] // 4), Image.NEAREST)
|
||||||
|
|
||||||
|
img = img.filter(ImageFilter.GaussianBlur(blur_amount))
|
||||||
|
|
||||||
|
img.save(output_path, "PNG")
|
||||||
|
|||||||
Reference in New Issue
Block a user