Compare commits
28 Commits
8f63f6fbf8
...
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
|
101
bashrc
101
bashrc
@@ -1,13 +1,19 @@
|
|||||||
PATH=$HOME/.scripts:/opt:/home/shihaam/.local/bin:$HOME/.shortcuts/wineprograms:$PATH
|
|
||||||
|
# vars
|
||||||
|
PATH=$HOME/.scripts:/opt:/home/shihaam/.local/bin:$HOME/.shortcuts/wineprograms:$HOME/Applications:$PATH
|
||||||
HISTSIZE=999999
|
HISTSIZE=999999
|
||||||
HISTFILESIZE=999999
|
HISTFILESIZE=999999
|
||||||
|
HISTCONTROL=ignoreboth:erasedups
|
||||||
|
|
||||||
export GPG_TTY=$(tty) #Set GPG_TTY veriable, needed for signing git commits other gpg stuff
|
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/shihaam/.ssh
|
export SSH_CA_FILES=$HOME/.ssh
|
||||||
export SSH_CA_REVOCATION_LIST=$HOME/git/alliedmaldives/ops/ssh-ca/revoked_keys
|
export SSH_CA_REVOCATION_LIST=$HOME/git/alliedmaldives/ops/ssh-ca/revoked_keys
|
||||||
export SSL_FILES=/home/shihaam/ssl/allied
|
export SSL_FILES=$HOME/git/alliedmaldives/ops/ssl-certs
|
||||||
|
|
||||||
#load ble.sh
|
#load ble.sh
|
||||||
source ~/.local/share/blesh/ble.sh
|
source ~/.local/share/blesh/ble.sh
|
||||||
@@ -20,18 +26,41 @@ source ~/.bash-seafly-prompt/command_prompt.bash
|
|||||||
cd(){ builtin cd "$@" && pwd > ~/.cache/whereami;}
|
cd(){ builtin cd "$@" && pwd > ~/.cache/whereami;}
|
||||||
cdl(){ cd $(cat ~/.cache/whereami);};cdl
|
cdl(){ cd $(cat ~/.cache/whereami);};cdl
|
||||||
|
|
||||||
|
ip(){
|
||||||
|
if [[ $1 == "info" ]]
|
||||||
|
then
|
||||||
|
curl -s https://ipinfo.io/$2 | jq
|
||||||
|
else
|
||||||
|
command ip "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
####### ALIASES ##########
|
####### ALIASES ##########
|
||||||
alias nano='nano -i'
|
# add features
|
||||||
|
#alias nano='nano -l'
|
||||||
alias hdd='cd /mnt/hdd'
|
alias hdd='cd /mnt/hdd'
|
||||||
#########################
|
alias drag=ripdrag
|
||||||
|
|
||||||
|
|
||||||
#Adding output colors
|
#Adding output colors
|
||||||
alias ls='ls --color=always'
|
alias ls='ls --color=always'
|
||||||
alias grep='grep --color=auto'
|
alias grep='grep --color=auto'
|
||||||
alias less='less -R'
|
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 ###############################
|
##################### Some cool funcations hehe ###############################
|
||||||
# do math in shell
|
# do math in shell
|
||||||
@@ -43,8 +72,68 @@ edit(){ nano $(grep $1 * -R | awk '{print $1}'|cut -f1 -d ':' | head -n1);}
|
|||||||
#root(){ su -c "$@";}
|
#root(){ su -c "$@";}
|
||||||
# view md file on cli
|
# view md file on cli
|
||||||
catmd() { pandoc $1 | lynx -stdin;}
|
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
|
#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
|
||||||
|
|||||||
@@ -191,11 +191,20 @@ bar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# remove blue border on windows
|
||||||
|
for_window [class="^.*"] border pixel 0
|
||||||
|
|
||||||
#restore displays
|
#restore displays
|
||||||
exec --no-startup-id /home/shihaam/.scripts/office2kdisplay.sh
|
#exec --no-startup-id /home/shihaam/.scripts/home.sh
|
||||||
|
#exec --no-startup-id autorandr --change home
|
||||||
|
#exec --no-startup-id i3-resurrect --restore
|
||||||
|
|
||||||
# flameshot
|
# flameshot
|
||||||
bindsym $mod+Shift+s exec flameshot gui
|
#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
|
# start the compositor at login
|
||||||
exec --no-startup-id picom
|
exec --no-startup-id picom
|
||||||
@@ -203,7 +212,32 @@ exec --no-startup-id picom
|
|||||||
# Start bluetooth system tray applet at login
|
# Start bluetooth system tray applet at login
|
||||||
exec --no-startup-id blueman-applet
|
exec --no-startup-id blueman-applet
|
||||||
|
|
||||||
exec --no-startup-id /home/shihaam/.scripts/scrcpy-autostart
|
#exec --no-startup-id /home/shihaam/.scripts/scrcpy-autostart
|
||||||
|
|
||||||
# start activty watcher
|
# start power mmanager
|
||||||
exec --no-startup-id aw-qt
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# start kde connect
|
||||||
|
exec --no-startup-id kdeconnectd
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
|
||||||
|
bindsym $mod+period exec rofi -modi emoji -show emoji
|
||||||
|
|||||||
@@ -1 +1,20 @@
|
|||||||
include /usr/share/nano-syntax-highlighting/*
|
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;
|
||||||
@@ -68,3 +68,11 @@ then
|
|||||||
ln -s $PWD/local/share/fonts/* $HOME/.local/share/fonts/
|
ln -s $PWD/local/share/fonts/* $HOME/.local/share/fonts/
|
||||||
fi
|
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
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
xrandr --output eDP-1 --primary --mode 1920x1080 --pos 0x360 --rotate normal --output HDMI-1 --off --output DP-1 --mode 2560x1440 --pos 1920x0 --rotate normal --output HDMI-2 --off
|
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
|
||||||
@@ -4,7 +4,8 @@ while true; do
|
|||||||
|
|
||||||
if [ -L /dev/android_adb ]
|
if [ -L /dev/android_adb ]
|
||||||
then
|
then
|
||||||
scrcpy --turn-screen-off --stay-awake & sndcpy
|
# scrcpy --no-audio --turn-screen-off --stay-awake & sndcpy
|
||||||
|
scrcpy --turn-screen-off --stay-awake
|
||||||
else
|
else
|
||||||
adb wait-for-device
|
adb wait-for-device
|
||||||
fi
|
fi
|
||||||
|
|||||||
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
|
||||||
Reference in New Issue
Block a user