forked from ahurac/dotfiles
Scripts
This commit is contained in:
commit
c1c1d8adbd
19 changed files with 501 additions and 0 deletions
16
local/bin/Hyprland
Executable file
16
local/bin/Hyprland
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/sh -xe
|
||||||
|
|
||||||
|
# cd to home
|
||||||
|
cd
|
||||||
|
|
||||||
|
# Add the Wayland version of Wine to the path
|
||||||
|
export PATH="/opt/wine-wl/usr/bin:$PATH"
|
||||||
|
|
||||||
|
# Set librewolf as default browser
|
||||||
|
export BROWSER=librewolf
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
dbus-launch --exit-with-session \
|
||||||
|
ssh-agent \
|
||||||
|
/usr/bin/Hyprland
|
||||||
|
|
6
local/bin/coless
Executable file
6
local/bin/coless
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
env \
|
||||||
|
LESSOPEN='| /usr/bin/src-hilite-lesspipe.sh %s' \
|
||||||
|
LESS=' -R ' \
|
||||||
|
less "$@"
|
||||||
|
|
61
local/bin/glurp
Executable file
61
local/bin/glurp
Executable file
|
@ -0,0 +1,61 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
# Error
|
||||||
|
function error {
|
||||||
|
>&2 echo -e "\033[1;31mERROR:\033[0m $1"; shift
|
||||||
|
exit "${1:-1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Throw a value
|
||||||
|
function throw-value {
|
||||||
|
error "Value \"${1}\" invalid for ${2}." 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function screenshot-path {
|
||||||
|
printf '%s%s-screenshot-%s.png' "${screenshot_d}/" "${LOGNAME}" "$(date +'%Y_%m_%d_%s')"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
declare -a prepend _command append
|
||||||
|
screenshot_d=/tmp
|
||||||
|
|
||||||
|
# Arguments
|
||||||
|
selection_mode="$1"; shift
|
||||||
|
saving_mode="$1" ; shift
|
||||||
|
|
||||||
|
# Command building
|
||||||
|
_command+=(grim)
|
||||||
|
case "$selection_mode" in
|
||||||
|
full)
|
||||||
|
:
|
||||||
|
;;
|
||||||
|
area)
|
||||||
|
_command+=(-g -)
|
||||||
|
prepend+=(slurp)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
throw-value "$selection_mode" 'selection mode'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$saving_mode" in
|
||||||
|
clip)
|
||||||
|
_command+=(-)
|
||||||
|
append+=(wl-copy -t image/png)
|
||||||
|
;;
|
||||||
|
file)
|
||||||
|
_command+=("$(screenshot-path)")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
throw-value "$saving_mode" 'saving mode'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
#echo "${prepend[@]} | ${_command[@]} | ${append[@]}"
|
||||||
|
#exit 0
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
set -xe
|
||||||
|
"${prepend[@]}" | "${_command[@]}" | "${append[@]}"
|
||||||
|
|
53
local/bin/miam
Executable file
53
local/bin/miam
Executable file
|
@ -0,0 +1,53 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
# Throw
|
||||||
|
function throw {
|
||||||
|
>&2 echo "$1"
|
||||||
|
exit "$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Throw a value
|
||||||
|
function throw-value {
|
||||||
|
throw "Invalid value for \"$1\": \"$2\"" "$3"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
selection_mode="$1"
|
||||||
|
saving_mode="$2"
|
||||||
|
screenshot_d="/tmp"
|
||||||
|
_command=()
|
||||||
|
|
||||||
|
# Command building
|
||||||
|
_command+=("maim")
|
||||||
|
case "$selection_mode" in
|
||||||
|
"full")
|
||||||
|
:
|
||||||
|
;;
|
||||||
|
"area")
|
||||||
|
_command+=("-s")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
throw-value "selection mode" "$selection_mode" 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$saving_mode" in
|
||||||
|
"clip")
|
||||||
|
_command+=("|")
|
||||||
|
_command+=("xclip" "-selection" "clipboard" "-t" "image/png")
|
||||||
|
;;
|
||||||
|
"file")
|
||||||
|
_command+=(">" "${screenshot_d}/$(printf '%s-screenshot-%s.png' "$LOGNAME" "$(date +'%Y_%m_%d_%s')")")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
throw-value "saving mode" "$saving_mode" 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
#echo "${_command[@]}"
|
||||||
|
#exit 0
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
"${_command[@]}"
|
||||||
|
|
5
local/bin/mkddate
Executable file
5
local/bin/mkddate
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
path="${1:-.}/$(date +'%Y_%m_%d')"
|
||||||
|
mkdir -p "$path"
|
||||||
|
echo "$path"
|
||||||
|
|
24
local/bin/mount-phone
Executable file
24
local/bin/mount-phone
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Variable
|
||||||
|
dest="/mnt/ahurac/phone"
|
||||||
|
|
||||||
|
# Commands building
|
||||||
|
# Create destination
|
||||||
|
create_destination=(
|
||||||
|
mkdir
|
||||||
|
-p
|
||||||
|
"$dest"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Mount phone
|
||||||
|
mount_phone=(
|
||||||
|
aft-mtp-mount
|
||||||
|
"$dest"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
set -xe
|
||||||
|
"${create_destination[@]}"
|
||||||
|
"${mount_phone[@]}"
|
||||||
|
|
7
local/bin/sensible-browser
Executable file
7
local/bin/sensible-browser
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
if [ -n "$BROWSER" ]; then
|
||||||
|
exec "$BROWSER"
|
||||||
|
else
|
||||||
|
exit 127
|
||||||
|
fi
|
||||||
|
|
58
local/bin/ssh-fwd
Executable file
58
local/bin/ssh-fwd
Executable file
|
@ -0,0 +1,58 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
shopt -s expand_aliases
|
||||||
|
[[ $TERM = xterm-kitty ]] && alias ssh='kitty +kitten ssh'
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
ssh=ssh
|
||||||
|
declare -a args
|
||||||
|
|
||||||
|
# Display the usage
|
||||||
|
function usage {
|
||||||
|
cat << EOF
|
||||||
|
Usage: $(basename "$0") SSH_HOST LOCAL_PORT DISTANT_PORT [TARGET] [-- SSH_OPTIONS]
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function error {
|
||||||
|
>&2 usage
|
||||||
|
exit "${1:-1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Arguments
|
||||||
|
while [[ -n $* ]]; do
|
||||||
|
case "$1" in
|
||||||
|
"--")
|
||||||
|
shift
|
||||||
|
ssh_options=("$@")
|
||||||
|
set --
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
args+=("$1")
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Checking the validity of the args
|
||||||
|
[[ -z ${args[2]} ]] && error 1
|
||||||
|
[[ -z ${args[3]} ]] && args[3]=localhost
|
||||||
|
|
||||||
|
# Command building
|
||||||
|
ssh_com=(
|
||||||
|
"$ssh"
|
||||||
|
"${ssh_options[@]}"
|
||||||
|
-f
|
||||||
|
-N
|
||||||
|
-L "${args[1]}:${args[3]}:${args[2]}"
|
||||||
|
"${args[0]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
#echo "${ssh_com[@]}"
|
||||||
|
#exit 0
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
set -x
|
||||||
|
"${ssh_com[@]}"
|
||||||
|
|
5
local/bin/sshot-file
Executable file
5
local/bin/sshot-file
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
exec printf \
|
||||||
|
"screenshot-%s.${1:-png}" \
|
||||||
|
"$(date +"%Y_%m_%d-%N")"
|
||||||
|
|
25
local/bin/sway
Executable file
25
local/bin/sway
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh -xe
|
||||||
|
|
||||||
|
# cd
|
||||||
|
cd
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
# XDG
|
||||||
|
export \
|
||||||
|
XDG_CURRENT_DESKTOP=sway \
|
||||||
|
XDG_SESSION_DESKTOP=sway
|
||||||
|
|
||||||
|
# Backends
|
||||||
|
export \
|
||||||
|
QT_QPA_PLATFORM='wayland;xcb' \
|
||||||
|
QT_QPA_PLATFORMTHEME=qt6ct \
|
||||||
|
CLUTTER_BACKEND=wayland \
|
||||||
|
SDL_VIDEODRIVER=wayland \
|
||||||
|
_JAVA_AWT_WM_NONREPARENTING=1 \
|
||||||
|
MOZ_ENABLE_WAYLAND=1
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
exec dbus-launch --exit-with-session \
|
||||||
|
ssh-agent \
|
||||||
|
/usr/bin/sway
|
||||||
|
|
29
local/bin/swaylock
Executable file
29
local/bin/swaylock
Executable file
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Run swaylock
|
||||||
|
exec /usr/bin/swaylock \
|
||||||
|
--daemonize \
|
||||||
|
--indicator \
|
||||||
|
--clock \
|
||||||
|
--screenshots \
|
||||||
|
--effect-blur 20x10 \
|
||||||
|
--indicator-radius 100 \
|
||||||
|
--font 'Hack Nerd Font' \
|
||||||
|
--bs-hl-color '#FF3366' \
|
||||||
|
--inside-color '#CC99FF22' \
|
||||||
|
--inside-clear-color '#F3E6FFDD' \
|
||||||
|
--inside-ver-color '#9933FF22' \
|
||||||
|
--inside-wrong-color '#FF336622' \
|
||||||
|
--key-hl-color '#9933FF' \
|
||||||
|
--text-color '#F3E6FF' \
|
||||||
|
--text-caps-lock-color '#FFB3C6' \
|
||||||
|
--line-uses-ring \
|
||||||
|
--ring-color '#1A0033' \
|
||||||
|
--ring-clear-color '#9933FF' \
|
||||||
|
--ring-ver-color '#4F0099' \
|
||||||
|
--ring-wrong-color '#800020' \
|
||||||
|
--text-clear-color '#4F0099' \
|
||||||
|
--text-ver-color '#F3E6FF' \
|
||||||
|
--text-wrong-color '#FFB3C6' \
|
||||||
|
--separator-color '#00000000'
|
||||||
|
|
4
local/bin/update-grub
Executable file
4
local/bin/update-grub
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
grub-mkconfig \
|
||||||
|
-o /boot/grub/grub.cfg
|
||||||
|
|
25
local/bin/updateall
Executable file
25
local/bin/updateall
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Variable
|
||||||
|
commands_d="$HOME/.local/share/updateall/commands.d"
|
||||||
|
|
||||||
|
# Function
|
||||||
|
# Create a clear separator, adapts to the screen size
|
||||||
|
function separator {
|
||||||
|
local char="${2:-=}"
|
||||||
|
local separator cols
|
||||||
|
(( cols = $(tput cols) / 3 ))
|
||||||
|
|
||||||
|
while [[ ${#separator} -le $cols ]]; do
|
||||||
|
separator+="$char"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf '\n%s\n\t%s\n%s\n' "$separator" "$1" "$separator"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Loop
|
||||||
|
for pm in "$commands_d/"*; do
|
||||||
|
separator "$(basename "$pm")"
|
||||||
|
source "$pm"
|
||||||
|
done
|
||||||
|
|
33
local/bin/vncctl
Executable file
33
local/bin/vncctl
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
declare -a vncctl
|
||||||
|
systemctl=systemctl
|
||||||
|
systemd_unit=vncserver
|
||||||
|
verb="${1:-status}"; shift
|
||||||
|
display="${1:-1}" ; shift
|
||||||
|
|
||||||
|
# Prepending sudo if necessary
|
||||||
|
case "$verb" in
|
||||||
|
start|restart|stop)
|
||||||
|
sudo=sudo
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Command building
|
||||||
|
[[ -n $sudo ]] && vncctl+=("$sudo")
|
||||||
|
vncctl+=(
|
||||||
|
"$systemctl"
|
||||||
|
"$@"
|
||||||
|
"$verb"
|
||||||
|
"${systemd_unit}@:${display}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
#echo "${vncctl[@]}"
|
||||||
|
#exit 0
|
||||||
|
|
||||||
|
# Command execution
|
||||||
|
set -xe
|
||||||
|
"${vncctl[@]}"
|
||||||
|
|
35
local/bin/vncsconnect
Executable file
35
local/bin/vncsconnect
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
declare -a make_ssh_bridge open_vnc_session
|
||||||
|
ssh_fwd=ssh-fwd
|
||||||
|
vncviewer=vncviewer
|
||||||
|
localhost=localhost
|
||||||
|
|
||||||
|
# Arguments
|
||||||
|
ssh_host="$1"
|
||||||
|
local_port="${2:-9900}"
|
||||||
|
distant_port="${3:-5900}"
|
||||||
|
target="$4"
|
||||||
|
|
||||||
|
# Commands building
|
||||||
|
# Make SSH bridge
|
||||||
|
make_ssh_bridge+=(
|
||||||
|
"$ssh_fwd"
|
||||||
|
"$ssh_host"
|
||||||
|
"$local_port"
|
||||||
|
"$distant_port"
|
||||||
|
"$target"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Open VNC session
|
||||||
|
open_vnc_session+=(
|
||||||
|
"$vncviewer"
|
||||||
|
"${localhost}:${local_port}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
set -xe
|
||||||
|
"${make_ssh_bridge[@]}"
|
||||||
|
"${open_vnc_session[@]}"
|
||||||
|
|
19
local/bin/waybar
Executable file
19
local/bin/waybar
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/sh -x
|
||||||
|
# Waybar wrapper to reload it anytime the
|
||||||
|
# configuration is edited
|
||||||
|
|
||||||
|
# Variable
|
||||||
|
waybar_config_d="${HOME}/.config/waybar"
|
||||||
|
monitored_events=(
|
||||||
|
modify
|
||||||
|
create
|
||||||
|
delete
|
||||||
|
)
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
while :; do
|
||||||
|
/usr/bin/waybar "$@" &
|
||||||
|
inotifywait "${monitored_events[@]/#/-e}" "${waybar_config_d}"
|
||||||
|
jobs -p | xargs kill
|
||||||
|
done
|
||||||
|
|
35
local/bin/weston-rdp
Executable file
35
local/bin/weston-rdp
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
weston=weston
|
||||||
|
backend=rdp-backend.so
|
||||||
|
rdp_d="${HOME}/.rdp"
|
||||||
|
hostname="$(hostname)"
|
||||||
|
crt="${rdp_d}/${hostname}.crt"
|
||||||
|
key="${rdp_d}/${hostname}.key"
|
||||||
|
socket=wayland-1
|
||||||
|
|
||||||
|
# Arguments
|
||||||
|
width="${1:-1920}" ; shift
|
||||||
|
height="${1:-1080}"; shift
|
||||||
|
|
||||||
|
# Command building
|
||||||
|
weston_com=(
|
||||||
|
"$weston"
|
||||||
|
"--backend=${backend}"
|
||||||
|
"--rdp-tls-cert=${crt}"
|
||||||
|
"--rdp-tls-key=${key}"
|
||||||
|
"--width=${width}"
|
||||||
|
"--height=${height}"
|
||||||
|
"--socket=${socket}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
#echo "${weston_com[@]}"
|
||||||
|
#exit 0
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
set -xe
|
||||||
|
cd
|
||||||
|
"${weston_com[@]}"
|
||||||
|
|
53
local/bin/wolf
Executable file
53
local/bin/wolf
Executable file
|
@ -0,0 +1,53 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Arguments
|
||||||
|
hostname="$1"; shift
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
declare mac
|
||||||
|
declare -a wol_com options
|
||||||
|
name="$(basename "$0")"
|
||||||
|
wolf_d="${HOME}/.wolf"
|
||||||
|
wolf_host="${wolf_d}/${hostname}"
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
# Throw an error
|
||||||
|
function error {
|
||||||
|
>&2 echo -e "${name}: \033[1;31mERROR:\033[0m ${1:-No further details}"; shift
|
||||||
|
exit "${1:-1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse variable in options file
|
||||||
|
function getvar {
|
||||||
|
grep '^'"$1"' ' "$wolf_host" | cut -d ' ' -f 2
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parsing
|
||||||
|
[[ -f $wolf_host ]] || error "\"${hostname}\": No such host"
|
||||||
|
|
||||||
|
# Assign the options
|
||||||
|
mac="$(getvar Mac)"
|
||||||
|
ip="$(getvar IP)"
|
||||||
|
port="$(getvar Port)"
|
||||||
|
|
||||||
|
# Add options if necessary
|
||||||
|
[[ -n $ip ]] && options+=(-i "$ip" )
|
||||||
|
[[ -n $port ]] && options+=(-p "$port")
|
||||||
|
|
||||||
|
# Commands building
|
||||||
|
# wol
|
||||||
|
wol_com=(
|
||||||
|
wol
|
||||||
|
"$@"
|
||||||
|
"${options[@]}"
|
||||||
|
"$mac"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
#echo "${wol_com[@]}"
|
||||||
|
#exit 0
|
||||||
|
|
||||||
|
# Execution
|
||||||
|
set -xe
|
||||||
|
"${wol_com[@]}"
|
||||||
|
|
8
local/bin/xdg-session-start
Executable file
8
local/bin/xdg-session-start
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
/usr/lib/xdg-desktop-portal-wlr &
|
||||||
|
dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
sleep 1
|
||||||
|
artix-pipewire-loader &
|
||||||
|
sleep 1
|
||||||
|
waybar
|
||||||
|
|
Loading…
Reference in a new issue