add laptop scripts
This commit is contained in:
parent
e078ac1394
commit
87d21a8898
55
laptop/scripts/change-colorscheme.sh
Executable file
55
laptop/scripts/change-colorscheme.sh
Executable file
@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
CURRENT_THEME=$(readlink ~/.config/tmux/theme.conf)
|
||||||
|
|
||||||
|
WHITE_WIDE_WPP=~/pics/wallpapers/sl3.jpg
|
||||||
|
WHITE_NORMAL_WPP=~/pics/wallpapers/sl2.png
|
||||||
|
|
||||||
|
RED_WIDE_WPP=~/pics/wallpapers/bm5.jpg
|
||||||
|
RED_NORMAL_WPP=~/pics/wallpapers/bm3.png
|
||||||
|
|
||||||
|
if [[ $CURRENT_THEME == *tmux-white.conf ]]; then
|
||||||
|
# change wallpaper
|
||||||
|
swww img -o HDMI-A-1 $RED_WIDE_WPP
|
||||||
|
swww img -o DP-3 $RED_NORMAL_WPP
|
||||||
|
|
||||||
|
|
||||||
|
# change tmux theme and reload
|
||||||
|
ln -sf ~/.config/tmux/tmux-red.conf ~/.config/tmux/theme.conf
|
||||||
|
tmux source-file ~/.config/tmux/tmux.conf
|
||||||
|
|
||||||
|
# change wezterm theme
|
||||||
|
sed -i 's/Solarized Light (Gogh)/Fahrenheit/g' ~/.config/wezterm/wezterm.lua
|
||||||
|
|
||||||
|
# change nvim theme
|
||||||
|
sed -i 's/zed = true/zed = false/g' ~/.config/nvim/lua/custom/plugins/colorscheme.lua
|
||||||
|
sed -i 's/-- h/h/g' ~/.config/nvim/lua/custom/plugins/bufferline.lua
|
||||||
|
|
||||||
|
# change neofetch pic (yes lmao)
|
||||||
|
sed -i 's/rh.jpg/red.jpg/g' ~/.config/neofetch/config.conf
|
||||||
|
sed -i '0,/cl11/{s/cl11/cl3/}' ~/.config/neofetch/config.conf
|
||||||
|
|
||||||
|
# waybar black css
|
||||||
|
killall waybar; waybar > /dev/null &
|
||||||
|
else
|
||||||
|
# change wpp
|
||||||
|
swww img -o HDMI-A-1 $WHITE_WIDE_WPP
|
||||||
|
swww img -o DP-3 $WHITE_NORMAL_WPP
|
||||||
|
|
||||||
|
# change tmux theme and reload
|
||||||
|
ln -sf ~/.config/tmux/tmux-white.conf ~/.config/tmux/theme.conf
|
||||||
|
tmux source-file ~/.config/tmux/tmux.conf
|
||||||
|
|
||||||
|
# change wezterm theme
|
||||||
|
sed -i 's/Fahrenheit/Solarized Light (Gogh)/g' ~/.config/wezterm/wezterm.lua
|
||||||
|
|
||||||
|
# change nvim theme
|
||||||
|
sed -i 's/zed = false/zed = true/g' ~/.config/nvim/lua/custom/plugins/colorscheme.lua
|
||||||
|
sed -i 's/highlights/-- highlights/g' ~/.config/nvim/lua/custom/plugins/bufferline.lua
|
||||||
|
|
||||||
|
# neofetch
|
||||||
|
sed -i 's/red.jpg/rh.jpg/g' ~/.config/neofetch/config.conf
|
||||||
|
sed -i '0,/cl3/{s/cl3/cl11/}' ~/.config/neofetch/config.conf
|
||||||
|
|
||||||
|
# waybar white css
|
||||||
|
killall waybar; waybar -s ~/.config/waybar/style-solarized.css > /dev/null &
|
||||||
|
fi
|
112
laptop/scripts/elash.sh
Executable file
112
laptop/scripts/elash.sh
Executable file
@ -0,0 +1,112 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
## Change following to '0' for output to be like ls and '1' for exa features
|
||||||
|
# Don't list implied . and .. by default with -a
|
||||||
|
dot=0
|
||||||
|
# Show human readable file sizes by default
|
||||||
|
hru=1
|
||||||
|
# Show file sizes in decimal (1KB=1000 bytes) as opposed to binary units (1KiB=1024 bytes)
|
||||||
|
meb=0
|
||||||
|
# Don't show group column
|
||||||
|
fgp=0
|
||||||
|
# Don't show hardlinks column
|
||||||
|
lnk=0
|
||||||
|
# Show file git status automatically (can cause a slight delay in large repo trees)
|
||||||
|
git=1
|
||||||
|
# Show icons
|
||||||
|
ico=1
|
||||||
|
# Show column headers
|
||||||
|
hed=0
|
||||||
|
# Group directories first in long listing by default
|
||||||
|
gpd=1
|
||||||
|
# Colour always even when piping (can be disabled with -N switch when not wanted)
|
||||||
|
col=1
|
||||||
|
|
||||||
|
help() {
|
||||||
|
cat << EOF
|
||||||
|
${0##*/} options:
|
||||||
|
-a all
|
||||||
|
-A almost all
|
||||||
|
-1 one file per line
|
||||||
|
-x list by lines, not columns
|
||||||
|
-l long listing format
|
||||||
|
-G display entries as a grid *
|
||||||
|
-k bytes
|
||||||
|
-h human readable file sizes
|
||||||
|
-F classify
|
||||||
|
-R recurse
|
||||||
|
-r reverse
|
||||||
|
-d don't list directory contents
|
||||||
|
-D directories only *
|
||||||
|
-M group directories first *
|
||||||
|
-I ignore [GLOBS]
|
||||||
|
-i show inodes
|
||||||
|
-o show octal permissions *
|
||||||
|
-N no colour *
|
||||||
|
-S sort by file size
|
||||||
|
-t sort by modified time
|
||||||
|
-u sort by accessed time
|
||||||
|
-U sort by created time *
|
||||||
|
-X sort by extension
|
||||||
|
-T tree *
|
||||||
|
-L level [DEPTH] *
|
||||||
|
-s file system blocks
|
||||||
|
-g don't show/show file git status *
|
||||||
|
-n ignore .gitignore files *
|
||||||
|
-b file sizes in binary/decimal (--si in ls)
|
||||||
|
-@ extended attributes and sizes *
|
||||||
|
|
||||||
|
* not used in ls
|
||||||
|
EOF
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
[[ "$*" =~ --help ]] && help
|
||||||
|
|
||||||
|
exa_opts=()
|
||||||
|
|
||||||
|
while getopts ':aAbtuUSI:rkhnsXL:MNg1lFGRdDioTx@' arg; do
|
||||||
|
case $arg in
|
||||||
|
a) (( dot == 1 )) && exa_opts+=(-a) || exa_opts+=(-a -a) ;;
|
||||||
|
A) exa_opts+=(-a) ;;
|
||||||
|
t) exa_opts+=(-s modified); ((++rev)) ;;
|
||||||
|
u) exa_opts+=(-us accessed); ((++rev)) ;;
|
||||||
|
U) exa_opts+=(-Us created); ((++rev)) ;;
|
||||||
|
S) exa_opts+=(-s size); ((++rev)) ;;
|
||||||
|
I) exa_opts+=(--ignore-glob="${OPTARG}") ;;
|
||||||
|
r) ((++rev)) ;;
|
||||||
|
k) ((--hru)) ;;
|
||||||
|
h) ((++hru)) ;;
|
||||||
|
n) exa_opts+=(--git-ignore) ;;
|
||||||
|
s) exa_opts+=(-S) ;;
|
||||||
|
X) exa_opts+=(-s extension) ;;
|
||||||
|
L) exa_opts+=(--level="${OPTARG}") ;;
|
||||||
|
o) exa_opts+=(--octal-permissions) ;;
|
||||||
|
M) ((++gpd)) ;;
|
||||||
|
N) ((++nco)) ;;
|
||||||
|
g) ((++git)) ;;
|
||||||
|
b) ((--meb)) ;;
|
||||||
|
1|l|F|G|R|d|D|i|T|x|@) exa_opts+=(-"$arg") ;;
|
||||||
|
:) printf "%s: -%s switch requires a value\n" "${0##*/}" "${OPTARG}" >&2; exit 1
|
||||||
|
;;
|
||||||
|
*) printf "Error: %s\n --help for help\n" "${0##*/}" >&2; exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift "$((OPTIND - 1))"
|
||||||
|
|
||||||
|
(( rev == 1 )) && exa_opts+=(-r)
|
||||||
|
(( fgp == 0 )) && exa_opts+=(-g)
|
||||||
|
(( lnk == 0 )) && exa_opts+=(-H)
|
||||||
|
(( hru <= 0 )) && exa_opts+=(-B)
|
||||||
|
(( hed == 1 )) && exa_opts+=(-h)
|
||||||
|
(( meb == 0 && hru > 0 )) && exa_opts+=(-b)
|
||||||
|
(( col == 1 )) && exa_opts+=(--color=always) || exa_opts+=(--color=auto)
|
||||||
|
(( nco == 1 )) && exa_opts+=(--color=never)
|
||||||
|
(( gpd >= 1 )) && exa_opts+=(--group-directories-first)
|
||||||
|
(( ico == 1 )) && exa_opts+=(--icons)
|
||||||
|
(( git == 1 )) && \
|
||||||
|
[[ $(git -C "${*:-.}" rev-parse --is-inside-work-tree) == true ]] 2>/dev/null && exa_opts+=(--git)
|
||||||
|
|
||||||
|
eza --color-scale all "${exa_opts[@]}" "$@"
|
3
laptop/scripts/readme.md
Normal file
3
laptop/scripts/readme.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
## Dependencies
|
||||||
|
|
||||||
|
depends on grimblast
|
7
laptop/scripts/upt.sh
Executable file
7
laptop/scripts/upt.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
upt="$(uptime --pretty | sed -e 's/up //g' -e 's/ days/d/g' -e 's/ day/d/g' -e 's/ hours/h/g' -e 's/ hour/h/g' -e 's/ minutes/m/g' -e 's/, / /g')"
|
||||||
|
echo -e "$upt "
|
||||||
|
|
||||||
|
|
5
laptop/scripts/volume.sh
Executable file
5
laptop/scripts/volume.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
vol="$(amixer get Master | tail -n1 | sed -r 's/.*\[(.*)%\].*/\1/')"
|
||||||
|
echo "${vol}%"
|
||||||
|
|
179
laptop/scripts/volume_brightness.sh
Executable file
179
laptop/scripts/volume_brightness.sh
Executable file
@ -0,0 +1,179 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# See README.md for usage instructions
|
||||||
|
volume_step=1
|
||||||
|
brightness_step=5
|
||||||
|
max_volume=100
|
||||||
|
notification_timeout=1000
|
||||||
|
download_album_art=true
|
||||||
|
show_album_art=true
|
||||||
|
show_music_in_volume_indicator=true
|
||||||
|
|
||||||
|
# Uses regex to get volume from pactl
|
||||||
|
function get_volume {
|
||||||
|
pactl get-sink-volume @DEFAULT_SINK@ | grep -Po '[0-9]{1,3}(?=%)' | head -1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Uses regex to get mute status from pactl
|
||||||
|
function get_mute {
|
||||||
|
pactl get-sink-mute @DEFAULT_SINK@ | grep -Po '(?<=Mute: )(yes|no)'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Uses regex to get brightness from xbacklight
|
||||||
|
function get_brightness {
|
||||||
|
sudo light | grep -Po '[0-9]{1,3}' | head -n 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Returns a mute icon, a volume-low icon, or a volume-high icon, depending on the volume
|
||||||
|
function get_volume_icon {
|
||||||
|
volume=$(get_volume)
|
||||||
|
mute=$(get_mute)
|
||||||
|
if [ "$volume" -eq 0 ] || [ "$mute" == "yes" ] ; then
|
||||||
|
volume_icon=" "
|
||||||
|
elif [ "$volume" -lt 50 ]; then
|
||||||
|
volume_icon=" "
|
||||||
|
else
|
||||||
|
volume_icon=" "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Always returns the same icon - I couldn't get the brightness-low icon to work with fontawesome
|
||||||
|
function get_brightness_icon {
|
||||||
|
brightness_icon=""
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_album_art {
|
||||||
|
url=$(playerctl -f "{{mpris:artUrl}}" metadata)
|
||||||
|
if [[ $url == "file://"* ]]; then
|
||||||
|
album_art="${url/file:\/\//}"
|
||||||
|
elif [[ $url == "http://"* ]] && [[ $download_album_art == "true" ]]; then
|
||||||
|
# Identify filename from URL
|
||||||
|
filename="$(echo $url | sed "s/.*\///")"
|
||||||
|
|
||||||
|
# Download file to /tmp if it doesn't exist
|
||||||
|
if [ ! -f "/tmp/$filename" ]; then
|
||||||
|
wget -O "/tmp/$filename" "$url"
|
||||||
|
fi
|
||||||
|
|
||||||
|
album_art="/tmp/$filename"
|
||||||
|
elif [[ $url == "https://"* ]] && [[ $download_album_art == "true" ]]; then
|
||||||
|
# Identify filename from URL
|
||||||
|
filename="$(echo $url | sed "s/.*\///")"
|
||||||
|
|
||||||
|
# Download file to /tmp if it doesn't exist
|
||||||
|
if [ ! -f "/tmp/$filename" ]; then
|
||||||
|
wget -O "/tmp/$filename" "$url"
|
||||||
|
fi
|
||||||
|
|
||||||
|
album_art="/tmp/$filename"
|
||||||
|
else
|
||||||
|
album_art=""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Displays a volume notification
|
||||||
|
function show_volume_notif {
|
||||||
|
volume=$(get_mute)
|
||||||
|
get_volume_icon
|
||||||
|
|
||||||
|
if [[ $show_music_in_volume_indicator == "true" ]]; then
|
||||||
|
current_song=$(playerctl -f "{{title}} - {{artist}}" metadata)
|
||||||
|
|
||||||
|
if [[ $show_album_art == "true" ]]; then
|
||||||
|
get_album_art
|
||||||
|
fi
|
||||||
|
|
||||||
|
notify-send -t $notification_timeout -h string:x-dunst-stack-tag:volume_notif -h int:value:$volume -i "$album_art" "$volume_icon $volume%" "$current_song"
|
||||||
|
else
|
||||||
|
notify-send -t $notification_timeout -h string:x-dunst-stack-tag:volume_notif -h int:value:$volume "$volume_icon $volume%"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Displays a music notification
|
||||||
|
function show_music_notif {
|
||||||
|
local status_log="$1"
|
||||||
|
song_title=$(playerctl -f "{{title}}" metadata)
|
||||||
|
song_artist=$(playerctl -f "{{artist}}" metadata)
|
||||||
|
song_album=$(playerctl -f "{{album}}" metadata)
|
||||||
|
status=$(playerctl status)
|
||||||
|
if [[ $status == "Paused" ]]; then
|
||||||
|
status_icon=""
|
||||||
|
else
|
||||||
|
status_icon=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $show_album_art == "true" ]]; then
|
||||||
|
get_album_art
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $status_log == "true" ]]; then
|
||||||
|
notify-send -t $notification_timeout -h string:x-dunst-stack-tag:music_notif -i "$album_art" "$status_icon - $song_title" "$song_artist - $song_album"
|
||||||
|
else
|
||||||
|
notify-send -t $notification_timeout -h string:x-dunst-stack-tag:music_notif -i "$album_art" "$song_title" "$song_artist - $song_album"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Displays a brightness notification using dunstify
|
||||||
|
function show_brightness_notif {
|
||||||
|
brightness=$(get_brightness)
|
||||||
|
echo $brightness
|
||||||
|
get_brightness_icon
|
||||||
|
notify-send -t $notification_timeout -h string:x-dunst-stack-tag:brightness_notif -h int:value:$brightness "$brightness_icon $brightness%"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main function - Takes user input, "volume_up", "volume_down", "brightness_up", or "brightness_down"
|
||||||
|
case $1 in
|
||||||
|
volume_up)
|
||||||
|
# Unmutes and increases volume, then displays the notification
|
||||||
|
pactl set-sink-mute @DEFAULT_SINK@ 0
|
||||||
|
volume=$(get_volume)
|
||||||
|
if [ $(( "$volume" + "$volume_step" )) -gt $max_volume ]; then
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ $max_volume%
|
||||||
|
else
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ +$volume_step%
|
||||||
|
fi
|
||||||
|
show_volume_notif
|
||||||
|
;;
|
||||||
|
|
||||||
|
volume_down)
|
||||||
|
# Raises volume and displays the notification
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ -$volume_step%
|
||||||
|
show_volume_notif
|
||||||
|
;;
|
||||||
|
|
||||||
|
volume_mute)
|
||||||
|
# Toggles mute and displays the notification
|
||||||
|
pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
show_volume_notif
|
||||||
|
;;
|
||||||
|
|
||||||
|
brightness_up)
|
||||||
|
# Increases brightness and displays the notification
|
||||||
|
sudo light -A $brightness_step
|
||||||
|
show_brightness_notif
|
||||||
|
;;
|
||||||
|
|
||||||
|
brightness_down)
|
||||||
|
# Decreases brightness and displays the notification
|
||||||
|
sudo light -U $brightness_step
|
||||||
|
show_brightness_notif
|
||||||
|
;;
|
||||||
|
|
||||||
|
next_track)
|
||||||
|
# Skips to the next song and displays the notification
|
||||||
|
playerctl next
|
||||||
|
sleep 0.5 && show_music_notif
|
||||||
|
;;
|
||||||
|
|
||||||
|
prev_track)
|
||||||
|
# Skips to the previous song and displays the notification
|
||||||
|
playerctl previous
|
||||||
|
sleep 0.5 && show_music_notif
|
||||||
|
;;
|
||||||
|
|
||||||
|
play_pause)
|
||||||
|
playerctl play-pause
|
||||||
|
show_music_notif "true"
|
||||||
|
# Pauses/resumes playback and displays the notification
|
||||||
|
;;
|
||||||
|
esac
|
44
laptop/scripts/way-print.sh
Executable file
44
laptop/scripts/way-print.sh
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
swpy_dir="${XDG_CONFIG_HOME:-$HOME/.config}/swappy"
|
||||||
|
save_dir="$HOME/pics/screenshots"
|
||||||
|
save_file="screenshot-$(date -Iseconds | cut -d '+' -f1).png"
|
||||||
|
temp_screenshot="/tmp/screenshot.png"
|
||||||
|
|
||||||
|
mkdir -p $save_dir
|
||||||
|
mkdir -p $swpy_dir
|
||||||
|
echo -e "[Default]\nsave_dir=$save_dir\nsave_filename_format=$save_file" > $swpy_dir/config
|
||||||
|
|
||||||
|
upload ()
|
||||||
|
{
|
||||||
|
curl -F'file=@'"${save_dir}/${save_file}" -Fsecret= -Fexpires=24 https://0x0.st | wl-copy
|
||||||
|
}
|
||||||
|
|
||||||
|
function print_error
|
||||||
|
{
|
||||||
|
cat << "EOF"
|
||||||
|
./screenshot.sh <action>
|
||||||
|
...valid actions are...
|
||||||
|
p : print all screens
|
||||||
|
s : snip current screen
|
||||||
|
sf : snip current screen (frozen)
|
||||||
|
m : print focused monitor
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
p) # print all outputs
|
||||||
|
grimblast copysave screen $temp_screenshot && swappy -f $temp_screenshot ;;
|
||||||
|
s) # drag to manually snip an area / click on a window to print it
|
||||||
|
grimblast copysave area $temp_screenshot && swappy -f $temp_screenshot ;;
|
||||||
|
sf) # frozen screen, drag to manually snip an area / click on a window to print it
|
||||||
|
grimblast --freeze copysave area $temp_screenshot && swappy -f $temp_screenshot ;;
|
||||||
|
m) # print focused monitor
|
||||||
|
grimblast copysave output $temp_screenshot && swappy -f $temp_screenshot ;;
|
||||||
|
t) #upload to 0x0.st temporarily
|
||||||
|
grimblast copysave area $temp_screenshot && swappy -f $temp_screenshot && upload ;;
|
||||||
|
*) # invalid option
|
||||||
|
print_error ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
rm "$temp_screenshot"
|
1
laptop/scripts/weechat.sh
Executable file
1
laptop/scripts/weechat.sh
Executable file
@ -0,0 +1 @@
|
|||||||
|
/usr/bin/tmux new -d -s weechat weechat \; set-option status off
|
Loading…
Reference in New Issue
Block a user