Compare commits
34 Commits
992987fb3c
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
8b24c9f318
|
|||
|
44d2ac2019
|
|||
|
63a62572f2
|
|||
|
be0d92ebc1
|
|||
|
6fd9a92306
|
|||
|
e77e963a98
|
|||
|
e7c2673576
|
|||
|
b0a4bb2270
|
|||
|
25d69a780d
|
|||
|
0c092f7ab7
|
|||
|
709079c3e5
|
|||
|
7eeecd9991
|
|||
|
e742d169c2
|
|||
|
b2e7765b13
|
|||
|
94e23dc226
|
|||
|
1c9b6cd94a
|
|||
|
7192a961e9
|
|||
|
be1692c02a
|
|||
|
cf08990f6d
|
|||
|
ce77f97011
|
|||
|
9c6b39aa4b
|
|||
|
28dce4b836
|
|||
|
a0470b5f06
|
|||
|
351c1c959f
|
|||
|
23dfbf1592
|
|||
|
dd08223fca
|
|||
|
617296a477
|
|||
|
952a809d70
|
|||
|
8f63f6fbf8
|
|||
|
d03559fd51
|
|||
|
71537f9de5
|
|||
|
c124a99266
|
|||
|
40e6023c83
|
|||
|
c84e170e4f
|
106
bashrc
106
bashrc
@@ -1,11 +1,19 @@
|
||||
|
||||
PATH=$HOME/.scripts:/opt:$PATH
|
||||
# vars
|
||||
PATH=$HOME/.scripts:/opt:/home/shihaam/.local/bin:$HOME/.shortcuts/wineprograms:$HOME/Applications:$PATH
|
||||
HISTSIZE=999999
|
||||
HISTFILESIZE=999999
|
||||
HISTCONTROL=ignoreboth:erasedups
|
||||
|
||||
export GPG_TTY=$(tty) #Set GPG_TTY veriable, needed for signing git commits other gpg stuff
|
||||
export COMPOSE_DOCKER_CLI_BUILD=1
|
||||
export DOCKER_BUILDKIT=1
|
||||
|
||||
export SSH_CA_FILES=/home/shihaam/git/alliedmaldives/ops/ssh-ca
|
||||
|
||||
#export SSH_CA_FILES=/home/shihaam/git/alliedmaldives/ops/ssh-ca
|
||||
export SSH_CA_FILES=$HOME/.ssh
|
||||
export SSH_CA_REVOCATION_LIST=$HOME/git/alliedmaldives/ops/ssh-ca/revoked_keys
|
||||
export SSL_FILES=$HOME/git/alliedmaldives/ops/ssl-certs
|
||||
|
||||
#load ble.sh
|
||||
source ~/.local/share/blesh/ble.sh
|
||||
@@ -18,18 +26,41 @@ source ~/.bash-seafly-prompt/command_prompt.bash
|
||||
cd(){ builtin cd "$@" && pwd > ~/.cache/whereami;}
|
||||
cdl(){ cd $(cat ~/.cache/whereami);};cdl
|
||||
|
||||
ip(){
|
||||
if [[ $1 == "info" ]]
|
||||
then
|
||||
curl -s https://ipinfo.io/$2 | jq
|
||||
else
|
||||
command ip "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
####### ALIASES ##########
|
||||
alias nano='nano -i'
|
||||
# add features
|
||||
#alias nano='nano -l'
|
||||
alias hdd='cd /mnt/hdd'
|
||||
#########################
|
||||
|
||||
alias drag=ripdrag
|
||||
|
||||
#Adding output colors
|
||||
alias ls='ls --color=always'
|
||||
alias grep='grep --color=auto'
|
||||
alias less='less -R'
|
||||
alias ping='ping -O'
|
||||
# fix typos
|
||||
alias ckear=clear
|
||||
alias sl=ls
|
||||
alias ks=ls
|
||||
alias dc=cd
|
||||
#########################
|
||||
|
||||
#docker(){
|
||||
# if [[ $1 == "compose" && $2 == "up" && $# -eq 2 ]]; then
|
||||
# docker compose up -d && docker compose logs -f
|
||||
# else
|
||||
# command docker "$@"
|
||||
# fi
|
||||
#}
|
||||
|
||||
##################### Some cool funcations hehe ###############################
|
||||
# do math in shell
|
||||
@@ -38,8 +69,71 @@ math(){ echo $1 | bc;}
|
||||
checkip(){ dig $1 +short;}
|
||||
# search for term and edit first file with that specific text
|
||||
edit(){ nano $(grep $1 * -R | awk '{print $1}'|cut -f1 -d ':' | head -n1);}
|
||||
#root(){ su -c "$@";}
|
||||
# view md file on cli
|
||||
catmd() { pandoc $1 | lynx -stdin;}
|
||||
# replace white spaces in file name with underscores
|
||||
rmspace() { for file in *; do mv -- "$file" "${file// /_}"; done;}
|
||||
yq() {
|
||||
podman run --rm -i -v "${PWD}":/workdir mikefarah/yq "$@"
|
||||
}
|
||||
###############################################################################
|
||||
|
||||
### Enter container
|
||||
#enter () {
|
||||
# local container="$(echo "$1" | cut -d'_' -f1)"
|
||||
# if docker ps | grep "$container" >/dev/null 2>&1; then
|
||||
# docker exec -it "$container" bash
|
||||
# elif podman ps | grep "$container" >/dev/null 2>&1; then
|
||||
# podman exec -it "$container" bash
|
||||
# else
|
||||
# echo "Error: Container '$container' not found" >&2
|
||||
# return 1
|
||||
# fi
|
||||
#}
|
||||
|
||||
enter () {
|
||||
local container="$1"
|
||||
# local container="$(echo "$1" | cut -d'_' -f1)"
|
||||
if docker ps | grep "$container" >/dev/null 2>&1; then
|
||||
docker exec -it "$container" bash
|
||||
elif podman ps | grep "$container" >/dev/null 2>&1; then
|
||||
podman exec -it "$container" bash
|
||||
else
|
||||
echo "Error: Container '$container' not found" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
extract() {
|
||||
if [ -f "$1" ] ; then
|
||||
local folder_name=$(basename "$1" | sed -e 's/\..*$//')
|
||||
mkdir -p "$folder_name"
|
||||
case "$1" in
|
||||
*.tar.bz2) tar xvjf "$1" -C "$folder_name" ;;
|
||||
*.tar.gz) tar xvzf "$1" -C "$folder_name" ;;
|
||||
*.bz2) bunzip2 -k "$1" && mv "${1%.*}" "$folder_name" ;;
|
||||
*.rar) unrar x "$1" "$folder_name" ;;
|
||||
*.gz) gunzip -k "$1" && mv "${1%.*}" "$folder_name" ;;
|
||||
*.tar) tar xvf "$1" -C "$folder_name" ;;
|
||||
*.tbz2) tar xvjf "$1" -C "$folder_name" ;;
|
||||
*.tgz) tar xvzf "$1" -C "$folder_name" ;;
|
||||
*.zip) unzip "$1" -d "$folder_name" ;;
|
||||
*.Z) uncompress "$1" && mv "${1%.*}" "$folder_name" ;;
|
||||
*.7z) 7z x "$1" -o"$folder_name" ;;
|
||||
*.xz) xz --decompress --keep "$1" && mv "${1%.*}" "$folder_name" ;;
|
||||
*) echo "'$1' cannot be extracted via extract()" ;;
|
||||
esac
|
||||
else
|
||||
echo "'$1' is not a valid file"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#load neofetch
|
||||
neofetch
|
||||
#neofetch
|
||||
source /usr/share/nvm/init-nvm.sh
|
||||
|
||||
PATH=$PATH:/home/shihaam/.wine/drive_c/users/shihaam/AppData/Roaming/.tlauncher/legacy/Minecraft
|
||||
shopt -s cdspell
|
||||
#fastfetch
|
||||
|
||||
116
config/i3/config
116
config/i3/config
@@ -44,6 +44,10 @@ bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOU
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# move tiling windows via drag & drop by left-clicking into the title bar,
|
||||
# or left-clicking anywhere into the window while holding the floating modifier.
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
|
||||
@@ -53,8 +57,6 @@ bindsym $mod+Shift+q kill
|
||||
# start dmenu (a program launcher)
|
||||
#bindsym $mod+d exec --no-startup-id dmenu_run
|
||||
bindsym $mod+d exec --no-startup-id rofi -show run
|
||||
|
||||
|
||||
# A more modern dmenu replacement is rofi:
|
||||
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
|
||||
# There also is i3-dmenu-desktop which only displays applications shipping a
|
||||
@@ -113,16 +115,16 @@ bindsym $mod+a focus parent
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1: "
|
||||
set $ws2 "2: "
|
||||
set $ws3 "3: "
|
||||
set $ws4 "4: "
|
||||
set $ws5 "5: "
|
||||
set $ws6 "6: "
|
||||
set $ws7 "7: "
|
||||
set $ws8 "8: "
|
||||
set $ws9 "9: "
|
||||
set $ws10 "10: "
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
@@ -148,7 +150,6 @@ bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
@@ -189,57 +190,54 @@ bar {
|
||||
status_command i3status
|
||||
}
|
||||
|
||||
##my config
|
||||
#lock screen
|
||||
bindsym $mod+shift+x exec i3lock --color=000000
|
||||
|
||||
#set wallpaper
|
||||
#exec nitrogen --restore
|
||||
#exec_always feh --bg-scale /usr/share/backgrounds/archlinux/archbtw.png
|
||||
#exec_always feh --no-fehbg --bg-scale '/usr/share/backgrounds/archlinux/archwave.png'
|
||||
#exec_always feh --no-fehbg --bg-scale ~/Pictures/Wallpapers/current-wallpaper
|
||||
exec_always ~/.scripts/set-random-wallpaper
|
||||
|
||||
#screenshot util
|
||||
bindsym $mod+shift+s exec flameshot gui
|
||||
|
||||
#fixed opening workspaces
|
||||
assign [class="TelegramDesktop"] $ws10
|
||||
#assign [class=""] $ws9
|
||||
assign [class="obs"] $ws8
|
||||
assign [class="Virt-manager"] $ws7
|
||||
assign [class="org.remmina.Remmina"] $ws7
|
||||
assign [class="Brave"] $ws6
|
||||
assign [class="Pcmanfm"] $ws5
|
||||
|
||||
#window boder size
|
||||
# remove blue border on windows
|
||||
for_window [class="^.*"] border pixel 0
|
||||
|
||||
#floating mode windows
|
||||
# float Bitwarden Extension from brave
|
||||
for_window [class="Brave-browser" instance="crx_nngceckbapebfimnlniiiahkandclblb"] floating enable
|
||||
# float network manager setting window
|
||||
for_window [class="Nm-connection-editor" instance="nm-connection-editor"] floating enable
|
||||
#restore displays
|
||||
#exec --no-startup-id /home/shihaam/.scripts/home.sh
|
||||
#exec --no-startup-id autorandr --change home
|
||||
#exec --no-startup-id i3-resurrect --restore
|
||||
|
||||
#start programs
|
||||
exec telegram-desktop
|
||||
exec_always picom
|
||||
exec dunst
|
||||
exec ~/.script/addvirtualsoundcard Virtual-Sound-Card
|
||||
exec systemctl --user start mpd
|
||||
exec --no-startup-id i3-msg 'workspace $ws1;exec i3-sensible-terminal ~/.scripts/run'
|
||||
exec --no-startup-id i3-msg 'workspace $ws9;exec i3-sensible-terminal ncmpcpp'
|
||||
# flameshot
|
||||
#bindsym $mod+Shift+s exec flameshot gui
|
||||
bindsym Print exec flameshot gui
|
||||
bindsym $mod+Print exec flameshot gui --raw | tesseract stdin stdout | xclip -in -selection clipboard
|
||||
# rofi ssh
|
||||
bindsym $mod+Shift+s exec rofi -show ssh
|
||||
|
||||
# start the compositor at login
|
||||
exec --no-startup-id picom
|
||||
|
||||
# Start bluetooth system tray applet at login
|
||||
exec --no-startup-id blueman-applet
|
||||
|
||||
#exec --no-startup-id /home/shihaam/.scripts/scrcpy-autostart
|
||||
|
||||
# start power mmanager
|
||||
exec --no-startup-id xfce4-power-manager
|
||||
|
||||
# start activate-linux
|
||||
#exec --no-startup-id activate-linux
|
||||
|
||||
# start ssh key monitoring
|
||||
#exec --no-startup-id doas auditctl -w /home/shihaam/.ssh/id_ed25519 -p r -k ssh-key-read
|
||||
|
||||
# Start dunst (notification service)
|
||||
exec --no-startup-id dunst
|
||||
|
||||
# start ssh access notification script
|
||||
#exec --no-startup-id /home/shihaam/.scripts/notify-ssh-access.sh
|
||||
|
||||
|
||||
# Sreen brightness controls
|
||||
bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
|
||||
bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness
|
||||
# start kde connect
|
||||
exec --no-startup-id kdeconnectd
|
||||
|
||||
# Touchpad controls
|
||||
bindsym XF86TouchpadToggle exec /home/shihaam/.scripts/toggletouchpad.sh # toggle touchpad
|
||||
#set a wallpaper
|
||||
exec --no-startup-id feh --no-fehbg --bg-scale /usr/share/backgrounds/archlinux/split.png
|
||||
#start ibus
|
||||
exec --no-startup-id ibus start
|
||||
#exec_always polybar
|
||||
|
||||
# Media player controls
|
||||
bindsym XF86AudioPlay exec playerctl play
|
||||
bindsym XF86AudioPause exec playerctl pause
|
||||
bindsym XF86AudioNext exec playerctl next
|
||||
bindsym XF86AudioPrev exec playerctl previous
|
||||
|
||||
bindsym $mod+period exec rofi -modi emoji -show emoji
|
||||
|
||||
@@ -1 +1,20 @@
|
||||
include /usr/share/nano-syntax-highlighting/*
|
||||
set autoindent
|
||||
set linenumbers
|
||||
#set smooth
|
||||
|
||||
set backup
|
||||
set backupdir "~/.cache/nano"
|
||||
|
||||
set titlecolor brightblue,black
|
||||
set statuscolor brightgreen,blue
|
||||
set selectedcolor brightwhite,magenta
|
||||
set numbercolor yellow
|
||||
set keycolor brightcyan
|
||||
set functioncolor green
|
||||
set nohelp
|
||||
|
||||
#bind ^[ ( main
|
||||
#bind ^] ) main
|
||||
#bind ^{ { main
|
||||
#bind ^} } main
|
||||
|
||||
23
config/picom/picom.conf
Normal file
23
config/picom/picom.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
backend = "xrender";
|
||||
no-dock-shadow = true;
|
||||
active-opacity = 10;
|
||||
frame-opacity = 10;
|
||||
inactive-opacity-override = false;
|
||||
blur-background = false;
|
||||
corner-radius = 5;
|
||||
shadow = false;
|
||||
shadow-ignore-shaped = false;
|
||||
no-fading-destroyed-argb = true;
|
||||
no-fading-openclose = true;
|
||||
no-fading-destroy = true;
|
||||
fade-in-step = 1;
|
||||
fade-out-step = 1;
|
||||
fade-delta = 0;
|
||||
daemon = true;
|
||||
fading = false;
|
||||
glx-no-stencil = true;
|
||||
glx-no-rebind-pixmap = true;
|
||||
use-damage = true;
|
||||
xrender-sync-fence = true;
|
||||
vsync = false;
|
||||
unredir-if-possible = false;
|
||||
@@ -13,6 +13,16 @@ then
|
||||
fi
|
||||
###################################################################
|
||||
|
||||
###################################################################
|
||||
read -p "Restore i3wm config?? [Y/n]: " ENABLE_NANO
|
||||
if [ "$RESTORE_I3" = "Y" ] || [ "$RESTORE_I3" = "y" ] || [ "$RESTORE_I3" = "" ]
|
||||
then
|
||||
rm -rfv $HOME/.config/i3
|
||||
mkdir -p $HOME/.config/i3
|
||||
ln -s $PWD/config/i3/config $HOME/.config/i3/config
|
||||
fi
|
||||
###################################################################
|
||||
|
||||
###################################################################
|
||||
read -p "Restore ~/.bashrc? [Y/n]: " ENABLE_BASHRC
|
||||
if [ "$ENABLE_BASHRC" = "Y" ] || [ "$ENABLE_BASHRC" = "y" ] || [ "$ENABLE_NANO" = "" ]
|
||||
@@ -46,7 +56,7 @@ read -p "Would you like to restore scripts [Y/n]: " SCRIPTS
|
||||
if [ "$SCRIPTS" = "Y" ] || [ "$SCRIPTS" = "y" ] || [ "$SCRIPTS" = "" ]
|
||||
then
|
||||
mkdir $HOME/.scripts $HOME/.shortcuts -p
|
||||
ln -s ./scripts/* $HOME/.scripts/
|
||||
ln -s $PWD/scripts/* $HOME/.scripts/
|
||||
fi
|
||||
###################################################################
|
||||
|
||||
@@ -55,6 +65,14 @@ read -p "Would you like to restore fonts [Y/n]: " FONTS
|
||||
if [ "$FONTS" = "Y" ] || [ "$FONTS" = "y" ] || [ "$FONTS" = "" ]
|
||||
then
|
||||
mkdir -vp $HOME/.local/share/fonts
|
||||
ln -s local/share/fonts/* $HOME/.local/share/fonts/
|
||||
ln -s $PWD/local/share/fonts/* $HOME/.local/share/fonts/
|
||||
fi
|
||||
###################################################################
|
||||
read -p "Would you like to restore picom config [Y/n]: " FONTS
|
||||
if [ "$PICOM" = "Y" ] || [ "$PICOM" = "y" ] || [ "$PICOM" = "" ]
|
||||
then
|
||||
mkdir /home/shihaam/.config/picom/
|
||||
ln -s $PWD/config/picom/picom.conf $HOME/.config/picom/picom.conf
|
||||
fi
|
||||
|
||||
# install screen key please add it here
|
||||
|
||||
48
scripts/get-http
Executable file
48
scripts/get-http
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Usage check
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Usage: $0 <URL>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract the protocol, hostname, port, and path from the URL
|
||||
url=$1
|
||||
protocol="${url%%://*}"
|
||||
host_port="${url#*://}"
|
||||
host="${host_port%%/*}"
|
||||
path="/${host_port#*/}"
|
||||
port=80
|
||||
|
||||
# Check if the protocol is HTTP
|
||||
if [ "$protocol" != "http" ]; then
|
||||
echo "Only HTTP protocol is supported."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if a port is specified
|
||||
if [[ $host == *:* ]]; then
|
||||
IFS=':' read -ra ADDR <<< "$host"
|
||||
host=${ADDR[0]}
|
||||
port=${ADDR[1]}
|
||||
fi
|
||||
|
||||
# Open connection to the host
|
||||
exec 3<>/dev/tcp/$host/$port
|
||||
|
||||
# Send HTTP GET request
|
||||
echo -e "GET $path HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n" >&3
|
||||
|
||||
# Read the response and output the file content
|
||||
{
|
||||
# Skip HTTP headers
|
||||
while IFS= read -r line; do
|
||||
[[ $line == $'\r' ]] && break
|
||||
done
|
||||
|
||||
# Output the body (file content)
|
||||
cat >&1
|
||||
} <&3
|
||||
|
||||
# Close the connection
|
||||
exec 3<&-
|
||||
27
scripts/i3lock-finger
Executable file
27
scripts/i3lock-finger
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ensure the directory for failed fingerprint images exists
|
||||
mkdir -p ~/pictures/failed_finger
|
||||
|
||||
# Lock the screen with all passed arguments
|
||||
i3lock "$@" &
|
||||
|
||||
while true; do
|
||||
# Run the fingerprint verification and redirect output to /dev/null
|
||||
fprintd-verify &> /dev/null
|
||||
|
||||
# Capture the exit code
|
||||
exit_code=$?
|
||||
|
||||
# Check the exit code
|
||||
if [ $exit_code -eq 0 ]; then
|
||||
pkill i3lock
|
||||
exit 0
|
||||
elif [ $exit_code -eq 1 ]; then
|
||||
timestamp=$(date "+%Y%m%d_%H%M%S")
|
||||
timestamp_human=$(date -d "${timestamp:0:8} ${timestamp:9:2}:${timestamp:11:2}:${timestamp:13:2}" "+%Y-%h-%d %H:%M:%S")
|
||||
ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 -frames:v 1 ~/pictures/failed_finger/$timestamp.png
|
||||
kdeconnect-cli --device $(kdeconnect-cli -a --id-only) --ping-msg "Failed to unlock at $timestamp_human"
|
||||
fi
|
||||
done
|
||||
|
||||
2
scripts/i3lock.sh
Executable file
2
scripts/i3lock.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
/usr/bin/i3lock -c 000000
|
||||
72
scripts/netscan
Executable file
72
scripts/netscan
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if an interface name is provided
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <network-interface>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INTERFACE=$1
|
||||
|
||||
# Get the IP subnet for the provided network interface
|
||||
IP_SUBNET=$(ip route show dev "$INTERFACE" | grep -v default | awk '{print $1}')
|
||||
|
||||
|
||||
# Check if the IP information was found
|
||||
if [ -z "$IP_SUBNET" ]; then
|
||||
echo "No IP address found for interface $INTERFACE."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Scan the subnet using nmap, running as root
|
||||
echo "Scanning the subnet $IP_SUBNET..."
|
||||
OUTPUT=$(sudo nmap -sP "$IP_SUBNET")
|
||||
|
||||
# Parse the nmap output and present it in a table
|
||||
#echo "$OUTPUT" | awk '/Nmap scan report for/{
|
||||
# if ($5 ~ /^\(/) { ip=$5; name="Unknown"; }
|
||||
# else if ($6 ~ /^\(/) { name=$5; ip=$6; }
|
||||
# else { name="Unknown"; ip=$5; }
|
||||
#
|
||||
# ip=gensub(/\(|\)/, "", "g", ip); # Remove parentheses from IP
|
||||
#
|
||||
# getline; getline; mac=$3; brand="";
|
||||
#
|
||||
# # Capture the entire remainder as brand, remove parentheses
|
||||
# for (i=4; i<=NF; i++) brand = brand $i " ";
|
||||
# brand=gensub(/^\(|\)$/, "", "g", brand); # Clean brand formatting
|
||||
# print name, ip, mac, brand
|
||||
#}' | column -t -s ' ' -o ' | ' | awk 'BEGIN {print "Name | IP Address | MAC Address | Brand\n-----------------------------------------------------------------"} {print}'
|
||||
|
||||
# Parse the nmap output and present it in a table
|
||||
echo "$OUTPUT" | awk '/Nmap scan report for/{
|
||||
if ($5 ~ /^\(/) { ip=$5; name="Unknown"; }
|
||||
else if ($6 ~ /^\(/) { name=$5; ip=$6; }
|
||||
else { name="Unknown"; ip=$5; }
|
||||
|
||||
ip=gensub(/\(|\)/, "", "g", ip); # Remove parentheses from IP
|
||||
|
||||
getline; getline; mac=$3; brand=$4; # Skip status line and move to MAC and Brand
|
||||
gsub(/\(|\)/, "", brand); # Clean brand formatting
|
||||
print name, ip, mac, brand
|
||||
}' | column -t -s ' ' -o ' | ' | awk 'BEGIN {print "Name | IP Address | MAC Address | Brand\n-----------------------------------------------------------------"} {print}'
|
||||
|
||||
|
||||
## Parse the nmap output and present it in a table
|
||||
#echo "$OUTPUT" | awk '/Nmap scan report for/{
|
||||
# if ($5 ~ /^\(/) { ip=$5; name="Unknown"; }
|
||||
# else if ($6 ~ /^\(/) { name=$5; ip=$6; }
|
||||
# else { name="Unknown"; ip=$5; }
|
||||
#
|
||||
# ip=gensub(/\(|\)/, "", "g", ip); # Remove parentheses from IP
|
||||
#
|
||||
# getline; getline; mac=$3; brand="";
|
||||
#
|
||||
# # Capture the entire remainder as brand
|
||||
# if ($(NF-1) ~ /^\(/) { # Check if the second last field starts with (
|
||||
# for (i=4; i<=NF; i++) brand = brand $i " ";
|
||||
# sub(/\s+$/, "", brand); # Trim trailing space
|
||||
# brand=gensub(/\((.*)\)/, "\\1", "g", brand); # Remove outer parentheses
|
||||
# }
|
||||
# print name, ip, mac, brand
|
||||
#}' | column -t -s ' ' -o ' | ' | awk 'BEGIN {print "Name | IP Address | MAC Address | Brand\n--------------------------------------------------------------------------------"} {print}'
|
||||
22
scripts/notify-ssh-access.sh
Executable file
22
scripts/notify-ssh-access.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
doas tail -fn0 /var/log/audit/audit.log | while read -r line; do
|
||||
|
||||
key=$(echo "$line" | grep -oP '(?<=key=").*?(?=")')
|
||||
exe=$(echo "$line" | grep -oP '(?<=exe=").*?(?=")')
|
||||
pid=$(echo "$line" | awk -F'ppid=[0-9]+ pid=' '{print $2}' | awk -F' ' '{print $1}')
|
||||
username=$(echo "$line" | grep -oP '(?<=EUID=").+?(?=")')
|
||||
|
||||
if [ "$key" = "ssh-key-read" ]
|
||||
then
|
||||
SUBJECT="SSH Key accessed!"
|
||||
MESSAGE="exec=$exe\nuser=$username\npid=$pid"
|
||||
|
||||
if [ "$exe" = "/usr/bin/scp" ] || [ "$exe" = "/usr/bin/ssh" ]
|
||||
then
|
||||
notify-send "$SUBJECT" "$MESSAGE"
|
||||
else
|
||||
notify-send -u critical "$SUBJECT" "$MESSAGE"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
2
scripts/office2kdisplay.sh
Executable file
2
scripts/office2kdisplay.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
xrandr --output eDP-1 --mode 1920x1080 --pos 0x360 --rotate normal --output HDMI-1 --off --output DP-1 --primary --mode 2560x1440 --pos 1920x0 --rotate normal --output HDMI-2 --off
|
||||
3
scripts/open-url.sh
Executable file
3
scripts/open-url.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
xdg-open "$1"
|
||||
|
||||
BIN
scripts/output.jpg
Normal file
BIN
scripts/output.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
23
scripts/port-scan
Executable file
23
scripts/port-scan
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if two arguments are provided
|
||||
if [ "$#" -ne 2 ]; then
|
||||
echo "Usage: $0 <hostname or ip> <port-range>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
hostname=$1
|
||||
port_range=$2
|
||||
|
||||
# Split the port range into start and end
|
||||
IFS='-' read -ra PORTS <<< "$port_range"
|
||||
start_port=${PORTS[0]}
|
||||
end_port=${PORTS[1]}
|
||||
|
||||
# Iterate over the port range
|
||||
for ((port=start_port; port<=end_port; port++))
|
||||
do
|
||||
(echo > /dev/tcp/$hostname/$port) &>/dev/null && echo "Port $port open"
|
||||
done
|
||||
|
||||
exit 0
|
||||
13
scripts/scrcpy-autostart
Executable file
13
scripts/scrcpy-autostart
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
while true; do
|
||||
|
||||
if [ -L /dev/android_adb ]
|
||||
then
|
||||
# scrcpy --no-audio --turn-screen-off --stay-awake & sndcpy
|
||||
scrcpy --turn-screen-off --stay-awake
|
||||
else
|
||||
adb wait-for-device
|
||||
fi
|
||||
|
||||
done
|
||||
9
scripts/sensible-terminal
Executable file
9
scripts/sensible-terminal
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$1" = "-e" ]; then
|
||||
shift # Remove the first argument (-e) from the argument list
|
||||
command_args="$*"
|
||||
/sbin/xfce4-terminal -e "$command_args"
|
||||
elif [ -z "$1" ]; then
|
||||
/sbin/xfce4-terminal
|
||||
fi
|
||||
26
scripts/telegram-desktop
Executable file
26
scripts/telegram-desktop
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
SOCKET_ID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 8)
|
||||
|
||||
# Start socat in the background
|
||||
socat UNIX-LISTEN:/tmp/xdg-open$SOCKET_ID.socket,fork EXEC:"xargs -n 1 xdg-open" &
|
||||
|
||||
# Run the Podman container
|
||||
podman run --rm \
|
||||
--name 64gram \
|
||||
--hostname 64gram \
|
||||
-e DISPLAY \
|
||||
--device /dev/snd:/dev/snd \
|
||||
--device /dev/video0:/dev/video0 \
|
||||
-v $HOME/.local/share/64Gram:/root/.local/share/64Gram \
|
||||
-v $HOME/Downloads:/root/Downloads \
|
||||
-v $HOME/Pictures:/root/Pictures \
|
||||
-v $HOME/Documents:/root/Documents \
|
||||
-v /etc/localtime:/etc/localtime \
|
||||
-v /usr/share/icons:/usr/share/icons \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||
-v /tmp/xdg-open$SOCKET_ID.socket:/tmp/xdg-open.socket \
|
||||
git.shihaam.dev/dockerfiles/64gram
|
||||
|
||||
# Wait for all background processes to finish
|
||||
wait
|
||||
55
scripts/tginput.sh
Executable file
55
scripts/tginput.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ $XDG_SESSION_TYPE != "x11" ]]; then
|
||||
echo "Unsupported session type: $XDG_SESSION_TYPE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
get_tg_window_id(){
|
||||
tg_window_id=$(wmctrl -lx | grep telegram-desktop | awk '{print $1}')
|
||||
}
|
||||
|
||||
get_mouse_location(){
|
||||
mouse_xy=$(xdotool getmouselocation --shell)
|
||||
mouse_x=$(printf "%s\n" "$mouse_xy" | grep X= | cut -d= -f2)
|
||||
mouse_y=$(printf "%s\n" "$mouse_xy" | grep Y= | cut -d= -f2)
|
||||
}
|
||||
|
||||
return_mouse(){
|
||||
xdotool mousemove $mouse_x $mouse_y
|
||||
}
|
||||
|
||||
lock_tg(){
|
||||
xdotool windowactivate --sync $tg_window_id key ctrl+l
|
||||
}
|
||||
|
||||
read_passcode(){
|
||||
if [[ ! -f $HOME/.local/.tgpasscode ]]; then
|
||||
echo "Passcode file not found!, Enter Telegram local passcode seperated characters by space."
|
||||
echo "Example: If passcode is 1234, then enter 1 2 3 4 "
|
||||
read -p "Enter passcode: " PASSCODE
|
||||
echo $PASSCODE > $HOME/.local/.tgpasscode
|
||||
echo Telegram Passcode saved at: $HOME/.local/.tgpasscode
|
||||
fi
|
||||
tgpasscode=$(cat $HOME/.local/.tgpasscode)
|
||||
}
|
||||
|
||||
unlock_tg(){
|
||||
xdotool windowactivate --sync $tg_window_id key $tgpasscode Return
|
||||
}
|
||||
|
||||
if [ "$1" == "lock" ]; then
|
||||
get_tg_window_id
|
||||
get_mouse_location
|
||||
lock_tg
|
||||
return_mouse
|
||||
elif [ "$1" == "unlock" ]; then
|
||||
read_passcode
|
||||
get_tg_window_id
|
||||
get_mouse_location
|
||||
unlock_tg
|
||||
return_mouse
|
||||
else
|
||||
echo "Invalid argument. Please use 'lock' or 'unlock'."
|
||||
exit 1
|
||||
fi
|
||||
19
scripts/touchpad.sh
Normal file
19
scripts/touchpad.sh
Normal file
@@ -0,0 +1,19 @@
|
||||
la2110 ~/.scripts ❯ xinput list
|
||||
⎡ Virtual core pointer id=2 [master pointer (3)]
|
||||
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
|
||||
⎜ ↳ DELL0959:00 06CB:CDD5 Mouse id=9 [slave pointer (2)]
|
||||
⎜ ↳ DELL0959:00 06CB:CDD5 Touchpad id=10 [slave pointer (2)]
|
||||
⎜ ↳ PS/2 Generic Mouse id=15 [slave pointer (2)]
|
||||
⎣ Virtual core keyboard id=3 [master keyboard (2)]
|
||||
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
|
||||
↳ Video Bus id=6 [slave keyboard (3)]
|
||||
↳ Power Button id=7 [slave keyboard (3)]
|
||||
↳ Integrated_Webcam_HD: Integrate id=8 [slave keyboard (3)]
|
||||
↳ Intel HID events id=11 [slave keyboard (3)]
|
||||
↳ Intel HID 5 button array id=12 [slave keyboard (3)]
|
||||
↳ Dell WMI hotkeys id=13 [slave keyboard (3)]
|
||||
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
|
||||
|
||||
|
||||
|
||||
xinput set-prop 10 "Device Enabled" 1
|
||||
Reference in New Issue
Block a user