11 Commits

12 changed files with 189 additions and 53 deletions

View File

@@ -27,6 +27,7 @@ A list of in-progress and completed todo's.
- [ ] Need to ensure ssh keys are setup before private submodules are loaded / installed,
so I need to make sure that Yubikey setup runs early and works for ssh authentication.
- [ ] Setup a new machine / virtual machine to test, as it's hard to test the scripts once a machine is setup.
- [ ] Need to add `repos` script when bootstrapping.
### Keyboard / kanata

76
devcontainer-env Executable file
View File

@@ -0,0 +1,76 @@
#!/usr/bin/env bash
set -e
set -o nounset
set -o pipefail
# Intsalls appropriate dotfiles inside a devcontainer context.
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-"$HOME/.config"}
DEV_ENV=${DEV_ENV:-""}
if [ ! -d "$DEV_ENV" ]; then
echo "[ERROR]: DEV_ENV variable does not exist."
exit 1
fi
log() {
echo "$*"
}
copy_dir() {
local dir=${1:-""}
local path="${DEV_ENV}/${dir}"
if [ -z "$dir" ] || [ ! -d "$path" ]; then
log "[ERROR]: Directory does not exist: $dir"
exit 1
else
log "Copying dir: $dir"
cp -R "$path" "$XDG_CONFIG_HOME"
fi
}
copy_file() {
local file=${1:-""}
if [[ -z "$file" ]] || [[ ! -f "$file" ]]; then
log "[ERROR]: file does not exist: $file"
exit 1
else
log "Copying file: $file"
cp "$DEV_ENV/$file" "$HOME"
fi
}
# MAIN
dirs=(
env/.config/eza
env/.config/git
env/.config/ripgrep
env/.config/starship
env/.config/yazi
env/.config/zsh
)
files=(
env/.markdownlint.jsonc
env/.prettierrc
env/.tmux.conf
env/.zshenv
)
for dir in "${dirs[@]}"; do
copy_dir "$dir"
done
for file in "${files[@]}"; do
copy_file "$file"
done
# Install neovim config
git submodule update --init --remote env/.config/nvim
source env/.config/nvim/install.sh
# Install my scripts
cp -R env/.local/scripts "$HOME/.local"

View File

@@ -6,7 +6,7 @@
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once = pidof hyprpaper | uwsm app -- hyprpaper
exec-once = uwsm app -- hyprpaper
exec-once = pidof hypridle | uwsm app -- hypridle
exec-once = pidof hyprlauncher | uwsm app -- hyprlauncher -d
exec-once = pidof swaync | uwsm app -- swaync

View File

@@ -4,7 +4,5 @@
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor= ,preferred,auto,auto
#monitor = HDMI-A-1, preferred, 0x0, auto
#monitor = HDMI-A-1, preferred, 0x0, 1.66667

View File

@@ -1,6 +1,6 @@
background = rgb(1e1e2e)
base = rgb(b4befe)
alternate_base = rgb(cdd6f4))
alternate_base = rgb(cdd6f4)
text = rgb(cdd6f4)
bright_text = rgb(89b4fa)
accent = rgb(b4befe)

View File

@@ -4,44 +4,44 @@
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrule = float, tag:floating-window
windowrule = center, tag:floating-window
windowrule = size 60% 60%, tag:floating-window
# Weather tui
windowrule = float, class:^(com.ghostty.weather)$
windowrule = center, class:^(com.ghostty.weather)$
windowrule = size 90% 80%, class:^(com.ghostty.weather)$
# Force windows to be a floating window
windowrule = tag +floating-window, class:^(blueberry.py|org.gnome.Nautilus|com.ghostty.float)$
windowrule = tag +floating-window, class:^(com.ghostty.windowctl)$
windowrule = tag +floating-window, class:^(com.ghostty.utils-launcher)$
windowrule = tag +floating-window, class:^(com.ghostty.homelab-launcher)$
# Force to stay focused when visible.
windowrule = stayfocused, class:(blueberry.py)
windowrule = stayfocused, class:Pinentry.gtk
windowrule = stayfocused, class:com.ghostty.float
windowrule = stayfocused, class:com.ghostty.windowctl
windowrule = stayfocused, class:^(com.ghostty.utils-launcher)$
# Clipboard history tui in floating window.
windowrule = tag +floating-window, class:.*clipse.*
windowrule = stayfocused, class:.*clipse.*
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
# Just a dash of opacity by default.
windowrule = opacity 0.97 0.92, class:.*
# No opacity on youtube.
windowrule = opacity 1.0, class:.*youtube.com.*
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# To get more information about a windows class, title, XWayland status or its size, you can use `hyprctl clients`. (From Hyprland Wiki)
windowrulev2 = float,class:^(one.alynx.showmethekey)$
windowrulev2 = float,class:^(showmethekey-gtk)$ # make window floating
windowrulev2 = pin,class:^(showmethekey-gtk)$ # pin window
# windowrule = float, tag:floating-window
# windowrule = center, tag:floating-window
# windowrule = size 60% 60%, tag:floating-window
#
# # Weather tui
# windowrule = float, class:^(com.ghostty.weather)$
# windowrule = center, class:^(com.ghostty.weather)$
# windowrule = size 90% 80%, class:^(com.ghostty.weather)$
#
# # Force windows to be a floating window
# windowrule = tag +floating-window, class:^(blueberry.py|org.gnome.Nautilus|com.ghostty.float)$
# windowrule = tag +floating-window, class:^(com.ghostty.windowctl)$
# windowrule = tag +floating-window, class:^(com.ghostty.utils-launcher)$
# windowrule = tag +floating-window, class:^(com.ghostty.homelab-launcher)$
#
# # Force to stay focused when visible.
# windowrule = stayfocused, class:(blueberry.py)
# windowrule = stayfocused, class:Pinentry.gtk
# windowrule = stayfocused, class:com.ghostty.float
# windowrule = stayfocused, class:com.ghostty.windowctl
# windowrule = stayfocused, class:^(com.ghostty.utils-launcher)$
#
# # Clipboard history tui in floating window.
# windowrule = tag +floating-window, class:.*clipse.*
# windowrule = stayfocused, class:.*clipse.*
#
# # Ignore maximize requests from apps. You'll probably like this.
# windowrule = suppressevent maximize, class:.*
#
# # Just a dash of opacity by default.
# windowrule = opacity 0.97 0.92, class:.*
# # No opacity on youtube.
# windowrule = opacity 1.0, class:.*youtube.com.*
#
# # Fix some dragging issues with XWayland
# windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
#
# # To get more information about a windows class, title, XWayland status or its size, you can use `hyprctl clients`. (From Hyprland Wiki)
# windowrulev2 = float,class:^(one.alynx.showmethekey)$
# windowrulev2 = float,class:^(showmethekey-gtk)$ # make window floating
# windowrulev2 = pin,class:^(showmethekey-gtk)$ # pin window

