summaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/zsh
diff options
context:
space:
mode:
Diffstat (limited to 'dot_config/zsh')
-rw-r--r--dot_config/zsh/dot_zprofile12
-rw-r--r--dot_config/zsh/dot_zshrc14
2 files changed, 15 insertions, 11 deletions
diff --git a/dot_config/zsh/dot_zprofile b/dot_config/zsh/dot_zprofile
index a2f5c8b..ab6badb 100644
--- a/dot_config/zsh/dot_zprofile
+++ b/dot_config/zsh/dot_zprofile
@@ -4,6 +4,8 @@
# Guard against double-sourcing (e.g. nested login shells)
[[ -n $__ZPROFILE_SOURCED ]] && return
__ZPROFILE_SOURCED=1
+_dotfiles_role=host
+[[ -r "$HOME/.config/dotfiles/role" ]] && _dotfiles_role=$(<"$HOME/.config/dotfiles/role")
# ── PATH ──────────────────────────────────────────────────────────────────────
typeset -U path # deduplicate PATH entries
@@ -104,13 +106,15 @@ export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswi
export _JAVA_AWT_WM_NONREPARENTING=1
# ── Miscellaneous ─────────────────────────────────────────────────────────────
-export QT_QPA_PLATFORMTHEME=qt6ct
-export NO_AT_BRIDGE=1 # suppress GTK accessibility bus warnings
+if [[ $_dotfiles_role == host ]]; then
+ export QT_QPA_PLATFORMTHEME=qt6ct
+ export NO_AT_BRIDGE=1
+fi
export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/podman/podman.sock"
export INPUTRC="$XDG_CONFIG_HOME/sh/inputrc"
# ── Wayland ───────────────────────────────────────────────────────────────────
-export XDG_CURRENT_DESKTOP=sway
+[[ $_dotfiles_role == host ]] && export XDG_CURRENT_DESKTOP=sway
# Prefer Wayland for Qt; fall back to xcb for apps without qt{5,6}-wayland.
export QT_QPA_PLATFORM="wayland;xcb"
# SDL2 defaults to X11; force Wayland with X11 fallback. SDL3 ignores this.
@@ -142,7 +146,7 @@ case $(uname -n) in
esac
# ── Auto-start sway on VT1 ────────────────────────────────────────────────────
-if [[ -z $WAYLAND_DISPLAY && $XDG_VTNR == 1 ]]; then
+if [[ $_dotfiles_role == host && -z $WAYLAND_DISPLAY && $XDG_VTNR == 1 ]]; then
export XDG_SESSION_TYPE=wayland
exec sway
fi
diff --git a/dot_config/zsh/dot_zshrc b/dot_config/zsh/dot_zshrc
index 8371c15..dc92c3c 100644
--- a/dot_config/zsh/dot_zshrc
+++ b/dot_config/zsh/dot_zshrc
@@ -385,8 +385,10 @@ za() {
# (e.g. attached over SSH, then reattached locally, or vice versa).
reload-env() {
local pid
- pid=$(pgrep -u "$UID" -x sway | head -1) || {
- echo "reload-env: no sway process found for $USER" >&2
+ local compositor=sway
+ [[ $(<"$HOME/.config/dotfiles/role") == canonical ]] && compositor=gnome-shell
+ pid=$(pgrep -u "$UID" -x "$compositor" | head -1) || {
+ echo "reload-env: no $compositor process found for $USER" >&2
return 1
}
local kv
@@ -409,11 +411,9 @@ alias rj='just --justfile ~/.local/share/dotfiles/nix/justfile --working-directo
# Home-Manager (flake-based; standalone HM defaults to legacy ~/.config/home-manager)
hm() {
- local profile=host
- [ -r /etc/os-release ] && . /etc/os-release
- case "${ID:-}" in
- ubuntu|debian) profile=vm ;;
- esac
+ local profile
+ profile=$(chezmoi data | jq -er '.machineRole') || return
+ case $profile in host|vm|canonical) ;; *) return 1 ;; esac
local flake="$HOME/dotfiles/nix#${profile}"
[ -d "$HOME/.local/share/dotfiles/nix" ] && flake="$HOME/.local/share/dotfiles/nix#${profile}"
nix run home-manager/master -- "$@" --flake "$flake" --impure