From a1d7377ca1ad0baa36acd6b384676b40f4150a80 Mon Sep 17 00:00:00 2001 From: Never Gude Date: Mon, 29 Dec 2025 23:40:17 +0100 Subject: [PATCH] add scripts --- .config/dconf/user | Bin 34796 -> 35234 bytes .config/fish/fish_variables | 2 +- .config/fuzzel/fuzzel.ini | 2 +- .config/niri/config.kdl | 21 +++-- .config/qutebrowser/autoconfig.yml | 36 +++++++- .config/qutebrowser/config.py | 4 +- .config/tuxedo-control-center/SS | 2 +- .config/tuxedo-control-center/SingletonCookie | 2 +- .config/tuxedo-control-center/SingletonLock | 2 +- .config/waybar/config.jsonc | 85 +++++++++++++++++- .config/waybar/style.css | 44 +++++---- .local/scripts/albumcover-update.bash | 13 +++ .local/scripts/musicmenu.fish | 35 ++++++++ .local/scripts/openbox-xwayland | 3 + .local/scripts/playlist-dl.bash | 30 +++++++ .local/scripts/playlistmenu.fish | 8 ++ .local/scripts/powermenu.fish | 21 +++++ 17 files changed, 265 insertions(+), 45 deletions(-) create mode 100755 .local/scripts/albumcover-update.bash create mode 100755 .local/scripts/musicmenu.fish create mode 100755 .local/scripts/openbox-xwayland create mode 100755 .local/scripts/playlist-dl.bash create mode 100755 .local/scripts/playlistmenu.fish create mode 100755 .local/scripts/powermenu.fish diff --git a/.config/dconf/user b/.config/dconf/user index acbcd09e30a8176870b2c49891741e82ffa5eda3..42109a223df6c74b1850c7ad3915d83107514671 100644 GIT binary patch literal 35234 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
WdhNy|Uq4!;C)uD$jKZe?gAKZN}Sl*Tq4A-gKA zcJ)5I7yPzp;Rv;7X=8j0(Qm-K2M&JbE#gbdJ`aSC1zFt+zEC+x%gzsibHKhHmu8

}aH4bz8J)2ltgW_K)C$ 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 literal 34796 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 diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables index 49c0c85..da5231d 100644 --- a/.config/fish/fish_variables +++ b/.config/fish/fish_variables @@ -44,4 +44,4 @@ SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack SETUVAR fish_pager_color_selected_completion:\x1d SETUVAR fish_pager_color_selected_description:\x1d SETUVAR fish_pager_color_selected_prefix:\x1d -SETUVAR fish_user_paths:/usr/local/texlive/2025/bin/x86_64\x2dlinux\x1e/home/never/\x2ecargo/bin\x1e/home/never/\x2elocal/bin +SETUVAR fish_user_paths:/home/never/\x2elocal/scripts\x1e/usr/local/texlive/2025/bin/x86_64\x2dlinux\x1e/home/never/\x2ecargo/bin\x1e/home/never/\x2elocal/bin diff --git a/.config/fuzzel/fuzzel.ini b/.config/fuzzel/fuzzel.ini index 708c4d0..c54ba5e 100644 --- a/.config/fuzzel/fuzzel.ini +++ b/.config/fuzzel/fuzzel.ini @@ -68,7 +68,7 @@ radius=0 [dmenu] # mode=text # text|index -# exit-immediately-if-empty=no +exit-immediately-if-empty=yes [key-bindings] # cancel=Escape Control+g Control+c Control+bracketleft diff --git a/.config/niri/config.kdl b/.config/niri/config.kdl index 99209c5..bfe9259 100644 --- a/.config/niri/config.kdl +++ b/.config/niri/config.kdl @@ -157,10 +157,10 @@ layout { // You can change how the focus ring looks. focus-ring { // Uncomment this line to disable the focus ring. - on + off // How many logical pixels the ring extends out from the windows. - width 4 + width 2 // Colors can be set in a variety of ways: // - CSS named colors: "red" @@ -196,9 +196,9 @@ layout { border { // The settings are the same as for the focus ring. // If you enable the border, you probably want to disable the focus ring. - off + on - width 4 + width 2 active-color "#ffc87f" inactive-color "#505050" @@ -365,8 +365,12 @@ binds { // Suggested binds for running programs: terminal, app launcher, screen locker. Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; } Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; } + Mod+B hotkey-overlay-title="Open a Browser: qutebrowser" { spawn "qutebrowser"; } Super+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "swaylock"; } - + Mod+M hotkey-overlay-title="Search mpd Library: fuzzel" { spawn-sh "musicmenu.fish"; } + Mod+Shift+M hotkey-overlay-title="Browse mpd Playlist: fuzzel" { spawn-sh "playlistmenu.fish"; } + + Mod+P hotkey-overlay-title="Browse mpd Playlist: fuzzel" { spawn-sh "powermenu.fish"; } // Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc. // Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`. // For example, this is a standard bind to toggle the screen reader (orca). @@ -380,6 +384,9 @@ binds { XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + XF86AudioPlay allow-when-locked=true { spawn-sh "mpc toggle"; } + XF86AudioPrev allow-when-locked=true { spawn-sh "mpc prev"; } + XF86AudioNext allow-when-locked=true { spawn-sh "mpc next"; } // Example brightness key mappings for brightnessctl. // You can use regular spawn with multiple arguments too (to avoid going through "sh"), // but you need to manually put each argument in separate "" quotes. @@ -535,8 +542,8 @@ binds { // The following binds move the focused window in and out of a column. // If the window is alone, they will consume it into the nearby column to the side. // If the window is already in a column, they will expel it out. - Mod+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } + Mod+Ctrl+Z { consume-or-expel-window-left; } + Mod+Ctrl+O { consume-or-expel-window-right; } // Consume one window from the right to the bottom of the focused column. Mod+Comma { consume-window-into-column; } diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml index 04b803a..80980b9 100644 --- a/.config/qutebrowser/autoconfig.yml +++ b/.config/qutebrowser/autoconfig.yml @@ -6,8 +6,40 @@ config_version: 2 settings: + colors.completion.category.bg: + global: '#3c3836' + colors.completion.category.border.bottom: + global: '#3c3836' + colors.completion.category.border.top: + global: '#83a598' + colors.completion.category.fg: + global: '#83a598' + colors.completion.item.selected.bg: + global: '#7c6f64' + colors.completion.item.selected.fg: + global: '#fbf1c7' + colors.prompts.bg: + global: '#665c54' + colors.prompts.fg: + global: '#d5c4a1' + colors.prompts.selected.bg: + global: '#504945' + colors.statusbar.private.fg: + global: '#d3869b' + colors.statusbar.progress.bg: + global: '#83a598' + colors.tabs.bar.bg: + global: '#3c3836' + colors.tabs.indicator.start: + global: '#83a598' + colors.tabs.selected.even.bg: + global: '#7c6f64' + colors.tabs.selected.even.fg: + global: '#fbf1c7' colors.tabs.selected.odd.bg: - global: '#282828' + global: '#7c6f64' + colors.tabs.selected.odd.fg: + global: '#fbf1c7' colors.webpage.bg: global: white colors.webpage.preferred_color_scheme: @@ -46,4 +78,4 @@ settings: fonts.default_family: global: Adwaita Mono tabs.position: - global: left + global: right diff --git a/.config/qutebrowser/config.py b/.config/qutebrowser/config.py index a6d9a9b..1ccd8b0 100644 --- a/.config/qutebrowser/config.py +++ b/.config/qutebrowser/config.py @@ -1,4 +1,2 @@ -config.load_autoconfig() -# config.bind('', 'hint links spawn --detach mpv {hint-url}') config.source("gruvbox.py") -#c.colors.webpage.bg = "#ffffff" +config.load_autoconfig() \ No newline at end of file diff --git a/.config/tuxedo-control-center/SS b/.config/tuxedo-control-center/SS index 4eb0b27..54e16c0 120000 --- a/.config/tuxedo-control-center/SS +++ b/.config/tuxedo-control-center/SS @@ -1 +1 @@ -/tmp/.org.chromium.Chromium.sEF4uh/SS \ No newline at end of file +/tmp/.org.chromium.Chromium.O8weLB/SS \ No newline at end of file diff --git a/.config/tuxedo-control-center/SingletonCookie b/.config/tuxedo-control-center/SingletonCookie index f12efd3..761a766 120000 --- a/.config/tuxedo-control-center/SingletonCookie +++ b/.config/tuxedo-control-center/SingletonCookie @@ -1 +1 @@ -5441741259319359421 \ No newline at end of file +9249301947240957090 \ No newline at end of file diff --git a/.config/tuxedo-control-center/SingletonLock b/.config/tuxedo-control-center/SingletonLock index ce32d5b..fe469c9 120000 --- a/.config/tuxedo-control-center/SingletonLock +++ b/.config/tuxedo-control-center/SingletonLock @@ -1 +1 @@ -fedora-75193 \ No newline at end of file +fedora-3675 \ No newline at end of file diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc index 1086d02..18e3a3d 100644 --- a/.config/waybar/config.jsonc +++ b/.config/waybar/config.jsonc @@ -1,18 +1,95 @@ { "layer": "top", + "modules-left": ["niri/workspaces"], "modules-center": ["niri/window"], - "modules-right": ["battery", "clock"], + "modules-right": ["bluetooth", "network", "wireplumber#source", "wireplumber#sink", "battery", "clock"], + "niri/window": { "max-length": 100 }, - "battery": { - "format": "{capacity}% {icon}", - "format-icons": ["", "", "", "", ""] + + "mpris": { + "format": "{player_icon} {dynamic}", + "format-paused": "{status_icon} {dynamic}", + "player-icons": { + "default": "󰐊" + }, + "status-icons": { + "paused": "󰏤" + }, + "ignored-players": ["firefox"] }, + + "bluetooth": { + // "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system + "format": "", + "format-disabled": "󰂲", // an empty format will hide the module + "format-connected": "󰂯", + "tooltip-format": "{controller_alias}\t{controller_address}", + "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}", + "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", + "min-length": 2 + }, + + "network": { + "interface": "wlp2s0", + "format": "{ifname}", + "format-icons": ["󰤟", "󰤢", "󰤥", "󰤨"], + "format-wifi": "{icon}", + "format-ethernet": "󰈁", + "format-disconnected": "", //An empty format will hide the module. + "tooltip-format": "{ifname}", + "tooltip-format-wifi": "{essid} ({signalStrength}%) 󰖩", + "tooltip-format-ethernet": "{ifname} 󰈁", + "tooltip-format-disconnected": "Disconnected", + "max-length": 50, + "min-length": 2 + }, + + "wireplumber#sink": { + "format": "{icon}", + "format-muted": "󰖁", + "format-icons": ["󰕿", "󰖀", "󰕾"], + "tooltip-format": "{node_name} ({volume}%)", + "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", + "scroll-step": 5, + "min-length": 2 + }, + + "wireplumber#source": { + "node-type": "Audio/Source", + "format": "󰍬", + "format-muted": "󰍭", + "tooltip-format": "{node_name} ({volume}%)", + "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle", + "scroll-step": 5, + "min-length": 2 + }, + + "battery": { + "interval": 60, + "states": { + "warning": 30, + "critical": 15 + }, + "events": { + "on-discharging-warning": "notify-send -u normal 'Low Battery'", + "on-discharging-critical": "notify-send -u critical 'Very Low Battery'", + "on-charging-100": "notify-send -u normal 'Battery Full!'" + }, + "format": "{icon}", + "format-icons": ["󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"], + "tooltip-format": "{time} ({capacity}%)", + "min-length": 2 + }, + "clock": { "format-alt": "{:%a, %d. %b %H:%M}", "tooltip": false } + } + + diff --git a/.config/waybar/style.css b/.config/waybar/style.css index a663362..c35165b 100644 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -1,8 +1,13 @@ * { /* `otf-font-awesome` is required to be installed for icons */ - font-family: FontAwesome, Adwaita Sans, sans-serif; - font-weight: bold; - font-size: 13px; + font-family: Symbols Nerd Font, Adwaita Sans, sans-serif; + font-weight: 600; + font-size: 14px; +} + +tooltip { + font-weight: normal; + border-radius: 0px; } window#waybar { @@ -24,7 +29,7 @@ window#waybar.empty { window#waybar.solo { background-color: #FFFFFF; } -*/ + window#waybar.termite { background-color: #3F3F3F; @@ -34,6 +39,7 @@ window#waybar.chromium { background-color: #000000; border: none; } +*/ button { /* Use box-shadow instead of border so the text isn't offset */ @@ -49,13 +55,8 @@ button:hover { box-shadow: inset 0 -2px #ffffff; } -/* you can set a style on hover for any module like this */ -#pulseaudio:hover { - background-color: #a37800; -} - #workspaces button { - padding: 0 5px; + padding: 0 4px; background-color: transparent; color: #999999; } @@ -87,6 +88,7 @@ button:hover { #disk, #temperature, #backlight, +#bluetooth, #network, #pulseaudio, #wireplumber, @@ -97,7 +99,7 @@ button:hover { #scratchpad, #power-profiles-daemon, #mpd { - padding: 0 10px; + padding: 0 8px; color: #ffffff; } @@ -116,10 +118,6 @@ button:hover { margin-right: 0; } -tooltip { - border-radius: 0px; -} - /* clock { background-color: #64727D; @@ -136,25 +134,20 @@ clock { color: #ffffff; background-color: #26A65B; } -*/ + @keyframes blink { to { background-color: #ffffff; color: #000000; } } - +*/ /* Using steps() instead of linear as a timing function to limit cpu usage */ #battery.critical:not(.charging) { - background-color: #f53c3c; - color: #ffffff; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #9b0000 } +/* #power-profiles-daemon { padding-right: 15px; } @@ -195,10 +188,12 @@ label:focus { background-color: #90b1b1; } + #network { background-color: #2980b9; } + #network.disconnected { background-color: #f53c3c; } @@ -335,3 +330,4 @@ label:focus { #privacy-item.audio-out { background-color: #0069d4; } +*/ diff --git a/.local/scripts/albumcover-update.bash b/.local/scripts/albumcover-update.bash new file mode 100755 index 0000000..2d9025f --- /dev/null +++ b/.local/scripts/albumcover-update.bash @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +for file in *.opus; do + ffmpeg \ + -hide_banner \ + -i "${file}" -i "cover.jpg" \ + -map_metadata 0:s:a:0 -disposition attached_pic \ + -metadata date="$1" \ + -c:a copy "0${file}" + + rm "$file" + mv "0${file}" "${file#"0"}" +done diff --git a/.local/scripts/musicmenu.fish b/.local/scripts/musicmenu.fish new file mode 100755 index 0000000..eeaa13b --- /dev/null +++ b/.local/scripts/musicmenu.fish @@ -0,0 +1,35 @@ +#!/usr/bin/env fish + +set input (mpc list title group album group artist | perl -077 -pe 's/\s*?(\S.*?)\s*$/$1\n/igs' | fuzzel -w 100 --dmenu || exit 0) + + if string match -r "\s{8}" $input != "" + mpc insert (mpc find title (string trim $input)) + mpc play + exit 0 + end + + if string match -r "\s{4}" $input != "" + mpc clear + mpc findadd album (string trim $input) + mpc play + exit 0 + end + + if string match -r "\s{0}" $input != "" + set input (mpc list title artist (string trim $input) group album | fuzzel -w 100 --dmenu || exit 0) + + if string match -r "\s{4}" $input != "" + mpc insert (mpc find title (string trim $input)) + mpc play + exit 0 + end + + if string match -r "\s{0}" $input != "" + mpc clear + mpc findadd album (string trim $input) + mpc play + exit 0 + end + + end + diff --git a/.local/scripts/openbox-xwayland b/.local/scripts/openbox-xwayland new file mode 100755 index 0000000..c2120e2 --- /dev/null +++ b/.local/scripts/openbox-xwayland @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +Xwayland :10 & env -i DISPLAY=":10" openbox diff --git a/.local/scripts/playlist-dl.bash b/.local/scripts/playlist-dl.bash new file mode 100755 index 0000000..74640a4 --- /dev/null +++ b/.local/scripts/playlist-dl.bash @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +url=$1 + +album=$(yt-dlp -I 1:1 --skip-download --print "%(album)s" ${url}) +artist=$(yt-dlp -I 1:1 --skip-download --print "%(artists.0,artist)s" ${url}) +folder="${artist} - ${album}" + +yt-dlp \ + --embed-metadata \ + --parse-metadata "%(playlist_index)s:%(track_number)s" \ + --parse-metadata "%(release_date,upload_date)s:%(date)s" \ + --parse-metadata "%(artists.0,artist)s:%(artist)s" \ + --extract-audio --audio-format opus \ + -o "${folder}/%(playlist_index)s - %(title)s.%(ext)s" ${url} + +yt-dlp -I 1:0 --write-thumbnail -o "${folder}/cover.jpg" ${url} + +cd "${folder}" + +for file in *.opus; do + ffmpeg \ + -hide_banner \ + -i "${file}" -i "cover.jpg" \ + -map_metadata 0:s:a:0 -disposition attached_pic \ + -c:a copy "0${file}" + + rm "$file" + mv "0${file}" "${file#"0"}" +done diff --git a/.local/scripts/playlistmenu.fish b/.local/scripts/playlistmenu.fish new file mode 100755 index 0000000..c873d3c --- /dev/null +++ b/.local/scripts/playlistmenu.fish @@ -0,0 +1,8 @@ +#!/usr/bin/env fish + +set playlist (string split (mpc playlist)) +set input (mpc playlist | fuzzel -w 100 --dmenu || exit 0) + +echo $input + +mpc play (math (contains -i $input $playlist) + 1) diff --git a/.local/scripts/powermenu.fish b/.local/scripts/powermenu.fish new file mode 100755 index 0000000..5f97416 --- /dev/null +++ b/.local/scripts/powermenu.fish @@ -0,0 +1,21 @@ +#!/usr/bin/env fish + +set input (echo -e 'Suspend\nShutdown\nRestart' | fuzzel --dmenu -l 3 || exit 0) + +set check (echo -e 'Cancel\nProceed' | fuzzel --dmenu -l 2 || exit 0) + +if test $check = "Cancel" + exit 0 +end + +switch $input + case Suspend + systemctl suspend + + case Shutdown + systemctl poweroff + + case Restart + systemctl restart + +end