summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2015-02-09 22:51:14 -0500
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-02-09 22:51:14 -0500
commit66c5faa2bce8809a1e7e90eec0542b4de07915df (patch)
tree36744580a3081f482fe0ee28428f24f664ec5202
parentf9232bbdeeb4000d7b89b8a59d591b787266c24b (diff)
parentca3e04971996ebe2eebf88775e96bbf547aa0abe (diff)
Merge remote-tracking branch 'origin/master' into build64-par/master
-rw-r--r--.config/bash/rc.sh4
-rw-r--r--.config/emacs/init.el11
-rw-r--r--.config/login.d/00_path.sh4
-rw-r--r--.config/login.d/01_xdg.sh28
-rw-r--r--.config/login.d/02_tmpdir.sh1
-rw-r--r--.config/login.d/10_less.sh2
-rw-r--r--.config/login.d/90_dot-runtime.sh5
-rw-r--r--.config/ssh/config17
-rwxr-xr-x.local/bin/config-path16
9 files changed, 47 insertions, 41 deletions
diff --git a/.config/bash/rc.sh b/.config/bash/rc.sh
index ab690cf..7df0373 100644
--- a/.config/bash/rc.sh
+++ b/.config/bash/rc.sh
@@ -5,6 +5,10 @@
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
+# GDM failsafe ignores profile (login) settings, but I use XDG stuff
+# here.
+. "${XDG_CONFIG_HOME:-$HOME/.config}"/login.d/??_xdg.sh
+
# Why is this not on by default?
# "We have a cached value, but it isn't valid anymore. Should we trash it?"
# "Duh, yes!"
diff --git a/.config/emacs/init.el b/.config/emacs/init.el
index f570a1a..5429c08 100644
--- a/.config/emacs/init.el
+++ b/.config/emacs/init.el
@@ -77,7 +77,9 @@
;; This is also nice because I can do event-base programming for what
;; to do once a package is loaded, using :after.
-(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
+;; For some reason, el-get adds a bunch of 3rd-party repos to
+;; package-archives. I guess I'm ok with that? I don't have to
+;; manage them.
(setq package-enable-at-startup nil)
;; What packages el-get should get from ELPA (if it gets them at all)
@@ -86,11 +88,8 @@
(:name dtrt-indent :type elpa ;; Detect indent style for existing files
:after (dtrt-indent-mode 1))
(:name page-break-lines :type elpa ;; Display form-feeds pretty
- :after (progn
- (define-global-minor-mode global-page-break-lines-mode
- page-break-lines-mode page-break-lines-mode
- :group 'page-break-lines)
- (global-page-break-lines-mode 1)))
+ :before (advice-add 'page-break-lines-mode-maybe :override #'page-break-lines-mode)
+ :after (global-page-break-lines-mode 1))
(:name smart-tabs-mode :type elpa ;; Indent with tabs, align with spaces
:after (progn
(smart-tabs-mode 1)
diff --git a/.config/login.d/00_path.sh b/.config/login.d/00_path.sh
index a45f8fd..f4ca3a6 100644
--- a/.config/login.d/00_path.sh
+++ b/.config/login.d/00_path.sh
@@ -1,9 +1,7 @@
-#!/bin/sh
-
if type config-path &>/dev/null; then
config_path=config-path
else
# Bootstrap finding config-path
config_path="$HOME/.local/bin/config-path"
fi
-eval "$("$config_path" | sed 's/^/export /')"
+eval "$(IFS=$'\n'; lines=($("$config_path")); printf -- 'export %s\n' "${lines[@]}")"
diff --git a/.config/login.d/01_xdg.sh b/.config/login.d/01_xdg.sh
index 07cea90..4464764 100644
--- a/.config/login.d/01_xdg.sh
+++ b/.config/login.d/01_xdg.sh
@@ -1,37 +1,37 @@
-#!/bin/bash
-# This should be readable by /bin/sh, but I'm going to assume bash.
+# This should be readable by /bin/sh
# Sets up XDG environmental variables, so programs using them don't have to
# worry about checking if they are set.
# http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
-[[ -n $XDG_DATA_HOME ]] || export XDG_DATA_HOME="$HOME/.local/share"
-[[ -n $XDG_CONFIG_HOME ]] || export XDG_CONFIG_HOME="$HOME/.config"
-[[ -n $XDG_DATA_DIRS ]] || export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
-[[ -n $XDG_CONFIG_DIRS ]] || export XDG_CONFIG_DIRS="/etc/xdg"
-[[ -n $XDG_CACHE_HOME ]] || export XDG_CACHE_HOME="$HOME/.cache"
+[ -n "$XDG_DATA_HOME" ] || export XDG_DATA_HOME="$HOME/.local/share"
+[ -n "$XDG_CONFIG_HOME" ] || export XDG_CONFIG_HOME="$HOME/.config"
+[ -n "$XDG_DATA_DIRS" ] || export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
+[ -n "$XDG_CONFIG_DIRS" ] || export XDG_CONFIG_DIRS="/etc/xdg"
+[ -n "$XDG_CACHE_HOME" ] || export XDG_CACHE_HOME="$HOME/.cache"
# Check if XDG_RUNTIME_DIR is set, but has a bogus setting
-if [[ -n $XDG_RUNTIME_DIR ]] && [[ ! -d $XDG_RUNTIME_DIR ]]; then
+if [ -n "$XDG_RUNTIME_DIR" ] && [ ! -d "$XDG_RUNTIME_DIR" ]; then
unset XDG_RUNTIME_DIR
fi
# Set XDG_RUNTIME_DIR if we can
-if [[ -z $XDG_RUNTIME_DIR ]] && type flock &>/dev/null; then
+if [ -z "$XDG_RUNTIME_DIR" ] && type flock &>/dev/null; then
_diy_xdg_runtime_login() {
export XDG_RUNTIME_DIR="$XDG_CACHE_HOME/xdg-runtime-dir/$HOSTNAME"
# There's a race condition here, between the `ln -s` and `flock`.
# But it's not like I'll be hammering a box with logins.
- if [[ ! -d "$XDG_RUNTIME_DIR" ]]; then
+ if [ ! -d "$XDG_RUNTIME_DIR" ]; then
local tmp="$(mktemp -d --tmpdir -- "${USER}@${HOSTNAME}-runtime.XXXXXXXXXX")"
mkdir -p -- "$XDG_CACHE_HOME/xdg-runtime-dir"
ln -sfT -- "$tmp" "$XDG_RUNTIME_DIR"
fi
- if ! [[ /dev/fd/7 -ef "$XDG_CACHE_HOME/xdg-runtime-dir/.lock" ]]; then
+ if ! [ /dev/fd/7 -ef "$XDG_CACHE_HOME/xdg-runtime-dir/.lock" ]; then
exec 7>"$XDG_CACHE_HOME/xdg-runtime-dir/.lock"
- fi
- if flock -sn 7; then
- trap _diy_xdg_runtime_logout EXIT
+ if flock -sn 7; then
+ # Unfortunately this doesn't survive across exec(1).
+ trap _diy_xdg_runtime_logout EXIT
+ fi
fi
}
_diy_xdg_runtime_logout() {
diff --git a/.config/login.d/02_tmpdir.sh b/.config/login.d/02_tmpdir.sh
index d0079aa..c0d5f18 100644
--- a/.config/login.d/02_tmpdir.sh
+++ b/.config/login.d/02_tmpdir.sh
@@ -1,3 +1,2 @@
mkdir -p -- "$XDG_RUNTIME_DIR/tmpdir"
export TMPDIR="$XDG_RUNTIME_DIR/tmpdir"
-ln -sfT -- "$TMPDIR" "$HOME/tmp"
diff --git a/.config/login.d/10_less.sh b/.config/login.d/10_less.sh
new file mode 100644
index 0000000..c5934d6
--- /dev/null
+++ b/.config/login.d/10_less.sh
@@ -0,0 +1,2 @@
+export LESSHISTFILE="$XDG_CACHE_HOME/less/histfile"
+mkdir -p -- "${LESSHISTFILE%/*}"
diff --git a/.config/login.d/90_dot-runtime.sh b/.config/login.d/90_dot-runtime.sh
index d597cc7..87d30ec 100644
--- a/.config/login.d/90_dot-runtime.sh
+++ b/.config/login.d/90_dot-runtime.sh
@@ -1 +1,4 @@
-ln -sfT -- "$XDG_RUNTIME_DIR" ~/.runtime
+# This is really only needed for ssh ControlPath; as I don't have a
+# way to communicate XD
+mkdir -p -- ~/.runtime
+ln -sfT -- "$XDG_RUNTIME_DIR" ~/.runtime/"$HOSTNAME"
diff --git a/.config/ssh/config b/.config/ssh/config
index 7bab06d..07240a6 100644
--- a/.config/ssh/config
+++ b/.config/ssh/config
@@ -1,7 +1,7 @@
Host *
Protocol 2
ControlMaster auto
- ControlPath ~/.runtime/ssh-%r@%h:%p
+ ControlPath ~/.runtime/%l/ssh-%r@%h:%p
Compression yes
# Purdue ###################################################
@@ -26,12 +26,15 @@ Host lukeshu.com
User lukeshu
Host build64-par
- Port 22
User luke
- ForwardX11 yes
- ForwardX11Trusted yes
-Host build64-par-far
- Port 1864
HostName lukeshu.com
- User luke
+ Port 1864
+ ForwardX11 no
+ ForwardX11Trusted no
+
+ Match host %h.lan.
+ HostName build64-par
+ Port 22
+ ForwardX11 yes
+ ForwardX11Trusted yes
diff --git a/.local/bin/config-path b/.local/bin/config-path
index 7cd1fcd..1d4d4d1 100755
--- a/.local/bin/config-path
+++ b/.local/bin/config-path
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
# All the prefixes to consider
prefixes=(
@@ -61,14 +61,12 @@ main() {
done
# Finally, print the values
- # The `sed` bit here is the only time we call an external program
- {
- var_done PATH
- var_done MANPATH
- var_done LD_LIBRARY_PATH
- var_done RUBYLIB
- var_done PERL5LIB
- } | sed 's/^declare \(-\S* \)*//'
+ lines=()
+ for var in PATH MANPATH LD_LIBRARY_PATH RUBYLIB PERL5LIB; do
+ lines+=("$(var_done "$var")")
+ done
+ shopt -s extglob
+ printf -- '%s\n' "${lines[@]##declare *(-+([[:graph:]]) )}"
}
main "$@"