doc : add references.

This commit is contained in:
Dmitry Voronin 2023-12-07 04:04:03 +03:00
parent a800ec24c9
commit 7aad735ade
4 changed files with 410 additions and 0 deletions

150
.doc/bash.md Normal file
View file

@ -0,0 +1,150 @@
# Bash reference file.
To get help with usage info run:
```text
$ help <COMMAND>
or
$ h <COMMAND>
```
Command|Description
---|---
archive [DIRS]|Archive directories. All directories by default.
archive_check [FILES]|Check archives integrity. Checks all archives by default.
archive_convert|Convert old archives to a new format. TODO: remove me after some time when there won't be any old archives.
archive_fast [DIRS]|Archive directories with fast compression. All directories by default.
archive_name [ARCHIVE] [NAME]|Rename archives. If no name specified, it simplifies archive's name. If no archives specified, apply to all archives.
archive_prune [NAME]|Delete old versions of an archives. All archives by default.
battery_level|Print current battery level.
bcp|Default cp, a.k.a builtin cp. When you don't need rsync.
bootstrap_ffmpeg|Install ffmpeg.
bootstrap_grub|Install grub theme.
bootstrap_rust|Install Cargo/Rust.
bootstrap_texlive|Install TeXLive.
cdd <DIR>|CD (back) to directory. Finds first directory that matches the input (case-insensitive).
checksum|Calculate hashes for all files recursively and store in a file called "checksum.sha1".
checksum_check [FILES]|Check stored values against actual files. All files by default.
checksum_create [FILES]|Save file checksums. For file with a name "file" it will create a new file called ".file.sha1" with hash in it. All files by default.
color_test|Print all available colors with their names colored in corresponding color.
copy|Copy stdin to system clipboard. Example: echo hi | copy
cp <FROM> <TO>|Replaces default cp with rsync.
cp_link <FROM> <TO>|Copy by creating hardlinks. Works for directories, too.
cp_merge <FROM> <TO>|Copy and also merge all changes (delete dst files that do not exist in src).
cp_test <FROM> <TO>|Print output of cp_merge without writing anything.
dc|Docker compose shortcut.
dcd [SERVICES]|Docker compose down.
dcdu [SERVICES]|Docker compose down & up specified services.
dcl [SERVICES]|Docker compose logs.
dconf_load|Load Gnome settings.
dconf_save [FILE]|Dump Gnome settings into the file. Default name is gnome.dconf. Do this before changing settings and after, an then run diff to find out what to add to main gnome.dconf.
dcp [SERVICES]|Docker compose pull.
dcpu [SERVICES]|Docker compose pull & up specified services.
dcr [SERVICES]|Docker compose restart.
dcs [SERVICES]|Docker compose stop.
dcu [SERVICES]|Docker compose up.
dcul [SERVICES]|Docker compose up & attach to logs for specified services.
df|Show only physical drives info.
doc_bash|Generate a markdown file with all the help info. Outputs to ~/.doc/bash.md
docker_health|Check if any container exited.
docker_up <CONTAINER>|Find out container's IP address.
docker_prune|Prune everything.
docker_update|Update all docker images.
docker_volumes <CONTAINER>|Show container's volumes.
dow|Current day of week number.
du [DIRS]|Show combined size in SI. Current dir by default.
emulator [NAME]|Start an Android emulator. Default name is "default".
ffmpeg_music_meta <FORMAT>|Generate music metadata from directory structure. Top dir is the Artist name like this: The_Beatles. Next are albums like this: 2010_My_love. Inside are songs like this: 01_sample.flac.
ffmpeg_mux_audio <SOUND> <OUTPUT DIR>|Mux audio into containers. File names in sound and current dirrectories must match. Tmp usage for anime downloads.
ffmpeg_mux_cover <FORMAT> <COVER>|Mux cover into music file.
find_ext|Find all file extensions.
find_functions|Find all module functions.
fix_ethernet_speed <DEVICE> <SPEED>|Fix when ethernet mistakenly detects 100 Mb instead of 1000 Mb. SPEED is one of 10/100/1000 etc.
fix_files_sftp|Fix nautilus after typing wrong sftp password.
ga [FILES]|Preview diff while adding. Adds current dir by default.
gb|Git branch.
gbd <BRANCH>|Git branch delete.
gbda|Git branch delete all except current.
gc|Git commit.
gch|Git checkout.
gchb <BRANCH>|Git checkout branch.
gd|Git diff.
gdc <COMMITHASH>|See diff for a specific commit.
gf|Git fetch all.
gg <REPO>|Get my git repo.
ggc|Run git garbage collection.
gi|Git ignore files.
gl|Git log.
gp <FILE>|Git patch (apply).
gpc <FILE>|Git patch create.
gpl|Git pull.
gps|Git push.
gpsf|Git force push.
gr [COMMIT COUNT]|Rebase by X commits or from root. When COUNT is 0 - rebase from root. Default is 2.
gs|Git status.
gst|Git stash.
gt|Git tag.
gu [EMAIL]|Specify git user as Dmitry Voronin with provided email.
h <FUNCTION>|Short for help.
help <FUNCTION>|Get help about dotfiles bash function.
l [DIRS]|List files in dirs. Current dir by default.
la [DIRS]|List all files in dirs, incl. hidden files. Current dir by default.
ll [DIRS]|List last modified files first. Current dir by default.
lla [DIRS]|List all files in dirs, incl. hidden files, sorted by mtime. Current dir by default.
lll [DEPTH] [DIRS]|List files in tree structure. Current dir by default. Depth can be omitted by passing - (dash).
llll [DIRS]|List files recursively. Current dir by default.
name [FILES]|Rename files to strip all special characters. All files by default.
name_ext <EXTENSION> [FILES]|Rename files with new extension. All files by default.
name_hash [FILES]|Rename all files to their hashes while keeping extensions. All files by default.
name_hash_check [FILES]|Check hashes for previously renamed files. All files by default.
name_manga <SEASON> [FILES]|Rename files for Kavita manga format. All files by default.
name_postfix <OLD> <NEW> [FILES]|Change file name postfix. All matching files by default.
name_prefix <OLD> <NEW> [FILES]|Change file name prefix. All matching files by default.
name_replace <OLD> <NEW> [FILES]|Replace part of the name. All matching files by default.
name_series <SEASON> [FILES]|Rename files for Jellyfin series, i.e. Episode S01E01.mkv All files by default.
ncdu [DIRS]|Search only on current filesystem. Current dir by default.
notify <MESSAGE>|Send Telegram notification.
notify_silent <MESSAGE>|Send silent Telegram notification.
o <FILE>|Open file/dir in GUI.
own [USER] [FILES]|Change file ownership to specified user id and restrict access to him. Root user by default. This directory recursively by default.
pack <TARGET.ext> [FILES]|Pack files into desired format. All files and directories by default.
parse_alnum <STRING>|Parse data keeping only alphanumeric characters.
parse_camel <STRING>|Parse to CamelCase.
parse_simplify <STRING>|Parse data and output simplified format.
paste|Paste system clipboard to stdout. Example: paste > file.txt
perm|Recursively change permissions to restrict access for group and others.
perm_share|Recursively change permissions to allow read sharing with group and others.
ps <PROCESS>|Find process and filter.
recursive <COMMAND>|Run something recursively over all directories.
recursive1 <COMMAND>|Run something recursively over directories of 1 depth (excluding current dir).
rust_book|Open Rust book.
s [USER]|Su shortcut for lazy me. Root by default.
ta [NAME]|Create/attach to named session. By default uses name "main".
tba [NAME]|Attach/create toolbx container with specified name. By default uses "main" name.
tbk [NAME]|Remove toolbx container with specified name. By default uses "main" name.
tbl|List all available containers.
tb_rpmfusion [NAME]|Install rpm-fusion repository into container with specified name. By default uses "main" name.
td|Detach from running session.
tk [NAME]|Kill specified session. By default it kills "main" session.
tka|Kill all sessions.
tl|List running sessions.
tmp|CD into host's primary tmp dir.
tn [NAME]|Assign name to window. Uses current dir name by default.
today|Print today date in yyyyMMdd format.
todo|Open ~/.todo.md file.
transcode <FORMAT> [FILES]|Convert between different formats. By default tries to convert all files.
trn [NAME]|Rename current session. Uses current dir name by default.
try <COMMAND>|Retry command every 2 sec until it completes successfully.
tsize|Get terminal size.
unarchive [FILES]|Extract previously created archive with checksum validation.
unpack [FILES]|Attempt to unpack. All supported formats by default.
v|Neovim shortcut.
vdl [LINK]|Download video from URL. When no [LINK] specified, it tries to update previously downloaded link.
vdl_file <FILE>|Download all videos from file with links.
vdl_vk <LINK>|Temporary fix for vk downloads.
w <COMMAND>|Watch command output with 2 second interval.
wallpaper <FILE>|Set specified file as a wallpaper.
ww <COMMAND>|Watch command output with minimal interval.
x <FILES>|Add executable flag to file.

