diff --git a/files/.config/zsh/custom/100-alias.zsh b/files/.config/zsh/custom/100-alias.zsh index 296733f..581a3d6 100644 --- a/files/.config/zsh/custom/100-alias.zsh +++ b/files/.config/zsh/custom/100-alias.zsh @@ -30,4 +30,3 @@ alias netctl="sudo netctl" # docker alias minicom="docker run --device=/dev/ttyUSB0 -it registry.massaki.ca/minicom" alias browsh="docker run --rm -it browsh/browsh" - diff --git a/files/.config/zsh/custom/101-function.zsh b/files/.config/zsh/custom/101-function.zsh index f1a438e..af352b0 100644 --- a/files/.config/zsh/custom/101-function.zsh +++ b/files/.config/zsh/custom/101-function.zsh @@ -80,3 +80,16 @@ gamemode() { #fi } +# netshoot +netshoot-docker() { + set +x + docker run --rm -it --name netshoot $@ nicolaka/netshoot + set -x +} + +netshoot-kube() { + set +x + kubectl run netshoot --rm -i --tty --image nicolaka/netshoot -- /bin/bash + set -x +} + diff --git a/files/.tmux/plugins/tpm b/files/.tmux/plugins/tpm index 42bb2bf..476f6ca 160000 --- a/files/.tmux/plugins/tpm +++ b/files/.tmux/plugins/tpm @@ -1 +1 @@ -Subproject commit 42bb2bf48bef881be504278cf5156371b542cf81 +Subproject commit 476f6ca69922c9e67c408ae92dff0eb0ccb8ee51 diff --git a/files/bin/__on-gamemode b/files/bin/__on-gamemode deleted file mode 100755 index 9b38a0a..0000000 --- a/files/bin/__on-gamemode +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -exec 1<&- - -system_services="cronie" -user_services="redshift swayidle" - -if [[ "$1" == "start" ]]; then - for service in $system_services; do - sudo systemctl stop "$service" - done - for service in $user_services; do - systemctl --user stop "$service" - done -elif [[ "$1" == "end" ]]; then - for service in $system_services; do - systemctl is-enabled "$service" && sudo systemctl start "$service" - done - for service in $user_services; do - systemctl --user is-enabled "$service" && systemctl --user start "$service" - done -fi - diff --git a/files/bin/apod b/files/bin/apod deleted file mode 100755 index 38da388..0000000 --- a/files/bin/apod +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -e - -api_response="$(curl -sS https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY)" -filename="$HOME/Pictures/apod/$(echo -n $api_response | jq --join-output '.date+" "+.title').jpg" -wallpaper_filename="$HOME/Pictures/wallpaper" -url="$(echo -n $api_response | jq --raw-output '.hdurl')" -screen_size="$(xrandr --screen 0 | grep '^Screen' | grep -Eo 'current [0-9]+ x [0-9]+' | sed -E 's/current ([0-9]+) x ([0-9]+)/\1x\2/g')" - -mkdir -p "$(dirname $filename)" - -if [[ -f "$filename" ]]; then - echo "Image already downloaded" -else - curl -sS -o "$filename" "$url" -fi - -if [[ "$1" == "--wallpaper" ]]; then - [[ -f "$wallpaper_filename" ]] && rm "$wallpaper_filename" - img_size="$(identify "$filename" | grep -Eo '[0-9]+x[0-9]+' | head -n 1)" - if [[ "$(echo "$img_size" | grep -Eo '^[0-9]+')" -lt "$(echo "$screen_size" | grep -Eo '^[0-9]+')" - || "$(echo "$img_size" | grep -Eo '[0-9]+$')" -lt "$(echo "$screen_size" | grep -Eo '[0-9]+$')" ]]; then - convert "$filename" -filter Lanczos -gravity center -unsharp 0x1 -resize "$screen_size^" "$wallpaper_filename" - else - ln -s "$filename" "$wallpaper_filename" - fi - feh --bg-fill "$wallpaper_filename" -fi diff --git a/files/bin/brightness-control b/files/bin/brightness-control deleted file mode 100755 index 9017170..0000000 --- a/files/bin/brightness-control +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -# You can call this script like this: -# $ ./brightnessControl.sh up -# $ ./brightnessControl.sh down - -# Script inspired by these wonderful people: -# https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh -# https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a - -function get_brightness { - brightnessctl -m | grep -o '[0-9]\+%' | head -c-2 -} - -function send_notification { - icon="notification-display-brightness" - echo $(get_brightness) >"$XDG_RUNTIME_DIR/wobpipe" -} - -case $1 in - up) - # increase the backlight by 5% - brightnessctl set +5% - send_notification - ;; - down) - if [[ $(get_brightness) -lt 5 ]]; then - # avoid 0% brightness - brightnessctl set 1% - else - # decrease the backlight by 5% - brightnessctl set 5%- - fi - send_notification - ;; -esac diff --git a/files/bin/get-focused-window-geometry b/files/bin/get-focused-window-geometry deleted file mode 100755 index 9345feb..0000000 --- a/files/bin/get-focused-window-geometry +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -get-focused-window-properties | jq --raw-output '.rect|((.x|tostring)+","+(.y|tostring)+" "+(.width|tostring)+"x"+(.height|tostring))' diff --git a/files/bin/get-focused-window-properties b/files/bin/get-focused-window-properties deleted file mode 100755 index c42ac84..0000000 --- a/files/bin/get-focused-window-properties +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -swaymsg -t get_tree | jq --raw-output '..|select(.focused? == true)' diff --git a/files/bin/lsiommu b/files/bin/lsiommu deleted file mode 100755 index 9f293d6..0000000 --- a/files/bin/lsiommu +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -shopt -s nullglob -for d in /sys/kernel/iommu_groups/*/devices/*; do - n=${d#*/iommu_groups/*}; n=${n%%/*} - printf 'IOMMU Group %s ' "$n" - lspci -nns "${d##*/}" -done; - diff --git a/files/bin/motd b/files/bin/motd deleted file mode 100755 index e452b05..0000000 --- a/files/bin/motd +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env python3 - -import math -import shutil -import sys -import os -import re - -from subprocess import check_call, DEVNULL, CalledProcessError - -try: - import psutil -except: - pass - -try: - from pyfiglet import figlet_format -except ImportError: - def figlet_format(string, *args, **kwargs): - return string + '\n' - -term_r, term_c = os.popen('stty size', 'r').read().split() - -class Termutils: - BLACK = '\33[30m' - RED = '\33[31m' - GREEN = '\33[32m' - YELLOW = '\33[33m' - BLUE = '\33[34m' - MAGENTA = '\33[35m' - CYAN = '\33[36m' - WHITE = '\33[37m' - GREY = '\33[30;1m' - DISABLE = '\033[0m' - - HOSTNAME_COLOR = '\033[38;5;%sm' % os.environ.get('ZSH_THEME_HOSTNAME_COLOR', '004') - - PADDING = ' ' - - @staticmethod - def print_padded(*arg, **kwarg): - print(Termutils.PADDING, end='') - print(*arg, **kwarg) - - @staticmethod - def print_progress_bar(percent, label='', length=60): - percent_color = Termutils.GREEN - bar = '[' - for i in range(0, length): - if i >= math.ceil(percent * length): - bar += Termutils.GREY - elif i == 0: - bar += Termutils.GREEN - elif i == math.ceil(length * 0.6): - bar += Termutils.YELLOW - percent_color = Termutils.YELLOW - elif i == math.ceil(length * 0.9): - bar += Termutils.RED - percent_color = Termutils.RED - - bar += '=' - bar += '{}]{}{:7.2%}{} {}'.format( - Termutils.DISABLE, - percent_color, - percent, - Termutils.DISABLE, - label - ) - Termutils.print_padded(bar) - -def to_gb(bytes_count): - return bytes_count/1024/1024/1024 - -def print_hostname(): - print( - Termutils.HOSTNAME_COLOR - + figlet_format(os.uname()[1], 'slant') - + Termutils.DISABLE - + '\n' - + os.popen('uptime').read().strip() - + '\n' - ) - -def print_services(): - if 'MOTD_SERVICES' in os.environ: - print('Services:') - services = list(set(os.environ['MOTD_SERVICES'].split())) - services.sort() - for service in services: - Termutils.print_padded('{:<15.15}'.format(service), end='') - try: - check_call(['systemctl', 'is-active', service], stdout=DEVNULL, stderr=DEVNULL) - print('{} ● active{}'.format(Termutils.GREEN, Termutils.DISABLE)) - except CalledProcessError: - print('{} ● inactive{}'.format(Termutils.RED, Termutils.DISABLE)) - print('') - - -def print_mem(): - try: - memory = psutil.virtual_memory() - print('{:<18} {:6.2f}G used {:6.2f}G free {:6.2f}G total'.format( - 'Memory:', - to_gb(memory.used), - to_gb(memory.free), - to_gb(memory.total) - )) - Termutils.print_progress_bar(memory.used / memory.total) - print('') - except NameError: - pass - - -def print_fs(): - print('Filesystems:') - with open('/etc/mtab') as mtab: - for line in mtab: - line = line.strip() - if line.startswith('/'): - mount_point = line.split()[1] - usage = shutil.disk_usage(mount_point) - Termutils.print_padded('{:<15.15} {:7.2f}G used {:7.2f}G free {:7.2f}G total'.format( - mount_point, - to_gb(usage.used), - to_gb(usage.free), - to_gb(usage.total) - )) - Termutils.print_progress_bar( - percent=(usage.used / usage.total) - ) - print('') - -def print_tmux(): - try: - check_call(['tmux', 'info'], stdout=DEVNULL, stderr=DEVNULL) - print('tmux:') - tmux_session = os.popen('tmux display-message -p "#S"', 'r').read().strip() - with os.popen('tmux list-sessions', 'r') as tmux_ls: - for line in tmux_ls: - line = line.strip() - if line.startswith(tmux_session) and 'TMUX' in os.environ: - print(Termutils.GREEN, end='') - Termutils.print_padded( - line - + Termutils.DISABLE) - print('') - except CalledProcessError: - pass - - -print_hostname() -print_services() -print_mem() -print_fs() -print_tmux() diff --git a/files/bin/mpv-ipc b/files/bin/mpv-ipc deleted file mode 100755 index 10dd452..0000000 --- a/files/bin/mpv-ipc +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -jq -nc --arg argv "$(echo "$@" | tr ' ' '\n')" '{ command: $argv | split("\n") }' | socat - /tmp/mpv.sock 2>/dev/null - diff --git a/files/bin/mvn-findclass b/files/bin/mvn-findclass deleted file mode 100755 index 2defdb5..0000000 --- a/files/bin/mvn-findclass +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -#Colors -col_normal=$(tput sgr0) -col_red=$(tput setaf 1) -col_green=$(tput setaf 2) -col_magenta=$(tput setaf 5) -col_cyan=$(tput setaf 6) - -#validation -if [[ -z $1 ]] -then - echo 'USAGE: mvn-findclass [classname]' - exit 1 -fi - -query="$(echo "$1" | sed 's%\.%/%g')" - -find ~/.m2 -type f -name '*.jar' -print0 | while read -d '' -r jar -do - unzip -l "$jar" | sed -r 's%^.* .* (.*)$%\1%gm' | while read -r file - do - if [[ "$file" == *"$query.class" ]] - then - echo "$file" | sed -r "s%^(.*)($query)(.*)$%Found \1${col_green}\2${col_normal}\3%" - echo " in ${col_cyan}$jar${col_normal}" - fi - done -done diff --git a/files/bin/sshot b/files/bin/sshot deleted file mode 100755 index e5523ee..0000000 --- a/files/bin/sshot +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -## sshot - Take a screenshot - -if [[ "$1" == "--partial" ]]; then - ARG_PARTIAL=1 -elif [[ "$1" == "--pin" ]]; then - ARG_PARTIAL=1 - ARG_PIN=1 -elif [[ "$1" == "--window" ]]; then - ARG_WINDOW=1 -fi - -file="$HOME/Pictures/screenshots/$(date --iso-8601=seconds).png" -mkdir -p "$(dirname $file)" 2>/dev/null - -if [[ -n "$ARG_PARTIAL" ]]; then - # prompt the user for the area to take a screenshot from - geometry="$(slurp)" - if [ -z "$geometry" ]; then - exit 1 - fi -elif [[ -n $ARG_WINDOW ]]; then - # get the active window geometry - geometry="$(get-focused-window-geometry)" -fi - -# take a screenshot -grim -g "$geometry" -- "$file" - -# place to image in the clipboard -wl-copy < "$file" - -if [[ -n "$ARG_PIN" ]]; then - # pin the screenshot - feh --title "Pinned screenshot" --geometry "$(echo -n "$geometry" | sed -E 's/([0-9]+),([0-9]+) ([0-9]+)x([0-9]+)/\3x\4+\1+\2/')" "$file" & -fi - -# print the file name -echo "$file" - diff --git a/files/bin/sway b/files/bin/sway deleted file mode 100755 index 802d7b5..0000000 --- a/files/bin/sway +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - -import-gsettings() { - # usage: import-gsettings : : ... - expression="" - for pair in "$@"; do - IFS=:; set -- $pair - expressions="$expressions -e 's:^$2=(.*)$:gsettings set org.gnome.desktop.interface $1 \1:e'" - done - IFS= - eval sed -E $expressions "${XDG_CONFIG_HOME:-$HOME/.config}"/gtk-3.0/settings.ini >/dev/null -} - -export XDG_SESSION_TYPE=wayland - -# Qt -export DESKTOP_SESSION=gnome -export QT_STYLE_OVERRIDE=gtk -export QT_QPA_PLATFORMTHEME=gtk2 -export QT_AUTO_SCREEN_SCALE_FACTOR=0 -export QT_QPA_PLATFORM=wayland -export QT_WAYLAND_DISABLE_WINDOWDECORATION=1 - -# GTK -export CLUTTER_BACKEND=wayland -export GTK_CSD=0 -if [[ -f /usr/lib/libgtk3-nocsd.so.0 ]]; then - export LD_PRELOAD=/usr/lib/libgtk3-nocsd.so.0 -fi -import-gsettings \ - gtk-theme:gtk-theme-name \ - icon-theme:gtk-icon-theme-name \ - cursor-theme:gtk-cursor-theme-name - -# Elementary/EFL -export ECORE_EVAS_ENGINE=wayland_egl -export ELM_ENGINE=wayland_egl - -# SDL -export SDL_VIDEODRIVER=wayland - -# Java -export _JAVA_AWT_WM_NONREPARENTING=1 - -# Firefox -export MOZ_ENABLE_WAYLAND=1 - -# wlroot rdp -wlroot_rdp_cache="$HOME/.cache/wlr-rdp" -wlroot_rdp_cert="$wlroot_rdp_cache/tls.crt" -wlroot_rdp_key="$wlroot_rdp_cache/tls.key" -wlroot_rdp_csr="$wlroot_rdp_cache/tls.csr" -mkdir "$wlroot_rdp_cache" 2>/dev/null -if [[ ! -e "$wlroot_rdp_cert" ]] || [[ ! -e "$wlroot_rdp_key" ]]; then - openssl genrsa -out "$wlroot_rdp_key" 2048 - openssl req -new -key "$wlroot_rdp_key" -out "$wlroot_rdp_csr" - openssl x509 -req -days 365 -signkey "$wlroot_rdp_key" -in "$wlroot_rdp_csr" -out "$wlroot_rdp_cert" -fi - -# start sway -WLR_RDP_TLS_CERT_PATH="$wlroot_rdp_cert" \ -WLR_RDP_TLS_KEY_PATH="$wlroot_rdp_key" \ -exec /usr/bin/sway $@ diff --git a/files/bin/to7zip b/files/bin/to7zip deleted file mode 100755 index 48be5c2..0000000 --- a/files/bin/to7zip +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/bash - -print_help() { - echo "" - echo "Convert an archive from one format to another" - echo "" - echo "Usage: to7zip [options] ...files" - echo "" - echo "Options:" - echo " -h, --help Print this help text" - echo " -d, --delete-old Delete converted file" - echo " -f, --force Replace the file with the converted file even if the file exists" - echo " -r, --rezip Extract and archive again even if the converted file is already a 7zip archive" - echo " -F, --format The format of the output" - echo " -t, --thread Set the number of threads for archive extraction and creation (default: $thread_count)" - echo "" -} - -short_args=hdfrF:t: -long_args=help,delete-old,force,rezip,format:,thread: - -# default -rezip= -delete_old= -force= -zip_args= -thread_count=8 -params="" - -# Parse arguments -parsed_args=$(getopt --options $short_args --longoptions $long_args --name "$0" -- "$@") -if [[ $? -ne 0 ]]; then - echo "Failed to parse arguments" - exit 2 -fi -eval set -- "$parsed_args" -while true; do - case "$1" in - -h|--help) - print_help - exit 0 - ;; - -d|--delete-old) - delete_old=y - shift - ;; - -f|--force) - force=y - shift - ;; - -r|--rezip) - rezip=y - shift - ;; - -F|--format) - case "$2" in - 7z) - ;; - zip) - zip_args="-tzip" - output_ext="zip" - ;; - *) - echo "Unknown format: $2" - exit 1 - esac - shift 2 - ;; - -t|--thread) - thread_count="$2" - shift 2 - ;; - --) - shift - break - ;; - *) - break - ;; - esac -done - -out_dir="$PWD" - -if [[ -z "$zip_args" ]]; then - zip_args="-t7z -m0=lzma2 -ms=on" - output_ext=7z -fi - -for f in "$@"; do - tmp_dir="$(mktemp -d "$PWD/to7zip.XXX")" - output="$(echo "$f" | sed -E 's/\.(7z|tar\.gz|zip|rar)$//g').$output_ext" - backup_file="$output".backup - do_backup= - - if [[ ! -r "$f" ]]; then - echo "$f : No such file or directory" - continue - fi - - echo "$f -> $output" - - if [[ -f "$output" ]]; then - if [[ -n "$force" ]] || [[ "$f" =~ .7z$ && -n "$rezip" ]]; then - do_backup=y - else - echo "$output : file exists, refusing to continue (-f to force)" - continue - fi - fi - - if [[ "$f" =~ \.tar[^/]*$ ]]; then - if ! tar -xf "$f" -C "$tmp_dir" >/dev/null; then - echo "$f : extract failed" - continue - fi - elif [[ "$f" =~ \.tar|gz|bz2|zip|7z$ ]]; then - if ! 7z e -mmt="$thread_count" -o"$tmp_dir" "$f" >/dev/null; then - echo "$f : extract failed" - continue - fi - elif [[ "$f" =~ \.rar$ ]]; then - if ! unrar x "$f" "$tmp_dir" >/dev/null; then - echo "$f : unrar failed" - continue - fi - else - cp -r "$f" "$tmp_dir" - fi - - if [[ -n "$do_backup" ]]; then - mv "$output" "$backup_file" - fi - - pushd "$tmp_dir" >/dev/null - 7z a $zip_args -mx=9 -mmt="$thread_count" "$out_dir/$output" >/dev/null - return_val=$? - popd >/dev/null - if [[ $return_val -eq 0 ]]; then - if [[ -n "$do_backup" ]]; then - rm -r "$backup_file" - elif [[ -n "$delete_old" ]]; then - rm -r "$f" - fi - else - if [[ -n "$do_backup" ]]; then - mv "$backup_file" "$output" - fi - echo "$f : 7z archive failed" - fi - - rm -r "$tmp_dir" -done - diff --git a/files/bin/volume-control b/files/bin/volume-control deleted file mode 100755 index d6864b7..0000000 --- a/files/bin/volume-control +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash - -# You can call this script like this: -# $ ./volumeControl.sh up -# $ ./volumeControl.sh down -# $ ./volumeControl.sh mute - -# Script modified from these wonderful people: -# https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh -# https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a - -function get_volume { - amixer get Master | grep '%' | head -n 1 | cut -d '[' -f 2 | cut -d '%' -f 1 -} - -function is_mute { - amixer get Master | grep '%' | grep -oE '[^ ]+$' | grep off > /dev/null -} - -function send_notification { - iconSound="notification-audio-volume-high" - iconMuted="notification-audio-volume-muted" - if is_mute ; then - echo 0 >"$XDG_RUNTIME_DIR/wobpipe" - else - echo "$(get_volume)" >"$XDG_RUNTIME_DIR/wobpipe" - fi -} - -case $1 in - up) - # set the volume on (if it was muted) - amixer -D pulse set Master on > /dev/null - # up the volume (+ 5%) - amixer -D pulse sset Master 5%+ > /dev/null - send_notification - ;; - down) - amixer -D pulse set Master on > /dev/null - amixer -D pulse sset Master 5%- > /dev/null - send_notification - ;; - mute) - # toggle mute - amixer -D pulse set Master 1+ toggle > /dev/null - send_notification - ;; -esac diff --git a/files/bin/wob b/files/bin/wob deleted file mode 100755 index a6b1d40..0000000 --- a/files/bin/wob +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -mkfifo "$XDG_RUNTIME_DIR/wobpipe" -tail -f "$XDG_RUNTIME_DIR/wobpipe" | /bin/wob