docs(v3.5.0): update README for integrated mg_dotfiles and security improvements

- Integrated mg_dotfiles as regular directory (not submodule)
- Added .zshrc.local.example template for local configs without secrets
- Added mg_dotfiles/zsh/.zshrc.local to .gitignore to protect API keys
- Updated README to reflect mg_dotfiles integration and new structure
- Added nvim configuration directory with LazyVim setup
This commit is contained in:
Marco Gallegos
2026-01-11 12:28:56 -06:00
parent 43df5316ed
commit 5ab59146a8
236 changed files with 1919986 additions and 21 deletions

View File

@@ -0,0 +1,13 @@
# Extra autostart processes
# exec-once = uwsm-app -- my-service
# Aplicar mi tema de cursor a GTK
exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice'
# Establecer el tema de iconos Tela Nord
# -----------------------------------------------------
# CONFIGURACIÓN DE TEMA DE ICONOS
# -----------------------------------------------------
exec-once = /usr/lib/xdg-desktop-portal-gtk
exec-once = sleep 1
exec-once = gsettings set org.gnome.desktop.interface icon-theme 'Tela-nord-dark'

View File

@@ -0,0 +1,115 @@
################################################################################
# HYPRLAND BINDINGS #
################################################################################
# Cómo funcionan los bindings:
#
# bindd = MODIFICADORES, TECLA, Nombre, exec, comando
#
# • MODIFICADORES = SUPER | SHIFT | CTRL | ALT (puedes combinarlos)
# • TECLA = tecla física: RETURN, C, T, ESCAPE, etc.
# • Nombre = etiqueta descriptiva (solo texto)
# • exec = ejecuta un comando (lo más usado)
#
# Notas:
# - Cada binding debe tener TODOS los parámetros.
# - Si una línea queda incompleta, Hyprland marcará un error.
# - Si duplicas una combinación de teclas, Hyprland usa la última.
################################################################################
# ------------------------------
# Variables (solo comodidad)
# ------------------------------
$terminal = uwsm-app -- xdg-terminal-exec
$browser = omarchy-launch-browser
################################################################################
# APPLICATION BINDS #
################################################################################
# Terminal con cwd actual (SUPER + ENTER)
bindd = SUPER, RETURN, Terminal, exec, $terminal --dir="$(omarchy-cmd-terminal-cwd)"
# Explorador de archivos (SUPER + E)
bindd = SUPER, E, File Manager, exec, uwsm-app -- nautilus --new-window
# Navegador normal (SUPER + B)
bindd = SUPER, B, Browser, exec, $browser
# Navegador privado (SUPER + SHIFT + B)
bindd = SUPER SHIFT, B, Browser Private, exec, $browser --private
# Spotify (SUPER + SHIFT + M)
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
# Editor (omarchy) (SUPER + SHIFT + N)
bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor
# Monitor del sistema tipo Windows (CTRL + SHIFT + ESCAPE)
bindd = CTRL SHIFT, ESCAPE, Activity Monitor, exec, $terminal -e btop
# Lazydocker (SUPER + SHIFT + D)
bindd = SUPER SHIFT, D, Docker, exec, $terminal -e lazydocker
################################################################################
# WEB APP BINDINGS #
################################################################################
# ChatGPT (SUPER + SHIFT + A)
bindd = SUPER SHIFT, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
# Grok (SUPER + SHIFT + G)
bindd = SUPER SHIFT, G, Grok, exec, omarchy-launch-webapp "https://grok.com"
# Google Calendar (SUPER + SHIFT + C)
bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://calendar.google.com/"
# Gmail (SUPER + SHIFT + E)
bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://mail.google.com/"
# YouTube (SUPER + SHIFT + Y)
bindd = SUPER SHIFT, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
# WhatsApp Web (SUPER + SHIFT + W)
bindd = SUPER SHIFT, W, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
# Google Photos (SUPER + SHIFT + P)
bindd = SUPER SHIFT, P, Google Photos, exec, omarchy-launch-or-focus-webapp "Google Photos" "https://photos.google.com/"
# Jules (SUPER + SHIFT + J)
bindd = SUPER SHIFT, J, Jules, exec, omarchy-launch-webapp "https://jules.google.com/"
# Outlook (SUPER + ALT + O)
bindd = SUPER ALT, O, Outlook, exec, omarchy-launch-webapp "https://outlook.com/"
################################################################################
# APPS NATIVAS #
################################################################################
# Telegram Desktop (SUPER + SHIFT + T)
bindd = SUPER SHIFT, T, Telegram, exec, omarchy-launch-or-focus "^TelegramDesktop$" "/usr/bin/Telegram"
# VS Code (SUPER + SHIFT + V)
bindd = SUPER SHIFT, V, VSCode, exec, uwsm-app -- code
# Antigravity (SUPER + ALT + V)
bindd = SUPER ALT, V, Antigravity, exec, /home/marco/.antigravity/antigravity --password-store="gnome-libsecret"
################################################################################
# OPTIONAL OVERRIDES #
################################################################################
# Ejemplo: poner Omarchy Menu en SUPER + SPACE
# unbind = SUPER, SPACE
# bindd = SUPER, SPACE, Omarchy Menu, exec, omarchy-menu
################################################################################
# Suspend system
bind = SUPER SHIFT, S, exec, systemctl suspend

