Some updates about Emacs & Tmux
authorNsukami Di Kiesse Patrick <ptrck@nskm.xyz>
Sat, 11 Jul 2020 04:10:15 +0000 (04:10 +0000)
committerNsukami Di Kiesse Patrick <ptrck@nskm.xyz>
Sat, 11 Jul 2020 04:10:15 +0000 (04:10 +0000)
.bash_aliases
.bash_bind [changed mode: 0644->0755]
.bash_emacs [changed mode: 0644->0755]
.tmux.conf [changed mode: 0644->0755]

index 8994e99..4bc9a6e 100755 (executable)
@@ -1,5 +1,7 @@
 #!/bin/sh
 
+alias m.gen.jwt="< /dev/urandom tr -dc A-Za-z0-9 | head -c32"
+
 alias cat="ccat --bg='dark' "
 alias empty_file=">| "
 alias rmdirs="find . -type d -exec rm -rf '{}' \;"
@@ -9,12 +11,12 @@ alias trim_lws=" sed -e 's/^[[:space:]]*//'"
 alias trim_tws=" sed -e 's/*[[:space:]]$//'"
 alias trim=" sed -e 's/^[[:space:]]*//' | sed -e 's/*[[:space:]]$//'"
 
-alias emacs="emacs-26.3 -nw"
 
 alias m.show_def="declare -f "
 alias eox="ristretto "
 alias m.containers.size="sudo du -sh /var/lib/lxd/storage-pools/default/containers/*"
 
+alias m.sniff="wget -r -k -np --user-agent=Firefox "
 alias m.tree="tree -I *.pyc"
 
 alias m.path='echo "$PATH" | tr ":" "\n" | nl'
@@ -34,12 +36,11 @@ alias m.top="top -c -p $(pgrep -d',' -f string_to_match_in_cmd_line)"
 alias m.rm_emacs_server="rm /tmp/emacs1000/server"
 
 alias m.reload_conky="killall -SIGUSR1 conky"
-alias python="python3.8"
+#alias python="python3.8"
 
 alias m.biggest_subdirs="du -sk * | sort -nr | head -10"
 alias m.last_log="ls -ltr /var/log | tail"
 
-alias m.post="emax /home/Documents/post.org"
 alias mkcd=mkdircd
 
 #alias xterm='xterm -font -*-truetype-*-*-18-*-*-*-*-*-iso8859-* -geometry 70x24'
@@ -81,8 +82,6 @@ alias m.fqdn='hostname --fqdn'
 alias E='SUDO_EDITOR="emacsclient" sudo -e'
 alias m.lngst_line_in_file="wc -L"
 
-alias rm="rm -rf"
-alias rmf="rm -rf"
 
 
 # manually installed packages
@@ -147,11 +146,13 @@ alias m.open_ports2='ss -l'
 alias m.open_ports='netstat -tupln'
 alias m.open_tcp_port='netstat -plnt'
 
+alias del="rm -rf"
 alias rm="trash"
+
 alias dj_secret_key="tr -dc 'a-z0-9!@#$%^&*(-_=+)' < /dev/urandom | head -c50"
 
 # emacsclient is too long to write
-alias emax="emacsclient -c -nw"
+alias mx="emacsclient -c -nw"
 
 alias m.laptop_serial_number='sudo dmidecode -t 1 | grep -i serial'
 
