Navegando el historial de Kitty Terminal con Vim

Navegar por el historial de la terminal puede ser difícil con la selección estándar del ratón, especialmente para salidas complejas o cuando necesitas seleccionar partes específicas del texto. Combinando las capacidades de pipe de Kitty terminal con la potente navegación de Vim, puedes explorar, buscar y copiar contenido de tu historial de terminal sin esfuerzo. Requisitos Antes de comenzar, asegúrate de tener instalado lo siguiente: Kitty Terminal: Un emulador de terminal rápido, con muchas funciones y basado en GPU Instalación: sudo pacman -S kitty (Arch Linux) Otras distribuciones: https://sw.kovidgoyal.net/kitty/binary/ Vim: El omnipresente editor de texto Instalación: sudo pacman -S vim (Arch Linux) La mayoría de las distribuciones Linux vienen con Vim preinstalado o fácilmente disponible en sus repositorios de paquetes También necesitarás una familiaridad básica con los comandos de navegación de Vim para la mejor experiencia, aunque incluso los principiantes en Vim pueden beneficiarse de esta configuración. ...

mayo 13, 2025 · 4 min · Elvin Guti

Desbloquear acceso sudo después de intentos fallidos en Arch Linux

Cuando fallas al ingresar la contraseña correcta múltiples veces mientras usas sudo, tu cuenta puede bloquearse por razones de seguridad. Esta es una característica de seguridad para prevenir ataques de fuerza bruta. Aquí te mostramos cómo verificar y desbloquear tu cuenta usando el comando faillock. Primero, verifica el estado de los intentos fallidos: 1 sudo faillock Esto mostrará una lista de usuarios y sus intentos fallidos. La salida se verá algo así: ...

mayo 13, 2025 · 1 min · Elvin Guti

Desactivar la verificación de versión para extensiones de GNOME

Las extensiones de GNOME Shell son una forma fantástica de personalizar y ampliar la funcionalidad de tu entorno de escritorio GNOME. Sin embargo, GNOME aplica una verificación de versión, lo que significa que si una extensión no está marcada explícitamente como compatible con tu versión actual de GNOME Shell, no se cargará. Esto puede ser frustrante si sabes que una extensión funciona bien, o si estás desarrollando una extensión y quieres probarla fácilmente. ...

marzo 24, 2025 · 3 min · Elvin Guti

Fastfetch: Información del Sistema, a Tu Manera

¿Cansado de las salidas de información del sistema simples? Fastfetch es una herramienta de línea de comandos (similar a Neofetch) que muestra detalles esenciales del sistema en un formato altamente personalizable y visualmente atractivo. Obtén información sobre tu sistema operativo, kernel, CPU, GPU, RAM, uso del disco y mucho más, todo presentado con arte ASCII colorido y diseños configurables. Características Clave: Rendimiento rápido. Salida altamente personalizable (colores, logotipos, información mostrada). Amplia gama de sistemas operativos compatibles. Fácil de instalar. Instalación: ...

marzo 21, 2025 · 1 min · Elvin Guti

Script para ejecutar pruebas en Jest y obtener el coverage de un archivo específico

Necesitaba automatizar el proceso de ejecutar pruebas en Jest y obtener el coverage de un archivo específico. Creé este script para ayudarme con eso. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 #!/bin/bash # Color definitions BLUE='\033[0;34m' GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' CYAN='\033[0;36m' NC='\033[0m' # No Color BOLD='\033[1m' # Function to display usage show_usage() { echo -e "${YELLOW}Usage:${NC} $0 [--find-by-name] <relative-file-path> [additional test options]" echo -e "${YELLOW}Examples:${NC}" echo -e " $0 src/components/Button.tsx --watch" echo -e " $0 src/components/Button.tsx --find-by-name --watch" exit 1 } # Initialize variables FIND_BY_NAME=false RELATIVE_FILE_PATH="" # Parse arguments while [[ $# -gt 0 ]]; do case $1 in --find-by-name) FIND_BY_NAME=true shift ;; *) if [ -z "$RELATIVE_FILE_PATH" ]; then RELATIVE_FILE_PATH="$1" else break # Stop parsing and keep remaining args for test options fi shift ;; esac done # Check if a file name is provided if [ -z "$RELATIVE_FILE_PATH" ]; then show_usage fi # Check if the file exists if [ ! -f "$RELATIVE_FILE_PATH" ]; then echo -e "${RED}Error: ${NC}File '${YELLOW}${RELATIVE_FILE_PATH}${NC}' not found. 😕" exit 1 fi FILE_PATH=$(echo "$RELATIVE_FILE_PATH" | cut -d'/' -f3-) # Get just the file name without extension for --find-by-name mode FILE_NAME=$(basename "$RELATIVE_FILE_PATH") FILE_NAME_NO_EXT="${FILE_NAME%.*}" # Construct the corresponding test file path TEST_FILE_NAME="${FILE_PATH%.*}.test" if [ "$FIND_BY_NAME" = true ]; then # Search by file name TEST_PATH=$(find "tests" -type f \( -name "${FILE_NAME_NO_EXT}.test.tsx" -o -name "${FILE_NAME_NO_EXT}.test.ts" \)) else # Original search by path TEST_PATH=$(find "tests" -type f \( -path "*/${TEST_FILE_NAME}.tsx" -o -path "*/${TEST_FILE_NAME}.ts" \)) fi # Check if the test file exists if [ -z "$TEST_PATH" ]; then echo -e "${RED}Error: ${NC}Test file for '${YELLOW}${RELATIVE_FILE_PATH}${NC}' not found in 'tests' directory. 😕" echo -e "Test file name: ${YELLOW}${FILE_NAME_NO_EXT}.test.tsx${NC}" echo -e "${YELLOW}Hint:${NC} If you're looking for a file by name, try using the --find-by-name flag." exit 1 fi # Print test information with styling echo -e "\n${BLUE}╔════════════════════════════════════════════════════════════╗${NC}" echo -e "${GREEN}▶ Running Coverage Test${NC}" echo -e "${CYAN}📁 Source file:${NC} ${RELATIVE_FILE_PATH}" echo -e "${CYAN}🧪 Test file:${NC} ${TEST_PATH}" echo -e "${CYAN}⚙️ Options:${NC} $@" echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}\n" yarn test "$TEST_PATH" --coverage --collectCoverageFrom="$RELATIVE_FILE_PATH" "$@" Uso Los casos de prueba están en la carpeta tests. El script buscará el archivo de prueba por ruta de manera predeterminada. Si deseas buscar por nombre, puedes usar la bandera --find-by-name. ...

marzo 3, 2025 · 3 min · Elvin Guti