From 6046cb2df72352cc27d7a27526859530c2888921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20=E2=80=9CFrogeye=E2=80=9D=20Preud=27homme?= Date: Fri, 17 Nov 2023 19:56:56 +0100 Subject: [PATCH 1/3] Add git difftool: meld --- config/git/config | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config/git/config b/config/git/config index b99c120..436af10 100644 --- a/config/git/config +++ b/config/git/config @@ -16,4 +16,9 @@ required = true [pull] ff = only - +[diff] + tool = meld +[difftool] + prompt = false +[difftool "meld"] + cmd = meld "$LOCAL" "$REMOTE" From dcb8e62df288ac7542b2b7dd65b642a595f174e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20=E2=80=9CFrogeye=E2=80=9D=20Preud=27homme?= Date: Thu, 23 Nov 2023 20:38:17 +0100 Subject: [PATCH 2/3] Suspend even though other "people" are connected Other "people" being me in disguise, sooo --- config/i3/config.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/i3/config.j2 b/config/i3/config.j2 index f122460..045126a 100644 --- a/config/i3/config.j2 +++ b/config/i3/config.j2 @@ -267,7 +267,7 @@ set $mode_system [L] Vérouillage [E] Déconnexion [S] Veille [H] Hibernation [R mode "$mode_system" { bindsym l exec --no-startup-id $locker, mode "default" bindsym e exit, mode "default" - bindsym s exec --no-startup-id $locker & systemctl suspend, mode "default" + bindsym s exec --no-startup-id $locker & systemctl suspend --check-inhibitors=no, mode "default" bindsym h exec --no-startup-id $locker & systemctl hibernate, mode "default" bindsym r exec --no-startup-id systemctl reboot, mode "default" bindsym p exec --no-startup-id systemctl poweroff -i, mode "default" From 65d1594ec9e0f61924de0fa67ff8b2f77edc23c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20=E2=80=9CFrogeye=E2=80=9D=20Preud=27homme?= Date: Thu, 23 Nov 2023 22:39:33 +0100 Subject: [PATCH 3/3] bsh: Duplicate source files and optimize A step back... but hopefully so we can take a step forward? --- config/scripts/.bsh/bashrc | 53 ++++++++++++++++++ config/scripts/.bsh/bashrc_unsortable | 25 +++++++++ config/scripts/.bsh/inputrc | 50 +++++++++++++++++ config/scripts/.bsh/vimrc | 51 +++++++++++++++++ config/scripts/bsh | 40 ++++++++------ config/shell/trimmed.bash | 79 --------------------------- 6 files changed, 202 insertions(+), 96 deletions(-) create mode 100644 config/scripts/.bsh/bashrc create mode 100644 config/scripts/.bsh/bashrc_unsortable create mode 100644 config/scripts/.bsh/inputrc create mode 100644 config/scripts/.bsh/vimrc delete mode 100644 config/shell/trimmed.bash diff --git a/config/scripts/.bsh/bashrc b/config/scripts/.bsh/bashrc new file mode 100644 index 0000000..30f66c0 --- /dev/null +++ b/config/scripts/.bsh/bashrc @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +# Geoffrey's trimmed and condensed shell configuration file, +# with an healthy and safe dose of aliases and config. +# Can be embedded to any server + +# Completion for existing commands +alias ls='ls -h --color=auto' +alias mkdir='mkdir -v' +alias cp="cp -i" +alias mv="mv -iv" +alias free='free -h' +alias df='df -h' + +# Advanced completions +# (not busybox compatible) +alias cp="cp -i --reflink=auto" +alias grep="grep --color=auto" +alias dd='dd status=progress' +alias rm='rm -v --one-file-system' +alias free='free -m' +alias diff='diff --color=auto' +alias dmesg='dmesg --ctime' + +# Frequent mistakes +alias sl=ls +alias al=la +alias mdkir=mkdir +alias systemclt=systemctl +alias please=sudo + +# Shortcuts for commonly used commands +alias ll="ls -l" +alias la="ls -la" +# alias s='sudo -s -E' + +# Bash options +shopt -s expand_aliases +shopt -s histappend +HISTCONTROL=ignoreboth:erasedups + +# Program configuration +export TIME_STYLE='+%Y-%m-%d %H:%M:%S' +export LESS=-R +export LESS_TERMCAP_mb=$'\E[1;31m' +export LESS_TERMCAP_md=$'\E[1;36m' +export LESS_TERMCAP_me=$'\E[0m' +export LESS_TERMCAP_so=$'\E[01;44;33m' +export LESS_TERMCAP_se=$'\E[0m' +export LESS_TERMCAP_us=$'\E[1;32m' +export LESS_TERMCAP_ue=$'\E[0m' + + diff --git a/config/scripts/.bsh/bashrc_unsortable b/config/scripts/.bsh/bashrc_unsortable new file mode 100644 index 0000000..8ae2abe --- /dev/null +++ b/config/scripts/.bsh/bashrc_unsortable @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +# Prefered programs environment variables +export PAGER=less +if [ -x "$(command -v nvim)" ] +then + export EDITOR=nvim + alias vi=nvim +elif [ -x "$(command -v vim)" ] +then + export EDITOR=vim + alias vi=vim +else + export EDITOR=vi +fi + +# Prompt +if [[ $USER == 'root' ]]; then + col=31; +elif [[ $USER == 'geoffrey' ]]; then + col=32; +else + col=33; +fi +export PS1="\[\e]2;\u@\H \w\a\]\[\e[0;37m\][\[\e[0;${col}m\]\u\[\e[0;37m\]@\[\e[0;34m\]\h \[\e[0;36m\]\W\[\e[0;37m\]]\$\[\e[0m\] " diff --git a/config/scripts/.bsh/inputrc b/config/scripts/.bsh/inputrc new file mode 100644 index 0000000..b6fe014 --- /dev/null +++ b/config/scripts/.bsh/inputrc @@ -0,0 +1,50 @@ +$include /etc/inputrc +set bell-style none +set colored-completion-prefix on +set colored-stats on +set completion-ignore-case on +set completion-query-items 200 +set editing-mode vi +set history-preserve-point on +set history-size 10000 +set horizontal-scroll-mode off +set mark-directories on +set mark-modified-lines off +set mark-symlinked-directories on +set match-hidden-files on +set menu-complete-display-prefix on +set page-completions on +set print-completions-horizontally off +set revert-all-at-newline off +set show-all-if-ambiguous on +set show-all-if-unmodified on +set show-mode-in-prompt on +set skip-completed-text on +set visible-stats off + +$if mode=vi + # these are for vi-command mode + set keymap vi-command + "k": history-search-backward + "j": history-search-forward + "\e[A": history-search-backward + "\e[B": history-search-forward + Control-l: clear-screen + + # these are for vi-insert mode + set keymap vi-insert + "jk": vi-movement-mode + "\e[A": history-search-backward + "\e[B": history-search-forward + Control-l: clear-screen + + # Switch between thin cursor and thicc block depending on vi mode + $if term=linux + set vi-ins-mode-string \1\e[?0c\2 + set vi-cmd-mode-string \1\e[?8c\2 + $else + set vi-ins-mode-string \1\e[6 q\2 + set vi-cmd-mode-string \1\e[2 q\2 + $endif +$endif + diff --git a/config/scripts/.bsh/vimrc b/config/scripts/.bsh/vimrc new file mode 100644 index 0000000..c7a6b71 --- /dev/null +++ b/config/scripts/.bsh/vimrc @@ -0,0 +1,51 @@ +cmap w!! w !sudo tee > /dev/null % +filetype indent on +filetype on +filetype plugin on +imap jk +let g:netrw_fastbrowse = 0 +nmap :bp +nmap jjjjjjjjjjjjjjjjjjjjj +nmap kkkkkkkkkkkkkkkkkkkkk +nmap :bn +nmap o +nnoremap s :%s/\<\>/ +set backspace=indent,eol,start +set cursorcolumn +set encoding=utf-8 +set expandtab +set gdefault +set hidden +set hlsearch +set ignorecase +set incsearch +set lazyredraw +set list +set listchars=tab:╾╌,trail:·,extends:↦,precedes:↤,nbsp:_ +set noerrorbells +set number +set ruler +set scrolloff=10 +set shiftwidth=4 +set showbreak=↪ +set showcmd +set smartcase +set splitbelow +set tabstop=4 +set title +set updatetime=250 +set visualbell +set wildmenu +set wildmode=longest,list +set wrap +syntax enable +vmap +if has('nvim') + set inccommand=nosplit + set relativenumber + augroup every + autocmd! + au InsertEnter * set norelativenumber + au InsertLeave * set relativenumber + augroup END +endif diff --git a/config/scripts/bsh b/config/scripts/bsh index df5abd9..45e21a7 100755 --- a/config/scripts/bsh +++ b/config/scripts/bsh @@ -1,9 +1,10 @@ #!/usr/bin/env bash -# TODO Do not dupplicate trimmed.bash +# TODO More integrated with current config CACHE_DIR="${XDG_CACHE_DIR:-$HOME/.cache}/bsh" FOLDER_NAME="geoffrey" +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) mkdir -p "$CACHE_DIR" @@ -12,14 +13,24 @@ then # Preparation WORK="${CACHE_DIR}/${FOLDER_NAME}" DEST="/tmp/${FOLDER_NAME}" - rm -rf "$WORK" # DEBUG mkdir "$WORK" - # Copying files - grep -o '^[^#]*' ~/.config/shell/trimmed.bash > "${WORK}/.bashrc" - grep -o '^[^#]*' ~/.config/inputrc > "${WORK}/.inputrc" - # grep -o '^[^"]*' ~/.config/vim/vimconfig.vim > "${WORK}/.vimrc" - # TODO Above file doesn't work anymore with automatrop + # TODO Maybe we should just set HOME there… + + # Bashrc generation (sortable then unsortable) + grep -o '^\s*[^#]*' $SCRIPT_DIR/.bsh/bashrc | sed 's/^\s\+//' > "${WORK}/b" + echo "alias s='sudo -s -E bash --rcfile ${DEST}/b'" >> "${WORK}/b" + echo "export VIMINIT='source ${DEST}/v'" >> "${WORK}/b" + #echo "export TERMINFO=${DEST}/terminfo" >> "${WORK}/b" + echo "export INPUTRC=${DEST}/i" >> "${WORK}/b" + # Sort for compression efficiency (saves a whooping 12 bytes) + sort -u "${WORK}/b" > "${WORK}/b_sorted" + mv "${WORK}/b_sorted" "${WORK}/b" + + dircolors --sh >> "${WORK}/b" + grep -o '^[^#]*' $SCRIPT_DIR/.bsh/bashrc_unsortable | sed 's/^\s\+//' >> "${WORK}/b" + + # Other files generation #mkdir -p "${WORK}/terminfo/${TERM:0:1}" #if [ -f "/usr/share/terminfo/${TERM:0:1}/${TERM}" ] #then @@ -28,23 +39,18 @@ then #then # cp "$HOME/.config/terminfo/${TERM:0:1}/${TERM}" "${WORK}/terminfo/${TERM:0:1}/${TERM}" #fi - - # Extra configuration - echo "alias s='sudo -s -E bash --rcfile ${DEST}/.bashrc'" >> "${WORK}/.bashrc" - echo "export VIMINIT='source ${DEST}/.vimrc'" >> "${WORK}/.bashrc" - #echo "export TERMINFO=${DEST}/terminfo" >> "${WORK}/.bashrc" - echo "export INPUTRC=${DEST}/.inputrc" >> "${WORK}/.bashrc" - # TODO Maybe we should just set HOME there… + grep -o '^\s*[^#]*' $SCRIPT_DIR/.bsh/inputrc | sed 's/^\s\+//' > "${WORK}/i" + grep -o '^\s*[^"]*' $SCRIPT_DIR/.bsh/vimrc | sed 's/^\s\+//' > "${WORK}/v" # Crafting command b64="$(cd "$CACHE_DIR"; tar czf - "$FOLDER_NAME" | base64 -w 0)" - echo "echo '$b64' | base64 -d | tar xzf - -C /tmp" > "${CACHE_DIR}/cmd" - echo "bash --rcfile ${DEST}/.bashrc" >> "${CACHE_DIR}/cmd" + echo "echo $b64|base64 -d|tar xzC /tmp" > "${CACHE_DIR}/cmd" + echo "bash --rcfile ${DEST}/b" >> "${CACHE_DIR}/cmd" echo "rm -rf ${DEST}" >> "${CACHE_DIR}/cmd" # TODO Do not remove unless last one connected # Cleanup - # rm -rf "$WORK" + rm -rf "$WORK" fi diff --git a/config/shell/trimmed.bash b/config/shell/trimmed.bash deleted file mode 100644 index 8a3ae7d..0000000 --- a/config/shell/trimmed.bash +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env bash - -# Geoffrey's trimmed and condensed shell configuration file, -# with an healthy and safe dose of aliases and config. -# Can be embedded to any server - -# Prefered programs environment variables -export PAGER=less -if [ -x "$(command -v nvim)" ] -then - export EDITOR=nvim - alias vi=nvim -elif [ -x "$(command -v vim)" ] -then - export EDITOR=vim - alias vi=vim -else - export EDITOR=vi -fi - -# Completion for existing commands -alias ls='ls -h --color=auto' -alias mkdir='mkdir -v' -alias cp="cp -i" -alias mv="mv -iv" -alias free='free -h' -alias df='df -h' - -# Advanced completions -# (not busybox compatible) -alias cp="cp -i --reflink=auto" -alias grep="grep --color=auto" -alias dd='dd status=progress' -alias rm='rm -v --one-file-system' -alias free='free -m' -alias diff='diff --color=auto' -alias dmesg='dmesg --ctime' - -# Frequent mistakes -alias sl=ls -alias al=la -alias mdkir=mkdir -alias systemclt=systemctl -alias please=sudo - -# Shortcuts for commonly used commands -alias ll="ls -l" -alias la="ls -la" -alias s='sudo -s -E' - -# Bash options -shopt -s expand_aliases -shopt -s histappend -HISTCONTROL=ignoreboth:erasedups - -# Program configuration -export TIME_STYLE='+%Y-%m-%d %H:%M:%S' -export LESS=-R -export LESS_TERMCAP_mb=$'\E[1;31m' # begin blink -export LESS_TERMCAP_md=$'\E[1;36m' # begin bold -export LESS_TERMCAP_me=$'\E[0m' # reset bold/blink -export LESS_TERMCAP_so=$'\E[01;44;33m' # begin reverse video -export LESS_TERMCAP_se=$'\E[0m' # reset reverse video -export LESS_TERMCAP_us=$'\E[1;32m' # begin underline -export LESS_TERMCAP_ue=$'\E[0m' # reset underline -# from $(dircolors --sh) -LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'; -export LS_COLORS - -# Prompt -if [[ $USER == 'root' ]]; then - col=31; -elif [[ $USER == 'geoffrey' ]]; then - col=32; -else - col=33; -fi -export PS1="\[\e]2;\u@\H \w\a\]\[\e[0;37m\][\[\e[0;${col}m\]\u\[\e[0;37m\]@\[\e[0;34m\]\h \[\e[0;36m\]\W\[\e[0;37m\]]\$\[\e[0m\] " -