mirror of
https://github.com/fscotto/infra.git
synced 2026-09-27 19:03:47 +00:00
Remove Hyprland and FreeBSD desktop profiles
This commit is contained in:
@@ -54,19 +54,17 @@ Ansible-driven personal infrastructure repo for Fedora and Void desktops, FreeBS
|
|||||||
- Use `no_log: true` for secret-bearing task inputs or outputs.
|
- Use `no_log: true` for secret-bearing task inputs or outputs.
|
||||||
|
|
||||||
## Desktop Notes
|
## Desktop Notes
|
||||||
- `desktop_profile` names independently selectable desktop groups such as `desktop_gnome`, `desktop_hyprland`, `desktop_sway`, and `desktop_niri`. Keep platform-specific session bootstrap in platform-specific roles.
|
- `desktop_profile` names independently selectable desktop groups such as `desktop_gnome`, `desktop_sway`, and `desktop_niri`. Keep platform-specific session bootstrap in platform-specific roles.
|
||||||
- `desktop_environment` is fixed to `minimal` for Void desktops. `profile_desktop_common` owns shared Void bootstrap; `profile_desktop_sway`, `profile_desktop_hyprland`, and `profile_desktop_niri` manage the enabled sessions, while `profile_desktop_gnome` copies shared desktop dotfiles for Fedora/GNOME without managing GNOME settings. `desktop_sessions_enabled` and `desktop_default_session` apply to the minimal mode.
|
- `desktop_environment` is fixed to `minimal` for Void desktops. `profile_desktop_common` owns shared Void bootstrap; `profile_desktop_sway` and `profile_desktop_niri` manage the enabled sessions, while `profile_desktop_gnome` copies shared desktop dotfiles for Fedora/GNOME without managing GNOME settings. `desktop_sessions_enabled` and `desktop_default_session` apply to the minimal mode.
|
||||||
- Emacs packages and `.emacs.d` deploy are disabled by default via `emacs_enabled: false`; keep the dotfiles in the repo for reversible opt-in only.
|
- Emacs packages and `.emacs.d` deploy are disabled by default via `emacs_enabled: false`; keep the dotfiles in the repo for reversible opt-in only.
|
||||||
- NTFS filesystem support is provided by `ntfs-3g` in `ansible/inventory/group_vars/void.yml`.
|
- NTFS filesystem support is provided by `ntfs-3g` in `ansible/inventory/group_vars/void.yml`.
|
||||||
- Void user services are managed by `turnstile` and live under `dotfiles/desktop/.config/service/`.
|
- Void user services are managed by `turnstile` and live under `dotfiles/desktop/.config/service/`.
|
||||||
- `ssh-agent` keeps the stable socket `~/.local/state/ssh-agent/socket`.
|
- `ssh-agent` keeps the stable socket `~/.local/state/ssh-agent/socket`.
|
||||||
- Critical session entrypoints:
|
- Critical session entrypoints:
|
||||||
- `dotfiles/desktop/.config/sway/config` plus `host.conf` and `session-env` deployed via `host_sway_dotfiles` (sway / Wayland)
|
- `dotfiles/desktop/.config/sway/config` plus `host.conf` and `session-env` deployed via `host_sway_dotfiles` (sway / Wayland)
|
||||||
- `dotfiles/desktop/.config/hypr/hyprland.conf` plus `host.conf` and `session-env` deployed via `host_hyprland_dotfiles` (Hyprland / Wayland)
|
|
||||||
- `dotfiles/desktop/.config/niri/config.kdl` and `session-env` deployed via `desktop_niri_dotfiles` (Niri / Wayland)
|
- `dotfiles/desktop/.config/niri/config.kdl` and `session-env` deployed via `desktop_niri_dotfiles` (Niri / Wayland)
|
||||||
- Void Niri lives in `profile_desktop_niri`, gated on `'niri' in desktop_sessions_enabled`; it installs the `emptty` `niri.desktop` session, the `/usr/local/bin/start-niri` launcher, and the xdg-desktop-portal config, mirroring `profile_desktop_sway`.
|
- Void Niri lives in `profile_desktop_niri`, gated on `'niri' in desktop_sessions_enabled`; it installs the `emptty` `niri.desktop` session, the `/usr/local/bin/start-niri` launcher, and the xdg-desktop-portal config, mirroring `profile_desktop_sway`.
|
||||||
- Fedora GNOME (`desktop_gnome`) assumes GNOME comes from the Fedora Workstation base install; Ansible deploys shared desktop dotfiles and git/GPG config for `ikaros` and `nymph`, not GNOME settings.
|
- Fedora GNOME (`desktop_gnome`) assumes GNOME comes from the Fedora Workstation base install; Ansible deploys shared desktop dotfiles and git/GPG config for `ikaros` and `nymph`, not GNOME settings.
|
||||||
- FreeBSD Niri (dormant; `platform_freebsd` currently has no hosts) must keep FreeBSD-specific package, rc, DBus, seat, portal, and launcher behavior in `profile_desktop_niri_freebsd` or FreeBSD platform vars.
|
|
||||||
- Do not switch or restart the display manager during a playbook run from an active graphical session.
|
- Do not switch or restart the display manager during a playbook run from an active graphical session.
|
||||||
- `nymph` is the Fedora/GNOME laptop target; keep GNOME settings unmanaged for now and add host-specific tuning only after real use.
|
- `nymph` is the Fedora/GNOME laptop target; keep GNOME settings unmanaged for now and add host-specific tuning only after real use.
|
||||||
|
|
||||||
@@ -76,7 +74,7 @@ The Void desktop package lists in `ansible/inventory/group_vars/void.yml` are ke
|
|||||||
- `void_packages_base` — system runtime only (init/services, kernel, audio core, networking, filesystem, firewall, hardware daemons, runit logging).
|
- `void_packages_base` — system runtime only (init/services, kernel, audio core, networking, filesystem, firewall, hardware daemons, runit logging).
|
||||||
- `desktop_common_packages` — GUI infrastructure shared by the minimal desktop mode.
|
- `desktop_common_packages` — GUI infrastructure shared by the minimal desktop mode.
|
||||||
- `desktop_minimal_packages` — applications, integration components, and the `emptty` display manager.
|
- `desktop_minimal_packages` — applications, integration components, and the `emptty` display manager.
|
||||||
- `desktop_sway_packages` / `desktop_hyprland_packages` — binaries specific to each session. Cross-WM packages used by both (such as `dunst`, `rofi`, and `foot`) are intentionally duplicated in the two lists.
|
- `desktop_sway_packages` — binaries specific to the Sway session.
|
||||||
`profile_packages` in the same file is cross-distro and is overridden by `group_vars/server.yml` and the workstation group vars; do not move desktop-specific Void entries through it.
|
`profile_packages` in the same file is cross-distro and is overridden by `group_vars/server.yml` and the workstation group vars; do not move desktop-specific Void entries through it.
|
||||||
The dotfile vars follow the same split: `desktop_common_dotfiles` carries mode-independent content and `desktop_minimal_dotfiles` carries Thunar, Udiskie, and MIME defaults. `desktop_void_dotfiles` remains reserved for files that need the Void runtime.
|
The dotfile vars follow the same split: `desktop_common_dotfiles` carries mode-independent content and `desktop_minimal_dotfiles` carries Thunar, Udiskie, and MIME defaults. `desktop_void_dotfiles` remains reserved for files that need the Void runtime.
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ Dotfiles under `dotfiles/` mirror the same layer split: `common/`, `desktop/`, `
|
|||||||
|
|
||||||
- `void_packages_base` — system runtime (init, kernel, audio core, networking, firewall, hw daemons)
|
- `void_packages_base` — system runtime (init, kernel, audio core, networking, firewall, hw daemons)
|
||||||
- `desktop_common_packages` — WM-agnostic GUI infra (GTK theme, polkit, keyring, portals, flatpak, printing)
|
- `desktop_common_packages` — WM-agnostic GUI infra (GTK theme, polkit, keyring, portals, flatpak, printing)
|
||||||
- `desktop_sway_packages` / `desktop_hyprland_packages` — session-specific binaries; cross-WM packages used by both (`dunst`, `rofi`, `alacritty`) are intentionally duplicated
|
- `desktop_sway_packages` — Sway-specific binaries
|
||||||
- `profile_packages` — cross-distro; do not move desktop-only Void entries into it
|
- `profile_packages` — cross-distro; do not move desktop-only Void entries into it
|
||||||
|
|
||||||
Dotfile var split follows the same logic: `desktop_common_dotfiles` (WM-agnostic), `desktop_void_dotfiles` (Void runtime — turnstile services, bash fragments).
|
Dotfile var split follows the same logic: `desktop_common_dotfiles` (WM-agnostic), `desktop_void_dotfiles` (Void runtime — turnstile services, bash fragments).
|
||||||
|
|||||||
20
README.md
20
README.md
@@ -106,19 +106,19 @@ Lo stato attuale del profilo desktop include, tra le altre cose:
|
|||||||
|
|
||||||
- dotfiles comuni e desktop
|
- dotfiles comuni e desktop
|
||||||
- sessioni sway e Hyprland per eventuali host Void in modalita `minimal`
|
- sessioni sway e Hyprland per eventuali host Void in modalita `minimal`
|
||||||
- `emptty` con default host-specific in modalita `minimal`, con session file Wayland esposti per `sway` e `hyprland`
|
- `emptty` con default host-specific in modalita `minimal` e session file Wayland per `sway`
|
||||||
- pacchetti Void Linux e servizi runit; le liste pacchetti Void desktop sono separate per criterio:
|
- pacchetti Void Linux e servizi runit; le liste pacchetti Void desktop sono separate per criterio:
|
||||||
- `void_packages_base` per il runtime sistema (init, kernel, audio core, networking, firewall, hw daemons)
|
- `void_packages_base` per il runtime sistema (init, kernel, audio core, networking, firewall, hw daemons)
|
||||||
- `desktop_common_packages` per l'infrastruttura condivisa
|
- `desktop_common_packages` per l'infrastruttura condivisa
|
||||||
- `desktop_minimal_packages` per applicazioni GTK e `emptty`
|
- `desktop_minimal_packages` per applicazioni GTK e `emptty`
|
||||||
- `desktop_sway_packages` e `desktop_hyprland_packages` per i binari specifici di ciascuna sessione
|
- `desktop_sway_packages` per i binari specifici della sessione Sway
|
||||||
- `turnstile` per i servizi utente Void, incluso `ssh-agent`
|
- `turnstile` per i servizi utente Void, incluso `ssh-agent`
|
||||||
- `ssh-agent` con socket stabile condiviso tra shell e SSH in `~/.local/state/ssh-agent/socket`
|
- `ssh-agent` con socket stabile condiviso tra shell e SSH in `~/.local/state/ssh-agent/socket`
|
||||||
- Emacs e i relativi dotfile restano nel repo ma sono disabilitati di default tramite `emacs_enabled: false`
|
- Emacs e i relativi dotfile restano nel repo ma sono disabilitati di default tramite `emacs_enabled: false`
|
||||||
- `tmux` con plugin gestiti da TPM al bootstrap del profilo desktop
|
- `tmux` con plugin gestiti da TPM al bootstrap del profilo desktop
|
||||||
- Flatpak con remoto Flathub
|
- Flatpak con remoto Flathub
|
||||||
- GNOME Keyring e `udiskie` nella modalita minimale
|
- GNOME Keyring e `udiskie` nella modalita minimale
|
||||||
- multi-monitor Void: sotto sway è gestito da `kanshi`; sotto Hyprland gli override monitor vivono in `host_hyprland_dotfiles`
|
- multi-monitor Void: sotto Sway è gestito da `kanshi`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -244,7 +244,7 @@ Questo approccio consente di:
|
|||||||
- applicare override specifici per host
|
- applicare override specifici per host
|
||||||
- evitare duplicazioni
|
- evitare duplicazioni
|
||||||
- riutilizzare il profilo Void corrente su un host futuro assegnandolo a
|
- riutilizzare il profilo Void corrente su un host futuro assegnandolo a
|
||||||
`platform_void + graphical_desktop + desktop_hyprland`
|
`platform_void + graphical_desktop + desktop_sway`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -265,9 +265,7 @@ I principali ruoli attualmente presenti sono:
|
|||||||
| profile_desktop_common | bootstrap desktop Void condiviso |
|
| profile_desktop_common | bootstrap desktop Void condiviso |
|
||||||
| profile_desktop_gnome | dotfiles desktop condivisi per Fedora/GNOME |
|
| profile_desktop_gnome | dotfiles desktop condivisi per Fedora/GNOME |
|
||||||
| profile_desktop_sway | sessione desktop sway / SwayFX (Wayland) |
|
| profile_desktop_sway | sessione desktop sway / SwayFX (Wayland) |
|
||||||
| profile_desktop_hyprland | sessione desktop Hyprland (Wayland) |
|
|
||||||
| profile_desktop_niri | sessione desktop Niri su Void (Wayland) |
|
| profile_desktop_niri | sessione desktop Niri su Void (Wayland) |
|
||||||
| profile_desktop_niri_freebsd | adattamenti FreeBSD per Niri |
|
|
||||||
| profile_desktop_host | override desktop specifici per host |
|
| profile_desktop_host | override desktop specifici per host |
|
||||||
| profile_personal_workstation | layer stabile per workstation personale |
|
| profile_personal_workstation | layer stabile per workstation personale |
|
||||||
| profile_workstation_dev_common | configurazione dev workstation condivisa |
|
| profile_workstation_dev_common | configurazione dev workstation condivisa |
|
||||||
@@ -286,9 +284,8 @@ Il playbook `ansible/site.yml` e attualmente composto da blocchi per asse:
|
|||||||
```text
|
```text
|
||||||
all -> dotfiles_common
|
all -> dotfiles_common
|
||||||
platform_void -> packages_void + services_runit
|
platform_void -> packages_void + services_runit
|
||||||
platform_void & graphical_desktop -> profile_desktop_common + profile_desktop_sway + profile_desktop_hyprland + profile_desktop_niri + profile_desktop_host
|
platform_void & graphical_desktop -> profile_desktop_common + profile_desktop_sway + profile_desktop_niri + profile_desktop_host
|
||||||
platform_freebsd -> packages_freebsd + services_freebsd
|
platform_freebsd -> packages_freebsd + services_freebsd
|
||||||
platform_freebsd & desktop_niri -> profile_desktop_niri_freebsd
|
|
||||||
platform_fedora -> packages_fedora + services_systemd
|
platform_fedora -> packages_fedora + services_systemd
|
||||||
platform_fedora & role_personal_workstation -> profile_personal_workstation
|
platform_fedora & role_personal_workstation -> profile_personal_workstation
|
||||||
platform_fedora & desktop_gnome -> profile_desktop_gnome
|
platform_fedora & desktop_gnome -> profile_desktop_gnome
|
||||||
@@ -431,7 +428,7 @@ Allo stato attuale `ansible/site.yml` espone questi tag:
|
|||||||
| `always` | pre-task sempre eseguiti, inclusi caricamento vault e validazioni preliminari | common |
|
| `always` | pre-task sempre eseguiti, inclusi caricamento vault e validazioni preliminari | common |
|
||||||
| `dotfiles` | distribuzione/configurazione dotfiles | tutti i profili |
|
| `dotfiles` | distribuzione/configurazione dotfiles | tutti i profili |
|
||||||
| `dotfiles:common` | dotfiles comuni condivisi | common, workstation, server |
|
| `dotfiles:common` | dotfiles comuni condivisi | common, workstation, server |
|
||||||
| `dotfiles:desktop` | dotfiles desktop | desktop Void, Fedora/GNOME, FreeBSD/Niri |
|
| `dotfiles:desktop` | dotfiles desktop | desktop Void, Fedora/GNOME |
|
||||||
| `dotfiles:host` | override host-specifici desktop | desktop Void |
|
| `dotfiles:host` | override host-specifici desktop | desktop Void |
|
||||||
| `dotfiles:server` | dotfiles dedicati al profilo server | server |
|
| `dotfiles:server` | dotfiles dedicati al profilo server | server |
|
||||||
| `dotfiles:workstation` | dotfiles dedicati alle workstation | personal workstation, WSL, workstation Linux future |
|
| `dotfiles:workstation` | dotfiles dedicati alle workstation | personal workstation, WSL, workstation Linux future |
|
||||||
@@ -439,8 +436,7 @@ Allo stato attuale `ansible/site.yml` espone questi tag:
|
|||||||
| `display-manager` | gestione del display manager `emptty` | desktop Void |
|
| `display-manager` | gestione del display manager `emptty` | desktop Void |
|
||||||
| `gnome` | configurazione host GNOME | Fedora/GNOME desktop, workstation host Linux future |
|
| `gnome` | configurazione host GNOME | Fedora/GNOME desktop, workstation host Linux future |
|
||||||
| `sway` | sessione/configurazione sway / SwayFX (Wayland) | desktop Void |
|
| `sway` | sessione/configurazione sway / SwayFX (Wayland) | desktop Void |
|
||||||
| `hyprland` | sessione/configurazione Hyprland (Wayland) | desktop Void |
|
| `niri` | sessione/configurazione Niri (Wayland) | desktop Void |
|
||||||
| `niri` | sessione/configurazione Niri (Wayland) | Void o FreeBSD con `desktop_niri` |
|
|
||||||
| `npm` | installazione pacchetti npm globali | Fedora/GNOME, desktop Void, workstation Linux, WSL |
|
| `npm` | installazione pacchetti npm globali | Fedora/GNOME, desktop Void, workstation Linux, WSL |
|
||||||
| `nvidia` | componenti NVIDIA desktop | desktop Void |
|
| `nvidia` | componenti NVIDIA desktop | desktop Void |
|
||||||
| `packages` | installazione e aggiornamento pacchetti | tutti i profili |
|
| `packages` | installazione e aggiornamento pacchetti | tutti i profili |
|
||||||
@@ -475,7 +471,7 @@ Per aggiungere un nuovo host Void che riusa il profilo desktop preservato:
|
|||||||
|
|
||||||
1. aggiungere l'host a `platform_void`;
|
1. aggiungere l'host a `platform_void`;
|
||||||
2. aggiungerlo a `graphical_desktop`;
|
2. aggiungerlo a `graphical_desktop`;
|
||||||
3. scegliere il desktop, per esempio `desktop_hyprland`;
|
3. scegliere il desktop, per esempio `desktop_sway`;
|
||||||
4. lasciare eventuali dettagli hardware in `host_vars/<host>.yml`.
|
4. lasciare eventuali dettagli hardware in `host_vars/<host>.yml`.
|
||||||
|
|
||||||
I gruppi legacy `void` e `desktop` sono parent di compatibilita, quindi un host
|
I gruppi legacy `void` e `desktop` sono parent di compatibilita, quindi un host
|
||||||
|
|||||||
@@ -6,11 +6,3 @@ all:
|
|||||||
hosts:
|
hosts:
|
||||||
freebsdtest:
|
freebsdtest:
|
||||||
ansible_connection: local
|
ansible_connection: local
|
||||||
|
|
||||||
graphical_desktop:
|
|
||||||
hosts:
|
|
||||||
freebsdtest:
|
|
||||||
|
|
||||||
desktop_niri:
|
|
||||||
hosts:
|
|
||||||
freebsdtest:
|
|
||||||
|
|||||||
@@ -3,9 +3,8 @@ desktop_environment: minimal
|
|||||||
|
|
||||||
desktop_sessions_enabled:
|
desktop_sessions_enabled:
|
||||||
- sway
|
- sway
|
||||||
- hyprland
|
|
||||||
|
|
||||||
desktop_default_session: hyprland
|
desktop_default_session: sway
|
||||||
desktop_default_session_env: wayland
|
desktop_default_session_env: wayland
|
||||||
desktop_prompt_for_session: true
|
desktop_prompt_for_session: true
|
||||||
|
|
||||||
@@ -150,7 +149,6 @@ desktop_minimal_managed_paths:
|
|||||||
- .config/flameshot
|
- .config/flameshot
|
||||||
- .config/foot
|
- .config/foot
|
||||||
- .config/gtklock
|
- .config/gtklock
|
||||||
- .config/hypr
|
|
||||||
- .config/kanshi
|
- .config/kanshi
|
||||||
- .config/rofi
|
- .config/rofi
|
||||||
- .config/sway
|
- .config/sway
|
||||||
@@ -207,32 +205,6 @@ desktop_sway_dotfiles:
|
|||||||
dest: .config/gtklock/
|
dest: .config/gtklock/
|
||||||
mode: preserve
|
mode: preserve
|
||||||
|
|
||||||
desktop_hyprland_dotfiles:
|
|
||||||
- name: alacritty config
|
|
||||||
src: .config/alacritty/
|
|
||||||
dest: .config/alacritty/
|
|
||||||
mode: preserve
|
|
||||||
- name: dunst config
|
|
||||||
src: .config/dunst/
|
|
||||||
dest: .config/dunst/
|
|
||||||
mode: preserve
|
|
||||||
- name: rofi config
|
|
||||||
src: .config/rofi/
|
|
||||||
dest: .config/rofi/
|
|
||||||
mode: preserve
|
|
||||||
- name: hyprland config
|
|
||||||
src: .config/hypr/
|
|
||||||
dest: .config/hypr/
|
|
||||||
mode: preserve
|
|
||||||
- name: waybar config
|
|
||||||
src: .config/waybar/
|
|
||||||
dest: .config/waybar/
|
|
||||||
mode: preserve
|
|
||||||
- name: foot config
|
|
||||||
src: .config/foot/
|
|
||||||
dest: .config/foot/
|
|
||||||
mode: preserve
|
|
||||||
|
|
||||||
desktop_niri_dotfiles:
|
desktop_niri_dotfiles:
|
||||||
- name: foot config
|
- name: foot config
|
||||||
src: .config/foot/
|
src: .config/foot/
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
desktop_profile: hyprland
|
|
||||||
desktop_default_session: hyprland
|
|
||||||
@@ -53,63 +53,3 @@ freebsd_development_packages:
|
|||||||
- py311-pip
|
- py311-pip
|
||||||
- rust
|
- rust
|
||||||
- shellcheck
|
- shellcheck
|
||||||
|
|
||||||
freebsd_desktop_common_packages:
|
|
||||||
- croc
|
|
||||||
- dbus
|
|
||||||
- dconf
|
|
||||||
- firefox
|
|
||||||
- fontconfig
|
|
||||||
- gnome-keyring
|
|
||||||
- libsecret
|
|
||||||
- mpv
|
|
||||||
- pinentry-gnome
|
|
||||||
- pipewire
|
|
||||||
- polkit
|
|
||||||
- thunderbird
|
|
||||||
- wireplumber
|
|
||||||
- xdg-desktop-portal
|
|
||||||
|
|
||||||
freebsd_hyprland_packages:
|
|
||||||
- alacritty
|
|
||||||
- cliphist
|
|
||||||
- dunst
|
|
||||||
- foot
|
|
||||||
- grim
|
|
||||||
- hypridle
|
|
||||||
- hyprland
|
|
||||||
- hyprlock
|
|
||||||
- hyprpaper
|
|
||||||
- rofi-wayland
|
|
||||||
- seatd
|
|
||||||
- slurp
|
|
||||||
- waybar
|
|
||||||
- wl-clipboard
|
|
||||||
- xdg-desktop-portal-gtk
|
|
||||||
- xdg-desktop-portal-hyprland
|
|
||||||
- xwayland
|
|
||||||
|
|
||||||
freebsd_niri_packages:
|
|
||||||
- cliphist
|
|
||||||
- dunst
|
|
||||||
- foot
|
|
||||||
- grim
|
|
||||||
- niri
|
|
||||||
- rofi-wayland
|
|
||||||
- seatd
|
|
||||||
- slurp
|
|
||||||
- waybar
|
|
||||||
- wl-clipboard
|
|
||||||
- xdg-desktop-portal-gtk
|
|
||||||
|
|
||||||
freebsd_rc_conf:
|
|
||||||
- name: dbus_enable
|
|
||||||
value: "YES"
|
|
||||||
- name: seatd_enable
|
|
||||||
value: "YES"
|
|
||||||
|
|
||||||
freebsd_enabled_services:
|
|
||||||
- dbus
|
|
||||||
- seatd
|
|
||||||
|
|
||||||
freebsd_xdg_config_dir: /usr/local/etc/xdg
|
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
---
|
---
|
||||||
void_xbps_repositories:
|
|
||||||
- name: hyprland-void
|
|
||||||
url: https://raw.githubusercontent.com/sofijacom/hyprland-void/repository-x86_64-glibc
|
|
||||||
|
|
||||||
void_packages_base:
|
void_packages_base:
|
||||||
- 7zip
|
- 7zip
|
||||||
- NetworkManager
|
- NetworkManager
|
||||||
@@ -162,27 +158,6 @@ desktop_sway_packages:
|
|||||||
- xdg-desktop-portal-wlr
|
- xdg-desktop-portal-wlr
|
||||||
- xorg-server-xwayland
|
- xorg-server-xwayland
|
||||||
|
|
||||||
desktop_hyprland_packages:
|
|
||||||
- cliphist
|
|
||||||
- dunst
|
|
||||||
- foot
|
|
||||||
- foot-terminfo
|
|
||||||
- grim
|
|
||||||
- hypridle
|
|
||||||
- hyprland
|
|
||||||
- hyprland-guiutils
|
|
||||||
- hyprlock
|
|
||||||
- hyprpolkitagent
|
|
||||||
- hyprpaper
|
|
||||||
- hyprsysteminfo
|
|
||||||
- rofi
|
|
||||||
- slurp
|
|
||||||
- SwayOSD
|
|
||||||
- Waybar
|
|
||||||
- wl-clipboard
|
|
||||||
- xdg-desktop-portal-hyprland
|
|
||||||
- xorg-server-xwayland
|
|
||||||
|
|
||||||
desktop_niri_packages:
|
desktop_niri_packages:
|
||||||
- cliphist
|
- cliphist
|
||||||
- dunst
|
- dunst
|
||||||
|
|||||||
@@ -41,9 +41,6 @@ all:
|
|||||||
desktop_sway:
|
desktop_sway:
|
||||||
hosts: {}
|
hosts: {}
|
||||||
|
|
||||||
desktop_hyprland:
|
|
||||||
hosts: {}
|
|
||||||
|
|
||||||
desktop_niri:
|
desktop_niri:
|
||||||
hosts: {}
|
hosts: {}
|
||||||
|
|
||||||
|
|||||||
@@ -7,21 +7,6 @@
|
|||||||
(
|
(
|
||||||
(freebsd_packages_base | default([]))
|
(freebsd_packages_base | default([]))
|
||||||
+ (freebsd_development_packages | default([]))
|
+ (freebsd_development_packages | default([]))
|
||||||
+ (
|
|
||||||
(freebsd_desktop_common_packages | default([]))
|
|
||||||
if 'graphical_desktop' in group_names
|
|
||||||
else []
|
|
||||||
)
|
|
||||||
+ (
|
|
||||||
(freebsd_hyprland_packages | default([]))
|
|
||||||
if 'desktop_hyprland' in group_names
|
|
||||||
else []
|
|
||||||
)
|
|
||||||
+ (
|
|
||||||
(freebsd_niri_packages | default([]))
|
|
||||||
if 'desktop_niri' in group_names
|
|
||||||
else []
|
|
||||||
)
|
|
||||||
+ (host_packages | default([]))
|
+ (host_packages | default([]))
|
||||||
)
|
)
|
||||||
| unique
|
| unique
|
||||||
|
|||||||
@@ -60,14 +60,6 @@
|
|||||||
)
|
)
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
+ (
|
|
||||||
(desktop_hyprland_packages | default([]))
|
|
||||||
if (
|
|
||||||
(desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
and 'hyprland' in (desktop_sessions_enabled | default([]))
|
|
||||||
)
|
|
||||||
else []
|
|
||||||
)
|
|
||||||
+ (
|
+ (
|
||||||
(desktop_niri_packages | default([]))
|
(desktop_niri_packages | default([]))
|
||||||
if (
|
if (
|
||||||
@@ -87,7 +79,6 @@
|
|||||||
(
|
(
|
||||||
(desktop_minimal_packages | default([]))
|
(desktop_minimal_packages | default([]))
|
||||||
+ (desktop_sway_packages | default([]))
|
+ (desktop_sway_packages | default([]))
|
||||||
+ (desktop_hyprland_packages | default([]))
|
|
||||||
+ (desktop_niri_packages | default([]))
|
+ (desktop_niri_packages | default([]))
|
||||||
)
|
)
|
||||||
| unique
|
| unique
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
that:
|
that:
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
- (desktop_environment | default('minimal')) == 'minimal'
|
||||||
- (desktop_sessions_enabled | default([]) | length > 0)
|
- (desktop_sessions_enabled | default([]) | length > 0)
|
||||||
- (desktop_sessions_enabled | default([]) | difference(['sway', 'hyprland', 'niri']) | length == 0)
|
- (desktop_sessions_enabled | default([]) | difference(['sway', 'niri']) | length == 0)
|
||||||
- desktop_default_session in (desktop_sessions_enabled | default([]))
|
- desktop_default_session in (desktop_sessions_enabled | default([]))
|
||||||
fail_msg: >-
|
fail_msg: >-
|
||||||
desktop_environment must be minimal. Minimal desktops also require
|
desktop_environment must be minimal. Minimal desktops also require
|
||||||
|
|||||||
@@ -19,20 +19,3 @@
|
|||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
- (desktop_environment | default('minimal')) == 'minimal'
|
||||||
- "'sway' in (desktop_sessions_enabled | default([]))"
|
- "'sway' in (desktop_sessions_enabled | default([]))"
|
||||||
- (host_sway_dotfiles | default([])) | length > 0
|
- (host_sway_dotfiles | default([])) | length > 0
|
||||||
|
|
||||||
|
|
||||||
- name: Copy host-specific Hyprland dotfiles
|
|
||||||
tags: [dotfiles, dotfiles:desktop, dotfiles:host, hyprland]
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ playbook_dir }}/../dotfiles/{{ hostname }}/{{ item.src }}"
|
|
||||||
dest: "{{ user_home }}/{{ item.dest }}"
|
|
||||||
owner: "{{ username }}"
|
|
||||||
group: "{{ user_group }}"
|
|
||||||
mode: "{{ item.mode }}"
|
|
||||||
loop: "{{ host_hyprland_dotfiles | default([]) }}"
|
|
||||||
loop_control:
|
|
||||||
label: "{{ item.dest }}"
|
|
||||||
when:
|
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
- "'hyprland' in (desktop_sessions_enabled | default([]))"
|
|
||||||
- (host_hyprland_dotfiles | default([])) | length > 0
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
[preferred]
|
|
||||||
default=gtk
|
|
||||||
org.freedesktop.impl.portal.Screenshot=hyprland
|
|
||||||
org.freedesktop.impl.portal.ScreenCast=hyprland
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Hyprland
|
|
||||||
Comment=Hyprland (Wayland)
|
|
||||||
Exec=/usr/local/bin/start-hyprland-session
|
|
||||||
Type=Application
|
|
||||||
DesktopNames=Hyprland
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Ensure Hyprland config directories exist
|
|
||||||
tags: [dotfiles, dotfiles:desktop, hyprland]
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
owner: "{{ username }}"
|
|
||||||
group: "{{ user_group }}"
|
|
||||||
mode: "0755"
|
|
||||||
loop:
|
|
||||||
- "{{ user_home }}/.config/alacritty"
|
|
||||||
- "{{ user_home }}/.config/dunst"
|
|
||||||
- "{{ user_home }}/.config/flameshot"
|
|
||||||
- "{{ user_home }}/.config/foot"
|
|
||||||
- "{{ user_home }}/.config/hypr"
|
|
||||||
- "{{ user_home }}/.config/rofi"
|
|
||||||
- "{{ user_home }}/.config/waybar"
|
|
||||||
when:
|
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
- "'hyprland' in (desktop_sessions_enabled | default([]))"
|
|
||||||
|
|
||||||
- name: Install allowed emptty Hyprland Wayland session
|
|
||||||
tags: [packages, services, emptty, hyprland]
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: hyprland.desktop
|
|
||||||
dest: /etc/emptty/wayland-sessions/hyprland.desktop
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
when:
|
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
- "'hyprland' in (desktop_sessions_enabled | default([]))"
|
|
||||||
|
|
||||||
- name: Remove legacy Hyprland session launcher shadowing package binary
|
|
||||||
tags: [packages, services, hyprland]
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /usr/local/bin/start-hyprland
|
|
||||||
state: absent
|
|
||||||
when:
|
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
- "'hyprland' in (desktop_sessions_enabled | default([]))"
|
|
||||||
|
|
||||||
- name: Install Hyprland session launcher in /usr/local/bin
|
|
||||||
tags: [packages, services, hyprland]
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ playbook_dir }}/../dotfiles/desktop/.local/bin/start-hyprland-session"
|
|
||||||
dest: /usr/local/bin/start-hyprland-session
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0755"
|
|
||||||
when:
|
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
- "'hyprland' in (desktop_sessions_enabled | default([]))"
|
|
||||||
|
|
||||||
- name: Ensure /etc/xdg/xdg-desktop-portal exists for Hyprland
|
|
||||||
tags: [packages, services, hyprland, portal]
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /etc/xdg/xdg-desktop-portal
|
|
||||||
state: directory
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0755"
|
|
||||||
when:
|
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
- "'hyprland' in (desktop_sessions_enabled | default([]))"
|
|
||||||
|
|
||||||
- name: Configure xdg-desktop-portal backend preferences for Hyprland
|
|
||||||
tags: [packages, services, hyprland, portal]
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: hyprland-portals.conf
|
|
||||||
dest: /etc/xdg/xdg-desktop-portal/hyprland-portals.conf
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
when:
|
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
- "'hyprland' in (desktop_sessions_enabled | default([]))"
|
|
||||||
|
|
||||||
- name: Copy Hyprland desktop dotfiles
|
|
||||||
tags: [dotfiles, dotfiles:desktop, hyprland]
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ playbook_dir }}/../dotfiles/desktop/{{ item.src }}"
|
|
||||||
dest: "{{ user_home }}/{{ item.dest }}"
|
|
||||||
owner: "{{ username }}"
|
|
||||||
group: "{{ user_group }}"
|
|
||||||
mode: "{{ item.mode }}"
|
|
||||||
loop: "{{ desktop_hyprland_dotfiles | default([]) }}"
|
|
||||||
loop_control:
|
|
||||||
label: "{{ item.dest }}"
|
|
||||||
when:
|
|
||||||
- (desktop_environment | default('minimal')) == 'minimal'
|
|
||||||
- "'hyprland' in (desktop_sessions_enabled | default([]))"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
[preferred]
|
|
||||||
default=gtk
|
|
||||||
org.freedesktop.impl.portal.Screenshot=hyprland
|
|
||||||
org.freedesktop.impl.portal.ScreenCast=hyprland
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Ensure FreeBSD Hyprland user config directories exist
|
|
||||||
tags: [dotfiles, dotfiles:desktop, hyprland]
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
owner: "{{ username }}"
|
|
||||||
group: "{{ user_group }}"
|
|
||||||
mode: "0755"
|
|
||||||
loop:
|
|
||||||
- "{{ user_home }}/.config"
|
|
||||||
- "{{ user_home }}/.config/alacritty"
|
|
||||||
- "{{ user_home }}/.config/dunst"
|
|
||||||
- "{{ user_home }}/.config/foot"
|
|
||||||
- "{{ user_home }}/.config/hypr"
|
|
||||||
- "{{ user_home }}/.config/rofi"
|
|
||||||
- "{{ user_home }}/.config/waybar"
|
|
||||||
- "{{ user_home }}/.local"
|
|
||||||
- "{{ user_home }}/.local/bin"
|
|
||||||
|
|
||||||
- name: Copy common Hyprland desktop dotfiles on FreeBSD
|
|
||||||
tags: [dotfiles, dotfiles:desktop, hyprland]
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ playbook_dir }}/../dotfiles/desktop/{{ item.src }}"
|
|
||||||
dest: "{{ user_home }}/{{ item.dest }}"
|
|
||||||
owner: "{{ username }}"
|
|
||||||
group: "{{ user_group }}"
|
|
||||||
mode: "{{ item.mode }}"
|
|
||||||
loop: "{{ desktop_hyprland_dotfiles | default([]) }}"
|
|
||||||
loop_control:
|
|
||||||
label: "{{ item.dest }}"
|
|
||||||
|
|
||||||
- name: Render FreeBSD Hyprland session launcher
|
|
||||||
tags: [packages, services, hyprland]
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: start-hyprland-session.j2
|
|
||||||
dest: /usr/local/bin/start-hyprland-session
|
|
||||||
owner: root
|
|
||||||
group: wheel
|
|
||||||
mode: "0755"
|
|
||||||
|
|
||||||
- name: Ensure FreeBSD xdg-desktop-portal config directory exists
|
|
||||||
tags: [packages, services, hyprland, portal]
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ freebsd_xdg_config_dir | default('/usr/local/etc/xdg') }}/xdg-desktop-portal"
|
|
||||||
state: directory
|
|
||||||
owner: root
|
|
||||||
group: wheel
|
|
||||||
mode: "0755"
|
|
||||||
|
|
||||||
- name: Configure xdg-desktop-portal backend preferences for FreeBSD Hyprland
|
|
||||||
tags: [packages, services, hyprland, portal]
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: hyprland-portals.conf
|
|
||||||
dest: "{{ freebsd_xdg_config_dir | default('/usr/local/etc/xdg') }}/xdg-desktop-portal/hyprland-portals.conf"
|
|
||||||
owner: root
|
|
||||||
group: wheel
|
|
||||||
mode: "0644"
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
[ -r /etc/profile ] && . /etc/profile
|
|
||||||
[ -r "$HOME/.profile" ] && . "$HOME/.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;xcb'
|
|
||||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
|
||||||
export SDL_VIDEODRIVER=wayland
|
|
||||||
export GDK_BACKEND='wayland,x11'
|
|
||||||
|
|
||||||
export SSH_AUTH_SOCK="$HOME/.local/state/ssh-agent/socket"
|
|
||||||
|
|
||||||
[ -r "$HOME/.config/hypr/session-env" ] && . "$HOME/.config/hypr/session-env"
|
|
||||||
|
|
||||||
if command -v dbus-run-session >/dev/null 2>&1; then
|
|
||||||
exec dbus-run-session Hyprland
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec Hyprland
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Ensure FreeBSD Niri user config directories exist
|
|
||||||
tags: [dotfiles, dotfiles:desktop, niri]
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
owner: "{{ username }}"
|
|
||||||
group: "{{ user_group }}"
|
|
||||||
mode: "0755"
|
|
||||||
loop:
|
|
||||||
- "{{ user_home }}/.config"
|
|
||||||
- "{{ user_home }}/.config/dunst"
|
|
||||||
- "{{ user_home }}/.config/foot"
|
|
||||||
- "{{ user_home }}/.config/niri"
|
|
||||||
- "{{ user_home }}/.config/rofi"
|
|
||||||
- "{{ user_home }}/.config/waybar"
|
|
||||||
- "{{ user_home }}/.local"
|
|
||||||
- "{{ user_home }}/.local/bin"
|
|
||||||
- "{{ user_home }}/.local/state"
|
|
||||||
- "{{ user_home }}/.local/state/ssh-agent"
|
|
||||||
|
|
||||||
- name: Copy common Niri desktop dotfiles on FreeBSD
|
|
||||||
tags: [dotfiles, dotfiles:desktop, niri]
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: "{{ playbook_dir }}/../dotfiles/desktop/{{ item.src }}"
|
|
||||||
dest: "{{ user_home }}/{{ item.dest }}"
|
|
||||||
owner: "{{ username }}"
|
|
||||||
group: "{{ user_group }}"
|
|
||||||
mode: "{{ item.mode }}"
|
|
||||||
loop: "{{ desktop_niri_dotfiles | default([]) }}"
|
|
||||||
loop_control:
|
|
||||||
label: "{{ item.dest }}"
|
|
||||||
|
|
||||||
- name: Render FreeBSD Niri session launcher
|
|
||||||
tags: [packages, services, niri]
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: start-niri-session.j2
|
|
||||||
dest: /usr/local/bin/start-niri-session
|
|
||||||
owner: root
|
|
||||||
group: wheel
|
|
||||||
mode: "0755"
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
[ -r /etc/profile ] && . /etc/profile
|
|
||||||
[ -r "$HOME/.profile" ] && . "$HOME/.profile"
|
|
||||||
|
|
||||||
export XDG_CURRENT_DESKTOP=niri
|
|
||||||
export XDG_SESSION_DESKTOP=niri
|
|
||||||
export XDG_SESSION_TYPE=wayland
|
|
||||||
|
|
||||||
export MOZ_ENABLE_WAYLAND=1
|
|
||||||
export QT_QPA_PLATFORM='wayland;xcb'
|
|
||||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
|
||||||
export SDL_VIDEODRIVER=wayland
|
|
||||||
export GDK_BACKEND='wayland,x11'
|
|
||||||
|
|
||||||
export SSH_AUTH_SOCK="$HOME/.local/state/ssh-agent/socket"
|
|
||||||
|
|
||||||
[ -r "$HOME/.config/niri/session-env" ] && . "$HOME/.config/niri/session-env"
|
|
||||||
|
|
||||||
if command -v dbus-run-session >/dev/null 2>&1; then
|
|
||||||
exec dbus-run-session niri --session
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec niri --session
|
|
||||||
@@ -1,20 +1,10 @@
|
|||||||
---
|
---
|
||||||
- name: Configure FreeBSD rc.conf values
|
|
||||||
tags: [services, packages]
|
|
||||||
community.general.sysrc:
|
|
||||||
name: "{{ item.name }}"
|
|
||||||
value: "{{ item.value }}"
|
|
||||||
state: present
|
|
||||||
loop: "{{ freebsd_rc_conf | default([]) }}"
|
|
||||||
loop_control:
|
|
||||||
label: "{{ item.name }}"
|
|
||||||
|
|
||||||
- name: Enable FreeBSD rc services
|
- name: Enable FreeBSD rc services
|
||||||
tags: [services, packages]
|
tags: [services, packages]
|
||||||
ansible.builtin.service:
|
ansible.builtin.service:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
enabled: true
|
enabled: true
|
||||||
state: started
|
state: started
|
||||||
loop: "{{ freebsd_enabled_services | default([]) + host_enabled_services | default([]) }}"
|
loop: "{{ host_enabled_services | default([]) }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item }}"
|
label: "{{ item }}"
|
||||||
|
|||||||
@@ -37,7 +37,6 @@
|
|||||||
roles:
|
roles:
|
||||||
- profile_desktop_common
|
- profile_desktop_common
|
||||||
- profile_desktop_sway
|
- profile_desktop_sway
|
||||||
- profile_desktop_hyprland
|
|
||||||
- profile_desktop_niri
|
- profile_desktop_niri
|
||||||
- profile_desktop_host
|
- profile_desktop_host
|
||||||
|
|
||||||
@@ -49,13 +48,6 @@
|
|||||||
- packages_freebsd
|
- packages_freebsd
|
||||||
- services_freebsd
|
- services_freebsd
|
||||||
|
|
||||||
- name: Configure Niri desktop on FreeBSD
|
|
||||||
hosts: platform_freebsd:&desktop_niri
|
|
||||||
become: true
|
|
||||||
|
|
||||||
roles:
|
|
||||||
- profile_desktop_niri_freebsd
|
|
||||||
|
|
||||||
- name: Configure Fedora platform
|
- name: Configure Fedora platform
|
||||||
hosts: platform_fedora
|
hosts: platform_fedora
|
||||||
become: true
|
become: true
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
# Per-host Hyprland overrides. Empty by default; hosts that need tuning
|
|
||||||
# ship their own version via host_hyprland_dotfiles, which overwrites this
|
|
||||||
# placeholder during deploy.
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
general {
|
|
||||||
lock_cmd = pidof hyprlock || hyprlock
|
|
||||||
before_sleep_cmd = loginctl lock-session
|
|
||||||
after_sleep_cmd = hyprctl dispatch dpms on
|
|
||||||
}
|
|
||||||
|
|
||||||
listener {
|
|
||||||
timeout = 300
|
|
||||||
on-timeout = ~/.config/hypr/scripts/lock-and-dpms
|
|
||||||
on-resume = hyprctl dispatch dpms on
|
|
||||||
}
|
|
||||||
@@ -1,227 +0,0 @@
|
|||||||
# Hyprland config, aligned with the Sway desktop profile.
|
|
||||||
|
|
||||||
$mod = SUPER
|
|
||||||
$terminal = alacritty
|
|
||||||
$browser = firefox
|
|
||||||
|
|
||||||
monitor = ,preferred,auto,1
|
|
||||||
|
|
||||||
env = XCURSOR_THEME,Yaru
|
|
||||||
env = XCURSOR_SIZE,24
|
|
||||||
|
|
||||||
input {
|
|
||||||
kb_layout = us
|
|
||||||
kb_variant = intl
|
|
||||||
follow_mouse = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
cursor {
|
|
||||||
no_hardware_cursors = false
|
|
||||||
}
|
|
||||||
|
|
||||||
general {
|
|
||||||
gaps_in = 5
|
|
||||||
gaps_out = 20
|
|
||||||
border_size = 3
|
|
||||||
col.active_border = rgba(54d6ffff) rgba(1478ffff) 180deg
|
|
||||||
col.inactive_border = rgba(f5e6b899) rgba(8a8f9acc) 180deg
|
|
||||||
layout = master
|
|
||||||
}
|
|
||||||
|
|
||||||
decoration {
|
|
||||||
rounding = 8
|
|
||||||
|
|
||||||
blur {
|
|
||||||
enabled = true
|
|
||||||
size = 5
|
|
||||||
passes = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
shadow {
|
|
||||||
enabled = true
|
|
||||||
}
|
|
||||||
|
|
||||||
dim_inactive = true
|
|
||||||
dim_strength = 0.1
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = true
|
|
||||||
bezier = easeOutQuint,0.23,1,0.32,1
|
|
||||||
animation = windows,1,2,easeOutQuint,popin 85%
|
|
||||||
animation = border,1,2,easeOutQuint
|
|
||||||
animation = fade,1,2,easeOutQuint
|
|
||||||
animation = workspaces,1,2,easeOutQuint,slide
|
|
||||||
animation = layers,1,2,easeOutQuint,fade
|
|
||||||
}
|
|
||||||
|
|
||||||
master {
|
|
||||||
new_status = slave
|
|
||||||
orientation = left
|
|
||||||
}
|
|
||||||
|
|
||||||
misc {
|
|
||||||
disable_hyprland_logo = true
|
|
||||||
disable_splash_rendering = true
|
|
||||||
force_default_wallpaper = 0
|
|
||||||
focus_on_activate = false
|
|
||||||
}
|
|
||||||
|
|
||||||
xwayland {
|
|
||||||
enabled = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# Per-host overrides (terminal wrapper, env, monitors, workspace rules, etc.).
|
|
||||||
source = ~/.config/hypr/host.conf
|
|
||||||
|
|
||||||
# Window rules
|
|
||||||
windowrule = float on, match:class (?i)(polkit)
|
|
||||||
windowrule = float on, match:title ^Authentication Required$
|
|
||||||
windowrule = float on, match:title ^Open File$
|
|
||||||
windowrule = float on, match:title ^Save File$
|
|
||||||
windowrule = float on, match:class (?i)(blueman-manager)
|
|
||||||
windowrule = float on, match:class (?i)(nm-connection-editor)
|
|
||||||
windowrule = float on, match:class (?i)(pinentry)
|
|
||||||
windowrule = float on, match:class (?i)(firefox), match:title ^Library$
|
|
||||||
windowrule = float on, match:class (?i)(firefox), match:title ^About Mozilla Firefox$
|
|
||||||
windowrule = float on, match:class org.freedesktop.impl.portal.desktop.gtk
|
|
||||||
windowrule = idle_inhibit fullscreen, match:fullscreen true
|
|
||||||
windowrule = idle_inhibit focus, match:content 2
|
|
||||||
|
|
||||||
# Autostart — XDG and session services
|
|
||||||
exec-once = dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP XDG_SESSION_TYPE XDG_SESSION_DESKTOP
|
|
||||||
exec-once = env UPDATE_TURNSTILE_RESTART_EMACS=1 ~/.local/bin/update-turnstile-env
|
|
||||||
exec-once = dex --autostart --environment Hyprland
|
|
||||||
exec-once = gnome-keyring-daemon --start --components=secrets
|
|
||||||
exec-once = ~/.local/bin/setup-gtk-theme
|
|
||||||
exec-once = /usr/libexec/xdg-desktop-portal
|
|
||||||
exec-once = /usr/libexec/xdg-desktop-portal-hyprland
|
|
||||||
exec-once = /usr/libexec/xdg-desktop-portal-gtk
|
|
||||||
|
|
||||||
# Audio/session services
|
|
||||||
exec-once = pipewire
|
|
||||||
exec-once = pipewire-pulse
|
|
||||||
exec-once = wireplumber
|
|
||||||
|
|
||||||
# Desktop services
|
|
||||||
exec-once = hyprctl setcursor Yaru 24
|
|
||||||
exec-once = hyprpaper
|
|
||||||
exec-once = sleep 1 && waybar -c ~/.config/waybar/hyprland.jsonc -s ~/.config/waybar/hyprland-style.css
|
|
||||||
exec-once = swayosd-server
|
|
||||||
exec-once = dunst
|
|
||||||
exec-once = hyprpolkitagent
|
|
||||||
exec-once = nm-applet
|
|
||||||
exec-once = blueman-applet
|
|
||||||
exec-once = udiskie
|
|
||||||
exec-once = hypridle
|
|
||||||
|
|
||||||
# Clipboard manager
|
|
||||||
exec-once = wl-paste --type text --watch cliphist store
|
|
||||||
exec-once = wl-paste --type image --watch cliphist store
|
|
||||||
|
|
||||||
# Applications
|
|
||||||
bind = $mod, Return, exec, $terminal
|
|
||||||
bind = $mod SHIFT, Return, exec, foot
|
|
||||||
bind = $mod SHIFT, E, exec, emacsclient -c -n
|
|
||||||
bind = $mod, D, exec, rofi -show drun -theme ~/.config/rofi/config.rasi
|
|
||||||
bind = $mod, C, exec, cliphist list | rofi -dmenu -theme ~/.config/rofi/config.rasi | cliphist decode | wl-copy
|
|
||||||
bind = $mod SHIFT, V, exec, pavucontrol
|
|
||||||
bind = $mod SHIFT, F, exec, thunar
|
|
||||||
bind = $mod SHIFT, D, exec, dunstctl set-paused toggle
|
|
||||||
bind = $mod SHIFT, X, exec, ~/.config/hypr/scripts/lock-and-dpms
|
|
||||||
bind = $mod SHIFT, Q, killactive
|
|
||||||
|
|
||||||
# Screenshots (Hyprland-native: grim/slurp/wl-copy; Flameshot is unstable here)
|
|
||||||
bind = , Print, exec, ~/.config/hypr/scripts/screenshot region
|
|
||||||
bind = SHIFT, Print, exec, ~/.config/hypr/scripts/screenshot full
|
|
||||||
bind = ALT, Print, exec, ~/.config/hypr/scripts/screenshot output
|
|
||||||
|
|
||||||
# Focus
|
|
||||||
bind = $mod, H, movefocus, l
|
|
||||||
bind = $mod, J, movefocus, d
|
|
||||||
bind = $mod, K, movefocus, u
|
|
||||||
bind = $mod, L, movefocus, r
|
|
||||||
bind = $mod, left, movefocus, l
|
|
||||||
bind = $mod, down, movefocus, d
|
|
||||||
bind = $mod, up, movefocus, u
|
|
||||||
bind = $mod, right, movefocus, r
|
|
||||||
|
|
||||||
# Move windows
|
|
||||||
bind = $mod SHIFT, H, movewindow, l
|
|
||||||
bind = $mod SHIFT, J, movewindow, d
|
|
||||||
bind = $mod SHIFT, K, movewindow, u
|
|
||||||
bind = $mod SHIFT, L, movewindow, r
|
|
||||||
bind = $mod SHIFT, left, movewindow, l
|
|
||||||
bind = $mod SHIFT, down, movewindow, d
|
|
||||||
bind = $mod SHIFT, up, movewindow, u
|
|
||||||
bind = $mod SHIFT, right, movewindow, r
|
|
||||||
|
|
||||||
# Layouts / floating
|
|
||||||
bind = $mod, F, fullscreen
|
|
||||||
bind = $mod SHIFT, Space, togglefloating
|
|
||||||
bind = $mod, Space, cyclenext
|
|
||||||
bind = $mod, A, layoutmsg, swapwithmaster
|
|
||||||
bindm = $mod, mouse:272, movewindow
|
|
||||||
bindm = $mod, mouse:273, resizewindow
|
|
||||||
|
|
||||||
# Scratchpad-like special workspace
|
|
||||||
bind = $mod SHIFT, minus, movetoworkspace, special
|
|
||||||
bind = $mod, minus, togglespecialworkspace
|
|
||||||
|
|
||||||
# Volume / brightness / media
|
|
||||||
bind = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
|
|
||||||
bind = , XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
|
|
||||||
bind = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
|
|
||||||
bind = , XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
|
|
||||||
bind = , XF86MonBrightnessUp, exec, swayosd-client --brightness raise
|
|
||||||
bind = , XF86MonBrightnessDown, exec, swayosd-client --brightness lower
|
|
||||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
|
||||||
bind = , XF86AudioNext, exec, playerctl next
|
|
||||||
bind = , XF86AudioPrev, exec, playerctl previous
|
|
||||||
|
|
||||||
# Workspaces
|
|
||||||
bind = $mod, 1, workspace, 1
|
|
||||||
bind = $mod, 2, workspace, 2
|
|
||||||
bind = $mod, 3, workspace, 3
|
|
||||||
bind = $mod, 4, workspace, 4
|
|
||||||
bind = $mod, 5, workspace, 5
|
|
||||||
bind = $mod, 6, workspace, 6
|
|
||||||
bind = $mod, 7, workspace, 7
|
|
||||||
bind = $mod, 8, workspace, 8
|
|
||||||
bind = $mod, 9, workspace, 9
|
|
||||||
bind = $mod, 0, workspace, 10
|
|
||||||
bind = $mod, comma, exec, ~/.config/hypr/scripts/workspace-cycle prev
|
|
||||||
bind = $mod, period, exec, ~/.config/hypr/scripts/workspace-cycle next
|
|
||||||
|
|
||||||
bind = $mod SHIFT, 1, movetoworkspace, 1
|
|
||||||
bind = $mod SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = $mod SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = $mod SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = $mod SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = $mod SHIFT, 6, movetoworkspace, 6
|
|
||||||
bind = $mod SHIFT, 7, movetoworkspace, 7
|
|
||||||
bind = $mod SHIFT, 8, movetoworkspace, 8
|
|
||||||
bind = $mod SHIFT, 9, movetoworkspace, 9
|
|
||||||
bind = $mod SHIFT, 0, movetoworkspace, 10
|
|
||||||
|
|
||||||
# Reload / exit
|
|
||||||
bind = $mod SHIFT, C, exec, hyprctl reload
|
|
||||||
bind = $mod SHIFT, R, exec, hyprctl reload
|
|
||||||
bind = $mod SHIFT, BackSpace, exit
|
|
||||||
bind = $mod SHIFT, Escape, exec, ~/.config/hypr/scripts/powermenu.sh
|
|
||||||
|
|
||||||
# Resize submap
|
|
||||||
bind = $mod, R, submap, resize
|
|
||||||
submap = resize
|
|
||||||
bind = , H, resizeactive, -10 0
|
|
||||||
bind = , J, resizeactive, 0 10
|
|
||||||
bind = , K, resizeactive, 0 -10
|
|
||||||
bind = , L, resizeactive, 10 0
|
|
||||||
bind = , left, resizeactive, -10 0
|
|
||||||
bind = , down, resizeactive, 0 10
|
|
||||||
bind = , up, resizeactive, 0 -10
|
|
||||||
bind = , right, resizeactive, 10 0
|
|
||||||
bind = , Return, submap, reset
|
|
||||||
bind = , Escape, submap, reset
|
|
||||||
bind = $mod, R, submap, reset
|
|
||||||
submap = reset
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
general {
|
|
||||||
hide_cursor = true
|
|
||||||
immediate_render = true
|
|
||||||
fail_timeout = 1800
|
|
||||||
}
|
|
||||||
|
|
||||||
background {
|
|
||||||
monitor =
|
|
||||||
path = ~/.config/hypr/wallpapers/maxresdefault.jpg
|
|
||||||
blur_passes = 1
|
|
||||||
blur_size = 3
|
|
||||||
brightness = 0.55
|
|
||||||
contrast = 0.95
|
|
||||||
vibrancy = 0.18
|
|
||||||
vibrancy_darkness = 0.08
|
|
||||||
}
|
|
||||||
|
|
||||||
shape {
|
|
||||||
monitor =
|
|
||||||
size = 560, 360
|
|
||||||
color = rgba(06070dcc)
|
|
||||||
rounding = 24
|
|
||||||
border_size = 2
|
|
||||||
border_color = rgba(f5c542ee)
|
|
||||||
shadow_passes = 2
|
|
||||||
shadow_size = 10
|
|
||||||
shadow_color = rgba(00000099)
|
|
||||||
position = 0, -5
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = $TIME
|
|
||||||
color = rgba(f5c542ff)
|
|
||||||
font_size = 78
|
|
||||||
font_family = Noto Sans
|
|
||||||
shadow_passes = 2
|
|
||||||
shadow_size = 4
|
|
||||||
shadow_color = rgba(000000cc)
|
|
||||||
position = 0, 105
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = cmd[update:60000] date '+%A %d %B %Y'
|
|
||||||
color = rgba(e6d3a3ee)
|
|
||||||
font_size = 18
|
|
||||||
font_family = Noto Sans
|
|
||||||
shadow_passes = 1
|
|
||||||
shadow_size = 3
|
|
||||||
shadow_color = rgba(000000bb)
|
|
||||||
position = 0, 20
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = $USER
|
|
||||||
color = rgba(d7d7d7ee)
|
|
||||||
font_size = 16
|
|
||||||
font_family = Noto Sans
|
|
||||||
shadow_passes = 1
|
|
||||||
shadow_size = 3
|
|
||||||
shadow_color = rgba(000000bb)
|
|
||||||
position = 0, -24
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
|
|
||||||
input-field {
|
|
||||||
monitor =
|
|
||||||
size = 360, 54
|
|
||||||
outline_thickness = 2
|
|
||||||
dots_size = 0.25
|
|
||||||
dots_spacing = 0.20
|
|
||||||
dots_center = true
|
|
||||||
rounding = -1
|
|
||||||
outer_color = rgba(f5c542ee)
|
|
||||||
inner_color = rgba(11131bdd)
|
|
||||||
font_color = rgba(f5c542ff)
|
|
||||||
check_color = rgba(4a90d9ff)
|
|
||||||
fail_color = rgba(c7162bff)
|
|
||||||
capslock_color = rgba(ffd166ff)
|
|
||||||
placeholder_text = <i>Access code</i>
|
|
||||||
fail_text = <i>Access denied <b>($ATTEMPTS)</b></i>
|
|
||||||
fade_on_empty = false
|
|
||||||
shadow_passes = 2
|
|
||||||
shadow_size = 6
|
|
||||||
shadow_color = rgba(000000aa)
|
|
||||||
position = 0, -90
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
splash = false
|
|
||||||
|
|
||||||
wallpaper {
|
|
||||||
monitor =
|
|
||||||
path = ~/.config/hypr/wallpapers/geek-girl.jpg
|
|
||||||
fit_mode = cover
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Lock the session, then power off outputs only if the lock is still active.
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
lock_delay="${HYPRLOCK_DPMS_DELAY:-30}"
|
|
||||||
|
|
||||||
loginctl lock-session
|
|
||||||
|
|
||||||
(
|
|
||||||
sleep "$lock_delay"
|
|
||||||
pidof hyprlock >/dev/null 2>&1 || exit 0
|
|
||||||
hyprctl dispatch dpms off
|
|
||||||
) >/tmp/hyprlock-dpms.log 2>&1 &
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
choice="$(printf "⏻ Shutdown\n Reboot\n Logout\n Lock\n⏾ Suspend" \
|
|
||||||
| rofi -dmenu \
|
|
||||||
-i \
|
|
||||||
-p "Power" \
|
|
||||||
-theme ~/.config/rofi/config.rasi \
|
|
||||||
-theme-str 'window { width: 20%; location: center; anchor: center; } listview { columns: 1; spacing: 6px; }')"
|
|
||||||
|
|
||||||
[ -z "$choice" ] && exit 0
|
|
||||||
|
|
||||||
case "$choice" in
|
|
||||||
*Lock)
|
|
||||||
hyprlock
|
|
||||||
;;
|
|
||||||
*Logout)
|
|
||||||
hyprctl dispatch exit
|
|
||||||
;;
|
|
||||||
*Suspend)
|
|
||||||
hyprlock &
|
|
||||||
loginctl suspend
|
|
||||||
;;
|
|
||||||
*Reboot)
|
|
||||||
loginctl reboot
|
|
||||||
;;
|
|
||||||
*Shutdown)
|
|
||||||
loginctl poweroff
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Quick screenshot helpers for Hyprland. Captures via grim, saves to disk and
|
|
||||||
# also copies to the Wayland clipboard. Use the flameshot binding for
|
|
||||||
# annotations / fancy capture.
|
|
||||||
#
|
|
||||||
# Usage: screenshot {full|region|output|window}
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
mode="${1:-full}"
|
|
||||||
dir="$HOME/Pictures/Screenshots"
|
|
||||||
mkdir -p "$dir"
|
|
||||||
file="$dir/$(date +%Y%m%d_%H%M%S).png"
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
full)
|
|
||||||
grim "$file"
|
|
||||||
;;
|
|
||||||
region)
|
|
||||||
grim -g "$(slurp)" "$file"
|
|
||||||
;;
|
|
||||||
output)
|
|
||||||
out=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name')
|
|
||||||
grim -o "$out" "$file"
|
|
||||||
;;
|
|
||||||
window)
|
|
||||||
geom=$(hyprctl activewindow -j \
|
|
||||||
| jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')
|
|
||||||
grim -g "$geom" "$file"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
printf 'Usage: %s {full|region|output|window}\n' "$0" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
wl-copy < "$file"
|
|
||||||
notify-send "Screenshot saved" "$file" -i image-x-generic >/dev/null 2>&1 || true
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Cycle Hyprland workspaces within the fixed 1..10 desktop set.
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
direction="${1:-next}"
|
|
||||||
current="$(hyprctl activeworkspace -j | jq -r '.id')"
|
|
||||||
|
|
||||||
case "$current" in
|
|
||||||
''|*[!0-9-]*) current=1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case "$direction" in
|
|
||||||
next)
|
|
||||||
if [ "$current" -ge 10 ] || [ "$current" -lt 1 ]; then
|
|
||||||
target=1
|
|
||||||
else
|
|
||||||
target=$((current + 1))
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
prev)
|
|
||||||
if [ "$current" -le 1 ] || [ "$current" -gt 10 ]; then
|
|
||||||
target=10
|
|
||||||
else
|
|
||||||
target=$((current - 1))
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
printf 'Usage: %s {next|prev}\n' "$0" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exec hyprctl dispatch workspace "$target"
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 109 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 365 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 116 KiB |
@@ -1,121 +0,0 @@
|
|||||||
* {
|
|
||||||
font-family: "NotoSans NF";
|
|
||||||
font-size: 10pt;
|
|
||||||
font-weight: 600;
|
|
||||||
min-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background-color: rgba(6, 7, 13, 0.82);
|
|
||||||
color: #f2f4f8;
|
|
||||||
border: 1px solid rgba(84, 214, 255, 0.55);
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces {
|
|
||||||
padding: 0 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
padding: 0 8px;
|
|
||||||
margin: 3px 2px;
|
|
||||||
color: #c7ccd8;
|
|
||||||
background-color: rgba(17, 19, 27, 0.72);
|
|
||||||
border: 1px solid rgba(245, 230, 184, 0.18);
|
|
||||||
border-radius: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.visible {
|
|
||||||
color: #f5e6b8;
|
|
||||||
background-color: rgba(30, 34, 46, 0.92);
|
|
||||||
border-color: rgba(245, 230, 184, 0.45);
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active,
|
|
||||||
#workspaces button.focused {
|
|
||||||
color: #061018;
|
|
||||||
background: linear-gradient(180deg, #54d6ff, #1478ff);
|
|
||||||
border-color: #9eeaff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.urgent {
|
|
||||||
color: #ffffff;
|
|
||||||
background-color: #c7162b;
|
|
||||||
border-color: #ff6b6b;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock,
|
|
||||||
#cpu,
|
|
||||||
#memory,
|
|
||||||
#disk,
|
|
||||||
#temperature,
|
|
||||||
#backlight,
|
|
||||||
#network,
|
|
||||||
#pulseaudio,
|
|
||||||
#battery,
|
|
||||||
#tray,
|
|
||||||
#custom-dnd,
|
|
||||||
#custom-power {
|
|
||||||
padding: 0 8px;
|
|
||||||
margin: 3px 2px;
|
|
||||||
border-radius: 7px;
|
|
||||||
background-color: rgba(17, 19, 27, 0.72);
|
|
||||||
border: 1px solid rgba(245, 230, 184, 0.12);
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
color: #f5e6b8;
|
|
||||||
border-color: rgba(245, 230, 184, 0.38);
|
|
||||||
}
|
|
||||||
|
|
||||||
#cpu { color: #b28cff; }
|
|
||||||
#memory { color: #54d6ff; }
|
|
||||||
#disk { color: #b9f6ca; }
|
|
||||||
#temperature { color: #ffd166; }
|
|
||||||
#backlight { color: #f5e6b8; }
|
|
||||||
#network { color: #54d6ff; }
|
|
||||||
#pulseaudio { color: #9eeaff; }
|
|
||||||
#battery { color: #f2f4f8; }
|
|
||||||
|
|
||||||
#network.disconnected,
|
|
||||||
#pulseaudio.muted,
|
|
||||||
#custom-dnd {
|
|
||||||
color: #8a8f9a;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.charging,
|
|
||||||
#battery.full {
|
|
||||||
color: #36ff73;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.warning,
|
|
||||||
#custom-dnd.paused {
|
|
||||||
color: #ffd166;
|
|
||||||
border-color: rgba(255, 209, 102, 0.45);
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.critical,
|
|
||||||
#temperature.critical {
|
|
||||||
color: #ff6b6b;
|
|
||||||
border-color: rgba(199, 22, 43, 0.75);
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray {
|
|
||||||
padding: 0 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-power {
|
|
||||||
color: #ff4d5d;
|
|
||||||
padding: 0 10px;
|
|
||||||
font-size: 12pt;
|
|
||||||
border-color: rgba(199, 22, 43, 0.40);
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-dnd:hover,
|
|
||||||
#custom-power:hover,
|
|
||||||
#clock:hover,
|
|
||||||
#network:hover,
|
|
||||||
#pulseaudio:hover {
|
|
||||||
background-color: rgba(84, 214, 255, 0.16);
|
|
||||||
border-color: rgba(84, 214, 255, 0.62);
|
|
||||||
}
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
{
|
|
||||||
"layer": "top",
|
|
||||||
"position": "top",
|
|
||||||
"height": 26,
|
|
||||||
"spacing": 4,
|
|
||||||
|
|
||||||
"modules-left": ["hyprland/workspaces"],
|
|
||||||
"modules-center": [],
|
|
||||||
"modules-right": ["cpu", "memory", "disk", "temperature", "backlight", "network", "pulseaudio", "battery", "tray", "clock", "custom/dnd", "custom/power"],
|
|
||||||
|
|
||||||
"hyprland/workspaces": {
|
|
||||||
"disable-scroll": true,
|
|
||||||
"all-outputs": false,
|
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"1": "I",
|
|
||||||
"2": "II",
|
|
||||||
"3": "III",
|
|
||||||
"4": "IV",
|
|
||||||
"5": "V",
|
|
||||||
"6": "VI",
|
|
||||||
"7": "VII",
|
|
||||||
"8": "VIII",
|
|
||||||
"9": "IX",
|
|
||||||
"10": "X"
|
|
||||||
},
|
|
||||||
"persistent-workspaces": {
|
|
||||||
"*": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"clock": {
|
|
||||||
"interval": 60,
|
|
||||||
"format": "{:%Y-%m-%d %H:%M}",
|
|
||||||
"tooltip-format": "<tt>{calendar}</tt>"
|
|
||||||
},
|
|
||||||
|
|
||||||
"cpu": {
|
|
||||||
"interval": 5,
|
|
||||||
"format": " {usage}%"
|
|
||||||
},
|
|
||||||
|
|
||||||
"memory": {
|
|
||||||
"interval": 10,
|
|
||||||
"format": " {used:0.1f}G / {total:0.1f}G"
|
|
||||||
},
|
|
||||||
|
|
||||||
"disk": {
|
|
||||||
"interval": 60,
|
|
||||||
"path": "/",
|
|
||||||
"format": " {used} / {total}"
|
|
||||||
},
|
|
||||||
|
|
||||||
"temperature": {
|
|
||||||
"interval": 10,
|
|
||||||
"critical-threshold": 80,
|
|
||||||
"format": " {temperatureC}°C",
|
|
||||||
"format-critical": " {temperatureC}°C"
|
|
||||||
},
|
|
||||||
|
|
||||||
"backlight": {
|
|
||||||
"format": " {percent}%",
|
|
||||||
"on-scroll-up": "brightnessctl set +5%",
|
|
||||||
"on-scroll-down": "brightnessctl set 5%-"
|
|
||||||
},
|
|
||||||
|
|
||||||
"network": {
|
|
||||||
"interval": 5,
|
|
||||||
"format-wifi": " {essid} {signalStrength}%",
|
|
||||||
"format-ethernet": " {ifname}",
|
|
||||||
"format-disconnected": " offline",
|
|
||||||
"tooltip-format": "{ifname} {ipaddr}"
|
|
||||||
},
|
|
||||||
|
|
||||||
"pulseaudio": {
|
|
||||||
"format": "{icon} {volume}%",
|
|
||||||
"format-muted": " muted",
|
|
||||||
"format-bluetooth": "{icon} {volume}% ",
|
|
||||||
"format-icons": { "default": ["", "", ""] },
|
|
||||||
"on-click": "swayosd-client --output-volume mute-toggle",
|
|
||||||
"on-click-right": "pavucontrol"
|
|
||||||
},
|
|
||||||
|
|
||||||
"battery": {
|
|
||||||
"bat": "BAT0",
|
|
||||||
"interval": 30,
|
|
||||||
"states": {
|
|
||||||
"warning": 30,
|
|
||||||
"critical": 15
|
|
||||||
},
|
|
||||||
"format": "{icon} {capacity}%",
|
|
||||||
"format-charging": " {capacity}%",
|
|
||||||
"format-full": " full",
|
|
||||||
"format-icons": ["", "", "", "", ""]
|
|
||||||
},
|
|
||||||
|
|
||||||
"tray": {
|
|
||||||
"icon-size": 16,
|
|
||||||
"spacing": 6
|
|
||||||
},
|
|
||||||
|
|
||||||
"custom/dnd": {
|
|
||||||
"exec": "dunstctl is-paused | grep -q true && echo '{\"text\":\"\",\"class\":\"paused\"}' || echo '{\"text\":\"\",\"class\":\"\"}'",
|
|
||||||
"return-type": "json",
|
|
||||||
"interval": 2,
|
|
||||||
"on-click": "dunstctl set-paused toggle",
|
|
||||||
"tooltip": false
|
|
||||||
},
|
|
||||||
|
|
||||||
"custom/power": {
|
|
||||||
"format": "⏻",
|
|
||||||
"tooltip": false,
|
|
||||||
"on-click": "~/.config/hypr/scripts/powermenu.sh"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
[ -r /etc/profile ] && . /etc/profile
|
|
||||||
[ -r "$HOME/.profile" ] && . "$HOME/.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;xcb'
|
|
||||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
|
||||||
export SDL_VIDEODRIVER=wayland
|
|
||||||
export GDK_BACKEND='wayland,x11'
|
|
||||||
|
|
||||||
export SSH_AUTH_SOCK="$HOME/.local/state/ssh-agent/socket"
|
|
||||||
|
|
||||||
# Per-host session environment (GPU / Wayland tuning, etc.)
|
|
||||||
[ -r "$HOME/.config/hypr/session-env" ] && . "$HOME/.config/hypr/session-env"
|
|
||||||
|
|
||||||
exec dbus-run-session sh -eu -c '
|
|
||||||
umask 077
|
|
||||||
printf "%s\n" "$DBUS_SESSION_BUS_ADDRESS" > "$HOME/.dbus-session-bus-address"
|
|
||||||
gpgconf --launch gpg-agent
|
|
||||||
"$HOME/.local/bin/update-turnstile-env"
|
|
||||||
exec /usr/bin/start-hyprland
|
|
||||||
'
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
$terminal = ~/.local/bin/prime-run /usr/bin/alacritty
|
|
||||||
|
|
||||||
# Prefer the integrated panel as primary, and place the docked display to its right.
|
|
||||||
monitor = eDP-1,1920x1080,0x0,1
|
|
||||||
monitor = DP-1,3440x1440@100,1920x0,1
|
|
||||||
monitor = DP-2,disable
|
|
||||||
monitor = HDMI-A-1,disable
|
|
||||||
monitor = HDMI-A-2,disable
|
|
||||||
|
|
||||||
workspace = 1, monitor:eDP-1
|
|
||||||
workspace = 2, monitor:DP-1
|
|
||||||
workspace = 3, monitor:DP-1
|
|
||||||
workspace = 4, monitor:DP-1
|
|
||||||
workspace = 5, monitor:DP-1
|
|
||||||
workspace = 6, monitor:DP-1
|
|
||||||
workspace = 7, monitor:DP-1
|
|
||||||
workspace = 8, monitor:DP-1
|
|
||||||
workspace = 9, monitor:DP-1
|
|
||||||
workspace = 10, monitor:DP-1
|
|
||||||
|
|
||||||
env = LIBVA_DRIVER_NAME,iHD
|
|
||||||
env = QT_QPA_PLATFORM,wayland;xcb
|
|
||||||
env = WLR_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1
|
|
||||||
env = WLR_NO_HARDWARE_CURSORS,1
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
export LIBVA_DRIVER_NAME=iHD
|
|
||||||
export QT_QPA_PLATFORM='wayland;xcb'
|
|
||||||
export WLR_DRM_DEVICES=/dev/dri/card0:/dev/dri/card1
|
|
||||||
export WLR_NO_HARDWARE_CURSORS=1
|
|
||||||
Reference in New Issue
Block a user