Add new bin scripts
This commit is contained in:
parent
9b3ff362cf
commit
5f10a0fc70
|
@ -1,8 +1,8 @@
|
|||
## .dotfiles
|
||||
## Gregory's dotfiles
|
||||
|
||||
Installation:
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
git clone git@github.com:magnolia-fan/dotfiles.git ~/.dotfiles
|
||||
~/.dotfiles/setup.bash
|
||||
git clone git@github.com:localhots/dotfiles.git ~/dotfiles
|
||||
~/dotfiles/setup.bash
|
||||
```
|
||||
|
|
33
bin/gitio
33
bin/gitio
|
@ -1,33 +0,0 @@
|
|||
#!/usr/bin/env ruby
|
||||
# Usage: gitio URL [CODE]
|
||||
#
|
||||
# Turns a github.com URL
|
||||
# into a git.io URL
|
||||
#
|
||||
# Created by @defunkt:
|
||||
# https://gist.github.com/1209316
|
||||
#
|
||||
# Copies the git.io URL to your clipboard.
|
||||
|
||||
url = ARGV[0]
|
||||
code = ARGV[1]
|
||||
|
||||
if url !~ /^(https?:\/\/)?(gist\.)?github.com/
|
||||
abort "* github.com URLs only"
|
||||
end
|
||||
|
||||
if url !~ /^http/
|
||||
url = "https://#{url}"
|
||||
end
|
||||
|
||||
if code
|
||||
code = "-F code=#{code}"
|
||||
end
|
||||
|
||||
output = `curl -i http://git.io -F 'url=#{url}' #{code} 2> /dev/null`
|
||||
if output =~ /Location: (.+)\n?/
|
||||
puts $1
|
||||
`echo #$1 | pbcopy`
|
||||
else
|
||||
puts output
|
||||
end
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
CHOICE=`wofi -i -d -W 400 -H 250 -p 'Choose' << EOF
|
||||
Services
|
||||
VPN
|
||||
EOF`
|
||||
|
||||
case $CHOICE in
|
||||
'Services')
|
||||
mymenu-services
|
||||
;;
|
||||
'VPN')
|
||||
mymenu-vpn
|
||||
;;
|
||||
esac
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
|
||||
service_dir="$HOME/.config/systemd/user"
|
||||
choice=$(grep "Description=" $service_dir/*.service | cut -d'=' -f2 | wofi -i -d -W 600 -H 300 -p Service)
|
||||
[[ -z "$choice" ]] && exit
|
||||
|
||||
service=$(grep "$choice" $service_dir/*.service | cut -d':' -f1 | rev | cut -d'/' -f1 | rev)
|
||||
cnt=$(systemctl --user status $service | grep -c "active (running)")
|
||||
service_status=$([[ "$cnt" -eq "0" ]] && echo "Inactive" || echo "Active")
|
||||
|
||||
if [ "$service_status" = "Active" ]; then
|
||||
choices="Restart\nStop"
|
||||
else
|
||||
choices="Start"
|
||||
fi
|
||||
|
||||
choice=$(echo -e $choices | wofi -i -d -W 400 -H 250 -p "Status: $service_status")
|
||||
case $choice in
|
||||
'Start')
|
||||
systemctl --user start $service
|
||||
;;
|
||||
'Restart')
|
||||
systemctl --user restart $service
|
||||
;;
|
||||
'Stop')
|
||||
systemctl --user stop $service
|
||||
esac
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$(nmcli -g GENERAL.STATE con show $VPN_NAME || true)" == "activated" ]; then
|
||||
choices=Disconnect
|
||||
else
|
||||
choices=Connect
|
||||
fi
|
||||
|
||||
choice=$(echo -e $choices | wofi -i -d -W 400 -H 250 -p $VPN_NAME)
|
||||
case $choice in
|
||||
'Connect')
|
||||
nmcli con up $VPN_NAME
|
||||
;;
|
||||
'Disconnect')
|
||||
nmcli con down $VPN_NAME
|
||||
esac
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
swaylock --scaling fill -i $HOME/Pictures/Wallpapers/dots-dark-4k-vi-2560x1440.jpg
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
swaymsg "output * dpms off"
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
swaymsg "output * dpms on"
|
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env ruby
|
||||
|
||||
# This script is used by dotfiles/bin/sway-interactive-screenshot to align window
|
||||
# coordinates, sizes and names in columns.
|
||||
#
|
||||
# Turns this:
|
||||
# 2560,60 760x1020 wl-clipsync
|
||||
# 3320,60 1160x1020 go-api
|
||||
# 768,60 1792x1380 Trending repositories on GitHub today - Mozilla Firefox
|
||||
# 0,60 768x675 screenshot-wofi-text-align (~/dotfiles/bin) - VIM
|
||||
# 0,765 768x675 Pictures
|
||||
#
|
||||
# Into this:
|
||||
# 2560,60 760x1020 wl-clipsync
|
||||
# 3320,60 1160x1020 go-api
|
||||
# 768,60 1792x1380 Trending repositories on GitHub today - Mozilla Firefox
|
||||
# 0,60 768x675 screenshot-wofi-text-align (~/dotfiles/bin) - VIM
|
||||
# 0,765 768x675 Pictures
|
||||
|
||||
max_pos_len = 0
|
||||
max_dim_len = 0
|
||||
items = STDIN.read.split("\n").map do |row|
|
||||
row.match(/(\d+,\d+)\s(\d+x\d+)\t(.*)/) do |m|
|
||||
max_pos_len = m[1].length if m[1].length > max_pos_len
|
||||
max_dim_len = m[2].length if m[2].length > max_dim_len
|
||||
{pos: m[1], dim: m[2], name: m[3]}
|
||||
end
|
||||
end
|
||||
|
||||
items.each do |item|
|
||||
puts "#{item[:pos].ljust(max_pos_len)} "+
|
||||
"#{item[:dim].ljust(max_dim_len)} \t#{item[:name]}"
|
||||
end
|
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This is a modified version of sway-interactive-screenshot made by moverest
|
||||
# https://github.com/moverest/sway-interactive-screenshot/
|
||||
|
||||
|
||||
# `list_geometry` returns the geometry of the focused of visible windows. You can also get they title
|
||||
# by setting a second argument to `with_description`. The geometry and the title are seperated by `\t`.
|
||||
#
|
||||
# Arguments:
|
||||
# $1: `focused` or `visible`
|
||||
# $2: `with_description` or nothing
|
||||
#
|
||||
# Output examples:
|
||||
# - with the `with_description` option:
|
||||
# 12,43 100x200\tTermite
|
||||
# - without the `with_description` option:
|
||||
# 12,43 100x200
|
||||
|
||||
function list_geometry () {
|
||||
[ "$2" = with_description ] && local append="\t\(.name)" || local append=
|
||||
swaymsg -t get_tree | jq -r '.. | (.nodes? // empty)[] | select(.'$1' and .pid) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)'$append'"'
|
||||
}
|
||||
|
||||
|
||||
# WINDOWS=`list_geometry visible with_description`
|
||||
WINDOWS=`list_geometry visible with_description | screenshot-wofi-text-align`
|
||||
FOCUSED=`list_geometry focused`
|
||||
|
||||
# CHOICE=`rofi -dmenu -i -p 'Screenshot' << EOF
|
||||
CHOICE=`wofi -i -d -W 800 -p 'Screenshot' << EOF
|
||||
Focused Window
|
||||
Focused Screen
|
||||
All Screens
|
||||
Region
|
||||
$WINDOWS
|
||||
EOF`
|
||||
|
||||
|
||||
SAVEDIR="$(xdg-user-dir PICTURES)/Screenshots"
|
||||
mkdir -p "$SAVEDIR"
|
||||
FILENAME="$SAVEDIR/$(date +'Screenshot %Y-%m-%d %H:%M:%S.png')"
|
||||
EXPANDED_FILENAME="${FILENAME/#\~/$HOME}"
|
||||
|
||||
case $CHOICE in
|
||||
'All Screens')
|
||||
grim "$EXPANDED_FILENAME"
|
||||
;;
|
||||
'Focused Screen')
|
||||
grim -o "$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')" "$EXPANDED_FILENAME"
|
||||
;;
|
||||
Region)
|
||||
grim -g "$(slurp)" "$EXPANDED_FILENAME"
|
||||
;;
|
||||
'Focused Window')
|
||||
grim -g "$FOCUSED" "$EXPANDED_FILENAME"
|
||||
;;
|
||||
'')
|
||||
# notify-send "Screenshot" "Cancelled"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
GEOMETRY="`echo \"$CHOICE\" | cut -d$'\t' -f1`"
|
||||
grim -g "$GEOMETRY" "$EXPANDED_FILENAME"
|
||||
esac
|
||||
|
||||
wl-copy < $(echo "$EXPANDED_FILENAME")
|
||||
notify-send "Screenshot" "File saved as <i>'$FILENAME'</i> and copied to the clipboard." -i "$EXPANDED_FILENAME"
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
# export VPN_NAME=MyVPN from dotfiles/secrets/vpn
|
||||
if [ "$(nmcli -g GENERAL.STATE con show $VPN_NAME)" == "activated" ]; then
|
||||
echo ""
|
||||
else
|
||||
echo ""
|
||||
fi
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
# export VPN_NAME=MyVPN from dotfiles/secrets/vpn
|
||||
if [ "$(nmcli -g GENERAL.STATE con show $VPN_NAME)" == "activated" ]; then
|
||||
echo Disconnecting
|
||||
nmcli con down "$VPN_NAME"
|
||||
else
|
||||
echo Connecting
|
||||
nmcli con up "$VPN_NAME"
|
||||
fi
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Used by waybar
|
||||
# Returns a message when there is more than 50 packages available for update
|
||||
|
||||
nupdates=$(checkupdates | wc -l)
|
||||
if [ $nupdates -gt 50 ]; then
|
||||
echo " $nupdates "
|
||||
fi
|
Loading…
Reference in New Issue