68
.doc/navigation.md Normal file
View file

@ -0,0 +1,68 @@
# Navigation.
Navigation principles are shared between Gnome, Tmux and Nvim. The only difference is the *"Leader"* key. Gnome uses *Super* key, Tmux uses *Meta (alt)* key and Nvim uses *Space*. The rest somewhat repeats itself.
## Gnome
Key|Action
---|---
`Super+Esc`|Lauch Terminal emulator.
`Super+q`|Switch to the left workspace.
`Super+e`|Switch to the right workspace.
`Super+Q`|Move window to the left workspace.
`Super+E`|Move window to the right workspace.
`Super+\|`|None.
`Super+-`|None.
`Super+w`|Toggle window maximize.
`Super+s`|Minimize window.
`Super+a`|Snap window to the left.
`Super+d`|Snap window to the right.
`Super+z`|Lock session.
`Super+x`|Close window.
`Super+c`|Minimize all windows.
`Super+v`|Take a screenshot.
`Super+f`|Toggle window fullscreen.
## Tmux.
Key|Action
---|---
`Meta+Esc`, `Meta+t`|New window. `Meta+t` is for the Termux Android app as it can't send the `Meta+Esc` combo.
`Meta+q`|Switch to the left window.
`Meta+e`|Switch to the right window.
`Meta+Q`|Move window to the left.
`Meta+E`|Move window to the right.
`Meta+\|`|Split vertically.
`Meta+-`|Split horizontally.
`Meta+w`|Switch to the above split.
`Meta+s`|Switch to the below split.
`Meta+a`|Switch to the left split.
`Meta+d`|Switch to the right split.
`Meta+z`|Detach from session.
`Meta+x`|Close window.
`Meta+c`|Close split.
`Meta+v`|Visual selection. `y` to copy.
`Meta+f`|None.
## Nvim.
Key|Action
---|---
`Space+Esc`|None.
`Space+q`|Switch to the left buffer.
`Space+e`|Switch to the right buffer.
`Space+Q`|Move buffer to the left.
`Space+E`|Move buffer to the right.
`Space+\|`|Split vertically.
`Space+-`|Split horizontally.
`Space+w`|Switch to the above split.
`Space+s`|Switch to the below split.
`Space+a`|Switch to the left split.
`Space+d`|Switch to the right split.
`Space+z`|Save all and exit.
`Space+x`|Close buffer.
`Space+c`|Close split.
`Space+v`|Visual selection (or just default `v`).
`Space+f`|None.
More info in [Nvim doc.](nvim.md)

