From dc47333ae41c07544de65ae0052ddf46a027f421 Mon Sep 17 00:00:00 2001 From: TolaMironcenko Date: Thu, 17 Jul 2025 12:40:32 +0700 Subject: [PATCH] added README INSTALL LICENSE --- .gitignore | 2 +- CHANGELOG.md | 138 ++++++++++++++ INSTALL.md | 499 +++++++++++++++++++++++++++++++++++++++++++++++++++ LICENSE | 21 +++ README.md | 288 +++++++++++++++++++++++++---- 5 files changed, 912 insertions(+), 36 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 INSTALL.md create mode 100644 LICENSE diff --git a/.gitignore b/.gitignore index 181b229..a0fa313 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ paru *.o *dwm -hyprlock.conf +*hyprlock.conf diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..be866f6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,138 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added +- Comprehensive README.md with detailed installation instructions +- INSTALL.md with step-by-step installation guide +- LICENSE file (MIT License) +- CHANGELOG.md for tracking version history +- Screenshots directory for project documentation +- Enhanced documentation structure + +### Changed +- Improved project organization and documentation +- Better structured configuration files +- Enhanced installation scripts with better error handling + +### Fixed +- Installation script compatibility issues +- Path resolution in configuration files + +## [2.0.0] - 2024-01-15 + +### Added +- SwayNC notification daemon support +- Fastfetch configuration +- Custom Rofi themes and power menu +- Greenclip clipboard manager integration +- Enhanced Waybar modules (weather, updates, media controls) +- Custom scripts in bin directory +- Hyprgrass gesture support +- Multiple monitor configuration support +- Custom keyboard layouts and input methods + +### Changed +- Migrated from Dunst to Mako for notifications +- Updated Waybar configuration with new modules +- Improved Hyprland configuration structure +- Enhanced shell aliases and functions +- Better window rules and animations + +### Removed +- Deprecated Dunst configuration (kept for compatibility) +- Old Alacritty configuration (replaced with Kitty) + +## [1.5.0] - 2023-12-01 + +### Added +- Kitty terminal configuration +- Ranger file manager setup +- Custom shell aliases and functions +- Vim configuration +- Tmux configuration +- Git configuration templates + +### Changed +- Improved Hyprland keybindings +- Enhanced Waybar styling +- Better color scheme consistency +- Optimized performance settings + +### Fixed +- Audio control issues in Waybar +- Workspace switching problems +- Font rendering issues + +## [1.0.0] - 2023-10-15 + +### Added +- Initial Hyprland configuration +- Basic Waybar setup +- Rofi launcher configuration +- Mako notification setup +- Installation script +- Basic keybindings +- Window rules +- Startup applications +- Monitor configuration +- Basic theming + +### Features +- Dynamic tiling window management +- Custom status bar with system information +- Application launcher with search +- Notification system +- Screenshot functionality +- Audio and brightness controls +- Workspace management +- Window floating and fullscreen modes + +## [0.5.0] - 2023-09-01 + +### Added +- Initial project structure +- Basic Hyprland setup +- Proof of concept configurations +- Development environment setup + +### Notes +- This was the initial development release +- Limited functionality and testing +- Foundation for future releases + +--- + +## Version Numbering + +This project uses semantic versioning: +- **MAJOR**: Incompatible API changes or major configuration restructuring +- **MINOR**: New functionality in a backwards compatible manner +- **PATCH**: Backwards compatible bug fixes + +## Release Process + +1. Update version numbers in relevant files +2. Update CHANGELOG.md with new version +3. Test all configurations thoroughly +4. Create GitHub release with proper tags +5. Update documentation as needed + +## Contributing + +When contributing, please: +1. Add entries to the [Unreleased] section +2. Follow the established format +3. Include relevant details about changes +4. Reference issue numbers when applicable + +## Links + +- [Repository](https://github.com/TolaMironcenko/hyprland_dotfiles) +- [Issues](https://github.com/TolaMironcenko/hyprland_dotfiles/issues) +- [Releases](https://github.com/TolaMironcenko/hyprland_dotfiles/releases) \ No newline at end of file diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..ace40b3 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,499 @@ +# Installation Guide + +This guide provides detailed installation instructions for the Hyprland dotfiles configuration. + +## Prerequisites + +### System Requirements +- **Operating System**: Arch Linux (primary support) +- **Display Server**: Wayland +- **Memory**: Minimum 4GB RAM (8GB recommended) +- **Storage**: At least 2GB free space +- **GPU**: Any GPU with Vulkan support (Intel/AMD/NVIDIA) + +### Required Knowledge +- Basic Linux command line usage +- Understanding of symbolic links +- Familiarity with package managers (pacman) + +## Installation Methods + +### Method 1: Automated Installation (Recommended) + +This is the fastest way to get up and running: + +```bash +# Clone the repository +cd ~/ +git clone https://github.com/TolaMironcenko/hyprland_dotfiles.git dotfiles +cd dotfiles + +# Make the script executable +chmod +x install_scripts/install.sh + +# Run the installation +./install_scripts/install.sh +``` + +**What this does:** +- Creates symbolic links for all configuration files +- Backs up existing configurations (if any) +- Sets up proper directory structure +- Installs custom scripts to `~/dotfiles/bin` + +### Method 2: Manual Installation + +For users who want full control over the installation process: + +#### Step 1: Clone Repository +```bash +cd ~/ +git clone https://github.com/TolaMironcenko/hyprland_dotfiles.git dotfiles +cd dotfiles +``` + +#### Step 2: Backup Existing Configurations +```bash +# Create backup directory +mkdir -p ~/config_backup/$(date +%Y%m%d_%H%M%S) + +# Backup existing configs +[ -d ~/.config/hypr ] && mv ~/.config/hypr ~/config_backup/$(date +%Y%m%d_%H%M%S)/ +[ -d ~/.config/waybar ] && mv ~/.config/waybar ~/config_backup/$(date +%Y%m%d_%H%M%S)/ +[ -d ~/.config/kitty ] && mv ~/.config/kitty ~/config_backup/$(date +%Y%m%d_%H%M%S)/ +[ -d ~/.config/mako ] && mv ~/.config/mako ~/config_backup/$(date +%Y%m%d_%H%M%S)/ +[ -f ~/.vimrc ] && mv ~/.vimrc ~/config_backup/$(date +%Y%m%d_%H%M%S)/ +``` + +#### Step 3: Create Symbolic Links +```bash +# Essential configurations +ln -sf ~/dotfiles/hypr ~/.config/hypr +ln -sf ~/dotfiles/waybar ~/.config/waybar +ln -sf ~/dotfiles/kitty ~/.config/kitty +ln -sf ~/dotfiles/mako ~/.config/mako +ln -sf ~/dotfiles/ranger ~/.config/ranger +ln -sf ~/dotfiles/fastfetch ~/.config/fastfetch +ln -sf ~/dotfiles/rofi ~/.config/rofi + +# Shell and system configs +ln -sf ~/dotfiles/vimrc ~/.vimrc +ln -sf ~/dotfiles/tmux.conf ~/.tmux.conf +ln -sf ~/dotfiles/gitconfig ~/.gitconfig + +# Optional configurations +ln -sf ~/dotfiles/greenclip/greenclip.toml ~/.config/greenclip.toml +ln -sf ~/dotfiles/rofi/emoji/rofimoji.rc ~/.config/rofimoji.rc +``` + +#### Step 4: Set Up Custom Scripts +```bash +# Add dotfiles bin to PATH (if not already done) +echo 'export PATH=$PATH:~/dotfiles/bin' >> ~/.bashrc +# or for zsh users: +echo 'export PATH=$PATH:~/dotfiles/bin' >> ~/.zshrc + +# Make scripts executable +chmod +x ~/dotfiles/bin/* +chmod +x ~/dotfiles/hypr/bin/* +``` + +### Method 3: Docker-based Testing + +For testing the configuration without affecting your system: + +```bash +# Build the test environment +docker build -t hyprland-dotfiles . + +# Run the test environment +docker run -it hyprland-dotfiles +``` + +## Package Installation + +### Essential Packages + +Install these packages before using the configuration: + +```bash +# Core Hyprland packages +sudo pacman -S hyprland waybar rofi kitty mako + +# System utilities +sudo pacman -S fastfetch ranger vim git tmux + +# Audio and media +sudo pacman -S pulseaudio pulseaudio-alsa pamixer + +# Fonts (important for proper display) +sudo pacman -S ttf-fira-code noto-fonts noto-fonts-emoji + +# Additional tools +sudo pacman -S grim slurp wl-clipboard xdg-utils +``` + +### AUR Packages + +Some packages are available in the AUR: + +```bash +# Using yay AUR helper +yay -S greenclip hyprlock hyprpaper + +# Or using paru +paru -S greenclip hyprlock hyprpaper +``` + +### Optional Packages + +These packages enhance the experience but aren't required: + +```bash +# Notification alternatives +sudo pacman -S swaync dunst + +# Terminal alternatives +sudo pacman -S alacritty + +# System monitoring +sudo pacman -S htop btop neofetch cava + +# Display management +sudo pacman -S ly picom + +# Development tools +sudo pacman -S code firefox thunderbird +``` + +## Post-Installation Setup + +### 1. Shell Configuration + +Add the shell configuration to your shell's RC file: + +```bash +# For bash users +echo 'source ~/dotfiles/shell/source.sh' >> ~/.bashrc + +# For zsh users +echo 'source ~/dotfiles/shell/source.sh' >> ~/.zshrc + +# Reload your shell +source ~/.bashrc # or ~/.zshrc +``` + +### 2. Environment Variables + +Set up environment variables for optimal Wayland experience: + +```bash +# Add to ~/.pam_environment or ~/.profile +export XDG_CURRENT_DESKTOP=Hyprland +export XDG_SESSION_DESKTOP=Hyprland +export XDG_SESSION_TYPE=wayland +export MOZ_ENABLE_WAYLAND=1 +export QT_QPA_PLATFORM=wayland +export QT_WAYLAND_DISABLE_WINDOWDECORATION=1 +export GDK_BACKEND=wayland +``` + +### 3. Display Manager Setup + +If using a display manager, configure it to start Hyprland: + +#### For GDM/LightDM +Create a desktop entry: +```bash +sudo tee /usr/share/wayland-sessions/hyprland.desktop > /dev/null < +![Desktop](screenshots/desktop.png) +![Waybar](screenshots/waybar.png) +![Rofi](screenshots/rofi.png) + +## ✨ Features + +- **Hyprland** - Dynamic tiling Wayland compositor +- **Waybar** - Highly customizable status bar +- **Rofi** - Application launcher with custom themes +- **Kitty** - GPU-accelerated terminal emulator +- **Mako/SwayNC** - Notification daemon +- **Greenclip** - Clipboard manager +- **Fastfetch** - System information tool +- **Custom scripts** - Automation and utilities +- **Consistent theming** - Unified look across all applications + +## 📋 Requirements + +### System Requirements +- **OS**: Arch Linux (primary support) +- **Display Server**: Wayland +- **GPU**: Any GPU with Vulkan support (recommended) + +### Dependencies + +#### Essential Packages ```bash -./install_scripts/install.sh -``` -### or -```bash -~/dotfiles/install_scripts/install.sh -``` -## Full install commands -```bash -cd ~/ -git clone https://github.com/TolaMironcenko/hyprland_dotfiles.git dotfiles -cd ~/dotfiles/install_scripts -./install.sh +# Core Hyprland ecosystem +hyprland waybar rofi kitty mako + +# System utilities +fastfetch ranger vim git + +# Audio/Media +pulseaudio pamixer + +# Additional tools +greenclip xpad telegram-desktop google-chrome ``` -## Keybinds -| key | doing | -| --- | ----- | -| mainMod | alt | -| mainMod + q | close window | -| mainMod + v | toggle floating window | -| mainMod + return | open terminal (kitty as default) | -| mainMod + d | open rofi launcher | -| mainMod + shift + p | open rofi powermenu | -| mainMod + c | open rofi greenclip | -| mainMod + b | open hyprlock | -| mainMod + shift + c | do screenshot in clipboard | -| mainMod + [1 ... 0] | open workspase [1 ... 10] | -| mainMod + x | open xpad | -| mainMod + shift + x | open new note in xpad | -| mainMod + a | open telegram-desktop | -| mainMod + g | open google-chrome-stable | - -## To install system (Arch Linux) you can change file install_scripts/install-arch.sh -### and start +#### Optional Packages ```bash -./install-arch.sh +# Notification alternatives +swaync dunst + +# Terminal alternatives +alacritty + +# System monitoring +htop neofetch cava + +# Display management +ly picom ``` + +## 🚀 Installation + +### Quick Install + +1. **Clone the repository** + ```bash + cd ~/ + git clone https://github.com/TolaMironcenko/hyprland_dotfiles.git dotfiles + cd ~/dotfiles + ``` + +2. **Run the installation script** + ```bash + ./install_scripts/install.sh + ``` + +### Manual Installation + +If you prefer to install components individually: + +```bash +# Hyprland configuration +ln -s ~/dotfiles/hypr ~/.config/hypr + +# Waybar configuration +ln -s ~/dotfiles/waybar ~/.config/waybar + +# Terminal configuration +ln -s ~/dotfiles/kitty ~/.config/kitty + +# Other configurations +ln -s ~/dotfiles/mako ~/.config/mako +ln -s ~/dotfiles/ranger ~/.config/ranger +ln -s ~/dotfiles/fastfetch ~/.config/fastfetch +ln -s ~/dotfiles/vimrc ~/.vimrc +``` + +### Full System Installation (Arch Linux) + +For a complete Arch Linux installation with this configuration: + +1. **Customize the installation script** + ```bash + vim install_scripts/install-arch.sh + # Edit variables: disk, hostname, normal_user, etc. + ``` + +2. **Run the installer** (as root) + ```bash + ./install_scripts/install-arch.sh + ``` + +## ⌨️ Keybindings + +| Key Combination | Action | +|-----------------|--------| +| `Alt` | Main modifier key | +| `Alt + Q` | Close window | +| `Alt + V` | Toggle floating window | +| `Alt + Return` | Open terminal (Kitty) | +| `Alt + D` | Open Rofi launcher | +| `Alt + Shift + P` | Open Rofi power menu | +| `Alt + C` | Open Rofi clipboard (Greenclip) | +| `Alt + B` | Lock screen (Hyprlock) | +| `Alt + Shift + C` | Screenshot to clipboard | +| `Alt + [1-0]` | Switch to workspace [1-10] | +| `Alt + X` | Open Xpad | +| `Alt + Shift + X` | Open new note in Xpad | +| `Alt + A` | Open Telegram | +| `Alt + G` | Open Google Chrome | + +### Additional Keybindings +- **Window Management**: `Alt + H/J/K/L` for directional focus +- **Workspace Movement**: `Alt + Shift + [1-0]` to move window to workspace +- **Resize Mode**: `Alt + R` to enter resize mode +- **Fullscreen**: `Alt + F` to toggle fullscreen + +## 🎨 Customization + +### Themes + +The configuration uses a consistent color scheme across all applications: +- **Primary**: Blue accent (`#33ccff`) +- **Secondary**: Green accent (`#00ff99`) +- **Background**: Dark theme optimized for OLED displays + +### Waybar Modules + +Current modules (left to right): +- **Left**: Launcher, CPU, Memory, Temperature, Disk, Weather, Updates, Window title +- **Center**: Workspaces +- **Right**: Audio, Media, Backlight, Keyboard, Language, Battery, Clock, Tray, Power + +### Rofi Themes + +Multiple Rofi configurations included: +- Application launcher +- Power menu +- Clipboard manager +- Emoji picker (rofimoji) + +## 🔧 Configuration Structure + +``` +dotfiles/ +├── hypr/ # Hyprland configuration +│ ├── hyprland.conf # Main configuration +│ ├── keybinds.conf # Keybinding definitions +│ ├── startup.conf # Startup applications +│ └── windowrules.conf # Window rules +├── waybar/ # Status bar configuration +├── rofi/ # Application launcher themes +├── kitty/ # Terminal configuration +├── mako/ # Notification daemon +├── ranger/ # File manager +├── shell/ # Shell aliases and functions +├── bin/ # Custom scripts +└── install_scripts/ # Installation automation +``` + +## 🛠️ Troubleshooting + +### Common Issues + +1. **Hyprland won't start** + - Check GPU drivers: `lspci -k | grep -A 2 -E "(VGA|3D)"` + - Verify Wayland support: `echo $XDG_SESSION_TYPE` + +2. **Waybar not showing** + - Check if running: `pgrep waybar` + - Restart: `killall waybar && waybar &` + +3. **Audio issues** + - Check PulseAudio: `pulseaudio --check` + - Restart audio: `pulseaudio -k && pulseaudio --start` + +4. **Rofi not launching** + - Check configuration: `rofi -dump-config` + - Test with: `rofi -show drun` + +### Log Files + +- **Hyprland**: `~/.local/share/hyprland/hyprland.log` +- **Waybar**: Check journal: `journalctl --user -u waybar` + +## 📝 Shell Aliases + +The configuration includes numerous helpful aliases: + +### System Management +- `p` - pacman +- `pi` - install package +- `psyu` - system upgrade +- `sctl` - systemctl +- `ff` - fastfetch + +### Development +- `g` - git +- `ga` - git add +- `gc` - git clone +- `gst` - git status + +### Docker +- `dr` - docker run +- `dpa` - docker ps -a +- `ds` - docker start + +[Full alias list in `shell/source.sh`] + +## 🤝 Contributing + +1. Fork the repository +2. Create a feature branch +3. Make your changes +4. Test thoroughly +5. Submit a pull request + +## 📄 License + +This project is licensed under the MIT License - see the LICENSE file for details. + +## 🙏 Acknowledgments + +- [Hyprland](https://hyprland.org/) - Amazing Wayland compositor +- [Waybar](https://github.com/Alexays/Waybar) - Flexible status bar +- [Rofi](https://github.com/davatorium/rofi) - Application launcher +- The Arch Linux community for excellent documentation + +## 📞 Support + +- **Issues**: [GitHub Issues](https://github.com/TolaMironcenko/hyprland_dotfiles/issues) +- **Wiki**: [Project Wiki](https://github.com/TolaMironcenko/hyprland_dotfiles/wiki) +- **Email**: [Contact](mailto:your-email@example.com) + +--- + +**Note**: This configuration is primarily tested on Arch Linux. While it may work on other distributions, you may need to adjust package names and paths accordingly. \ No newline at end of file