summary refs log tree commit diff
path: root/.vim
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2022-08-17 15:24:53 +0200
committerRobert Günzler <r@gnzler.io>2022-08-17 15:24:53 +0200
commitc065216cab123898d46a4dae2ddeac6ca9abc5c0 (patch)
tree4930c8ce5da7bd790868a376d9249c6982013da6 /.vim
parentb150114625fc48d08bf54d1c7cced09c6bbeec37 (diff)
vim: drop wk_register global usage
Diffstat (limited to '.vim')
-rw-r--r--.vim/after/ftplugin/gitrebase.lua8
-rw-r--r--.vim/after/ftplugin/markdown.lua10
-rw-r--r--.vim/init.lua26
-rw-r--r--.vim/lua/debugger.lua39
-rw-r--r--.vim/lua/globals.lua7
-rw-r--r--.vim/lua/lsp.lua48
-rw-r--r--.vim/lua/plugins.lua171
-rw-r--r--.vim/lua/statusline.lua3
8 files changed, 110 insertions, 202 deletions
diff --git a/.vim/after/ftplugin/gitrebase.lua b/.vim/after/ftplugin/gitrebase.lua
index 0e7ba20..c8a6221 100644
--- a/.vim/after/ftplugin/gitrebase.lua
+++ b/.vim/after/ftplugin/gitrebase.lua
@@ -33,7 +33,7 @@ local commit_preview = function()
     pcall(vim.api.nvim_buf_delete, bufnr, { force = true })
   end
   -- close with q
-  vim.keymap.set('n', 'q', close, { buffer = bufnr })
+  vim.keymap.set('n', 'q', close, {buffer = bufnr})
   -- close on CursorMoved
   local old_cursor = vim.api.nvim_win_get_cursor(0)
   local group = vim.api.nvim_create_augroup('gitcommit_win_' .. winid, {})
@@ -51,7 +51,5 @@ local commit_preview = function()
   })
 end
 
-vim.keymap.set('n', 'cp', commit_preview, { buffer = 0 })
-
-vim.keymap.set('n', '<leader>c', commit_preview, { buffer = 0 })
-wk_register { ['<leader>c'] = {'preview commit'} }
+vim.keymap.set('n', 'cp', commit_preview, { buffer = 0, desc = 'commit preview' })
+vim.keymap.set('n', '<leader>c', commit_preview, { buffer = 0, desc = 'commit preview' })
diff --git a/.vim/after/ftplugin/markdown.lua b/.vim/after/ftplugin/markdown.lua
index 22c19cb..1b299e2 100644
--- a/.vim/after/ftplugin/markdown.lua
+++ b/.vim/after/ftplugin/markdown.lua
@@ -7,13 +7,10 @@ vim.opt.foldlevel = 1
 -- vim.fn.matchadd('Conceal', '\\[\\]', 0, -1, { conceal = '🞕' })
 
 vim.keymap.set('n', '<Plug>Markdown_OpenUrlUnderCursor',
-  function() require('misc').open_under_cursor('url-launcher') end
+  function() require('misc').open_under_cursor('url-launcher') end,
 )
 
-vim.keymap.set('n', '<localleader>l',
-  function() require('misc').link_preview() end
-)
-wk_register { ['<localleader>l'] = {'link preview'} }
+vim.keymap.set('n', '<localleader>l', require('misc').link_preview, {desc='link preview'})
 
 -- vim.keymap.set('n', '<leader>zn', function() require('zk').new() end)
 -- vim.keymap.set('n', '<leader>zi', function() require('zk').index() end)
@@ -21,5 +18,4 @@ wk_register { ['<localleader>l'] = {'link preview'} }
 
 vim.keymap.set('n', 'gt', function()
   require('telescope._extensions.todo-comments').exports.todo {cwd=vim.env.ZK_NOTEBOOK_DIR}
-end)
-wk_register { ['gt'] = {[[zk todo]]} }
+end, {desc='show zk todos'})
diff --git a/.vim/init.lua b/.vim/init.lua
index 271c007..56632a8 100644
--- a/.vim/init.lua
+++ b/.vim/init.lua
@@ -131,9 +131,9 @@ vim.fn.sign_define({
   {name='DiagnosticSignInfo',  text='ℹ',  texthl='DiagnosticSignInfo'},
   {name='DiagnosticSignHint',  text='🞶',  texthl='DiagnosticSignHint'}
 })
