From fe44ec6752aa619bd52a36daa8eeb8de0be1b383 Mon Sep 17 00:00:00 2001 From: Kabbone Date: Tue, 16 May 2023 09:50:42 +0200 Subject: [PATCH] apps: nvim: Nerd Font, nvim kickstart partially --- hosts/home.nix | 2 +- modules/editors/nvim/default.nix | 129 +++++++++++++++++++++++++++---- modules/home.nix | 4 +- modules/programs/alacritty.nix | 5 +- modules/shell/tmux.nix | 4 +- 5 files changed, 123 insertions(+), 21 deletions(-) diff --git a/hosts/home.nix b/hosts/home.nix index 473b465..75039c0 100644 --- a/hosts/home.nix +++ b/hosts/home.nix @@ -181,7 +181,7 @@ package = pkgs.papirus-icon-theme; }; font = { - name = "JetBrains Mono Medium"; # or FiraCode Nerd Font Mono Medium + name = "FiraCode Nerd Font"; # or FiraCode Nerd Font Mono Medium }; # Cursor is declared under home.pointerCursor }; systemd.user.services.mpris-proxy = { diff --git a/modules/editors/nvim/default.nix b/modules/editors/nvim/default.nix index 6478dde..c1e3b43 100644 --- a/modules/editors/nvim/default.nix +++ b/modules/editors/nvim/default.nix @@ -11,12 +11,13 @@ viAlias = true; vimAlias = true; vimdiffAlias = true; + #withNodeJS = true; plugins = with pkgs.vimPlugins; [ # Syntax - vim-nix - vim-markdown + #vim-nix + #vim-markdown # Quality of life vim-lastplace # Opens document where you left it @@ -32,23 +33,121 @@ lightline-vim # Info bar at bottom indent-blankline-nvim # Indentation lines + + # Syntax + nvim-treesitter.withAllGrammars + # finder + telescope-nvim + # completion + nvim-cmp + # status line + lualine-nvim + # indent + indent-blankline-nvim + ]; + + extraPackages = with pkgs; [ + ripgrep + fd ]; extraConfig = '' - set number relativenumber - syntax enable " Syntax highlighting - colorscheme srcery " Color scheme text - let g:lightline = { - \ 'colorscheme': 'wombat', - \ } " Color scheme lightline - highlight Comment cterm=italic gui=italic " Comments become italic - hi Normal guibg=NONE ctermbg=NONE " Remove background, better for personal theme + set expandtab + set shiftwidth=4 + set tabstop=4 + ''; + + extraLuaConfig = '' + vim.g.mapleader = ' ' + vim.g.maplocalleader = ' ' + + -- Set highlight on search + vim.o.hlsearch = false - set number " Set numbers - nmap :NERDTreeToggle " F6 opens NERDTree - set expandtab - set shiftwidth=4 - set tabstop=4 + -- Make line numbers default + vim.wo.number = true + + -- Enable mouse mode + vim.o.mouse = 'a' + + -- Sync clipboard between OS and Neovim. + -- Remove this option if you want your OS clipboard to remain independent. + -- See `:help 'clipboard'` + vim.o.clipboard = 'unnamedplus' + + -- Enable break indent + vim.o.breakindent = true + + -- Save undo history + vim.o.undofile = true + + -- Case insensitive searching UNLESS /C or capital in search + vim.o.ignorecase = true + vim.o.smartcase = true + + -- Keep signcolumn on by default + vim.wo.signcolumn = 'yes' + + -- Decrease update time + vim.o.updatetime = 250 + vim.o.timeout = true + vim.o.timeoutlen = 300 + + -- Set completeopt to have a better completion experience + vim.o.completeopt = 'menuone,noselect' + + -- NOTE: You should make sure your terminal supports this + vim.o.termguicolors = true + + -- [[ Highlight on yank ]] + -- See `:help vim.highlight.on_yank()` + local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) + vim.api.nvim_create_autocmd('TextYankPost', { + callback = function() + vim.highlight.on_yank() + end, + group = highlight_group, + pattern = '*', + }) + + -- [[ Configure Telescope ]] + -- See `:help telescope` and `:help telescope.setup()` + require('telescope').setup { + defaults = { + mappings = { + i = { + [''] = false, + [''] = false, + }, + }, + }, + } + + -- Enable telescope fzf native, if installed + pcall(require('telescope').load_extension, 'fzf') + + -- See `:help telescope.builtin` + vim.keymap.set('n', '?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' }) + vim.keymap.set('n', '', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' }) + vim.keymap.set('n', '/', function() + -- You can pass additional configuration to telescope to change theme, layout, etc. + require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { + winblend = 10, + previewer = false, + }) + end, { desc = '[/] Fuzzily search in current buffer' }) + + vim.keymap.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) + vim.keymap.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) + vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) + vim.keymap.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) + vim.keymap.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) + vim.keymap.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) + require("indent_blankline").setup { + -- for example, context is off by default, use this to turn it on + show_current_context = true, + show_current_context_start = true, + } ''; }; }; diff --git a/modules/home.nix b/modules/home.nix index f4c389d..55c8844 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -5,7 +5,7 @@ cmds = { shell = mkOption { type = types.str; default = "zsh"; }; fetch = mkOption { type = types.str; default = "hyfetch"; }; - editor = mkOption { type = types.str; default = "hx"; }; + editor = mkOption { type = types.str; default = "nvim"; }; wm = mkOption { type = types.str; default = "sway"; }; @@ -24,7 +24,7 @@ theme = { theme = mkOption { type = types.str; default = "catppuccin-mocha"; }; icon-theme = mkOption { type = types.str; default = "Papirus-Dark"; }; - font = mkOption { type = types.str; default = "FiraCode Nerd Font Mono 11"; }; + font = mkOption { type = types.str; default = "FiraCode Nerd Font 11"; }; wallpaper = mkOption { type = types.str; default = ""; }; }; }; diff --git a/modules/programs/alacritty.nix b/modules/programs/alacritty.nix index c0c3e6b..eaeaf9d 100644 --- a/modules/programs/alacritty.nix +++ b/modules/programs/alacritty.nix @@ -16,8 +16,9 @@ package = pkgs.alacritty; settings = { font = rec { # Font - Laptop has size manually changed at home.nix - normal.family = "Source Code Pro"; - bold = { style = "Bold"; }; + #normal.family = "Source Code Pro"; + normal.family = "FiraCode Nerd Font"; + #bold = { style = "Bold"; }; # size = 8; }; offset = { # Positioning diff --git a/modules/shell/tmux.nix b/modules/shell/tmux.nix index c9bdad6..62045e9 100644 --- a/modules/shell/tmux.nix +++ b/modules/shell/tmux.nix @@ -8,7 +8,8 @@ programs = { tmux = { enable = true; - terminal = "xterm-256color"; + terminal = "screen-256color"; + escapeTime = 300; newSession = false; keyMode = "vi"; historyLimit = 10000; @@ -29,6 +30,7 @@ ]; extraConfig = '' set -g mouse on + set-option -sa terminal-features ',alacritty:RGB' # More friendly split pane bind-key s split-window -h -c "#{pane_current_path}"