mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-10 19:23:03 +03:00
650 lines
18 KiB
Org Mode
650 lines
18 KiB
Org Mode
#+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 "#!/usr/bin/env sh"
|
|
#+PROPERTY: header-args:bash :tangle-mode (identity #o755) :comments link :shebang "#!/usr/bin/env 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
|
|
** My 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
|
|
** Guix settings
|
|
Enable extra profiles
|
|
|
|
#+begin_src sh
|
|
GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles
|
|
for i in $GUIX_EXTRA_PROFILES/*; do
|
|
profile=$i/$(basename "$i")
|
|
if [ -f "$profile"/etc/profile ]; then
|
|
GUIX_PROFILE="$profile"
|
|
. "$GUIX_PROFILE"/etc/profile
|
|
fi
|
|
unset profile
|
|
done
|
|
#+end_src
|
|
|
|
Set a folder for my packages.
|
|
#+begin_src sh
|
|
export GUIX_PACKAGE_PATH=~/guix-packages
|
|
#+end_src
|
|
** XResources
|
|
| Guix dependency |
|
|
|-----------------|
|
|
| xrdb |
|
|
|
|
#+begin_src sh
|
|
xrdb ~/.Xresources
|
|
#+end_src
|
|
** OFF (OFF) Package manager paths
|
|
Turned off for now, because probably it won't be necessary in Guix.
|
|
|
|
LaTeX
|
|
#+begin_src sh :tangle no
|
|
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 :tangle no
|
|
if [ -d "$HOME/.cargo" ] ; then
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
fi
|
|
#+end_src
|
|
|
|
RVM (Ruby)
|
|
#+begin_src sh :tangle no
|
|
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 :tangle no
|
|
if [ -d "$HOME/go" ] ; then
|
|
export PATH="$HOME/go/bin:$PATH"
|
|
fi
|
|
#+end_src
|
|
|
|
ghcup (Haskell)
|
|
#+begin_src sh :tangle no
|
|
[ -f "/home/pavel/.ghcup/env" ] && source "/home/pavel/.ghcup/env" # ghcup-env
|
|
#+end_src
|
|
|
|
Perl
|
|
#+begin_src sh :tangle no
|
|
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:
|
|
|
|
My =.bashrc=, which has pieces from the default ones in Guix & Manjaro, as well some mine settings.
|
|
|
|
*** Startup & environment
|
|
Export 'SHELL' to child processes. Programs such as 'screen' honor it and otherwise use /bin/sh.
|
|
#+begin_src bash
|
|
export SHELL
|
|
#+end_src
|
|
|
|
We are being invoked from a non-interactive shell. If this is an SSH session (as in "ssh host command"), source /etc/profile so we get PATH and other essential variables.
|
|
|
|
#+begin_src bash
|
|
if [[ $- != *i* ]]
|
|
then
|
|
[[ -n "$SSH_CLIENT" ]] && source /etc/profile
|
|
return
|
|
fi
|
|
#+end_src
|
|
|
|
Source the system-wide file
|
|
#+begin_src bash
|
|
source /etc/bashrc
|
|
#+end_src
|
|
|
|
Allow other users to access X server. Necessary for stuff like aw-watcher-window.
|
|
#+begin_src bash
|
|
xhost +local:root > /dev/null 2>&1
|
|
#+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
|
|
use_fish=true
|
|
|
|
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 :tangle no
|
|
[ -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
|
|
*** OFF (OFF) Anaconda
|
|
#+begin_quote
|
|
managed by 'conda init' !!!
|
|
#+end_quote
|
|
Yeah, tell this to yourself
|
|
|
|
#+begin_src bash :tangle no
|
|
# >>> 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:
|
|
|
|
| Guix dependency | Description |
|
|
|-----------------+------------------------------------------|
|
|
| fish | An alternative non POSIX-compliant shell |
|
|
|
|
[[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 :tangle no
|
|
# >>> 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
|
|
|
|
| Guix dependency |
|
|
|-----------------|
|
|
| dt-colorscripts |
|
|
|
|
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
|
|
| Guix dependency | Description |
|
|
|-----------------+---------------------|
|
|
| rust-starship | my prompt of choice |
|
|
|
|
[[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 = "[➤ ](bold green)"
|
|
error_symbol = "[ ](bold red)"
|
|
vicmd_symbol = "[ᐊ ](bold green)"
|
|
|
|
[aws]
|
|
symbol = " "
|
|
|
|
[battery]
|
|
full_symbol = ""
|
|
charging_symbol = ""
|
|
discharging_symbol = ""
|
|
|
|
[conda]
|
|
symbol = " "
|
|
|
|
[cmd_duration]
|
|
min_time = 500
|
|
format = " [$duration]($style) "
|
|
|
|
[docker_context]
|
|
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:
|
|
| Guix dependency |
|
|
|-----------------|
|
|
| tmux |
|
|
|
|
[[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
|
|
| Guix dependency |
|
|
|-----------------|
|
|
| xclip |
|
|
|
|
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:
|
|
|
|
| Guix dependency |
|
|
|-----------------|
|
|
| alacritty |
|
|
|
|
[[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.
|
|
|
|
Once again, we have an application which doesn't support reading Xresources, so here goes noweb.
|
|
|
|
#+name: get-xrdb
|
|
#+begin_src bash :var color="color0" :tangle no
|
|
xrdb -query all | grep "$color:" | cut -f 2
|
|
#+end_src
|
|
|
|
#+begin_src emacs-lisp :tangle no
|
|
(setq-local org-confirm-babel-evaluate nil)
|
|
#+end_src
|
|
|
|
References:
|
|
- [[https://github.com/alacritty/alacritty/blob/master/alacritty.yml][default config]]
|
|
|
|
#+begin_src yaml :noweb yes
|
|
decorations: none
|
|
|
|
font:
|
|
normal:
|
|
family: JetBrainsMono Nerd Font
|
|
style: Regular
|
|
|
|
size: 10
|
|
|
|
env:
|
|
TERM: xterm-256color
|
|
|
|
colors:
|
|
primary:
|
|
background: '<<get-xrdb(color="color0")>>'
|
|
foreground: '<<get-xrdb(color="color7")>>'
|
|
normal:
|
|
black: '<<get-xrdb(color="color0")>>'
|
|
red: '<<get-xrdb(color="color1")>>'
|
|
green: '<<get-xrdb(color="color2")>>'
|
|
yellow: '<<get-xrdb(color="color3")>>'
|
|
blue: '<<get-xrdb(color="color4")>>'
|
|
magenta: '<<get-xrdb(color="color5")>>'
|
|
cyan: '<<get-xrdb(color="color6")>>'
|
|
white: '<<get-xrdb(color="color7")>>'
|
|
bright:
|
|
Black: '<<get-xrdb(color="color8")>>'
|
|
Red: '<<get-xrdb(color="color9")>>'
|
|
Green: '<<get-xrdb(color="color10")>>'
|
|
Yellow: '<<get-xrdb(color="color11")>>'
|
|
Blue: '<<get-xrdb(color="color12")>>'
|
|
Magenta: '<<get-xrdb(color="color13")>>'
|
|
Cyan: '<<get-xrdb(color="color14")>>'
|
|
White: '<<get-xrdb(color="color15")>>'
|
|
|
|
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
|
|
* Various applications
|
|
| Guix dependency | Description |
|
|
|-----------------+--------------------------------------|
|
|
| ncurses | provides stuff like ~clear~ |
|
|
| exa | ~ls~ replacement, written in Rust |
|
|
| bat | ~cat~ clone with syntax highlighting |
|
|
|
|
| Note | Description |
|
|
|------+-----------------|
|
|
| TODO | package fselect |
|
|
|
|
* Guix settings
|
|
#+NAME: packages
|
|
#+begin_src emacs-lisp :tangle no
|
|
(my/format-guix-dependencies)
|
|
#+end_src
|
|
|
|
#+begin_src scheme :tangle .config/guix/manifests/console.scm :noweb yes
|
|
(specifications->manifest
|
|
'(
|
|
<<packages()>>))
|
|
#+end_src
|