-vim.keymap.set('n',  ']d', vim.diagnostic.goto_next)
-vim.keymap.set('n',  '[d', vim.diagnostic.goto_prev)
-vim.keymap.set('n',  '<localleader>d', vim.diagnostic.open_float)
+vim.keymap.set('n',  ']d', vim.diagnostic.goto_next, {desc='next diagnostic'})
+vim.keymap.set('n',  '[d', vim.diagnostic.goto_prev, {desc='prev diagnostic'})
+vim.keymap.set('n',  '<localleader>d', vim.diagnostic.open_float, {desc='show line diagnositics'})
 vim.keymap.set('n', '<leader>D', function()
     if not _G.diagnostic_hidden then
       vim.diagnostic.hide()
@@ -141,11 +141,7 @@ vim.keymap.set('n', '<leader>D', function()
       vim.diagnostic.show()
     end
     _G.diagnostic_hidden = not _G.diagnostic_hidden
-  end)
-wk_register {
-  ['<localleader>d'] = {'show diagnositics'},
-  ['<leader>D'] = {'toggle diagnositics'},
-}
+  end, {desc='toggle diagnositics'})
 -- }}}
 
 -- KEY BINDS -- {{{
@@ -325,9 +321,17 @@ end
 
 -- USER COMMANDS -- {{{
 cmd [[ command! BalenaDiagnosticsFold call balena_diagnostics_fold#apply() ]]
-cmd [[ command! -range SortLine <line1>,<line2>lua require('misc').sort_line() ]]
-cmd [[ command! -nargs=* Make lua require('job').make({<f-args>}) ]]
-cmd [[ command! -nargs=* Sh lua require('job').sh(table.concat({<f-args>}, ' ')) ]]
+
+vim.api.nvim_create_user_command('SortLine', require('misc').sort_lines,
+  { range = '%', preview = require('misc').sort_lines, desc = 'sort line' })
+vim.api.nvim_create_user_command('Make', function(opts) require('job').make(opts.fargs) end,
+  { nargs = '*', desc = 'run make target' })
+vim.api.nvim_create_user_command('Sh', function(opts) require('job').sh(table.concat(opts.fargs, ' ')) end,
+  { nargs = '*', desc = 'run shell command' })
+vim.api.nvim_create_user_command('Grep', function(o) misc.live_grep(table.concat(o.fargs)) end,
+  { nargs = '*', desc = 'live grep (rg)' })
+vim.api.nvim_create_user_command('Find', function(o) misc.find_files(table.concat(o.fargs)) end,
+  { nargs = '*', desc = 'find files (fd)' })
 -- }}}
 
 _G.statusline_enable_notifysend = false
diff --git a/.vim/lua/debugger.lua b/.vim/lua/debugger.lua
index 7b1ad2c..1f03434 100644
--- a/.vim/lua/debugger.lua
+++ b/.vim/lua/debugger.lua
@@ -16,36 +16,19 @@ vim.fn.sign_define({{name='DapBreakpoint', text='🞱', texthl='DapBreakpoint',
 vim.fn.sign_define({{name='DapStopped', text='→', texthl='DapStopped', linehl='DapStoppedLn'}})
 
 -- keymaps
-vim.keymap.set('n', '<leader>dd', dap.toggle_breakpoint) -- convenience
-vim.keymap.set('n', '<leader>db', dap.toggle_breakpoint)
-vim.keymap.set('n', '<leader>dc', dap.continue)
-vim.keymap.set('n', '<leader>do', dap.step_over)
-vim.keymap.set('n', '<leader>di', dap.step_into)
-vim.keymap.set('n', '<leader>dO', dap.step_out)
-vim.keymap.set('n', '<leader>dR', dap.repl.toggle)
-vim.keymap.set('n', '<leader>dL', dap.run_last)
-vim.keymap.set('n', '<leader>dt', dap.terminate)
+vim.keymap.set('n', '<leader>dd', dap.toggle_breakpoint, {desc='toggle breakpoint'}) -- convenience
+vim.keymap.set('n', '<leader>db', dap.toggle_breakpoint, {desc='toggle breakpoint'})
+vim.keymap.set('n', '<leader>dc', dap.continue, {desc='continue'})
+vim.keymap.set('n', '<leader>do', dap.step_over, {desc='step over'})
+vim.keymap.set('n', '<leader>di', dap.step_into, {desc='step into'})
+vim.keymap.set('n', '<leader>dO', dap.step_out, {desc='step out'})
+vim.keymap.set('n', '<leader>dR', dap.repl.toggle, {desc='toggle REPL'})
+vim.keymap.set('n', '<leader>dL', dap.run_last, {desc='run last'})
+vim.keymap.set('n', '<leader>dt', dap.terminate, {desc='terminate'})
 
 local widgets = require('dap.ui.widgets')
-vim.keymap.set('n', '<leader>dh', widgets.hover)
-vim.keymap.set('n', '<leader>dB', require('telescope').extensions.dap.list_breakpoints)
-
-wk_register {
-  ['<leader>d'] = {
-    name = '+Dap',
-    d = {'toggle_breakpoint'},
-    b = {'toggle_breakpoint'},
-    c = {'continue'},
-    o = {'step_over'},
-    i = {'step_into'},
-    O = {'step_out'},
-    R = {'repl'},
-    L = {'run_last'},
-    t = {'terminate'},
-    h = {'hover'},
-    B = {'list_breakpoints'}
-  }
-}
+vim.keymap.set('n', '<leader>dh', widgets.hover, {desc='hover'})
+vim.keymap.set('n', '<leader>dB', require('telescope').extensions.dap.list_breakpoints, {desc='list breakpoints'})
 
 -- Common
 local bin_from_var_or_pick = function()
diff --git a/.vim/lua/globals.lua b/.vim/lua/globals.lua
index 41a32af..6aef29b 100644
--- a/.vim/lua/globals.lua
+++ b/.vim/lua/globals.lua
@@ -13,11 +13,4 @@ _G.augroup = function(tbl)
   end
 end
 
-_G.wk_register = function(mappings, opts)
-  local wk = package.loaded['which-key']
-  -- local _, wk = pcall(require, 'which-key')
-  if wk then return wk.register(mappings, opts) end
-  vim.notify_once('which-key missing')
-end
-
 _G.floating_win_border = 'solid'
diff --git a/.vim/lua/lsp.lua b/.vim/lua/lsp.lua
index e2d8353..86b85a3 100644
--- a/.vim/lua/lsp.lua
+++ b/.vim/lua/lsp.lua
@@ -33,33 +33,22 @@ local my_attach = function(client, bufnr)
   end
 
   if client.supports_method('textDocument/definition') then
-    vim.keymap.set('n', '<C-]>'     , vim.lsp.buf.definition, {buffer = bufnr})
-    vim.keymap.set('n', 'gd'        , vim.lsp.buf.definition, {buffer = bufnr})
-    vim.keymap.set('n', 'gR'        , vim.lsp.buf.references, {buffer = bufnr})
-    wk_register({
-      ['gd'] = {'goto definition'},
-      ['gR'] = {'goto references'},
-    }, {buffer = bufnr})
+    vim.keymap.set('n', '<C-]>'     , vim.lsp.buf.definition, {buffer = bufnr, desc = 'goto definition'})
+    vim.keymap.set('n', 'gd'        , vim.lsp.buf.definition, {buffer = bufnr, desc = 'goto definition'})
+    vim.keymap.set('n', 'gR'        , vim.lsp.buf.references, {buffer = bufnr, desc = 'goto references'})
   end
   if client.supports_method('textDocument/hover') then
-    vim.keymap.set('n', 'K'         , vim.lsp.buf.hover, {buffer = bufnr})
+    vim.keymap.set('n', 'K'         , vim.lsp.buf.hover, {buffer = bufnr, desc = 'hover'})
   end
   if client.supports_method('textDocument/rename') then
-    vim.keymap.set('n', 'grr'       , vim.lsp.buf.rename, {buffer = bufnr})
-    wk_register({
-      ['grr'] = {'rename'},
-    }, {buffer = bufnr})
+    vim.keymap.set('n', 'grr'       , vim.lsp.buf.rename, {buffer = bufnr, desc = 'rename'})
   end
   if client.supports_method('signatureHelp') then
-    vim.keymap.set('n', '<c-h>'     , vim.lsp.buf.signature_help, {buffer = bufnr})
-    -- vim.keymap.set('n', ';s '       , vim.lsp.buf.signature_help, {buffer = bufnr})
+    vim.keymap.set('n', '<c-h>'     , vim.lsp.buf.signature_help, {buffer = bufnr, desc = 'signature help'})
   end
   if client.supports_method('textDocument/formatting') then
     vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()')
-    vim.keymap.set('n', '<leader>f' , vim.lsp.buf.format, {buffer = bufnr})
-    wk_register({
-      ['<leader>f'] = {'format'},
-    }, {buffer = bufnr})
+    vim.keymap.set('n', '<leader>f' , vim.lsp.buf.format, {buffer = bufnr, desc = 'format'})
     vim.api.nvim_create_autocmd('BufWritePre', {
       buffer = bufnr,
       group = group,
@@ -67,35 +56,22 @@ local my_attach = function(client, bufnr)
     })
   end
   if client.supports_method('textDocument/typeDefinition') then
-    vim.keymap.set('n', 'gT'        , vim.lsp.buf.type_definition, {buffer = bufnr})
-    wk_register({
-      ['gT'] = {'goto typedef'},
-    }, {buffer = bufnr})
+    vim.keymap.set('n', 'gT'        , vim.lsp.buf.type_definition, {buffer = bufnr, desc = 'goto typedef'})
   end
   if client.supports_method('textDocument/declaration') then
-    vim.keymap.set('n', 'gD'        , vim.lsp.buf.declaration, {buffer = bufnr})
-    wk_register({
-      ['gD'] = {'goto declaration'},
-    }, {buffer = bufnr})
+    vim.keymap.set('n', 'gD'        , vim.lsp.buf.declaration, {buffer = bufnr, desc = 'goto declaration'})
   end
   if client.supports_method('textDocument/implementation') then
-    vim.keymap.set('n', 'gI'        , vim.lsp.buf.implementation, {buffer = bufnr})
-    wk_register({
-      ['gI'] = {'goto implementation'},
-    }, {buffer = bufnr})
+    vim.keymap.set('n', 'gI'        , vim.lsp.buf.implementation, {buffer = bufnr, desc = 'goto implementation'})
   end
   if client.supports_method('workspace/symbol') then
-    vim.keymap.set('n', 'gW'        , vim.lsp.buf.workspace_symbol, {buffer = bufnr})
-    wk_register({
-      ['gW'] = {'goto symbol'},
-    }, {buffer = bufnr})
+    vim.keymap.set('n', 'gW'        , vim.lsp.buf.workspace_symbol, {buffer = bufnr, desc = 'goto symbol'})
   end
   -- if client.resolved_capabilities.document_symbol then
   --   vim.keymap.set('n', 'g0', vim.lsp.buf.document_symbol, {buffer = bufnr})
   -- end
   if client.supports_method('textDocument/codeAction') then
-    vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, {buffer = bufnr})
-    wk_register({['ga'] = {'code action'}}, {buffer = bufnr})
+    vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, {buffer = bufnr, desc = 'code action'})
   end
 end
 
diff --git a/.vim/lua/plugins.lua b/.vim/lua/plugins.lua
index 7682613..da4a9f1 100644
--- a/.vim/lua/plugins.lua
+++ b/.vim/lua/plugins.lua
@@ -4,8 +4,6 @@
 -- load by calling `lua require('plugins')` from init.vim
 
 local g = vim.g
-local augroup = vim.api.nvim_create_augroup
-local autocmd = vim.api.nvim_create_autocmd
 
 -- force packer into a system directory {{{
 if not vim.fn.filewritable(vim.fn.stdpath('cache')) == 2 then
@@ -50,8 +48,7 @@ if not (vim.fn.empty(vim.fn.glob(compilepath)) > 0) then
 end
 -- auto-compile on save -- {{{
 do
-  vim.api.nvim_create_user_command(
-    'PackerRecompile',
+  vim.api.nvim_create_user_command('PackerRecompile',
     function()
       for _, client in pairs(vim.lsp.get_active_clients()) do
         if vim.tbl_contains(client.config.filetypes, 'lua') then
@@ -116,35 +113,22 @@ require('packer').startup({function()
             if vim.wo.diff then return ']c' end
             vim.schedule(gs.next_hunk)
             return '<Ignore>'
-          end, {expr=true, buffer=bufnr})
+          end, {expr=true, buffer=bufnr, desc='next hunk'})
 
           vim.keymap.set('n', '[c', function()
             if vim.wo.diff then return '[c' end
             vim.schedule(gs.prev_hunk)
             return '<Ignore>'
-          end, {expr=true, buffer=bufnr})
+          end, {expr=true, buffer=bufnr, desc='previous hunk'})
 
-          vim.keymap.set('n', '<leader>hb', gs.toggle_current_line_blame, {buffer=bufnr})
-          vim.keymap.set('n', '<leader>hB', function() gs.blame_line {full=true} end, {buffer=bufnr})
-          vim.keymap.set('n', '<leader>hp', gs.preview_hunk, {buffer=bufnr})
-          vim.keymap.set('n', '<leader>hd', gs.diffthis, {buffer=bufnr})
+          vim.keymap.set('n', '<leader>hb', function() gs.blame_line {full=true} end, {buffer=bufnr, desc='show line blame (full)'})
+          vim.keymap.set('n', '<leader>hB', function() gs.blame_line {full=false} end, {buffer=bufnr, desc='show line blame (compact)'})
+          vim.keymap.set('n', '<leader>hp', gs.preview_hunk, {buffer=bufnr, desc='preview hunk'})
+          vim.keymap.set('n', '<leader>hd', gs.diffthis, {buffer=bufnr, desc='diff this'})
           vim.keymap.set('n', '<leader>hl', function()
             gs.setqflist(0, {open=false})
             vim.schedule(function() require('telescope.builtin').quickfix() end)
-          end, {buffer=bufnr})
-
-          wk_register {
-            [']c'] = 'next git hunk',
-            ['[c'] = 'previous git hunk',
-            ['<leader>h'] = {
-              name = '+GitSigns',
-              b = 'toggle line blame',
-              B = 'show full line blame',
-              p = 'preview hunk',
-              d = 'diffthis',
-              l = 'list hunks'
-            }
-          }
+          end, {buffer=bufnr, desc='list hunks'})
         end,
       }
     end} -- }}}
@@ -208,8 +192,7 @@ require('packer').startup({function()
           vim.keymap.set('n', 'gT', function()
             vim.loop.spawn('swaymsg', {args = {'exec', '--', 'foot', '-D', vim.fn.expand('%')}})
             -- vim.fn.system('swaymsg exec -- foot -D ' .. vim.fn.expand('%'))
-          end, { buffer = 0 })
-          wk_register { ['gT'] = {'Open in foot'} }
+          end, {buffer=0, desc='open in foot terminal'})
         end,
         group = vim.api.nvim_create_augroup('DirBufEnter', {}),
       })
@@ -698,46 +681,26 @@ require('packer').startup({function()
       require('telescope').load_extension('ui-select')
       require('telescope').load_extension('zk')
 
-      vim.keymap.set('n', ';Q', require('telescope.builtin').quickfix)
-      vim.keymap.set('n', ';C', require('telescope.builtin').loclist)
-      vim.keymap.set('n', ';H', require('telescope.builtin').help_tags)
-      vim.keymap.set('n', ';b', require('telescope.builtin').buffers)
-      vim.keymap.set('n', ';c', require('telescope.builtin').commands)
-      vim.keymap.set('n', ';f', require('telescope.builtin').fd)
-      vim.keymap.set('n', ';g', require('telescope.builtin').live_grep)
-      vim.keymap.set('n', ';h', require('telescope.builtin').command_history)
-      vim.keymap.set('n', ';l', require('telescope.builtin').current_buffer_fuzzy_find)
-      vim.keymap.set('n', ';o', require('telescope.builtin').oldfiles)
-      vim.keymap.set('n', ';d', require('telescope.builtin').diagnostics)
-      -- vim.keymap.set('n', ';s', require('telescope.builtin').lsp_workspace_symbols)
-      -- vim.keymap.set('n', ';r', require('telescope.builtin').lsp_references)
+      vim.keymap.set('n', ';Q', require('telescope.builtin').quickfix, {desc='quickfix'})
+      vim.keymap.set('n', ';C', require('telescope.builtin').loclist, {desc='loclist'})
+      vim.keymap.set('n', ';H', require('telescope.builtin').help_tags, {desc='help_tags'})
+      vim.keymap.set('n', ';b', require('telescope.builtin').buffers, {desc='buffer'})
+      vim.keymap.set('n', ';c', require('telescope.builtin').commands, {desc='commands'})
+      vim.keymap.set('n', ';f', require('telescope.builtin').fd, {desc='fd'})
+      vim.keymap.set('n', ';g', require('telescope.builtin').live_grep, {desc='grep'})
+      vim.keymap.set('n', ';h', require('telescope.builtin').command_history, {desc='command history'})
+      vim.keymap.set('n', ';l', require('telescope.builtin').current_buffer_fuzzy_find, {desc='buffer'})
+      vim.keymap.set('n', ';o', require('telescope.builtin').oldfiles, {desc='oldfiles'})
+      vim.keymap.set('n', ';d', require('telescope.builtin').diagnostics, {desc='diagnostics'})
+      -- vim.keymap.set('n', ';s', require('telescope.builtin').lsp_workspace_symbols, {desc='lsp workspace symbols'})
+      -- vim.keymap.set('n', ';r', require('telescope.builtin').lsp_references, {desc='lsp references'})
       vim.keymap.set('n', ';v', function()
           require('telescope.builtin').find_files({
             prompt_title = 'vimrc',
             previewer = false,
             cwd = vim.fn.stdpath('config'),
           })
-        end)
-
-      wk_register {
-        [';'] = {
-          name = '+Telescope',
-          Q = {'quickfix'},
-          C = {'loclist'},
-          H = {'help'},
-          b = {'buffers'},
-          c = {'commands'},
-          f = {'fd'},
-          g = {'grep'},
-          h = {'command history'},
-          l = {'fuzzy find buffer'},
-          o = {'oldfiles (mcu)'},
-          v = {'vimrc'},
-          d = {'diagnostics'},
-          -- s = {'workspace symbols'},
-          -- r = {'references'},
-        }
-      }
+        end, {desc='vim config'})
     end} -- }}}
 
   use {'tpope/vim-surround'}
@@ -795,43 +758,42 @@ require('packer').startup({function()
           }):find()
         end)
 
-      wk_register {
-        ['<leader>o'] = {
-          name = '+Orgmode',
-          a = {'agenda prompt'},
-          c = {'capture prompt'},
-          r = {'refile'},
-          [','] = {'set priority'},
-          ['*'] = {'toggle headline'},
-          ['o'] = {'follow link/date'},
-          ['\''] = {'create source block'},
-          ['$'] = {'archive current headline'},
-          ['<cr>'] = {'insert heading/item/row'},
-          t = {'set tags'},
-          A = {'toggle ARCHIVE tag'},
-          K = {'subtree up'},
-          J = {'subtree down'},
-          e = {'export'},
-          ['i'] = {
-            name = '+Timestamp',
-            d = {'set deadline'},
-            s = {'set scheduled'},
-            h = {'insert heading (respect content)'},
-            T = {'insert todo'},
-            t = {'insert todo (respect content)'},
-            ['.'] = {'set date'},
-            ['!'] = {'set inactive'},
-          },
-          ['x'] = {
-            name = '+Clock',
-            i = {'clock in'},
-            o = {'clock out'},
-            q = {'cancel active clock'},
-            j = {'jump to active clock'},
-            e = {'set effort estimate property'},
-          }
-        },
-      }
+      -- wk_register {
+      --   ['<leader>o'] = {name = '+Orgmode',
+      --     a = {'agenda prompt'},
+      --     c = {'capture prompt'},
+      --     r = {'refile'},
+      --     [','] = {'set priority'},
+      --     ['*'] = {'toggle headline'},
+      --     ['o'] = {'follow link/date'},
+      --     ['\''] = {'create source block'},
+      --     ['$'] = {'archive current headline'},
+      --     ['<cr>'] = {'insert heading/item/row'},
+      --     t = {'set tags'},
+      --     A = {'toggle ARCHIVE tag'},
+      --     K = {'subtree up'},
+      --     J = {'subtree down'},
+      --     e = {'export'},
+      --     ['i'] = {
+      --       name = '+Timestamp',
+      --       d = {'set deadline'},
+      --       s = {'set scheduled'},
+      --       h = {'insert heading (respect content)'},
+      --       T = {'insert todo'},
+      --       t = {'insert todo (respect content)'},
+      --       ['.'] = {'set date'},
+      --       ['!'] = {'set inactive'},
+      --     },
+      --     ['x'] = {
+      --       name = '+Clock',
+      --       i = {'clock in'},
+      --       o = {'clock out'},
+      --       q = {'cancel active clock'},
+      --       j = {'jump to active clock'},
+      --       e = {'set effort estimate property'},
+      --     }
+      --   },
+      -- }
     end} -- }}}
 
   use {'nvim-neorg/neorg', ft = {'norg'}, module = {'neorg'}, cmd = {'Neorg'}, -- {{{
@@ -901,8 +863,7 @@ require('packer').startup({function()
           },
         },
       }
-      vim.keymap.set('n', ';z', function() require('zk').edit(nil, { multi_select = false }) end)
-      wk_register { [';'] = { name = '+Telescope', z = {'zk'} } }
+      vim.keymap.set('n', ';z', function() require('zk').edit(nil, { multi_select = false }) end, {desc='zk'})
     end} -- }}}
 
   -- languages
