mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-16 23:22:37 +00:00
Compare commits
6 Commits
b9481443a7
...
c383471903
| Author | SHA1 | Date | |
|---|---|---|---|
|
c383471903
|
|||
|
ba9a343452
|
|||
|
d78ec7f853
|
|||
|
4ae6389ae8
|
|||
|
e60f049f10
|
|||
|
a0a958defb
|
3
env/.config/espanso/config/default.yml
vendored
3
env/.config/espanso/config/default.yml
vendored
@@ -35,5 +35,6 @@ auto_restart: true
|
|||||||
# Because injecting long texts char-by-char is a slow operation, espanso automatically
|
# Because injecting long texts char-by-char is a slow operation, espanso automatically
|
||||||
# uses the clipboard if the text is longer than 'clipboard_threshold' characters.
|
# uses the clipboard if the text is longer than 'clipboard_threshold' characters.
|
||||||
# clipboard_threshold: 100
|
# clipboard_threshold: 100
|
||||||
|
#
|
||||||
|
show_notifications: false
|
||||||
# For a list of all the available options, visit the official docs at: https://espanso.org/docs/
|
# For a list of all the available options, visit the official docs at: https://espanso.org/docs/
|
||||||
|
|||||||
2
env/.config/hypr/hyprlock.conf
vendored
2
env/.config/hypr/hyprlock.conf
vendored
@@ -38,7 +38,7 @@ animations {
|
|||||||
background {
|
background {
|
||||||
monitor =
|
monitor =
|
||||||
#path = screenshot
|
#path = screenshot
|
||||||
path = ~/.config/hypr/wallpaper.png
|
path = ~/wallpapers/wall1.png
|
||||||
blur_passes = 3
|
blur_passes = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
16
env/.config/hypr/keybinds.conf
vendored
16
env/.config/hypr/keybinds.conf
vendored
@@ -34,7 +34,7 @@ bind = $mainMod, B, exec, $browser
|
|||||||
bind = $mainMod SHIFT, B, exec, $browser --private-window
|
bind = $mainMod SHIFT, B, exec, $browser --private-window
|
||||||
bind = $mainMod, C, exec, $terminal -e ~/.local/share/scripts/tmux-sessionator ~/.config
|
bind = $mainMod, C, exec, $terminal -e ~/.local/share/scripts/tmux-sessionator ~/.config
|
||||||
bind = $mainMod, D, exec, $pwa "https://pro.housecallpro.com/app/calendar_new"
|
bind = $mainMod, D, exec, $pwa "https://pro.housecallpro.com/app/calendar_new"
|
||||||
bind = $mainMod SHIFT, D, exec, ~/.local/bin/toggle-desktop
|
bind = $mainMod SHIFT, D, exec, ~/.local/scripts/toggle-desktop
|
||||||
bind = $mainMod, E, exec, $pwa "https://mail.proton.me"
|
bind = $mainMod, E, exec, $pwa "https://mail.proton.me"
|
||||||
bind = $mainMod SHIFT, E, exec, uwsm app -- thunderbird
|
bind = $mainMod SHIFT, E, exec, uwsm app -- thunderbird
|
||||||
bind = $mainMod, F, exec, $fileManager
|
bind = $mainMod, F, exec, $fileManager
|
||||||
@@ -42,14 +42,16 @@ bind = $mainMod, F, exec, $fileManager
|
|||||||
bind = $mainMod SHIFT, F, exec, $fileBrowser
|
bind = $mainMod SHIFT, F, exec, $fileBrowser
|
||||||
bind = $mainMod, G, exec, $pwa "https://git.housh.dev"
|
bind = $mainMod, G, exec, $pwa "https://git.housh.dev"
|
||||||
# NOTE: Do not bind apps to H, J, K, or L!
|
# NOTE: Do not bind apps to H, J, K, or L!
|
||||||
bind = $mainMod, M, exec, ~/.local/bin/toggle-waybar
|
bind = $mainMod, M, exec, ~/.local/scripts/toggle-waybar
|
||||||
bind = $mainMod, N, exec, $terminal -e nvim
|
bind = $mainMod, N, exec, $terminal -e nvim
|
||||||
bind = $mainMod, P, exec, $pwa "https://pass.proton.me"
|
bind = $mainMod, P, exec, $pwa "https://pass.proton.me"
|
||||||
bind = $mainMod SHIFT, P, pseudo, # dwindle
|
bind = $mainMod SHIFT, P, pseudo, # dwindle
|
||||||
|
bind = $mainMod SHIFT, R, exec, ~/.local/scripts/waybar-restart
|
||||||
bind = $mainMod, Y, exec, $pwa "https://youtube.com"
|
bind = $mainMod, Y, exec, $pwa "https://youtube.com"
|
||||||
|
bind = $mainMod, U, exec, $pwa "https://unifi.ui.com"
|
||||||
|
bind = $mainMod SHIFT, U, exec, $terminal --class=com.ghostty.float -e ~/.local/scripts/uninstall-desktop-app
|
||||||
bind = $mainMod, V, exec, $terminal --class=com.ghostty.clipse -e clipse
|
bind = $mainMod, V, exec, $terminal --class=com.ghostty.clipse -e clipse
|
||||||
bind = $mainMod, W, killactive,
|
bind = $mainMod, W, killactive,
|
||||||
bind = $mainMod SHIFT, R, exec, ~/.local/bin/waybar-restart
|
|
||||||
|
|
||||||
# TODO: change modifier key.
|
# TODO: change modifier key.
|
||||||
#bind = $mainMod SHIFT, L, exec, hyprlock
|
#bind = $mainMod SHIFT, L, exec, hyprlock
|
||||||
@@ -61,8 +63,8 @@ bind = $mainMod SHIFT, R, exec, ~/.local/bin/waybar-restart
|
|||||||
bind = $mainMod SHIFT ALT, 4, exec, hyprshot -m region -o ~/Pictures
|
bind = $mainMod SHIFT ALT, 4, exec, hyprshot -m region -o ~/Pictures
|
||||||
bind = $mainMod SHIFT ALT, 3, exec, hyprshot -m window -o ~/Pictures
|
bind = $mainMod SHIFT ALT, 3, exec, hyprshot -m window -o ~/Pictures
|
||||||
|
|
||||||
bind = CTRL, F, exec, ~/.local/bin/window-toggle-floating
|
bind = CTRL, F, fullscreen,
|
||||||
#bind = CTRL, F, togglefloating,
|
bind = ctrl shift, f, exec, ~/.local/scripts/window-toggle-floating
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
# Move focus with mainMod + arrow keys
|
||||||
bind = $mainMod, H, movefocus, l
|
bind = $mainMod, H, movefocus, l
|
||||||
@@ -102,8 +104,8 @@ bind = $mainMod, 9, workspace, 9
|
|||||||
bind = $mainMod, 0, workspace, 10
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
# Move all workspaces to a monitor
|
# Move all workspaces to a monitor
|
||||||
bind = $HYPER, 0, exec, ~/.local/bin/mv-all-workspaces-to-monitor 0
|
bind = $HYPER, 0, exec, ~/.local/scripts/mv-all-workspaces-to-monitor 0
|
||||||
bind = $HYPER, 1, exec, ~/.local/bin/mv-all-workspaces-to-monitor 1
|
bind = $HYPER, 1, exec, ~/.local/scripts/mv-all-workspaces-to-monitor 1
|
||||||
|
|
||||||
# Move current workspace.
|
# Move current workspace.
|
||||||
# bind = $HYPER, H, movecurrentworkspacetomonitor, 1
|
# bind = $HYPER, H, movecurrentworkspacetomonitor, 1
|
||||||
|
|||||||
5
env/.config/hypr/windows.conf
vendored
5
env/.config/hypr/windows.conf
vendored
@@ -11,11 +11,12 @@ windowrule = center, tag:floating-window
|
|||||||
windowrule = size 800 600, tag:floating-window
|
windowrule = size 800 600, tag:floating-window
|
||||||
|
|
||||||
# Force windows to be a floating window
|
# Force windows to be a floating window
|
||||||
windowrule = tag +floating-window, class:^(blueberry.py|org.gnome.Nautilus)$
|
windowrule = tag +floating-window, class:^(blueberry.py|org.gnome.Nautilus|com.ghostty.float)$
|
||||||
|
|
||||||
# Force bluetooth settings to stay focused when visible.
|
# Force to stay focused when visible.
|
||||||
windowrule = stayfocused, class:(blueberry.py)
|
windowrule = stayfocused, class:(blueberry.py)
|
||||||
windowrule = stayfocused, class:Pinentry.gtk
|
windowrule = stayfocused, class:Pinentry.gtk
|
||||||
|
windowrule = stayfocused, class:com.ghostty.float
|
||||||
|
|
||||||
# Clipboard history tui in floating window.
|
# Clipboard history tui in floating window.
|
||||||
windowrule = tag +floating-window, class:.*clipse.*
|
windowrule = tag +floating-window, class:.*clipse.*
|
||||||
|
|||||||
119
env/.local/scripts/uninstall-desktop-app
vendored
Executable file
119
env/.local/scripts/uninstall-desktop-app
vendored
Executable file
@@ -0,0 +1,119 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Uninstalls '.desktop' applications, including their icon.
|
||||||
|
#
|
||||||
|
# This is primarily used for uninstalling web app's, if a
|
||||||
|
# desktop app was installed via the package manager, then the
|
||||||
|
# package manager should be used to uninstall the application.
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
Uninstalls '.desktop' files, including their icons. Most commonly
|
||||||
|
used for web applications, if an application was installed by a
|
||||||
|
package manager, then it should be used to uninstall the application.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
uninstall-desktop-app [OPTIONS] [FILE...]
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
--dry-run: Perform but don't actually remove anything.
|
||||||
|
-h | --help: Show the help page.
|
||||||
|
|
||||||
|
If no files are supplied, then an interactive session will be
|
||||||
|
started that allows you to choose the applications to remove.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
declare -a files
|
||||||
|
interactive_mode="0"
|
||||||
|
dry_run="0"
|
||||||
|
help_flag="0"
|
||||||
|
XDG_DATA_HOME=${XDG_DATA_HOME}
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
if [[ $1 =~ ^--dry ]]; then
|
||||||
|
dry_run="1"
|
||||||
|
elif [[ $1 =~ ^-h ]] || [[ $1 =~ ^--h ]]; then
|
||||||
|
help_flag="1"
|
||||||
|
else
|
||||||
|
files+=("$1")
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Early out for help option.
|
||||||
|
if [[ $help_flag == "1" ]]; then
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $XDG_DATA_HOME ]]; then
|
||||||
|
echo "xdg data home is not set"
|
||||||
|
echo "using: ~/.local/share"
|
||||||
|
XDG_DATA_HOME=$HOME/.local/share
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${#files} == 0 ]]; then
|
||||||
|
interactive_mode="1"
|
||||||
|
|
||||||
|
files+=(
|
||||||
|
$(find $XDG_DATA_HOME/applications -mindepth 1 -maxdepth 1 -type f -name "*.desktop" -printf "%f\n" |
|
||||||
|
gum choose --no-limit --padding "2 4" --header "Choose desktop apps to remove:" --selected-prefix="✗ ")
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
log() {
|
||||||
|
if [[ $dry_run == "1" ]]; then
|
||||||
|
echo "[DRY RUN]: $1"
|
||||||
|
else
|
||||||
|
echo "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
############################## MAIN ##############################
|
||||||
|
|
||||||
|
for f in ${files[@]}; do
|
||||||
|
|
||||||
|
icon=""
|
||||||
|
log "ARG: $f"
|
||||||
|
|
||||||
|
# Handle a passed in webapp spec file.
|
||||||
|
if [[ $f =~ \.json$ ]]; then
|
||||||
|
name=$(jq -r ".name" $f)
|
||||||
|
f="$name.desktop"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fname=${f##*/}
|
||||||
|
log "Uninstalling Desktop: $fname"
|
||||||
|
file="$XDG_DATA_HOME/applications/$fname"
|
||||||
|
|
||||||
|
if [[ ! -f $file ]]; then
|
||||||
|
log "[WARNING]: File didn't exist, skipping!"
|
||||||
|
else
|
||||||
|
# get the line in file that has the icon path.
|
||||||
|
icon_line=$(cat $file | grep "Icon")
|
||||||
|
# get just the file path.
|
||||||
|
icon=${icon_line/#Icon=/}
|
||||||
|
|
||||||
|
log " removing icon: rm -rf $icon"
|
||||||
|
log " removing desktop: rm -rf $file"
|
||||||
|
|
||||||
|
if [[ $dry_run == "0" ]]; then
|
||||||
|
rm -rf $icon
|
||||||
|
rm -rf $file
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${#files} -gt 0 ]]; then
|
||||||
|
# Refresh the database so that applcation luanchers, etc
|
||||||
|
# don't show the app still exists.
|
||||||
|
update-desktop-database $XDG_DATA_HOME/applications
|
||||||
|
|
||||||
|
if [[ $interactive_mode == "1" ]]; then
|
||||||
|
log "Done!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
44
env/.local/scripts/uninstall-webapp
vendored
44
env/.local/scripts/uninstall-webapp
vendored
@@ -1,44 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Uninstall's a web app, including it's icon.
|
|
||||||
|
|
||||||
app_dir="$HOME/.local/share/applications"
|
|
||||||
spec=""
|
|
||||||
file=""
|
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
if [[ $1 =~ "-f" ]] || [[ $1 =~ "--file" ]]; then
|
|
||||||
shift
|
|
||||||
file=$(jq -r '.name' $1)
|
|
||||||
else
|
|
||||||
file=$1
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ -z "$file" ]]; then
|
|
||||||
echo -e "Must supplye a web app name to uninstall.\n\n"
|
|
||||||
echo "Usage: uninstall-webapp <name | path>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
file="$(basename $file)"
|
|
||||||
if [[ ! $file =~ \.desktop$ ]]; then
|
|
||||||
file="$file.desktop"
|
|
||||||
fi
|
|
||||||
|
|
||||||
desktop="$app_dir/$file"
|
|
||||||
|
|
||||||
if [[ ! -f "$desktop" ]]; then
|
|
||||||
echo "No webapp found @: $desktop"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
icon=$(cat $desktop | grep "Icon")
|
|
||||||
icon="${icon/#Icon=/}"
|
|
||||||
|
|
||||||
echo "Removing Application: $desktop"
|
|
||||||
rm -rf "$desktop"
|
|
||||||
|
|
||||||
echo "Removing Icon: $icon"
|
|
||||||
rm -rf "$icon" >/dev/null 2>&1
|
|
||||||
3
webapp
3
webapp
@@ -69,7 +69,7 @@ install() {
|
|||||||
|
|
||||||
uninstall() {
|
uninstall() {
|
||||||
local file=$DEV_ENV/env/webapps/$(basename $1)
|
local file=$DEV_ENV/env/webapps/$(basename $1)
|
||||||
local script="$DEV_ENV/env/.local/scripts/uninstall-webapp"
|
local script="$DEV_ENV/env/.local/scripts/uninstall-desktop-app"
|
||||||
|
|
||||||
if [[ ! -x $script ]]; then
|
if [[ ! -x $script ]]; then
|
||||||
log "Failed to find uninstall web app script."
|
log "Failed to find uninstall web app script."
|
||||||
@@ -88,7 +88,6 @@ uninstall() {
|
|||||||
log "WEBAPP: -- grep: $grep"
|
log "WEBAPP: -- grep: $grep"
|
||||||
|
|
||||||
apps_dir=$(find $DEV_ENV/env/webapps -mindepth 1 -maxdepth 1 -type f)
|
apps_dir=$(find $DEV_ENV/env/webapps -mindepth 1 -maxdepth 1 -type f)
|
||||||
|
|
||||||
for s in $apps_dir; do
|
for s in $apps_dir; do
|
||||||
if basename $s | grep -vq "$grep"; then
|
if basename $s | grep -vq "$grep"; then
|
||||||
log "grep \"$grep\" filtered out $s"
|
log "grep \"$grep\" filtered out $s"
|
||||||
|
|||||||
Reference in New Issue
Block a user