{"id":24564120,"url":"https://github.com/tilmangriesel/alpinezen","last_synced_at":"2025-08-07T05:19:57.782Z","repository":{"id":272001234,"uuid":"837951748","full_name":"TilmanGriesel/AlpineZen","owner":"TilmanGriesel","description":"☀️ Breathe life into your workspace with dynamic wallpapers","archived":false,"fork":false,"pushed_at":"2025-03-29T12:59:39.000Z","size":4690,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T13:23:56.096Z","etag":null,"topics":["cli","desktop","go","golang","linux","macos","nature","wallpaper","wallpaper-changer","wallpaper-manager","windows"],"latest_commit_sha":null,"homepage":"https://alpinezen.club/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TilmanGriesel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-04T14:28:23.000Z","updated_at":"2025-03-29T12:53:44.000Z","dependencies_parsed_at":"2025-03-29T13:22:38.716Z","dependency_job_id":"01de9ad8-4f9a-449b-b01f-5db8a85c0ba2","html_url":"https://github.com/TilmanGriesel/AlpineZen","commit_stats":null,"previous_names":["tilmangriesel/alpinezen"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/TilmanGriesel/AlpineZen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilmanGriesel%2FAlpineZen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilmanGriesel%2FAlpineZen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilmanGriesel%2FAlpineZen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilmanGriesel%2FAlpineZen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TilmanGriesel","download_url":"https://codeload.github.com/TilmanGriesel/AlpineZen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TilmanGriesel%2FAlpineZen/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269201609,"owners_count":24377534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-07T02:00:09.698Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","desktop","go","golang","linux","macos","nature","wallpaper","wallpaper-changer","wallpaper-manager","windows"],"created_at":"2025-01-23T10:17:52.490Z","updated_at":"2025-08-07T05:19:57.763Z","avatar_url":"https://github.com/TilmanGriesel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/TilmanGriesel/AlpineZen/8c27063d52c33f1848c552c5df1f9d2000e73da7/docs/public/assets/brand/alpinezen_banner_eggshell.svg\"/\u003e\u003cbr/\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/TilmanGriesel/AlpineZen/actions/workflows/gosec.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/TilmanGriesel/AlpineZen/.github%2Fworkflows%2Fgosec.yml?colorA=F24F32\u0026colorB=F0E6E0\u0026style=for-the-badge\u0026label=Gosec\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/TilmanGriesel/AlpineZen/actions/workflows/vulncheck.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/TilmanGriesel/AlpineZen/.github%2Fworkflows%2Fvulncheck.yml?colorA=F24F32\u0026colorB=F0E6E0\u0026style=for-the-badge\u0026label=VulnCheck\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/TilmanGriesel/AlpineZen/actions/workflows/test.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/TilmanGriesel/AlpineZen/.github%2Fworkflows%2Ftest.yml?colorA=F24F32\u0026colorB=F0E6E0\u0026style=for-the-badge\u0026label=Tests\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/TilmanGriesel/AlpineZen/actions/workflows/versiontag.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/TilmanGriesel/AlpineZen/.github%2Fworkflows%2Fversiontag.yml?colorA=F24F32\u0026colorB=F0E6E0\u0026style=for-the-badge\u0026label=Tag\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/TilmanGriesel/AlpineZen/actions/workflows/docs-deploy.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/TilmanGriesel/AlpineZen/.github%2Fworkflows%2Fdocs-deploy.yml?colorA=F24F32\u0026colorB=F0E6E0\u0026style=for-the-badge\u0026label=Pages\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n**AlpineZen Wallpaper** is an open-source dynamic wallpaper utility that enhances your workspace by setting wallpapers that update periodically. It specializes in integrating live webcam images, creating setups that reflect natural rhythms of day and bringing the outdoors into your work environment.\n\n## Features\n\n- Dynamic wallpaper updates from images sources like webcams\n- Configurable update intervals\n- Optional clock overlay with customization\n- Image processing capabilities (contrast, saturation, brightness, etc.)\n- Cross-platform compatibility (Windows, Linux, macOS)\n- Headless mode for server environments\n\n## Installation\n\n### Prerequisites\n\n- Go 1.24.0 or later\n- Make (for building from source)\n\n### Building from Source\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/TilmanGriesel/AlpineZen.git\ncd AlpineZen\n```\n\n2. Build the project:\n```bash\nmake\n```\n\nThe built executables will be available in the `dist` directory.\n\n## Usage\n\n### Basic Usage\n\n```bash\nalpinezen --name fellhorn --type default\n```\n\n### Configuration Options\n\n#### Core Configuration\n- `--name, -n`: Name of configuration profile (default: \"fellhorn\")\n- `--type, -t`: Type of configuration profile (default: \"default\")\n- `--config-path`: Path to custom configuration file\n- `--config-repository`: URL of remote configuration repository\n\n#### Wallpaper Settings\n- `--wallpaper-width`: Width of wallpaper in pixels (default: 3840)\n- `--wallpaper-height`: Height of wallpaper in pixels (default: 2160)\n\n#### Clock Overlay Settings\n- `--clock-disable`: Disable clock overlay\n- `--clock-time-format`: Set time format (default: \"15:04\")\n- `--clock-font-path`: Custom font file path\n- `--clock-font-size`: Font size in points (default: 112)\n- `--clock-font-dpi`: Font DPI for crisp rendering (default: 144)\n- `--clock-font-opacity-min`: Minimum font opacity (default: 0.2)\n- `--clock-font-opacity-max`: Maximum font opacity (default: 0.92)\n- `--clock-font-color`: Font color in hex code (default: \"#FFFFFF\")\n- `--clock-horizontal-offset`: Horizontal text offset\n- `--clock-vertical-offset`: Vertical text offset\n\n#### Runtime Options\n- `--prepare`: Setup folder structure and exit\n- `--version-show`: Display version information\n- `--runtime-headless`: Enable headless mode for server environments\n- `--runtime-cpu-cores`: Number of CPU cores to use\n- `--loglevel`: Logging verbosity (0=Warn, 1=Info, 2=Debug, 3=Trace)\n\n### Example Commands\n\n1. Basic setup with default configuration:\n```bash\nalpinezen\n```\n\n2. Custom wallpaper dimensions with clock disabled:\n```bash\nalpinezen --wallpaper-width 1920 --wallpaper-height 1080 --clock-disable\n```\n\n3. Custom clock styling:\n```bash\nalpinezen --clock-font-color \"#FF5733\" --clock-font-size 96 --clock-time-format \"15:04:05\"\n```\n\n4. Headless mode for servers:\n```bash\nalpinezen --runtime-headless --loglevel 2\n```\n\n## Configuration File\n\nAlpineZen uses YAML configuration files. Here's a sample structure:\n\n```yaml\ninput:\n  url: \"https://example.com/webcam.jpg\"\n  crop_factor: 1.0\n  offset_x: 0.0\n  offset_y: 0.0\n\nimage_processing:\n  contrast: 1.0\n  saturation: 1.0\n  brightness: 0.0\n  hue: 0.0\n  gamma: 1.0\n  black_point: 0.0\n  white_point: 1.0\n  shadow_strength: 1.0\n  blur_strength: 0.0\n  sharpen_strength: 0.0\n  max_noise_opacity: 0.0\n  noise_scale: 1\n\nscheduling:\n  update_interval_minutes: 5\n\noutput:\n  blend: false\n  save_path: \"\"\n```\n\n## Application Directory Structure\n\nThe application maintains its files in the following structure:\n\n```\n~/.alpinezen_wallpaper/\n├── config/\n│   └── gui.yaml\n├── files/\n│   └── [hash]/\n│       ├── .tmp/\n│       │   ├── image\n│       │   └── cache.png\n│       └── proc/\n│           └── [hash].png\n├── latest.png\n├── log/\n│   └── alpinezen_cli.log\n└── repos/\n    └── AlpineZen-Basecamp-main/\n```\n\n## Error Handling\n\nThe application provides detailed logging with different verbosity levels. Logs are stored in:\n```\n~/.alpinezen_wallpaper/log/alpinezen_cli.log\n```\n\n## Contributing\n\nContributions are welcome! Please ensure your code follows these guidelines:\n- Include appropriate license headers (GPL-3.0-or-later)\n- Add tests for new functionality\n- Follow Go best practices and coding standards\n- Document new features and changes\n\n## Roadmap\n- [x] **1.0.x** Release initial version with macOS tray UI\n- [ ] **1.1.x** Windows tray UI\n- [ ] **1.2.x** Linux pre and post update hooks\n\nLong term goals:\n- Proper mixed aspect ratio multi-monitor support\n\n## Acknowledgments\n\n- Image processing: https://github.com/disintegration/imaging\n- Native Mac APIs for Go https://github.com/progrium/darwinkit\n- Logging: https://github.com/sirupsen/logrus\n- CLI framework:  https://github.com/spf13/cobra\n- Font: Lora (embedded) https://fonts.google.com/specimen/Lora\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftilmangriesel%2Falpinezen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftilmangriesel%2Falpinezen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftilmangriesel%2Falpinezen/lists"}