aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2022-05-27 16:07:23 +1200
committerTom Ryder <tom@sanctum.geek.nz>2022-05-27 16:07:23 +1200
commit3dd6d05cecc14cb6c7d8f16de0b3ea01815cda28 (patch)
tree0a3db4eab78f5e54b7517aba6544dbefa79d0003
parentMerge branch 'release/v12.6.0' (diff)
parentBump VERSION (diff)
downloaddotfiles-3dd6d05cecc14cb6c7d8f16de0b3ea01815cda28.tar.gz
dotfiles-3dd6d05cecc14cb6c7d8f16de0b3ea01815cda28.zip
Merge branch 'release/v12.7.0'v12.7.0
* release/v12.7.0: Use exec in sxhkdrc to save a fork Use parents for terser sxhkdrc Bump up shell history limits Simplify xrandr/xwallpaper setup Add configuration for Parcellite Change dmenu_pass to type not copy the password
-rw-r--r--Makefile5
-rw-r--r--README.md1
-rw-r--r--VERSION4
-rw-r--r--bash/bashrc4
-rwxr-xr-x[-rw-r--r--]bin/dmenu_pass.sh9
-rw-r--r--man/man1/dmenu_pass.1df10
-rw-r--r--man/man7/dotfiles.7df3
-rw-r--r--parcellite/parcelliterc41
-rw-r--r--parcellite/xsession.d/redshift.sh2
-rw-r--r--sh/shrc4
-rw-r--r--sxhkd/sxhkdrc47
-rw-r--r--x/xsession.sh15
12 files changed, 94 insertions, 51 deletions
diff --git a/Makefile b/Makefile
index 52246ad6..c3c3c2ca 100644
--- a/Makefile
+++ b/Makefile
@@ -35,6 +35,7 @@
install-mysql \
install-ncmpcpp \
install-newsboat \
+ install-parcellite \
install-perlcritic \
install-perltidy \
install-plenv \
@@ -537,6 +538,10 @@ install-ksh: check-ksh install-sh
install-login-shell: check-login-shell
sh install/login-shell.sh
+install-parcellite: install-x
+ cp -p -- parcellite/parcelliterc $(XDG_CONFIG_HOME)
+ cp -p -- redshift/xsession.d/* $(HOME)/.xsession.d
+
install-perlcritic: install-sh
cp -p -- perlcritic/profile.d/*.sh $(HOME)/.profile.d
mkdir -p -- $(XDG_CONFIG_HOME)/perlcritic
diff --git a/README.md b/README.md
index 77babf0d..3b89b34b 100644
--- a/README.md
+++ b/README.md
@@ -99,6 +99,7 @@ Configuration is included for:
- [Newsboat](https://newsboat.org/)---Terminal RSS/Atom feed reader
- [`psql(1)`](https://linux.die.net/man/1/psql)---Command-line PostgreSQL
client
+- [Parcellite](http://parcellite.sourceforge.net/)---clipboard manager for X
- [Perl::Critic](http://perlcritic.com/)---static source code analysis engine
for Perl
- [Perl::Tidy](http://perltidy.sourceforge.net/)---reformats Perl source code
diff --git a/VERSION b/VERSION
index 43029dde..8abe7a65 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-tejr dotfiles v12.6.0
-Fri, 20 May 2022 14:24:04 +0000
+tejr dotfiles v12.7.0
+Fri, 27 May 2022 04:07:18 +0000
diff --git a/bash/bashrc b/bash/bashrc
index a60a047e..5d3a7bbc 100644
--- a/bash/bashrc
+++ b/bash/bashrc
@@ -28,8 +28,8 @@ fi
# Clear away command_not_found_handle if a system bashrc file set it up
unset -f command_not_found_handle
-# Keep around 32K lines of history in file
-HISTFILESIZE=32768
+# Keep around 128K lines of history in file
+HISTFILESIZE=131072
# Ignore duplicate commands
HISTCONTROL=ignoredups
diff --git a/bin/dmenu_pass.sh b/bin/dmenu_pass.sh
index bfb687b1..44296439 100644..100755
--- a/bin/dmenu_pass.sh
+++ b/bin/dmenu_pass.sh
@@ -1,4 +1,4 @@
-# Pick a pass(1) password with dmenu(1)
+# Pick and type out a pass(1) password with dmenu(1) and xdotool(1)
self=dmenu_pass
cd -- "${PASSWORD_STORE_DIR:-"$HOME"/.password-store}" || exit
# shellcheck disable=SC2016
@@ -8,7 +8,10 @@ name=$(
LC_ALL=C sort -f |
dmenu
)
-pass show --clip -- "$name" || exit
+password=$(pass show -- "$name" | head -n 1) || exit
+[ -n "$password" ] || exit
+printf %s "$password" | xdotool type --clearmodifiers --file - \
+ || exit
notify-send --app-name="$self" -- \
- "Password saved to CLIPBOARD" \
+ "Password typed" \
"$name"
diff --git a/man/man1/dmenu_pass.1df b/man/man1/dmenu_pass.1df
index 51c32adb..c83cd837 100644
--- a/man/man1/dmenu_pass.1df
+++ b/man/man1/dmenu_pass.1df
@@ -1,17 +1,17 @@
.TH DMENU_PASS 1df "May 2022" "Manual page for dmenu_pass"
.SH NAME
.B dmenu_pass
-\- pick a pass(1) password with dmenu(1)
+\- pick and type a password-store password
.SH SYNOPSIS
.B dmenu_pass
.SH DESCRIPTION
.B dmenu_pass
-applies dmenu(1) to pick a password entry from a pass(1) store and put it into
-the X CLIPBOARD using the "show" command.
+applies dmenu(1) to pick a password entry from a pass(1) store and types it out
+with xdotool(1).
.P
A notification with the default priority is sent when the password is
-successfully clipped.
+successfully typed.
.SH SEE ALSO
-dmenu(1), notify-send(1), pass(1)
+dmenu(1), notify-send(1), pass(1), xdotool(1)
.SH AUTHOR
Tom Ryder <tom@sanctum.geek.nz>
diff --git a/man/man7/dotfiles.7df b/man/man7/dotfiles.7df
index f40500d0..8c19fbfe 100644
--- a/man/man7/dotfiles.7df
+++ b/man/man7/dotfiles.7df
@@ -149,6 +149,9 @@ Newsboat (https://newsboat.org/)\[em]Terminal RSS/Atom feed reader
\f[C]psql(1)\f[R] (https://linux.die.net/man/1/psql)\[em]Command-line
PostgreSQL client
.IP \[bu] 2
+Parcellite (http://parcellite.sourceforge.net/)\[em]clipboard manager
+for X
+.IP \[bu] 2
Perl::Critic (http://perlcritic.com/)\[em]static source code analysis
engine for Perl
.IP \[bu] 2
diff --git a/parcellite/parcelliterc b/parcellite/parcelliterc
new file mode 100644
index 00000000..fad0493e
--- /dev/null
+++ b/parcellite/parcelliterc
@@ -0,0 +1,41 @@
+[rc]
+RCVersion=1
+use_copy=true
+use_primary=true
+synchronize=false
+save_history=true
+history_pos=false
+history_x=1
+history_y=1
+history_limit=64
+data_size=0
+item_size=8
+automatic_paste=false
+auto_key=false
+auto_mouse=true
+key_input=false
+restore_empty=true
+rc_edit=false
+type_search=false
+case_search=false
+ignore_whiteonly=false
+trim_wspace_begend=false
+trim_newline=false
+hyperlinks_only=false
+confirm_clear=true
+current_on_top=true
+single_line=true
+reverse_history=true
+item_length=50
+persistent_history=false
+persistent_separate=false
+persistent_on_top=false
+persistent_delim=\\n
+nonprint_disp=false
+ellipsize=2
+multi_user=true
+icon_name=parcellite
+menu_key=
+history_key=
+phistory_key=
+actions_key=
diff --git a/parcellite/xsession.d/redshift.sh b/parcellite/xsession.d/redshift.sh
new file mode 100644
index 00000000..25241ab3
--- /dev/null
+++ b/parcellite/xsession.d/redshift.sh
@@ -0,0 +1,2 @@
+# Start parcellite(1)
+parcellite &
diff --git a/sh/shrc b/sh/shrc
index 88601391..353120f5 100644
--- a/sh/shrc
+++ b/sh/shrc
@@ -4,8 +4,8 @@ command -p mesg n 2>/dev/null
# Turn off flow control and control character echo
command -p stty -ixon -ctlecho 2>/dev/null
-# Keep around 4K lines of history in memory
-HISTSIZE=4096
+# Keep around 16K lines of history in memory
+HISTSIZE=16384
# If HOSTNAME isn't set by this shell, we'll do it
if [ -z "$HOSTNAME" ] ; then
diff --git a/sxhkd/sxhkdrc b/sxhkd/sxhkdrc
index f8a44ebf..d655dc30 100644
--- a/sxhkd/sxhkdrc
+++ b/sxhkd/sxhkdrc
@@ -1,59 +1,50 @@
super + Return
- x-terminal-emulator
+ exec x-terminal-emulator
-super + control + Return
- x-terminal-emulator -e sh
-
-super + shift + Return
- x-terminal-emulator -e ksh
-
-super + alt + Return
- x-terminal-emulator -e zsh
+super + {control,shift,alt} + Return
+ exec x-terminal-emulator -e {sh,ksh,zsh}
super + b
- x-www-browser
+ exec x-www-browser
super + d
- dmenu_run
+ exec dmenu_run
super + g
- xgoc
+ exec xgoc
super + i
- gimp
+ exec gimp
super + m
- x-terminal-emulator -e tm
+ exec x-terminal-emulator -e tm
super + p
- dmenu_pass
+ exec dmenu_pass
super + t
- thunar
+ exec thunar
super + v
- x-terminal-emulator -e "$VISUAL"
+ exec x-terminal-emulator -e "$VISUAL"
Print
- xsnap
+ exec xsnap
control + Print
- xsnap --freeze --select
+ exec xsnap --freeze --select
super + Print
- xsnap --focused
+ exec xsnap --focused
Pause
- xlock
+ exec xlock
XF86AudioMute
- pactl set-sink-mute @DEFAULT_SINK@ toggle
-
-XF86AudioRaiseVolume
- pactl set-sink-volume @DEFAULT_SINK@ +5%
+ exec pactl set-sink-mute @DEFAULT_SINK@ toggle
-XF86AudioLowerVolume
- pactl set-sink-volume @DEFAULT_SINK@ -5%
+XF86Audio{Lower,Raise}Volume
+ exec pactl set-sink-volume @DEFAULT_SINK@ {-5%,+5%}
XF86Calculator
- x-terminal-emulator -e bcq
+ exec x-terminal-emulator -e bcq
diff --git a/x/xsession.sh b/x/xsession.sh
index 46cb0aa5..3475c0bd 100644
--- a/x/xsession.sh
+++ b/x/xsession.sh
@@ -8,16 +8,13 @@
# - ~/.config/xrandr/config
# - ~/.config/xwallpaper/config
#
-# We figure each one out in a subshell, so that we can use a temporary variable
-# for the configuration path without polluting the namespace of the rest of
-# this script.
+# We wait for the monitor setup to finish before proceeding, but we can do
+# other things while we wait for the wallpaper to be drawn thereon.
#
-for program in xrandr xwallpaper ; do (
- command -v -- "$program" >/dev/null 2>&1 || exit
- config=${XDG_CONFIG_HOME:-"$HOME"/.config}/"$program"/config
- [ -e "$config" ] || exit
- xargs -- "$program" < "$config"
-) ; done
+xargs xrandr \
+ < "${XDG_CONFIG_HOME:-"$HOME"/.config}"/xrandr/config
+xargs xwallpaper \
+ < "${XDG_CONFIG_HOME:-"$HOME"/.config}"/xwallpaper/config &
# Set a few keyboard map options:
#