View File

@@ -27,7 +27,7 @@
;; Variables
(defvar
tap-higher 400
tap-time 200
tap-time 150
tap-time-plus 300
hold-time-plus 300
hold-time 200

View File

@@ -176,6 +176,7 @@ alias pc='gopass show --clip' # get an attribute of a password file and
alias reload='exec zsh -l' # reload the shell, useful when making changes.
alias s='swift' # shorthand to access swift commands
alias st='swift test' # swift test
alias ste='swift test --enable-code-coverage' # swift test with code coverage enabled.
alias sb='swift build' # swift build
alias syu='yay -Syu' # Update packages.
alias t='tmux' # access tmux quickly
@@ -207,6 +208,7 @@ source <(fzf --zsh)
_source_if "$ZDOTDIR/.zshrc-local"
_source_if "$LOCAL_ENV"
_source_if "$SCRIPTS/catppuccin-colors"
_source_if "$XDG_DATA_HOME/swiftly/env.sh"
# pnpm
export PNPM_HOME="$XDG_DATA_HOME/pnpm"

View File

@@ -7,6 +7,6 @@ function dp() {
local temperature=$1
local humidity=$2
/opt/homebrew/bin/psychrometrics dew-point --dry-bulb "$temperature" --relative-humidity "$humidity"
psychrometrics dew-point --dry-bulb "$temperature" --relative-humidity "$humidity"
}

3
env/.zshenv vendored
View File

@@ -87,5 +87,8 @@ export STARSHIP_CONFIG="$XDG_CONFIG_HOME/starship/starship.toml"
export _ZO_DATA_DIR="$XDG_DATA_HOME"
unset _ZO_ECHO
# Suppress swift backtrace warnings.
export SWIFT_BACTRACE=enable=no
[ -f "$LOCAL_ENV" ] && source "$LOCAL_ENV"
[ -f "$ZDOTDIR/personal.env" ] && source "$ZDOTDIR/personal.env"

56
repos Executable file
View File

@@ -0,0 +1,56 @@
#!/usr/bin/env bash
set -e
set -o nounset
set -o pipefail
DEST="$HOME/dev"
dry_run_flag="0"
log() {
if [[ $dry_run_flag == "1" ]]; then
echo "[DRY RUN]: $*"
else
echo "$*"
fi
}
clone() {
local src=${1:-""}
local dest=${2:-$DEST}
log "Cloning '$src' in '$dest'"
if [[ $dry_run_flag == "0" ]]; then
pushd "$dest" || exit 1 &>/dev/null
(
git clone "$src"
)
popd &>/dev/null
fi
}
install-psychrometrics() {
log "Installing psychrometrics cli."
if [[ $dry_run_flag == "0" ]]; then
local src="$DEST/psychrometrics-cli"
pushd "$src" || exit 1 &>/dev/null
(
./install-linux.sh
)
popd &>/dev/null
rm -rf "$src"
fi
}
##### MAIN #####
while [[ $# -gt 0 ]]; do
if [[ $1 =~ ^-d ]] || [[ $1 =~ ^--dry ]]; then
dry_run_flag="1"
fi
shift
done
mkdir -p "$DEST/sites" &>/dev/null
clone "git@github.com:m-housh/mhoush.com.git" "$DEST/sites"
clone "git@github.com:swift-psychrometrics/psychrometrics-cli.git" && install-psychrometrics