From e86353cd6b8aa7cebae6ea3ff5515eb483b45406 Mon Sep 17 00:00:00 2001 From: ackman678 Date: Tue, 5 Feb 2019 19:30:40 -0800 Subject: [PATCH] init lab bin --- dim | 3 ++ dimk | 3 ++ dimr | 3 ++ hdmi.sh | 10 ++++ mv2figs.sh | 9 ++++ nj | 41 ++++++++++++++ nj-note.md | 8 +++ pubmed2bibtex.xsl | 135 ++++++++++++++++++++++++++++++++++++++++++++++ reveal.sh | 22 ++++++++ sdoi.sh | 69 ++++++++++++++++++++++++ shrinkpdf.sh | 26 +++++++++ spmid.sh | 54 +++++++++++++++++++ spubmed.sh | 44 +++++++++++++++ woola | 22 ++++++++ ws1 | 7 +++ 15 files changed, 456 insertions(+) create mode 100755 dim create mode 100755 dimk create mode 100755 dimr create mode 100755 hdmi.sh create mode 100755 mv2figs.sh create mode 100755 nj create mode 100644 nj-note.md create mode 100644 pubmed2bibtex.xsl create mode 100755 reveal.sh create mode 100755 sdoi.sh create mode 100755 shrinkpdf.sh create mode 100755 spmid.sh create mode 100755 spubmed.sh create mode 100755 woola create mode 100755 ws1 diff --git a/dim b/dim new file mode 100755 index 0000000..e1eb40e --- /dev/null +++ b/dim @@ -0,0 +1,3 @@ +#!/bin/bash +sudo tee /sys/class/backlight/acpi_video0/brightness <<< $1 + diff --git a/dimk b/dimk new file mode 100755 index 0000000..15268a6 --- /dev/null +++ b/dimk @@ -0,0 +1,3 @@ +#!/bin/bash +sudo tee /sys/class/leds/smc::kbd_backlight/brightness <<< $1 + diff --git a/dimr b/dimr new file mode 100755 index 0000000..9f70550 --- /dev/null +++ b/dimr @@ -0,0 +1,3 @@ +#!/bin/bash +redshift -l 38:-122 -t 5500:3500 -g 0.8 -v + diff --git a/hdmi.sh b/hdmi.sh new file mode 100755 index 0000000..a8842c2 --- /dev/null +++ b/hdmi.sh @@ -0,0 +1,10 @@ +#!/bin/bash +#setup external hdmi display if connected, else ensure the display is off +intern=eDP1 +extern=HDMI1 + +if xrandr | grep "$extern connected"; then + xrandr --output "$intern" --auto --output "$extern" --auto --right-of "$intern" +else + xrandr --output "$intern" --auto --output "$extern" --off +fi diff --git a/mv2figs.sh b/mv2figs.sh new file mode 100755 index 0000000..98f7cf9 --- /dev/null +++ b/mv2figs.sh @@ -0,0 +1,9 @@ +#!/bin/bash +#mv2figs: used by the screenshot shortcut set in .config/i3/config + +#default image location +blobFolder=$HOME/figures + +mv $1 $blobFolder/$1 + +echo "
" | xclip -selection clipboard diff --git a/nj b/nj new file mode 100755 index 0000000..8fea104 --- /dev/null +++ b/nj @@ -0,0 +1,41 @@ +#!/bin/bash +defTitle=journal +defDir=notes +defTemplate=$HOME/bin/nj-note.md +defApp=nano #nano,vim,gvim,emacs,atom,subl + +title=$1 +basedir=$2 +mdtemplate=$3 +app=$EDITOR + +if [[ -z $title ]]; then + title=$defTitle +fi + +if [[ -z $basedir ]]; then + basedir=$HOME/$defDir +fi + +if [[ -z $mdtemplate ]]; then + mdtemplate=$defTemplate +fi + +if [[ -z $app ]]; then + app=$defApp +fi + +#basedir=if [[ -z $var 2:-$HOME/$defDir} + +fn=$basedir/$(date +"%Y-%m-%d")-$title.md + +if [[ -e $fn ]] +then + echo "opening $fn" + $app $fn +else + echo "creating $fn" + cat $mdtemplate | sed -E "s|(date: ).+|\1$(date --iso-8601='seconds') |" >> $fn + $app $fn +fi + diff --git a/nj-note.md b/nj-note.md new file mode 100644 index 0000000..f0c07a1 --- /dev/null +++ b/nj-note.md @@ -0,0 +1,8 @@ +--- +author: James B. Ackman +date: 2018-10-26T07:17:26-07:00 +tags: journal, home +layout: post +categories: pri +--- + diff --git a/pubmed2bibtex.xsl b/pubmed2bibtex.xsl new file mode 100644 index 0000000..c92a286 --- /dev/null +++ b/pubmed2bibtex.xsl @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + +@article{ + + + + + + + +, + url = {https://www.ncbi.nlm.nih.gov/pubmed/}, + file = {} +, + nlmuniqueid = {} + +} + + + + + + + + +, + doi = {} + + +, + = {} + + + + + + +, + title = {} + + +, + pages = {} +, + abstract = {} + + + + + + +, + journal = {} +, + issn = {} +, + volume = {} +, + number = {} +, + year = {} +, + month = {} + + + + + +, + author = { + + and others +} + + + + and +, + + + + + +, + keywords = { + +; + + +; + +} + + + + + diff --git a/reveal.sh b/reveal.sh new file mode 100755 index 0000000..69898f9 --- /dev/null +++ b/reveal.sh @@ -0,0 +1,22 @@ +#!/bin/bash +#installation: place in home directory and make this file executable `chmod u=rwX,go= reveal.sh` +#usage example: `./reveal.sh neuroanatomy1.md` + +appPath="$HOME/projects/dev/reveal.js" + +if [[ ! -d $appPath ]]; then + echo "reveal.js not found" + exit 1 +else + cd $appPath +fi + +fn=$1 #markdown document to render e.g. neuroanatomy1.md +if [[ ! -e $fn ]]; then + ln -s $fn $(basename $fn) +fi + +#add markdown filename to reveal placeholder start file +sed -i -E "s|(
[0-9]+" | sed -E "s#([0-9]+)#\1#") + +if [ -z "$uid" ]; then + echo "pubmed id not found" + exit 1 +fi + +#request pubmed xml and transform into bibtex +curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=$uid&retmode=xml" > $uid.xml +xsltproc --novalid $styleSheet $uid.xml > $uid.bib + +#decide whether to process and move an associated pdf or just exit +if [ -z "$fn" ]; then + + if [[ -z $(rg $uid $bibdFileOut) ]]; then + #import bibtex + echo "importing $uid.bib" + cat $uid.bib >> $bibdFileOut + else + echo "$uid already found in $bibdFileOut, exiting" + fi + #clean up + rm $uid.xml $uid.bib + exit 1 + +else + #extract some strings to make a nice filename for the pdf + key="LastName"; + author=$(grep $key --max-count=1 $uid.xml | sed -E "s#\W*<$key>(.+)\W*#\1#") + + key="MedlineTA"; + journal=$(grep $key --max-count=1 $uid.xml | sed -E "s#\W*<$key>(.+)\W*#\1#" | tr -d " ") + + key1="PubDate"; + key2="Year"; year=$(awk "/<$key1>/,/<\/$key1>/" $uid.xml | grep $key2 | sed -E "s#\W*<$key2>(.+)\W*#\1#") + + fn2=${author}_${journal}$year-$uid.pdf + + #move pdf file to papers repository, add file name to bibtex file field + mv $fn $pdfPathOut/$fn2 + echo "moved to $pdfPathOut/$fn2" + sed -i -E "s|(\W*file = \{).*(\}.*)|\1$relPath/$fn2\2|" $uid.bib + + if [[ -z $(rg $uid $bibdFileOut) ]]; then + #import bibtex + echo "importing $uid.bib" + cat $uid.bib >> $bibdFileOut + else + echo "$uid already found in $bibdFileOut, exiting" + fi + + #clean up + rm $uid.xml $uid.bib +fi diff --git a/shrinkpdf.sh b/shrinkpdf.sh new file mode 100755 index 0000000..7652a2f --- /dev/null +++ b/shrinkpdf.sh @@ -0,0 +1,26 @@ +#!/bin/bash +#shrinkpdf - resize pdf to smaller size. Warning: if no second file name is provided, the default behavior is to overwrite the original pdf +# usage: +# shrinkpdf.sh large.pdf +# shrinkpdf.sh large.pdf small.pdf +# dependencies: +# ps2pdf from Ghostscript +# mktemp from GNU Coreutils + +#Setup defaults +fn=$1 +fn2=$2 +set -e #exit if an error + +#decide whether to use a provided new file name or too write over the original filename +if [ -z "$fn2" ]; then + #clean up + tmpName=$(mktemp $fn.XXXXXXX) + ps2pdf $fn $tmpName + #echo $tmpName + rm $fn + mv $tmpName $fn + chmod u=rw,go=r $fn +else + ps2pdf $fn $fn2 +fi diff --git a/spmid.sh b/spmid.sh new file mode 100755 index 0000000..8ecf46b --- /dev/null +++ b/spmid.sh @@ -0,0 +1,54 @@ +#!/bin/bash +#spmid - search for pubmed id and append bibtex entry to db +# usage: +# spmid.sh '12345678' +# spmid.sh '12345678' download.pdf + +#Setup defaults +styleSheet="$HOME/bin/pubmed2bibtex.xsl" +bibdFileOut="$HOME/projects/bibd/OMEGA.bib" +pdfPathOut="$HOME/projects/bibd/papers" +relPath=$(basename $pdfPathOut) +uid=$1 +fn=$2 + +set -e #exit if an error + +#request pubmed xml and transform into bibtex +curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=$uid&retmode=xml" > $uid.xml +xsltproc --novalid $styleSheet $uid.xml > $uid.bib + +#decide whether to process and move an associated pdf or just exit +if [ -z "$fn" ]; then + #clean up + rm $uid.xml $uid.bib + exit 1 +else + #extract some strings to make a nice filename for the pdf + key="LastName"; + author=$(grep $key --max-count=1 $uid.xml | sed -E "s#\W*<$key>(.+)\W*#\1#") + + key="MedlineTA"; + journal=$(grep $key --max-count=1 $uid.xml | sed -E "s#\W*<$key>(.+)\W*#\1#" | tr -d " ") + + key1="PubDate"; + key2="Year"; year=$(awk "/<$key1>/,/<\/$key1>/" $uid.xml | grep $key2 | sed -E "s#\W*<$key2>(.+)\W*#\1#") + + fn2=${author}_${journal}$year-$uid.pdf + + #move pdf file to papers repository, add file name to bibtex file field + mv $fn $pdfPathOut/$fn2 + echo "moved to $pdfPathOut/$fn2" + sed -i -E "s|(\W*file = \{).*(\}.*)|\1$relPath/$fn2\2|" $uid.bib + + if [[ -z $(rg $uid $bibdFileOut) ]]; then + #import bibtex + echo "importing $uid.bib" + cat $uid.bib >> $bibdFileOut + else + echo "$uid already found in $bibdFileOut, exiting" + fi + + #clean up + rm $uid.xml $uid.bib +fi diff --git a/spubmed.sh b/spubmed.sh new file mode 100755 index 0000000..36edb84 --- /dev/null +++ b/spubmed.sh @@ -0,0 +1,44 @@ +#!/bin/bash +#spubmed.sh - search for pubmed for author, journal, year +# usage: +# spubmed.sh 'kaas' 'trends+neurosci' '1995' +# spubmed.sh 'rakic' 'j+comp+neurol' '1972' + +#Setup defaults +styleSheet="$HOME/bin/pubmed2bibtex.xsl" +bibdFileOut="$HOME/projects/bibd/OMEGA.bib" +pdfPathOut="$HOME/projects/bibd/papers" +relPath=$(basename $pdfPathOut) +author=$1 +journal=$2 +year=$3 + +set -e #exit if an error + +uid=$(curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=$author[au]+AND+$journal[ta]+AND+$year[dp]&retmode=xml" | grep -E "[0-9]+" | sed -E "s#([0-9]+)#\1#") + +if [ -z "$uid" ]; then + echo "pubmed id not found" + exit 1 +fi + +if [[ $(echo $uid | wc -w) -gt 1 ]]; then + echo 'more than one pmid found, going to pubmed' + exturl="https://www.ncbi.nlm.nih.gov/pubmed/?term=$author[au]+AND+$journal[ta]+AND+$year[dp]" + xdg-open $exturl + exit 1 +fi + +echo $uid | xclip -selection clipboard +echo $uid + +# #request pubmed xml and transform into bibtex +# curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=$uid&retmode=xml" > $uid.xml +# xsltproc --novalid $styleSheet $uid.xml > $uid.bib +# +# #import bibtex +# echo "importing $uid.bib" +# cat $uid.bib >> $bibdFileOut +# +# #clean up +# rm $uid.xml $uid.bib diff --git a/woola b/woola new file mode 100755 index 0000000..5d87e69 --- /dev/null +++ b/woola @@ -0,0 +1,22 @@ +#!/bin/bash +#helper startup script for woola +appPath="$HOME/projects/dev/woola" +configFile=$HOME/.config/woola/config.js + +if [[ -e $configFile ]] && [[ ! -e config.js ]]; then + ln -s $configFile config.js +fi + +if [[ ! -d css ]]; then + ln -s $HOME/projects/dev/libcss css +fi + +#if [[ ! -d js ]]; then +# ln -s $appPath/js js +#fi + +#if [[ ! -d figures ]]; then +# ln -s $HOME/figures figures +#fi +node $appPath/lib/index.js + diff --git a/ws1 b/ws1 new file mode 100755 index 0000000..dce8827 --- /dev/null +++ b/ws1 @@ -0,0 +1,7 @@ +#!/bin/bash +#urxvt -e "dimr &" +urxvt -cd $HOME/projects & +urxvt & +urxvt & +urxvt -cd $HOME/notes & +