Compare commits
43 Commits
85e5fa4dbf
...
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
|
|||
|
992987fb3c
|
|||
|
5f96594506
|
|||
|
73c6a8b1a0
|
|||
|
e81e4d9e61
|
|||
|
90b980b39a
|
|||
|
e4ead60afe
|
|||
| 502fdd2149 | |||
|
50afc6ed7f
|
|||
|
8244d5cf6b
|
121
bashrc
121
bashrc
@@ -1,7 +1,19 @@
|
|||||||
PATH=$HOME/.scripts:/opt:$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 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/.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
|
#load ble.sh
|
||||||
source ~/.local/share/blesh/ble.sh
|
source ~/.local/share/blesh/ble.sh
|
||||||
@@ -14,21 +26,114 @@ 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
|
||||||
|
|
||||||
#alias ssh='TERM=xterm ssh -o StrictHostKeyChecking=no'
|
ip(){
|
||||||
#alias ssh='TERM=xterm ssh'
|
if [[ $1 == "info" ]]
|
||||||
#alias ssh='TERM=xterm-256color ssh'
|
then
|
||||||
|
curl -s https://ipinfo.io/$2 | jq
|
||||||
|
else
|
||||||
|
command ip "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
alias nano='nano -i'
|
|
||||||
|
####### ALIASES ##########
|
||||||
|
# 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=always'
|
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
|
||||||
|
#}
|
||||||
|
|
||||||
#do math in shell
|
##################### Some cool funcations hehe ###############################
|
||||||
|
# do math in shell
|
||||||
math(){ echo $1 | bc;}
|
math(){ echo $1 | bc;}
|
||||||
|
# Simpleway to see IP resolved to DNS record
|
||||||
|
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
|
#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
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
floating_modifier $mod
|
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
|
# start a terminal
|
||||||
bindsym $mod+Return exec i3-sensible-terminal
|
bindsym $mod+Return exec i3-sensible-terminal
|
||||||
|
|
||||||
@@ -53,8 +57,6 @@ bindsym $mod+Shift+q kill
|
|||||||
# start dmenu (a program launcher)
|
# start dmenu (a program launcher)
|
||||||
#bindsym $mod+d exec --no-startup-id dmenu_run
|
#bindsym $mod+d exec --no-startup-id dmenu_run
|
||||||
bindsym $mod+d exec --no-startup-id rofi -show run
|
bindsym $mod+d exec --no-startup-id rofi -show run
|
||||||
|
|
||||||
|
|
||||||
# A more modern dmenu replacement is rofi:
|
# A more modern dmenu replacement is rofi:
|
||||||
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
|
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
|
||||||
# There also is i3-dmenu-desktop which only displays applications shipping a
|
# 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.
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
# We use variables to avoid repeating the names in multiple places.
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
set $ws1 "1: "
|
set $ws1 "1"
|
||||||
set $ws2 "2: "
|
set $ws2 "2"
|
||||||
set $ws3 "3: "
|
set $ws3 "3"
|
||||||
set $ws4 "4: "
|
set $ws4 "4"
|
||||||
set $ws5 "5: "
|
set $ws5 "5"
|
||||||
set $ws6 "6: "
|
set $ws6 "6"
|
||||||
set $ws7 "7: "
|
set $ws7 "7"
|
||||||
set $ws8 "8: "
|
set $ws8 "8"
|
||||||
set $ws9 "9: "
|
set $ws9 "9"
|
||||||
set $ws10 "10: "
|
set $ws10 "10"
|
||||||
|
|
||||||
# switch to workspace
|
# switch to workspace
|
||||||
bindsym $mod+1 workspace number $ws1
|
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+9 move container to workspace number $ws9
|
||||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||||
|
|
||||||
|
|
||||||
# reload the configuration file
|
# reload the configuration file
|
||||||
bindsym $mod+Shift+c reload
|
bindsym $mod+Shift+c reload
|
||||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
@@ -189,57 +190,54 @@ bar {
|
|||||||
status_command i3status
|
status_command i3status
|
||||||
}
|
}
|
||||||
|
|
||||||
##my config
|
|
||||||
#lock screen
|
|
||||||
bindsym $mod+shift+x exec i3lock --color=000000
|
|
||||||
|
|
||||||
#set wallpaper
|
# remove blue border on windows
|
||||||
#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
|
|
||||||
for_window [class="^.*"] border pixel 0
|
for_window [class="^.*"] border pixel 0
|
||||||
|
|
||||||
#floating mode windows
|
#restore displays
|
||||||
# float Bitwarden Extension from brave
|
#exec --no-startup-id /home/shihaam/.scripts/home.sh
|
||||||
for_window [class="Brave-browser" instance="crx_nngceckbapebfimnlniiiahkandclblb"] floating enable
|
#exec --no-startup-id autorandr --change home
|
||||||
# float network manager setting window
|
#exec --no-startup-id i3-resurrect --restore
|
||||||
for_window [class="Nm-connection-editor" instance="nm-connection-editor"] floating enable
|
|
||||||
|
|
||||||
#start programs
|
# flameshot
|
||||||
exec telegram-desktop
|
#bindsym $mod+Shift+s exec flameshot gui
|
||||||
exec_always picom
|
bindsym Print exec flameshot gui
|
||||||
exec dunst
|
bindsym $mod+Print exec flameshot gui --raw | tesseract stdin stdout | xclip -in -selection clipboard
|
||||||
exec ~/.script/addvirtualsoundcard Virtual-Sound-Card
|
# rofi ssh
|
||||||
exec systemctl --user start mpd
|
bindsym $mod+Shift+s exec rofi -show ssh
|
||||||
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'
|
# 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
|
# start kde connect
|
||||||
bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
|
exec --no-startup-id kdeconnectd
|
||||||
bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness
|
|
||||||
|
|
||||||
# Touchpad controls
|
#set a wallpaper
|
||||||
bindsym XF86TouchpadToggle exec /home/shihaam/.scripts/toggletouchpad.sh # toggle touchpad
|
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 $mod+period exec rofi -modi emoji -show emoji
|
||||||
bindsym XF86AudioPause exec playerctl pause
|
|
||||||
bindsym XF86AudioNext exec playerctl next
|
|
||||||
bindsym XF86AudioPrev exec playerctl previous
|
|
||||||
|
|||||||
@@ -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;
|
||||||
12
config/xsettingsd/xsettingsd.conf
Normal file
12
config/xsettingsd/xsettingsd.conf
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Net/ThemeName "Breeze-Dark"
|
||||||
|
Gtk/EnableAnimations 1
|
||||||
|
Gtk/DecorationLayout "icon:minimize,maximize,close"
|
||||||
|
Gtk/PrimaryButtonWarpsSlider 0
|
||||||
|
Gtk/ToolbarStyle 3
|
||||||
|
Gtk/MenuImages 1
|
||||||
|
Gtk/ButtonImages 1
|
||||||
|
Gtk/CursorThemeSize 24
|
||||||
|
Gtk/CursorThemeName "breeze_cursors"
|
||||||
|
Net/IconThemeName "breeze-dark"
|
||||||
|
Gtk/FontName "Noto Sans, 10"
|
||||||
|
|
||||||
@@ -13,6 +13,16 @@ then
|
|||||||
fi
|
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
|
read -p "Restore ~/.bashrc? [Y/n]: " ENABLE_BASHRC
|
||||||
if [ "$ENABLE_BASHRC" = "Y" ] || [ "$ENABLE_BASHRC" = "y" ] || [ "$ENABLE_NANO" = "" ]
|
if [ "$ENABLE_BASHRC" = "Y" ] || [ "$ENABLE_BASHRC" = "y" ] || [ "$ENABLE_NANO" = "" ]
|
||||||
@@ -29,3 +39,40 @@ then
|
|||||||
ln -s $PWD/bashrc $HOME/.bashrc
|
ln -s $PWD/bashrc $HOME/.bashrc
|
||||||
fi
|
fi
|
||||||
###################################################################
|
###################################################################
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
read -p "xsettingsd [Y/n]: " XSETTINGSD
|
||||||
|
if [ "$XSETTINGSD" = "Y" ] || [ "$XSETTINGSD" = "y" ] || [ "$XSETTINGSD" = "" ]
|
||||||
|
then
|
||||||
|
sudo pacman -S xsettingsd
|
||||||
|
mkdir -p $HOME/.config/xsettingsd/
|
||||||
|
ln -s $PWD/config/xsettingsd/xsettingsd.conf $HOME/.config/xsettingsd/xsettingsd.conf
|
||||||
|
fi
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
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 $PWD/scripts/* $HOME/.scripts/
|
||||||
|
fi
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
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 $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