diff --git a/profiles/gui/home/firefox/default.nix b/profiles/gui/home/firefox/default.nix index fe8e8476..0ab3b00c 100644 --- a/profiles/gui/home/firefox/default.nix +++ b/profiles/gui/home/firefox/default.nix @@ -19,7 +19,7 @@ in { home.sessionVariables = { MOZ_ENABLE_WAYLAND = 1; - XDG_CURRENT_DESKTOP = "sway"; + XDG_CURRENT_DESKTOP = "sway"; }; programs.firefox = { diff --git a/profiles/gui/nixos/firefox.nix b/profiles/gui/nixos/firefox.nix index 0ec1c082..28378da6 100644 --- a/profiles/gui/nixos/firefox.nix +++ b/profiles/gui/nixos/firefox.nix @@ -1,9 +1,7 @@ { config, pkgs, ... }: { - environment.variables = { - BROWSER = "firefox"; - }; + environment.variables = { BROWSER = "firefox"; }; xdg = { portal = { diff --git a/profiles/kat/home/vim/default.nix b/profiles/kat/home/vim/default.nix index 3d6884fc..9a76ffcc 100644 --- a/profiles/kat/home/vim/default.nix +++ b/profiles/kat/home/vim/default.nix @@ -37,19 +37,21 @@ }; xdg.configFile = { "vim/coc/coc-settings.json".text = builtins.toJSON { - "rust.rustfmt_path" = "${pkgs.rustfmt}/bin/rustfmt"; - "rust-analyzer.serverPath" = "rust-analyzer"; - "rust-analyzer.updates.prompt" = false; - "rust-analyzer.notifications.cargoTomlNotFound" = false; - "rust-analyzer.notifications.workspaceLoaded" = false; - "rust-analyzer.procMacro.enable" = true; - "rust-analyzer.cargo.loadOutDirsFromCheck" = true; - "rust-analyzer.cargo-watch.enable" = true; # TODO: want some way to toggle this on-demand? - "rust-analyzer.completion.addCallParenthesis" = false; # consider using this? - "rust-analyzer.hoverActions.linksInHover" = true; - "rust-analyzer.diagnostics.disabled" = [ - "inactive-code" # it has strange cfg support..? - ]; + "rust.rustfmt_path" = "${pkgs.rustfmt}/bin/rustfmt"; + "rust-analyzer.serverPath" = "rust-analyzer"; + "rust-analyzer.updates.prompt" = false; + "rust-analyzer.notifications.cargoTomlNotFound" = false; + "rust-analyzer.notifications.workspaceLoaded" = false; + "rust-analyzer.procMacro.enable" = true; + "rust-analyzer.cargo.loadOutDirsFromCheck" = true; + "rust-analyzer.cargo-watch.enable" = + true; # TODO: want some way to toggle this on-demand? + "rust-analyzer.completion.addCallParenthesis" = + false; # consider using this? + "rust-analyzer.hoverActions.linksInHover" = true; + "rust-analyzer.diagnostics.disabled" = [ + "inactive-code" # it has strange cfg support..? + ]; }; }; } diff --git a/profiles/kat/home/vim/vimrc.nix b/profiles/kat/home/vim/vimrc.nix index 60bf4817..31937bdf 100644 --- a/profiles/kat/home/vim/vimrc.nix +++ b/profiles/kat/home/vim/vimrc.nix @@ -1,200 +1,201 @@ { config, pkgs }: '' - " Enable mouse - set mouse=a + " Enable mouse + set mouse=a - set viminfo='100000,<100000,s1000,h,n$XDG_DATA_HOME/vim/viminfo + set viminfo='100000,<100000,s1000,h,n$XDG_DATA_HOME/vim/viminfo - " colors - let base16colorspace=256 - colorscheme base16-default-dark + " colors + let base16colorspace=256 + colorscheme base16-default-dark - " tabline - let g:airline#extensions#tabline#enabled = 1 + " tabline + let g:airline#extensions#tabline#enabled = 1 - " notmuch! - let g:notmuch_config_file='${config.xdg.configHome}/notmuch/notmuchrc' - let g:notmuch_folders_count_threads=0 - let g:notmuch_date_format='%y-%m-%d %H:%M' - let g:notmuch_datetime_format='%y-%m-%d %H:%M' - let g:notmuch_show_date_format='%Y/%m/%d %H:%M' - let g:notmuch_search_date_format='%Y/%m/%d %H:%M' - let g:notmuch_html_converter='${pkgs.elinks}/bin/elinks --dump' + " notmuch! + let g:notmuch_config_file='${config.xdg.configHome}/notmuch/notmuchrc' + let g:notmuch_folders_count_threads=0 + let g:notmuch_date_format='%y-%m-%d %H:%M' + let g:notmuch_datetime_format='%y-%m-%d %H:%M' + let g:notmuch_show_date_format='%Y/%m/%d %H:%M' + let g:notmuch_search_date_format='%Y/%m/%d %H:%M' + let g:notmuch_html_converter='${pkgs.elinks}/bin/elinks --dump' - autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | - \ quit | endif - autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 | - \ let buf=bufnr() | buffer# | execute "normal! \w" | execute 'buffer'.buf | endif - nnoremap n :NERDTreeFocus - nnoremap :NERDTree - nnoremap :NERDTreeToggle - nnoremap :NERDTreeFind + autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | + \ quit | endif + autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 | + \ let buf=bufnr() | buffer# | execute "normal! \w" | execute 'buffer'.buf | endif + nnoremap n :NERDTreeFocus + nnoremap :NERDTree + nnoremap :NERDTreeToggle + nnoremap :NERDTreeFind - let g:coc_node_path='${pkgs.nodejs}/bin/node' - let g:coc_config_home=$XDG_CONFIG_HOME . '/vim/coc' + let g:coc_node_path='${pkgs.nodejs}/bin/node' + let g:coc_config_home=$XDG_CONFIG_HOME . '/vim/coc' - set undodir=$XDG_DATA_HOME/vim/undo - set directory=$XDG_DATA_HOME/vim/swap// - set backupdir=$XDG_DATA_HOME/vim/backup + set undodir=$XDG_DATA_HOME/vim/undo + set directory=$XDG_DATA_HOME/vim/swap// + set backupdir=$XDG_DATA_HOME/vim/backup - set number - set hidden - set nobackup - set nowritebackup - set cmdheight=2 - set updatetime=300 - set cursorline - set colorcolumn=100 - set linebreak showbreak=↪ " ↳ - set hlsearch - set relativenumber - set completeopt=longest,menuone - - function! ResCur() - if line("'\"") <= line("$") - normal! g`" - return 1 + set ttimeoutlen=100 + set number + set hidden + set nobackup + set nowritebackup + set cmdheight=2 + set updatetime=300 + set cursorline + set colorcolumn=100 + set linebreak showbreak=↪ " ↳ + set hlsearch + set relativenumber + set completeopt=longest,menuone + + function! ResCur() + if line("'\"") <= line("$") + normal! g`" + return 1 + endif + endfunction + + augroup resCur + autocmd! + autocmd BufWinEnter * call ResCur() + augroup END + + inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() + inoremap pumvisible() ? "\" : "\" + + function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' + endfunction + + " Use to trigger completion. + if has('nvim') + inoremap coc#refresh() + else + inoremap coc#refresh() + endif + + " Make auto-select the first completion item and notify coc.nvim to + " format on enter, could be remapped by other vim plugin + inoremap pumvisible() ? coc#_select_confirm() + \: "\u\\=coc#on_enter()\" + + " Use `[g` and `]g` to navigate diagnostics + " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. + nmap [g (coc-diagnostic-prev) + nmap ]g (coc-diagnostic-next) + + " GoTo code navigation. + nmap gd (coc-definition) + nmap gy (coc-type-definition) + nmap gi (coc-implementation) + nmap gr (coc-references) + + " Use K to show documentation in preview window. + nnoremap K :call show_documentation() + + function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('') + elseif (coc#rpc#ready()) + call CocActionAsync('doHover') + else + execute '!' . &keywordprg . " " . expand('') endif endfunction - augroup resCur + " Highlight the symbol and its references when holding the cursor. + autocmd CursorHold * silent call CocActionAsync('highlight') + + " Symbol renaming. + nmap rn (coc-rename) + + " Formatting selected code. + xmap f (coc-format-selected) + nmap f (coc-format-selected) + + augroup mygroup autocmd! - autocmd BufWinEnter * call ResCur() - augroup END + " Setup formatexpr specified filetype(s). + autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') + " Update signature help on jump placeholder. + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') + augroup end -inoremap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : - \ coc#refresh() -inoremap pumvisible() ? "\" : "\" + " Applying codeAction to the selected region. + " Example: `aap` for current paragraph + xmap a (coc-codeaction-selected) + nmap a (coc-codeaction-selected) -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction + " Remap keys for applying codeAction to the current buffer. + nmap ac (coc-codeaction) + " Apply AutoFix to problem on the current line. + nmap qf (coc-fix-current) -" Use to trigger completion. -if has('nvim') - inoremap coc#refresh() -else - inoremap coc#refresh() -endif + " Map function and class text objects + " NOTE: Requires 'textDocument.documentSymbol' support from the language server. + xmap if (coc-funcobj-i) + omap if (coc-funcobj-i) + xmap af (coc-funcobj-a) + omap af (coc-funcobj-a) + xmap ic (coc-classobj-i) + omap ic (coc-classobj-i) + xmap ac (coc-classobj-a) + omap ac (coc-classobj-a) -" Make auto-select the first completion item and notify coc.nvim to -" format on enter, could be remapped by other vim plugin -inoremap pumvisible() ? coc#_select_confirm() - \: "\u\\=coc#on_enter()\" - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -nmap [g (coc-diagnostic-prev) -nmap ]g (coc-diagnostic-next) - -" GoTo code navigation. -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) - -" Use K to show documentation in preview window. -nnoremap K :call show_documentation() - -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('') + " Remap and for scroll float windows/popups. + if has('nvim-0.4.0') || has('patch-8.2.0750') + nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" endif -endfunction -" Highlight the symbol and its references when holding the cursor. -autocmd CursorHold * silent call CocActionAsync('highlight') + " Use CTRL-S for selections ranges. + " Requires 'textDocument/selectionRange' support of language server. + nmap (coc-range-select) + xmap (coc-range-select) -" Symbol renaming. -nmap rn (coc-rename) + " Add `:Format` command to format current buffer. + command! -nargs=0 Format :call CocAction('format') -" Formatting selected code. -xmap f (coc-format-selected) -nmap f (coc-format-selected) + " Add `:Fold` command to fold current buffer. + command! -nargs=? Fold :call CocAction('fold', ) -augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s). - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder. - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') -augroup end + " Add `:OR` command for organize imports of the current buffer. + command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') -" Applying codeAction to the selected region. -" Example: `aap` for current paragraph -xmap a (coc-codeaction-selected) -nmap a (coc-codeaction-selected) + " Add (Neo)Vim's native statusline support. + " NOTE: Please see `:h coc-status` for integrations with external plugins that + " provide custom statusline: lightline.vim, vim-airline. + set statusline^=%{coc#status()}%{get(b:,'coc_current_function',''')} -" Remap keys for applying codeAction to the current buffer. -nmap ac (coc-codeaction) -" Apply AutoFix to problem on the current line. -nmap qf (coc-fix-current) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server. -xmap if (coc-funcobj-i) -omap if (coc-funcobj-i) -xmap af (coc-funcobj-a) -omap af (coc-funcobj-a) -xmap ic (coc-classobj-i) -omap ic (coc-classobj-i) -xmap ac (coc-classobj-a) -omap ac (coc-classobj-a) - -" Remap and for scroll float windows/popups. -if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" -endif - -" Use CTRL-S for selections ranges. -" Requires 'textDocument/selectionRange' support of language server. -nmap (coc-range-select) -xmap (coc-range-select) - -" Add `:Format` command to format current buffer. -command! -nargs=0 Format :call CocAction('format') - -" Add `:Fold` command to fold current buffer. -command! -nargs=? Fold :call CocAction('fold', ) - -" Add `:OR` command for organize imports of the current buffer. -command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') - -" Add (Neo)Vim's native statusline support. -" NOTE: Please see `:h coc-status` for integrations with external plugins that -" provide custom statusline: lightline.vim, vim-airline. -set statusline^=%{coc#status()}%{get(b:,'coc_current_function',''')} - -" Mappings for CoCList -" Show all diagnostics. -nnoremap a :CocList diagnostics -" Manage extensions. -nnoremap e :CocList extensions -" Show commands. -nnoremap c :CocList commands -" Find symbol of current document. -nnoremap o :CocList outline -" Search workspace symbols. -nnoremap s :CocList -I symbols -" Do default action for next item. -nnoremap j :CocNext -" Do default action for previous item. -nnoremap k :CocPrev -" Resume latest coc list. -nnoremap p :CocListResume + " Mappings for CoCList + " Show all diagnostics. + nnoremap a :CocList diagnostics + " Manage extensions. + nnoremap e :CocList extensions + " Show commands. + nnoremap c :CocList commands + " Find symbol of current document. + nnoremap o :CocList outline + " Search workspace symbols. + nnoremap s :CocList -I symbols + " Do default action for next item. + nnoremap j :CocNext + " Do default action for previous item. + nnoremap k :CocPrev + " Resume latest coc list. + nnoremap p :CocListResume '' + (if config.deploy.profile.sway then '' noremap "+y y:call system("wl-copy", @")