View File

@@ -0,0 +1,8 @@
# Extra env variables
# env = MY_GLOBAL_ENV,setting
# Mi tema de cursor personalizado
env = HYPRCURSOR_THEME,Bibata-Modern-Ice
env = HYPRCURSOR_SIZE,24
env = XCURSOR_THEME,Bibata-Modern-Ice
env = XCURSOR_SIZE,24
env = OMARCHY_SCREENSHOT_DIR,$HOME/Pictures/Screenshots

View File

@@ -0,0 +1,22 @@
general {
lock_cmd = omarchy-lock-screen # lock screen and 1password
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
inhibit_sleep = 3 # wait until screen is locked
}
listener {
timeout = 150 # 2.5min
on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already)
}
listener {
timeout = 151 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
listener {
timeout = 330 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected
}

View File

@@ -0,0 +1,37 @@
# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/
# Use defaults Omarchy defaults (but don't edit these directly!)
source = ~/.local/share/omarchy/default/hypr/autostart.conf
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
source = ~/.local/share/omarchy/default/hypr/bindings/clipboard.conf
source = ~/.local/share/omarchy/default/hypr/bindings/tiling-v2.conf
source = ~/.local/share/omarchy/default/hypr/bindings/utilities.conf
source = ~/.local/share/omarchy/default/hypr/envs.conf
source = ~/.local/share/omarchy/default/hypr/looknfeel.conf
source = ~/.local/share/omarchy/default/hypr/input.conf
source = ~/.local/share/omarchy/default/hypr/windows.conf
source = ~/.config/omarchy/current/theme/hyprland.conf
# Change your own setup in these files (and overwrite any settings from defaults!)
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/input.conf
source = ~/.config/hypr/bindings.conf
source = ~/.config/hypr/envs.conf
source = ~/.config/hypr/looknfeel.conf
source = ~/.config/hypr/autostart.conf
# Add any other personal Hyprland configuration below
# windowrule = workspace 5, class:qemu
env = LIBVA_DRIVER_NAME,iHD
env = MOZ_ENABLE_WAYLAND,1
#Ajustes de escalado para aplicaciones GTK/QT
env = GDK_SCALE,1
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_QPA_PLATFORM,wayland;xcb
# CORRECCIÓN PARA APPS GIGANTES (Spotify, VSCode, Discord)
xwayland {
force_zero_scaling = true
}

View File

@@ -0,0 +1,43 @@
source = ~/.config/omarchy/current/theme/hyprlock.conf
general {
ignore_empty_input = true
}
background {
monitor =
color = $color
path = ~/.config/omarchy/current/background
blur_passes = 3
}
animations {
enabled = false
}
input-field {
monitor =
size = 650, 100
position = 0, 0
halign = center
valign = center
inner_color = $inner_color
outer_color = $outer_color
outline_thickness = 4
font_family = CaskaydiaMono Nerd Font
font_color = $font_color
placeholder_text = Enter Password 󰈷
check_color = $check_color
fail_text = <i>$FAIL ($ATTEMPTS)</i>
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
auth {
fingerprint:enabled = true
}

View File

@@ -0,0 +1,12 @@
# Makes hyprsunset do nothing to the screen by default
# Without this, the default applies some tint to the monitor
profile {
time = 07:00
identity = true
}
# Enable auto switch to nightlight:
# profile {
# time = 20:00
# temperature = 4000
# }

View File

@@ -0,0 +1,24 @@
# ================================
# 🧭 Hyprland input configuration
# ================================
input {
kb_layout = es
kb_model = pc105
kb_options =
repeat_rate = 40
repeat_delay = 600
numlock_by_default = true
touchpad {
clickfinger_behavior = true
scroll_factor = 0.6
# natural_scroll = true
}
}
# Scroll sensitivity per app
windowrule = match:class (Alacritty|kitty), scroll_touchpad 1.5
windowrule = match:class com.mitchellh.ghostty, scroll_touchpad 0.2
# Three-finger gesture: switch workspace
gesture = 3, horizontal, workspace

View File

@@ -0,0 +1,30 @@
# Change the default Omarchy look'n'feel
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
# No gaps between windows or borders
# gaps_in = 0
# gaps_out = 0
# border_size = 0
# Use master layout instead of dwindle
# layout = master
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
# Use round window corners
# rounding = 8
}
# https://wiki.hypr.land/Configuring/Dwindle-Layout/
dwindle {
# Avoid overly wide single-window layouts on wide screens
# single_window_aspect_ratio = 1 1
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
# Note: on_focus_under_fullscreen option was removed in Hyprland 0.52+
# This section overrides the default config that uses the removed option
}

View File

@@ -0,0 +1,20 @@
# ---------------------------------------------------------
# CONFIGURACIÓN ESPECÍFICA: Laptop + Huawei Externo
# ---------------------------------------------------------
# 1. Laptop (eDP-1) - Pantalla Surface/HiDPI
monitor = eDP-1, 3000x2000@60, 0x0, 2
# 2. Monitor Externo Huawei (DP-2)
# CAMBIO: Usamos 'preferred' para que detecte solo 1920x1080@75Hz
# Posición: 1500x0 (calculado: 3000/2 = 1500)
monitor = DP-2, preferred, 1500x0, 1
# 3. Fallback (Otros monitores)
monitor = , preferred, auto, 1
# ---------------------------------------------------------
# Limpieza de variables antiguas
# ---------------------------------------------------------
# Asegúrate de NO tener "env = GDK_SCALE,2" descomentado en otro lado
# para evitar problemas de tamaño en el monitor externo.

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/amber.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/arctic-blue.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/autumn-leaves.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/blood-orange.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/blue-light-reduce.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/brightness-boost.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/cel-shade.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/cherry-blossom.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/chromatic-shift.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/color-blind-deuteranopia.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/color-invert.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/color-pop.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/comic-book.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/cool-tone.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/crt-breakdown.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/crt-glitch.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/crunch-mode.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/cyberpunk-neon.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/cyberpunk.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/depth-of-field.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/desaturate.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/desert-sand.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/dream.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/duotone.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/film-grain.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/forest-green.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/frost.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/gameboy.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/genesis.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/glitch-wave.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/golden-hour.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/grayscale.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/high-contrast.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/holo-interface.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/hue-shift-180.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/hue-shift-90.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/infrared.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/liquid.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/low-light.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/midnight-purple.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-amber.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-blue.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-cyan.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-green.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-lavender.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-mint.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-orange.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-peach.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-pink.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-purple.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-red.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-teal.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/monochrome-yellow.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/negative.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/night-vision.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/noir.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/ocean.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/oil-paint.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/old-crt.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/posterize.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/power-crunch.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/protanopia.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/purple-haze.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/retro-glow.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/retro-vhs.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/saturate.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/scanlines.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/sepia.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/soft-contrast.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/solarize.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/sunset.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/system-meltdown.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/technicolor.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/thermal.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/tritanopia.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/tritone.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/underwater.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vaporwave.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vibe-00s.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vibe-40s.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vibe-50s.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vibe-60s.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vibe-70s.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vibe-80s.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vibe-90s.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vintage-film.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/vintage.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/warm-tone.glsl

View File

@@ -0,0 +1 @@
/usr/share/aether/shaders/xray.glsl

View File

@@ -0,0 +1,8 @@
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# App-specific tweaks
source = ~/.local/share/omarchy/default/hypr/apps.conf
# XWayland fix - corrected syntax (old 'no_focus on' removed, using proper matchers)
# The old rule was trying to match specific XWayland windows but had invalid syntax
# Kept minimal - let apps handle their own focus behavior