{"id":49871313,"url":"https://github.com/engineervix/dotfiles","last_synced_at":"2026-05-15T07:36:15.993Z","repository":{"id":355593605,"uuid":"1228707084","full_name":"engineervix/dotfiles","owner":"engineervix","description":"dotfiles for a Hyprland environment on openSUSE Tumbleweed","archived":false,"fork":false,"pushed_at":"2026-05-04T10:45:59.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-04T12:35:18.802Z","etag":null,"topics":["hyprland","opensuse-tumbleweed"],"latest_commit_sha":null,"homepage":"https://engineervix.github.io/dotfiles/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/engineervix.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-04T09:40:27.000Z","updated_at":"2026-05-04T10:46:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/engineervix/dotfiles","commit_stats":null,"previous_names":["engineervix/dotfiles"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/engineervix/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/engineervix","download_url":"https://codeload.github.com/engineervix/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33058090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-15T02:00:06.351Z","response_time":103,"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":["hyprland","opensuse-tumbleweed"],"created_at":"2026-05-15T07:36:15.277Z","updated_at":"2026-05-15T07:36:15.977Z","avatar_url":"https://github.com/engineervix.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles\n\n![openSUSE](https://img.shields.io/badge/openSUSE-%2364B345?style=for-the-badge\u0026logo=openSUSE\u0026logoColor=white)\n![Bash Script](https://img.shields.io/badge/bash_script-%23121011.svg?style=for-the-badge\u0026logo=gnu-bash\u0026logoColor=white)\n\n[![Docs](https://github.com/engineervix/dotfiles/actions/workflows/deploy.yml/badge.svg)](https://github.com/engineervix/dotfiles/actions/workflows/deploy.yml)\n\nPersonal configurations for a productivity-focused Hyprland environment on openSUSE Tumbleweed.\n\n## Directory Structure\n\n```text\ninstall.sh                      # Bootstrap: creates all symlinks, safe to re-run\n.zshrc                          # Shell config (SSH + GPG agent, PATH, tools)\n.zshrc.local                    # Machine-specific overrides (not tracked)\n.gnupg/\n└── gpg-agent.conf              # GPG agent passphrase cache (24h TTL)\ndocs/\n├── cheatsheets/                # HTML quick-reference sheets\n└── notes/\n    └── post-setup.md           # Architecture decisions and setup notes\nscripts/\n└── setup-sddm.sh               # Sync wallpaper to SDDM login screen\n.config/\n├── hypr/\n│   ├── conf/                   # Modular Hyprland settings\n│   │   ├── autostart.conf\n│   │   ├── custom.conf\n│   │   ├── environment.conf\n│   │   ├── input.conf\n│   │   ├── keybindings.conf\n│   │   ├── looks.conf\n│   │   ├── monitors.conf\n│   │   └── rules.conf\n│   ├── scripts/                # Helper scripts (exit, recorder, monitor setup)\n│   ├── hyprland.conf           # Main entry point (sources modular conf/)\n│   ├── hypridle.conf           # Idle \u0026 sleep management\n│   ├── hyprlock.conf           # Secure lockscreen\n│   └── hyprpaper.conf          # Wallpaper management\n├── dunst/                      # Notification daemon\n├── imv/                        # Image viewer\n├── kitty/\n│   ├── kitty.conf              # GPU-accelerated terminal\n│   └── mocha.conf              # Catppuccin Mocha theme\n├── rofi/\n│   └── config.rasi             # App launcher (Catppuccin Mocha theme)\n├── waybar/\n│   ├── config                  # Status bar layout\n│   ├── colors.css              # Catppuccin Mocha colour tokens\n│   ├── modules.json            # Module definitions\n│   ├── style.css               # Status bar styling\n│   └── scripts/\n│       └── weather.sh          # Weather widget (wttr.in)\n├── wireplumber/\n│   └── wireplumber.conf.d/     # Bluetooth audio policy\n├── chrome-flags.conf           # Chrome/Chromium startup flags\n├── Thunar/                     # File manager config\n├── mimeapps.list               # Default app associations\n└── starship.toml               # Shell prompt\n```\n\n## Key Bindings (SUPER)\n\n| Binding             | Action                                                          |\n| ------------------- | --------------------------------------------------------------- |\n| `Q`                 | Terminal (Kitty)                                                |\n| `R`                 | App launcher (Rofi)                                             |\n| `E`                 | File manager (Thunar)                                           |\n| `C`                 | Kill active window                                              |\n| `V`                 | Toggle floating                                                 |\n| `L`                 | Lock screen (hyprlock)                                          |\n| `M`                 | Exit Hyprland                                                   |\n| `SHIFT+M`           | Logout menu (wlogout)                                           |\n| `H`                 | Clipboard history (cliphist + Rofi)                             |\n| `W`                 | Enter resize mode (arrow keys to resize, `ESC`/`ENTER` to exit) |\n| `SHIFT+B`           | Reload Waybar                                                   |\n| `1-0`               | Switch workspaces                                               |\n| `TAB`               | Toggle between last two workspaces                              |\n| `SHIFT+left/right`  | Move active window to prev/next workspace                       |\n| `SHIFT+1-0`         | Move active window to workspace                                 |\n| `Arrow keys`        | Move focus                                                      |\n| `SHIFT+hjkl`        | Move windows                                                    |\n| `G`                 | Toggle window group                                             |\n| `[` / `]`           | Cycle group tabs                                                |\n| `CTRL+G` / `ALT+G`  | Move window out of / into group                                 |\n| `ALT+TAB`           | Window switcher (Rofi, all workspaces)                          |\n| `Print`             | Screenshot to file                                              |\n| `SUPER+Print`       | Screenshot selection to clipboard                               |\n| `SUPER+SHIFT+Print` | Screenshot selection to file                                    |\n\n## Changing the Wallpaper\n\nEdit `.config/hypr/hyprpaper.conf` and update the `path`:\n\n```ini\nwallpaper {\n    monitor =\n    path = /home/victor/Pictures/your-image.jpg\n    fit_mode = cover\n}\n```\n\nThen reload: `pkill hyprpaper; hyprpaper \u0026`\n\n- Supported formats: PNG, JPG, JXL, WebP\n- `fit_mode` options: `cover` (default), `contain`, `tile`, `fill`\n- For a different wallpaper per monitor, add multiple `wallpaper {}` blocks with specific `monitor = eDP-1` etc., and keep one with `monitor =` (empty) as a fallback\n\nTo also update the SDDM login screen wallpaper, run `scripts/setup-sddm.sh` (with `sudo`) after changing the path there too.\n\n## Bootstrap\n\nOn a fresh machine, clone this repository to `~/dotfiles` and run the install script:\n\n```bash\ngit clone \u003crepo-url\u003e ~/dotfiles\n~/dotfiles/install.sh\n```\n\n`install.sh` creates all symlinks (`~/.config/*`, `~/.zshrc`, `~/.gnupg/gpg-agent.conf`), backing up any existing file or directory with a timestamped suffix before replacing it. It is safe to re-run.\n\nOn a fresh openSUSE Tumbleweed install, the dotfiles bootstrap is handled automatically by the [opensuse-setup](https://github.com/engineervix/opensuse-setup) script as part of its final phase.\n\n## Setup Notes\n\n- **OS:** openSUSE Tumbleweed\n- **Keyboard Layout:** en-gb (`gb`)\n- **Login Manager:** SDDM (auto-login disabled)\n\n_Refer to [docs/notes/post-setup.md](docs/notes/post-setup.md) for full details on the configuration architecture._\n\n## Credits\n\n- [mylinuxforwork/dotfiles](https://github.com/mylinuxforwork/dotfiles) — ML4W Hyprland dotfiles, primary inspiration\n- [mylinuxforwork/hyprland-starter](https://github.com/mylinuxforwork/hyprland-starter) — minimal Hyprland starter config\n- [mylinuxforwork/ml4w-dotfiles-installer](https://github.com/mylinuxforwork/ml4w-dotfiles-installer) — dotfiles installer tooling\n- [Hyprland Wiki](https://wiki.hyprland.org/) — official Hyprland documentation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fengineervix%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Fdotfiles/lists"}