From 9b2cbe5d46f8d081509311a337b1f2f5d873834b Mon Sep 17 00:00:00 2001 From: alexforsale Date: Tue, 12 Mar 2024 12:02:22 +0700 Subject: [PATCH] Moving to literate config --- .Xresources | 16 - .config/Xresources.d/URxvt | 22 - .config/Xresources.d/colors | 68 --- .config/Xresources.d/x11-ssh-askpass | 8 - .config/Xresources.d/xcalc | 42 -- .config/Xresources.d/xclock | 4 - .config/Xresources.d/xscreensaver | 23 - .config/Xresources.d/xterm | 24 - .config/xprofile.d/00-security.sh | 51 -- .config/xprofile.d/01-gtk-path.sh | 9 - .config/xprofile.d/02-notification.sh | 15 - .config/xprofile.d/03-sxhkd.sh | 14 - .config/xprofile.d/04-bluetooth.sh | 8 - .config/xprofile.d/05-network.sh | 2 - .config/xprofile.d/06-ui.sh | 9 - .config/xprofile.d/07-filemanager.sh | 14 - .config/xprofile.d/08-multimedia.sh | 7 - .config/xprofile.d/09-x0vnc.sh | 8 - .config/xprofile.d/99-ddgr.sh | 5 - .config/xsettingsd/xsettingsd.conf | 11 - .dir-locals.el | 2 + .github/workflows/publish.yml | 27 + .gitignore | 6 + .local/bin/monitor-setup | 22 - .local/bin/setwallpaper | 106 ---- .local/bin/showclip | 8 - .local/bin/wifi-helper | 10 - .stow-local-ignore | 10 + .xinitrc | 74 --- .xprofile | 27 - LICENSE.md | 674 +++++++++++++++++++++++++ README.org | 414 +-------------- build.el | 57 +++ index.org | 692 ++++++++++++++++++++++++++ publish.sh | 4 + 35 files changed, 1488 insertions(+), 1005 deletions(-) delete mode 100644 .Xresources delete mode 100644 .config/Xresources.d/URxvt delete mode 100644 .config/Xresources.d/colors delete mode 100644 .config/Xresources.d/x11-ssh-askpass delete mode 100644 .config/Xresources.d/xcalc delete mode 100644 .config/Xresources.d/xclock delete mode 100644 .config/Xresources.d/xscreensaver delete mode 100644 .config/Xresources.d/xterm delete mode 100644 .config/xprofile.d/00-security.sh delete mode 100644 .config/xprofile.d/01-gtk-path.sh delete mode 100644 .config/xprofile.d/02-notification.sh delete mode 100644 .config/xprofile.d/03-sxhkd.sh delete mode 100644 .config/xprofile.d/04-bluetooth.sh delete mode 100644 .config/xprofile.d/05-network.sh delete mode 100644 .config/xprofile.d/06-ui.sh delete mode 100644 .config/xprofile.d/07-filemanager.sh delete mode 100644 .config/xprofile.d/08-multimedia.sh delete mode 100644 .config/xprofile.d/09-x0vnc.sh delete mode 100644 .config/xprofile.d/99-ddgr.sh delete mode 100644 .config/xsettingsd/xsettingsd.conf create mode 100644 .dir-locals.el create mode 100644 .github/workflows/publish.yml create mode 100644 .gitignore delete mode 100755 .local/bin/monitor-setup delete mode 100755 .local/bin/setwallpaper delete mode 100755 .local/bin/showclip delete mode 100755 .local/bin/wifi-helper create mode 100644 .stow-local-ignore delete mode 100755 .xinitrc delete mode 100755 .xprofile create mode 100644 LICENSE.md create mode 100644 build.el create mode 100644 index.org create mode 100755 publish.sh diff --git a/.Xresources b/.Xresources deleted file mode 100644 index ce919f4..0000000 --- a/.Xresources +++ /dev/null @@ -1,16 +0,0 @@ -#include ".config/Xresources.d/xterm" -#include ".config/Xresources.d/URxvt" -#include ".config/Xresources.d/x11-ssh-askpass" -#include ".config/Xresources.d/xcalc" -#include ".config/Xresources.d/xclock" -#include ".config/Xresources.d/xscreensaver" -#include ".config/Xresources.d/colors" - -! cursor theme -Xcursor.theme: Breeze-BlueLH -Xft.autohint: 0 -Xft.lcdfilter: lcddefault -Xft.hintstyle: hintmedium -Xft.hinting: 1 -Xft.antialias: 1 -Xft.rgba: rgb diff --git a/.config/Xresources.d/URxvt b/.config/Xresources.d/URxvt deleted file mode 100644 index 7d050cd..0000000 --- a/.config/Xresources.d/URxvt +++ /dev/null @@ -1,22 +0,0 @@ -! arch package (aur): urxvt-resize-font-git -URxvt.perl-ext-common: default,tabbed,matcher,resize-font,-tabbed -URxvt.saveLines: 2000 -URxvt.secondaryScreen: 1 -URxvt.secondaryScroll: 0 -URxvt.scrollBar: False -URxvt.scrollBar_right: false -URxvt.scrollBar_floating: false -URxvt.scrollstyle: rxvt -URxvt.termName: xterm-256color -URxvt.cursorBlink: True -URxvt.secondaryWheel: 1 -URxvt.font: xft:OverpassM\ Nerd\ Font\ Mono:size=8 -URxvt.keysym.C-S-0x43: eval:selection_to_clipboard -URxvt.keysym.C-S-0x56: eval:paste_clipboard -URxvt.keysym.C-minus: resize-font:smaller -URxvt.keysym.C-plus: resize-font:bigger -URxvt.keysym.C-equal: resize-font:reset -URxvt.keysym.C-question: resize-font:show -URxvt.iso14755: false -URxvt.iso14755_52: false -URxvt.bell-command: canberra-gtk-play -i bell diff --git a/.config/Xresources.d/colors b/.config/Xresources.d/colors deleted file mode 100644 index 4d41a34..0000000 --- a/.config/Xresources.d/colors +++ /dev/null @@ -1,68 +0,0 @@ -! X colors. -! Generated by 'wal' -*foreground: #fdf6e3 -*background: #292d3e -*.foreground: #fdf6e3 -*.background: #292d3e -emacs*foreground: #fdf6e3 -emacs*background: #073642 -URxvt*foreground: #fdf6e3 -XTerm*foreground: #fdf6e3 -UXTerm*foreground: #fdf6e3 -URxvt*background: [100]#073642 -XTerm*background: #073642 -UXTerm*background: #073642 -URxvt*cursorColor: #dc322f -XTerm*cursorColor: #dc322f -UXTerm*cursorColor: #dc322f -URxvt*borderColor: [100]#073642 - -! Colors 0-15. -*.color0: #073642 -*color0: #073642 -*.color1: #dc322f -*color1: #dc322f -*.color2: #859900 -*color2: #859900 -*.color3: #b58900 -*color3: #b58900 -*.color4: #268bd2 -*color4: #268bd2 -*.color5: #d33682 -*color5: #d33682 -*.color6: #2aa198 -*color6: #2aa198 -*.color7: #eee8d5 -*color7: #eee8d5 -*.color8: #6c7c80 -*color8: #6c7c80 -*.color9: #dc322f -*color9: #dc322f -*.color10: #859900 -*color10: #859900 -*.color11: #b58900 -*color11: #b58900 -*.color12: #268bd2 -*color12: #268bd2 -*.color13: #d33682 -*color13: #d33682 -*.color14: #2aa198 -*color14: #2aa198 -*.color15: #eee8d5 -*color15: #eee8d5 - -! Black color that will not be affected by bold highlighting. -*.color66: #073642 -*color66: #073642 - -! Xclock colors. -XClock*foreground: #fdf6e3 -XClock*background: #073642 -XClock*majorColor: rgba:ee/e8/d5/ff -XClock*minorColor: rgba:ee/e8/d5/ff -XClock*hourColor: rgba:ee/e8/d5/ff -XClock*minuteColor: rgba:ee/e8/d5/ff -XClock*secondColor: rgba:ee/e8/d5/ff - -! Set depth to make transparency work. -URxvt*depth: 32 diff --git a/.config/Xresources.d/x11-ssh-askpass b/.config/Xresources.d/x11-ssh-askpass deleted file mode 100644 index 4d900ba..0000000 --- a/.config/Xresources.d/x11-ssh-askpass +++ /dev/null @@ -1,8 +0,0 @@ -x11-ssh-askpass*background: #000000 -x11-ssh-askpass*foreground: #ffffff -x11-ssh-askpass.Button*background: #000000 -x11-ssh-askpass.Indicator*foreground: #ff9900 -x11-ssh-askpass.Indicator*background: #090909 -x11-ssh-askpass*topShadowColor: #000000 -x11-ssh-askpass*bottomShadowColor: #000000 -x11-ssh-askpass.*borderWidth: 1 diff --git a/.config/Xresources.d/xcalc b/.config/Xresources.d/xcalc deleted file mode 100644 index 008a376..0000000 --- a/.config/Xresources.d/xcalc +++ /dev/null @@ -1,42 +0,0 @@ -xcalc*geometry: 200x275 -xcalc.ti.bevel.background: #111111 -xcalc.ti.bevel.screen.background: #000000 -xcalc.ti.bevel.screen.DEG.background: #000000 -xcalc.ti.bevel.screen.DEG.foreground: LightSeaGreen -xcalc.ti.bevel.screen.GRAD.background: #000000 -xcalc.ti.bevel.screen.GRAD.foreground: LightSeaGreen -xcalc.ti.bevel.screen.RAD.background: #000000 -xcalc.ti.bevel.screen.RAD.foreground: LightSeaGreen -xcalc.ti.bevel.screen.INV.background: #000000 -xcalc.ti.bevel.screen.INV.foreground: Red -xcalc.ti.bevel.screen.LCD.background: #000000 -xcalc.ti.bevel.screen.LCD.foreground: LightSeaGreen -xcalc.ti.bevel.screen.LCD.shadowWidth: 0 -xcalc.ti.bevel.screen.M.background: #000000 -xcalc.ti.bevel.screen.M.foreground: LightSeaGreen -xcalc.ti.bevel.screen.P.background: #000000 -xcalc.ti.bevel.screen.P.foreground: Yellow -xcalc.ti.Command.foreground: White -xcalc.ti.Command.background: #777777 -xcalc.ti.button5.background: Orange3 -xcalc.ti.button19.background: #611161 -xcalc.ti.button18.background: #611161 -xcalc.ti.button20.background: #611111 -xcalc.ti.button25.background: #722222 -xcalc.ti.button30.background: #833333 -xcalc.ti.button35.background: #944444 -xcalc.ti.button40.background: #a55555 -xcalc.ti.button22.background: #222262 -xcalc.ti.button23.background: #222262 -xcalc.ti.button24.background: #222272 -xcalc.ti.button27.background: #333373 -xcalc.ti.button28.background: #333373 -xcalc.ti.button29.background: #333373 -xcalc.ti.button32.background: #444484 -xcalc.ti.button33.background: #444484 -xcalc.ti.button34.background: #444484 -xcalc.ti.button37.background: #555595 -xcalc.ti.button38.background: #555595 -xcalc.ti.button39.background: #555595 -XCalc*Cursor: hand2 -XCalc*ShapeStyle: rectangle diff --git a/.config/Xresources.d/xclock b/.config/Xresources.d/xclock deleted file mode 100644 index 69cbd02..0000000 --- a/.config/Xresources.d/xclock +++ /dev/null @@ -1,4 +0,0 @@ -xclock*update: 1 -xclock*analog: false -xclock*Foreground: white -xclock*background: black diff --git a/.config/Xresources.d/xscreensaver b/.config/Xresources.d/xscreensaver deleted file mode 100644 index 182c02b..0000000 --- a/.config/Xresources.d/xscreensaver +++ /dev/null @@ -1,23 +0,0 @@ -xscreensaver.Dialog.headingFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.bodyFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.labelFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.unameFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.buttonFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.dateFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.passwd.passwdFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.foreground: #ffffff -xscreensaver.Dialog.background: #111111 -xscreensaver.Dialog.topShadowColor: #111111 -xscreensaver.Dialog.bottomShadowColor: #111111 -xscreensaver.Dialog.Button.foreground: #666666 -xscreensaver.Dialog.Button.background: #ffffff -!username/password input box and date text colour -xscreensaver.Dialog.text.foreground: #666666 -xscreensaver.Dialog.text.background: #ffffff -xscreensaver.Dialog.internalBorderWidth:24 -xscreensaver.Dialog.borderWidth: 20 -xscreensaver.Dialog.shadowThickness: 2 -xscreensaver.passwd.thermometer.foreground: #ff0000 -xscreensaver.passwd.thermometer.background: #000000 -xscreensaver.passwd.thermometer.width: 8 -xscreensaver.dateFormat: %I:%M%P %a %b %d, %Y diff --git a/.config/Xresources.d/xterm b/.config/Xresources.d/xterm deleted file mode 100644 index 6efc7de..0000000 --- a/.config/Xresources.d/xterm +++ /dev/null @@ -1,24 +0,0 @@ -xterm*termName: xterm-256color -xterm.vt100.geometry: 80x24 -xterm*saveLines: 4096 -xterm*scrollBar: False -xterm*.LoginShell: True -xterm*rightScrollBar: False -xterm*scrollTtyOutput: False -xterm.selectToClipboard: true -xterm.*backarrowKey: false -xterm*translations: #override \ -Ctrl Shift C: copy-selection(CLIPBOARD) \n\ -Ctrl Shift V: insert-selection(CLIPBOARD) \n\ -Ctrl : exec-formatted("xdg-open '%t'", PRIMARY) \n\ -~Meta ShiftTab: string(\033[Z) \n\ -Meta ShiftTab: string(\033\033[Z) \n\ -Ctrl minus: smaller-vt-font() \n\ -Ctrl plus: larger-vt-font() \n\ -Ctrl 0: set-vt-font(d) -xterm*eightBitInput: false -xterm*metaSendsEscape: true -xterm*charClass: 33:48,37-38:48,45-47:48,64:48,58:48,126:48,61:48,63:48,43:48,35:48 -xterm*renderFont: true -xterm*faceName: OverpassM Nerd Font Mono -xterm*faceSize: 12 diff --git a/.config/xprofile.d/00-security.sh b/.config/xprofile.d/00-security.sh deleted file mode 100644 index 9ff3579..0000000 --- a/.config/xprofile.d/00-security.sh +++ /dev/null @@ -1,51 +0,0 @@ -# ~/.config/xprofile.d/00-security.sh -# various ui-related security settings -# - -if [ "$(command -v gnome-keyring-daemon)" ] && - [ ! $(pgrep -u ${USER} -x gnome-keyring-d) ];then - eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)" >/dev/null 2>&1 - export SSH_AUTH_SOCK GNOME_KEYRING_CONTROL -fi - -case "${DISTRO}" in - gentoo) - [ -f /usr/bin/x11-ssh-askpass ] && - export SSH_ASKPASS=/usr/bin/x11-ssh-askpass && - export SUDO_ASKPASS=/usr/bin/x11-ssh-askpass - - # polkit - if [ ! "$(pgrep -u ${USER} -x polkit-gnome-au)" ];then - sleep 1 && /usr/libexec/polkit-gnome-authentication-agent-1 & - fi - ;; - arch) - if [ -f /usr/lib/ssh/x11-ssh-askpass ];then - [ ! -L ~/.local/bin/ssh-askpass ] && - ln -sf /usr/lib/ssh/x11-ssh-askpass ~/.local/bin/ssh-askpass - export SSH_ASKPASS=ssh-askpass - export SUDO_ASKPASS="${HOME}"/.local/bin/ssh-askpass - fi - # polkit - if [ ! "$(pgrep -u ${USER} -x polkit-gnome-authentication-agent-1)" ];then - sleep 1 && /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & - fi - - # keyring - [ "$(command -v dbus-update-activation-environment)" ] && - dbus-update-activation-environment --systemd DISPLAY - ;; - freebsd) - [ -f /usr/local/bin/x11-ssh-askpass ] && - export SSH_ASKPASS=/usr/local/bin/x11-ssh-askpass && - export SUDO_ASKPASS=/usr/local/bin/x11-ssh-askpass - - # polkit - if [ ! "$(pgrep -u ${USER} -x polkit-gnome-authentication-agent-1)" ];then - sleep 1 && /usr/local/libexec/polkit-gnome-authentication-agent-1 & - fi - # keyring - [ "$(command -v dbus-update-activation-environment)" ] && - dbus-update-activation-environment DISPLAY - ;; -esac diff --git a/.config/xprofile.d/01-gtk-path.sh b/.config/xprofile.d/01-gtk-path.sh deleted file mode 100644 index 3c767e5..0000000 --- a/.config/xprofile.d/01-gtk-path.sh +++ /dev/null @@ -1,9 +0,0 @@ -# ~/.config/xprofile.d/01-gtk-path.sh -# set new location for GTK and GTK2 -# https://wiki.archlinux.org/title/XDG_Base_Directory -# - -export GTK_RC_FILES="${XDG_CONFIG_HOME}"/gtk-1.0/gtkrc -[ -d "${GTK_RC_FILES%%/gtkrc}" ] && mkdir -p "${GTK_RC_FILES%%/gtkrc}" -export GTK2_RC_FILES="${XDG_CONFIG_HOME}"/gtk-2.0/gtkrc -[ -d "${GTK2_RC_FILES%%/gtkrc}" ] && mkdir -p "${GTK2_RC_FILES%%/gtkrc}" diff --git a/.config/xprofile.d/02-notification.sh b/.config/xprofile.d/02-notification.sh deleted file mode 100644 index 24c21a0..0000000 --- a/.config/xprofile.d/02-notification.sh +++ /dev/null @@ -1,15 +0,0 @@ -# ~/.config/xprofile.d/02-notification.sh -# notification settings -# - -# dunst -if [ "$(command -v dunst)" ];then - case "${DISTRO}" in - arch) - if [ ! $(pgrep -u ${USER} dunst) ] && - [ -e ${XDG_CONFIG_HOME}/dunst/dunstrc ]; then - dbus-launch --sh-syntax --exit-with-session dunst -conf ${XDG_CONFIG_HOME}/dunst/dunstrc & - fi - ;; - esac -fi diff --git a/.config/xprofile.d/03-sxhkd.sh b/.config/xprofile.d/03-sxhkd.sh deleted file mode 100644 index 39955a1..0000000 --- a/.config/xprofile.d/03-sxhkd.sh +++ /dev/null @@ -1,14 +0,0 @@ -# ~/.config/xprofile.d/03-sxhkd.sh -# sxhkd settings -# - -if [ -z "${_NO_SXHKD}" ] && [ ! $(pgrep -u ${USER} -x sxhkd) ] && - [ $(command -v sxhkd) ]; then - if [ -e "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc.local ];then # per-user configuration - sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc.local & - elif [ -e "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc-"${DISTRO}" ];then # per-distro configuration, i.e. sxhkdrc-arch - sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc-"${DISTRO}" & - else - sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc & - fi -fi diff --git a/.config/xprofile.d/04-bluetooth.sh b/.config/xprofile.d/04-bluetooth.sh deleted file mode 100644 index 1096de8..0000000 --- a/.config/xprofile.d/04-bluetooth.sh +++ /dev/null @@ -1,8 +0,0 @@ -# ~/.config/xprofile.d/04-bluetooth.sh -# bluetooth configuration - -# blueman-tray -if [ "$(command -v blueman-tray)" ] && - [ -z "${_NO_BLUEMAN_TRAY}" ]; then - blueman-tray & -fi diff --git a/.config/xprofile.d/05-network.sh b/.config/xprofile.d/05-network.sh deleted file mode 100644 index 292db0e..0000000 --- a/.config/xprofile.d/05-network.sh +++ /dev/null @@ -1,2 +0,0 @@ -# ~/.config/xprofile.d/05-network.sh -# various networking app diff --git a/.config/xprofile.d/06-ui.sh b/.config/xprofile.d/06-ui.sh deleted file mode 100644 index 68a5d81..0000000 --- a/.config/xprofile.d/06-ui.sh +++ /dev/null @@ -1,9 +0,0 @@ -# ~/.config/xprofile.d/06-ui.sh -# various ui settings -# monitor -_count=0 -for i in $(xrandr | grep " connected"| awk '{print $1}');do - _count=$((_count+1)) - export MONITOR${_count}=${i} -done -unset _count diff --git a/.config/xprofile.d/07-filemanager.sh b/.config/xprofile.d/07-filemanager.sh deleted file mode 100644 index 2a53fdf..0000000 --- a/.config/xprofile.d/07-filemanager.sh +++ /dev/null @@ -1,14 +0,0 @@ -# ~/.config/xprofile.d/07-filemanager.sh -# file manager configuration - -[ "$(command -v udiskie)" ] && - udiskie & - -[ "${_WM}" = "i3" ] && - export _NO_PCMANFM=1 - -# pcmanfm -if [ $(command -v pcmanfm) ] && - [ -z ${_NO_PCMANFM} ]; then - pcmanfm --desktop -d & -fi diff --git a/.config/xprofile.d/08-multimedia.sh b/.config/xprofile.d/08-multimedia.sh deleted file mode 100644 index a66278a..0000000 --- a/.config/xprofile.d/08-multimedia.sh +++ /dev/null @@ -1,7 +0,0 @@ -# ~/.config/xprofile.d/08-multimedia.sh -# various multimedia app - -# mpd -if [ $(command -v mpd) ] && [ ! $(pgrep -u ${USER} mpd) ];then - [ ! -e "${XDG_CONFIG_HOME}"/mpd/pid ] && mpd "${mpd_conf_file}" & -fi diff --git a/.config/xprofile.d/09-x0vnc.sh b/.config/xprofile.d/09-x0vnc.sh deleted file mode 100644 index 89320bf..0000000 --- a/.config/xprofile.d/09-x0vnc.sh +++ /dev/null @@ -1,8 +0,0 @@ -# ~/.config/xprofile.d/09-x0vnc.sh -# x0vnc - -case "${HOSTNAME}" in - "tanzania") - x0vncserver -rfbauth ~/.vnc/passwd -UseIPv6 -rfbport 5912 & - ;; -esac diff --git a/.config/xprofile.d/99-ddgr.sh b/.config/xprofile.d/99-ddgr.sh deleted file mode 100644 index 5e8b015..0000000 --- a/.config/xprofile.d/99-ddgr.sh +++ /dev/null @@ -1,5 +0,0 @@ -# ~/.config/xprofile.d/99-ddgr.sh -# duckduckgo rofi -if [ $(command -v ddgr) ] && [ $(command -v rofi-search) ]; then - export ROFI_SEARCH=ddgr -fi diff --git a/.config/xsettingsd/xsettingsd.conf b/.config/xsettingsd/xsettingsd.conf deleted file mode 100644 index 84b1145..0000000 --- a/.config/xsettingsd/xsettingsd.conf +++ /dev/null @@ -1,11 +0,0 @@ -Gtk/CursorThemeName "Breeze-BlueLH" -Net/EnableEventSounds 1 -Net/EnableInputFeedbackSounds 1 -Net/IconThemeName "Papirus" -Net/SoundThemeName "freedesktop" -Net/ThemeName "Breeze-Dark" -Xft/Antialias 1 -Xft/DPI -1 -Xft/HintStyle "hintmedium" -Xft/Hinting 1 -Xft/RGBA "rgb" diff --git a/.dir-locals.el b/.dir-locals.el new file mode 100644 index 0000000..991c108 --- /dev/null +++ b/.dir-locals.el @@ -0,0 +1,2 @@ +((nil . ((magit-todos-exclude-globs ".git/" "*.el"))) + (org-mode . ((org-confirm-babel-evaluate . nil)))) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..a06074f --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,27 @@ +name: Publish + +on: + push: + branches: + - main + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + contents: write + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + steps: + - name: Check Out + uses: actions/checkout@v4 + - name: Install Emacs + run: sudo apt install emacs-nox --yes + - name: Build the site + run: ./publish.sh + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/main' + with: + github_token: ${{ secrets.PERSONAL_TOKEN }} + publish_dir: ./public diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d72f513 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.packages/ +content/ +public/ +.local/ +.config/ +.packages/ diff --git a/.local/bin/monitor-setup b/.local/bin/monitor-setup deleted file mode 100755 index bbd2917..0000000 --- a/.local/bin/monitor-setup +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -if [ "$(command -v hostnamectl)" ]; then - _HOSTNAME="$(hostnamectl hostname)" -elif [ -n "${HOSTNAME}" ]; then - _HOSTNAME="${HOSTNAME}" -elif [ -f /etc/hostname ]; then - _HOSTNAME="$(cat /etc/hostname)" -fi - -case ${_HOSTNAME} in - somalia*) - extern=HDMI-2 - intern=eDP-1 - if [ $(xrandr |grep -q "${extern} disconnected") ]; then - xrandr --output "${extern}" --off output "${intern}" --auto - else - xrandr --output "${intern}" --auto --scale 1.25x1.25 --output "${extern}" --auto --left-of "${intern}" - fi - xrandr --output "${intern}" --scale 1.25x1.25 - ;; -esac diff --git a/.local/bin/setwallpaper b/.local/bin/setwallpaper deleted file mode 100755 index 6e028fc..0000000 --- a/.local/bin/setwallpaper +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh -# Sets the background. If given an argument, will set file as background. -_resolution="$(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/')" - -case "${DISTRO}" in - arch|gentoo|debian|ubuntu) - SHUF="$(command -v shuf)" - ;; - freebsd) - SHUF="$(command -v gshuf)" - ;; -esac - -if [ "$(command -v pcmanfm)" ] && - [ -z "${_NO_PCMANFM}" ]; then - WALL_APP=pcmanfm -elif [ "$(command -v xwallpaper)" ]; then - WALL_APP=xwallpaper -elif [ "$(command -v nitrogen)" ]; then - WALL_APP=nitrogen -elif [ "$(command -v feh)" ]; then - WALL_APP=feh -fi - -if [ -n "${1}" ];then - case ${WALL_APP} in - pcmanfm) - wal -i ${1} -n - pcmanfm --wallpaper-mode=stretch -w $(< ~/.cache/wal/wal) && notify-send -i "${HOME}/.config/wall.png" "Wallpaper changed." - ;; - xwallpaper) - wal -i ${1} -n - xwallpaper --zoom $(< ~/.cache/wal/wal) && notify-send -i "${HOME}/.config/wall.png" "Wallpaper changed." - ;; - nitrogen) - wal -i ${1} -n - nitrogen --set-zoom-fill $(< ~/.cache/wal/wal) && notify-send -i "${HOME}/.config/wall.png" "Wallpaper changed." - ;; - feh) - wal -i ${1} -n - feh --bg-fill $(< ~/.cache/wal/wal) && notify-send -i "${HOME}/.config/wall.png" "Wallpaper changed." - ;; - esac - cp "${1}" ~/.config/wall.png -else - case ${DISTRO} in - gentoo) - if [ -d "${XDG_DATA_HOME}/wallpapers/${DISTRO}-${_WM}" ];then - wp=$(${SHUF} -ezn 1 ~/.local/share/wallpapers/"${DISTRO}-${_WM}"/* | xargs -0) - elif [ -d "${XDG_DATA_HOME}/wallpapers/${DISTRO}" ];then - wp=$(${SHUF} -ezn 1 ~/.local/share/wallpapers/"${DISTRO}"/* | xargs -0) - elif [ -d /usr/share/pixmaps/gentoo ];then - if [ -d /usr/share/pixmaps/gentoo/"${_resolution}" ];then - wp=$(${SHUF} -ezn 1 /usr/share/pixmaps/gentoo/"${_resolution}"/* | xargs -0) - else - # pick 1280x1024 - wp=$(${SHUF} -ezn 1 /usr/share/pixmaps/gentoo/1280x1024/* | xargs -0) - fi - fi - ;; - arch) - if [ -d "${XDG_DATA_HOME}/wallpapers/${DISTRO}-${_WM}" ];then - wp=$(${SHUF} -ezn 1 ~/.local/share/wallpapers/"${DISTRO}-${_WM}"/* | xargs -0) - elif [ -d "${XDG_DATA_HOME}/wallpapers/${DISTRO}" ];then - wp=$(${SHUF} -ezn 1 ~/.local/share/wallpapers/"${DISTRO}"/* | xargs -0) - elif [ -d /usr/share/backgrounds/archlinux ];then - wp=$(${SHUF} -ezn 1 /usr/share/backgrounds/archlinux/* | xargs -0) - fi - ;; - freebsd) - if [ -d "${XDG_DATA_HOME}/wallpapers/${DISTRO}-${_WM}" ];then - wp=$(${SHUF} -ezn 1 ~/.local/share/wallpapers/"${DISTRO}-${_WM}"/* | xargs -0) - elif [ -d "${XDG_DATA_HOME}/wallpapers/${DISTRO}" ];then - wp=$(${SHUF} -ezn 1 ~/.local/share/wallpapers/"${DISTRO}"/* | xargs -0) - elif [ -d /usr/local/share/wallpapers/freebsd-8k-wallpapers ]; then - wp=$(${SHUF} -ezn 1 /usr/local/share/wallpapers/freebsd-8k-wallpapers/* | xargs -0) - fi - ;; - *) - wp=$(${SHUF} -ezn 1 "${XDG_DATA_HOME}"/wallpapers/common/* | xargs -0) - ;; - esac - cp "${wp}" ~/.config/wall.png - case ${WALL_APP} in - pcmanfm) - wal -i ${wp} -n - pcmanfm --wallpaper-mode=stretch -w $(< ~/.cache/wal/wal) || - pcmanfm --wallpaper-mode=stretch -w $(cat ~/.cache/wal/wal) && notify-send -i "${HOME}/.config/wall.png" "Wallpaper changed." - ;; - xwallpaper) - wal -i ${wp} -n - xwallpaper --stretch $(< ~/.cache/wal/wal) || - xwallpaper --stretch $(cat ~/.cache/wal/wal) && notify-send -i "${HOME}/.config/wall.png" "Wallpaper changed." - ;; - nitrogen) - wal -i ${wp} -n - nitrogen --set-zoom-fill $(< ~/.cache/wal/wal) || - nitrogen --set-zoom-fill $(cat ~/.cache/wal/wal) && notify-send -i "${HOME}/.config/wall.png" "Wallpaper changed." - ;; - feh) - wal -i ${wp} -n - feh --bg-fill $(< ~/.cache/wal/wal) || - feh --bg-fill $(cat ~/.cache/wal/wal) && notify-send -i "${HOME}/.config/wall.png" "Wallpaper changed." - ;; - esac -fi diff --git a/.local/bin/showclip b/.local/bin/showclip deleted file mode 100755 index fd322c5..0000000 --- a/.local/bin/showclip +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# Display contents of selection via dunst if running. - -clip=$(xclip -o -selection clipboard) -prim=$(xclip -o -selection primary) - -[ -n "$clip" ] && notify-send -t 1000 "Clipboard:" "$clip" -[ -n "$prim" ] && notify-send -t 1000 "Primary:" "$prim" diff --git a/.local/bin/wifi-helper b/.local/bin/wifi-helper deleted file mode 100755 index 22145dd..0000000 --- a/.local/bin/wifi-helper +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# wifi-helper script for calling available wireless gui app - -if [ $(command -v connman-gtk) ]; then - wifi_app=connman-gtk -elif [ $(command -v nmtui) ]; then - wifi_app="$TERMINAL -e nmtui" -fi - -exec ${wifi_app} 2>&1 >/dev/null diff --git a/.stow-local-ignore b/.stow-local-ignore new file mode 100644 index 0000000..aaee2e0 --- /dev/null +++ b/.stow-local-ignore @@ -0,0 +1,10 @@ +^/README.* +^/index.* +^/assets +^/\.git.* +^/public +^/publish.* +\.packages +^/content +^/build.* +^/LICENSE.* diff --git a/.xinitrc b/.xinitrc deleted file mode 100755 index 5a9bcbb..0000000 --- a/.xinitrc +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# ~/.xinitrc -# Configuration script for manual X session. -# -userresources=${HOME}/.Xresources -usermodmap=${HOME}/.Xmodmap -OS=$(uname -s) - -case "${OS}" in - "Linux") - if [ "${DISTRO}" = "ubuntu" ]; then - sysresources=/etc/X11/xinit/Xresources - sysmodmap=/etc/X11/xinit/Xmodmap - else - sysresources=/etc/X11/xinit/.Xresources - sysmodmap=/etc/X11/xinit/.Xmodmap - fi - ;; - "FreeBSD") - sysresources=/usr/local/etc/X11/xinit/.Xresources - sysmodmap=/usr/local/etc/X11/xinit/.Xmodmap - ;; -esac -[ -f "${sysresources}" ] && - xrdb -merge "${sysresources}" - -[ -f "${sysmodmap}" ] && - xmodmap "${sysmodmap}" - -[ -f "${userresources}" ] && - xrdb -merge "${userresources}" - -[ -f "${usermodmap}" ] && - xmodmap "${usermodmap}" -# shellcheck disable=1090 -if [ -d /etc/X11/xinit/xinitrc.d ] ; then - for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do - [ -x "${f}" ] && . "${f}" - done - unset f -fi -[ -f /etc/xprofile ] && . /etc/xprofile -[ -f "${HOME}"/.xprofile ] && . "${HOME}"/.xprofile -[ -z ${DESKTOP_SESSION} ] && export DESKTOP_SESSION=${1:-exwm} -# for archlinux -[ -d /usr/share/backgrounds/archlinux/ ] && - feh -zr --bg-fill /usr/share/backgrounds/archlinux/ -# FreeBSD -[ -d /usr/local/share/wallpapers/freebsd-8k-wallpapers/ ] && - feh -zr --bg-fill /usr/local/share/wallpapers/freebsd-8k-wallpapers/ -for chemacs_profile in ~/.emacs-profile ~/.config/chemacs/profile; do - if [ -e ${chemacs_profile} ]; then - export CHEMACS_PROFILE=`cat ${chemacs_profile}` - fi -done - -if [ -n "${CHEMACS_PROFILE}" ]; then - _emacs_args="-s ${CHEMACS_PROFILE}" -fi -case $DESKTOP_SESSION in - "exwm") - exec emacs --debug-init -l ~/.exwm - ;; - "qtile") - exec qtile start - ;; - "stumpwm") - if [ $(command -v ros) ]; then - exec ros run -- --load /usr/local/bin/startstumpwm - elif [ $(command -v sbcl) ]; then - exec sbcl --load /usr/local/bin/startstumpwm - fi - ;; -esac diff --git a/.xprofile b/.xprofile deleted file mode 100755 index 75d2cdc..0000000 --- a/.xprofile +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# ~/.xprofile -# user X session startup file. -# - -if [ -d "${HOME}/.config/xprofile.d" ]; then - for xfiles in "${HOME}"/.config/xprofile.d/*.sh; do - # shellcheck disable=1090 - . "${xfiles}" - done - unset xfiles -fi - -# shellcheck disable=1091 -[ -f "${XDG_CONFIG_HOME}"/xprofile.local ] && . "${XDG_CONFIG_HOME}"/xprofile.local -# shellcheck disable=1091 -[ -f "${HOME}"/.xprofile.local ] && . "${HOME}"/.xprofile.local - -# monitor setups -# per WM -case "${DESKTOP_SESSION}" in - qtile) - if [ -x "${HOME}/.local/bin/monitor-setup " ]; then - ~/.local/bin/monitor-setup & - fi - ;; -esac diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.org b/README.org index d1b71e2..564b717 100644 --- a/README.org +++ b/README.org @@ -1,7 +1,8 @@ -#+options: ':t *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline author:t -#+options: broken-links:nil c:nil creator:nil d:(not "LOGBOOK") date:t e:t -#+options: email:nil f:t inline:t num:t p:nil pri:nil prop:nil stat:t tags:t -#+options: tasks:t tex:t timestamp:t title:t toc:t todo:t |:t +#+options: ':nil *:t -:t ::t <:t H:2 \n:nil ^:t arch:headline +#+options: author:t broken-links:nil c:nil creator:nil +#+options: d:(not "LOGBOOK") date:t e:t email:nil f:t inline:t num:nil +#+options: p:nil pri:nil prop:nil stat:t tags:t tasks:t tex:t +#+options: timestamp:t title:t toc:t todo:t |:t #+title: Xorg User's Startup Files #+date: <2021-03-25 Thu> #+author: Kristian Alexander @@ -11,401 +12,18 @@ #+exclude_tags: noexport #+creator: Emacs 27.1 (Org mode 9.5) #+property: EXPORT_FILE_NAME: index.html +#+startup: indent fold #+startup: showall nohideblocks -* ~/.Xresources -:PROPERTIES: -:header-args: :tangle ~/.Xresources -:END: -** header -#+begin_src conf - ! ~/.Xresources - ! user-level X resources configuration. - ! Do not edit this file directly. - ! this file is autogenerated using Emacs org-mode. - ! -#+end_src -** per-app settings -#+begin_src conf - #include ".config/Xresources.d/xterm" - #include ".config/Xresources.d/URxvt" -#+end_src -** global settings -#+begin_src conf - Xft.dpi: 72 - Xft.lcdfilter: lcddefault - Xft.hintstyle: hintfull - Xft.hinting: 1 - Xft.antialias: 1 - Xft.rgba: rgb -#+end_src -** cursor -#+begin_src conf - Xcursor.theme: ComixCursors-Green -#+end_src -* ~/.config/Xresources.d -** URxvt -:PROPERTIES: -:header-args: :tangle ~/.config/Xresources.d/URxvt :mkdirp t :padline no -:END: -*** heading -#+begin_src conf - ! ~/.config/Xresources.d/URxvt - ! X resources for URxvt - ! Do not edit this file directly. - ! this file is autogenerated using Emacs org-mode. - ! -#+end_src -*** Save number lines in the scrollback buffer -The default is =64=. -#+begin_src conf - URxvt.saveLines: 2000 -#+end_src -*** Scrollback buffer in secondary screen -#+begin_src conf - URxvt.secondaryScreen: 1 - URxvt.secondaryScroll: 0 -#+end_src -*** Scrollbars -#+begin_src conf - URxvt.scrollBar: False - URxvt.scrollBar_right: false - URxvt.scrollBar_floating: false - URxvt.scrollstyle: rxvt -#+end_src -*** Sets the terminal name -#+begin_src conf - URxvt.termName: xterm-256color -#+end_src -*** Blink cursor -#+begin_src conf - URxvt.cursorBlink: True -#+end_src -*** Only works with patched urxvt -#+begin_src conf - URxvt.secondaryWheel: 1 -#+end_src -*** Fonts -#+begin_src conf - URxvt.font: xft:Fantasque\ Sans\ Mono:size=8 -#+end_src -*** Copy and Paste -#+begin_src conf - ! CTRL-SHIFT-c & CTRL-SHIFT-v - URxvt.keysym.C-S-0x43: eval:selection_to_clipboard - URxvt.keysym.C-S-0x56: eval:paste_clipboard -#+end_src -*** Turn off ISO 14755 -#+begin_src conf - URxvt.iso14755: false - URxvt.iso14755_52: false -#+end_src -*** Bell -From https://wiki.archlinux.org/index.php/Rxvt-unicode/Tips_and_tricks -#+begin_src conf - URxvt.bell-command: canberra-gtk-play -i bell -#+end_src -** xterm -:PROPERTIES: -:header-args: :tangle ~/.config/Xresources.d/xterm :mkdirp t :padline no -:END: -*** heading -#+begin_src conf - ! ~/.config/Xresources.d/xterm - ! X resources for XTerm - ! Do not edit this file directly. - ! this file is autogenerated using Emacs org-mode. - ! -#+end_src -*** general settings -#+begin_src conf - xterm*termName: xterm-256color - xterm.vt100.geometry: 80x24 - xterm*saveLines: 4096 - xterm*scrollBar: False - xterm*.LoginShell: True - xterm*rightScrollBar: False - xterm*scrollTtyOutput: False -#+end_src -*** Copy and Paste -#+begin_src conf - xterm.selectToClipboard: true - xterm*translations: #override \ - Ctrl Shift C: copy-selection(CLIPBOARD) \n\ - Ctrl Shift V: insert-selection(CLIPBOARD) \n\ - Ctrl : exec-formatted("xdg-open '%t'", PRIMARY) \n\ - ~Meta ShiftTab: string(\033[Z) \n\ - Meta ShiftTab: string(\033\033[Z) \n\ - Ctrl minus: smaller-vt-font() \n\ - Ctrl plus: larger-vt-font() \n\ - Ctrl 0: set-vt-font(d) -#+end_src -*** Alt-key input -#+begin_src conf - xterm*eightBitInput: false - xterm*metaSendsEscape: true -#+end_src -*** Allow selecting email/url by double-click -#+begin_src conf - xterm*charClass: 33:48,37-38:48,45-47:48,64:48,58:48,126:48,61:48,63:48,43:48,35:48 -#+end_src -*** font -#+begin_src conf - xterm*renderFont: true - xterm*faceName: Fantasque Sans Mono - xterm*faceSize: 10 -#+end_src -* ~/.Xprofile -:PROPERTIES: -:header-args: :tangle ~/.xprofile :shebang #!/bin/sh -:END: -This script will allows you to execute commands at the beginning of X user session. -** header -#+begin_src sh - # ~/.xprofile - # user X session startup file. - # -#+end_src -** load per-file configuration. -#+begin_src sh - if [ -d "${HOME}/.config/xprofile.d" ]; then - for xfiles in "${HOME}"/.config/xprofile.d/*.sh; do - # shellcheck disable=1090 - . "${xfiles}" - done - unset xfiles - fi -#+end_src -** allows for user overrides. -This is useful if there's a host-specific configuration. -#+begin_src sh - # shellcheck disable=1091 - [ -f "${XDG_CONFIG_HOME}"/xprofile.local ] && . "${XDG_CONFIG_HOME}"/xprofile.local - # shellcheck disable=1091 - [ -f "${HOME}"/.xprofile.local ] && . "${HOME}"/.xprofile.local -#+end_src -** Stumpwm specifics -#+begin_src sh - [ -n "${CHEMACS_PROFILE}" ] && _args="-s ${CHEMACS_PROFILE}" - # run emacs in stumpwm - [ "${DESKTOP_SESSION}" == "stumpwm" ] && emacsclient -t "${_args}" -#+end_src -* ~/.config/xprofile.d -** 00-display.sh -:PROPERTIES: -:header-args: :tangle ~/.config/xprofile.d/00-display.sh :mkdirp t :shebang #!/bin/sh :padline no -:END: -*** header -#+begin_src sh - # ~/.config/xprofile.d/00-display.sh - # various ui-related security settings - # -#+end_src -*** set scaling based on hostname -#+begin_src sh - case "${HOSTNAME}" in - "arch-server") - xrandr --output VGA1 --scale 1.25x1.25 - ;; - esac -#+end_src -** 00-security.sh -:PROPERTIES: -:header-args: :tangle ~/.config/xprofile.d/00-security.sh :mkdirp t :shebang #!/bin/sh :padline no -:END: -*** header -#+begin_src sh - # ~/.config/xprofile.d/00-security.sh - # various ui-related security settings - # -#+end_src -*** gnome-keyring-daemon -#+begin_src sh - if [ "$(command -v gnome-keyring-daemon)" ] && - [ ! $(pgrep -u ${USER} -x gnome-keyring-d) ];then - eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)" >/dev/null 2>&1 - export SSH_AUTH_SOCK GNOME_KEYRING_CONTROL - fi -#+end_src -*** ssh-askpass and polkit -#+begin_src sh - case "${DISTRO}" in - gentoo) - [ -f /usr/bin/x11-ssh-askpass ] && - export SSH_ASKPASS=/usr/bin/x11-ssh-askpass && - export SUDO_ASKPASS=/usr/bin/x11-ssh-askpass - # polkit - if [ ! "$(pgrep -u ${USER} -x polkit-gnome-au)" ] && - [ -e /usr/libexec/polkit-gnome-authentication-agent-1 ];then - sleep 1 && /usr/libexec/polkit-gnome-authentication-agent-1 & - fi - ;; - arch) - if [ -f /usr/lib/ssh/x11-ssh-askpass ];then - [ ! -L ~/.local/bin/ssh-askpass ] && - ln -sf /usr/lib/ssh/x11-ssh-askpass ~/.local/bin/ssh-askpass - export SSH_ASKPASS=ssh-askpass - export SUDO_ASKPASS="${HOME}"/.local/bin/ssh-askpass - fi - # polkit - if [ ! "$(pgrep -u ${USER} -x polkit-gnome-authentication-agent-1)" ] && - [ -e /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 ];then - sleep 1 && /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & - fi - # keyring - [ "$(command -v dbus-update-activation-environment)" ] && - dbus-update-activation-environment --systemd DISPLAY - ;; - freebsd) - [ -f /usr/local/bin/x11-ssh-askpass ] && - export SSH_ASKPASS=/usr/local/bin/x11-ssh-askpass && - export SUDO_ASKPASS=/usr/local/bin/x11-ssh-askpass +#+begin_html + +GPLv3 + - # polkit - if [ ! "$(pgrep -u ${USER} -x polkit-gnome-authentication-agent-1)" ] && - [ -e /usr/local/libexec/polkit-gnome-authentication-agent-1 ];then - sleep 1 && /usr/local/libexec/polkit-gnome-authentication-agent-1 & - fi - # keyring - [ "$(command -v dbus-update-activation-environment)" ] && - dbus-update-activation-environment DISPLAY - ;; - esac -#+end_src -** 01-gtk-path.sh -:PROPERTIES: -:header-args: :tangle ~/.config/xprofile.d/01-gtk-path.sh :mkdirp t :shebang #!/bin/sh :padline no -:END: -*** header -#+begin_src sh - # ~/.config/xprofile.d/01-gtk-path.sh - # set new location for GTK and GTK2 - # https://wiki.archlinux.org/title/XDG_Base_Directory - # -#+end_src -*** GTKRC -#+begin_src sh - export GTK_RC_FILES="${XDG_CONFIG_HOME}"/gtk-1.0/gtkrc - [ -d "${GTK_RC_FILES%%/gtkrc}" ] && mkdir -p "${GTK_RC_FILES%%/gtkrc}" - export GTK2_RC_FILES="${XDG_CONFIG_HOME}"/gtk-2.0/gtkrc - [ -d "${GTK2_RC_FILES%%/gtkrc}" ] && mkdir -p "${GTK2_RC_FILES%%/gtkrc}" -#+end_src -* ~/.xinitrc -:PROPERTIES: -:header-args: :tangle ~/.xinitrc :shebang #!/bin/sh :padline no -:END: -** heading -#+begin_src sh - # ~/.xinitrc - # Configuration script for manual X session. - # -#+end_src -** variables -#+begin_src sh - userresources=${HOME}/.Xresources - usermodmap=${HOME}/.Xmodmap - OS=$(uname -s) - - case "${OS}" in - "Linux") - if [ "${DISTRO}" = "ubuntu" ]; then - sysresources=/etc/X11/xinit/Xresources - sysmodmap=/etc/X11/xinit/Xmodmap - else - sysresources=/etc/X11/xinit/.Xresources - sysmodmap=/etc/X11/xinit/.Xmodmap - fi - ;; - "FreeBSD") - sysresources=/usr/local/etc/X11/xinit/.Xresources - sysmodmap=/usr/local/etc/X11/xinit/.Xmodmap - ;; - esac -#+end_src -** merge in defaults and keymaps -#+begin_src sh - [ -f "${sysresources}" ] && - xrdb -merge "${sysresources}" - - [ -f "${sysmodmap}" ] && - xmodmap "${sysmodmap}" - - [ -f "${userresources}" ] && - xrdb -merge "${userresources}" - - [ -f "${usermodmap}" ] && - xmodmap "${usermodmap}" -#+end_src -** source system xinit configuration -#+begin_src sh - # shellcheck disable=1090 - if [ -d /etc/X11/xinit/xinitrc.d ] ; then - for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do - [ -x "${f}" ] && . "${f}" - done - unset f - fi -#+end_src -** setxkbmap -#+begin_src sh - setxkbmap -option terminate:ctrl_alt_bksp -#+end_src -** Change X shaped default cursor -from arch [[https://wiki.archlinux.org/title/Cursor_themes#X_resources][wiki]]: -#+begin_src conf - xsetroot -cursor_name left_ptr -#+end_src -** source xprofile -#+begin_src sh - [ -f /etc/xprofile ] && . /etc/xprofile - [ -f "${HOME}"/.xprofile ] && . "${HOME}"/.xprofile -#+end_src -** sets /DESKTOP_SESSION/ -Only set this if it wasn't already defined. -#+begin_src sh - [ -z ${DESKTOP_SESSION} ] && export DESKTOP_SESSION=${1:-exwm} -#+end_src -** initial wallpapers -#+begin_src sh - # for archlinux - [ -d /usr/share/backgrounds/archlinux/ ] && - feh -zr --bg-fill /usr/share/backgrounds/archlinux/ - # FreeBSD - [ -d /usr/local/share/wallpapers/freebsd-8k-wallpapers/ ] && - feh -zr --bg-fill /usr/local/share/wallpapers/freebsd-8k-wallpapers/ -#+end_src -** Chemacs -This is for /Emacs/. -#+begin_src sh - for chemacs_profile in ~/.emacs-profile ~/.config/chemacs/profile; do - if [ -e ${chemacs_profile} ]; then - export CHEMACS_PROFILE=`cat ${chemacs_profile}` - fi - done - - if [ -n "${CHEMACS_PROFILE}" ]; then - _emacs_args="-s ${CHEMACS_PROFILE}" - fi -#+end_src -** Start the desktop -#+begin_src sh - case $DESKTOP_SESSION in - "exwm") - exec emacs --debug-init -l ~/.config/exwm/config - ;; - "qtile") - exec qtile start - ;; - "stumpwm") - if [ $(command -v ros) ]; then - exec ros run -- --load /usr/local/bin/startstumpwm - elif [ $(command -v sbcl) ]; then - exec sbcl --load /usr/local/bin/startstumpwm - fi - ;; - "i3") - exec i3 -V >> /tmp/i3.log - ;; - esac -#+end_src + +Build status + +#+end_html +* About +Collection of configuration files for X11-related applications. diff --git a/build.el b/build.el new file mode 100644 index 0000000..deae947 --- /dev/null +++ b/build.el @@ -0,0 +1,57 @@ +;;; build --- build the documentation for publication -*- lexical-binding: t -*- +;;; Commentary: +;;; Code: +(require 'package) +(setq package-user-dir (expand-file-name "./.packages")) +(setq package-archives '(("melpa" . "https://melpa.org/packages/") + ("elpa" . "https://elpa.gnu.org/packages/"))) + +(package-initialize) +(unless package-archive-contents + (package-refresh-contents)) + +(package-install 'htmlize) +(package-install 'reformatter) +(package-install 'color-theme-modern) + +(require 'htmlize) +(require 'ox-publish) +(require 'font-lock) + +(load-theme 'greiner t t) +(enable-theme 'greiner) + +(global-font-lock-mode t) +(setq org-html-validation-link nil + org-html-head-include-scripts nil + org-html-include-default-style nil + org-src-fontify-natively t) + +(setq org-publish-project-alist + '(("dotfiles-i3" + :components ("pages" "static")) + ("pages" + :recursive t + :base-directory "./content" + :publishing-directory "./public" + :publishing-function org-html-publish-to-html + :with-author t + :with-creator nil + :with-toc t + :setion-numbers nil + :time-stamp-file nil) + ("static" + :recursive t + :base-directory "./assets" + :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf" + :publishing-directory "./public/assets" + :publishing-function org-publish-attachment))) + +;; Generate site + +(org-publish-all t) + +(message "Build completed") + +(provide 'build) +;;; build.el ends here diff --git a/index.org b/index.org new file mode 100644 index 0000000..8a21681 --- /dev/null +++ b/index.org @@ -0,0 +1,692 @@ +#+options: ':nil *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline author:t +#+options: broken-links:nil c:nil creator:nil d:(not "LOGBOOK") date:t e:t +#+options: email:nil f:t inline:t num:t p:nil pri:nil prop:nil stat:t tags:t +#+options: tasks:t tex:t timestamp:t title:t toc:t todo:t |:t +#+title: X11 Configuration Files +#+date: <2024-03-12 Tue> +#+author: Kristian Alexander P +#+email: alexforsale@yahoo.com +#+language: en +#+select_tags: export +#+exclude_tags: noexport +#+creator: Emacs 29.2 (Org mode 9.6.15) +#+cite_export: +#+startup: indent fold +#+export_file_name: index.html +#+setupfile: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup +* About +* Xprofile +** =.xprofile= +:PROPERTIES: +:header-args: :tangle .xprofile :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.xprofile + # user X session startup file. + # + + if [ -d "${HOME}/.config/xprofile.d" ]; then + for xfiles in "${HOME}"/.config/xprofile.d/*.sh; do + # shellcheck disable=1090 + . "${xfiles}" + done + unset xfiles + fi + + # shellcheck disable=1091 + [ -f "${XDG_CONFIG_HOME}"/xprofile.local ] && . "${XDG_CONFIG_HOME}"/xprofile.local + # shellcheck disable=1091 + [ -f "${HOME}"/.xprofile.local ] && . "${HOME}"/.xprofile.local +#+end_src +**** Modules +***** =00-security.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/00-security.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # various ui-related security settings + # + + if [ "$(command -v gnome-keyring-daemon)" ] && + [ ! $(pgrep -u ${USER} -x gnome-keyring-d) ];then + eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)" >/dev/null 2>&1 + export SSH_AUTH_SOCK GNOME_KEYRING_CONTROL + fi + case "${DISTRO}" in + gentoo) + [ -f /usr/bin/x11-ssh-askpass ] && + export SSH_ASKPASS=/usr/bin/x11-ssh-askpass && + export SUDO_ASKPASS=/usr/bin/x11-ssh-askpass + + # polkit + if [ ! "$(pgrep -u ${USER} -x polkit-gnome-au)" ];then + sleep 1 && /usr/libexec/polkit-gnome-authentication-agent-1 & + fi + ;; + arch) + if [ -f /usr/lib/ssh/x11-ssh-askpass ];then + [ ! -L ~/.local/bin/ssh-askpass ] && + ln -sf /usr/lib/ssh/x11-ssh-askpass ~/.local/bin/ssh-askpass + export SSH_ASKPASS=ssh-askpass + export SUDO_ASKPASS="${HOME}"/.local/bin/ssh-askpass + fi + # polkit + if [ ! "$(pgrep -u ${USER} -x polkit-gnome-authentication-agent-1)" ];then + sleep 1 && /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & + fi + + # keyring + [ "$(command -v dbus-update-activation-environment)" ] && + dbus-update-activation-environment --systemd DISPLAY + ;; + freebsd) + [ -f /usr/local/bin/x11-ssh-askpass ] && + export SSH_ASKPASS=/usr/local/bin/x11-ssh-askpass && + export SUDO_ASKPASS=/usr/local/bin/x11-ssh-askpass + + # polkit + if [ ! "$(pgrep -u ${USER} -x polkit-gnome-authentication-agent-1)" ];then + sleep 1 && /usr/local/libexec/polkit-gnome-authentication-agent-1 & + fi + # keyring + [ "$(command -v dbus-update-activation-environment)" ] && + dbus-update-activation-environment DISPLAY + ;; + esac +#+end_src +***** =01-gtk-path.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/00-security.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.config/xprofile.d/01-gtk-path.sh + # set new location for GTK and GTK2 + # https://wiki.archlinux.org/title/XDG_Base_Directory + # + + export GTK_RC_FILES="${XDG_CONFIG_HOME}"/gtk-1.0/gtkrc + [ -d "${GTK_RC_FILES%%/gtkrc}" ] && mkdir -p "${GTK_RC_FILES%%/gtkrc}" + export GTK2_RC_FILES="${XDG_CONFIG_HOME}"/gtk-2.0/gtkrc + [ -d "${GTK2_RC_FILES%%/gtkrc}" ] && mkdir -p "${GTK2_RC_FILES%%/gtkrc}" + + [ -z "${GTK_THEME}" ] && export GTK_THEME=Breeze-Dark +#+end_src +***** =02-notification.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/02-notification.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.config/xprofile.d/02-notification.sh + # notification settings + # + + # dunst + if [ "$(command -v dunst)" ];then + case "${DISTRO}" in + arch) + if [ ! $(pgrep -u ${USER} dunst) ] && + [ -e ${XDG_CONFIG_HOME}/dunst/dunstrc ]; then + dbus-launch --sh-syntax --exit-with-session dunst -conf ${XDG_CONFIG_HOME}/dunst/dunstrc & + fi + ;; + esac + fi +#+end_src +***** =03-sxhkd.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/03-sxhkd.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.config/xprofile.d/03-sxhkd.sh + # sxhkd settings + # + + if [ -z "${_NO_SXHKD}" ] && [ ! $(pgrep -u ${USER} -x sxhkd) ] && + [ $(command -v sxhkd) ]; then + if [ -e "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc.local ];then # per-user configuration + sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc.local & + elif [ -e "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc-"${DISTRO}" ];then # per-distro configuration, i.e. sxhkdrc-arch + sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc-"${DISTRO}" & + else + sxhkd -c "${XDG_CONFIG_HOME}"/sxhkd/sxhkdrc & + fi + fi +#+end_src +***** =04-bluetooth.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/04-bluetooth.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.config/xprofile.d/04-bluetooth.sh + # bluetooth configuration + + # blueman-tray + if [ "$(command -v blueman-tray)" ] && + [ ! $(pgrep -u ${USER} -x blueman-tray) ] && + [ -z "${_NO_BLUEMAN_TRAY}" ]; then + blueman-tray & + fi +#+end_src +***** =05-network.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/05-network.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.config/xprofile.d/05-network.sh + # various networking app +#+end_src +***** =06-ui.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/06-ui.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.config/xprofile.d/06-ui.sh + # various ui settings + # monitor + _count=0 + for i in $(xrandr | grep " connected"| awk '{print $1}');do + _count=$((_count+1)) + export MONITOR${_count}=${i} + done + unset _count + + if [[ -z "${XCURSOR_THEME}" ]]; then + export XCURSOR_THEME="Bibata-Modern-Classic" + fi + + if [[ -z "${XCURSOR_SIZE}" ]]; then + export XCURSOR_SIZE=24 + fi + + if [[ -z "${XCURSOR_PATH}" ]]; then + export XCURSOR_PATH=${XCURSOR_PATH}:/usr/share/icons:~/.local/share/icons + fi +#+end_src +***** =07-filemanager.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/07-filemanager.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.config/xprofile.d/07-filemanager.sh + # file manager configuration + + [ "$(command -v udiskie)" ] && + udiskie & + + [ "${_WM}" = "i3" ] && + export _NO_PCMANFM=1 + + # pcmanfm + if [ $(command -v pcmanfm) ] && + [ -z ${_NO_PCMANFM} ]; then + pcmanfm --desktop -d & + fi +#+end_src +***** =08-multimedia.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/08-multimedia.sh :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.config/xprofile.d/08-multimedia.sh + # various multimedia app + + # mpd + if [ $(command -v mpd) ] && [ ! $(pgrep -u ${USER} mpd) ];then + [ ! -e "${XDG_CONFIG_HOME}"/mpd/pid ] && mpd "${mpd_conf_file}" & + fi +#+end_src +***** =09-x0vnc.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/09-x0vnc.sh :shebang #!/bin/sh +:END: + +#+begin_src sh + # ~/.config/xprofile.d/09-x0vnc.sh + # x0vnc + + case "${HOSTNAME}" in + "tanzania") + x0vncserver -rfbauth ~/.vnc/passwd -UseIPv6 -rfbport 5912 & + ;; + esac +#+end_src +***** =99-ddgr.sh= +:PROPERTIES: +:header-args: :tangle .config/xprofile.d/99-ddgr.sh :shebang #!/bin/sh +:END: + +#+begin_src sh + # ~/.config/xprofile.d/99-ddgr.sh + # duckduckgo rofi + if [ $(command -v ddgr) ] && [ $(command -v rofi-search) ]; then + export ROFI_SEARCH=ddgr + fi +#+end_src +* Xinit +** =.xinitrc= +:PROPERTIES: +:header-args: :tangle .xinitrc :shebang #!/bin/sh +:END: + +#+begin_src sh -n + # ~/.xinitrc + # Configuration script for manual X session. + # + userresources=${HOME}/.Xresources + usermodmap=${HOME}/.Xmodmap + OS=$(uname -s) + + case "${OS}" in + "Linux") + if [ "${DISTRO}" = "ubuntu" ]; then + sysresources=/etc/X11/xinit/Xresources + sysmodmap=/etc/X11/xinit/Xmodmap + else + sysresources=/etc/X11/xinit/.Xresources + sysmodmap=/etc/X11/xinit/.Xmodmap + fi + ;; + "FreeBSD") + sysresources=/usr/local/etc/X11/xinit/.Xresources + sysmodmap=/usr/local/etc/X11/xinit/.Xmodmap + ;; + esac + [ -f "${sysresources}" ] && + xrdb -merge "${sysresources}" + + [ -f "${sysmodmap}" ] && + xmodmap "${sysmodmap}" + + [ -f "${userresources}" ] && + xrdb -merge "${userresources}" + + [ -f "${usermodmap}" ] && + xmodmap "${usermodmap}" + # shellcheck disable=1090 + if [ -d /etc/X11/xinit/xinitrc.d ] ; then + for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do + [ -x "${f}" ] && . "${f}" + done + unset f + fi + [ -f /etc/xprofile ] && . /etc/xprofile + [ -f "${HOME}"/.xprofile ] && . "${HOME}"/.xprofile + [ -z ${DESKTOP_SESSION} ] && export DESKTOP_SESSION=${1:-exwm} + # for archlinux + [ -d /usr/share/backgrounds/archlinux/ ] && + feh -zr --bg-fill /usr/share/backgrounds/archlinux/ + # FreeBSD + [ -d /usr/local/share/wallpapers/freebsd-8k-wallpapers/ ] && + feh -zr --bg-fill /usr/local/share/wallpapers/freebsd-8k-wallpapers/ + for chemacs_profile in ~/.emacs-profile ~/.config/chemacs/profile; do + if [ -e ${chemacs_profile} ]; then + export CHEMACS_PROFILE=`cat ${chemacs_profile}` + fi + done + + if [ -n "${CHEMACS_PROFILE}" ]; then + _emacs_args="-s ${CHEMACS_PROFILE}" + fi + case $DESKTOP_SESSION in + "exwm") + exec emacs --debug-init -l ~/.exwm + ;; + "qtile") + exec qtile start + ;; + "stumpwm") + if [ $(command -v ros) ]; then + exec ros run -- --load /usr/local/bin/startstumpwm + elif [ $(command -v sbcl) ]; then + exec sbcl --load /usr/local/bin/startstumpwm + fi + ;; + esac +#+end_src +* Xresources +** =.Xresouces= +:PROPERTIES: +:header-args: :tangle .Xresources +:END: + +#+begin_src conf -n + #include ".config/Xresources.d/xterm" + #include ".config/Xresources.d/URxvt" + #include ".config/Xresources.d/x11-ssh-askpass" + #include ".config/Xresources.d/xcalc" + #include ".config/Xresources.d/xclock" + #include ".config/Xresources.d/xscreensaver" + #include ".config/Xresources.d/colors" + + ! cursor theme + Xcursor.theme: Bibata-Modern-Classic + Xcursor.size: 24 + Xft.autohint: 0 + Xft.lcdfilter: lcddefault + Xft.hintstyle: hintslight + Xft.hinting: 1 + Xft.antialias: 1 + Xft.rgba: rgb + Xft.dpi: 96 +#+end_src +** Modules +*** xterm +:PROPERTIES: +:header-args: :tangle .config/Xresources.d/xterm :mkdirp t +:END: + +#+begin_src conf -n + xterm*termName: xterm-256color + xterm.vt100.geometry: 80x24 + xterm*saveLines: 4096 + xterm*scrollBar: False + xterm*.LoginShell: True + xterm*rightScrollBar: False + xterm*scrollTtyOutput: False + xterm.selectToClipboard: true + xterm.*backarrowKey: false + xterm*translations: #override \ + Ctrl Shift C: copy-selection(CLIPBOARD) \n\ + Ctrl Shift V: insert-selection(CLIPBOARD) \n\ + Ctrl : exec-formatted("xdg-open '%t'", PRIMARY) \n\ + ~Meta ShiftTab: string(\033[Z) \n\ + Meta ShiftTab: string(\033\033[Z) \n\ + Ctrl minus: smaller-vt-font() \n\ + Ctrl plus: larger-vt-font() \n\ + Ctrl 0: set-vt-font(d) + xterm*eightBitInput: false + xterm*metaSendsEscape: true + xterm*charClass: 33:48,37-38:48,45-47:48,64:48,58:48,126:48,61:48,63:48,43:48,35:48 + xterm*renderFont: true + xterm*faceName: OverpassM Nerd Font Mono + xterm*faceSize: 12 +#+end_src +*** URxvt +:PROPERTIES: +:header-args: :tangle .config/Xresources.d/URxvt +:END: + +#+begin_src conf -n + xterm*termName: xterm-256color + xterm.vt100.geometry: 80x24 + xterm*saveLines: 4096 + xterm*scrollBar: False + xterm*.LoginShell: True + xterm*rightScrollBar: False + xterm*scrollTtyOutput: False + xterm.selectToClipboard: true + xterm.*backarrowKey: false + xterm*translations: #override \ + Ctrl Shift C: copy-selection(CLIPBOARD) \n\ + Ctrl Shift V: insert-selection(CLIPBOARD) \n\ + Ctrl : exec-formatted("xdg-open '%t'", PRIMARY) \n\ + ~Meta ShiftTab: string(\033[Z) \n\ + Meta ShiftTab: string(\033\033[Z) \n\ + Ctrl minus: smaller-vt-font() \n\ + Ctrl plus: larger-vt-font() \n\ + Ctrl 0: set-vt-font(d) + xterm*eightBitInput: false + xterm*metaSendsEscape: true + xterm*charClass: 33:48,37-38:48,45-47:48,64:48,58:48,126:48,61:48,63:48,43:48,35:48 + xterm*renderFont: true + xterm*faceName: OverpassM Nerd Font Mono + xterm*faceSize: 12 +#+end_src +*** x11-ssh-askpass +:PROPERTIES: +:header-args: :tangle .config/Xresources.d/x11-ssh-askpass +:END: + +#+begin_src conf -n + ! -*- eval (rainbow-mode 1) -*- + x11-ssh-askpass*background: #000000 + x11-ssh-askpass*foreground: #ffffff + x11-ssh-askpass.Button*background: #000000 + x11-ssh-askpass.Indicator*foreground: #ff9900 + x11-ssh-askpass.Indicator*background: #090909 + x11-ssh-askpass*topShadowColor: #000000 + x11-ssh-askpass*bottomShadowColor: #000000 + x11-ssh-askpass.*borderWidth: 1 +#+end_src +*** xcalc +:PROPERTIES: +:header-args: :tangle .config/Xresources.d/xcalc +:END: + +#+begin_src conf -n + ! -*- eval (rainbow-mode 1) -*- + xcalc*geometry: 200x275 + xcalc.ti.bevel.background: #111111 + xcalc.ti.bevel.screen.background: #000000 + xcalc.ti.bevel.screen.DEG.background: #000000 + xcalc.ti.bevel.screen.DEG.foreground: LightSeaGreen + xcalc.ti.bevel.screen.GRAD.background: #000000 + xcalc.ti.bevel.screen.GRAD.foreground: LightSeaGreen + xcalc.ti.bevel.screen.RAD.background: #000000 + xcalc.ti.bevel.screen.RAD.foreground: LightSeaGreen + xcalc.ti.bevel.screen.INV.background: #000000 + xcalc.ti.bevel.screen.INV.foreground: Red + xcalc.ti.bevel.screen.LCD.background: #000000 + xcalc.ti.bevel.screen.LCD.foreground: LightSeaGreen + xcalc.ti.bevel.screen.LCD.shadowWidth: 0 + xcalc.ti.bevel.screen.M.background: #000000 + xcalc.ti.bevel.screen.M.foreground: LightSeaGreen + xcalc.ti.bevel.screen.P.background: #000000 + xcalc.ti.bevel.screen.P.foreground: Yellow + xcalc.ti.Command.foreground: White + xcalc.ti.Command.background: #777777 + xcalc.ti.button5.background: Orange3 + xcalc.ti.button19.background: #611161 + xcalc.ti.button18.background: #611161 + xcalc.ti.button20.background: #611111 + xcalc.ti.button25.background: #722222 + xcalc.ti.button30.background: #833333 + xcalc.ti.button35.background: #944444 + xcalc.ti.button40.background: #a55555 + xcalc.ti.button22.background: #222262 + xcalc.ti.button23.background: #222262 + xcalc.ti.button24.background: #222272 + xcalc.ti.button27.background: #333373 + xcalc.ti.button28.background: #333373 + xcalc.ti.button29.background: #333373 + xcalc.ti.button32.background: #444484 + xcalc.ti.button33.background: #444484 + xcalc.ti.button34.background: #444484 + xcalc.ti.button37.background: #555595 + xcalc.ti.button38.background: #555595 + xcalc.ti.button39.background: #555595 + XCalc*Cursor: hand2 + XCalc*ShapeStyle: rectangle +#+end_src +*** xclock +:PROPERTIES: +:header-args: :tangle .config/Xresources.d/xclock +:END: + +#+begin_src conf -n + xclock*update: 1 + xclock*analog: false + xclock*Foreground: white + xclock*background: black +#+end_src +*** xscreensaver +:PROPERTIES: +:header-args: :tangle .config/Xresources.d/xscreensaver +:END: + +#+begin_src conf -n + xscreensaver.Dialog.headingFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* + xscreensaver.Dialog.bodyFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* + xscreensaver.Dialog.labelFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* + xscreensaver.Dialog.unameFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* + xscreensaver.Dialog.buttonFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* + xscreensaver.Dialog.dateFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* + xscreensaver.passwd.passwdFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* + xscreensaver.Dialog.foreground: #ffffff + xscreensaver.Dialog.background: #111111 + xscreensaver.Dialog.topShadowColor: #111111 + xscreensaver.Dialog.bottomShadowColor: #111111 + xscreensaver.Dialog.Button.foreground: #666666 + xscreensaver.Dialog.Button.background: #ffffff + !username/password input box and date text colour + xscreensaver.Dialog.text.foreground: #666666 + xscreensaver.Dialog.text.background: #ffffff + xscreensaver.Dialog.internalBorderWidth:24 + xscreensaver.Dialog.borderWidth: 20 + xscreensaver.Dialog.shadowThickness: 2 + xscreensaver.passwd.thermometer.foreground: #ff0000 + xscreensaver.passwd.thermometer.background: #000000 + xscreensaver.passwd.thermometer.width: 8 + xscreensaver.dateFormat: %I:%M%P %a %b %d, %Y +#+end_src +*** colors +:PROPERTIES: +:header-args: :tangle .config/Xresources.d/colors +:END: + +#+begin_src conf -n + ! -*- eval (rainbow-mode 1) -*- + ! X colors. + ! Generated by 'wal' + ,*foreground: #fdf6e3 + ,*background: #292d3e + ,*.foreground: #fdf6e3 + ,*.background: #292d3e + emacs*foreground: #fdf6e3 + emacs*background: #073642 + URxvt*foreground: #fdf6e3 + XTerm*foreground: #fdf6e3 + UXTerm*foreground: #fdf6e3 + URxvt*background: [100]#073642 + XTerm*background: #073642 + UXTerm*background: #073642 + URxvt*cursorColor: #dc322f + XTerm*cursorColor: #dc322f + UXTerm*cursorColor: #dc322f + URxvt*borderColor: [100]#073642 + + ! Colors 0-15. + ,*.color0: #073642 + ,*color0: #073642 + ,*.color1: #dc322f + ,*color1: #dc322f + ,*.color2: #859900 + ,*color2: #859900 + ,*.color3: #b58900 + ,*color3: #b58900 + ,*.color4: #268bd2 + ,*color4: #268bd2 + ,*.color5: #d33682 + ,*color5: #d33682 + ,*.color6: #2aa198 + ,*color6: #2aa198 + ,*.color7: #eee8d5 + ,*color7: #eee8d5 + ,*.color8: #6c7c80 + ,*color8: #6c7c80 + ,*.color9: #dc322f + ,*color9: #dc322f + ,*.color10: #859900 + ,*color10: #859900 + ,*.color11: #b58900 + ,*color11: #b58900 + ,*.color12: #268bd2 + ,*color12: #268bd2 + ,*.color13: #d33682 + ,*color13: #d33682 + ,*.color14: #2aa198 + ,*color14: #2aa198 + ,*.color15: #eee8d5 + ,*color15: #eee8d5 + + ! Black color that will not be affected by bold highlighting. + ,*.color66: #073642 + ,*color66: #073642 + + ! Xclock colors. + XClock*foreground: #fdf6e3 + XClock*background: #073642 + XClock*majorColor: rgba:ee/e8/d5/ff + XClock*minorColor: rgba:ee/e8/d5/ff + XClock*hourColor: rgba:ee/e8/d5/ff + XClock*minuteColor: rgba:ee/e8/d5/ff + XClock*secondColor: rgba:ee/e8/d5/ff + + ! Set depth to make transparency work. + URxvt*depth: 32 +#+end_src +* Xsettingsd +:PROPERTIES: +:header-args: :tangle .config/xsettingsd/xsettingsd.conf :mkdirp t +:END: + +#+begin_src conf -n + Gtk/CursorThemeName "Bibata-Modern-Classic" + Net/CursorBlink 1 + Net/CursorBlinkTime 1200 + Net/DndDragThreshold 8 + Net/DoubleClickDistance 5 + Net/DoubleClickTime 250 + Net/EnableEventSounds 1 + Net/EnableInputFeedbackSounds 1 + Net/IconThemeName "Papirus" + Net/SoundThemeName "freedesktop" + Net/ThemeName "Breeze-dark" + Xft/Antialias 1 + Xft/DPI -1 + Xft/HintStyle "hintslight" + Xft/Hinting 1 + Xft/RGBA "rgb" +#+end_src +* Scripts +** =monitor-setup= +:PROPERTIES: +:header-args: :tangle .local/bin/monitor-setup :shebang #!/bin/sh :mkdirp t +:END: + +#+begin_src sh -n + if [ "$(command -v hostnamectl)" ]; then + _HOSTNAME="$(hostnamectl hostname)" + elif [ -n "${HOSTNAME}" ]; then + _HOSTNAME="${HOSTNAME}" + elif [ -f /etc/hostname ]; then + _HOSTNAME="$(cat /etc/hostname)" + fi + + case ${_HOSTNAME} in + somalia*) + extern=HDMI-2 + intern=eDP-1 + if [ $(xrandr |grep -q "${extern} disconnected") ]; then + xrandr --output "${extern}" --off output "${intern}" --auto + else + xrandr --output "${intern}" --auto --scale 1.25x1.25 --output "${extern}" --auto --left-of "${intern}" + fi + xrandr --output "${intern}" --scale 1.25x1.25 + ;; + esac +#+end_src +** =showclip= +:PROPERTIES: +:header-args: :tangle .local/bin/showclip :shebang #!/bin/sh :mkdirp t +:END: + +#+begin_src sh -n + # Display contents of selection via dunst if running. + + clip=$(xclip -o -selection clipboard) + prim=$(xclip -o -selection primary) + + [ -n "$clip" ] && notify-send -t 1000 "Clipboard:" "$clip" + [ -n "$prim" ] && notify-send -t 1000 "Primary:" "$prim" +#+end_src diff --git a/publish.sh b/publish.sh new file mode 100755 index 0000000..4a3a91f --- /dev/null +++ b/publish.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +mkdir -pv ./content +ln -svf ../index.org ./content/index.org +emacs -Q --script build.el