188
.doc/nvim.md Normal file
View file

@ -0,0 +1,188 @@
# Nvim config.
TODO: preserve default shortcuts, only add new ones when adding new functionality.
TODO: Generate all this similar to the bash `doc_bash`.
## General info.
* Run `:Update` to update everything.
* File tree shows everything by default, telescope ingores git-ignored files.
## Keymaps.
### Common. TODO: separate visual and others from common.
Mode|Key|Action
---|---|---
Normal, Visual|`5dd`|Repeat following command N (5) times.
Normal|`.`|Repeat input on selected line.
Normal, Visual|`<Leader>.`|Repeat command on selected line(s).
Normal|`zz`|Save all files.
Normal|`ZZ`, `<Space>z`|Save all and quit.
Normal|`ZQ`|Quit without saving.
Normal|`v`, `<Space>v`|Visual selection (cursor).
Normal|`V`|Visual selection (lines).
Normal|`<C-v>`|Visual selection (block).
Normal|`gh`|Go to the start of the line.
Normal|`gl`|Go to the end of the line.
Normal|`gj`|Go to the end of the file.
Normal|`gk`|Go to the top of the file.
Normal|`u`|Undo action.
Normal|`U`|Redo action (*remaps*: undo whole line), (*default*: `<C-r>`).
Visual|`u`|Convert selection to lowercase.
Visual|`U`|Convert selection to uppercase.
Visual|`~`|Toggle case.
Normal, Visual|`;`|Enter command mode (*default*: `:`).
Normal|`<Space>0`|Open shortcuts help.
### Align.
Mode|Key|Action
---|---|---
Visual|`<Space>A`|Align selection from the right.
Visual|`<Space>a`|Align selection from the left.
### Autocomplete.
Mode|Key|Action
---|---|---
Input|`<C-Space>`|Autocomplete.
Normal|`<C-Space>`|LSP autocomplete.
### Comments.
Mode|Key|Action
---|---|---
Normal, Visual|`<Space>/`|Toggle selected line(s) comment.
### File tree.
Mode|Key|Action
---|---|---
Normal|`<Space>1`|Toggle file tree.
Normal|`<Tab>`|Toggle directory or open file for preview.
Normal|`a`|Create file/directory.
Normal|`x`|Cut file/directory.
Normal|`p`|Paste file/directory.
Normal|`f`|Filter.
Normal|`F`|Reset filter.
Normal|`d`|Delete file/directory.
Normal|`r`|Rename file.
Normal|`R`|Refresh.
Normal|`s`|Open in system app.
Normal|`S`|Search.
Normal|`I`|Toggle gitignore filter.
Normal|`y`|Copy name.
Normal|`Y`|Copy relative path.
### Fold.
Mode|Key|Action
---|---|---
Normal|`<Space>o`|Toggle fold.
Normal|`<Space>O`|Fold everything.
### Git.
Mode|Key|Action
---|---|---
Normal|`<Space>g`|Toggle git inspection mode.
### Macros.
Mode|Key|Action
---|---|---
Visual|`mwx`|Unwrap selection (select the stuff inside wraps).
Visual|`mw"`|Wrap selection in ".
Visual|`mw3"`|Wrap selection in 3x ".
Visual|`mw'`|Wrap selection in '.
Visual|`mw(`|Wrap selection in ().
Visual|`mw{`|Wrap selection in {}.
Visual|`mw[`|Wrap selection in [].
Visual|`` mw` ``|Wrap selection in \`.
Visual|`` mw3` ``|Wrap selection in 3x \`.
Visual|`mw*`|Wrap selection in *.
Visual|`mw2*`|Wrap selection in 2x *.
Visual|`mw3*`|Wrap selection in 3x *.
Visual|`mw `|Wrap selection in spaces.
Normal, Visual|`mmx`|Markdown: set - [ ] as completed.
Normal, Visual|`mm `|Markdown: set - [x] as not completed.
Normal|`mmp`|Markdown: insert paragrapg (2x non-breakable spaces).
Visual|`mmb`|Markdown: make selection bold.
Visual|`mmi`|Markdown: make selection italic.
Visual|`mms`|Markdown: make selection strikethrough.
Visual|`mmr`|Markdown: make selection a reference.
Visual|`mmc`|Markdown: make selection a code block.
Normal|`mi`|Copy and increment selected line.
Normal|`ma`|Select all.
### Navigation.
Mode|Key|Action
---|---|---
Normal|`<Space>w`|Switch to the split above.
Normal|`<Space>a`|Switch to the split left.
Normal|`<Space>s`|Switch to the split below.
Normal|`<Space>d`|Switch to the split right.
Normal|`<Space>q`|Swtich to the buffer left.
Normal|`<Space>e`|Swtich to the buffer right.
Normal|`<Space>Q`|Move the buffer left.
Normal|`<Space>E`|Move the buffer right.
Normal|`<Space>x`|Close the buffer.
Normal|`<Space>X`|Close all invisible buffers.
Normal|`<Space>m`|Move split.
Normal|`<Space>\|`|Split vertically.
Normal|`<Space>-`|Split horizontally.
Normal|`<Space>c`|Close split.
Input|`<C-h>`|Move left.
Input|`<C-l>`|Move right.
Input|`<C-j>`|Move down.
Input|`<C-k>`|Move up.
### Telescope.
Mode|Key|Action
---|---|---
Normal|`<Space>ff`|Find files.
Normal|`<Space>fg`|Find grep (find text within files).
Normal|`<Space>fb`|Find buffer.
Normal|`<Space>fh`|Find help.
Normal|`<Space>ft`|Find treesitter (vars, functions etc).
Normal|`<Space>fa`|Find all (default treesitter window).
### Terminal.
Mode|Key|Action
---|---|---
Normal|`<Space>4`|Open terminal.
Terminal|`<Esc>`|Detach from terminal.
### To-do.
Write `TODO:` or `NOTE:` to make it searchable.
Mode|Key|Action
---|---|---
Normal|`<Space>3`|Open to-do list.
### Trouble.
Mode|Key|Action
---|---|---
Normal|`<Space>2`|Open LSP trouble list.
### Which key.
Mode|Key|Action
---|---|---
Normal|`<Space>0`|Show context hotkey help.
### Window management.
Mode|Key|Action
---|---|---
Normal|`-`|Decrease split size vertically.
Normal|`_`|Increase split size vertically.
Normal|`\`|Decrease split size horizontally.
Normal|`\|`|Increase split size horizontally.
Normal|`<Space>=`|Equalize split sizes.

4
.gitignore vendored
View file

@ -13,6 +13,10 @@
# bash. # bash.
!/.bashrc !/.bashrc
# Doc.
!/.doc/
!/.doc/**
# dir structure # dir structure
!/app/ !/app/
/app/* /app/*