forked from Shinonome/dots-hyprland
add random osu seasonal wallpaper button
This commit is contained in:
@@ -42,7 +42,7 @@ Item { // Wrapper
|
||||
{
|
||||
action: "konachanwallpaper",
|
||||
execute: () => {
|
||||
Quickshell.execDetached([Quickshell.shellPath("scripts/colors/random_konachan_wall.sh")]);
|
||||
Quickshell.execDetached([Quickshell.shellPath("scripts/colors/random/random_konachan_wall.sh")]);
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -14,12 +14,13 @@ ContentPage {
|
||||
forceWidth: true
|
||||
|
||||
Process {
|
||||
id: konachanWallProc
|
||||
id: randomWallProc
|
||||
property string status: ""
|
||||
command: ["bash", "-c", FileUtils.trimFileProtocol(`${Directories.scriptPath}/colors/random_konachan_wall.sh`)]
|
||||
property string scriptPath: `${Directories.scriptPath}/colors/random/random_konachan_wall.sh`
|
||||
command: ["bash", "-c", FileUtils.trimFileProtocol(randomWallProc.scriptPath)]
|
||||
stdout: SplitParser {
|
||||
onRead: data => {
|
||||
konachanWallProc.status = data.trim();
|
||||
randomWallProc.status = data.trim();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -90,19 +91,35 @@ ContentPage {
|
||||
|
||||
ColumnLayout {
|
||||
RippleButtonWithIcon {
|
||||
id: rndWallBtn
|
||||
enabled: !randomWallProc.running
|
||||
visible: Config.options.policies.weeb === 1
|
||||
Layout.fillWidth: true
|
||||
buttonRadius: Appearance.rounding.small
|
||||
materialIcon: "ifl"
|
||||
mainText: konachanWallProc.running ? Translation.tr("Be patient...") : Translation.tr("Random: Konachan")
|
||||
mainText: randomWallProc.running ? Translation.tr("Be patient...") : Translation.tr("Random: Konachan")
|
||||
onClicked: {
|
||||
konachanWallProc.running = true;
|
||||
randomWallProc.scriptPath = `${Directories.scriptPath}/colors/random/random_konachan_wall.sh`;
|
||||
randomWallProc.running = true;
|
||||
}
|
||||
StyledToolTip {
|
||||
text: Translation.tr("Random SFW Anime wallpaper from Konachan\nImage is saved to ~/Pictures/Wallpapers")
|
||||
}
|
||||
}
|
||||
RippleButtonWithIcon {
|
||||
enabled: !randomWallProc.running
|
||||
visible: Config.options.policies.weeb === 1
|
||||
Layout.fillWidth: true
|
||||
buttonRadius: Appearance.rounding.small
|
||||
materialIcon: "ifl"
|
||||
mainText: randomWallProc.running ? Translation.tr("Be patient...") : Translation.tr("Random: osu! seasonal")
|
||||
onClicked: {
|
||||
randomWallProc.scriptPath = `${Directories.scriptPath}/colors/random/random_osu_wall.sh`;
|
||||
randomWallProc.running = true;
|
||||
}
|
||||
StyledToolTip {
|
||||
text: Translation.tr("Random osu! seasonal background\nImage is saved to ~/Pictures/Wallpapers")
|
||||
}
|
||||
}
|
||||
RippleButtonWithIcon {
|
||||
Layout.fillWidth: true
|
||||
materialIcon: "wallpaper"
|
||||
@@ -154,17 +171,6 @@ ContentPage {
|
||||
dark: true
|
||||
}
|
||||
}
|
||||
|
||||
ConfigSwitch {
|
||||
text: Translation.tr("Transparency")
|
||||
checked: Config.options.appearance.transparency.enable
|
||||
onCheckedChanged: {
|
||||
Config.options.appearance.transparency.enable = checked;
|
||||
}
|
||||
StyledToolTip {
|
||||
text: Translation.tr("Might look ass. Unsupported.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,6 +219,17 @@ ContentPage {
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
ConfigSwitch {
|
||||
text: Translation.tr("Transparency")
|
||||
checked: Config.options.appearance.transparency.enable
|
||||
onCheckedChanged: {
|
||||
Config.options.appearance.transparency.enable = checked;
|
||||
}
|
||||
StyledToolTip {
|
||||
text: Translation.tr("Might look ass. Unsupported.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ContentSection {
|
||||
|
||||
+3
-3
@@ -32,11 +32,11 @@ page=$((1 + RANDOM % 1000));
|
||||
response=$(curl "https://konachan.net/post.json?tags=rating%3Asafe&limit=1&page=$page")
|
||||
link=$(echo "$response" | jq '.[0].file_url' -r);
|
||||
ext=$(echo "$link" | awk -F. '{print $NF}')
|
||||
downloadPath="$PICTURES_DIR/Wallpapers/konachan_random_image.$ext"
|
||||
downloadPath="$PICTURES_DIR/Wallpapers/random_wallpaper.$ext"
|
||||
illogicalImpulseConfigPath="$HOME/.config/illogical-impulse/config.json"
|
||||
currentWallpaperPath=$(jq -r '.background.wallpaperPath' $illogicalImpulseConfigPath)
|
||||
if [ "$downloadPath" == "$currentWallpaperPath" ]; then
|
||||
downloadPath="$PICTURES_DIR/Wallpapers/konachan_random_image-1.$ext"
|
||||
downloadPath="$PICTURES_DIR/Wallpapers/random_wallpaper-1.$ext"
|
||||
fi
|
||||
curl "$link" -o "$downloadPath"
|
||||
"$SCRIPT_DIR/switchwall.sh" --image "$downloadPath"
|
||||
"$SCRIPT_DIR/../switchwall.sh" --image "$downloadPath"
|
||||
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
get_pictures_dir() {
|
||||
if command -v xdg-user-dir &> /dev/null; then
|
||||
xdg-user-dir PICTURES
|
||||
return
|
||||
fi
|
||||
|
||||
local config_file="${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs"
|
||||
if [ -f "$config_file" ]; then
|
||||
local pictures_path
|
||||
pictures_path=$(source "$config_file" >/dev/null 2>&1; echo "$XDG_PICTURES_DIR")
|
||||
echo "${pictures_path/#\$HOME/$HOME}"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "$HOME/Pictures"
|
||||
}
|
||||
|
||||
QUICKSHELL_CONFIG_NAME="ii"
|
||||
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||
XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
|
||||
PICTURES_DIR=$(get_pictures_dir)
|
||||
CONFIG_DIR="$XDG_CONFIG_HOME/quickshell/$QUICKSHELL_CONFIG_NAME"
|
||||
CACHE_DIR="$XDG_CACHE_HOME/quickshell"
|
||||
STATE_DIR="$XDG_STATE_HOME/quickshell"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
mkdir -p "$PICTURES_DIR/Wallpapers"
|
||||
|
||||
response=$(curl "https://osu.ppy.sh/api/v2/seasonal-backgrounds")
|
||||
images=$(echo "$response" | jq '.backgrounds | length' -r);
|
||||
randomIndex=$((RANDOM % images));
|
||||
link=$(echo "$response" | jq ".backgrounds[$randomIndex].url" -r)
|
||||
ext=$(echo "$link" | awk -F. '{print $NF}')
|
||||
downloadPath="$PICTURES_DIR/Wallpapers/random_wallpaper.$ext"
|
||||
illogicalImpulseConfigPath="$HOME/.config/illogical-impulse/config.json"
|
||||
currentWallpaperPath=$(jq -r '.background.wallpaperPath' $illogicalImpulseConfigPath)
|
||||
if [ "$downloadPath" == "$currentWallpaperPath" ]; then
|
||||
downloadPath="$PICTURES_DIR/Wallpapers/random_wallpaper-1.$ext"
|
||||
fi
|
||||
curl "$link" -o "$downloadPath"
|
||||
"$SCRIPT_DIR/../switchwall.sh" --image "$downloadPath"
|
||||
@@ -44,7 +44,7 @@ ApplicationWindow {
|
||||
Process {
|
||||
id: konachanWallProc
|
||||
property string status: ""
|
||||
command: ["bash", "-c", Quickshell.shellPath("scripts/colors/random_konachan_wall.sh")]
|
||||
command: ["bash", "-c", Quickshell.shellPath("scripts/colors/random/random_konachan_wall.sh")]
|
||||
stdout: SplitParser {
|
||||
onRead: data => {
|
||||
console.log(`Konachan wall proc output: ${data}`);
|
||||
|
||||
Reference in New Issue
Block a user