if [[ "$HOME" == */ ]]; then HOME=${HOME:0:-1}; fi

### XDG目录
export XDG_CONFIG_HOME=$HOME/.config
export XDG_CACHE_HOME=$HOME/.cache
export XDG_DATA_HOME=$HOME/.data
export XDG_STATE_HOME=$HOME/.state

### Flatpak安装的程序
# 由于修改了 $XDG_DATA_HOME 的位置，
# 并且 /etc/profile.d/flatpak.sh 和 /etc/profile.d/flatpak-bindir.sh
# 两个文件读取 $XDG_DATA_HOME 早于 ~/.zprofile 修改 $XDG_DATA_HOME，
# 所以这两个文件没有成功设置目录在修改后的 $XDG_DATA_HOME。
# 需要手动添加至 $XDG_DATA_DIRS 和 $PATH
FLATPAK_DATA_DIR="$XDG_DATA_HOME"/flatpak/exports/share
FLATPAK_BIN_DIR="$XDG_DATA_HOME"/flatpak/exports/bin
[[ -d "$FLATPAK_DATA_DIR" ]] && \
    XDG_DATA_DIRS="$FLATPAK_DATA_DIR":"$XDG_DATA_DIRS"
[[ -d "$FLATPAK_BIN_DIR" ]] && path=("$FLATPAK_BIN_DIR" $path)

### Flatpak中的Steam安装的程序
STEAM_DESKTOP=~/.var/app/com.valvesoftware.Steam/.local/share/
[[ -d "$STEAM_DESKTOP" ]] && \
    XDG_DATA_DIRS="$STEAM_DESKTOP":"$XDG_DATA_DIRS"
# 修复steam程序名
if [[ -f "$FLATPAK_BIN_DIR"/com.valvesoftware.Steam ]]; then
    [[ ! -f "$FLATPAK_BIN_DIR"/steam ]] && \
        ln -s com.valvesoftware.Steam "$FLATPAK_BIN_DIR"/steam
else
    [[ -f "$FLATPAK_BIN_DIR"/steam ]] && rm "$FLATPAK_BIN_DIR"/steam
fi

### 默认程序
export EDITOR=nvim
export BROWSER=firefox

### Zsh
export HISTFILE="$XDG_DATA_HOME"/zsh/history

### 终端
export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
export MANPAGER="nvim +Man!"

### GnuPG
export GNUPGHOME="$XDG_DATA_HOME"/gnupg

### Go
export GOPATH="$XDG_DATA_HOME"/go

### Javascript
export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc

### Python
export PYTHONSTARTUP="$XDG_CONFIG_HOME"/python/repl_startup.py
export PYTHONPYCACHEPREFIX="$XDG_CACHE_HOME"/python
export PYTHONUSERBASE="$XDG_DATA_HOME"/python
export IPYTHONDIR="$XDG_DATA_HOME"/ipython

### Rust
export CARGO_HOME="$XDG_DATA_HOME"/cargo
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup

### SQLite
export SQLITE_HISTORY="$XDG_DATA_HOME"/sqlite_history

# {{{ 图形环境
export XDG_MENU_PREFIX=plasma-

# 鼠标主题
export XCURSOR_PATH="$XDG_DATA_HOME"/icons:/usr/share/icons

### Qt
# 假装成kde
export QT_QPA_PLATFORMTHEME=kde

# 禁止Qt自动缩放。用xrdb手动设置DPI
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_ENABLE_HIGHDPI_SCALING=0

### GTK
# 配合xdg-desktop-portal-kde使用
export GTK_USE_PORTAL=1

### Fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export SDL_IM_MODULE=fcitx
# Kitty需要该变量
export GLFW_IM_MODULE=ibus
# }}}

# 同步所有环境变量到所有systemd将要启动的程序
command -v dbus-update-activation-environment &>/dev/null && \
    dbus-update-activation-environment --systemd --all 2>/dev/null

USE_WAYLAND=true
# NOTE: 直接在登录shell中自启桌面环境
if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
    if $USE_WAYLAND; then
        export QT_FONT_DPI=144
        export GDK_DPI_SCALE=1.5
    fi
    export LANG=zh_CN.UTF-8
    ## QTile尚不支持wayland输入法相关协议
    export GTK_IM_MODULE=fcitx

    command -v dbus-update-activation-environment &>/dev/null && \
        dbus-update-activation-environment --systemd --all 2>/dev/null

    if $USE_WAYLAND; then
        qtile start -b wayland
    else
        xinit qtile start
    fi
fi

# 只在桌面环境使用中文，tty保持英文
unset LANG

# vim:foldmethod=marker
