mirror of
https://github.com/xsghetti/HyprCrux.git
synced 2025-07-03 22:00:38 -04:00
hyprpm/hyprlock
This commit is contained in:
parent
d4376c8ddf
commit
e973ebbc15
39 changed files with 2500 additions and 7 deletions
86
.config/hypr/scripts/cliphist.sh
Executable file
86
.config/hypr/scripts/cliphist.sh
Executable file
|
@ -0,0 +1,86 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
ScrDir=`dirname "$(realpath "$0")"`
|
||||
source $ScrDir/globalcontrol.sh
|
||||
roconf="~/.config/rofi/clipboard.rasi"
|
||||
|
||||
|
||||
# set position
|
||||
x_offset=-15 #* Cursor spawn position on clipboard
|
||||
y_offset=210 #* To point the Cursor to the 1st and 2nd latest word
|
||||
#!base on $HOME/.config/rofi/clipboard.rasi
|
||||
clip_h=$(cat "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/clipboard.rasi" | awk '/window {/,/}/' | awk '/height:/ {print $2}' | awk -F "%" '{print $1}')
|
||||
clip_w=$(cat "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/clipboard.rasi" | awk '/window {/,/}/' | awk '/width:/ {print $2}' | awk -F "%" '{print $1}')
|
||||
#clip_h=55 #! Modify limits for size of the Clipboard
|
||||
#clip_w=20 #! This values are transformed per cent(100)
|
||||
#? Monitor resolution , scale and rotation
|
||||
x_mon=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .width')
|
||||
y_mon=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .height')
|
||||
#? Rotated monitor?
|
||||
monitor_rot=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .transform')
|
||||
if [ "$monitor_rot" == "1" ] || [ "$monitor_rot" == "3" ]; then # if rotated 270 deg
|
||||
tempmon=$x_mon
|
||||
x_mon=$y_mon
|
||||
y_mon=$tempmon
|
||||
#! For rotated monitors
|
||||
fi
|
||||
#? Scaled monitor Size
|
||||
monitor_scale=$(hyprctl -j monitors | jq '.[] | select (.focused == true) | .scale' | sed 's/\.//')
|
||||
x_mon=$((x_mon * 100 / monitor_scale ))
|
||||
y_mon=$((y_mon * 100 / monitor_scale))
|
||||
#? monitor position
|
||||
x_pos=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .x')
|
||||
y_pos=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .y')
|
||||
#? cursor position
|
||||
x_cur=$(hyprctl -j cursorpos | jq '.x')
|
||||
y_cur=$(hyprctl -j cursorpos | jq '.y')
|
||||
# Ignore position
|
||||
x_cur=$(( x_cur - x_pos))
|
||||
y_cur=$(( y_cur - y_pos))
|
||||
#Limiting
|
||||
# Multiply before dividing to avoid losing precision due to integer division
|
||||
clip_w=$(( x_mon*clip_w/100 ))
|
||||
clip_h=$(( y_mon*clip_h/100 ))
|
||||
max_x=$((x_mon - clip_w - 5 )) #offset of 5 for gaps
|
||||
max_y=$((y_mon - clip_h - 15 )) #offset of 15 for gaps
|
||||
x_cur=$((x_cur - x_offset))
|
||||
y_cur=$((y_cur - y_offset))
|
||||
#
|
||||
x_cur=$(( x_cur < min_x ? min_x : ( x_cur > max_x ? max_x : x_cur)))
|
||||
y_cur=$(( y_cur < min_y ? min_y : ( y_cur > max_y ? max_y : y_cur)))
|
||||
|
||||
pos="window {location: north west; x-offset: ${x_cur}px; y-offset: ${y_cur}px;}" #! I just Used the old pos function
|
||||
#pos="window {location: $y_rofi $x_rofi; $x_offset $y_offset}"
|
||||
|
||||
# read hypr theme border
|
||||
|
||||
wind_border=$(( hypr_border * 3/2 ))
|
||||
elem_border=`[ $hypr_border -eq 0 ] && echo "5" || echo $hypr_border`
|
||||
r_override="window {border: ${hypr_width}px; border-radius: ${wind_border}px;} entry {border-radius: ${elem_border}px;} element {border-radius: ${elem_border}px;}"
|
||||
|
||||
|
||||
# read hypr font size
|
||||
|
||||
fnt_override=`gsettings get org.gnome.desktop.interface monospace-font-name | awk '{gsub(/'\''/,""); print $NF}'`
|
||||
fnt_override="configuration {font: \"JetBrainsMono Nerd Font ${fnt_override}\";}"
|
||||
|
||||
|
||||
# clipboard action
|
||||
|
||||
case $1 in
|
||||
c) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \"Copy...\";} ${pos} ${r_override}" -theme-str "${fnt_override}" -config $roconf | cliphist decode | wl-copy
|
||||
;;
|
||||
d) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \"Delete...\";} ${pos} ${r_override}" -theme-str "${fnt_override}" -config $roconf | cliphist delete
|
||||
;;
|
||||
w) if [ `echo -e "Yes\nNo" | rofi -dmenu -theme-str "entry { placeholder: \"Clear Clipboard History?\";} ${pos} ${r_override}" -theme-str "${fnt_override}" -config $roconf` == "Yes" ] ; then
|
||||
cliphist wipe
|
||||
fi
|
||||
;;
|
||||
*) echo -e "cliphist.sh [action]"
|
||||
echo "c : cliphist list and copy selected"
|
||||
echo "d : cliphist list and delete selected"
|
||||
echo "w : cliphist wipe database"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue