This commit is contained in:
2026-04-01 14:06:08 +02:00
parent ce30cb93d5
commit cb6606340f
16 changed files with 108 additions and 75 deletions
+3 -1
View File
@@ -20,7 +20,7 @@ spawn-at-startup "wl-paste" "--type" "image" "--watch" "cliphist" "store"
spawn-at-startup "solaar" "-w" "hide" spawn-at-startup "solaar" "-w" "hide"
// Some other heavy apps // Some other heavy apps
// spawn-at-startup "sunshine" spawn-at-startup "sunshine"
// spawn-at-startup "spotify" // spawn-at-startup "spotify"
// spawn-at-startup "thunderbird" // spawn-at-startup "thunderbird"
@@ -32,3 +32,5 @@ spawn-at-startup "quickshell"
// According to (https://ghostty.org/docs/linux/systemd#starting-ghostty-at-login) // According to (https://ghostty.org/docs/linux/systemd#starting-ghostty-at-login)
// spawn-sh-at-startup "systemctl start --user app-com.mitchellh.ghostty.service" // spawn-sh-at-startup "systemctl start --user app-com.mitchellh.ghostty.service"
//
// spawn-at-startup "flatpak" "run" "com.gopeed.Gopeed" "--hidden"
+16 -8
View File
@@ -1,17 +1,25 @@
[Settings] [Settings]
gtk-theme-name=catppuccin-mocha-blue-standard+default gtk-application-prefer-dark-theme=true
gtk-icon-theme-name=Papirus gtk-button-images=true
gtk-font-name=Sarasa UI SC 10 gtk-cursor-blink=true
gtk-cursor-blink-time=1000
gtk-cursor-theme-name=Bibata-Modern-Ice gtk-cursor-theme-name=Bibata-Modern-Ice
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_ICONS gtk-decoration-layout=icon:minimize,maximize,close
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-enable-animations=true
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1 gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=0 gtk-enable-input-feedback-sounds=0
gtk-font-name=Sarasa UI SC, 10
gtk-icon-theme-name=Papirus
gtk-menu-images=true
gtk-modules=colorreload-gtk-module
gtk-primary-button-warps-slider=true
gtk-sound-theme-name=ocean
gtk-theme-name=catppuccin-mocha-blue-standard+default
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-toolbar-style=3
gtk-xft-antialias=1 gtk-xft-antialias=1
gtk-xft-dpi=122880
gtk-xft-hinting=1 gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1
+11 -4
View File
@@ -1,7 +1,14 @@
[Settings] [Settings]
gtk-theme-name=catppuccin-mocha-blue-standard+default gtk-application-prefer-dark-theme=true
gtk-icon-theme-name=Papirus gtk-cursor-blink=true
gtk-font-name=Sarasa UI SC 10 gtk-cursor-blink-time=1000
gtk-cursor-theme-name=Bibata-Modern-Ice gtk-cursor-theme-name=Bibata-Modern-Ice
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
gtk-application-prefer-dark-theme=1 gtk-decoration-layout=icon:minimize,maximize,close
gtk-enable-animations=true
gtk-font-name=Sarasa UI SC, 10
gtk-icon-theme-name=Papirus
gtk-primary-button-warps-slider=true
gtk-sound-theme-name=ocean
gtk-theme-name=catppuccin-mocha-blue-standard+default
gtk-xft-dpi=122880
@@ -106,6 +106,10 @@ Singleton {
running: false running: false
repeat: false repeat: false
onTriggered: { onTriggered: {
if (BackgroundService.isProcessing) {
reloadTimer.restart();
return ;
}
reloadColors(ShellState.colorState); reloadColors(ShellState.colorState);
} }
} }
@@ -70,6 +70,7 @@ Variants {
id: leftLayout id: leftLayout
height: parent.height - Style.marginXS * 2 height: parent.height - Style.marginXS * 2
spacing: Style.marginM
anchors { anchors {
left: parent.left left: parent.left
@@ -92,22 +93,20 @@ Variants {
} }
Separator { Separator {
implicitWidth: Style.marginXL
} }
Workspace { Workspace {
screen: modelData screen: modelData
horizontalPadding: 0
} }
Separator { Separator {
implicitWidth: Style.marginXL
} }
CavaBar { CavaBar {
} }
Separator { Separator {
implicitWidth: Style.marginXL
} }
FocusedWindow { FocusedWindow {
@@ -134,6 +133,7 @@ Variants {
id: rightLayout id: rightLayout
height: parent.height - Style.marginXS * 2 height: parent.height - Style.marginXS * 2
spacing: Style.marginM
anchors { anchors {
right: parent.right right: parent.right
@@ -167,6 +167,7 @@ Variants {
y: LyricsService.showLyricsBar ? Style.barHeight : 0 y: LyricsService.showLyricsBar ? Style.barHeight : 0
opacity: LyricsService.showLyricsBar ? 0 : 1 opacity: LyricsService.showLyricsBar ? 0 : 1
spacing: Style.marginM spacing: Style.marginM
anchors.margins: 0
Component.onCompleted: { Component.onCompleted: {
if (!LyricsService.showLyricsBar) if (!LyricsService.showLyricsBar)
SystemStatService.registerComponent("BarMonitors"); SystemStatService.registerComponent("BarMonitors");
@@ -204,9 +205,6 @@ Variants {
screen: modelData screen: modelData
} }
Volume {
}
Behavior on y { Behavior on y {
NumberAnimation { NumberAnimation {
duration: 300 duration: 300
@@ -261,6 +259,9 @@ Variants {
} }
Volume {
}
Separator { Separator {
} }
@@ -15,6 +15,7 @@ Singleton {
property string previewPath: "" property string previewPath: ""
property string displayPath: "" property string displayPath: ""
property bool inPreviewMode: false property bool inPreviewMode: false
property bool isProcessing: false
// Preserved for getBlurredOverview // Preserved for getBlurredOverview
readonly property string tintColor: Colors.mSurface readonly property string tintColor: Colors.mSurface
readonly property real tintOpacity: 0.5 readonly property real tintOpacity: 0.5
@@ -24,9 +25,12 @@ Singleton {
function loadBackground() { function loadBackground() {
if (!SettingsService.backgroundPath) { if (!SettingsService.backgroundPath) {
Logger.w("BackgroundService", "No background path set, skipping loading background."); Logger.w("BackgroundService", "No background path set, skipping loading background.");
isProcessing = false;
return ; return ;
} }
isProcessing = true;
ImageCacheService.getLarge(SettingsService.backgroundPath, backgroundWidth, backgroundHeight, function(path) { ImageCacheService.getLarge(SettingsService.backgroundPath, backgroundWidth, backgroundHeight, function(path) {
isProcessing = false;
if (!path) { if (!path) {
Logger.e("BackgroundService", "Failed to load background image from path: " + SettingsService.backgroundPath); Logger.e("BackgroundService", "Failed to load background image from path: " + SettingsService.backgroundPath);
cachedPath = ""; cachedPath = "";
@@ -55,12 +59,13 @@ Singleton {
if (!path) if (!path)
return ; return ;
previewPath = ""; // clear preview path previewPath = "";
cachedPath = ""; // clear cached path isProcessing = true;
ImageCacheService.checkFileExists(path, function(exists) { ImageCacheService.checkFileExists(path, function(exists) {
if (!exists) if (!exists) {
isProcessing = false;
return ; return ;
}
SettingsService.backgroundPath = path; SettingsService.backgroundPath = path;
loadTimer.restart(); loadTimer.restart();
}); });
@@ -106,16 +111,6 @@ Singleton {
} }
} }
Timer {
id: setDisplayTimer
interval: 100
running: false
repeat: false
onTriggered: {
}
}
Process { Process {
id: wallreelProcess id: wallreelProcess
@@ -251,7 +251,7 @@ Singleton {
} }
const player = this.queuedPlayer.toLowerCase(); const player = this.queuedPlayer.toLowerCase();
this.queuedPlayer = ""; this.queuedPlayer = "";
this.command = ["lrcfetch", "--player", player, "fetch"]; this.command = ["lrx", "--player", player, "fetch"];
this.running = true; this.running = true;
} }
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
url=$(playerctl --player=elisa metadata xesam:url)
if [[ "$url" != file://* ]]; then
exit 1
fi
path="${url#file://}"
lyrics_path="${path%.*}.lrc"
if [[ ! -e "$lyrics_path" ]]; then
exit 1
fi
cat "$lyrics_path"
@@ -1,18 +1,22 @@
#!/usr/bin/env bash #!/usr/bin/env bash
pid=$(pgrep -x quickshell) pids=$(pgrep -x quickshell)
[ -z "$pid" ] && exit 1 [ -z "$pids" ] && exit 1
# for child in $(pgrep -P "$pid" 2>/dev/null); do # for child in $(pgrep -P "$pid" 2>/dev/null); do
# kill "$child" # kill "$child"
# done # done
children=$(pgrep -P "$pid" 2>/dev/null) children=()
kill "$pid" for pid in $pids; do
# children=$(pgrep -P "$pid" 2>/dev/null)
children+=($!)
kill "$pid" || true
done
sleep 0.5 sleep 0.5
for child in $children; do for child in "${children[@]}"; do
kill "$child" || true kill "$child" || true
done done
@@ -19,7 +19,7 @@ WORDCHARS=${WORDCHARS//[\/=\*\.-]/}
bindkey '^[[1;5D' backward-word # C-Left bindkey '^[[1;5D' backward-word # C-Left
bindkey '^[[1;5C' forward-word # C-Right bindkey '^[[1;5C' forward-word # C-Right
bindkey '^H' backward-kill-word # C-Backspace (also C-H) bindkey '^H' backward-kill-word # C-Backspace (also C-H)
# bindkey '^Z' undo # C-z bindkey '^Z' undo # C-z
# A-s to prepend sudo # A-s to prepend sudo
uy_prepend_sudo() { uy_prepend_sudo() {
@@ -14,3 +14,9 @@ zstyle ':completion:*' squeeze-slashes true
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
zstyle ':completion:*:descriptions' format '%F{cyan}-- %d --%f' zstyle ':completion:*:descriptions' format '%F{cyan}-- %d --%f'
zstyle ':completion:*:warnings' format '%F{red}-- no matches --%f' zstyle ':completion:*:warnings' format '%F{red}-- no matches --%f'
# Jujutsu
if (( $+commands[jj] )); then
source <(jj util completion zsh)
fi
@@ -0,0 +1,2 @@
*
!.gitignore
+13
View File
@@ -1,8 +1,21 @@
# lrx completions
fpath=(/home/kolkas/.zsh/completions $fpath)
#!/hint/zsh #!/hint/zsh
[[ $- != *i* ]] && return [[ $- != *i* ]] && return
for _f in "${XDG_CONFIG_HOME:-$HOME/.config}"/zsh/conf.d/*.zsh(N); do for _f in "${XDG_CONFIG_HOME:-$HOME/.config}"/zsh/conf.d/*.zsh(N); do
source "$_f" source "$_f"
done done
for _f in "${XDG_CONFIG_HOME:-$HOME/.config}"/zsh/funcs.d/*.zsh(N); do
source "$_f"
done
for _f in "${XDG_CONFIG_HOME:-$HOME/.config}"/zsh/funcs.d/_*(N); do
source "$_f"
done
unset _f unset _f
+10 -1
View File
@@ -6,7 +6,16 @@
} }
. "$HOME/.local/snippets/apply-color-helper" . "$HOME/.local/snippets/apply-color-helper"
cp -f "$path"/../../../../assets/yazi-themes/catppuccin-mocha-"$colorName".toml "$path"/../yazi/theme.toml || { dir="$path"/../../../../assets
file=$(find "$dir" -type f -name "catppuccin-mocha-${colorName}.toml" | head -n 1)
[[ -z "$file" ]] && {
log_error "Theme file not found for color: $colorName"
exit 1
}
cp -f "$file" "$path"/../yazi/theme.toml || {
log_error "Failed to copy theme file" log_error "Failed to copy theme file"
exit 1 exit 1
} }
+15 -15
View File
@@ -10,11 +10,11 @@ find_position = { fg = "#f5c2e7", bg = "reset", italic = true }
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" } marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" } marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" } marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
marker_selected = { fg = "#89b4fa", bg = "#89b4fa" } marker_selected = { fg = "#f5c2e7", bg = "#f5c2e7" }
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" } count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" } count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
count_selected = { fg = "#1e1e2e", bg = "#89b4fa" } count_selected = { fg = "#1e1e2e", bg = "#f5c2e7" }
border_symbol = "│" border_symbol = "│"
border_style = { fg = "#7f849c" } border_style = { fg = "#7f849c" }
@@ -26,8 +26,8 @@ active = { fg = "#1e1e2e", bg = "#cdd6f4", bold = true }
inactive = { fg = "#cdd6f4", bg = "#45475a" } inactive = { fg = "#cdd6f4", bg = "#45475a" }
[mode] [mode]
normal_main = { fg = "#1e1e2e", bg = "#89b4fa", bold = true } normal_main = { fg = "#1e1e2e", bg = "#f5c2e7", bold = true }
normal_alt = { fg = "#89b4fa", bg = "#313244"} normal_alt = { fg = "#f5c2e7", bg = "#313244"}
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true } select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
select_alt = { fg = "#a6e3a1", bg = "#313244"} select_alt = { fg = "#a6e3a1", bg = "#313244"}
@@ -37,7 +37,7 @@ unset_alt = { fg = "#f2cdcd", bg = "#313244"}
[indicator] [indicator]
parent = { fg = "#1e1e2e", bg = "#cdd6f4" } parent = { fg = "#1e1e2e", bg = "#cdd6f4" }
current = { fg = "#1e1e2e", bg = "#89b4fa" } current = { fg = "#1e1e2e", bg = "#f5c2e7" }
preview = { fg = "#1e1e2e", bg = "#cdd6f4" } preview = { fg = "#1e1e2e", bg = "#cdd6f4" }
[status] [status]
@@ -55,29 +55,29 @@ perm_exec = { fg = "#a6e3a1" }
perm_sep = { fg = "#7f849c" } perm_sep = { fg = "#7f849c" }
[input] [input]
border = { fg = "#89b4fa" } border = { fg = "#f5c2e7" }
title = {} title = {}
value = {} value = {}
selected = { reversed = true } selected = { reversed = true }
[pick] [pick]
border = { fg = "#89b4fa" } border = { fg = "#f5c2e7" }
active = { fg = "#f5c2e7" } active = { fg = "#f5c2e7" }
inactive = {} inactive = {}
[confirm] [confirm]
border = { fg = "#89b4fa" } border = { fg = "#f5c2e7" }
title = { fg = "#89b4fa" } title = { fg = "#f5c2e7" }
body = {} body = {}
list = {} list = {}
btn_yes = { reversed = true } btn_yes = { reversed = true }
btn_no = {} btn_no = {}
[cmp] [cmp]
border = { fg = "#89b4fa" } border = { fg = "#f5c2e7" }
[tasks] [tasks]
border = { fg = "#89b4fa" } border = { fg = "#f5c2e7" }
title = {} title = {}
hovered = { fg = "#f5c2e7", bold = true } hovered = { fg = "#f5c2e7", bold = true }
@@ -126,13 +126,13 @@ rules = [
{ url = "*/", is = "dummy", bg = "#f38ba8" }, { url = "*/", is = "dummy", bg = "#f38ba8" },
# Fallback # Fallback
{ url = "*/", fg = "#89b4fa" }, { url = "*/", fg = "#f5c2e7" },
] ]
[spot] [spot]
border = { fg = "#89b4fa" } border = { fg = "#f5c2e7" }
title = { fg = "#89b4fa" } title = { fg = "#f5c2e7" }
tbl_cell = { fg = "#89b4fa", reversed = true } tbl_cell = { fg = "#f5c2e7", reversed = true }
tbl_col = { bold = true } tbl_col = { bold = true }
[icon] [icon]