Reorganize xsession and Xresources
- Add xsession. Instead of requiring each of my machines to setup their own ‘.xsession’ add one that should work for all of them. - Use M4 for the Xresources database. I didn’t want the X11 project to be aware of all the configuration files that could be added in there and I was able to figure out how to have it load all of the configuration files in the ‘Xresources.d’ directory. Now each configuration can inject properties into the X resources database. - Have ‘.xsession’ load all of the scripts in ‘.config/X11/Xsession.d’. Each configuration can now inject some script to run when X starts. - Have ‘.xsession’ load a machine-specific script so that each machine can override what it does when X starts.
This commit is contained in:
parent
81c8b04af6
commit
5bb0014265
14 changed files with 133 additions and 111 deletions
|
@ -12,6 +12,7 @@ clean: $(addsuffix -clean,$(MODULES))
|
|||
zsh:
|
||||
$(MAKE) -C $@
|
||||
|
||||
x11-install: lib-install
|
||||
%-install: %
|
||||
$(STOW) $<
|
||||
|
||||
|
|
6
fonts/.config/X11/Xresources.d/xft.conf
Normal file
6
fonts/.config/X11/Xresources.d/xft.conf
Normal file
|
@ -0,0 +1,6 @@
|
|||
Xft.autohint: 0
|
||||
Xft.lcdfilter: lcddefault
|
||||
Xft.hintstyle: hintslight
|
||||
Xft.hinting: 1
|
||||
Xft.antialias: 0
|
||||
Xft.rgba: rgb
|
23
lib/usr/lib/sh/loading.sh
Normal file
23
lib/usr/lib/sh/loading.sh
Normal file
|
@ -0,0 +1,23 @@
|
|||
load_machine_config() {
|
||||
directory="$1"
|
||||
path="${HOME}/${directory}/$(hostname).sh"
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
[ -x "$path" ] && . "$path"
|
||||
|
||||
unset directory
|
||||
unset path
|
||||
}
|
||||
|
||||
load_config_directory() {
|
||||
directory="$1"
|
||||
path="${HOME}/${directory}"
|
||||
|
||||
if [ -d "${path}" ]; then
|
||||
for f in "${path}/"?*.sh; do
|
||||
# shellcheck source=/dev/null
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
}
|
3
picom/.config/Xsession.d/picom.sh
Normal file
3
picom/.config/Xsession.d/picom.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
pgrep picom || picom --daemon
|
3
redshift/.config/Xsession.d/redshift-gtk.sh
Normal file
3
redshift/.config/Xsession.d/redshift-gtk.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
pgrep redshift-gtk || { redshift-gtk & }
|
38
rofi/.config/X11/Xresources.d/Rofi.conf
Normal file
38
rofi/.config/X11/Xresources.d/Rofi.conf
Normal file
|
@ -0,0 +1,38 @@
|
|||
dnl Rofi colors
|
||||
define(`Rofi_normal_bg', `bgdim')dnl
|
||||
define(`Rofi_normal_fg', `fgdefault')dnl
|
||||
define(`Rofi_normal_bgalt', `Rofi_normal_bg')dnl
|
||||
define(`Rofi_normal_hlbg', `bgblue')dnl
|
||||
define(`Rofi_normal_hlfg', `fgdefault')dnl
|
||||
define(`Rofi_urgent_bg', `bgdefault')dnl
|
||||
define(`Rofi_urgent_fg', `fgred')dnl
|
||||
define(`Rofi_urgent_bgalt', `Rofi_urgent_bg')dnl
|
||||
define(`Rofi_urgent_hlbg', `Rofi_normal_hlbg')dnl
|
||||
define(`Rofi_urgent_hlfg', `Rofi_urgent_fg')dnl
|
||||
define(`Rofi_active_bg', `bgdefault')dnl
|
||||
define(`Rofi_active_fg', `fgcyan')dnl
|
||||
define(`Rofi_active_bgalt', `Rofi_active_bg')dnl
|
||||
define(`Rofi_active_hlbg', `Rofi_normal_hlbg')dnl
|
||||
define(`Rofi_active_hlfg', `Rofi_active_fg')dnl
|
||||
define(`Rofi_window_bg', `Rofi_normal_bg')dnl
|
||||
define(`Rofi_window_border', `Rofi_normal_bg')dnl
|
||||
define(`Rofi_window_separator', `Rofi_normal_bg')dnl
|
||||
dnl
|
||||
! Use a nice font.
|
||||
rofi.font: Fantasque Sans Mono 15
|
||||
|
||||
! Add C-g to the keys used to cancel an action in Rofi. I am used to
|
||||
! this from Emacs and I always press it before I press ESC.
|
||||
rofi.kb-cancel: Escape,Control+bracketleft,Control+g
|
||||
|
||||
! Hide the scrollbar
|
||||
rofi.hide-scrollbar: true
|
||||
|
||||
! Show a thick border around Rofi
|
||||
rofi.bw: 15
|
||||
|
||||
! Theme
|
||||
rofi.color-normal: Rofi_normal_bg, Rofi_normal_fg, Rofi_normal_bgalt, Rofi_normal_hlbg, Rofi_normal_hlfg
|
||||
rofi.color-urgent: Rofi_urgent_bg, Rofi_urgent_fg, Rofi_urgent_bgalt, Rofi_urgent_hlbg, Rofi_urgent_hlfg
|
||||
rofi.color-active: Rofi_active_bg, Rofi_active_fg, Rofi_active_bgalt, Rofi_active_hlbg, Rofi_active_hlfg
|
||||
rofi.color-window: Rofi_window_bg, Rofi_window_border, Rofi_window_separator
|
|
@ -1,18 +0,0 @@
|
|||
! Use a nice font.
|
||||
rofi.font: Fantasque Sans Mono 15
|
||||
|
||||
! Add C-g to the keys used to cancel an action in Rofi. I am used to
|
||||
! this from Emacs and I always press it before I press ESC.
|
||||
rofi.kb-cancel: Escape,Control+bracketleft,Control+g
|
||||
|
||||
! Hide the scrollbar
|
||||
rofi.hide-scrollbar: true
|
||||
|
||||
! Show a thick border around Rofi
|
||||
rofi.bw: 15
|
||||
|
||||
! Theme
|
||||
rofi.color-normal: Rofi_normal_bg, Rofi_normal_fg, Rofi_normal_bgalt, Rofi_normal_hlbg, Rofi_normal_hlfg
|
||||
rofi.color-urgent: Rofi_urgent_bg, Rofi_urgent_fg, Rofi_urgent_bgalt, Rofi_urgent_hlbg, Rofi_urgent_hlfg
|
||||
rofi.color-active: Rofi_active_bg, Rofi_active_fg, Rofi_active_bgalt, Rofi_active_hlbg, Rofi_active_hlfg
|
||||
rofi.color-window: Rofi_window_bg, Rofi_window_border, Rofi_window_separator
|
|
@ -1,4 +0,0 @@
|
|||
#include ".config/Xresources/theme.conf"
|
||||
#include ".config/Xresources/Xcursor.conf"
|
||||
#include ".config/Xresources/Rofi.conf"
|
||||
#include ".config/Xresources/URxvt.conf"
|
35
x11/.config/X11/Xresources
Normal file
35
x11/.config/X11/Xresources
Normal file
|
@ -0,0 +1,35 @@
|
|||
define(`prefix', `$HOME/.config/X11/Xresources.d/')dnl
|
||||
define(`resources', `esyscmd(`ls -m ' prefix ` | tr -d \\n')')dnl
|
||||
define(`includeall', `ifelse($1, `', `', `include($1)includeall(shift($@))')')dnl
|
||||
dnl
|
||||
dnl Background colors
|
||||
define(`bgdefault', `#111414')dnl
|
||||
define(`bgbright', `#3d3d3d')dnl
|
||||
define(`bgdim', `#222222')dnl
|
||||
define(`bgred', `#3f1a1a')dnl
|
||||
define(`bgorange', `#3f321f')dnl
|
||||
define(`bgyellow', `#343922')dnl
|
||||
define(`bggreen', `#263f1f')dnl
|
||||
define(`bgturquoise', `#1f3f2c')dnl
|
||||
define(`bgcyan', `#1f3f3f')dnl
|
||||
define(`bgblue', `#1f2c3f')dnl
|
||||
define(`bgpurple', `#2f2a3f')dnl
|
||||
define(`bgmagenta', `#381f3f')dnl
|
||||
define(`bgpink', `#3f1f32')dnl
|
||||
dnl
|
||||
dnl Foreground colors
|
||||
define(`fgdefault', `#bfbfbf')dnl
|
||||
define(`fgbright', `#ededed')dnl
|
||||
define(`fgdim', `#969696')dnl
|
||||
define(`fgred', `#a85454')dnl
|
||||
define(`fgorange', `#a88654')dnl
|
||||
define(`fgyellow', `#8d995c')dnl
|
||||
define(`fggreen', `#65a854')dnl
|
||||
define(`fgturquoise', `#54a875')dnl
|
||||
define(`fgcyan', `#54a8a8')dnl
|
||||
define(`fgblue', `#5476a8')dnl
|
||||
define(`fgpurple', `#7d71a8')dnl
|
||||
define(`fgmagenta', `#9754a8')dnl
|
||||
define(`fgpink', `#a85487')dnl
|
||||
dnl
|
||||
includeall(resources)
|
4
x11/.config/X11/machines/drd.sh
Normal file
4
x11/.config/X11/machines/drd.sh
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
xrandr --output HDMI-0 --auto --primary \
|
||||
--output DVI-I-1 --auto --right-of HDMI-0 --rotate left
|
|
@ -1,89 +0,0 @@
|
|||
!! Background colors
|
||||
#define bgdefault #111414
|
||||
#define bgbright #3d3d3d
|
||||
#define bgdim #222222
|
||||
#define bgred #3f1a1a
|
||||
#define bgorange #3f321f
|
||||
#define bgyellow #343922
|
||||
#define bggreen #263f1f
|
||||
#define bgturquoise #1f3f2c
|
||||
#define bgcyan #1f3f3f
|
||||
#define bgblue #1f2c3f
|
||||
#define bgpurple #2f2a3f
|
||||
#define bgmagenta #381f3f
|
||||
#define bgpink #3f1f32
|
||||
|
||||
!! Foreground colors
|
||||
#define fgdefault #bfbfbf
|
||||
#define fgbright #ededed
|
||||
#define fgdim #969696
|
||||
#define fgred #a85454
|
||||
#define fgorange #a88654
|
||||
#define fgyellow #8d995c
|
||||
#define fggreen #65a854
|
||||
#define fgturquoise #54a875
|
||||
#define fgcyan #54a8a8
|
||||
#define fgblue #5476a8
|
||||
#define fgpurple #7d71a8
|
||||
#define fgmagenta #9754a8
|
||||
#define fgpink #a85487
|
||||
|
||||
!! URxvt colors
|
||||
#define URxvt_background bgdefault
|
||||
#define URxvt_foreground fgdefault
|
||||
#define URXvt_cursorColor fgblue
|
||||
! BG Black
|
||||
#define URxvt_color0 bgdim
|
||||
! BG Red
|
||||
#define URxvt_color1 fgred
|
||||
! BG Green
|
||||
#define URxvt_color2 fggreen
|
||||
! BG Yellow
|
||||
#define URxvt_color3 fgyellow
|
||||
! BG Blue
|
||||
#define URxvt_color4 fgblue
|
||||
! BG Magenta
|
||||
#define URxvt_color5 fgmagenta
|
||||
! BG Cyan
|
||||
#define URxvt_color6 fgcyan
|
||||
! BG White
|
||||
#define URxvt_color7 fgdim
|
||||
! FG Black
|
||||
#define URxvt_color8 bgbright
|
||||
! FG Red
|
||||
#define URxvt_color9 #da9d9d
|
||||
! FG Green
|
||||
#define URxvt_color10 #a9d39e
|
||||
! FG Yellow
|
||||
#define URxvt_color11 #c2ca9e
|
||||
! FG Blue
|
||||
#define URxvt_color12 #a2b8d8
|
||||
! FG Magenta
|
||||
#define URxvt_color13 #d0a8da
|
||||
! FG Cyan
|
||||
#define URxvt_color14 #abdddd
|
||||
! FG White
|
||||
#define URxvt_color15 fgbright
|
||||
! Selection highlight
|
||||
#define URxvt_highlightColor bgblue
|
||||
#define URxvt_highlightTextColor fgdefault
|
||||
|
||||
!! Rofi colors
|
||||
#define Rofi_normal_bg bgdim
|
||||
#define Rofi_normal_fg fgdefault
|
||||
#define Rofi_normal_bgalt Rofi_normal_bg
|
||||
#define Rofi_normal_hlbg bgblue
|
||||
#define Rofi_normal_hlfg fgdefault
|
||||
#define Rofi_urgent_bg bgdefault
|
||||
#define Rofi_urgent_fg fgred
|
||||
#define Rofi_urgent_bgalt Rofi_urgent_bg
|
||||
#define Rofi_urgent_hlbg Rofi_normal_hlbg
|
||||
#define Rofi_urgent_hlfg Rofi_urgent_fg
|
||||
#define Rofi_active_bg bgdefault
|
||||
#define Rofi_active_fg fgcyan
|
||||
#define Rofi_active_bgalt Rofi_active_bg
|
||||
#define Rofi_active_hlbg Rofi_normal_hlbg
|
||||
#define Rofi_active_hlfg Rofi_active_fg
|
||||
#define Rofi_window_bg Rofi_normal_bg
|
||||
#define Rofi_window_border Rofi_normal_bg
|
||||
#define Rofi_window_separator Rofi_normal_bg
|
20
x11/.xsession
Executable file
20
x11/.xsession
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# shellcheck source=../lib/usr/lib/sh/loading.sh
|
||||
. ~/usr/lib/sh/loading.sh
|
||||
|
||||
xrdb -cpp m4 -merge "${HOME}/.config/X11/Xresources" \
|
||||
-I"${HOME}/.config/X11/Xresources.d"
|
||||
|
||||
load_machine_config ".config/X11/machines"
|
||||
load_config_directory ".config/X11/Xsession.d"
|
||||
|
||||
command -v kdeconnect-indicator \
|
||||
&& (pgrep kdeconnect-indicator \
|
||||
|| { kdeconnect-indicator & })
|
||||
|
||||
command -v syncthing-gtk \
|
||||
&& (pgrep syncthing-gtk \
|
||||
|| { syncthing-gtk & })
|
||||
|
||||
command -v unclutter && (pgrep unclutter || unclutter --fork)
|
Loading…
Reference in a new issue