add scripts

This commit is contained in:
Never Gude 2025-12-29 23:40:17 +01:00
parent da6833b55b
commit a1d7377ca1
17 changed files with 265 additions and 45 deletions

Binary file not shown.

View file

@ -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

View file

@ -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

View file

@ -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; }

View file

@ -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

View file

@ -1,4 +1,2 @@
config.load_autoconfig()
# config.bind('<Ctrl+/>', 'hint links spawn --detach mpv {hint-url}')
config.source("gruvbox.py")
#c.colors.webpage.bg = "#ffffff"
config.load_autoconfig()

View file

@ -1 +1 @@
/tmp/.org.chromium.Chromium.sEF4uh/SS
/tmp/.org.chromium.Chromium.O8weLB/SS

View file

@ -1 +1 @@
5441741259319359421
9249301947240957090

View file

@ -1 +1 @@
fedora-75193
fedora-3675

View file

@ -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} <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": {
"format-alt": "{:%a, %d. %b %H:%M}",
"tooltip": false
}
}

View file

@ -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;
}
*/

View 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
View 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

View file

@ -0,0 +1,3 @@
#!/usr/bin/env sh
Xwayland :10 & env -i DISPLAY=":10" openbox

30
.local/scripts/playlist-dl.bash Executable file
View 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

View 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
View 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