X11 Configuration Files
Table of Contents
About
Xprofile
.xprofile
1: # ~/.xprofile 2: # user X session startup file. 3: # <alexforsale@yahoo.com> 4: 5: if [ -d "${HOME}/.config/xprofile.d" ]; then 6: for xfiles in "${HOME}"/.config/xprofile.d/*.sh; do 7: # shellcheck disable=1090 8: . "${xfiles}" 9: done 10: unset xfiles 11: fi 12: 13: # shellcheck disable=1091 14: [ -f "${XDG_CONFIG_HOME}"/xprofile.local ] && . "${XDG_CONFIG_HOME}"/xprofile.local 15: # shellcheck disable=1091 16: [ -f "${HOME}"/.xprofile.local ] && . "${HOME}"/.xprofile.local
- Modules
- 00-security.sh
1: # various ui-related security settings 2: # <alexforsale@yahoo.com> 3: 4: if [ "$(command -v gnome-keyring-daemon)" ] && 5: [ ! $(pgrep -u ${USER} -x gnome-keyring-d) ];then 6: eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)" >/dev/null 2>&1 7: export SSH_AUTH_SOCK GNOME_KEYRING_CONTROL 8: fi 9: case "${DISTRO}" in 10: gentoo) 11: [ -f /usr/bin/x11-ssh-askpass ] && 12: export SSH_ASKPASS=/usr/bin/x11-ssh-askpass && 13: export SUDO_ASKPASS=/usr/bin/x11-ssh-askpass 14: 15: # polkit 16: if [ ! "$(pgrep -f -u ${USER} -x polkit-kde-authentication-agent-1)" ];then 17: sleep 1 && /usr/libexec/polkit-kde-authentication-agent-1 & 18: fi 19: ;; 20: arch) 21: if [ -f /usr/lib/ssh/x11-ssh-askpass ];then 22: [ ! -L ~/.local/bin/ssh-askpass ] && 23: ln -sf /usr/lib/ssh/x11-ssh-askpass ~/.local/bin/ssh-askpass 24: export SSH_ASKPASS=ssh-askpass 25: export SUDO_ASKPASS="${HOME}"/.local/bin/ssh-askpass 26: fi 27: # polkit 28: if [ ! "$(pgrep -f -u ${USER} -x polkit-kde-authentication-agent-1)" ];then 29: sleep 1 && /usr/lib/polkit-kde-authentication-agent-1 & 30: fi 31: 32: # keyring 33: [ "$(command -v dbus-update-activation-environment)" ] && 34: dbus-update-activation-environment --systemd DISPLAY 35: ;; 36: freebsd) 37: [ -f /usr/local/bin/x11-ssh-askpass ] && 38: export SSH_ASKPASS=/usr/local/bin/x11-ssh-askpass && 39: export SUDO_ASKPASS=/usr/local/bin/x11-ssh-askpass 40: 41: # polkit 42: if [ ! "$(pgrep -f -u ${USER} -x polkit-kde-authentication-agent-1)" ];then 43: sleep 1 && /usr/local/libexec/polkit-kde-authentication-agent-1 & 44: fi 45: 46: # keyring 47: [ "$(command -v dbus-update-activation-environment)" ] && 48: dbus-update-activation-environment DISPLAY 49: ;; 50: esac
- 01-gtk-path.sh
1: # ~/.config/xprofile.d/01-gtk-path.sh 2: # set new location for GTK and GTK2 3: # https://wiki.archlinux.org/title/XDG_Base_Directory 4: # <alexforsale@yahoo.com> 5: 6: export GTK_RC_FILES="${XDG_CONFIG_HOME}"/gtk-1.0/gtkrc 7: [ -d "${GTK_RC_FILES%%/gtkrc}" ] && mkdir -p "${GTK_RC_FILES%%/gtkrc}" 8: export GTK2_RC_FILES="${XDG_CONFIG_HOME}"/gtk-2.0/gtkrc 9: [ -d "${GTK2_RC_FILES%%/gtkrc}" ] && mkdir -p "${GTK2_RC_FILES%%/gtkrc}" 10: 11: [ -z "${GTK_THEME}" ] && export GTK_THEME=Breeze-Dark
- 02-notification.sh
1: # ~/.config/xprofile.d/02-notification.sh 2: # notification settings 3: # <alexforsale@yahoo.com> 4: 5: # dunst 6: if [ "$(command -v dunst)" ];then 7: case "${DISTRO}" in 8: arch) 9: if [ ! $(pgrep -u ${USER} dunst) ] && 10: [ -e ${XDG_CONFIG_HOME}/dunst/dunstrc ]; then 11: dbus-launch --sh-syntax --exit-with-session dunst -conf ${XDG_CONFIG_HOME}/dunst/dunstrc & 12: fi 13: ;; 14: esac 15: fi
- 03-sxhkd.sh
1: # ~/.config/xprofile.d/03-sxhkd.sh 2: # sxhkd settings 3: # <alexforsale@yahoo.com> 4: 5: if [ -z "${_NO_SXHKD}" ] && [ ! $(pgrep -u ${USER} -x sxhkd) ] && 6: [ $(command -v sxhkd) ]; then 7: if [ -e "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc.local ];then # per-user configuration 8: sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc.local & 9: elif [ -e "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc-"${DISTRO}" ];then # per-distro configuration, i.e. sxhkdrc-arch 10: sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc-"${DISTRO}" & 11: else 12: sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc & 13: fi 14: fi
- 04-bluetooth.sh
1: # ~/.config/xprofile.d/04-bluetooth.sh 2: # bluetooth configuration 3: 4: # blueman-tray 5: if [ "$(command -v blueman-applet)" ] && 6: [ ! $(pgrep -u ${USER} -x blueman-applet) ] && 7: [ -z "${_NO_BLUEMAN_APPLET}" ]; then 8: blueman-tray & 9: fi
- 05-network.sh
1: # ~/.config/xprofile.d/05-network.sh 2: # various networking app
- 06-ui.sh
1: # ~/.config/xprofile.d/06-ui.sh 2: # various ui settings 3: # monitor 4: _count=0 5: for i in $(xrandr | grep " connected"| awk '{print $1}');do 6: _count=$((_count+1)) 7: export MONITOR${_count}=${i} 8: done 9: unset _count 10: 11: if [[ -z "${XCURSOR_THEME}" ]]; then 12: export XCURSOR_THEME="Bibata-Modern-Classic" 13: fi 14: 15: if [[ -z "${XCURSOR_SIZE}" ]]; then 16: export XCURSOR_SIZE=24 17: fi 18: 19: if [[ -z "${XCURSOR_PATH}" ]]; then 20: export XCURSOR_PATH=${XCURSOR_PATH}:/usr/share/icons:~/.local/share/icons 21: fi 22: 23: # if [[ -x "${HOME}/.local/bin/monitor-setup" ]]; then 24: # "${HOME}/.local/bin/monitor-setup" 25: # fi 26: 27: if [[ -x "${HOME}/.fehbg" ]]; then 28: "${HOME}/.fehbg" 29: fi
- 07-filemanager.sh
1: # ~/.config/xprofile.d/07-filemanager.sh 2: # file manager configuration 3: 4: [ "$(command -v udiskie)" ] && 5: udiskie & 6: 7: [ "${_WM}" = "i3" ] && 8: export _NO_PCMANFM=1 9: 10: # pcmanfm 11: if [ $(command -v pcmanfm) ] && 12: [ -z ${_NO_PCMANFM} ]; then 13: pcmanfm --desktop -d & 14: fi
- 08-multimedia.sh
1: # ~/.config/xprofile.d/08-multimedia.sh 2: # various multimedia app 3: 4: # mpd 5: if [ $(command -v mpd) ] && [ ! $(pgrep -u ${USER} mpd) ];then 6: [ ! -e "${XDG_CONFIG_HOME}"/mpd/pid ] && mpd "${mpd_conf_file}" & 7: fi
- 09-x0vnc.sh
# ~/.config/xprofile.d/09-x0vnc.sh # x0vnc case "${HOSTNAME}" in "tanzania") x0vncserver -rfbauth ~/.vnc/passwd -UseIPv6 -rfbport 5912 & ;; esac
- 99-ddgr.sh
# ~/.config/xprofile.d/99-ddgr.sh # duckduckgo rofi if [ $(command -v ddgr) ] && [ $(command -v rofi-search) ]; then export ROFI_SEARCH=ddgr fi
- 00-security.sh
Xinit
.xinitrc
1: # ~/.xinitrc 2: # Configuration script for manual X session. 3: # <alexforsale@yahoo.com> 4: userresources=${HOME}/.Xresources 5: usermodmap=${HOME}/.Xmodmap 6: OS=$(uname -s) 7: 8: case "${OS}" in 9: "Linux") 10: if [ "${DISTRO}" = "ubuntu" ]; then 11: sysresources=/etc/X11/xinit/Xresources 12: sysmodmap=/etc/X11/xinit/Xmodmap 13: else 14: sysresources=/etc/X11/xinit/.Xresources 15: sysmodmap=/etc/X11/xinit/.Xmodmap 16: fi 17: ;; 18: "FreeBSD") 19: sysresources=/usr/local/etc/X11/xinit/.Xresources 20: sysmodmap=/usr/local/etc/X11/xinit/.Xmodmap 21: ;; 22: esac 23: [ -f "${sysresources}" ] && 24: xrdb -merge "${sysresources}" 25: 26: [ -f "${sysmodmap}" ] && 27: xmodmap "${sysmodmap}" 28: 29: [ -f "${userresources}" ] && 30: xrdb -merge "${userresources}" 31: 32: [ -f "${usermodmap}" ] && 33: xmodmap "${usermodmap}" 34: # shellcheck disable=1090 35: if [ -d /etc/X11/xinit/xinitrc.d ] ; then 36: for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do 37: [ -x "${f}" ] && . "${f}" 38: done 39: unset f 40: fi 41: [ -f /etc/xprofile ] && . /etc/xprofile 42: [ -f "${HOME}"/.xprofile ] && . "${HOME}"/.xprofile 43: [ -z ${DESKTOP_SESSION} ] && export DESKTOP_SESSION=${1:-exwm} 44: # for archlinux 45: [ -d /usr/share/backgrounds/archlinux/ ] && 46: feh -zr --bg-fill /usr/share/backgrounds/archlinux/ 47: # FreeBSD 48: [ -d /usr/local/share/wallpapers/freebsd-8k-wallpapers/ ] && 49: feh -zr --bg-fill /usr/local/share/wallpapers/freebsd-8k-wallpapers/ 50: for chemacs_profile in ~/.emacs-profile ~/.config/chemacs/profile; do 51: if [ -e ${chemacs_profile} ]; then 52: export CHEMACS_PROFILE=`cat ${chemacs_profile}` 53: fi 54: done 55: 56: if [ -n "${CHEMACS_PROFILE}" ]; then 57: _emacs_args="-s ${CHEMACS_PROFILE}" 58: fi 59: case $DESKTOP_SESSION in 60: "exwm") 61: exec emacs --debug-init -l ~/.exwm 62: ;; 63: "qtile") 64: exec qtile start 65: ;; 66: "stumpwm") 67: if [ $(command -v ros) ]; then 68: exec ros run -- --load /usr/local/bin/startstumpwm 69: elif [ $(command -v sbcl) ]; then 70: exec sbcl --load /usr/local/bin/startstumpwm 71: fi 72: ;; 73: "i3") 74: exec i3 75: ;; 76: esac
Xresources
.Xresouces
1: #include ".config/Xresources.d/xterm" 2: #include ".config/Xresources.d/URxvt" 3: #include ".config/Xresources.d/x11-ssh-askpass" 4: #include ".config/Xresources.d/xcalc" 5: #include ".config/Xresources.d/xclock" 6: #include ".config/Xresources.d/xscreensaver" 7: #include ".config/Xresources.d/colors" 8: 9: ! cursor theme 10: Xcursor.theme: Bibata-Modern-Classic 11: Xcursor.size: 24 12: Xft.autohint: 0 13: Xft.lcdfilter: lcddefault 14: Xft.hintstyle: hintslight 15: Xft.hinting: 1 16: Xft.antialias: 1 17: Xft.rgba: rgb 18: Xft.dpi: 96
Modules
xterm
1: xterm*termName: xterm-256color 2: xterm.vt100.geometry: 80x24 3: xterm*saveLines: 4096 4: xterm*scrollBar: False 5: xterm*.LoginShell: True 6: xterm*rightScrollBar: False 7: xterm*scrollTtyOutput: False 8: xterm.selectToClipboard: true 9: xterm.*backarrowKey: false 10: xterm*translations: #override \ 11: Ctrl Shift <KeyPress> C: copy-selection(CLIPBOARD) \n\ 12: Ctrl Shift <KeyPress> V: insert-selection(CLIPBOARD) \n\ 13: Ctrl <Btn1Up>: exec-formatted("xdg-open '%t'", PRIMARY) \n\ 14: ~Meta Shift<Key>Tab: string(\033[Z) \n\ 15: Meta Shift<Key>Tab: string(\033\033[Z) \n\ 16: Ctrl <Key> minus: smaller-vt-font() \n\ 17: Ctrl <Key> plus: larger-vt-font() \n\ 18: Ctrl <Key> 0: set-vt-font(d) 19: xterm*eightBitInput: false 20: xterm*metaSendsEscape: true 21: xterm*charClass: 33:48,37-38:48,45-47:48,64:48,58:48,126:48,61:48,63:48,43:48,35:48 22: xterm*renderFont: true 23: xterm*faceName: OverpassM Nerd Font Mono 24: xterm*faceSize: 12
URxvt
1: xterm*termName: xterm-256color 2: xterm.vt100.geometry: 80x24 3: xterm*saveLines: 4096 4: xterm*scrollBar: False 5: xterm*.LoginShell: True 6: xterm*rightScrollBar: False 7: xterm*scrollTtyOutput: False 8: xterm.selectToClipboard: true 9: xterm.*backarrowKey: false 10: xterm*translations: #override \ 11: Ctrl Shift <KeyPress> C: copy-selection(CLIPBOARD) \n\ 12: Ctrl Shift <KeyPress> V: insert-selection(CLIPBOARD) \n\ 13: Ctrl <Btn1Up>: exec-formatted("xdg-open '%t'", PRIMARY) \n\ 14: ~Meta Shift<Key>Tab: string(\033[Z) \n\ 15: Meta Shift<Key>Tab: string(\033\033[Z) \n\ 16: Ctrl <Key> minus: smaller-vt-font() \n\ 17: Ctrl <Key> plus: larger-vt-font() \n\ 18: Ctrl <Key> 0: set-vt-font(d) 19: xterm*eightBitInput: false 20: xterm*metaSendsEscape: true 21: xterm*charClass: 33:48,37-38:48,45-47:48,64:48,58:48,126:48,61:48,63:48,43:48,35:48 22: xterm*renderFont: true 23: xterm*faceName: OverpassM Nerd Font Mono 24: xterm*faceSize: 12
x11-ssh-askpass
1: ! -*- eval (rainbow-mode 1) -*- 2: x11-ssh-askpass*background: #000000 3: x11-ssh-askpass*foreground: #ffffff 4: x11-ssh-askpass.Button*background: #000000 5: x11-ssh-askpass.Indicator*foreground: #ff9900 6: x11-ssh-askpass.Indicator*background: #090909 7: x11-ssh-askpass*topShadowColor: #000000 8: x11-ssh-askpass*bottomShadowColor: #000000 9: x11-ssh-askpass.*borderWidth: 1
xcalc
1: ! -*- eval (rainbow-mode 1) -*- 2: xcalc*geometry: 200x275 3: xcalc.ti.bevel.background: #111111 4: xcalc.ti.bevel.screen.background: #000000 5: xcalc.ti.bevel.screen.DEG.background: #000000 6: xcalc.ti.bevel.screen.DEG.foreground: LightSeaGreen 7: xcalc.ti.bevel.screen.GRAD.background: #000000 8: xcalc.ti.bevel.screen.GRAD.foreground: LightSeaGreen 9: xcalc.ti.bevel.screen.RAD.background: #000000 10: xcalc.ti.bevel.screen.RAD.foreground: LightSeaGreen 11: xcalc.ti.bevel.screen.INV.background: #000000 12: xcalc.ti.bevel.screen.INV.foreground: Red 13: xcalc.ti.bevel.screen.LCD.background: #000000 14: xcalc.ti.bevel.screen.LCD.foreground: LightSeaGreen 15: xcalc.ti.bevel.screen.LCD.shadowWidth: 0 16: xcalc.ti.bevel.screen.M.background: #000000 17: xcalc.ti.bevel.screen.M.foreground: LightSeaGreen 18: xcalc.ti.bevel.screen.P.background: #000000 19: xcalc.ti.bevel.screen.P.foreground: Yellow 20: xcalc.ti.Command.foreground: White 21: xcalc.ti.Command.background: #777777 22: xcalc.ti.button5.background: Orange3 23: xcalc.ti.button19.background: #611161 24: xcalc.ti.button18.background: #611161 25: xcalc.ti.button20.background: #611111 26: xcalc.ti.button25.background: #722222 27: xcalc.ti.button30.background: #833333 28: xcalc.ti.button35.background: #944444 29: xcalc.ti.button40.background: #a55555 30: xcalc.ti.button22.background: #222262 31: xcalc.ti.button23.background: #222262 32: xcalc.ti.button24.background: #222272 33: xcalc.ti.button27.background: #333373 34: xcalc.ti.button28.background: #333373 35: xcalc.ti.button29.background: #333373 36: xcalc.ti.button32.background: #444484 37: xcalc.ti.button33.background: #444484 38: xcalc.ti.button34.background: #444484 39: xcalc.ti.button37.background: #555595 40: xcalc.ti.button38.background: #555595 41: xcalc.ti.button39.background: #555595 42: XCalc*Cursor: hand2 43: XCalc*ShapeStyle: rectangle
xclock
1: xclock*update: 1 2: xclock*analog: false 3: xclock*Foreground: white 4: xclock*background: black
xscreensaver
1: xscreensaver.Dialog.headingFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* 2: xscreensaver.Dialog.bodyFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* 3: xscreensaver.Dialog.labelFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* 4: xscreensaver.Dialog.unameFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* 5: xscreensaver.Dialog.buttonFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* 6: xscreensaver.Dialog.dateFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* 7: xscreensaver.passwd.passwdFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* 8: xscreensaver.Dialog.foreground: #ffffff 9: xscreensaver.Dialog.background: #111111 10: xscreensaver.Dialog.topShadowColor: #111111 11: xscreensaver.Dialog.bottomShadowColor: #111111 12: xscreensaver.Dialog.Button.foreground: #666666 13: xscreensaver.Dialog.Button.background: #ffffff 14: !username/password input box and date text colour 15: xscreensaver.Dialog.text.foreground: #666666 16: xscreensaver.Dialog.text.background: #ffffff 17: xscreensaver.Dialog.internalBorderWidth:24 18: xscreensaver.Dialog.borderWidth: 20 19: xscreensaver.Dialog.shadowThickness: 2 20: xscreensaver.passwd.thermometer.foreground: #ff0000 21: xscreensaver.passwd.thermometer.background: #000000 22: xscreensaver.passwd.thermometer.width: 8 23: xscreensaver.dateFormat: %I:%M%P %a %b %d, %Y
colors
1: ! -*- eval (rainbow-mode 1) -*- 2: ! X colors. 3: ! Generated by 'wal' 4: *foreground: #fdf6e3 5: *background: #292d3e 6: *.foreground: #fdf6e3 7: *.background: #292d3e 8: emacs*foreground: #fdf6e3 9: emacs*background: #073642 10: URxvt*foreground: #fdf6e3 11: XTerm*foreground: #fdf6e3 12: UXTerm*foreground: #fdf6e3 13: URxvt*background: [100]#073642 14: XTerm*background: #073642 15: UXTerm*background: #073642 16: URxvt*cursorColor: #dc322f 17: XTerm*cursorColor: #dc322f 18: UXTerm*cursorColor: #dc322f 19: URxvt*borderColor: [100]#073642 20: 21: ! Colors 0-15. 22: *.color0: #073642 23: *color0: #073642 24: *.color1: #dc322f 25: *color1: #dc322f 26: *.color2: #859900 27: *color2: #859900 28: *.color3: #b58900 29: *color3: #b58900 30: *.color4: #268bd2 31: *color4: #268bd2 32: *.color5: #d33682 33: *color5: #d33682 34: *.color6: #2aa198 35: *color6: #2aa198 36: *.color7: #eee8d5 37: *color7: #eee8d5 38: *.color8: #6c7c80 39: *color8: #6c7c80 40: *.color9: #dc322f 41: *color9: #dc322f 42: *.color10: #859900 43: *color10: #859900 44: *.color11: #b58900 45: *color11: #b58900 46: *.color12: #268bd2 47: *color12: #268bd2 48: *.color13: #d33682 49: *color13: #d33682 50: *.color14: #2aa198 51: *color14: #2aa198 52: *.color15: #eee8d5 53: *color15: #eee8d5 54: 55: ! Black color that will not be affected by bold highlighting. 56: *.color66: #073642 57: *color66: #073642 58: 59: ! Xclock colors. 60: XClock*foreground: #fdf6e3 61: XClock*background: #073642 62: XClock*majorColor: rgba:ee/e8/d5/ff 63: XClock*minorColor: rgba:ee/e8/d5/ff 64: XClock*hourColor: rgba:ee/e8/d5/ff 65: XClock*minuteColor: rgba:ee/e8/d5/ff 66: XClock*secondColor: rgba:ee/e8/d5/ff 67: 68: ! Set depth to make transparency work. 69: URxvt*depth: 32
Xsettingsd
1: Gtk/CursorThemeName "Bibata-Modern-Classic" 2: Gtk/CursorThemeSize 24 3: Gtk/EnableAnimations 1 4: Gtk/FontName "OverpassM Nerd Font Mono, 12" 5: Net/CursorBlink 1 6: Net/CursorBlinkTime 1200 7: Net/DndDragThreshold 8 8: Net/DoubleClickDistance 5 9: Net/DoubleClickTime 250 10: Net/EnableEventSounds 1 11: Net/EnableInputFeedbackSounds 1 12: Net/IconThemeName "Papirus" 13: Net/SoundThemeName "freedesktop" 14: Net/ThemeName "Breeze-dark" 15: Xft/Antialias 1 16: Xft/DPI -1 17: Xft/HintStyle "hintslight" 18: Xft/Hinting 1 19: Xft/RGBA "rgb"
OverpassM Nerd Font Mono
is packaged inotf-overpass-nerd
which in turns grouped in thenerd-fonts
package group.Papirus
is inpapirus-icon-theme
.Bibata-Modern-Classic
is frombibata-cursor-theme
.Breeze-dark
is frombreeze
and forbreeze-gtk
for gtk applications.
Scripts
monitor-setup
1: if [ "$(command -v hostnamectl)" ]; then 2: _HOSTNAME="$(hostnamectl hostname)" 3: elif [ -n "${HOSTNAME}" ]; then 4: _HOSTNAME="${HOSTNAME}" 5: elif [ -f /etc/hostname ]; then 6: _HOSTNAME="$(cat /etc/hostname)" 7: fi 8: 9: case ${_HOSTNAME} in 10: liberia*) 11: extern=HDMI-2 12: intern=eDP-1 13: if [ $(xrandr |grep -q "${extern} disconnected") ]; then 14: xrandr --output "${extern}" --off output "${intern}" --auto 15: else 16: xrandr --output "${intern}" --auto --scale 1.25x1.25 --output "${extern}" --auto --left-of "${intern}" 17: fi 18: xrandr --output "${intern}" --scale 1.25x1.25 19: ;; 20: esac
showclip
1: # Display contents of selection via dunst if running. 2: 3: clip=$(xclip -o -selection clipboard) 4: prim=$(xclip -o -selection primary) 5: 6: [ -n "$clip" ] && notify-send -t 1000 "Clipboard:" "$clip" 7: [ -n "$prim" ] && notify-send -t 1000 "Primary:" "$prim"