This commit is contained in:
2025-10-01 21:52:02 +03:00
parent e112f10b70
commit d201ddf5ef
11 changed files with 421 additions and 1567 deletions

14
cachyos/README.md Normal file
View File

@@ -0,0 +1,14 @@
# CachyOS Installation
## 🚀 Quick Start
Run the master installation script to install everything:
```bash
cd /home/ocbwoy3/config/cachyos
./install-all.sh
```
This will automatically run all installation steps in the correct order.
**Note**: This installation is based on the currently written Nix configuration and should do it's best to recreate the same experience you'd get on NixOS, but on CachyOS. All the install scripts are written by Curor's AI, there might be some inaccuracies. Equivalent alternatives for Nix-specific stuff are provided wherever possible.

45
cachyos/install-all.sh Executable file
View File

@@ -0,0 +1,45 @@
#!/bin/bash
# Master Installation Script for Hyprland Rice on CachyOS
# Runs all installation and setup scripts in the correct order
set -e
echo "🚀 OCbwoy3 Dotfiles - CachyOS"
echo "============================="
echo ""
# Get the directory where this script is located
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "📋 This script will:"
echo " 1. Install all required packages for your Hyprland rice"
echo " 2. Install Ralsei cursors"
echo " 3. Set up configuration symlinks and final configuration"
echo ""
echo "⚠️ This process may take a while and will require sudo privileges"
echo ""
read -p "Continue? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "❌ Installation cancelled"
exit 1
fi
echo ""
echo "🔧 CHModing +x install scripts"
chmod +x "$SCRIPT_DIR"/*.sh
echo ""
echo "📦 [1/3] Install packages"
"$SCRIPT_DIR/install-packages.sh"
echo ""
echo "🎮 [2/3] Installing cursors"
"$SCRIPT_DIR/install-cursors.sh"
echo ""
echo "⚙️ [3/3] Installing Hyprland"
"$SCRIPT_DIR/setup.sh"
echo "🚀 Done!"

55
cachyos/install-cursors.sh Executable file
View File

@@ -0,0 +1,55 @@
#!/bin/bash
# Ralsei Cursors Installation Script for CachyOS
# Installs custom Ralsei cursor theme
set -e
echo "🎮 Installing Ralsei cursors..."
# Create cursor directory
CURSOR_DIR="$HOME/.local/share/icons/RalseiCursors"
mkdir -p "$CURSOR_DIR"
# Copy cursor files from config directory
CONFIG_DIR="/home/ocbwoy3/config"
CURSOR_SOURCE="$CONFIG_DIR/hosts/default/packages/ralsei-cursors/cursors"
if [ -d "$CURSOR_SOURCE" ]; then
echo "📁 Copying cursor files..."
cp -r "$CURSOR_SOURCE"/* "$CURSOR_DIR/"
# Copy theme index file
if [ -f "$CONFIG_DIR/hosts/default/packages/ralsei-cursors/index.theme" ]; then
cp "$CONFIG_DIR/hosts/default/packages/ralsei-cursors/index.theme" "$CURSOR_DIR/"
fi
echo "✅ Ralsei cursors copied successfully!"
else
echo "❌ Cursor source directory not found at: $CURSOR_SOURCE"
echo "Please ensure your config directory structure is correct."
exit 1
fi
# Update icon cache
echo "🔄 Updating icon cache..."
if command -v gtk-update-icon-cache &> /dev/null; then
gtk-update-icon-cache -f -t "$CURSOR_DIR"
echo "✅ Icon cache updated!"
else
echo "⚠️ gtk-update-icon-cache not found. You may need to install gtk-update-icon-cache"
fi
# Set as default cursor theme (optional - user can do this manually)
echo "🎯 Setting Ralsei cursors as default..."
if command -v gsettings &> /dev/null; then
gsettings set org.gnome.desktop.interface cursor-theme "RalseiCursors"
echo "✅ Cursor theme set as default!"
else
echo "⚠️ gsettings not found. You may need to set the cursor theme manually."
fi
# Alternative method using XDG
if command -v xdg-settings &> /dev/null; then
xdg-settings set cursor-theme "RalseiCursors" 2>/dev/null || true
fi

128
cachyos/install-packages.sh Executable file
View File

@@ -0,0 +1,128 @@
#!/bin/bash
set -e
echo "🚀 Installing packages for Hyprland"
# Update system first
# echo "📦 Updating system"
# sudo pacman -Syu --noconfirm
# Core Hyprland packages
echo "🎨 Installing Hyprland apps"
sudo pacman -S --needed --noconfirm \
hyprland \
waybar \
wofi \
hyprpaper \
dunst \
hyprlock \
hypridle
# Essential Wayland tools
echo "🔧 Installing Wayland apps"
sudo pacman -S --needed --noconfirm \
grim \
slurp \
swappy \
wl-clipboard \
wayland-utils \
cliphist \
libnotify
# Audio and media
echo "🎵 Installing media apps"
sudo pacman -S --needed --noconfirm \
pavucontrol \
playerctl \
mpv \
ffmpeg \
gimp \
imagemagick
# Fonts
echo "🔤 Installing fonts"
sudo pacman -S --needed --noconfirm \
noto-fonts \
noto-fonts-cjk \
noto-fonts-emoji \
ttf-nerd-fonts-symbols \
ttf-jetbrains-mono \
ttf-fira-code
# Development tools
echo "💻 Installing dev tools"
sudo pacman -S --needed --noconfirm \
npm \
git \
github-cli \
nix \
bun
# System utilities
echo "🛠️ Installing system tools"
sudo pacman -S --needed --noconfirm \
htop \
btop \
fastfetch \
wget \
curl \
unzip \
jq \
networkmanager \
blueman \
network-manager-applet \
ghostty
# Gaming
echo "🎮 Installing gaming stuff"
sudo pacman -S --needed --noconfirm \
steam \
gamescope \
mangohud
# DE
echo "🖥️ Installing DE components"
sudo pacman -S --needed --noconfirm \
gnome-keyring \
seahorse \
polkit-gnome \
xdg-desktop-portal \
xdg-desktop-portal-gtk \
xdg-desktop-portal-wlr \
qt5ct \
qt6ct \
prismlauncher
# File manager
echo "📁 Installing file manager"
sudo pacman -S --needed --noconfirm \
nautilus
echo "🔍 Installing more tools..."
sudo pacman -S --needed --noconfirm \
vesktop \
obs-studio \
kitty
# Install AUR packages
echo "📦 Installing AUR packages"
if command -v yay &> /dev/null; then
echo "Using yay for AUR packages..."
yay -S --needed --noconfirm \
hyprsysteminfo \
catppuccin-gtk-theme-mocha \
catppuccin-cursors-mocha-blue \
catppuccin-kde \
catppuccin-papirus-folders \
catppuccin-waybar-hyprland \
brave-bin
else
echo "⚠️ Please install yay"
echo "sudo pacman -S cachyos/yay"
fi
# Enable services
echo "🔧 Enabling services"
sudo systemctl enable NetworkManager
sudo systemctl enable bluetooth

172
cachyos/setup.sh Executable file
View File

@@ -0,0 +1,172 @@
#!/bin/bash
# Setup Script for Hyprland Rice Configuration
# Creates symlinks and performs final setup
set -e
echo "🔧 Setting up Hyprland rice configuration..."
CONFIG_DIR="/home/ocbwoy3/config"
USER_HOME="$HOME"
XDG_CONFIG_HOME="$USER_HOME/.config"
# Function to create symlink
create_symlink() {
local source="$1"
local target="$2"
local description="$3"
if [ -e "$source" ]; then
echo "🔗 Creating symlink: $description"
# Remove existing file/directory if it exists
[ -e "$target" ] && rm -rf "$target"
# Create parent directory if it doesn't exist
mkdir -p "$(dirname "$target")"
# Create symlink
ln -sf "$source" "$target"
echo "$description configured"
else
echo " ⚠️ Source not found: $source"
fi
}
# Create configuration symlinks
echo "📁 Setting up configuration symlinks..."
# Hyprland configuration
create_symlink "$CONFIG_DIR/config/hypr" "$XDG_CONFIG_HOME/hypr" "Hyprland configuration"
# Waybar configuration
create_symlink "$CONFIG_DIR/config/waybar" "$XDG_CONFIG_HOME/waybar" "Waybar configuration"
# Wofi configuration
create_symlink "$CONFIG_DIR/config/wofi" "$XDG_CONFIG_HOME/wofi" "Wofi configuration"
# Dunst configuration
create_symlink "$CONFIG_DIR/config/dunst" "$XDG_CONFIG_HOME/dunst" "Dunst notification daemon"
# Ghostty configuration
create_symlink "$CONFIG_DIR/config/ghostty" "$XDG_CONFIG_HOME/ghostty" "Ghostty terminal configuration"
# Wlogout configuration
create_symlink "$CONFIG_DIR/config/wlogout" "$XDG_CONFIG_HOME/wlogout" "Wlogout configuration"
# Qt5CT configuration
create_symlink "$CONFIG_DIR/config/qt5ct" "$XDG_CONFIG_HOME/qt5ct" "Qt5CT configuration"
# Fastfetch configuration
create_symlink "$CONFIG_DIR/config/fastfetch" "$XDG_CONFIG_HOME/fastfetch" "Fastfetch configuration"
# XDG Desktop Portal configuration
create_symlink "$CONFIG_DIR/config/xdg-desktop-portal" "$XDG_CONFIG_HOME/xdg-desktop-portal" "XDG Desktop Portal configuration"
# Create fonts directory and symlink custom font
echo "🔤 Setting up fonts..."
FONT_DIR="$USER_HOME/.local/share/fonts"
mkdir -p "$FONT_DIR"
create_symlink "$CONFIG_DIR/config/dotfile_deps/DotfilesFont.otf" "$FONT_DIR/DotfilesFont.otf" "Custom Dotfiles font"
# Set up GTK configuration
echo "🎨 Setting up GTK configuration..."
GTK_CONFIG_DIR="$XDG_CONFIG_HOME/gtk-3.0"
mkdir -p "$GTK_CONFIG_DIR"
create_symlink "$CONFIG_DIR/config/gtk-3.0/settings.ini" "$GTK_CONFIG_DIR/settings.ini" "GTK3 settings"
# Install Arashi icon theme
echo "🎯 Installing Arashi icon theme..."
ARASHI_THEME_DIR="$USER_HOME/.local/share/icons/Arashi"
ARASHI_REPO="https://github.com/0hStormy/Arashi"
if [ ! -d "$ARASHI_THEME_DIR" ]; then
mkdir -p "$USER_HOME/.local/share/icons/"
echo " 📥 Cloning Arashi icon theme from GitHub..."
git clone "$ARASHI_REPO" "$ARASHI_THEME_DIR"
echo " ✅ Arashi icon theme installed from GitHub"
else
echo " ✅ Arashi icon theme already installed"
fi
# Set up desktop environment
echo "🖥️ Configuring desktop environment..."
# Set GTK theme
if command -v gsettings &> /dev/null; then
echo "🎨 Setting GTK themes..."
gsettings set org.gnome.desktop.interface gtk-theme "Catppuccin-Mocha-Standard-Blue-Dark"
gsettings set org.gnome.desktop.interface icon-theme "Arashi"
gsettings set org.gnome.desktop.interface cursor-theme "RalseiCursors"
gsettings set org.gnome.desktop.interface font-name "Noto Sans 11"
gsettings set org.gnome.desktop.wm.preferences theme "Catppuccin-Mocha-Standard-Blue-Dark"
echo " ✅ GTK themes configured"
fi
# Set Qt theme
echo "🎨 Setting Qt themes..."
if command -v qt5ct &> /dev/null; then
echo " ✅ Qt5CT available for Qt5 theme configuration"
fi
if command -v qt6ct &> /dev/null; then
echo " ✅ Qt6CT available for Qt6 theme configuration"
fi
# Configure XDG directories
echo "📂 Setting up XDG directories..."
mkdir -p "$USER_HOME/.local/share/applications"
mkdir -p "$USER_HOME/.local/share/mime"
mkdir -p "$USER_HOME/.cache"
# Set up environment variables
echo "🌍 Setting up environment variables..."
sudo tee -a /etc/environment << EOF
# Hyprland rice environment variables
XDG_TERMINAL=ghostty
XDG_SYSTEM_MONITOR=htop
GTK_USE_PORTAL=1
QT_QPA_PLATFORMTHEME=qt5ct
EOF
echo " ✅ Environment variables configured in /etc/environment"
# Create useful scripts
echo "📝 Creating useful scripts..."
SCRIPTS_DIR="$USER_HOME/.local/bin"
mkdir -p "$SCRIPTS_DIR"
# Roblox game scripts
cat > "$SCRIPTS_DIR/regretevator" << 'EOF'
#!/bin/bash
xdg-open roblox://placeId=4972273297
EOF
cat > "$SCRIPTS_DIR/kaijuparadise" << 'EOF'
#!/bin/bash
xdg-open roblox://placeId=6456351776
EOF
cat > "$SCRIPTS_DIR/sewh" << 'EOF'
#!/bin/bash
xdg-open roblox://placeId=16991287194
EOF
# Make scripts executable
chmod +x "$SCRIPTS_DIR/regretevator"
chmod +x "$SCRIPTS_DIR/kaijuparadise"
chmod +x "$SCRIPTS_DIR/sewh"
echo " ✅ Roblox game scripts created"
# Update font cache
echo "🔄 Updating font cache..."
if command -v fc-cache &> /dev/null; then
fc-cache -fv
echo " ✅ Font cache updated"
fi
# Update icon cache
echo "🔄 Updating icon cache..."
if command -v gtk-update-icon-cache &> /dev/null; then
gtk-update-icon-cache -f -t "$USER_HOME/.local/share/icons" 2>/dev/null || true
echo " ✅ Icon cache updated"
fi