nix: Start on vim plugins
This commit is contained in:
parent
e45d3df5cd
commit
a521dd4221
|
@ -1,37 +1,3 @@
|
|||
- name: Set vim variants to use
|
||||
set_fact:
|
||||
vim_variants:
|
||||
- vim
|
||||
- nvim
|
||||
# TODO vim-minimal for bsh
|
||||
# TODO Select those in a clever way
|
||||
|
||||
- name: Create vim configuration directory
|
||||
file:
|
||||
state: directory
|
||||
path: "{{ ansible_user_dir }}/.config/{{ item }}"
|
||||
mode: "u=rwx,g=rx,o=rx"
|
||||
loop: "{{ vim_variants }}"
|
||||
|
||||
- name: Install vim-plug
|
||||
get_url:
|
||||
url: https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
dest: "{{ ansible_user_dir }}/.config/vim/plug.vim"
|
||||
mode: "u=rw,g=r,o=r"
|
||||
|
||||
- name: Install loader
|
||||
template:
|
||||
src: loader.j2
|
||||
dest: "{{ ansible_user_dir }}/.config/vim/loader.vim"
|
||||
mode: "u=rw,g=r,o=r"
|
||||
|
||||
- name: Install theme
|
||||
template:
|
||||
src: theme.j2
|
||||
dest: "{{ ansible_user_dir }}/.config/vim/theme.vim"
|
||||
mode: "u=rw,g=r,o=r"
|
||||
tags:
|
||||
- color
|
||||
|
||||
- name: Configure vim plugin list
|
||||
template:
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
if has('nvim')
|
||||
let $MYVIMRC="~/.config/nvim/init.vim"
|
||||
else
|
||||
let $MYVIMRC="~/.config/vim/init.vim"
|
||||
endif
|
||||
source $MYVIMRC
|
|
@ -8,11 +8,9 @@
|
|||
{%- endmacro -%}
|
||||
|
||||
" Visuals
|
||||
{{ use_plugin('base16') }}
|
||||
{{ use_plugin('devicons') }}
|
||||
{% if variant == 'nvim' %}
|
||||
{{ use_plugin('specs') }}
|
||||
{{ use_plugin('scrollview') }}
|
||||
{% endif %}
|
||||
|
||||
" Theme
|
||||
|
@ -20,7 +18,6 @@ source ~/.config/vim/theme.vim
|
|||
|
||||
" Status/tab lines
|
||||
{% if variant == 'nvim' %}
|
||||
{{ use_plugin('barbar') }}
|
||||
{{ use_plugin('feline') }}
|
||||
{% else %}
|
||||
{{ use_plugin('airline') }}
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
{{ add_source('romgrk/barbar.nvim') -}}
|
||||
|
||||
" Move to previous/next
|
||||
nmap <silent> <C-H> :BufferPrevious<CR>
|
||||
nmap <silent> <C-L> :BufferNext<CR>
|
||||
" Re-order to previous/next
|
||||
nmap <silent> <Space><C-H> :BufferMovePrevious<CR>
|
||||
nmap <silent> <Space><C-L> :BufferMoveNext<CR>
|
||||
" Goto buffer in position...
|
||||
nmap <silent> <C-1> :BufferGoto 1<CR>
|
||||
nmap <silent> <C-2> :BufferGoto 2<CR>
|
||||
nmap <silent> <C-3> :BufferGoto 3<CR>
|
||||
nmap <silent> <C-4> :BufferGoto 4<CR>
|
||||
nmap <silent> <C-5> :BufferGoto 5<CR>
|
||||
nmap <silent> <C-6> :BufferGoto 6<CR>
|
||||
nmap <silent> <C-7> :BufferGoto 7<CR>
|
||||
nmap <silent> <C-8> :BufferGoto 8<CR>
|
||||
nmap <silent> <C-0> :BufferGoto 0<CR>
|
||||
nmap <silent> <C-0> :BufferLast<CR>
|
||||
|
||||
nmap <silent> gb :BufferPick<CR>
|
|
@ -1,7 +0,0 @@
|
|||
{% if variant == 'nvim' %}
|
||||
{# Beware, doesn't work without RGB colors #}
|
||||
{{ add_source('RRethy/nvim-base16') -}}
|
||||
{% else %}
|
||||
{{ add_source('chriskempson/base16-vim') -}}
|
||||
{% endif %}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
{# Customisable status line #}
|
||||
{{ add_source('dstein64/nvim-scrollview') -}}
|
|
@ -2,8 +2,6 @@
|
|||
{{ add_source('edluffy/specs.nvim') -}}
|
||||
lua << EOF
|
||||
require('specs').setup{
|
||||
show_jumps = true,
|
||||
min_jump = 5,
|
||||
popup = {
|
||||
delay_ms = 0, -- delay before popup displays
|
||||
inc_ms = 10, -- time increments used for fade/resize effects
|
||||
|
@ -13,9 +11,5 @@ require('specs').setup{
|
|||
fader = require('specs').pulse_fader,
|
||||
resizer = require('specs').shrink_resizer
|
||||
},
|
||||
ignore_filetypes = {},
|
||||
ignore_buftypes = {
|
||||
nofile = true,
|
||||
},
|
||||
}
|
||||
EOF
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
colorscheme base16-{{ base16_scheme }}
|
|
@ -11,12 +11,14 @@
|
|||
enableSyntaxHighlighting = true;
|
||||
# syntaxHighlighting.enable = true; # 23.11 syntax
|
||||
};
|
||||
neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
vimAlias = true;
|
||||
viAlias = true;
|
||||
};
|
||||
# neovim = {
|
||||
# enable = true;
|
||||
# defaultEditor = true;
|
||||
# vimAlias = true;
|
||||
# viAlias = true;
|
||||
# vimdiffAlias = true;
|
||||
# };
|
||||
# FIXME Still want this despite using nixvim
|
||||
gpg = {
|
||||
enable = true;
|
||||
homedir = "${config.xdg.dataHome}/gnupg";
|
||||
|
@ -87,6 +89,7 @@
|
|||
borgbackup
|
||||
|
||||
# cleanup
|
||||
ncdu
|
||||
jdupes
|
||||
duperemove
|
||||
optipng
|
||||
|
|
|
@ -6,5 +6,6 @@
|
|||
./dev.nix
|
||||
./extra.nix
|
||||
./style.nix
|
||||
./vim.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -9,12 +9,23 @@ in
|
|||
imports = [ (import stylix).homeManagerModules.stylix ];
|
||||
|
||||
stylix = {
|
||||
# FIXME Changeable at runtime
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-dark.yaml";
|
||||
image = builtins.fetchurl {
|
||||
url = "https://get.wallhere.com/photo/sunlight-abstract-minimalism-green-simple-circle-light-leaf-wave-material-line-wing-computer-wallpaper-font-close-up-macro-photography-124350.png";
|
||||
sha256 = "sha256:1zfq3f3v34i45mi72pkfqphm8kbhczsg260xjfl6dbydy91d7y93";
|
||||
};
|
||||
# FIXME This doesn't work
|
||||
|
||||
# fonts.monospace = {
|
||||
# package = pkgs.nerdfonts;
|
||||
# name = "DejaVu Sans Mono Nerd Font";
|
||||
# };
|
||||
# FIXME We want this, but now we get weird kerning in Alacritty...
|
||||
# Something I've seen before and probably already fixed,
|
||||
# maybe something in Alacritty config, which is not imported yet?
|
||||
|
||||
targets.vim.enable = false; # FIXME Not compatible with nixvim for now (there's a MR)
|
||||
};
|
||||
|
||||
# Fix https://nix-community.github.io/home-manager/index.html#_why_do_i_get_an_error_message_about_literal_ca_desrt_dconf_literal_or_literal_dconf_service_literal
|
||||
|
|
59
config/nix/hm/vim.nix
Normal file
59
config/nix/hm/vim.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
nixvim = import (builtins.fetchGit {
|
||||
url = "https://github.com/nix-community/nixvim";
|
||||
ref = "nixos-23.05";
|
||||
});
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
colorschemes.base16 = {
|
||||
# FIXME Dynamic... or use stylix
|
||||
enable = true;
|
||||
colorscheme = "solarized-light";
|
||||
|
||||
};
|
||||
plugins = {
|
||||
# Catches attention when cursor changed position
|
||||
# TODO Unmapped, do I still want to use it?
|
||||
specs = {
|
||||
enable = true;
|
||||
min_jump = 5;
|
||||
};
|
||||
|
||||
# Tabline
|
||||
barbar.enable = true;
|
||||
};
|
||||
extraPlugins = with pkgs.vimPlugins; [
|
||||
nvim-scrollview
|
||||
];
|
||||
# 23.11: Use keymaps, seems better
|
||||
maps = {
|
||||
# barbar
|
||||
normal."<C-H>" = { action = "<Cmd>BufferPrevious<CR>"; silent = true; };
|
||||
normal."<C-L>" = { action = "<Cmd>BufferNext<CR>"; silent = true; };
|
||||
# TODO https://www.reddit.com/r/neovim/comments/mbj8m5/how_to_setup_ctrlshiftkey_mappings_in_neovim_and/
|
||||
normal."<Space><C-H>" = { action = "<Cmd>BufferMovePrevious<CR>"; silent = true; };
|
||||
normal."<Space><C-L>" = { action = "<Cmd>BufferMoveNext<CR>"; silent = true; };
|
||||
# TODO gotos don't work
|
||||
normal."<C-1>" = { action = "<Cmd>BufferGoto 1<CR>"; silent = true; };
|
||||
normal."<C-2>" = { action = "<Cmd>BufferGoto 2<CR>"; silent = true; };
|
||||
normal."<C-3>" = { action = "<Cmd>BufferGoto 3<CR>"; silent = true; };
|
||||
normal."<C-4>" = { action = "<Cmd>BufferGoto 4<CR>"; silent = true; };
|
||||
normal."<C-5>" = { action = "<Cmd>BufferGoto 5<CR>"; silent = true; };
|
||||
normal."<C-6>" = { action = "<Cmd>BufferGoto 6<CR>"; silent = true; };
|
||||
normal."<C-7>" = { action = "<Cmd>BufferGoto 7<CR>"; silent = true; };
|
||||
normal."<C-8>" = { action = "<Cmd>BufferGoto 8<CR>"; silent = true; };
|
||||
normal."<C-9>" = { action = "<Cmd>BufferGoto 9<CR>"; silent = true; };
|
||||
normal."<C-0>" = { action = "<Cmd>BufferLast<CR>"; silent = true; };
|
||||
normal."gb" = { action = "<Cmd>BufferPick<CR>"; silent = true; };
|
||||
# TODO Other useful options?
|
||||
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,65 +0,0 @@
|
|||
|
||||
partial alphanumeric_keys
|
||||
xkb_symbols "qwerty-fr"
|
||||
{
|
||||
include "us(basic)"
|
||||
include "level3(ralt_switch)"
|
||||
include "keypad(oss)"
|
||||
|
||||
name[Group1]= "US keyboard with french symbols - AltGr combination";
|
||||
|
||||
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
|
||||
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
|
||||
key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
|
||||
key <AE03> { [ 3, numbersign, ecircumflex, Ecircumflex ] };
|
||||
key <AE04> { [ 4, dollar, EuroSign, dead_currency ] }; // FIXME: dead_currency has a different mapping than the one we want for qwerty-fr. Need to define a custom dead key instead. See Windows layout for dead key definition.
|
||||
key <AE05> { [ 5, percent, dead_macron, dead_abovedot ] };
|
||||
key <AE06> { [ 6, asciicircum, dead_circumflex, dead_caron ] };
|
||||
key <AE07> { [ 7, ampersand, ucircumflex, Ucircumflex ] };
|
||||
key <AE08> { [ 8, asterisk, icircumflex, Icircumflex ] };
|
||||
key <AE09> { [ 9, parenleft, ocircumflex, Ocircumflex ] };
|
||||
key <AE10> { [ 0, parenright, oslash, Oslash ] };
|
||||
key <AE11> { [ minus, underscore, endash, emdash ] };
|
||||
key <AE12> { [ equal, plus, notequal, approxeq ] };
|
||||
|
||||
key <AD01> { [ q, Q, acircumflex, Acircumflex ] };
|
||||
key <AD02> { [ w, W, eacute, Eacute ] };
|
||||
key <AD03> { [ e, E, egrave, Egrave ] };
|
||||
key <AD04> { [ r, R, registered, copyright ] };
|
||||
key <AD05> { [ t, T, thorn, THORN ] };
|
||||
key <AD06> { [ y, Y, dead_invertedbreve, dead_breve ] };
|
||||
key <AD07> { [ u, U, ugrave, Ugrave ] };
|
||||
key <AD08> { [ i, I, igrave, Igrave ] };
|
||||
key <AD09> { [ o, O, ograve, Ograve ] };
|
||||
key <AD10> { [ p, P, oe, OE ] };
|
||||
key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
|
||||
key <AD12> { [ bracketright, braceright, guillemotright, rightdoublequotemark ] };
|
||||
|
||||
key <AC01> { [ a, A, agrave, Agrave ] };
|
||||
key <AC02> { [ s, S, ae, AE ] };
|
||||
key <AC03> { [ d, D, ediaeresis, Ediaeresis ] };
|
||||
key <AC04> { [ f, F, VoidSymbol, VoidSymbol ] };
|
||||
key <AC05> { [ g, G, dead_greek, VoidSymbol ] }; // FIXME: dead_greek has a different mapping than the one we want for qwerty-fr. Need to define a custom dead key instead. See Windows layout for dead key definition.
|
||||
key <AC06> { [ h, H, ydiaeresis, Ydiaeresis ] };
|
||||
key <AC07> { [ j, J, udiaeresis, Udiaeresis ] };
|
||||
key <AC08> { [ k, K, idiaeresis, Idiaeresis ] };
|
||||
key <AC09> { [ l, L, odiaeresis, Odiaeresis ] };
|
||||
key <AC10> { [ semicolon, colon, dead_acute, dead_abovering ] };
|
||||
key <AC11> { [ apostrophe, quotedbl, dead_grave, dead_diaeresis ] };
|
||||
key <BKSL> { [ backslash, bar, VoidSymbol, doublelowquotemark ] }; // „
|
||||
|
||||
key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] };
|
||||
key <AB01> { [ z, Z, adiaeresis, Adiaeresis ] };
|
||||
key <AB02> { [ x, X, multiply, division ] };
|
||||
key <AB03> { [ c, C, ccedilla, Ccedilla ] };
|
||||
key <AB04> { [ v, V, VoidSymbol, VoidSymbol ] };
|
||||
key <AB05> { [ b, B, ssharp, U1E9E ] }; // ß, ẞ (capital)
|
||||
key <AB06> { [ n, N, ntilde, Ntilde ] };
|
||||
key <AB07> { [ m, M, VoidSymbol, VoidSymbol ] };
|
||||
key <AB08> { [ comma, less, dead_cedilla, dead_ogonek ] };
|
||||
key <AB09> { [ period, greater, periodcentered, ellipsis ] }; // ., >, ·, …
|
||||
key <AB10> { [ slash, question, rightsinglequotemark, questiondown ] }; // /, ?, ’, ¿
|
||||
key <SPCE> { [ space, space, nobreakspace, 0x100202F ] }; // espace insécable fine
|
||||
|
||||
};
|
||||
|
Loading…
Reference in a new issue