#+TITLE: My own specific binaries #+SETUPFILE: ./setup/org-setup-file.org #+PROPERTY: header-args:bash :comments both :mkdirp yes #+PROPERTY: header-args:bash+ :shebang "#!/usr/bin/env bash" #+PROPERTY: header-args:bash+ :tangle-mode (identity #o555) * =remote-desktop= - Remote Desktop Connect :PROPERTIES: :CUSTOM_ID: remote-desktop :END: #+begin_src bash :tangle ~/.local/bin/remote-desktop computer=$(echo -e 'PCOPTRO\nPCMEL1\nRNICE\nPCDEHAEZE\nLAPMEL01\nZOTAC' | rofi -i -dmenu -p 'Computer:' -l 20); if [[ -z "$computer" ]]; then exit 1 fi dunstify --replace=99425 'Rdesktop' "Connection to ${computer}..." proxy_arg="" if [ "$computer" = "ZOTAC" ]; then # If connect to local PC ping -c 1 openwrt.lan &> /dev/null if [ $? -ne 0 ]; then # And outside of local network, use proxy proxy_arg="/proxy:socks5://localhost:8080" fi else ping -c 1 proxy.esrf.fr &> /dev/null if [ $? -ne 0 ]; then # Outside the ESRF network proxy_arg="/proxy:socks5://localhost:8081" fi fi common_arg="/clipboard /bpp:32 /compression -themes -wallpaper /audio-mode:1 /dynamic-resolution /auto-reconnect /wm-class:RDP_$computer -grab-keyboard /cert:ignore /rfx /gfx:avc444" case "$computer" in "RNICE" | "PCDEHAEZE") xfreerdp3 $proxy_arg $common_arg /d:ESRF /u:dehaeze /p:$(pass esrf.fr/dehaeze | sed -n 1p) /v:$computer.esrf.fr > /tmp/freerdp_${computer}.log 2>&1 & ;; "PCMEL1" | "PCOPTRO" | "LAPMEL01") xfreerdp3 $proxy_arg $common_arg /d:ESRF /u:OPPEL /p:$(pass esrf.fr/oppel | sed -n 1p) /v:$computer.esrf.fr > /tmp/freerdp_${computer}.log 2>&1 & ;; "ZOTAC") xfreerdp3 $proxy_arg $common_arg /u:thomas /p:$(pass windows/zotac | sed -n 1p) /v:192.168.5.75 > /tmp/freerdp_${computer}.log 2>&1 & ;; *) user=$(rofi -dmenu -p 'User:'); password=$(rofi -dmenu -p 'Password:'); xfreerdp3 $proxy_arg $common_arg /u:$user /p:$password /v:$computer.esrf.fr > /tmp/freerdp_${computer}.log 2>&1 & ;; esac #+end_src * =mount-dir= - Mount/Unmout directories #+begin_src text :tangle no # homelab:/srv/storage/ /home/thomas/mnt/homelab fuse.sshfs noauto,allow_other,user,default_permissions 0 0 #+end_src #+begin_src text :tangle no # dehaeze@rnice:/tmp_14_days/ /home/thomas/mnt/tmp_14_days fuse.sshfs noauto,allow_other,user,default_permissions 0 0 #+end_src #+begin_src text :tangle no # dehaeze@rnice:/home/esrf/dehaeze/ /home/thomas/mnt/unix_home fuse.sshfs noauto,allow_other,user,default_permissions 0 0 #+end_src #+begin_src text :tangle no # //wfiles/groupshare /home/thomas/mnt/groupshare vsifs noauto,user,credentials=/home/thomas/.smbcredentials,uid=1001,gid=1001,forceuid,forcegid 0 0 #+end_src #+begin_src text :tangle no //wfiles/groupshare /home/thomas/mnt/groupshare cifs noauto,user,uid=1000,gid=1000,credentials=/home/thomas/.smbcredentials 0 0 homelab:/srv/storage/ /home/thomas/mnt/homelab fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 dehaeze@rnice:/tmp_14_days/ /home/thomas/mnt/tmp_14_days fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 dehaeze@rnice:/home/esrf/dehaeze/ /home/thomas/mnt/unix_home fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 dehaeze@rnice:/data/monochromators/ /home/thomas/mnt/monochromators fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 dehaeze@rnice:/gpfs/jazzy/data/id21/inhouse /home/thomas/mnt/data_id21 fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 blissadm@lmellab:/data/id00/inhouse/DCM /home/thomas/mnt/data_id24 fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 blissadm@lmellab:/data/id00/inhouse/MEL /home/thomas/mnt/data_mel fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 blissadm@lmellab:/users/blissadm/local /home/thomas/mnt/bliss fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 blissadm@lmellab:/data/visitor /home/thomas/mnt/data_bl fuse.sshfs noauto,allow_other,user,uid=1000,gid=1000,default_permissions 0 0 #+end_src #+begin_src bash :tangle no if [ $# -eq 0 ]; then drive=$(echo -e 'bliss_mel\nbliss_id21\ndata_bl\ndata_id21\ndata_id24\ndata_mel\ndata_visitor\ndrive\nhomelab\nmonochromators\ntmp_14_days\nunix_home' | rofi -dmenu -no-custom -p 'Drive:' -l 20); if [[ -z "$drive" ]]; then exit 1 fi else drive=$1 fi if grep -qs "/home/thomas/mnt/$drive" /proc/mounts; then umount "/home/thomas/mnt/$drive" && \ dunstify --replace=58249 "$drive " 'Successfully unmounted' || \ dunstify --replace=58249 --urgency=critical "$drive " 'Error while unmounted' else echo "It's not mounted." mount "/home/thomas/mnt/$drive" && \ dunstify --replace=58249 "$drive " 'Successfully mounted' || \ dunstify --replace=58249 --urgency=critical "$drive " 'Error while mounted' fi #+end_src #+begin_src bash :tangle ~/.local/bin/mount-dir if [ $# -eq 0 ]; then # Takes a lot of time with "tmp_14_days" is mounted # drive=$(find ~/mnt/* -maxdepth 0 -type d -empty -printf '%f\n' | rofi -i -dmenu -no-custom -p 'Drive:' -l 20); drive=$(ls ~/mnt | rofi -i -dmenu -no-custom -p 'Drive:' -l 20); if [[ -z "$drive" ]]; then exit 1 fi else exit 1 fi proxy_arg="" ping -c 1 proxy.esrf.fr &> /dev/null if [ $? -ne 0 ]; then # Outside the ESRF network proxy_arg=".esrf.fr" fi remote_loc="" case "$drive" in "homelab") remote_loc="thomas@homelab:/srv/storage/" ;; "tmp_14_days") remote_loc="dehaeze@rnice$proxy_arg:/tmp_14_days/" ;; "unix_home") remote_loc="dehaeze@rnice$proxy_arg:/home/esrf/dehaeze/" ;; "monochromators") remote_loc="dehaeze@rnice$proxy_arg:/data/monochromators/" ;; "data_mel") remote_loc="opid00@lmelcontrol$proxy_arg:/data/id00/inhouse/" ;; "data_jazzy") remote_loc="dehaeze@rnice$proxy_arg:/gpfs/jazzy/data/" ;; "data_easy") remote_loc="dehaeze@rnice$proxy_arg:/gpfs/easy/data/" ;; "data_id16a") remote_loc="blissadm@pico3$proxy_arg:/data/id16a/inhouse1/commissioning/ni_endstation/Speedgoat/" ;; "data_id31") remote_loc="opid31@id31$proxy_arg:/data/id31/inhouse/" ;; "data_id24") remote_loc="dehaeze@rnice$proxy_arg:/gpfs/gb/data/id24-dcm/inhouse" ;; "bliss_mel") remote_loc="blissadm@lmelcontrol$proxy_arg:/users/blissadm/local/" ;; "bliss_id16a") remote_loc="blissadm@id16a$proxy_arg:/users/blissadm/local/" ;; "bliss_id21") remote_loc="blissadm@id21$proxy_arg:/users/blissadm/local/" ;; "bliss_bm23") remote_loc="blissadm@bm23$proxy_arg:/users/blissadm/local/" ;; "bliss_id24") remote_loc="blissadm@foucault$proxy_arg:/users/blissadm/local/" ;; "groupshare") mount ~/mnt/groupshare && \ exit ;; esac if [ -z $remote_loc ]; then exit else sshfs -o allow_other,user,uid=1000,gid=1000,default_permissions,IdentityFile=/home/thomas/.ssh/id_ed25519 $remote_loc /home/thomas/mnt/$drive fi # sshfs -o allow_other,user,uid=1000,gid=1000,default_permissions $remote_loc /home/thomas/mnt/$drive #+end_src Unmounts all mounted directories under =~/mnt/=, skipping empty/unmounted ones. Sends a =dunstify= notification listing what was unmounted, and a critical alert for any failures. #+begin_src bash :tangle ~/.local/bin/umount-dirs mnt_dir="$HOME/mnt" unmounted=() failed=() for dir in "$mnt_dir"/*/; do [ -d "$dir" ] || continue # Skip directories that are not mount points if ! mountpoint -q "$dir"; then continue fi if umount "$dir" 2>/dev/null; then unmounted+=("$(basename "$dir")") else failed+=("$(basename "$dir")") fi done if [ ${#failed[@]} -gt 0 ]; then dunstify --urgency=critical "umount-dirs" "Failed to unmount:\n$(printf '• %s\n' "${failed[@]}")" fi if [ ${#unmounted[@]} -gt 0 ]; then dunstify "umount-dirs" "Unmounted:\n$(printf '• %s\n' "${unmounted[@]}")" elif [ ${#failed[@]} -eq 0 ]; then dunstify "umount-dirs" "Nothing was mounted" fi #+end_src * =torrent-add= - Add Torrent using =stig= Used to add notification when a torrent is added. #+begin_src bash :tangle ~/.local/bin/torrent-add stig add $@ && \ dunstify --replace=22221 "Stif" 'Torrent Added' || \ dunstify --replace=22221 --urgency=critical "Stif" 'Failed' #+end_src * =readbib= - Open Bibliography File :PROPERTIES: :CUSTOM_ID: readbib :END: List all =pdf= files and open selected one with zathura. #+begin_src bash :tangle ~/.local/bin/readbib cd ~/Cloud/pdfs/ && ls | rofi -dmenu -lines 20 | xargs -I {} zathura {} #+end_src * =readnotes= - Open Note :PROPERTIES: :CUSTOM_ID: readnotes :END: List all =pdf= files and open selected one with zathura. #+begin_src bash :tangle ~/.local/bin/readnotes cd ~/Cloud/brain/pdfs/ && ls *.pdf | rofi -dmenu -lines 20 | xargs -I {} zathura {} #+end_src