feat: use nnn and treesitter
vifm is removed in favour of nnn, with the keybindings in nvim being changed. TODO: improve the colorscheme of `nnn` to match `ls`. All nvim plugins that were responsible for language syntax highlighting are removed in favour of treesitter[1], a syntax highlighter that parses AST instead of being regex-based. This is still experimental, but my tests so far have not encountered any issues. 1) https://github.com/nvim-treesitter/nvim-treesitter
This commit is contained in:
parent
83fd35f1e2
commit
b487e3db6a
|
@ -18,9 +18,6 @@ bindsym $mod+Shift+h exec psos help
|
||||||
|
|
||||||
bindsym $mod+F2 exec firefox
|
bindsym $mod+F2 exec firefox
|
||||||
|
|
||||||
bindsym $mod+F3 exec $term -e vifm
|
|
||||||
bindsym $mod+Shift+F3 exec gksu $term -e vifm
|
|
||||||
|
|
||||||
bindsym $mod+F4 exec nautilus -w
|
bindsym $mod+F4 exec nautilus -w
|
||||||
bindsym $mod+Shift+F4 exec signal-desktop --use-tray-icon
|
bindsym $mod+Shift+F4 exec signal-desktop --use-tray-icon
|
||||||
|
|
||||||
|
|
|
@ -94,8 +94,6 @@ in {
|
||||||
mutt = "neomutt";
|
mutt = "neomutt";
|
||||||
ls = "exa";
|
ls = "exa";
|
||||||
la = "exa --group-directories-first -lag";
|
la = "exa --group-directories-first -lag";
|
||||||
fm = "vifm .";
|
|
||||||
vifm = "vifm .";
|
|
||||||
wget = "wget --hsts-file=$XDG_CACHE_HOME/wget-hsts";
|
wget = "wget --hsts-file=$XDG_CACHE_HOME/wget-hsts";
|
||||||
irssi = "irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_DATA_HOME/irssi";
|
irssi = "irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_DATA_HOME/irssi";
|
||||||
drone = "DRONE_TOKEN=$(secret-tool lookup drone token) drone";
|
drone = "DRONE_TOKEN=$(secret-tool lookup drone token) drone";
|
||||||
|
@ -103,5 +101,6 @@ in {
|
||||||
# fix nixos-option
|
# fix nixos-option
|
||||||
nixos-option = "nixos-option -I nixpkgs=${self}/lib/compat";
|
nixos-option = "nixos-option -I nixpkgs=${self}/lib/compat";
|
||||||
myip = "dig +short myip.opendns.com @208.67.222.222 2>&1";
|
myip = "dig +short myip.opendns.com @208.67.222.222 2>&1";
|
||||||
|
nnn = "nnn -d -e -H -r";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,10 +47,15 @@ in {
|
||||||
gh
|
gh
|
||||||
glow
|
glow
|
||||||
jump
|
jump
|
||||||
nnn
|
(nnn.overrideAttrs (o: {
|
||||||
|
patches =
|
||||||
|
(o.patches or [])
|
||||||
|
++ [
|
||||||
|
./nnn/0001-feat-use-wasd-keybindings-for-jkli.patch
|
||||||
|
];
|
||||||
|
}))
|
||||||
powerline
|
powerline
|
||||||
silver-searcher
|
silver-searcher
|
||||||
vifm
|
|
||||||
watson
|
watson
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
From a81ee68923412c0fb8fab46f2f918a7ec865b384 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Benjamin=20B=C3=A4dorf?= <hello@benjaminbaedorf.eu>
|
||||||
|
Date: Sun, 9 Jul 2023 04:19:51 +0200
|
||||||
|
Subject: [PATCH] feat: use wasd keybindings for jkli
|
||||||
|
|
||||||
|
---
|
||||||
|
src/nnn.h | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/nnn.h b/src/nnn.h
|
||||||
|
index d476ddd2..5f106987 100644
|
||||||
|
--- a/src/nnn.h
|
||||||
|
+++ b/src/nnn.h
|
||||||
|
@@ -131,7 +131,7 @@ struct key {
|
||||||
|
static struct key bindings[] = {
|
||||||
|
/* Back */
|
||||||
|
{ KEY_LEFT, SEL_BACK },
|
||||||
|
- { 'h', SEL_BACK },
|
||||||
|
+ { 'j', SEL_BACK },
|
||||||
|
/* Inside or select */
|
||||||
|
{ KEY_ENTER, SEL_OPEN },
|
||||||
|
{ '\r', SEL_OPEN },
|
||||||
|
@@ -139,10 +139,10 @@ static struct key bindings[] = {
|
||||||
|
{ KEY_RIGHT, SEL_NAV_IN },
|
||||||
|
{ 'l', SEL_NAV_IN },
|
||||||
|
/* Next */
|
||||||
|
- { 'j', SEL_NEXT },
|
||||||
|
+ { 'k', SEL_NEXT },
|
||||||
|
{ KEY_DOWN, SEL_NEXT },
|
||||||
|
/* Previous */
|
||||||
|
- { 'k', SEL_PREV },
|
||||||
|
+ { 'i', SEL_PREV },
|
||||||
|
{ KEY_UP, SEL_PREV },
|
||||||
|
/* Page down */
|
||||||
|
{ KEY_NPAGE, SEL_PGDN },
|
||||||
|
--
|
||||||
|
2.40.1
|
||||||
|
|
|
@ -46,6 +46,48 @@ in {
|
||||||
plugins = with pkgs.vimPlugins;
|
plugins = with pkgs.vimPlugins;
|
||||||
[]
|
[]
|
||||||
++ lib.optionals (!cfg.lite) [
|
++ lib.optionals (!cfg.lite) [
|
||||||
|
(pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [
|
||||||
|
p.nix
|
||||||
|
p.markdown
|
||||||
|
p.json
|
||||||
|
p.json5
|
||||||
|
p.yaml
|
||||||
|
|
||||||
|
p.html
|
||||||
|
p.css
|
||||||
|
p.scss
|
||||||
|
p.typescript
|
||||||
|
p.tsx
|
||||||
|
p.javascript
|
||||||
|
p.graphql
|
||||||
|
p.vue
|
||||||
|
|
||||||
|
p.rust
|
||||||
|
p.go
|
||||||
|
p.gomod
|
||||||
|
p.gosum
|
||||||
|
p.ruby
|
||||||
|
p.python
|
||||||
|
p.haskell
|
||||||
|
p.c
|
||||||
|
p.cpp
|
||||||
|
|
||||||
|
p.vim
|
||||||
|
p.vimdoc
|
||||||
|
|
||||||
|
p.sql
|
||||||
|
p.passwd
|
||||||
|
|
||||||
|
p.gitcommit
|
||||||
|
p.gitignore
|
||||||
|
p.git_config
|
||||||
|
p.gitattributes
|
||||||
|
p.git_rebase
|
||||||
|
|
||||||
|
p.dockerfile
|
||||||
|
p.terraform
|
||||||
|
]))
|
||||||
|
|
||||||
nvim-cmp
|
nvim-cmp
|
||||||
cmp-nvim-lsp
|
cmp-nvim-lsp
|
||||||
cmp_luasnip
|
cmp_luasnip
|
||||||
|
@ -56,14 +98,20 @@ in {
|
||||||
|
|
||||||
instant-nvim-nvfetcher
|
instant-nvim-nvfetcher
|
||||||
|
|
||||||
|
# Search functionality behind :Ack
|
||||||
ack-vim
|
ack-vim
|
||||||
|
|
||||||
|
# The status bar in the bottom of the screen with the mode indication and file location
|
||||||
vim-airline
|
vim-airline
|
||||||
|
|
||||||
|
# Automatically load editorconfig files in repos to configure nvim settings
|
||||||
editorconfig-vim
|
editorconfig-vim
|
||||||
|
|
||||||
|
# File browser. Use <leader>n to access
|
||||||
nnn-vim
|
nnn-vim
|
||||||
|
|
||||||
quick-scope
|
quick-scope
|
||||||
suda-vim
|
suda-vim
|
||||||
syntastic
|
|
||||||
vim-vinegar
|
|
||||||
vim-workspace-nvfetcher
|
vim-workspace-nvfetcher
|
||||||
|
|
||||||
sonokai
|
sonokai
|
||||||
|
@ -86,21 +134,8 @@ in {
|
||||||
vim-bufkill
|
vim-bufkill
|
||||||
vim-sensible
|
vim-sensible
|
||||||
|
|
||||||
ansible-vim
|
|
||||||
emmet-vim
|
emmet-vim
|
||||||
rust-vim
|
|
||||||
vim-caddyfile-nvfetcher
|
vim-caddyfile-nvfetcher
|
||||||
vim-go
|
|
||||||
vim-javascript
|
|
||||||
vim-json
|
|
||||||
SchemaStore-nvim
|
|
||||||
vim-markdown
|
|
||||||
vim-nix
|
|
||||||
vim-nixhash
|
|
||||||
vim-ruby
|
|
||||||
vim-toml
|
|
||||||
vim-vue
|
|
||||||
yats-vim
|
|
||||||
];
|
];
|
||||||
|
|
||||||
extraConfig = builtins.concatStringsSep "\n" [
|
extraConfig = builtins.concatStringsSep "\n" [
|
||||||
|
|
|
@ -101,3 +101,6 @@ if has("autocmd")
|
||||||
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
|
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
nmap - :NnnPicker %<CR>
|
||||||
|
nmap <leader>n :NnnPicker %<CR>
|
||||||
|
nmap <leader>N :NnnPicker<CR>
|
||||||
|
|
|
@ -83,3 +83,5 @@ if executable('ag')
|
||||||
let g:ackprg = 'ag --vimgrep'
|
let g:ackprg = 'ag --vimgrep'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" nnn
|
||||||
|
let g:nnn#command = 'nnn -d -e -H -r'
|
||||||
|
|
|
@ -6,19 +6,27 @@
|
||||||
user = config.pub-solar.user;
|
user = config.pub-solar.user;
|
||||||
xdg = config.home-manager.users."${user.name}".xdg;
|
xdg = config.home-manager.users."${user.name}".xdg;
|
||||||
in ''
|
in ''
|
||||||
# Title: Summary, imperative, start upper case, don't end with a period
|
# What happened?
|
||||||
# No more than 50 chars. #### 50 chars is here: #
|
#
|
||||||
|
# fix feat build chore ci docs style refactor perf test
|
||||||
|
#
|
||||||
|
# type!(optional scope): <description>
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# ^ Remember ending with an extra blank line
|
# ^\n
|
||||||
# Body: Explain *what* and *why* (not *how*). Include issue number.
|
# What exactly was done and why?
|
||||||
# Wrap at 72 chars. ################################## which is here: #
|
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# ^ Remember ending with an extra blank line
|
# ^\n
|
||||||
# At the end: Include Co-authored-by for all contributors.
|
#
|
||||||
|
# Any issue numbers or links?
|
||||||
|
#
|
||||||
|
# Refs: #123
|
||||||
|
|
||||||
|
|
||||||
|
# ^\n
|
||||||
#
|
#
|
||||||
# Co-authored-by: Example Name <email@example.com>
|
# Co-authored-by: Example Name <email@example.com>
|
||||||
''
|
''
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
" Reset all styles first
|
|
||||||
highlight clear
|
|
||||||
|
|
||||||
highlight Border cterm=none ctermfg=235 ctermbg=0
|
|
||||||
|
|
||||||
highlight TopLine cterm=none ctermfg=20 ctermbg=18
|
|
||||||
highlight TopLineSel cterm=none ctermfg=1 ctermbg=18
|
|
||||||
|
|
||||||
highlight Win cterm=none ctermfg=188 ctermbg=0
|
|
||||||
highlight Directory cterm=bold ctermfg=4 ctermbg=0
|
|
||||||
highlight CurrLine cterm=none ctermfg=3 ctermbg=19
|
|
||||||
highlight OtherLine cterm=none ctermfg=3 ctermbg=19
|
|
||||||
highlight Selected cterm=none ctermfg=5 ctermbg=19
|
|
||||||
|
|
||||||
highlight JobLine cterm=bold ctermfg=0 ctermbg=18
|
|
||||||
highlight StatusLine cterm=bold ctermfg=0 ctermbg=18
|
|
||||||
highlight ErrorMsg cterm=bold ctermfg=0 ctermbg=18
|
|
||||||
highlight WildMenu cterm=bold ctermfg=0 ctermbg=18
|
|
||||||
highlight CmdLine cterm=none ctermfg=20 ctermbg=0
|
|
||||||
|
|
||||||
highlight Executable cterm=bold ctermfg=2 ctermbg=0
|
|
||||||
highlight Link cterm=none ctermfg=9 ctermbg=0
|
|
||||||
highlight BrokenLink cterm=none ctermfg=1 ctermbg=0
|
|
||||||
highlight Device cterm=none ctermfg=228 ctermbg=0
|
|
||||||
highlight Fifo cterm=none ctermfg=109 ctermbg=0
|
|
||||||
highlight Socket cterm=none ctermfg=110 ctermbg=0
|
|
|
@ -1,495 +0,0 @@
|
||||||
" vim: filetype=vifm :
|
|
||||||
" Sample configuration file for vifm (last updated: 2 June, 2019)
|
|
||||||
" You can edit this file by hand.
|
|
||||||
" The " character at the beginning of a line comments out the line.
|
|
||||||
" Blank lines are ignored.
|
|
||||||
" The basic format for each item is shown with an example.
|
|
||||||
|
|
||||||
" ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
" Command used to edit files in various contexts. The default is vim.
|
|
||||||
" If you would like to use another vi clone such as Elvis or Vile
|
|
||||||
" you will need to change this setting.
|
|
||||||
|
|
||||||
set vicmd=nvim
|
|
||||||
" set vicmd=elvis\ -G\ termcap
|
|
||||||
" set vicmd=vile
|
|
||||||
|
|
||||||
" This makes vifm perform file operations on its own instead of relying on
|
|
||||||
" standard utilities like `cp`. While using `cp` and alike is a more universal
|
|
||||||
" solution, it's also much slower when processing large amounts of files and
|
|
||||||
" doesn't support progress measuring.
|
|
||||||
|
|
||||||
set syscalls
|
|
||||||
|
|
||||||
" Trash Directory
|
|
||||||
" The default is to move files that are deleted with dd or :d to
|
|
||||||
" the trash directory. If you change this you will not be able to move
|
|
||||||
" files by deleting them and then using p to put the file in the new location.
|
|
||||||
" I recommend not changing this until you are familiar with vifm.
|
|
||||||
" This probably shouldn't be an option.
|
|
||||||
|
|
||||||
set trash
|
|
||||||
|
|
||||||
" This is how many directories to store in the directory history.
|
|
||||||
|
|
||||||
set history=100
|
|
||||||
|
|
||||||
" Automatically resolve symbolic links on l or Enter.
|
|
||||||
|
|
||||||
set nofollowlinks
|
|
||||||
|
|
||||||
" With this option turned on you can run partially entered commands with
|
|
||||||
" unambiguous beginning using :! (e.g. :!Te instead of :!Terminal or :!Te<tab>).
|
|
||||||
|
|
||||||
" set fastrun
|
|
||||||
|
|
||||||
" Natural sort of (version) numbers within text.
|
|
||||||
|
|
||||||
set sortnumbers
|
|
||||||
|
|
||||||
" Maximum number of changes that can be undone.
|
|
||||||
|
|
||||||
set undolevels=100
|
|
||||||
|
|
||||||
" Use Vim's format of help file (has highlighting and "hyperlinks").
|
|
||||||
" If you would rather use a plain text help file set novimhelp.
|
|
||||||
|
|
||||||
set vimhelp
|
|
||||||
|
|
||||||
" If you would like to run an executable file when you
|
|
||||||
" press return on the file name set this.
|
|
||||||
|
|
||||||
set norunexec
|
|
||||||
|
|
||||||
" Selected color scheme
|
|
||||||
|
|
||||||
colorscheme base16
|
|
||||||
|
|
||||||
" Format for displaying time in file list. For example:
|
|
||||||
" TIME_STAMP_FORMAT=%m/%d-%H:%M
|
|
||||||
" See man date or man strftime for details.
|
|
||||||
|
|
||||||
set timefmt=%m/%d\ %H:%M
|
|
||||||
|
|
||||||
" Show list of matches on tab completion in command-line mode
|
|
||||||
|
|
||||||
set wildmenu
|
|
||||||
|
|
||||||
" Display completions in a form of popup with descriptions of the matches
|
|
||||||
|
|
||||||
set wildstyle=popup
|
|
||||||
|
|
||||||
" Display suggestions in normal, visual and view modes for keys, marks and
|
|
||||||
" registers (at most 5 files). In other view, when available.
|
|
||||||
|
|
||||||
set suggestoptions=normal,visual,view,otherpane,keys,marks,registers
|
|
||||||
|
|
||||||
" Ignore case in search patterns unless it contains at least one uppercase
|
|
||||||
" letter
|
|
||||||
|
|
||||||
set ignorecase
|
|
||||||
set smartcase
|
|
||||||
|
|
||||||
" Don't highlight search results automatically
|
|
||||||
|
|
||||||
set nohlsearch
|
|
||||||
|
|
||||||
" Use increment searching (search while typing)
|
|
||||||
set incsearch
|
|
||||||
|
|
||||||
" Try to leave some space from cursor to upper/lower border in lists
|
|
||||||
|
|
||||||
set scrolloff=4
|
|
||||||
|
|
||||||
" Don't do too many requests to slow file systems
|
|
||||||
|
|
||||||
if !has('win')
|
|
||||||
set slowfs=curlftpfs
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Set custom status line look
|
|
||||||
|
|
||||||
set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d "
|
|
||||||
|
|
||||||
" ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
" :mark mark /full/directory/path [filename]
|
|
||||||
|
|
||||||
mark b ~/bin/
|
|
||||||
mark h ~/
|
|
||||||
|
|
||||||
" ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
" :com[mand][!] command_name action
|
|
||||||
" The following macros can be used in a command
|
|
||||||
" %a is replaced with the user arguments.
|
|
||||||
" %c the current file under the cursor.
|
|
||||||
" %C the current file under the cursor in the other directory.
|
|
||||||
" %f the current selected file, or files.
|
|
||||||
" %F the current selected file, or files in the other directory.
|
|
||||||
" %b same as %f %F.
|
|
||||||
" %d the current directory name.
|
|
||||||
" %D the other window directory name.
|
|
||||||
" %m run the command in a menu window
|
|
||||||
|
|
||||||
command! df df -h %m 2> /dev/null
|
|
||||||
command! diff vim -d %f %F
|
|
||||||
command! zip zip -r %f.zip %f
|
|
||||||
command! unzip unzip %c %c.extracted
|
|
||||||
command! run !! ./%f
|
|
||||||
command! make !!make %a
|
|
||||||
command! mkcd :mkdir %a | cd %a
|
|
||||||
command! vgrep vim "+grep %a"
|
|
||||||
command! reload :write | restart
|
|
||||||
|
|
||||||
" ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
" The file type is for the default programs to be used with
|
|
||||||
" a file extension.
|
|
||||||
" :filetype pattern1,pattern2 defaultprogram,program2
|
|
||||||
" :fileviewer pattern1,pattern2 consoleviewer
|
|
||||||
" The other programs for the file type can be accessed with the :file command
|
|
||||||
" The command macros %f, %F, %d, %F may be used in the commands.
|
|
||||||
" The %a macro is ignored. To use a % you must put %%.
|
|
||||||
|
|
||||||
" For automated FUSE mounts, you must register an extension with :file[x]type
|
|
||||||
" in one of following formats:
|
|
||||||
"
|
|
||||||
" :filetype extensions FUSE_MOUNT|some_mount_command using %SOURCE_FILE and %DESTINATION_DIR variables
|
|
||||||
" %SOURCE_FILE and %DESTINATION_DIR are filled in by vifm at runtime.
|
|
||||||
" A sample line might look like this:
|
|
||||||
" :filetype *.zip,*.jar,*.war,*.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
|
|
||||||
"
|
|
||||||
" :filetype extensions FUSE_MOUNT2|some_mount_command using %PARAM and %DESTINATION_DIR variables
|
|
||||||
" %PARAM and %DESTINATION_DIR are filled in by vifm at runtime.
|
|
||||||
" A sample line might look like this:
|
|
||||||
" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
|
|
||||||
" %PARAM value is filled from the first line of file (whole line).
|
|
||||||
" Example first line for SshMount filetype: root@127.0.0.1:/
|
|
||||||
"
|
|
||||||
" You can also add %CLEAR if you want to clear screen before running FUSE
|
|
||||||
" program.
|
|
||||||
|
|
||||||
" Pdf
|
|
||||||
filextype *.pdf epdfview %c %i &, apvlv %c, xpdf %c
|
|
||||||
fileviewer *.pdf
|
|
||||||
\ vifmimg pdfpreview %px %py %pw %ph %c
|
|
||||||
\ %pc
|
|
||||||
\ vifmimg clear
|
|
||||||
" \ pdftotext -nopgbrk %c -
|
|
||||||
|
|
||||||
" PostScript
|
|
||||||
filextype *.ps,*.eps,*.ps.gz
|
|
||||||
\ {View in zathura}
|
|
||||||
\ zathura %f,
|
|
||||||
\ {View in gv}
|
|
||||||
\ gv %c %i &,
|
|
||||||
|
|
||||||
" Djvu
|
|
||||||
filextype *.djvu
|
|
||||||
\ {View in zathura}
|
|
||||||
\ zathura %f,
|
|
||||||
\ {View in apvlv}
|
|
||||||
\ apvlv %f,
|
|
||||||
|
|
||||||
" Audio
|
|
||||||
filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus
|
|
||||||
\ {Play using vlc}
|
|
||||||
\ vlc %c,
|
|
||||||
\ {Play using ffplay}
|
|
||||||
\ ffplay -nodisp -autoexit %c,
|
|
||||||
fileviewer *.mp3 mp3info
|
|
||||||
fileviewer *.flac soxi
|
|
||||||
|
|
||||||
" Video
|
|
||||||
filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
|
|
||||||
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
|
|
||||||
\*.as[fx]
|
|
||||||
\ {View using vlc}
|
|
||||||
\ vlc %f,
|
|
||||||
\ {View using ffplay}
|
|
||||||
\ ffplay -fs -autoexit %f,
|
|
||||||
fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
|
|
||||||
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
|
|
||||||
\*.as[fx]
|
|
||||||
\ vifmimg videopreview %px %py %pw %ph %c
|
|
||||||
\ %pc
|
|
||||||
\ vifmimg clear
|
|
||||||
" \ ffprobe -pretty %c 2>&1
|
|
||||||
|
|
||||||
" Web
|
|
||||||
filextype *.html,*.htm
|
|
||||||
\ {Open with vim}
|
|
||||||
\ nvim %f,
|
|
||||||
\ {Open with firefox}
|
|
||||||
\ firefox %f &,
|
|
||||||
filetype *.html,*.htm links, lynx
|
|
||||||
|
|
||||||
" Object
|
|
||||||
filetype *.o nm %f | less
|
|
||||||
|
|
||||||
" Man page
|
|
||||||
filetype *.[1-8] man ./%c
|
|
||||||
fileviewer *.[1-8] man ./%c | col -b
|
|
||||||
|
|
||||||
" Images
|
|
||||||
filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
|
|
||||||
\ {View in viewnior}
|
|
||||||
\ viewnior %f,
|
|
||||||
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.xpm
|
|
||||||
\ vifmimg draw %px %py %pw %ph %c
|
|
||||||
\ %pc
|
|
||||||
\ vifmimg clear
|
|
||||||
" Get w3m image previews inside vifm
|
|
||||||
" \ imgt %px %py %pw %ph %c
|
|
||||||
" \ %pc
|
|
||||||
" \ imgc %px %py %pw %ph NOT NEEDED IN XTERM
|
|
||||||
fileviewer *.gif
|
|
||||||
\ vifmimg gifpreview %px %py %pw %ph %c
|
|
||||||
\ %pc
|
|
||||||
\ vifmimg clear
|
|
||||||
|
|
||||||
" OpenRaster
|
|
||||||
filextype *.ora
|
|
||||||
\ {Edit in MyPaint}
|
|
||||||
\ mypaint %f,
|
|
||||||
|
|
||||||
" Mindmap
|
|
||||||
filextype *.vym
|
|
||||||
\ {Open with VYM}
|
|
||||||
\ vym %f &,
|
|
||||||
|
|
||||||
" MD5
|
|
||||||
filetype *.md5
|
|
||||||
\ {Check MD5 hash sum}
|
|
||||||
\ md5sum -c %f %S,
|
|
||||||
|
|
||||||
" SHA1
|
|
||||||
filetype *.sha1
|
|
||||||
\ {Check SHA1 hash sum}
|
|
||||||
\ sha1sum -c %f %S,
|
|
||||||
|
|
||||||
" SHA256
|
|
||||||
filetype *.sha256
|
|
||||||
\ {Check SHA256 hash sum}
|
|
||||||
\ sha256sum -c %f %S,
|
|
||||||
|
|
||||||
" SHA512
|
|
||||||
filetype *.sha512
|
|
||||||
\ {Check SHA512 hash sum}
|
|
||||||
\ sha512sum -c %f %S,
|
|
||||||
|
|
||||||
" GPG signature
|
|
||||||
filetype *.asc
|
|
||||||
\ {Check signature}
|
|
||||||
\ !!gpg --verify %c,
|
|
||||||
|
|
||||||
" Torrent
|
|
||||||
filetype *.torrent ktorrent %f &
|
|
||||||
fileviewer *.torrent dumptorrent -v %c
|
|
||||||
|
|
||||||
" FuseZipMount
|
|
||||||
filetype *.zip,*.jar,*.war,*.ear,*.oxt,*.apkg
|
|
||||||
\ {Mount with fuse-zip}
|
|
||||||
\ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
|
|
||||||
\ {View contents}
|
|
||||||
\ zip -sf %c | less,
|
|
||||||
\ {Extract here}
|
|
||||||
\ tar -xf %c,
|
|
||||||
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt zip -sf %c
|
|
||||||
|
|
||||||
" ArchiveMount
|
|
||||||
filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz
|
|
||||||
\ {Mount with archivemount}
|
|
||||||
\ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR,
|
|
||||||
fileviewer *.tgz,*.tar.gz tar -tzf %c
|
|
||||||
fileviewer *.tar.bz2,*.tbz2 tar -tjf %c
|
|
||||||
fileviewer *.tar.txz,*.txz xz --list %c
|
|
||||||
fileviewer *.tar tar -tf %c
|
|
||||||
|
|
||||||
" Rar2FsMount and rar archives
|
|
||||||
filetype *.rar
|
|
||||||
\ {Mount with rar2fs}
|
|
||||||
\ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR,
|
|
||||||
fileviewer *.rar unrar v %c
|
|
||||||
|
|
||||||
" IsoMount
|
|
||||||
filetype *.iso
|
|
||||||
\ {Mount with fuseiso}
|
|
||||||
\ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR,
|
|
||||||
|
|
||||||
" SshMount
|
|
||||||
filetype *.ssh
|
|
||||||
\ {Mount with sshfs}
|
|
||||||
\ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND,
|
|
||||||
|
|
||||||
" FtpMount
|
|
||||||
filetype *.ftp
|
|
||||||
\ {Mount with curlftpfs}
|
|
||||||
\ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND,
|
|
||||||
|
|
||||||
" Fuse7z and 7z archives
|
|
||||||
filetype *.7z
|
|
||||||
\ {Mount with fuse-7z}
|
|
||||||
\ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR,
|
|
||||||
fileviewer *.7z 7z l %c
|
|
||||||
|
|
||||||
" Office files
|
|
||||||
filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx libreoffice %f &
|
|
||||||
fileviewer *.doc catdoc %c
|
|
||||||
fileviewer *.docx docx2txt.pl %f -
|
|
||||||
|
|
||||||
" TuDu files
|
|
||||||
filetype *.tudu tudu -f %c
|
|
||||||
|
|
||||||
" Qt projects
|
|
||||||
filextype *.pro qtcreator %f &
|
|
||||||
|
|
||||||
" All others
|
|
||||||
filetype *.ts,*.js,*.css,*.sass,*.scss,*.go,*.rs,*.py,*.html,*.xhtml,*.json,*.jsx,*.tsx,*.vue,*.svelte,*.sql
|
|
||||||
\ {Open in editor}
|
|
||||||
\ nvim %c,
|
|
||||||
fileviewer *.ts,*.js,*.css,*.sass,*.scss,*.go,*.rs,*.py,*.html,*.xhtml,*.json,*.jsx,*.tsx,*.vue,*.svelte,*.sql bat %c
|
|
||||||
|
|
||||||
" Directories
|
|
||||||
filextype */
|
|
||||||
\ {View in thunar}
|
|
||||||
\ Thunar %f &,
|
|
||||||
|
|
||||||
" Syntax highlighting in preview
|
|
||||||
"
|
|
||||||
" Explicitly set highlight type for some extensions
|
|
||||||
"
|
|
||||||
" 256-color terminal
|
|
||||||
" fileviewer *.[ch],*.[ch]pp highlight -O xterm256 -s dante --syntax c %c
|
|
||||||
" fileviewer Makefile,Makefile.* highlight -O xterm256 -s dante --syntax make %c
|
|
||||||
"
|
|
||||||
" 16-color terminal
|
|
||||||
" fileviewer *.c,*.h highlight -O ansi -s dante %c
|
|
||||||
"
|
|
||||||
" Or leave it for automatic detection
|
|
||||||
"
|
|
||||||
" fileviewer *[^/] pygmentize -O style=monokai -f console256 -g
|
|
||||||
|
|
||||||
" Displaying pictures in terminal
|
|
||||||
"
|
|
||||||
" fileviewer *.jpg,*.png shellpic %c
|
|
||||||
|
|
||||||
" Open all other files with default system programs (you can also remove all
|
|
||||||
" :file[x]type commands above to ensure they don't interfere with system-wide
|
|
||||||
" settings). By default all unknown files are opened with 'vi[x]cmd'
|
|
||||||
" uncommenting one of lines below will result in ignoring 'vi[x]cmd' option
|
|
||||||
" for unknown file types.
|
|
||||||
" For *nix:
|
|
||||||
" filetype * xdg-open
|
|
||||||
" For OS X:
|
|
||||||
" filetype * open
|
|
||||||
" For Windows:
|
|
||||||
" filetype * start, explorer
|
|
||||||
|
|
||||||
" ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
" What should be saved automatically between vifm sessions. Drop "savedirs"
|
|
||||||
" value if you don't want vifm to remember last visited directories for you.
|
|
||||||
set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,
|
|
||||||
\phistory,fhistory,dirstack,registers,bookmarks,bmarks
|
|
||||||
|
|
||||||
" ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
" Examples of configuring both panels
|
|
||||||
|
|
||||||
" Customize view columns a bit (enable ellipsis for truncated file names)
|
|
||||||
"
|
|
||||||
" set viewcolumns=-{name}..,6{}.
|
|
||||||
|
|
||||||
" Filter-out build and temporary files
|
|
||||||
"
|
|
||||||
" filter! /^.*\.(lo|o|d|class|py[co])$|.*~$/
|
|
||||||
|
|
||||||
" ------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
" Sample mappings
|
|
||||||
|
|
||||||
" Start shell in current directory
|
|
||||||
nnoremap s :shell<cr>
|
|
||||||
|
|
||||||
" Display sorting dialog
|
|
||||||
nnoremap S :sort<cr>
|
|
||||||
|
|
||||||
" Toggle visibility of preview window
|
|
||||||
nnoremap w :view<cr>
|
|
||||||
vnoremap w :view<cr>gv
|
|
||||||
|
|
||||||
" Open file in existing instance of nvim
|
|
||||||
nnoremap o :!vim %f<cr>
|
|
||||||
" Open file in new instance of vim
|
|
||||||
nnoremap O :!vim %f<cr>
|
|
||||||
|
|
||||||
" Open file in the background using its default program
|
|
||||||
nnoremap gb :file &<cr>l
|
|
||||||
|
|
||||||
" Interaction with system clipboard
|
|
||||||
if has('win')
|
|
||||||
" Yank current directory path to Windows clipboard with forward slashes
|
|
||||||
nnoremap yp :!echo %"d:gs!\!/! %i | clip<cr>
|
|
||||||
" Yank path to current file to Windows clipboard with forward slashes
|
|
||||||
nnoremap yf :!echo %"c:gs!\!/! %i | clip<cr>
|
|
||||||
elseif executable('xclip')
|
|
||||||
" Yank current directory path into the clipboard
|
|
||||||
nnoremap yd :!echo %d | xclip %i<cr>
|
|
||||||
" Yank current file path into the clipboard
|
|
||||||
nnoremap yf :!echo %c:p | xclip %i<cr>
|
|
||||||
elseif executable('xsel')
|
|
||||||
" Yank current directory path into primary and selection clipboards
|
|
||||||
nnoremap yd :!echo -n %d | xsel --input --primary %i &&
|
|
||||||
\ echo -n %d | xsel --clipboard --input %i<cr>
|
|
||||||
" Yank current file path into into primary and selection clipboards
|
|
||||||
nnoremap yf :!echo -n %c:p | xsel --input --primary %i &&
|
|
||||||
\ echo -n %c:p | xsel --clipboard --input %i<cr>
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Mappings for faster renaming
|
|
||||||
nnoremap I cw<c-a>
|
|
||||||
nnoremap cc cw<c-u>
|
|
||||||
nnoremap A cw
|
|
||||||
|
|
||||||
" Open console in current directory
|
|
||||||
nnoremap ,t :!xterm &<cr>
|
|
||||||
|
|
||||||
" Open editor to edit vifmrc and apply settings after returning to vifm
|
|
||||||
nnoremap ,c :write | edit $MYVIFMRC | restart<cr>
|
|
||||||
" Open gvim to edit vifmrc
|
|
||||||
nnoremap ,C :!gvim --remote-tab-silent $MYVIFMRC &<cr>
|
|
||||||
|
|
||||||
" Toggle wrap setting on ,w key
|
|
||||||
nnoremap ,w :set wrap!<cr>
|
|
||||||
|
|
||||||
" Example of standard two-panel file managers mappings
|
|
||||||
nnoremap <f3> :!less %f<cr>
|
|
||||||
nnoremap <f4> :edit<cr>
|
|
||||||
nnoremap <f5> :copy<cr>
|
|
||||||
nnoremap <f6> :move<cr>
|
|
||||||
nnoremap <f7> :mkdir<space>
|
|
||||||
nnoremap <f8> :delete<cr>
|
|
||||||
|
|
||||||
" Arrow remapping
|
|
||||||
map i <Up>
|
|
||||||
map j <Left>
|
|
||||||
map k <Down>
|
|
||||||
noremap h i
|
|
||||||
|
|
||||||
vnoremap K L
|
|
||||||
vnoremap I H
|
|
||||||
vnoremap H I
|
|
||||||
|
|
||||||
nnoremap K L
|
|
||||||
nnoremap I H
|
|
||||||
nnoremap H I
|
|
||||||
|
|
||||||
" Escape overwrite
|
|
||||||
cmap jj <Esc>
|
|
||||||
|
|
||||||
" fzf
|
|
||||||
command! FZFfind :set noquickview | :execute 'goto "'.system('fd --hidden --exclude .git --exclude node_modules | fzf --preview "ls -lhA --group-directories-first --color=always {}" --preview-window wrap 2>/dev/tty ').'"%IU' | redraw
|
|
||||||
nnoremap <c-p> :FZFfind<cr>
|
|
|
@ -51,8 +51,6 @@ in {
|
||||||
xdg.configFile."user-dirs.locale".source = ./.config/user-dirs.locale;
|
xdg.configFile."user-dirs.locale".source = ./.config/user-dirs.locale;
|
||||||
xdg.configFile."xsettingsd/xsettingsd.conf".source = ./.config/xsettingsd/xsettingsd.conf;
|
xdg.configFile."xsettingsd/xsettingsd.conf".source = ./.config/xsettingsd/xsettingsd.conf;
|
||||||
xdg.configFile."mako/config".source = ./.config/mako/config;
|
xdg.configFile."mako/config".source = ./.config/mako/config;
|
||||||
xdg.configFile."vifm/vifmrc".source = ./.config/vifm/vifmrc;
|
|
||||||
xdg.configFile."vifm/colors/base16.vifm".source = ./.config/vifm/colors/base16.vifm;
|
|
||||||
xdg.configFile."libinput-gestures.conf".source = ./.config/libinput-gestures.conf;
|
xdg.configFile."libinput-gestures.conf".source = ./.config/libinput-gestures.conf;
|
||||||
xdg.configFile."waybar/config".source = ./.config/waybar/config;
|
xdg.configFile."waybar/config".source = ./.config/waybar/config;
|
||||||
xdg.configFile."waybar/style.css".source = ./.config/waybar/style.css;
|
xdg.configFile."waybar/style.css".source = ./.config/waybar/style.css;
|
||||||
|
|
|
@ -86,6 +86,23 @@
|
||||||
|
|
||||||
# FZF shell history widget default colors
|
# FZF shell history widget default colors
|
||||||
FZF_DEFAULT_OPTS = lib.mkForce "--color=bg+:#2d2a2e,bg:#1a181a,spinner:#ef9062,hl:#7accd7 --color=fg:#d3d1d4,header:#7accd7,info:#e5c463,pointer:#ef9062 --color=marker:#ef9062,fg+:#d3d1d4,prompt:#e5c463,hl+:#7accd7";
|
FZF_DEFAULT_OPTS = lib.mkForce "--color=bg+:#2d2a2e,bg:#1a181a,spinner:#ef9062,hl:#7accd7 --color=fg:#d3d1d4,header:#7accd7,info:#e5c463,pointer:#ef9062 --color=marker:#ef9062,fg+:#d3d1d4,prompt:#e5c463,hl+:#7accd7";
|
||||||
|
|
||||||
|
# nnn theme colors
|
||||||
|
NNN_FCOLORS = let
|
||||||
|
BLK = "04";
|
||||||
|
CHR = "04";
|
||||||
|
DIR = "04";
|
||||||
|
EXE = "02";
|
||||||
|
REG = "00";
|
||||||
|
HARDLINK = "01";
|
||||||
|
SYMLINK = "01";
|
||||||
|
MISSING = "01";
|
||||||
|
ORPHAN = "07";
|
||||||
|
FIFO = "05";
|
||||||
|
SOCK = "05";
|
||||||
|
OTHER = "02";
|
||||||
|
in
|
||||||
|
BLK + CHR + DIR + EXE + REG + HARDLINK + SYMLINK + MISSING + ORPHAN + FIFO + SOCK + OTHER;
|
||||||
};
|
};
|
||||||
|
|
||||||
envListNames = lib.attrsets.mapAttrsToList (name: value: name) variables;
|
envListNames = lib.attrsets.mapAttrsToList (name: value: name) variables;
|
||||||
|
|
Loading…
Reference in a new issue