mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-10 19:23:03 +03:00
feat(console): make console literate config
This commit is contained in:
parent
2b4935ba77
commit
244da2546e
10 changed files with 680 additions and 92 deletions
|
|
@ -1,7 +1,5 @@
|
|||
#
|
||||
# ~/.bash_profile
|
||||
#
|
||||
|
||||
# [[file:Shell.org::*=.bash_profile=][=.bash_profile=:1]]
|
||||
[[ -f ~/.profile ]] && . ~/.profile
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
# =.bash_profile=:1 ends here
|
||||
|
|
|
|||
133
.bashrc
133
.bashrc
|
|
@ -1,22 +1,23 @@
|
|||
# Return if not run interactively
|
||||
# [[file:Shell.org::*Startup & environment][Startup & environment:1]]
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
xhost +local:root > /dev/null 2>&1
|
||||
|
||||
use_fish=true
|
||||
# Startup & environment:1 ends here
|
||||
|
||||
# ===================== PROGRAMS =====================
|
||||
# [[file:Shell.org::*Startup & environment][Startup & environment:2]]
|
||||
export MANPAGER="sh -c 'sed -e s/.\\\\x08//g | bat -l man -p'"
|
||||
# Startup & environment:2 ends here
|
||||
|
||||
# ===================== FISH =====================
|
||||
|
||||
# [[file:Shell.org::*Launch fish][Launch fish:1]]
|
||||
if [[ $(ps --no-header --pid=$PPID --format=cmd) != "fish" && ${use_fish} ]]
|
||||
then
|
||||
exec fish
|
||||
exec fish
|
||||
fi
|
||||
# Launch fish:1 ends here
|
||||
|
||||
# ===================== COLORS =====================
|
||||
|
||||
# [[file:Shell.org::*Colors][Colors:1]]
|
||||
use_color=true
|
||||
|
||||
# Set colorful PS1 only on colorful terminals.
|
||||
|
|
@ -29,52 +30,75 @@ match_lhs=""
|
|||
[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
|
||||
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
|
||||
[[ -z ${match_lhs} ]] \
|
||||
&& type -P dircolors >/dev/null \
|
||||
&& match_lhs=$(dircolors --print-database)
|
||||
&& type -P dircolors >/dev/null \
|
||||
&& match_lhs=$(dircolors --print-database)
|
||||
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
|
||||
|
||||
if ${use_color} ; then
|
||||
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489
|
||||
if type -P dircolors >/dev/null ; then
|
||||
if [[ -f ~/.dir_colors ]] ; then
|
||||
eval $(dircolors -b ~/.dir_colors)
|
||||
elif [[ -f /etc/DIR_COLORS ]] ; then
|
||||
eval $(dircolors -b /etc/DIR_COLORS)
|
||||
fi
|
||||
fi
|
||||
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489
|
||||
if type -P dircolors >/dev/null ; then
|
||||
if [[ -f ~/.dir_colors ]] ; then
|
||||
eval $(dircolors -b ~/.dir_colors)
|
||||
elif [[ -f /etc/DIR_COLORS ]] ; then
|
||||
eval $(dircolors -b /etc/DIR_COLORS)
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ${EUID} == 0 ]] ; then
|
||||
PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
|
||||
else
|
||||
PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '
|
||||
fi
|
||||
if [[ ${EUID} == 0 ]] ; then
|
||||
PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
|
||||
else
|
||||
PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '
|
||||
fi
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --colour=auto'
|
||||
alias egrep='egrep --colour=auto'
|
||||
alias fgrep='fgrep --colour=auto'
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --colour=auto'
|
||||
alias egrep='egrep --colour=auto'
|
||||
alias fgrep='fgrep --colour=auto'
|
||||
else
|
||||
if [[ ${EUID} == 0 ]] ; then
|
||||
# show root@ when we don't have colors
|
||||
PS1='\u@\h \W \$ '
|
||||
else
|
||||
PS1='\u@\h \w \$ '
|
||||
fi
|
||||
if [[ ${EUID} == 0 ]] ; then
|
||||
# show root@ when we don't have colors
|
||||
PS1='\u@\h \W \$ '
|
||||
else
|
||||
PS1='\u@\h \w \$ '
|
||||
fi
|
||||
fi
|
||||
|
||||
unset use_color safe_term match_lhs sh
|
||||
# Colors:1 ends here
|
||||
|
||||
# ===================== Settings =====================
|
||||
# [[file:Shell.org::*Settings][Settings:1]]
|
||||
complete -cf sudo # Sudo autocompletion
|
||||
|
||||
# Sudo autocompletiong
|
||||
complete -cf sudo
|
||||
shopt -s checkwinsize # Check windows size after each command
|
||||
shopt -s expand_aliases # Aliases
|
||||
shopt -s autocd # Cd to directory just by typing its name (without cd)
|
||||
# Settings:1 ends here
|
||||
|
||||
shopt -s checkwinsize
|
||||
shopt -s expand_aliases
|
||||
shopt -s autocd
|
||||
# [[file:Shell.org::*Settings][Settings:2]]
|
||||
shopt -s histappend
|
||||
export HISTCONTROL=ignoredups:erasedups
|
||||
HISTSIZE=
|
||||
HISTFILESIZE=
|
||||
# Settings:2 ends here
|
||||
|
||||
# ===================== ANACONDA =====================
|
||||
# [[file:Shell.org::*Settings][Settings:3]]
|
||||
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
|
||||
if [ -d "/usr/share/fzf" ]; then
|
||||
source /usr/share/fzf/completion.bash
|
||||
source /usr/share/fzf/key-bindings.bash
|
||||
fi
|
||||
# Settings:3 ends here
|
||||
|
||||
# [[file:Shell.org::*Aliases][Aliases:1]]
|
||||
alias v="vim"
|
||||
alias gg="lazygit"
|
||||
alias ls="exa --icons"
|
||||
alias ll="exa -lah --icons"
|
||||
alias q="exit"
|
||||
alias c="clear"
|
||||
# Aliases:1 ends here
|
||||
|
||||
# [[file:Shell.org::*Anaconda][Anaconda:1]]
|
||||
# >>> conda initialize >>>
|
||||
# !! Contents within this block are managed by 'conda init' !!
|
||||
__conda_setup="$('/home/pavel/Programs/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
|
||||
|
|
@ -89,33 +113,8 @@ else
|
|||
fi
|
||||
unset __conda_setup
|
||||
# <<< conda initialize <<<
|
||||
# Anaconda:1 ends here
|
||||
|
||||
|
||||
# ===================== BASH_IT =====================
|
||||
|
||||
# History
|
||||
# [[file:Shell.org::*Starship prompt][Starship prompt:1]]
|
||||
eval "$(starship init bash)"
|
||||
|
||||
shopt -s histappend
|
||||
export HISTCONTROL=ignoredups:erasedups
|
||||
# if [[ (! $PROMPT_COMMAND =~ .*history.*) && -z $TMUX ]]; then
|
||||
# export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
|
||||
# fi
|
||||
HISTSIZE=
|
||||
HISTFILESIZE=
|
||||
|
||||
# ===================== AUTOCOMPLETION =====================
|
||||
|
||||
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
|
||||
source /usr/share/fzf/completion.bash
|
||||
source /usr/share/fzf/key-bindings.bash
|
||||
|
||||
|
||||
# ===================== ALIASES =====================
|
||||
alias v="vim"
|
||||
alias gg="lazygit"
|
||||
alias ls="exa --icons"
|
||||
alias ll="exa -lah --icons"
|
||||
alias q="exit"
|
||||
alias c="clear"
|
||||
|
||||
# Starship prompt:1 ends here
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# [[file:../../Shell.org::*Alacritty][Alacritty:1]]
|
||||
decorations: none
|
||||
|
||||
font:
|
||||
|
|
@ -9,7 +10,7 @@ font:
|
|||
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
|
||||
colors:
|
||||
primary:
|
||||
background: '#292d3e'
|
||||
|
|
@ -66,3 +67,4 @@ key_bindings:
|
|||
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||
# Alacritty:1 ends here
|
||||
|
|
|
|||
|
|
@ -1,19 +1,27 @@
|
|||
# [[file:../../Shell.org::*Fish][Fish:1]]
|
||||
starship init fish | source
|
||||
# Fish:1 ends here
|
||||
|
||||
# [[file:../../Shell.org::*Fish][Fish:2]]
|
||||
fish_vi_key_bindings
|
||||
|
||||
alias c="clear"
|
||||
alias v="vim"
|
||||
alias gg="lazygit"
|
||||
alias ls="exa --icons"
|
||||
alias ll="exa -lah --icons"
|
||||
alias q="exit"
|
||||
alias c="clear"
|
||||
# Fish:2 ends here
|
||||
|
||||
# [[file:../../Shell.org::*Fish][Fish:3]]
|
||||
# >>> conda initialize >>>
|
||||
# !! Contents within this block are managed by 'conda init' !!
|
||||
eval /home/pavel/Programs/miniconda3/bin/conda "shell.fish" "hook" $argv | source
|
||||
# <<< conda initialize <<<
|
||||
# Fish:3 ends here
|
||||
|
||||
# [[file:../../Shell.org::*Fish][Fish:4]]
|
||||
if ! test -n "$TMUX"; and ! test -n "$IS_EMACS";
|
||||
colorscript random
|
||||
end
|
||||
# Fish:4 ends here
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# [[file:../Shell.org::*Starship prompt][Starship prompt:1]]
|
||||
[character]
|
||||
success_symbol = "➤ "
|
||||
vicmd_symbol = "ᐊ "
|
||||
|
|
@ -74,3 +75,4 @@ symbol = " "
|
|||
|
||||
[rust]
|
||||
symbol = " "
|
||||
# Starship prompt:1 ends here
|
||||
|
|
|
|||
30
.profile
30
.profile
|
|
@ -1,37 +1,52 @@
|
|||
# [[file:Shell.org::*Environment][Environment:1]]
|
||||
export EDITOR=/usr/bin/vim
|
||||
export BROWSER=/usr/bin/firefox
|
||||
export QT_QPA_PLATFORMTHEME="qt5ct"
|
||||
export QT_AUTO_SCREEN_SCALE_FACTOR=0
|
||||
export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
|
||||
# Environment:1 ends here
|
||||
|
||||
# [[file:Shell.org::*Various paths][Various paths:1]]
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
export PATH="$HOME/bin:$PATH"
|
||||
export PATH="$HOME/bin/scripts:$PATH"
|
||||
fi
|
||||
# Various paths:1 ends here
|
||||
|
||||
# ===================== PATHS =====================
|
||||
export MANPATH="/usr/local/texlive/2020/texmf-dist/doc/man:$MANPATH"
|
||||
export INFOPATH="/usr/local/texlive/2020/texmf-dist/doc/info:$INFOPATH"
|
||||
export PATH="/usr/local/texlive/2020/bin/x86_64-linux:$PATH"
|
||||
# [[file:Shell.org::*Various paths][Various paths:2]]
|
||||
if [ -d "/usr/local/texlive/2020" ]; then
|
||||
export MANPATH="/usr/local/texlive/2020/texmf-dist/doc/man:$MANPATH"
|
||||
export INFOPATH="/usr/local/texlive/2020/texmf-dist/doc/info:$INFOPATH"
|
||||
export PATH="/usr/local/texlive/2020/bin/x86_64-linux:$PATH"
|
||||
fi
|
||||
# Various paths:2 ends here
|
||||
|
||||
# [[file:Shell.org::*Various paths][Various paths:3]]
|
||||
if [ -d "$HOME/.cargo" ] ; then
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
fi
|
||||
# Various paths:3 ends here
|
||||
|
||||
# [[file:Shell.org::*Various paths][Various paths:4]]
|
||||
if [ -d "$HOME/.rvm" ] ; then
|
||||
export PATH="$PATH:$HOME/.rvm/bin"
|
||||
fi
|
||||
# if [ -d "$HOME/.gem" ]; then
|
||||
# export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH"
|
||||
# fi
|
||||
# Various paths:4 ends here
|
||||
|
||||
# [[file:Shell.org::*Various paths][Various paths:5]]
|
||||
if [ -d "$HOME/go" ] ; then
|
||||
export PATH="$HOME/go/bin:$PATH"
|
||||
fi
|
||||
# export PATH="$HOME/.gem/ruby/2.7.0/bin/:$PATH"
|
||||
# Various paths:5 ends here
|
||||
|
||||
# [[file:Shell.org::*Various paths][Various paths:6]]
|
||||
[ -f "/home/pavel/.ghcup/env" ] && source "/home/pavel/.ghcup/env" # ghcup-env
|
||||
# Various paths:6 ends here
|
||||
|
||||
# ===================== PERL =====================
|
||||
|
||||
# [[file:Shell.org::*Various paths][Various paths:7]]
|
||||
if [ -d "$HOME/perl5" ] ; then
|
||||
PATH="/home/pavel/perl5/bin${PATH:+:${PATH}}"
|
||||
PERL5LIB="/home/pavel/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
|
||||
|
|
@ -39,3 +54,4 @@ if [ -d "$HOME/perl5" ] ; then
|
|||
PERL_MB_OPT="--install_base \"/home/pavel/perl5\""; export PERL_MB_OPT;
|
||||
PERL_MM_OPT="INSTALL_BASE=/home/pavel/perl5"; export PERL_MM_OPT;
|
||||
fi
|
||||
# Various paths:7 ends here
|
||||
|
|
|
|||
31
.tmux.conf
31
.tmux.conf
|
|
@ -1,17 +1,26 @@
|
|||
# [[file:Shell.org::*Term settings][Term settings:1]]
|
||||
set -g default-terminal "screen-256color"
|
||||
set -ga terminal-overrides ",*256col*:Tc"
|
||||
# Term settings:1 ends here
|
||||
|
||||
# [[file:Shell.org::*Term settings][Term settings:2]]
|
||||
set -g history-limit 20000
|
||||
# Term settings:2 ends here
|
||||
|
||||
# [[file:Shell.org::*Keybindings][Keybindings:1]]
|
||||
set-window-option -g mode-keys vi
|
||||
set-option -g xterm-keys on
|
||||
set-option -g mouse on
|
||||
set -sg escape-time 10
|
||||
# Keybindings:1 ends here
|
||||
|
||||
source ~/.tmux.line.conf
|
||||
|
||||
# [[file:Shell.org::*Keybindings][Keybindings:2]]
|
||||
unbind C-b
|
||||
set -g prefix C-a
|
||||
bind C-a send-prefix
|
||||
# Keybindings:2 ends here
|
||||
|
||||
# [[file:Shell.org::*Keybindings][Keybindings:3]]
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
|
|
@ -20,12 +29,20 @@ bind l select-pane -R
|
|||
bind s split-window
|
||||
bind v split-window -h
|
||||
|
||||
bind r source-file ~/.tmux.conf
|
||||
|
||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
|
||||
bind-key n new-window
|
||||
bind-key t next-window
|
||||
bind-key T previous-window
|
||||
# Keybindings:3 ends here
|
||||
|
||||
set -g history-limit 20000
|
||||
# [[file:Shell.org::*Keybindings][Keybindings:4]]
|
||||
bind r source-file ~/.tmux.conf
|
||||
# Keybindings:4 ends here
|
||||
|
||||
# [[file:Shell.org::*Copy to clipboard][Copy to clipboard:1]]
|
||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
|
||||
# Copy to clipboard:1 ends here
|
||||
|
||||
# [[file:Shell.org::*UI][UI:2]]
|
||||
source ~/.tmux.line.conf
|
||||
# UI:2 ends here
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# [[file:Shell.org::*UI][UI:1]]
|
||||
# This tmux statusbar config was created by tmuxline.vim
|
||||
# on Wed, 22 Jan 2020
|
||||
|
||||
|
|
@ -19,3 +20,4 @@ set -g status-left "#[fg=#292D3E,bg=#939ede] #S #[fg=#939ede,bg=#474b59,nobold,n
|
|||
set -g status-right "#[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#333747] %-H:%M #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] %a, %b %d #[fg=#939ede,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#292D3E,bg=#939ede] #H "
|
||||
setw -g window-status-format "#[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]#[default] #I #W #[align=left] #[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]"
|
||||
setw -g window-status-current-format "#[fg=#333747,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] #I #W #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]"
|
||||
# UI:1 ends here
|
||||
|
|
|
|||
544
Console.org
Normal file
544
Console.org
Normal file
|
|
@ -0,0 +1,544 @@
|
|||
#+TITLE: Console
|
||||
#+TODO: TODO(t) CHECK(s) | OFF(o)
|
||||
#+PROPERTY: header-args :mkdirp yes
|
||||
#+PROPERTY: header-args:conf-space :comments link
|
||||
#+PROPERTY: header-args:conf-toml :comments link
|
||||
#+PROPERTY: header-args:sh :tangle-mode (identity #o755) :comments link :shebang "#!/bin/sh"
|
||||
#+PROPERTY: header-args:bash :tangle-mode (identity #o755) :comments link :shebang "#!/bin/bash"
|
||||
|
||||
* Contents
|
||||
:PROPERTIES:
|
||||
:TOC: :include all :depth 3
|
||||
:END:
|
||||
:CONTENTS:
|
||||
- [[#contents][Contents]]
|
||||
- [[#profile][.profile]]
|
||||
- [[#environment][Environment]]
|
||||
- [[#various-paths][Various paths]]
|
||||
- [[#bash][Bash]]
|
||||
- [[#bash_profile][.bash_profile]]
|
||||
- [[#bashrc][.bashrc]]
|
||||
- [[#startup--environment][Startup & environment]]
|
||||
- [[#launch-fish][Launch fish]]
|
||||
- [[#colors][Colors]]
|
||||
- [[#settings][Settings]]
|
||||
- [[#aliases][Aliases]]
|
||||
- [[#anaconda][Anaconda]]
|
||||
- [[#starship-prompt][Starship prompt]]
|
||||
- [[#fish][Fish]]
|
||||
- [[#starship-prompt][Starship prompt]]
|
||||
- [[#tmux][Tmux]]
|
||||
- [[#term-settings][Term settings]]
|
||||
- [[#keybindings][Keybindings]]
|
||||
- [[#copy-to-clipboard][Copy to clipboard]]
|
||||
- [[#ui][UI]]
|
||||
- [[#alacritty][Alacritty]]
|
||||
:END:
|
||||
|
||||
* =.profile=
|
||||
:PROPERTIES:
|
||||
:header-args+: :tangle ./.profile
|
||||
:header-args:sh: :shebang "" :comments link
|
||||
:END:
|
||||
** Environment
|
||||
#+begin_src sh
|
||||
export EDITOR=/usr/bin/vim
|
||||
export BROWSER=/usr/bin/firefox
|
||||
export QT_QPA_PLATFORMTHEME="qt5ct"
|
||||
export QT_AUTO_SCREEN_SCALE_FACTOR=0
|
||||
export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
|
||||
#+end_src
|
||||
** Various paths
|
||||
My script folders
|
||||
#+begin_src sh
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
export PATH="$HOME/bin:$PATH"
|
||||
export PATH="$HOME/bin/scripts:$PATH"
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
LaTeX
|
||||
#+begin_src sh
|
||||
if [ -d "/usr/local/texlive/2020" ]; then
|
||||
export MANPATH="/usr/local/texlive/2020/texmf-dist/doc/man:$MANPATH"
|
||||
export INFOPATH="/usr/local/texlive/2020/texmf-dist/doc/info:$INFOPATH"
|
||||
export PATH="/usr/local/texlive/2020/bin/x86_64-linux:$PATH"
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
Cargo (Rust)
|
||||
#+begin_src sh
|
||||
if [ -d "$HOME/.cargo" ] ; then
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
RVM (Ruby)
|
||||
#+begin_src sh
|
||||
if [ -d "$HOME/.rvm" ] ; then
|
||||
export PATH="$PATH:$HOME/.rvm/bin"
|
||||
fi
|
||||
# if [ -d "$HOME/.gem" ]; then
|
||||
# export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH"
|
||||
# fi
|
||||
#+end_src
|
||||
|
||||
Go
|
||||
#+begin_src sh
|
||||
if [ -d "$HOME/go" ] ; then
|
||||
export PATH="$HOME/go/bin:$PATH"
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
ghcup (Haskell)
|
||||
#+begin_src sh
|
||||
[ -f "/home/pavel/.ghcup/env" ] && source "/home/pavel/.ghcup/env" # ghcup-env
|
||||
#+end_src
|
||||
|
||||
Perl
|
||||
#+begin_src sh
|
||||
if [ -d "$HOME/perl5" ] ; then
|
||||
PATH="/home/pavel/perl5/bin${PATH:+:${PATH}}"
|
||||
PERL5LIB="/home/pavel/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
|
||||
PERL_LOCAL_LIB_ROOT="/home/pavel/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
|
||||
PERL_MB_OPT="--install_base \"/home/pavel/perl5\""; export PERL_MB_OPT;
|
||||
PERL_MM_OPT="INSTALL_BASE=/home/pavel/perl5"; export PERL_MM_OPT;
|
||||
fi
|
||||
#+end_src
|
||||
* Bash
|
||||
:PROPERTIES:
|
||||
:header-args:bash: :shebang "" :comments link
|
||||
:END:
|
||||
** =.bash_profile=
|
||||
#+begin_src bash :tangle ./.bash_profile
|
||||
[[ -f ~/.profile ]] && . ~/.profile
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
#+end_src
|
||||
** =.bashrc=
|
||||
:PROPERTIES:
|
||||
:header-args+: :tangle ./.bashrc
|
||||
:END:
|
||||
*** Startup & environment
|
||||
Return if not run interactively & stuff
|
||||
#+begin_src bash
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
xhost +local:root > /dev/null 2>&1
|
||||
|
||||
use_fish=true
|
||||
#+end_src
|
||||
|
||||
Set manpager to bat
|
||||
#+begin_src bash
|
||||
export MANPAGER="sh -c 'sed -e s/.\\\\x08//g | bat -l man -p'"
|
||||
#+end_src
|
||||
*** Launch fish
|
||||
Launch fish shell unless bash itself is launched from fish.
|
||||
#+begin_src bash
|
||||
if [[ $(ps --no-header --pid=$PPID --format=cmd) != "fish" && ${use_fish} ]]
|
||||
then
|
||||
exec fish
|
||||
fi
|
||||
#+end_src
|
||||
The rest of =.bashrc= is not executed if fish was launched.
|
||||
*** Colors
|
||||
Setting for colors, packed in the default =.bashrc= in Manjaro
|
||||
#+begin_src bash
|
||||
use_color=true
|
||||
|
||||
# Set colorful PS1 only on colorful terminals.
|
||||
# dircolors --print-database uses its own built-in database
|
||||
# instead of using /etc/DIR_COLORS. Try to use the external file
|
||||
# first to take advantage of user additions. Use internal bash
|
||||
# globbing instead of external grep binary.
|
||||
safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM
|
||||
match_lhs=""
|
||||
[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
|
||||
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
|
||||
[[ -z ${match_lhs} ]] \
|
||||
&& type -P dircolors >/dev/null \
|
||||
&& match_lhs=$(dircolors --print-database)
|
||||
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
|
||||
|
||||
if ${use_color} ; then
|
||||
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489
|
||||
if type -P dircolors >/dev/null ; then
|
||||
if [[ -f ~/.dir_colors ]] ; then
|
||||
eval $(dircolors -b ~/.dir_colors)
|
||||
elif [[ -f /etc/DIR_COLORS ]] ; then
|
||||
eval $(dircolors -b /etc/DIR_COLORS)
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ${EUID} == 0 ]] ; then
|
||||
PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
|
||||
else
|
||||
PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '
|
||||
fi
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --colour=auto'
|
||||
alias egrep='egrep --colour=auto'
|
||||
alias fgrep='fgrep --colour=auto'
|
||||
else
|
||||
if [[ ${EUID} == 0 ]] ; then
|
||||
# show root@ when we don't have colors
|
||||
PS1='\u@\h \W \$ '
|
||||
else
|
||||
PS1='\u@\h \w \$ '
|
||||
fi
|
||||
fi
|
||||
|
||||
unset use_color safe_term match_lhs sh
|
||||
#+end_src
|
||||
*** Settings
|
||||
Some general bash settings.
|
||||
|
||||
References:
|
||||
- [[https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html][shopt list]]
|
||||
#+begin_src bash
|
||||
complete -cf sudo # Sudo autocompletion
|
||||
|
||||
shopt -s checkwinsize # Check windows size after each command
|
||||
shopt -s expand_aliases # Aliases
|
||||
shopt -s autocd # Cd to directory just by typing its name (without cd)
|
||||
#+end_src
|
||||
|
||||
History control
|
||||
#+begin_src bash
|
||||
shopt -s histappend
|
||||
export HISTCONTROL=ignoredups:erasedups
|
||||
HISTSIZE=
|
||||
HISTFILESIZE=
|
||||
#+end_src
|
||||
|
||||
Autocompletions
|
||||
#+begin_src bash
|
||||
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
|
||||
if [ -d "/usr/share/fzf" ]; then
|
||||
source /usr/share/fzf/completion.bash
|
||||
source /usr/share/fzf/key-bindings.bash
|
||||
fi
|
||||
#+end_src
|
||||
*** Aliases
|
||||
#+begin_src bash :noweb-ref shell-aliases
|
||||
alias v="vim"
|
||||
alias gg="lazygit"
|
||||
alias ls="exa --icons"
|
||||
alias ll="exa -lah --icons"
|
||||
alias q="exit"
|
||||
alias c="clear"
|
||||
#+end_src
|
||||
*** Anaconda
|
||||
#+begin_quote
|
||||
managed by 'conda init' !!!
|
||||
#+end_quote
|
||||
Yeah, tell this to yourself
|
||||
|
||||
#+begin_src bash
|
||||
# >>> conda initialize >>>
|
||||
# !! Contents within this block are managed by 'conda init' !!
|
||||
__conda_setup="$('/home/pavel/Programs/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
|
||||
if [ $? -eq 0 ]; then
|
||||
eval "$__conda_setup"
|
||||
else
|
||||
if [ -f "/home/pavel/Programs/miniconda3/etc/profile.d/conda.sh" ]; then
|
||||
. "/home/pavel/Programs/miniconda3/etc/profile.d/conda.sh"
|
||||
else
|
||||
export PATH="/home/pavel/Programs/miniconda3/bin:$PATH"
|
||||
fi
|
||||
fi
|
||||
unset __conda_setup
|
||||
# <<< conda initialize <<<
|
||||
#+end_src
|
||||
*** Starship prompt
|
||||
#+begin_src bash
|
||||
eval "$(starship init bash)"
|
||||
#+end_src
|
||||
* Fish
|
||||
:PROPERTIES:
|
||||
:header-args+: :tangle ./.config/fish/config.fish :comments link
|
||||
:END:
|
||||
|
||||
[[https://fishshell.com/][Fish shell]] is a non-POSIX-compliant shell, which offers some fancy UI & UX features.
|
||||
|
||||
Launch starship
|
||||
#+begin_src fish
|
||||
starship init fish | source
|
||||
#+end_src
|
||||
|
||||
Enable vi keybindings & aliases. The alias syntax is the same as in bash, so it's just a noweb reference to =.bashrc=.
|
||||
#+begin_src fish :noweb yes
|
||||
fish_vi_key_bindings
|
||||
|
||||
<<shell-aliases>>
|
||||
#+end_src
|
||||
|
||||
Anaconda
|
||||
#+begin_src fish
|
||||
# >>> conda initialize >>>
|
||||
# !! Contents within this block are managed by 'conda init' !!
|
||||
eval /home/pavel/Programs/miniconda3/bin/conda "shell.fish" "hook" $argv | source
|
||||
# <<< conda initialize <<<
|
||||
#+end_src
|
||||
|
||||
Launch a random [[https://gitlab.com/dwt1/shell-color-scripts][DT's colorscript]] unless ran inside tmux or Emacs.
|
||||
#+begin_src fish
|
||||
if ! test -n "$TMUX"; and ! test -n "$IS_EMACS";
|
||||
colorscript random
|
||||
end
|
||||
#+end_src
|
||||
* Starship prompt
|
||||
[[https://starship.rs/][Starship]] is a nice cross-shell prompt, written in Rust.
|
||||
|
||||
References:
|
||||
- [[https://starship.rs/config/][Startship config guide]]
|
||||
|
||||
#+begin_src conf-toml :tangle ./.config/starship.toml
|
||||
[character]
|
||||
success_symbol = "➤ "
|
||||
vicmd_symbol = "ᐊ "
|
||||
error_symbol = " "
|
||||
use_symbol_for_status = true
|
||||
|
||||
[aws]
|
||||
symbol = " "
|
||||
|
||||
[battery]
|
||||
full_symbol = ""
|
||||
charging_symbol = ""
|
||||
discharging_symbol = ""
|
||||
|
||||
[conda]
|
||||
symbol = " "
|
||||
|
||||
[cmd_duration]
|
||||
min_time = 500
|
||||
format = " [$duration]($style) "
|
||||
|
||||
[docker]
|
||||
symbol = " "
|
||||
|
||||
[elixir]
|
||||
symbol = " "
|
||||
|
||||
[elm]
|
||||
symbol = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
truncation_length = 20
|
||||
|
||||
[golang]
|
||||
symbol = " "
|
||||
|
||||
[haskell]
|
||||
symbol = " "
|
||||
|
||||
[hg_branch]
|
||||
symbol = " "
|
||||
|
||||
[java]
|
||||
symbol = " "
|
||||
|
||||
[julia]
|
||||
symbol = " "
|
||||
|
||||
[memory_usage]
|
||||
symbol = " "
|
||||
|
||||
[nim]
|
||||
symbol = " "
|
||||
|
||||
[nix_shell]
|
||||
symbol = " "
|
||||
|
||||
[nodejs]
|
||||
symbol = " "
|
||||
|
||||
[package]
|
||||
symbol = " "
|
||||
disabled = true
|
||||
|
||||
[php]
|
||||
symbol = " "
|
||||
|
||||
[python]
|
||||
symbol = " "
|
||||
|
||||
[ruby]
|
||||
symbol = " "
|
||||
|
||||
[rust]
|
||||
symbol = " "
|
||||
#+end_src
|
||||
* Tmux
|
||||
:PROPERTIES:
|
||||
:header-args+: :tangle ./.tmux.conf
|
||||
:END:
|
||||
[[https://github.com/tmux/tmux][tmux]] is my terminal multiplexer of choice.
|
||||
|
||||
It provides pretty sane defaults, so the config is not too large. I rebind the prefix to =C-a= though.
|
||||
** Term settings
|
||||
I have no idea how and why these two work.
|
||||
#+begin_src conf-space
|
||||
set -g default-terminal "screen-256color"
|
||||
set -ga terminal-overrides ",*256col*:Tc"
|
||||
#+end_src
|
||||
|
||||
History limit.
|
||||
#+begin_src conf-space
|
||||
set -g history-limit 20000
|
||||
#+end_src
|
||||
** Keybindings
|
||||
Enable vi keys and mouse.
|
||||
#+begin_src conf-space
|
||||
set-window-option -g mode-keys vi
|
||||
set-option -g xterm-keys on
|
||||
set-option -g mouse on
|
||||
set -sg escape-time 10
|
||||
#+end_src
|
||||
|
||||
Change prefix from =C-b= to =C-a=.
|
||||
#+begin_src conf-space
|
||||
unbind C-b
|
||||
set -g prefix C-a
|
||||
bind C-a send-prefix
|
||||
#+end_src
|
||||
|
||||
Vi-like keybindings to manage panes & windows.
|
||||
#+begin_src conf-space
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
bind s split-window
|
||||
bind v split-window -h
|
||||
|
||||
bind-key n new-window
|
||||
bind-key t next-window
|
||||
bind-key T previous-window
|
||||
#+end_src
|
||||
|
||||
Reload the config.
|
||||
#+begin_src conf-space
|
||||
bind r source-file ~/.tmux.conf
|
||||
#+end_src
|
||||
** Copy to clipboard
|
||||
Make tmux copying copy to clipboard as well
|
||||
#+begin_src conf-space
|
||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
|
||||
#+end_src
|
||||
** UI
|
||||
I generated the following with [[https://github.com/edkolev/tmuxline.vim][tmuxline.vim]] plugin and palenight theme for [[https://github.com/vim-airline/vim-airline][vim-airline]]
|
||||
#+begin_src conf-space :tangle ./.tmux.line.conf
|
||||
# This tmux statusbar config was created by tmuxline.vim
|
||||
# on Wed, 22 Jan 2020
|
||||
|
||||
set -g status-justify "centre"
|
||||
set -g status "on"
|
||||
set -g status-left-style "none"
|
||||
set -g message-command-style "fg=#bfc7d5,bg=#474b59"
|
||||
set -g status-right-style "none"
|
||||
set -g pane-active-border-style "fg=#939ede"
|
||||
set -g status-style "none,bg=#333747"
|
||||
set -g message-style "fg=#bfc7d5,bg=#474b59"
|
||||
set -g pane-border-style "fg=#474b59"
|
||||
set -g status-right-length "100"
|
||||
set -g status-left-length "100"
|
||||
setw -g window-status-activity-style "none,fg=#939ede,bg=#333747"
|
||||
setw -g window-status-separator ""
|
||||
setw -g window-status-style "none,fg=#bfc7d5,bg=#333747"
|
||||
set -g status-left "#[fg=#292D3E,bg=#939ede] #S #[fg=#939ede,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] #W #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]"
|
||||
set -g status-right "#[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#333747] %-H:%M #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] %a, %b %d #[fg=#939ede,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#292D3E,bg=#939ede] #H "
|
||||
setw -g window-status-format "#[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]#[default] #I #W #[align=left] #[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]"
|
||||
setw -g window-status-current-format "#[fg=#333747,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] #I #W #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]"
|
||||
#+end_src
|
||||
|
||||
Source the line config:
|
||||
#+begin_src conf-space
|
||||
source ~/.tmux.line.conf
|
||||
#+end_src
|
||||
* Alacritty
|
||||
:PROPERTIES:
|
||||
:header-args+: :tangle ./.config/alacritty/alacritty.yml :comments link
|
||||
:END:
|
||||
|
||||
[[https://github.com/alacritty/alacritty][Alacritty]] is a GPU-accelerated terminal emulator. I haven't found it to be an inch faster than st, but configuration the in yml format is way more convinient than patches.
|
||||
|
||||
References:
|
||||
- [[https://github.com/alacritty/alacritty/blob/master/alacritty.yml][default config]]
|
||||
|
||||
#+begin_src yaml
|
||||
decorations: none
|
||||
|
||||
font:
|
||||
normal:
|
||||
family: JetBrainsMono Nerd Font
|
||||
style: Regular
|
||||
|
||||
size: 10
|
||||
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
colors:
|
||||
primary:
|
||||
background: '#292d3e'
|
||||
foreground: '#d0d0d0'
|
||||
normal:
|
||||
black: '#292d3e'
|
||||
red: '#f07178'
|
||||
green: '#c3e88d'
|
||||
yellow: '#ffcb6b'
|
||||
blue: '#82aaff'
|
||||
magenta: '#c792ea'
|
||||
cyan: '#89ddff'
|
||||
white: '#d0d0d0'
|
||||
bright:
|
||||
Black: '#434758'
|
||||
Red: '#ff8b92'
|
||||
Green: '#ddffa7'
|
||||
Yellow: '#ffe585'
|
||||
Blue: '#9cc4ff'
|
||||
Magenta: '#e1acff'
|
||||
Cyan: '#a3f7ff'
|
||||
White: '#ffffff'
|
||||
|
||||
background_opacity: 0.80
|
||||
|
||||
window:
|
||||
padding:
|
||||
x: 0
|
||||
y: 0
|
||||
dynamic_padding: true
|
||||
|
||||
key_bindings:
|
||||
- { key: Paste, action: Paste }
|
||||
- { key: Copy, action: Copy }
|
||||
- { key: L, mods: Control, action: ClearLogNotice }
|
||||
- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
||||
- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
|
||||
- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
||||
- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
|
||||
- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
||||
|
||||
# Turn off vi mode
|
||||
- { key: Space, mods: Shift|Control, mode: ~Search, action: ReceiveChar }
|
||||
|
||||
# (Windows, Linux, and BSD only)
|
||||
- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
||||
- { key: C, mods: Control|Shift, action: Copy }
|
||||
- { key: F, mods: Control|Shift, mode: ~Search, action: ReceiveChar }
|
||||
- { key: B, mods: Control|Shift, mode: ~Search, action: ReceiveChar }
|
||||
- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||
#+end_src
|
||||
10
README.org
10
README.org
|
|
@ -5,15 +5,15 @@ Deployed with [[https://yadm.io/][yadm]]
|
|||
|
||||
| Group | Program | Purpose | Status | Documented? | Notes |
|
||||
|-----------+----------------+--------------------------------+-------------------+-------------+-----------------------------------------------------------|
|
||||
| console | bash | shell | launches fish :) | - | |
|
||||
| console | [[https://fishshell.com/][fish]] | shell | *active* | - | |
|
||||
| console | [[https://github.com/starship/starship][starship]] | prompt | *active* | - | |
|
||||
| console | [[https://github.com/tmux/tmux][tmux]] | terminal multiplexer | *active* | - | |
|
||||
| console | bash | shell | launches fish :) | [[file:Console.org::*Bash][Console.org]] | |
|
||||
| console | [[https://fishshell.com/][fish]] | shell | *active* | [[file:Console.org::*Fish][Console.org]] | |
|
||||
| console | [[https://github.com/starship/starship][starship]] | prompt | *active* | [[file:Console.org::*Starship][Console.org]] | |
|
||||
| console | [[https://github.com/tmux/tmux][tmux]] | terminal multiplexer | *active* | [[file:Console.org::*Tmux][Console.org]] | |
|
||||
| console | [[https://github.com/ogham/exa][exa]] | ls clone | *active* | - | |
|
||||
| console | [[https://github.com/moonpyk/dtrx][dtrx]] | archive extractor | *active* | - | |
|
||||
| console | [[https://github.com/jhspetersson/fselect][fselect]] | SQL-like find | *active* | - | |
|
||||
| console | [[https://github.com/sharkdp/bat][bat]] | cat clone | *active* | - | |
|
||||
| console | [[https://github.com/alacritty/alacritty][alacritty]] | terminal emulator | *active* | - | |
|
||||
| console | [[https://github.com/alacritty/alacritty][alacritty]] | terminal emulator | *active* | [[file:Console.org::*Alacritty][Console.org]] | |
|
||||
| console | [[https://vifm.info/][vifm]] | file manager with vim bindings | archive | - | |
|
||||
| mail | [[https://notmuchmail.org/][notmuch]] | mail indexer | *active* | [[https://sqrtminusone.xyz/posts/2021-02-27-gmail/][post]] | |
|
||||
| mail | [[https://github.com/gauteh/lieer][lieer]] | gmail API client | *active* | [[https://sqrtminusone.xyz/posts/2021-02-27-gmail/][post]] | credentials are encrypted |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue