Let's try it
This commit is contained in:
parent
e8d0950852
commit
3f4ec09e0a
@ -10,6 +10,11 @@ SCRIPTS_DIR="$SCRIPT_DIR/scripts"
|
|||||||
|
|
||||||
echo "Starting Arch Hyprland Setup..."
|
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
|
# Function to run a script and check for errors
|
||||||
run_script() {
|
run_script() {
|
||||||
local script="$1"
|
local script="$1"
|
||||||
@ -17,7 +22,6 @@ run_script() {
|
|||||||
|
|
||||||
if [[ -f "$script" ]]; then
|
if [[ -f "$script" ]]; then
|
||||||
echo "Running $name..."
|
echo "Running $name..."
|
||||||
chmod +x "$script"
|
|
||||||
bash "$script"
|
bash "$script"
|
||||||
echo " $name completed"
|
echo " $name completed"
|
||||||
else
|
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/fix-fkeys.sh" "Function keys configuration"
|
||||||
run_script "$SCRIPTS_DIR/config/config.sh" "General system 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..."
|
echo "Installing desktop environment..."
|
||||||
run_script "$SCRIPTS_DIR/desktop/fonts.sh" "Font installation"
|
run_script "$SCRIPTS_DIR/desktop/fonts.sh" "Font installation"
|
||||||
run_script "$SCRIPTS_DIR/desktop/hyprlandia.sh" "Hyprland 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/bluetooth.sh" "Bluetooth setup"
|
||||||
run_script "$SCRIPTS_DIR/desktop/theme.sh" "Theme configuration"
|
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..."
|
echo "Installing additional software..."
|
||||||
run_script "$SCRIPTS_DIR/development.sh" "Development tools"
|
run_script "$SCRIPTS_DIR/development.sh" "Development tools"
|
||||||
run_script "$SCRIPTS_DIR/firewall.sh" "Firewall configuration"
|
run_script "$SCRIPTS_DIR/firewall.sh" "Firewall configuration"
|
||||||
|
183
config/hyprland.conf
Normal file
183
config/hyprland.conf
Normal 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
|
@ -12,9 +12,6 @@
|
|||||||
|
|
||||||
# --- GPU Detection ---
|
# --- GPU Detection ---
|
||||||
if [ -n "$(lspci | grep -i 'nvidia')" ]; then
|
if [ -n "$(lspci | grep -i 'nvidia')" ]; then
|
||||||
show_logo
|
|
||||||
show_subtext "Install NVIDIA drivers..."
|
|
||||||
|
|
||||||
# --- Driver Selection ---
|
# --- Driver Selection ---
|
||||||
# Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules
|
# 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
|
if echo "$(lspci | grep -i 'nvidia')" | grep -q -E "RTX [2-9][0-9]|GTX 16"; then
|
||||||
|
@ -6,7 +6,7 @@ yay -S --noconfirm --needed \
|
|||||||
nautilus sushi ffmpegthumbnailer gvfs-mtp \
|
nautilus sushi ffmpegthumbnailer gvfs-mtp \
|
||||||
slurp satty \
|
slurp satty \
|
||||||
mpv evince imv \
|
mpv evince imv \
|
||||||
chromium
|
brave-bin
|
||||||
|
|
||||||
# Add screen recorder based on GPU
|
# Add screen recorder based on GPU
|
||||||
if lspci | grep -qi 'nvidia'; then
|
if lspci | grep -qi 'nvidia'; then
|
||||||
|
@ -15,10 +15,10 @@ xdg-mime default imv.desktop image/tiff
|
|||||||
# Open PDFs with the Document Viewer
|
# Open PDFs with the Document Viewer
|
||||||
xdg-mime default org.gnome.Evince.desktop application/pdf
|
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-settings set default-web-browser brave.desktop
|
||||||
xdg-mime default chromium.desktop x-scheme-handler/http
|
xdg-mime default brave.desktop x-scheme-handler/http
|
||||||
xdg-mime default chromium.desktop x-scheme-handler/https
|
xdg-mime default brave.desktop x-scheme-handler/https
|
||||||
|
|
||||||
# Open video files with mpv
|
# Open video files with mpv
|
||||||
xdg-mime default mpv.desktop video/mp4
|
xdg-mime default mpv.desktop video/mp4
|
||||||
|
32
scripts/neovim.sh
Executable file
32
scripts/neovim.sh
Executable 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"
|
Loading…
x
Reference in New Issue
Block a user