@@ -1164,8 +1125,7 @@ require('packer').startup({function()
         })
       end
 
-      vim.keymap.set('n', '<leader>a', function() vim.cmd [[Alpha]] end)
-      wk_register { ['<leader>a'] = {'alpha'} }
+      vim.keymap.set('n', '<leader>a', function() vim.cmd [[Alpha]] end, {desc='alpha'})
     end} -- }}}
 
   use {'ruifm/gitlinker.nvim', module = {'gitlinker'}, -- {{{
@@ -1176,7 +1136,6 @@ require('packer').startup({function()
           action_callback = require('gitlinker.actions').copy_to_clipboard,
         },
       }
-      wk_register { ['<leader>g'] = { name = '+Git', y = {'gitlinker'} } }
     end} -- }}}
 
   use {'rhysd/git-messenger.vim', -- {{{
@@ -1185,18 +1144,18 @@ require('packer').startup({function()
       vim.g.git_messenger_always_into_popup = true
       vim.g.git_messenger_close_on_cursor_moved = true
       vim.g.git_messenger_no_default_mappings = true
-      vim.keymap.set('n', '<leader>gm', function() vim.cmd [[GitMessenger]] end)
-      wk_register { ['<leader>g'] = { name = '+Git', m = {'git-messenger'} } }
+      vim.keymap.set('n', '<leader>gm', function() vim.cmd [[GitMessenger]] end, {desc='git-messenger'})
     end} -- }}}
 
   -- restore last cursor position (and handle many edge cases)
   use {'farmergreg/vim-lastplace'}
 
   use {'folke/todo-comments.nvim', module = {'telescope._extensions.todo-comments'}, cmd = {'TodoTelescope'}, -- {{{
+    setup = function()
+      vim.keymap.set('n', ';t', function() vim.cmd [[TodoTelescope]] end, {desc='todo-comments'})
+    end,
     config = function()
       require('todo-comments').setup {}
-      -- vim.keymap.set('n', ';t', function() vim.cmd [[TodoTelescope]] end)
-      -- wk_register { [';'] = { name = '+Telescope', t = {'todo-comments'} } }
     end} -- }}}
 
   -- spelling related stuff
diff --git a/.vim/lua/statusline.lua b/.vim/lua/statusline.lua
index 7cd36b1..c0c185d 100644
--- a/.vim/lua/statusline.lua
+++ b/.vim/lua/statusline.lua
@@ -240,8 +240,7 @@ vim.keymap.set('n', '<leader>n', function()
     --   end,
     -- },
   }):find()
-end)
-wk_register { ['<leader>n'] = {'notifications'} }
+end, {desc='notifications'})
 
 -- vim.opt.statusline = '%!luaeval("statusline()")'
 vim.opt.statusline = '%{%v:lua.statusline()%}'