diff --git a/.config/X11/profile b/.config/X11/profile deleted file mode 100644 index beac2d6..0000000 --- a/.config/X11/profile +++ /dev/null @@ -1,11 +0,0 @@ -export LANG=zh_CN.UTF-8 - -( - sleep 2 - # swap Caps_Lock and Escape - setxkbmap -option caps:swapescape - # swap Ctrl_R and Alt_R - setxkbmap -option ctrl:rctrl_ralt - setxkbmap -option ctrl:ralt_rctrl - xbindkeys -f ${XDG_CONFIG_HOME}/xbindkeys/config -) & diff --git a/.config/X11/serverrc b/.config/X11/serverrc deleted file mode 100644 index 790c916..0000000 --- a/.config/X11/serverrc +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec /usr/bin/Xorg -nolisten tcp -nolisten local -keeptty "$@" vt$XDG_VTNR diff --git a/.config/X11/session b/.config/X11/session deleted file mode 100644 index e1f6c83..0000000 --- a/.config/X11/session +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -resources=${XDG_CONFIG_HOME}/X11/resources -if [ -f "$resources" ]; then xrdb -merge "$resources"; fi -if [ -d /etc/X11/xinit/xinitrc.d ] ; then - for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do - [ -x "$f" ] && source "$f" - done; unset f -fi - -source ${XDG_CONFIG_HOME}/X11/profile - -systemctl start --user Xorg.target - -if [[ -n "$@" ]]; then - xss-lock -- betterlockscreen -l & - exec "$@" -fi diff --git a/.config/environment.d/env.conf b/.config/environment.d/env.conf deleted file mode 100644 index f638dd1..0000000 --- a/.config/environment.d/env.conf +++ /dev/null @@ -1 +0,0 @@ -LANG=zh_CN.UTF-8 diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile deleted file mode 100644 index 1d6fc5d..0000000 --- a/.config/zsh/.zprofile +++ /dev/null @@ -1 +0,0 @@ -source ${ZDOTDIR}/zprofile diff --git a/.config/zsh/zprofile b/.config/zsh/zprofile deleted file mode 100644 index 686ed24..0000000 --- a/.config/zsh/zprofile +++ /dev/null @@ -1,4 +0,0 @@ -# Autostart X -if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then - xinit qtile start -b x11 -fi diff --git a/.pam_environment b/.pam_environment deleted file mode 100644 index d802336..0000000 --- a/.pam_environment +++ /dev/null @@ -1,64 +0,0 @@ -PATH DEFAULT=@{HOME}/.bin -EDITOR DEFAULT=nvim -BROWSER DEFAULT=firefox -MANPAGER DEFAULT="nvim --cmd 'let paging=1' +Man!" - -# QT -QT_QPA_PLATFORMTHEME DEFAULT=qt5ct -QT_AUTO_SCREEN_SCALE_FACTOR DEFAULT=0 - -# fcitx5 -GTK_IM_MODULE DEFAULT=fcitx -QT_IM_MODULE DEFAULT=fcitx -XMODIFIERS DEFAULT=\@im=fcitx -INPUT_METHOD DEFAULT=fcitx -SDL_IM_MODULE DEFAULT=fcitx -GLFW_IM_MODULE DEFAULT=ibus - -# XDG base directory -XDG_CONFIG_HOME DEFAULT=@{HOME}/.config -XDG_CACHE_HOME DEFAULT=@{HOME}/.cache -XDG_DATA_HOME DEFAULT=@{HOME}/.data -#gpg -GNUPGHOME DEFAULT=${XDG_DATA_HOME}/gnupg -# GTK2 -GTK2_RC_FILES DEFAULT=${XDG_CONFIG_HOME}/gtk-2.0/gtkrc -# readline -INPUTRC DEFAULT=${XDG_CONFIG_HOME}/readline/inputrc -# xorg-xauth -XAUTHORITY DEFAULT=${XDG_RUNTIME_DIR}/Xauthority -# X11 -XINITRC DEFAULT=${XDG_CONFIG_HOME}/X11/session -XSERVERRC DEFAULT=${XDG_CONFIG_HOME}/X11/serverrc -# less -LESSKEY DEFAULT=${XDG_CONFIG_HOME}/less/lesskey -LESSHISTFILE DEFAULT=${XDG_DATA_HOME}/less/history -# zsh -ZDOTDIR DEFAULT=${XDG_CONFIG_HOME}/zsh -HISTFILE DEFAULT=${XDG_DATA_HOME}/zsh/history -# openssl -RANDFILE DEFAULT=${XDG_DATA_HOME}/openssl/randfile -# sqlite -SQLITE_HISTORY DEFAULT=${XDG_DATA_HOME}/sqlite_history -# rust -CARGO_HOME DEFAULT=${XDG_DATA_HOME}/cargo -RUSTUP_HOME DEFAULT=${XDG_DATA_HOME}/rustup -# golang -GO111MODULE DEFAULT=on -GOPROXY DEFAULT=https://goproxy.cn,direct -GOCACHE DEFAULT=${XDG_CACHE_HOME}/go -GOMODCACHE DEFAULT=${XDG_DATA_HOME}/go -GOPATH DEFAULT=${XDG_DATA_HOME}/go -GOBIN DEFAULT=@{HOME}/.bin/go -# nvm -NVM_DIR DEFAULT=${XDG_DATA_HOME}/nvm -# node -NODE_REPL_HISTORY DEFAULT=${XDG_DATA_HOME}/node_repl_history -# npm -NPM_CONFIG_USERCONFIG DEFAULT=${XDG_CONFIG_HOME}/npm/npmrc -# python -PYTHONSTARTUP DEFAULT=${XDG_CONFIG_HOME}/python/repl_startup.py -PYTHONPYCACHEPREFIX DEFAULT=${XDG_CACHE_HOME}/python -PYTHONUSERBASE DEFAULT=${XDG_DATA_HOME}/python -IPYTHONDIR DEFAULT=${XDG_DATA_HOME}/ipython -JUPYTER_CONFIG_DIR DEFAULT=${XDG_CONFIG_HOME}/jupyter diff --git a/.xinitrc b/.xinitrc new file mode 100644 index 0000000..af18576 --- /dev/null +++ b/.xinitrc @@ -0,0 +1,24 @@ +#!/bin/sh + +# 加载其他软件包提供的配置 +if [ -d /etc/X11/xinit/xinitrc.d ] ; then + for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do + [ -x "$f" ] && source "$f" + done; unset f +fi + +# 加载Xresources +[ -f ~/.xresources ] && xrdb -merge ~/.xresources + +# 加载xprofile +[ -f ~/.xprofile ] && source ~/.xprofile + +if [[ -n "$@" ]]; then + # 启动锁屏程序 + xss-lock -- betterlockscreen -l & + + # 启动所有systemd管理的桌面程序 + systemctl start --user Xorg.target + + exec "$@" +fi diff --git a/.xprofile b/.xprofile new file mode 100644 index 0000000..ad893f0 --- /dev/null +++ b/.xprofile @@ -0,0 +1,26 @@ +#!/bin/sh + +export LANG=zh_CN.UTF-8 + +### Qt +export QT_QPA_PLATFORMTHEME=qt5ct +export QT_AUTO_SCREEN_SCALE_FACTOR=0 # 用xrdb手动设置DPI + +### Fcitx +export GTK_IM_MODULE=fcitx +export QT_IM_MODULE=fcitx +export XMODIFIERS=@im=fcitx +export SDL_IM_MODULE=fcitx +export GLFW_IM_MODULE=ibus + +# 同步环境变量到所有systemd将要启动的程序 +dbus-update-activation-environment --systemd --all + +( + sleep 2 + # 交换Caps_Lock和Escape + setxkbmap -option caps:swapescape + # 交换右Ctrl和右Alt + setxkbmap -option ctrl:rctrl_ralt + setxkbmap -option ctrl:ralt_rctrl +) & diff --git a/.xserverrc b/.xserverrc new file mode 100644 index 0000000..693458d --- /dev/null +++ b/.xserverrc @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/bin/Xorg -nolisten tcp -nolisten local "$@" vt$XDG_VTNR diff --git a/.zprofile b/.zprofile new file mode 100644 index 0000000..e4d2a33 --- /dev/null +++ b/.zprofile @@ -0,0 +1,44 @@ +typeset -U path PATH +path=($path ~/.bin) + +export XDG_CONFIG_HOME=~/.config +export XDG_CACHE_HOME=~/.cache +export XDG_DATA_HOME=~/.data +# export XDG_STATE_HOME=~/.state + +### Zsh +export ZDOTDIR="$XDG_CONFIG_HOME"/zsh +export HISTFILE="$XDG_DATA_HOME"/zsh/history + +### 终端 +export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc +export EDITOR=nvim +export MANPAGER="nvim +Man! --cmd 'let paging=1'" + +### GnuPG +export GNUPGHOME="$XDG_DATA_HOME"/gnupg + +### 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 + +# 同步环境变量到所有systemd将要启动的程序 +dbus-update-activation-environment --systemd --all + +# 自启X环境 +if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then + xinit qtile start +fi diff --git a/README.md b/README.md index c146b3a..f07fc2b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # Linux 配置 -使用 `pam_environment` 管理环境变量 +~~使用 `pam_environment` 管理环境变量 (被上游移除。溜了溜了)~~ +使用 `zprofile`(zsh) + `xprofile`(xinit) 管理环境变量, +调用 `dbus-update-activation-environment`同步到 systemd 使用 [kitty](https://sw.kovidgoyal.net/kitty/) 虚拟终端