dev: automated commit - 2025-09-06 17:51:28
This commit is contained in:
parent
c84dfa059e
commit
b18f0b1edf
13 changed files with 560 additions and 116 deletions
21
env/.config/environment.d/10-base.conf
vendored
21
env/.config/environment.d/10-base.conf
vendored
|
|
@ -1,9 +1,18 @@
|
||||||
|
# Base Environment Variables
|
||||||
|
# Core XDG Base Directory specification
|
||||||
|
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}
|
||||||
|
XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache}
|
||||||
|
XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}
|
||||||
|
XDG_STATE_HOME=${XDG_STATE_HOME:-$HOME/.local/state}
|
||||||
|
XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/run/user/$UID}
|
||||||
|
|
||||||
|
# Shell configuration
|
||||||
|
ZDOTDIR=${ZDOTDIR:-$XDG_CONFIG_HOME/zsh}
|
||||||
|
|
||||||
|
# Default applications
|
||||||
EDITOR=nvim
|
EDITOR=nvim
|
||||||
TERMINAL=kitty
|
TERMINAL=kitty
|
||||||
LANG=en_US.UTF-8
|
|
||||||
XDG_CONFIG_HOME=/home/mzunino/.config
|
# Locale
|
||||||
XDG_CACHE_HOME=/home/mzunino/.cache
|
LANG=en_US.UTF-8
|
||||||
XDG_DATA_HOME=/home/mzunino/.local/share
|
|
||||||
XDG_STATE_HOME=/home/mzunino/.local/state
|
|
||||||
ZDOTDIR=/home/mzunino/.config/zsh
|
|
||||||
|
|
||||||
|
|
|
||||||
37
env/.config/environment.d/20-wayland.conf
vendored
Normal file
37
env/.config/environment.d/20-wayland.conf
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Wayland Environment Variables
|
||||||
|
# Centralized Wayland configuration
|
||||||
|
|
||||||
|
# Core Wayland variables
|
||||||
|
export XDG_SESSION_TYPE=wayland
|
||||||
|
export XDG_CURRENT_DESKTOP=sway
|
||||||
|
|
||||||
|
# Firefox/Thunderbird Wayland support
|
||||||
|
export MOZ_ENABLE_WAYLAND=1
|
||||||
|
|
||||||
|
# QT Wayland configuration
|
||||||
|
export QT_QPA_PLATFORM=wayland-egl
|
||||||
|
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
||||||
|
export QT_QPA_PLATFORMTHEME=qt5ct
|
||||||
|
export QT_STYLE_OVERRIDE=kvantum
|
||||||
|
|
||||||
|
# GTK Wayland configuration
|
||||||
|
export GDK_BACKEND=wayland
|
||||||
|
|
||||||
|
# Clutter/Evas Wayland
|
||||||
|
export CLUTTER_BACKEND=wayland
|
||||||
|
export ECORE_EVAS_ENGINE=wayland_egl
|
||||||
|
export ELM_ENGINE=wayland_wgl
|
||||||
|
|
||||||
|
# SDL Wayland
|
||||||
|
export SDL_VIDEODRIVER=wayland
|
||||||
|
|
||||||
|
# Java Wayland support
|
||||||
|
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||||
|
|
||||||
|
# SSH Agent configuration
|
||||||
|
unset SSH_AGENT_PID
|
||||||
|
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
|
||||||
|
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
|
||||||
|
fi
|
||||||
|
export GPG_TTY=$(tty)
|
||||||
|
gpg-connect-agent updatestartuptty /bye >/dev/null
|
||||||
22
env/.config/environment.d/30-development.conf
vendored
Normal file
22
env/.config/environment.d/30-development.conf
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Development Environment Variables
|
||||||
|
# Node.js and package managers
|
||||||
|
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||||
|
export COREPACK_ENABLE_NETWORK_RESOLUTION=1
|
||||||
|
export COREPACK_ENABLE_STRICT_VERIFICATION=0
|
||||||
|
|
||||||
|
# FZF configuration
|
||||||
|
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
|
||||||
|
export FZF_DEFAULT_COMMAND='fd --type f'
|
||||||
|
|
||||||
|
# Zoxide configuration
|
||||||
|
export _ZO_ECHO=1
|
||||||
|
|
||||||
|
# Manual pages
|
||||||
|
export MANPAGER="nvim +Man!"
|
||||||
|
|
||||||
|
# Git configuration
|
||||||
|
export GIT_EDITOR=nvim
|
||||||
|
|
||||||
|
# Docker configuration
|
||||||
|
export DOCKER_BUILDKIT=1
|
||||||
|
export COMPOSE_DOCKER_CLI_BUILD=1
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# ~/.local/bin/font-manager
|
|
||||||
# This script extracts font archives and rebuilds font cache
|
|
||||||
|
|
||||||
FONT_DIR="$HOME/.local/share/fonts"
|
|
||||||
ARCHIVE_DIR="$FONT_DIR/archives"
|
|
||||||
ACTIVE_DIR="$FONT_DIR/active"
|
|
||||||
|
|
||||||
# Function to extract a specific font archive
|
|
||||||
extract_font() {
|
|
||||||
local archive="$1"
|
|
||||||
if [ -f "$ARCHIVE_DIR/$archive.tar.gz" ]; then
|
|
||||||
echo "Extracting $archive fonts..."
|
|
||||||
tar -xzf "$ARCHIVE_DIR/$archive.tar.gz" -C "$ACTIVE_DIR"
|
|
||||||
fc-cache -f
|
|
||||||
echo "Done! $archive fonts are now active."
|
|
||||||
else
|
|
||||||
echo "Error: Font archive $archive.tar.gz not found."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to list available font archives
|
|
||||||
list_fonts() {
|
|
||||||
echo "Available font archives:"
|
|
||||||
ls -1 "$ARCHIVE_DIR" | sed 's/\.tar\.gz$//'
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to rebuild font cache
|
|
||||||
rebuild_cache() {
|
|
||||||
echo "Rebuilding font cache..."
|
|
||||||
fc-cache -f
|
|
||||||
echo "Done!"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to extract all fonts
|
|
||||||
extract_all() {
|
|
||||||
echo "Extracting all font archives..."
|
|
||||||
for archive in "$ARCHIVE_DIR"/*.tar.gz; do
|
|
||||||
tar -xzf "$archive" -C "$ACTIVE_DIR"
|
|
||||||
done
|
|
||||||
fc-cache -f
|
|
||||||
echo "Done! All fonts are now active."
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to clean active fonts directory
|
|
||||||
clean_fonts() {
|
|
||||||
echo "Cleaning active fonts directory..."
|
|
||||||
find "$ACTIVE_DIR" -type f -name "*.ttf" -o -name "*.otf" | xargs rm -f
|
|
||||||
echo "Done! Active fonts directory is now clean."
|
|
||||||
}
|
|
||||||
|
|
||||||
# Main script logic
|
|
||||||
case "$1" in
|
|
||||||
"extract")
|
|
||||||
extract_font "$2"
|
|
||||||
;;
|
|
||||||
"list")
|
|
||||||
list_fonts
|
|
||||||
;;
|
|
||||||
"rebuild")
|
|
||||||
rebuild_cache
|
|
||||||
;;
|
|
||||||
"all")
|
|
||||||
extract_all
|
|
||||||
;;
|
|
||||||
"clean")
|
|
||||||
clean_fonts
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: font-manager [command] [options]"
|
|
||||||
echo "Commands:"
|
|
||||||
echo " extract [name] Extract specific font archive"
|
|
||||||
echo " list List available font archives"
|
|
||||||
echo " rebuild Rebuild font cache"
|
|
||||||
echo " all Extract all font archives"
|
|
||||||
echo " clean Remove all active fonts"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
251
local-bin/.local/bin/font-manager
Executable file
251
local-bin/.local/bin/font-manager
Executable file
|
|
@ -0,0 +1,251 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# ~/.local/bin/font-manager
|
||||||
|
# This script extracts font archives and rebuilds font cache
|
||||||
|
# Enhanced version with better integration and error handling
|
||||||
|
|
||||||
|
FONT_DIR="$HOME/.local/share/fonts"
|
||||||
|
ARCHIVE_DIR="$FONT_DIR/archives"
|
||||||
|
ACTIVE_DIR="$FONT_DIR/active"
|
||||||
|
BACKUP_DIR="$FONT_DIR/backups"
|
||||||
|
LOG_FILE="$HOME/.local/share/font-manager.log"
|
||||||
|
|
||||||
|
# Colors for output
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
BLUE='\033[0;34m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
# Logging function
|
||||||
|
log() {
|
||||||
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Error handling
|
||||||
|
error_exit() {
|
||||||
|
echo -e "${RED}Error: $1${NC}" >&2
|
||||||
|
log "ERROR: $1"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Success message
|
||||||
|
success() {
|
||||||
|
echo -e "${GREEN}$1${NC}"
|
||||||
|
log "SUCCESS: $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Warning message
|
||||||
|
warning() {
|
||||||
|
echo -e "${YELLOW}Warning: $1${NC}"
|
||||||
|
log "WARNING: $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Info message
|
||||||
|
info() {
|
||||||
|
echo -e "${BLUE}$1${NC}"
|
||||||
|
log "INFO: $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialize directories
|
||||||
|
init_directories() {
|
||||||
|
mkdir -p "$ARCHIVE_DIR" "$ACTIVE_DIR" "$BACKUP_DIR"
|
||||||
|
log "Initialized font directories"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to extract a specific font archive
|
||||||
|
extract_font() {
|
||||||
|
local archive="$1"
|
||||||
|
if [ -z "$archive" ]; then
|
||||||
|
error_exit "Archive name required"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$ARCHIVE_DIR/$archive.tar.gz" ]; then
|
||||||
|
error_exit "Font archive $archive.tar.gz not found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate archive integrity
|
||||||
|
if ! tar -tzf "$ARCHIVE_DIR/$archive.tar.gz" >/dev/null 2>&1; then
|
||||||
|
error_exit "Archive $archive.tar.gz is corrupted"
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Extracting $archive fonts..."
|
||||||
|
tar -xzf "$ARCHIVE_DIR/$archive.tar.gz" -C "$ACTIVE_DIR" || error_exit "Failed to extract $archive"
|
||||||
|
|
||||||
|
# Rebuild font cache
|
||||||
|
rebuild_cache
|
||||||
|
success "$archive fonts are now active"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to list available font archives
|
||||||
|
list_fonts() {
|
||||||
|
if [ ! -d "$ARCHIVE_DIR" ] || [ -z "$(ls -A "$ARCHIVE_DIR" 2>/dev/null)" ]; then
|
||||||
|
warning "No font archives found in $ARCHIVE_DIR"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Available font archives:"
|
||||||
|
ls -1 "$ARCHIVE_DIR" | sed 's/\.tar\.gz$//' | while read -r font; do
|
||||||
|
echo " • $font"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to rebuild font cache
|
||||||
|
rebuild_cache() {
|
||||||
|
info "Rebuilding font cache..."
|
||||||
|
if fc-cache -f >/dev/null 2>&1; then
|
||||||
|
success "Font cache rebuilt successfully"
|
||||||
|
else
|
||||||
|
error_exit "Failed to rebuild font cache"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to extract all fonts
|
||||||
|
extract_all() {
|
||||||
|
if [ ! -d "$ARCHIVE_DIR" ] || [ -z "$(ls -A "$ARCHIVE_DIR" 2>/dev/null)" ]; then
|
||||||
|
warning "No font archives found to extract"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Extracting all font archives..."
|
||||||
|
local count=0
|
||||||
|
for archive in "$ARCHIVE_DIR"/*.tar.gz; do
|
||||||
|
if [ -f "$archive" ]; then
|
||||||
|
local basename=$(basename "$archive" .tar.gz)
|
||||||
|
extract_font "$basename"
|
||||||
|
((count++))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
success "Extracted $count font archives"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to clean active fonts directory
|
||||||
|
clean_fonts() {
|
||||||
|
if [ ! -d "$ACTIVE_DIR" ]; then
|
||||||
|
warning "Active fonts directory does not exist"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create backup before cleaning
|
||||||
|
local backup_name="backup_$(date +%Y%m%d_%H%M%S)"
|
||||||
|
if [ -n "$(find "$ACTIVE_DIR" -type f -name "*.ttf" -o -name "*.otf" 2>/dev/null)" ]; then
|
||||||
|
info "Creating backup: $backup_name"
|
||||||
|
cp -r "$ACTIVE_DIR" "$BACKUP_DIR/$backup_name"
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Cleaning active fonts directory..."
|
||||||
|
find "$ACTIVE_DIR" -type f \( -name "*.ttf" -o -name "*.otf" \) -delete
|
||||||
|
rebuild_cache
|
||||||
|
success "Active fonts directory cleaned"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to restore from backup
|
||||||
|
restore_fonts() {
|
||||||
|
local backup="$1"
|
||||||
|
if [ -z "$backup" ]; then
|
||||||
|
error_exit "Backup name required"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$BACKUP_DIR/$backup" ]; then
|
||||||
|
error_exit "Backup $backup not found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Restoring fonts from backup: $backup"
|
||||||
|
cp -r "$BACKUP_DIR/$backup"/* "$ACTIVE_DIR/"
|
||||||
|
rebuild_cache
|
||||||
|
success "Fonts restored from backup: $backup"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to list backups
|
||||||
|
list_backups() {
|
||||||
|
if [ ! -d "$BACKUP_DIR" ] || [ -z "$(ls -A "$BACKUP_DIR" 2>/dev/null)" ]; then
|
||||||
|
warning "No backups found"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Available backups:"
|
||||||
|
ls -1 "$BACKUP_DIR" | while read -r backup; do
|
||||||
|
echo " • $backup"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to install font from URL
|
||||||
|
install_from_url() {
|
||||||
|
local url="$1"
|
||||||
|
local name="$2"
|
||||||
|
|
||||||
|
if [ -z "$url" ]; then
|
||||||
|
error_exit "URL required"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$name" ]; then
|
||||||
|
name=$(basename "$url" | sed 's/\.[^.]*$//')
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Downloading font from: $url"
|
||||||
|
if wget -q "$url" -O "$ARCHIVE_DIR/$name.tar.gz"; then
|
||||||
|
success "Downloaded $name"
|
||||||
|
extract_font "$name"
|
||||||
|
else
|
||||||
|
error_exit "Failed to download font from $url"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main script logic
|
||||||
|
init_directories
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
"extract")
|
||||||
|
extract_font "$2"
|
||||||
|
;;
|
||||||
|
"list")
|
||||||
|
list_fonts
|
||||||
|
;;
|
||||||
|
"rebuild")
|
||||||
|
rebuild_cache
|
||||||
|
;;
|
||||||
|
"all")
|
||||||
|
extract_all
|
||||||
|
;;
|
||||||
|
"clean")
|
||||||
|
clean_fonts
|
||||||
|
;;
|
||||||
|
"backup")
|
||||||
|
list_backups
|
||||||
|
;;
|
||||||
|
"restore")
|
||||||
|
restore_fonts "$2"
|
||||||
|
;;
|
||||||
|
"install")
|
||||||
|
install_from_url "$2" "$3"
|
||||||
|
;;
|
||||||
|
"status")
|
||||||
|
info "Font Manager Status:"
|
||||||
|
echo " Archives: $ARCHIVE_DIR"
|
||||||
|
echo " Active: $ACTIVE_DIR"
|
||||||
|
echo " Backups: $BACKUP_DIR"
|
||||||
|
echo " Log: $LOG_FILE"
|
||||||
|
echo ""
|
||||||
|
list_fonts
|
||||||
|
echo ""
|
||||||
|
list_backups
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: font-manager [command] [options]"
|
||||||
|
echo ""
|
||||||
|
echo "Commands:"
|
||||||
|
echo " extract [name] Extract specific font archive"
|
||||||
|
echo " list List available font archives"
|
||||||
|
echo " rebuild Rebuild font cache"
|
||||||
|
echo " all Extract all font archives"
|
||||||
|
echo " clean Remove all active fonts (with backup)"
|
||||||
|
echo " backup List available backups"
|
||||||
|
echo " restore [name] Restore fonts from backup"
|
||||||
|
echo " install [url] [name] Install font from URL"
|
||||||
|
echo " status Show current status"
|
||||||
|
echo ""
|
||||||
|
echo "Examples:"
|
||||||
|
echo " font-manager extract jetbrains-mono"
|
||||||
|
echo " font-manager install https://github.com/JetBrains/JetBrainsMono/releases/download/v2.304/JetBrainsMono-2.304.zip"
|
||||||
|
echo " font-manager status"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
84
local-bin/README.md
Normal file
84
local-bin/README.md
Normal file
|
|
@ -0,0 +1,84 @@
|
||||||
|
# Local Bin Scripts
|
||||||
|
|
||||||
|
This directory contains custom scripts that are installed to `~/.local/bin/` via Stow.
|
||||||
|
|
||||||
|
## Font Manager
|
||||||
|
|
||||||
|
Enhanced font management script with advanced features:
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- **Archive Management**: Extract, list, and manage font archives
|
||||||
|
- **Backup System**: Automatic backups before cleaning
|
||||||
|
- **URL Installation**: Install fonts directly from URLs
|
||||||
|
- **Status Monitoring**: View current font status and logs
|
||||||
|
- **Error Handling**: Comprehensive error checking and logging
|
||||||
|
- **Color Output**: Colored terminal output for better UX
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Basic commands
|
||||||
|
font-manager list # List available fonts
|
||||||
|
font-manager extract <name> # Extract specific font
|
||||||
|
font-manager all # Extract all fonts
|
||||||
|
font-manager clean # Clean active fonts (with backup)
|
||||||
|
font-manager status # Show current status
|
||||||
|
|
||||||
|
# Advanced commands
|
||||||
|
font-manager backup # List backups
|
||||||
|
font-manager restore <name> # Restore from backup
|
||||||
|
font-manager install <url> # Install from URL
|
||||||
|
```
|
||||||
|
|
||||||
|
### Zsh Integration
|
||||||
|
|
||||||
|
The following aliases and functions are available:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Aliases
|
||||||
|
fm # font-manager
|
||||||
|
fml # font-manager list
|
||||||
|
fms # font-manager status
|
||||||
|
fmc # font-manager clean
|
||||||
|
fma # font-manager all
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
font-switch <name> # Quick font switching
|
||||||
|
font-preview <name> # Font preview
|
||||||
|
```
|
||||||
|
|
||||||
|
### Directory Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
~/.local/share/fonts/
|
||||||
|
├── archives/ # Font archives (.tar.gz)
|
||||||
|
├── active/ # Extracted fonts
|
||||||
|
├── backups/ # Automatic backups
|
||||||
|
└── font-manager.log # Operation log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Switch to JetBrains Mono
|
||||||
|
font-switch jetbrains-mono
|
||||||
|
|
||||||
|
# Install font from GitHub
|
||||||
|
font-manager install https://github.com/JetBrains/JetBrainsMono/releases/download/v2.304/JetBrainsMono-2.304.zip
|
||||||
|
|
||||||
|
# Preview a font
|
||||||
|
font-preview fira-code
|
||||||
|
|
||||||
|
# Check status
|
||||||
|
fms
|
||||||
|
```
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
The script is automatically installed via Stow:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
stow local-bin
|
||||||
|
```
|
||||||
|
|
||||||
|
This creates the necessary directory structure and installs the script to `~/.local/bin/font-manager`.
|
||||||
|
|
@ -1,4 +1,11 @@
|
||||||
source ~/.config/env
|
# === Zsh Profile Configuration ===
|
||||||
|
# This file is sourced for login shells
|
||||||
|
|
||||||
|
# Set ZDOTDIR if not already set
|
||||||
|
export ZDOTDIR=${ZDOTDIR:-~/.config/zsh}
|
||||||
|
|
||||||
|
# Auto-start Sway on first virtual terminal
|
||||||
|
if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then
|
||||||
|
exec sway
|
||||||
|
fi
|
||||||
|
|
||||||
# If running from tty1 start sway
|
|
||||||
[ "$(tty)" = "/dev/tty1" ] && exec dbus-run-session sway
|
|
||||||
|
|
|
||||||
|
|
@ -98,4 +98,15 @@ alias la='ll -a'
|
||||||
alias tree='ll --tree --level=2'
|
alias tree='ll --tree --level=2'
|
||||||
|
|
||||||
|
|
||||||
alias valheim="cd ~/.config/r2modmanPlus-local/Valheim/profiles/Default/ && ./start_server_bepinex.sh"
|
# Font management
|
||||||
|
alias fm='font-manager'
|
||||||
|
alias fml='font-manager list'
|
||||||
|
alias fms='font-manager status'
|
||||||
|
alias fmc='font-manager clean'
|
||||||
|
alias fma='font-manager all'
|
||||||
|
|
||||||
|
# Maintenance shortcuts
|
||||||
|
alias maint='sudo ~/.local/bin/maintenance.sh'
|
||||||
|
alias maint-disable='touch ~/.local/share/arch_maintenance_disabled && echo "Maintenance reminders disabled"'
|
||||||
|
alias maint-enable='rm -f ~/.local/share/arch_maintenance_disabled && echo "Maintenance reminders enabled"'
|
||||||
|
alias maint-status='if [ -f ~/.local/share/arch_maintenance_disabled ]; then echo "Maintenance reminders: DISABLED"; else echo "Maintenance reminders: ENABLED"; fi'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# This file handles all completion registrations
|
# This file handles all completion registrations
|
||||||
|
|
||||||
# Load custom completion files
|
# Load custom completion files
|
||||||
for completion_file in ~/.local/share/zsh/*-autocomplete.zsh; do
|
for completion_file in ~/.local/share/zsh/*-autocomplete.zsh(N); do
|
||||||
if [ -f "$completion_file" ]; then
|
if [ -f "$completion_file" ]; then
|
||||||
source "$completion_file"
|
source "$completion_file"
|
||||||
fi
|
fi
|
||||||
|
|
@ -13,7 +13,7 @@ done
|
||||||
_lazy_load_completion() {
|
_lazy_load_completion() {
|
||||||
local cmd="$1"
|
local cmd="$1"
|
||||||
local completion_cmd="$2"
|
local completion_cmd="$2"
|
||||||
|
|
||||||
eval "${cmd}() {
|
eval "${cmd}() {
|
||||||
unfunction $cmd
|
unfunction $cmd
|
||||||
eval \"\$($completion_cmd)\"
|
eval \"\$($completion_cmd)\"
|
||||||
|
|
@ -38,7 +38,7 @@ _kf_completion() {
|
||||||
local -a contexts
|
local -a contexts
|
||||||
# Get all contexts and extract unique cluster names (remove -read and -security suffixes)
|
# Get all contexts and extract unique cluster names (remove -read and -security suffixes)
|
||||||
contexts=($(kubectx 2>/dev/null | sed 's/-read$//; s/-security$//' | sort -u))
|
contexts=($(kubectx 2>/dev/null | sed 's/-read$//; s/-security$//' | sort -u))
|
||||||
|
|
||||||
if [[ ${#contexts[@]} -gt 0 ]]; then
|
if [[ ${#contexts[@]} -gt 0 ]]; then
|
||||||
_values 'cluster' "${contexts[@]}"
|
_values 'cluster' "${contexts[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -507,16 +507,26 @@ function cb {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export GTK_THEME=HighContrast
|
# Store original values
|
||||||
export GDK_THEME=HighContrast
|
local original_gtk_theme="$GTK_THEME"
|
||||||
export QT_STYLE_OVERRIDE=HighContrast
|
local original_gdk_theme="$GDK_THEME"
|
||||||
export XDG_CURRENT_DESKTOP=GNOME
|
local original_qt_style="$QT_STYLE_OVERRIDE"
|
||||||
|
local original_xdg_desktop="$XDG_CURRENT_DESKTOP"
|
||||||
# Reset GTK configuration
|
|
||||||
unset GTK2_RC_FILES
|
# Set high contrast theme temporarily
|
||||||
unset GTK_RC_FILES
|
GTK_THEME=HighContrast \
|
||||||
|
GDK_THEME=HighContrast \
|
||||||
exec /usr/bin/codeblocks "$@"
|
QT_STYLE_OVERRIDE=HighContrast \
|
||||||
|
XDG_CURRENT_DESKTOP=GNOME \
|
||||||
|
GTK2_RC_FILES="" \
|
||||||
|
GTK_RC_FILES="" \
|
||||||
|
/usr/bin/codeblocks "$@"
|
||||||
|
|
||||||
|
# Restore original values
|
||||||
|
export GTK_THEME="$original_gtk_theme"
|
||||||
|
export GDK_THEME="$original_gdk_theme"
|
||||||
|
export QT_STYLE_OVERRIDE="$original_qt_style"
|
||||||
|
export XDG_CURRENT_DESKTOP="$original_xdg_desktop"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -627,5 +637,79 @@ alias pport='ppid'
|
||||||
# Node.js cleanup alias
|
# Node.js cleanup alias
|
||||||
alias unChonk="echo 'Starting the great node_modules purge...' && find . -name 'node_modules' -type d -prune -exec sh -c 'echo \"Deleting {}\" && rm -rf \"{}\"' \;"
|
alias unChonk="echo 'Starting the great node_modules purge...' && find . -name 'node_modules' -type d -prune -exec sh -c 'echo \"Deleting {}\" && rm -rf \"{}\"' \;"
|
||||||
|
|
||||||
|
# Font management
|
||||||
|
alias fm='font-manager'
|
||||||
|
alias fml='font-manager list'
|
||||||
|
alias fms='font-manager status'
|
||||||
|
alias fmc='font-manager clean'
|
||||||
|
alias fma='font-manager all'
|
||||||
|
|
||||||
|
# Advanced font management function
|
||||||
|
function font-switch() {
|
||||||
|
# Show help if requested
|
||||||
|
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
|
||||||
|
echo "Usage: font-switch [font-name]"
|
||||||
|
echo "Quickly switch between font sets"
|
||||||
|
echo "Example: font-switch jetbrains-mono"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
echo "Available fonts:"
|
||||||
|
font-manager list
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
local font_name="$1"
|
||||||
|
|
||||||
|
# Check if font exists
|
||||||
|
if ! font-manager list | grep -q "$font_name"; then
|
||||||
|
echo "Error: Font '$font_name' not found" >&2
|
||||||
|
echo "Available fonts:" >&2
|
||||||
|
font-manager list >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Switching to $font_name fonts..."
|
||||||
|
font-manager clean
|
||||||
|
font-manager extract "$font_name"
|
||||||
|
|
||||||
|
# Reload terminal if in kitty
|
||||||
|
if [[ "$TERM" == "xterm-kitty" ]] && command -v kitty >/dev/null 2>&1; then
|
||||||
|
echo "Reloading kitty configuration..."
|
||||||
|
kitty @ set-colors --all ~/.config/kitty/kitty.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Font switch complete!"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Font preview function
|
||||||
|
function font-preview() {
|
||||||
|
# Show help if requested
|
||||||
|
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
|
||||||
|
echo "Usage: font-preview [font-name]"
|
||||||
|
echo "Preview fonts in terminal"
|
||||||
|
echo "Example: font-preview jetbrains-mono"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
echo "Error: Font name required" >&2
|
||||||
|
echo "Usage: font-preview [font-name]" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local font_name="$1"
|
||||||
|
local preview_text="The quick brown fox jumps over the lazy dog
|
||||||
|
ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
|
abcdefghijklmnopqrstuvwxyz
|
||||||
|
0123456789
|
||||||
|
!@#$%^&*()_+-=[]{}|;':\",./<>?"
|
||||||
|
|
||||||
|
echo "Previewing font: $font_name"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
echo "$preview_text" | font-manager extract "$font_name" && echo "$preview_text"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,25 @@
|
||||||
# Configuration
|
# Configuration
|
||||||
MAINTENANCE_SCRIPT="$HOME/.local/bin/maintenance.sh"
|
MAINTENANCE_SCRIPT="$HOME/.local/bin/maintenance.sh"
|
||||||
TIMESTAMP_FILE="$HOME/.local/share/arch_maintenance_timestamp"
|
TIMESTAMP_FILE="$HOME/.local/share/arch_maintenance_timestamp"
|
||||||
INTERVAL=7
|
DISABLED_FILE="$HOME/.local/share/arch_maintenance_disabled"
|
||||||
|
INTERVAL=14 # Increased from 7 to 14 days
|
||||||
|
QUIET_MODE=${MAINTENANCE_QUIET:-false} # Set MAINTENANCE_QUIET=true to disable
|
||||||
|
|
||||||
if [ ! -f "$MAINTENANCE_SCRIPT" ]; then
|
if [ ! -f "$MAINTENANCE_SCRIPT" ]; then
|
||||||
echo "Maintenance script not found at $MAINTENANCE_SCRIPT"
|
echo "Maintenance script not found at $MAINTENANCE_SCRIPT"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if maintenance is disabled
|
||||||
|
if [ -f "$DISABLED_FILE" ] || [ "$QUIET_MODE" = "true" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Only run in interactive shells (not scripts)
|
||||||
|
if [[ ! -o interactive ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -f "$TIMESTAMP_FILE" ]; then
|
if [ -f "$TIMESTAMP_FILE" ]; then
|
||||||
LAST_RUN=$(cat $TIMESTAMP_FILE)
|
LAST_RUN=$(cat $TIMESTAMP_FILE)
|
||||||
CURRENT_TIME=$(date +%s)
|
CURRENT_TIME=$(date +%s)
|
||||||
|
|
@ -59,13 +71,21 @@ snooze_maintenance() {
|
||||||
print_styled "⏰ Maintenance reminder snoozed for 7 more days."
|
print_styled "⏰ Maintenance reminder snoozed for 7 more days."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to disable maintenance permanently
|
||||||
|
disable_maintenance() {
|
||||||
|
touch "$DISABLED_FILE"
|
||||||
|
print_styled "🔕 Maintenance reminders disabled permanently."
|
||||||
|
print_styled "To re-enable: rm $DISABLED_FILE"
|
||||||
|
print_styled "To run manually: sudo $MAINTENANCE_SCRIPT"
|
||||||
|
}
|
||||||
|
|
||||||
# Display maintenance notification
|
# Display maintenance notification
|
||||||
echo ""
|
echo ""
|
||||||
print_styled "⚠️ It's been $DAYS_DIFF days since your last system maintenance"
|
print_styled "⚠️ It's been $DAYS_DIFF days since your last system maintenance"
|
||||||
|
|
||||||
# Enhanced confirmation with three options
|
# Enhanced confirmation with four options
|
||||||
if command -v gum &> /dev/null; then
|
if command -v gum &> /dev/null; then
|
||||||
CHOICE=$(gum choose "Run maintenance now" "Skip this time" "Don't ask for 7 more days")
|
CHOICE=$(gum choose "Run maintenance now" "Skip this time" "Don't ask for 7 more days" "Disable permanently")
|
||||||
case "$CHOICE" in
|
case "$CHOICE" in
|
||||||
"Run maintenance now")
|
"Run maintenance now")
|
||||||
run_maintenance
|
run_maintenance
|
||||||
|
|
@ -77,6 +97,9 @@ if command -v gum &> /dev/null; then
|
||||||
"Don't ask for 7 more days")
|
"Don't ask for 7 more days")
|
||||||
snooze_maintenance
|
snooze_maintenance
|
||||||
;;
|
;;
|
||||||
|
"Disable permanently")
|
||||||
|
disable_maintenance
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
# Fallback for systems without gum
|
# Fallback for systems without gum
|
||||||
|
|
@ -84,7 +107,8 @@ else
|
||||||
echo "1) Run maintenance now"
|
echo "1) Run maintenance now"
|
||||||
echo "2) Skip this time"
|
echo "2) Skip this time"
|
||||||
echo "3) Don't ask for 7 more days"
|
echo "3) Don't ask for 7 more days"
|
||||||
echo -n "Enter your choice (1-3): "
|
echo "4) Disable permanently"
|
||||||
|
echo -n "Enter your choice (1-4): "
|
||||||
read -k 1 CHOICE
|
read -k 1 CHOICE
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
|
@ -99,6 +123,9 @@ else
|
||||||
3)
|
3)
|
||||||
snooze_maintenance
|
snooze_maintenance
|
||||||
;;
|
;;
|
||||||
|
4)
|
||||||
|
disable_maintenance
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
print_styled "Invalid choice. Maintenance skipped."
|
print_styled "Invalid choice. Maintenance skipped."
|
||||||
print_styled "To run manually: sudo $MAINTENANCE_SCRIPT"
|
print_styled "To run manually: sudo $MAINTENANCE_SCRIPT"
|
||||||
|
|
|
||||||
|
|
@ -36,17 +36,8 @@ if [[ -f "$HISTFILE" && -w "$HISTFILE" ]]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Minimal prompt configuration
|
||||||
MNML_INFOLN=()
|
MNML_INFOLN=()
|
||||||
MNML_PROMPT=(mnml_ssh mnml_status 'mnml_cwd 2 0' mnml_git mnml_keymap )
|
MNML_PROMPT=(mnml_ssh mnml_status 'mnml_cwd 2 0' mnml_git mnml_keymap )
|
||||||
MNML_RPROMPT=()
|
MNML_RPROMPT=()
|
||||||
MNML_NORMAL_CHAR="◉"
|
MNML_NORMAL_CHAR="◉"
|
||||||
|
|
||||||
# Environment variables
|
|
||||||
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
|
|
||||||
export FZF_DEFAULT_COMMAND='fd --type f'
|
|
||||||
|
|
||||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
|
||||||
export COREPACK_ENABLE_NETWORK_RESOLUTION=1
|
|
||||||
export COREPACK_ENABLE_STRICT_VERIFICATION=0
|
|
||||||
export MANPAGER="nvim +Man!"
|
|
||||||
export _ZO_ECHO=1
|
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue