add scripts
This commit is contained in:
parent
da6833b55b
commit
a1d7377ca1
17 changed files with 265 additions and 45 deletions
Binary file not shown.
|
|
@ -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_completion:\x1d
|
||||||
SETUVAR fish_pager_color_selected_description:\x1d
|
SETUVAR fish_pager_color_selected_description:\x1d
|
||||||
SETUVAR fish_pager_color_selected_prefix:\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
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ radius=0
|
||||||
|
|
||||||
[dmenu]
|
[dmenu]
|
||||||
# mode=text # text|index
|
# mode=text # text|index
|
||||||
# exit-immediately-if-empty=no
|
exit-immediately-if-empty=yes
|
||||||
|
|
||||||
[key-bindings]
|
[key-bindings]
|
||||||
# cancel=Escape Control+g Control+c Control+bracketleft
|
# cancel=Escape Control+g Control+c Control+bracketleft
|
||||||
|
|
|
||||||
|
|
@ -157,10 +157,10 @@ layout {
|
||||||
// You can change how the focus ring looks.
|
// You can change how the focus ring looks.
|
||||||
focus-ring {
|
focus-ring {
|
||||||
// Uncomment this line to disable the focus ring.
|
// Uncomment this line to disable the focus ring.
|
||||||
on
|
off
|
||||||
|
|
||||||
// How many logical pixels the ring extends out from the windows.
|
// How many logical pixels the ring extends out from the windows.
|
||||||
width 4
|
width 2
|
||||||
|
|
||||||
// Colors can be set in a variety of ways:
|
// Colors can be set in a variety of ways:
|
||||||
// - CSS named colors: "red"
|
// - CSS named colors: "red"
|
||||||
|
|
@ -196,9 +196,9 @@ layout {
|
||||||
border {
|
border {
|
||||||
// The settings are the same as for the focus ring.
|
// The settings are the same as for the focus ring.
|
||||||
// If you enable the border, you probably want to disable 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"
|
active-color "#ffc87f"
|
||||||
inactive-color "#505050"
|
inactive-color "#505050"
|
||||||
|
|
||||||
|
|
@ -365,8 +365,12 @@ binds {
|
||||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||||
Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }
|
Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }
|
||||||
Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
|
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"; }
|
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.
|
// 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`.
|
// 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).
|
// 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"; }
|
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"; }
|
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.
|
// Example brightness key mappings for brightnessctl.
|
||||||
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
// 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.
|
// 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.
|
// 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 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.
|
// If the window is already in a column, they will expel it out.
|
||||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
Mod+Ctrl+Z { consume-or-expel-window-left; }
|
||||||
Mod+BracketRight { consume-or-expel-window-right; }
|
Mod+Ctrl+O { consume-or-expel-window-right; }
|
||||||
|
|
||||||
// Consume one window from the right to the bottom of the focused column.
|
// Consume one window from the right to the bottom of the focused column.
|
||||||
Mod+Comma { consume-window-into-column; }
|
Mod+Comma { consume-window-into-column; }
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,40 @@
|
||||||
|
|
||||||
config_version: 2
|
config_version: 2
|
||||||
settings:
|
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:
|
colors.tabs.selected.odd.bg:
|
||||||
global: '#282828'
|
global: '#7c6f64'
|
||||||
|
colors.tabs.selected.odd.fg:
|
||||||
|
global: '#fbf1c7'
|
||||||
colors.webpage.bg:
|
colors.webpage.bg:
|
||||||
global: white
|
global: white
|
||||||
colors.webpage.preferred_color_scheme:
|
colors.webpage.preferred_color_scheme:
|
||||||
|
|
@ -46,4 +78,4 @@ settings:
|
||||||
fonts.default_family:
|
fonts.default_family:
|
||||||
global: Adwaita Mono
|
global: Adwaita Mono
|
||||||
tabs.position:
|
tabs.position:
|
||||||
global: left
|
global: right
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,2 @@
|
||||||
config.load_autoconfig()
|
|
||||||
# config.bind('<Ctrl+/>', 'hint links spawn --detach mpv {hint-url}')
|
|
||||||
config.source("gruvbox.py")
|
config.source("gruvbox.py")
|
||||||
#c.colors.webpage.bg = "#ffffff"
|
config.load_autoconfig()
|
||||||
|
|
@ -1 +1 @@
|
||||||
/tmp/.org.chromium.Chromium.sEF4uh/SS
|
/tmp/.org.chromium.Chromium.O8weLB/SS
|
||||||
|
|
@ -1 +1 @@
|
||||||
5441741259319359421
|
9249301947240957090
|
||||||
|
|
@ -1 +1 @@
|
||||||
fedora-75193
|
fedora-3675
|
||||||
|
|
@ -1,18 +1,95 @@
|
||||||
{
|
{
|
||||||
"layer": "top",
|
"layer": "top",
|
||||||
|
|
||||||
"modules-left": ["niri/workspaces"],
|
"modules-left": ["niri/workspaces"],
|
||||||
"modules-center": ["niri/window"],
|
"modules-center": ["niri/window"],
|
||||||
"modules-right": ["battery", "clock"],
|
"modules-right": ["bluetooth", "network", "wireplumber#source", "wireplumber#sink", "battery", "clock"],
|
||||||
|
|
||||||
"niri/window": {
|
"niri/window": {
|
||||||
"max-length": 100
|
"max-length": 100
|
||||||
},
|
},
|
||||||
"battery": {
|
|
||||||
"format": "{capacity}% {icon}",
|
"mpris": {
|
||||||
"format-icons": ["", "", "", "", ""]
|
"format": "{player_icon} {dynamic}",
|
||||||
|
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
||||||
|
"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": {
|
"clock": {
|
||||||
"format-alt": "{:%a, %d. %b %H:%M}",
|
"format-alt": "{:%a, %d. %b %H:%M}",
|
||||||
"tooltip": false
|
"tooltip": false
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,13 @@
|
||||||
* {
|
* {
|
||||||
/* `otf-font-awesome` is required to be installed for icons */
|
/* `otf-font-awesome` is required to be installed for icons */
|
||||||
font-family: FontAwesome, Adwaita Sans, sans-serif;
|
font-family: Symbols Nerd Font, Adwaita Sans, sans-serif;
|
||||||
font-weight: bold;
|
font-weight: 600;
|
||||||
font-size: 13px;
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
font-weight: normal;
|
||||||
|
border-radius: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
|
|
@ -24,7 +29,7 @@ window#waybar.empty {
|
||||||
window#waybar.solo {
|
window#waybar.solo {
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
window#waybar.termite {
|
window#waybar.termite {
|
||||||
background-color: #3F3F3F;
|
background-color: #3F3F3F;
|
||||||
|
|
@ -34,6 +39,7 @@ window#waybar.chromium {
|
||||||
background-color: #000000;
|
background-color: #000000;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
button {
|
button {
|
||||||
/* Use box-shadow instead of border so the text isn't offset */
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
|
|
@ -49,13 +55,8 @@ button:hover {
|
||||||
box-shadow: inset 0 -2px #ffffff;
|
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 {
|
#workspaces button {
|
||||||
padding: 0 5px;
|
padding: 0 4px;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
}
|
}
|
||||||
|
|
@ -87,6 +88,7 @@ button:hover {
|
||||||
#disk,
|
#disk,
|
||||||
#temperature,
|
#temperature,
|
||||||
#backlight,
|
#backlight,
|
||||||
|
#bluetooth,
|
||||||
#network,
|
#network,
|
||||||
#pulseaudio,
|
#pulseaudio,
|
||||||
#wireplumber,
|
#wireplumber,
|
||||||
|
|
@ -97,7 +99,7 @@ button:hover {
|
||||||
#scratchpad,
|
#scratchpad,
|
||||||
#power-profiles-daemon,
|
#power-profiles-daemon,
|
||||||
#mpd {
|
#mpd {
|
||||||
padding: 0 10px;
|
padding: 0 8px;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -116,10 +118,6 @@ button:hover {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tooltip {
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
clock {
|
clock {
|
||||||
background-color: #64727D;
|
background-color: #64727D;
|
||||||
|
|
@ -136,25 +134,20 @@ clock {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
background-color: #26A65B;
|
background-color: #26A65B;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
@keyframes blink {
|
@keyframes blink {
|
||||||
to {
|
to {
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
||||||
#battery.critical:not(.charging) {
|
#battery.critical:not(.charging) {
|
||||||
background-color: #f53c3c;
|
color: #9b0000
|
||||||
color: #ffffff;
|
|
||||||
animation-name: blink;
|
|
||||||
animation-duration: 0.5s;
|
|
||||||
animation-timing-function: steps(12);
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-direction: alternate;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
#power-profiles-daemon {
|
#power-profiles-daemon {
|
||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
}
|
}
|
||||||
|
|
@ -195,10 +188,12 @@ label:focus {
|
||||||
background-color: #90b1b1;
|
background-color: #90b1b1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#network {
|
#network {
|
||||||
background-color: #2980b9;
|
background-color: #2980b9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#network.disconnected {
|
#network.disconnected {
|
||||||
background-color: #f53c3c;
|
background-color: #f53c3c;
|
||||||
}
|
}
|
||||||
|
|
@ -335,3 +330,4 @@ label:focus {
|
||||||
#privacy-item.audio-out {
|
#privacy-item.audio-out {
|
||||||
background-color: #0069d4;
|
background-color: #0069d4;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
|
||||||
13
.local/scripts/albumcover-update.bash
Executable file
13
.local/scripts/albumcover-update.bash
Executable file
|
|
@ -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
|
||||||
35
.local/scripts/musicmenu.fish
Executable file
35
.local/scripts/musicmenu.fish
Executable file
|
|
@ -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
|
||||||
|
|
||||||
3
.local/scripts/openbox-xwayland
Executable file
3
.local/scripts/openbox-xwayland
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
Xwayland :10 & env -i DISPLAY=":10" openbox
|
||||||
30
.local/scripts/playlist-dl.bash
Executable file
30
.local/scripts/playlist-dl.bash
Executable file
|
|
@ -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
|
||||||
8
.local/scripts/playlistmenu.fish
Executable file
8
.local/scripts/playlistmenu.fish
Executable file
|
|
@ -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)
|
||||||
21
.local/scripts/powermenu.fish
Executable file
21
.local/scripts/powermenu.fish
Executable file
|
|
@ -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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue