- Created complete gaming detection and priority system - Added gaming schedule configuration and enforcement - Implemented Steam library monitoring with auto-detection - Built comprehensive game process detection for multiple platforms - Added gaming-aware Tdarr worker management with priority controls - Created emergency gaming mode for immediate worker shutdown - Integrated Discord notifications for gaming state changes - Replaced old bash monitoring with enhanced Python monitoring system - Added persistent state management and memory tracking - Implemented configurable gaming time windows and schedules - Updated .gitignore to exclude logs directories 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
172 lines
5.1 KiB
Markdown
172 lines
5.1 KiB
Markdown
# Gaming Scripts Context
|
|
|
|
## Overview
|
|
This directory contains automation and helper scripts for gaming setup, configuration, and maintenance. These scripts are designed to work with Steam Tinker Launch and various gaming tools on Linux.
|
|
|
|
## Script Categories
|
|
|
|
### Setup and Configuration
|
|
- **Purpose**: Automate initial setup and configuration of gaming environments
|
|
- **Target**: Steam Tinker Launch, game-specific configurations, system optimization
|
|
- **Pattern**: Interactive setup with validation and backup creation
|
|
|
|
### Validation and Testing
|
|
- **Purpose**: Verify gaming environment is properly configured
|
|
- **Target**: Hardware detection, driver validation, configuration checking
|
|
- **Pattern**: Comprehensive system checks with colored output and recommendations
|
|
|
|
### Performance Monitoring
|
|
- **Purpose**: Monitor and optimize gaming performance
|
|
- **Target**: FPS monitoring, resource usage, bottleneck identification
|
|
- **Pattern**: Real-time monitoring with logging and alerting
|
|
|
|
## Common Patterns
|
|
|
|
### Error Handling
|
|
```bash
|
|
set -e # Exit on error
|
|
trap cleanup EXIT # Always cleanup
|
|
```
|
|
|
|
### Logging
|
|
```bash
|
|
# Colored output functions
|
|
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
|
log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
|
|
log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
|
|
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
|
```
|
|
|
|
### Dependency Checking
|
|
```bash
|
|
check_dependencies() {
|
|
local deps=("steam" "gamescope" "nvidia-smi")
|
|
for dep in "${deps[@]}"; do
|
|
command -v "$dep" >/dev/null 2>&1 || {
|
|
log_error "$dep not found"
|
|
return 1
|
|
}
|
|
done
|
|
}
|
|
```
|
|
|
|
### Configuration Backup
|
|
```bash
|
|
backup_config() {
|
|
local config_file="$1"
|
|
if [ -f "$config_file" ]; then
|
|
cp "$config_file" "${config_file}.backup.$(date +%Y%m%d_%H%M%S)"
|
|
fi
|
|
}
|
|
```
|
|
|
|
## Current Scripts
|
|
|
|
### `validate-gaming-setup.sh`
|
|
**Purpose**: Comprehensive validation of gaming environment
|
|
**Features**:
|
|
- NVIDIA driver and GPU detection
|
|
- Steam and Steam Tinker Launch validation
|
|
- GameScope availability check
|
|
- Audio system detection
|
|
- Display configuration analysis
|
|
- Game-specific config validation
|
|
- Performance tools availability
|
|
|
|
**Usage**:
|
|
```bash
|
|
./gaming/scripts/validate-gaming-setup.sh
|
|
```
|
|
|
|
**Integration**:
|
|
- Called by setup scripts for validation
|
|
- Can be run independently for troubleshooting
|
|
- Provides recommendations for missing components
|
|
|
|
## Integration Points
|
|
|
|
### With Home Lab Infrastructure
|
|
- **Logging**: Scripts log to standard locations for centralized monitoring
|
|
- **Monitoring**: Performance scripts can integrate with existing monitoring systems
|
|
- **Documentation**: All scripts include comprehensive help and documentation
|
|
- **Configuration**: Scripts respect existing configuration patterns and backup strategies
|
|
|
|
### With Steam Tinker Launch
|
|
- **Config Management**: Scripts handle STL configuration files properly
|
|
- **Game Detection**: Scripts can identify and configure specific games
|
|
- **Environment Setup**: Scripts set up proper environment variables and system configuration
|
|
- **Troubleshooting**: Scripts provide diagnostic information for STL issues
|
|
|
|
### With System Services
|
|
- **Audio Systems**: Scripts detect and configure PipeWire/PulseAudio
|
|
- **Display Managers**: Scripts work with X11 and Wayland display systems
|
|
- **GPU Drivers**: Scripts validate and configure NVIDIA/AMD drivers
|
|
- **Performance Tools**: Scripts integrate with GameMode, MangoHUD, and other performance tools
|
|
|
|
## Development Patterns
|
|
|
|
### Script Structure
|
|
```bash
|
|
#!/bin/bash
|
|
# Script description and purpose
|
|
|
|
set -e # Exit on error
|
|
|
|
# Color definitions
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
# ... etc
|
|
|
|
# Logging functions
|
|
log_info() { ... }
|
|
log_success() { ... }
|
|
# ... etc
|
|
|
|
# Main functionality functions
|
|
check_something() { ... }
|
|
setup_something() { ... }
|
|
validate_something() { ... }
|
|
|
|
# Main execution
|
|
main() {
|
|
log_info "Starting script..."
|
|
check_something
|
|
setup_something
|
|
validate_something
|
|
log_success "Script completed"
|
|
}
|
|
|
|
main "$@"
|
|
```
|
|
|
|
### Testing Approach
|
|
- Scripts should validate their own prerequisites
|
|
- Include dry-run modes where applicable
|
|
- Provide verbose output for debugging
|
|
- Include rollback mechanisms for destructive operations
|
|
|
|
### Documentation Standards
|
|
- Each script includes comprehensive comments
|
|
- Usage examples in script headers
|
|
- Integration notes for complex setups
|
|
- Troubleshooting sections for common issues
|
|
|
|
## Maintenance Notes
|
|
|
|
### Regular Tasks
|
|
- Update game-specific configurations as games are updated
|
|
- Validate scripts work with new versions of Steam Tinker Launch
|
|
- Test scripts with different hardware configurations
|
|
- Update performance optimization settings based on new research
|
|
|
|
### Monitoring Integration
|
|
- Scripts should support being called from monitoring systems
|
|
- Performance scripts should output metrics in parseable formats
|
|
- Error conditions should be properly logged and alertable
|
|
- Resource usage should be monitored for long-running scripts
|
|
|
|
### Security Considerations
|
|
- Scripts handle configuration files with proper permissions
|
|
- No hardcoded paths or credentials
|
|
- Proper input validation for user-provided parameters
|
|
- Safe handling of system-level configuration changes |