Let's try it

This commit is contained in:
Javier Feliz 2025-08-07 19:05:09 -04:00
parent e8d0950852
commit 3f4ec09e0a
6 changed files with 244 additions and 10 deletions

View File

@ -10,6 +10,11 @@ SCRIPTS_DIR="$SCRIPT_DIR/scripts"
echo "Starting Arch Hyprland Setup..."
# Make all scripts executable
echo "Making scripts executable..."
find "$SCRIPTS_DIR" -name "*.sh" -type f -exec chmod +x {} \;
echo "✓ All scripts are now executable"
# Function to run a script and check for errors
run_script() {
local script="$1"
@ -17,7 +22,6 @@ run_script() {
if [[ -f "$script" ]]; then
echo "Running $name..."
chmod +x "$script"
bash "$script"
echo " $name completed"
else
@ -37,7 +41,25 @@ run_script "$SCRIPTS_DIR/config/power.sh" "Power management"
run_script "$SCRIPTS_DIR/config/fix-fkeys.sh" "Function keys configuration"
run_script "$SCRIPTS_DIR/config/config.sh" "General system configuration"
# Step 3: Desktop environment
# Step 3: Copy configuration files
echo "Copying configuration files..."
CONFIG_DIR="$SCRIPT_DIR/config"
if [[ -d "$CONFIG_DIR" ]]; then
# Create config directories if they don't exist
mkdir -p "$HOME/.config/hypr"
# Copy hyprland.conf to ~/.config/hypr/
if [[ -f "$CONFIG_DIR/hyprland.conf" ]]; then
cp "$CONFIG_DIR/hyprland.conf" "$HOME/.config/hypr/hyprland.conf"
echo "✓ Hyprland configuration copied"
fi
echo "✓ Configuration files copied"
else
echo "⚠ Warning: Config directory not found at $CONFIG_DIR"
fi
# Step 4: Desktop environment
echo "Installing desktop environment..."
run_script "$SCRIPTS_DIR/desktop/fonts.sh" "Font installation"
run_script "$SCRIPTS_DIR/desktop/hyprlandia.sh" "Hyprland installation"
@ -46,7 +68,7 @@ run_script "$SCRIPTS_DIR/desktop/desktop.sh" "Desktop applications"
run_script "$SCRIPTS_DIR/desktop/bluetooth.sh" "Bluetooth setup"
run_script "$SCRIPTS_DIR/desktop/theme.sh" "Theme configuration"
# Step 4: Additional software and configurations
# Step 5: Additional software and configurations
echo "Installing additional software..."
run_script "$SCRIPTS_DIR/development.sh" "Development tools"
run_script "$SCRIPTS_DIR/firewall.sh" "Firewall configuration"

183
config/hyprland.conf Normal file
View File

@ -0,0 +1,183 @@
# Hyprland Default Configuration
# =================================
# Monitor configuration
monitor=,preferred,auto,auto
# Execute applications at launch
exec-once = waybar
exec-once = mako
# exec-once = swaybg -i ~/.config/omarchy/current/background -m fill
# exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = hypridle
# Environment variables
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
# Look and feel
general {
gaps_in = 5
gaps_out = 10
border_size = 2
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
resize_on_border = false
allow_tearing = false
layout = dwindle
}
decoration {
rounding = 10
active_opacity = 1.0
inactive_opacity = 1.0
drop_shadow = true
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_status = master
}
misc {
force_default_wallpaper = -1
disable_hyprland_logo = false
}
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0
touchpad {
natural_scroll = false
}
}
gestures {
workspace_swipe = false
}
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# Window rules
windowrulev2 = suppressevent maximize, class:.*
# Keybindings
# ===========
# Main modifier key
$mainMod = SUPER
$terminal = kitty
$browser = brave-browser --new-window
$filebrowser = nautilus
# Application shortcuts
bind = $mainMod, Q, exec, $terminal
bind = $mainMod SHIFT, O, exec, $browser
bind = $mainMod, E, exec, filebrowser
bind = $mainMod, R, exec, walker
bind = $mainMod SHIFT, S, exec, hyprshot -m region
# Window management
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, V, togglefloating,
bind = $mainMod, P, pseudo,
bind = $mainMod, J, togglesplit,
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Move focus with mainMod + hjkl (vim-like)
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Media keys
bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
bind = , XF86AudioLowerVolume, exec, pamixer -d 5
bind = , XF86AudioMute, exec, pamixer --toggle-mute
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPause, exec, playerctl play-pause
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous
# Brightness keys
bind = , XF86MonBrightnessUp, exec, brightnessctl set +5%
bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
# Lock screen
bind = $mainMod, L, exec, hyprlock

View File

@ -12,9 +12,6 @@
# --- GPU Detection ---
if [ -n "$(lspci | grep -i 'nvidia')" ]; then
show_logo
show_subtext "Install NVIDIA drivers..."
# --- Driver Selection ---
# Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules
if echo "$(lspci | grep -i 'nvidia')" | grep -q -E "RTX [2-9][0-9]|GTX 16"; then

View File

@ -6,7 +6,7 @@ yay -S --noconfirm --needed \
nautilus sushi ffmpegthumbnailer gvfs-mtp \
slurp satty \
mpv evince imv \
chromium
brave-bin
# Add screen recorder based on GPU
if lspci | grep -qi 'nvidia'; then

View File

@ -15,10 +15,10 @@ xdg-mime default imv.desktop image/tiff
# Open PDFs with the Document Viewer
xdg-mime default org.gnome.Evince.desktop application/pdf
# Use Chromium as the default browser
# Use Brave as the default browser
xdg-settings set default-web-browser brave.desktop
xdg-mime default chromium.desktop x-scheme-handler/http
xdg-mime default chromium.desktop x-scheme-handler/https
xdg-mime default brave.desktop x-scheme-handler/http
xdg-mime default brave.desktop x-scheme-handler/https
# Open video files with mpv
xdg-mime default mpv.desktop video/mp4

32
scripts/neovim.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
# Neovim Installation Script
# Installs Neovim and essential dependencies
# Install Neovim from official repositories
yay -S --noconfirm --needed neovim
# Install Node.js and npm for Neovim plugins that require it
yay -S --noconfirm --needed nodejs npm
# Install Python and pip for Python-based plugins
yay -S --noconfirm --needed python python-pip python-pynvim
# Install clipboard utilities for system clipboard integration
yay -S --noconfirm --needed wl-clipboard xclip
# Install ripgrep, fd, and other search tools commonly used by Neovim plugins
yay -S --noconfirm --needed ripgrep fd
# Install tree-sitter for syntax highlighting
yay -S --noconfirm --needed tree-sitter
# Install language servers for common languages
yay -S --noconfirm --needed \
lua-language-server \
bash-language-server \
typescript-language-server
echo "✓ Neovim and essential dependencies installed successfully!"
echo " You can now run 'nvim' to start Neovim"
echo " Consider installing a Neovim configuration like LazyVim or AstroNvim for enhanced functionality"