@@ -161,9 +162,7 @@ alias fuck="sudo !!"
 alias w-cl="find . -type f -name '* *.*' -exec bash -c 'mv "$0" "${0// /_}"' {} \;"
 
 alias m.mu.terminate="pkill -2 -u $UID mu"
-alias m.email="emacsclient -c -nw --eval '(mail)'"
-alias m.mails="offlineimap -o && emacsclient -c -nw --eval '(mu4e)'"
-
+alias m.emacs.reboot="rmf /tmp/emacs1000/server && rmf .offlineimap/Gandi.lock && pkill -2 -u nsukami mu"
 alias m.architecture='dpkg --print-architecture'
 alias m.number_of_cores='cat /proc/cpuinfo |grep processor'
 alias m.processor_info='cat /proc/cpuinfo'
@@ -260,3 +259,37 @@ alias ll5='ll -tl | head -4'
 # m.add_system_user="sudo adduser --system --no-create-home"
 
 alias ipython='ipython3 --profile=nsukami'
+
+
+# keyboard
+alias m.key.list_ids="xmodmap -pke"
+alias m.key.find_ids="xev"
+alias m.key.reset_keymap="setxkbmap" # or setxkbmap -option
+
+# https://wiki.archlinux.org/index.php/Xmodmap
+
+# note the info:
+# >> xmodmap -pm
+# xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):
+#
+# shift       Shift_L (0x32),  Shift_R (0x3e)
+# lock        Caps_Lock (0x42)
+# control     Control_L (0x25),  Control_R (0x69)
+# mod1        Alt_L (0x40),  Meta_L (0xcd)
+# mod2        Num_Lock (0x4d)
+# mod3
+# mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
+# mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)
+
+#
+# if you intend to assign Caps_Lock to your A key and B to your NumLock key,
+# you need to first clear the modifiers for both Caps_Lock and Num_Lock,
+# then assign the keysyms, and finally add back the modifiers
+
+# ctrl l keycode 37 (keysym 0xffe3, Control_L),
+# esc keycode 9 (keysym 0xff1b, Escape)
+# ctr r keycode 105 (keysym 0xffe4, Control_R)
+
+# remap: xmodmap -e "keycode 9 = Control_L"
+# clear: xmodmap -e "clear Shift" # valid names are Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4, and Mod5
+#
old mode 100644 (file)
new mode 100755 (executable)
index de71276..670c61a
 
 # reload bash: source bashrc and enter
 # no need to execute, because of \n
-bind '"\e[15~":"source ~/.bashrc\n"'
+bind '"\e[15~":"source ~/.bashrc\n"'
 # bind '"\C-xa":git au'
 # bind '"\C-xc":git co'
 
-bind -x '"\C-xt":tmux'
-bind -x '"\C-xu":uptime'
-bind -x '"\C-xd":date'
-
-#bind -x '"\C-xd":git diff'
-# bind -x '"\C-xs":git stu'
-# bind -x '"\C-xp":git push'
-# bind '"\C-xa":git au'
-# bind '"\C-xc":git co'
-
-bind -x '"\C-xi":my_ip'
-bind -x '"\C-xg":glances'
-#bind -x '"\C-xp":emax /home/nsukami/Documents/post.org'
-
-#
-bind "TAB:complete"
-bind '"\e[Z":menu-complete'
-
-# alt-shift w
-# bind -x '"\eA":"git au"'
-# bind -x '"\eS":"git stu"'
-# bind -x '"\eC":"git co"'
-# bind -x '"\eD":"git dc"'
-bind -x '"\eq":exit'
-
-# dabbrev expand
-bind '"\e/":dabbrev-expand'
+if is_interactive_shell; then
+    # # fzf git branch name; use like this: git checkout ^g^b
+    # # bind '"\C-g\C-b": "$(git branch -a | cut -c 3- | fzf)\e\C-e"'
+    # bind -x '"\C-xt":tmux'
+    # bind -x '"\C-xu":uptime'
+    # bind -x '"\C-xd":date'
+    #
+    # #bind -x '"\C-xd":git diff'
+    # # bind -x '"\C-xs":git stu'
+    # # bind -x '"\C-xp":git push'
+    # # bind '"\C-xa":git au'
+    # # bind '"\C-xc":git co'
+    #
+    # bind -x '"\C-xi":my_ip'
+    # bind -x '"\C-xg":glances'
+    # bind -x '"\C-xm":m.mails'
+    #
+    # #
+    # bind "TAB:complete"
+    # bind '"\e[Z":menu-complete'
+    #
+    # # alt-shift w
+    # # bind -x '"\eA":"git au"'
+    # # bind -x '"\eS":"git stu"'
+    # # bind -x '"\eC":"git co"'
+    # # bind -x '"\eD":"git dc"'
+    # # bind -x '"\eq":exit' # useless Ctrl-d already exits
+    #
+    # # dabbrev expand
+    # bind '"\e/":dabbrev-expand'
+
+fi
old mode 100644 (file)
new mode 100755 (executable)
index 4ba5ece..7b37c44
@@ -4,9 +4,9 @@
 start_emacs_server="emacs --daemon &"
 
 # retrieve running instances of emacs server, if none, start one
-[[ -z $(my_emacs_servers) ]] && $start_emacs_server
+[[ -z $(my_emacs_servers) ]] && $start_emacs_server > /dev/null 2>&1
 
 export ALTERNATE_EDITOR=emacs
 export EDITOR=emacsclient
-export VISUAL=emacsclient
+export VISUAL="emacs -nw"
 export PSQL_EDITOR="emacsclient --eval \"(setq-default major-mode 'sql-mode)\"; emacsclient"
old mode 100644 (file)
new mode 100755 (executable)
index c0e56c9..c1a77b0
 #------------------------------------------------------------------------------
 
 # Ensure color rendered properly?
-# set -g default-terminal "screen-256color"
-#set -g default-terminal "tmux-256color"
+set -g default-terminal "screen-256color"
+# set -g default-terminal "tmux-256color"
+# set -gs default-terminal xterm-256color
+
 
-# ???
-#set-option -ga terminal-overrides ",xterm-256color:Tc"
 
 # Allow mouse to select windows
-set -g mouse on
+set -g mouse on
 
 # utf8 support? seems outdated?
-#set-window-option -g utf8 on
+# set-window-option -g utf8 on
 
 # for being able to send one input to all panes
 # synchronize-panes on # off
 
-# set the prefix
+# set the prefix to Ctrl-b
 set -g prefix C-b
 unbind C-a
 bind C-b send-prefix
 
 # Sane scrolling ???
 # set -g terminal-overrides 'xterm*:smcup@:rmcup@'
+#set -g terminal-overrides ",xterm-256color:Tc"
+
+# Allow xterm titles in terminal window,
+# terminal scrolling with scrollbar,
+# and setting overrides of C-Up, C-Down, C-Left, C-Right
+# set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"
+
 
 # update window number when one of them is deleted
 set -g  renumber-windows on
@@ -47,12 +54,12 @@ set -g  renumber-windows on
 # Not renaming windows ???
 # set -g  allow-rename off
 
+# automatic window rename on fg program change
+set -g automatic-rename
+
 # begin index count to 1, not 0
 set -g  base-index 1
 
-# ???
-set -gs default-terminal screen-256color
-
 # Set the time in milliseconds for which tmux waits after an escape is input
 # to determine if it is part of a function or meta key sequences
 set -s  escape-time 20
@@ -107,6 +114,12 @@ set-window-option -g window-status-current-format '#[bg=black,fg=cyan,bold]#I#[b
 # pane border style
 set -gw pane-active-border-style fg=brightyellow
 
+# pane border colors
+# set -g pane-border-fg colour249
+# set -g pane-border-bg default
+# set -g pane-active-border-fg colour245
+# set -g pane-active-border-bg default
+
 # pane index starts at 1, not 0
 set -gw pane-base-index 1
 
@@ -127,28 +140,31 @@ bind -n   F1  select-window -t :1
 bind -n   F2  select-window -t :2
 bind -n   F3  select-window -t :3
 bind -n   F4  select-window -t :4
-bind -n   F5  select-window -t :5
-bind -n   F6  select-window -t :6
-bind -n   F7  select-window -t :7
-bind -n   F8  select-window -t :8
-bind -n   F9  select-window -t :9
-bind -n   F10 select-window -t :10
-bind -n   F11 select-window -t :11
-bind -n   F12 select-window -t :12
-bind -n S-F1  select-window -t :13
-bind -n S-F2  select-window -t :14
-bind -n S-F3  select-window -t :15
-bind -n S-F4  select-window -t :16
-bind -n S-F5  select-window -t :17
-bind -n S-F6  select-window -t :18
-bind -n S-F7  select-window -t :19
-bind -n S-F8  select-window -t :20
+bind -n   F5  select-window -t :5
+bind -n   F6  select-window -t :6
+bind -n   F7  select-window -t :7
+bind -n   F8  select-window -t :8
+bind -n   F9  select-window -t :9
+bind -n   F10 select-window -t :10
+bind -n   F11 select-window -t :11
+bind -n   F12 select-window -t :12
+bind -n S-F1  select-window -t :13
+bind -n S-F2  select-window -t :14
+bind -n S-F3  select-window -t :15
+bind -n S-F4  select-window -t :16
+bind -n S-F5  select-window -t :17
+bind -n S-F6  select-window -t :18
+bind -n S-F7  select-window -t :19
+bind -n S-F8  select-window -t :20
 
 
 # clear screen then clear history
-# bind -n <-- no need to send the prefix
-bind -n C-l send-keys C-l \; run-shell "sleep 0.3" \; clear-history
+# bind -n <-- means no need to send the prefix
 
+# obsolete?
+# bind -n C-l send-keys 'C-l'
+# bind -n C-l send-keys C-l \; run-shell "sleep 0.3" \; clear-history
+# Turns out hitting Ctrl+l (lowercase L) twice will clear the visible lines and then the buffer with default tmux bindings
 
 # Intuitive splitting
 # Split into panes, but stay in the current path
@@ -156,12 +172,21 @@ bind | split-window -h -c '#{pane_current_path}'
 bind - split-window -v -c '#{pane_current_path}'
 bind _ split-window -v -c '#{pane_current_path}'
 
+# create new window, stay in the current path
+bind c new-window -c '#{pane_current_path}'
 
-# bind kill-session to C-a k
+# bind kill-session to C-b k
 bind k kill-session
 
 
+# switch panes using Alt-arrow without prefix
+# bind M-Left select-pane -L
+# bind M-Right select-pane -R
+# bind M-Up select-pane -U
+# bind M-Down select-pane -D
+
 #------------------------------------------------------------------------------
+
 #   HOOKS
 #------------------------------------------------------------------------------
 
@@ -188,7 +213,8 @@ set -g visual-activity on
 #------------------------------------------------------------------------------
 
 #reload this file
-bind M-r source-file ~/.tmux.conf \; display-message "tmux configuration reloaded!"
+bind F5 source-file ~/.tmux.conf \; \
+     display-message "tmux configuration reloaded!"
 
 # launch ssh in another window
 bind M-s command-prompt -p "ssh" "new-window -n ssh:%1 'exec ssh %1'"
@@ -230,3 +256,4 @@ bind M-v command-prompt -p "vlc " "new-window -n vlc -c /home/nsukami/Musique 'e
 bind F source-file ~/.tmux/etudes.conf
 bind G source-file ~/.tmux/events.conf
 bind J source-file ~/.tmux/jalv2.conf
+bind P source-file ~/.tmux/pelican.conf