diff options
Diffstat (limited to '.config')
| -rw-r--r-- | .config/emacs/modules/mm-editing.el | 1 | ||||
| -rw-r--r-- | .config/fuzzel/fuzzel.ini | 4 | ||||
| -rw-r--r-- | .config/git/config | 4 | ||||
| -rw-r--r-- | .config/htop/htoprc | 26 | ||||
| -rw-r--r-- | .config/iosevka-smooth/private-build-plans.toml | 93 | ||||
| -rw-r--r-- | .config/niri/config.kdl | 330 | ||||
| -rw-r--r-- | .config/nvim/init.lua | 187 | ||||
| -rw-r--r-- | .config/nvim/lua/snippets.lua | 190 | ||||
| -rw-r--r-- | .config/qalculate/qalculate-gtk.cfg | 164 | ||||
| -rw-r--r-- | .config/user-dirs.dirs | 2 |
10 files changed, 618 insertions, 383 deletions
diff --git a/.config/emacs/modules/mm-editing.el b/.config/emacs/modules/mm-editing.el index eb8b7be..73b29a6 100644 --- a/.config/emacs/modules/mm-editing.el +++ b/.config/emacs/modules/mm-editing.el @@ -381,6 +381,7 @@ is as described by `emmet-expand-line'." (use-package awk-ts-mode :ensure t) (use-package cmake-mode :ensure t) (use-package git-modes :ensure t) +(use-package kdl-mode :ensure t) (use-package po-mode :ensure t) (use-package sed-mode :ensure t) diff --git a/.config/fuzzel/fuzzel.ini b/.config/fuzzel/fuzzel.ini index 3084d72..ede6dd7 100644 --- a/.config/fuzzel/fuzzel.ini +++ b/.config/fuzzel/fuzzel.ini @@ -1,11 +1,12 @@ [main] font=SF Compact Text:size=18 +use-bold=no fuzzy=no password-character=• prompt="" terminal=foot lines=20 -width=40 +width=80 layer=overlay line-height=32 inner-pad=8 @@ -15,6 +16,7 @@ dpi-aware=no background=2B303BE6 border=FAA14FFF text=C5C8C6FF +input=C5C8C6FF selection=414859E6 selection-text=C5C8C6FF diff --git a/.config/git/config b/.config/git/config index 0a5fdd1..90734fc 100644 --- a/.config/git/config +++ b/.config/git/config @@ -1,7 +1,7 @@ [user] email = mail@thomasvoss.com name = Thomas Voss - signingKey = /home/thomas/.ssh/id_rsa.pub + signingKey = /home/thomas/.ssh/id_ed25519.pub [core] editor = nvim @@ -77,4 +77,4 @@ directory = /opt/flutter [transfer] - fsckObjects = true
\ No newline at end of file + fsckObjects = true diff --git a/.config/htop/htoprc b/.config/htop/htoprc index 35f4039..94c3d56 100644 --- a/.config/htop/htoprc +++ b/.config/htop/htoprc @@ -1,6 +1,6 @@ # Beware! This file is rewritten by htop when settings are changed in the interface. # The parser is also very primitive, and not human-friendly. -htop_version=3.3.0 +htop_version=3.4.1-3.4.1 config_reader_min_version=3 fields=0 48 17 18 38 39 40 2 46 47 49 1 hide_kernel_threads=1 @@ -9,7 +9,7 @@ hide_running_in_container=0 shadow_other_users=0 show_thread_names=0 show_program_path=1 -highlight_base_name=0 +highlight_base_name=1 highlight_deleted_exe=1 shadow_distribution_path_prefix=0 highlight_megabytes=1 @@ -22,22 +22,26 @@ show_merged_command=1 header_margin=1 screen_tabs=1 detailed_cpu_time=0 -cpu_count_from_one=0 +cpu_count_from_one=1 show_cpu_usage=1 show_cpu_frequency=0 -show_cpu_temperature=0 -degree_fahrenheit=0 +show_cached_memory=1 update_process_names=0 account_guest_in_cpu_meter=0 color_scheme=0 enable_mouse=1 delay=15 hide_function_bar=0 -header_layout=two_50_50 -column_meters_0=LeftCPUs Memory -column_meter_modes_0=1 1 -column_meters_1=RightCPUs Battery -column_meter_modes_1=1 1 +topology_affinity=0 +header_layout=four_25_25_25_25 +column_meters_0=CPU(1) CPU(2) CPU(3) CPU(4) CPU(5) CPU(6) CPU(7) CPU(8) Memory +column_meter_modes_0=1 1 1 1 1 1 1 1 1 +column_meters_1=CPU(9) CPU(10) CPU(11) CPU(12) CPU(13) CPU(14) CPU(15) CPU(16) Swap +column_meter_modes_1=1 1 1 1 1 1 1 1 1 +column_meters_2=CPU(17) CPU(18) CPU(19) CPU(20) CPU(21) CPU(22) CPU(23) CPU(24) GPU +column_meter_modes_2=1 1 1 1 1 1 1 1 2 +column_meters_3=CPU(25) CPU(26) CPU(27) CPU(28) CPU(29) CPU(30) CPU(31) CPU(32) DiskIO NetworkIO +column_meter_modes_3=1 1 1 1 1 1 1 1 2 2 tree_view=0 sort_key=46 tree_sort_key=0 @@ -53,7 +57,7 @@ screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU P .sort_direction=-1 .tree_sort_direction=1 .all_branches_collapsed=0 -screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command +screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE Command .sort_key=IO_RATE .tree_sort_key=PID .tree_view_always_by_pid=0 diff --git a/.config/iosevka-smooth/private-build-plans.toml b/.config/iosevka-smooth/private-build-plans.toml new file mode 100644 index 0000000..1ef6be9 --- /dev/null +++ b/.config/iosevka-smooth/private-build-plans.toml @@ -0,0 +1,93 @@ +[buildPlans.iosevka-smooth] +family = "Iosevka Smooth" +spacing = "normal" +serifs = "sans" +noCvSs = false +exportGlyphNames = true + +[buildPlans.iosevka-smooth.variants.design] +capital-g = "toothless-corner-serifless-hooked" +capital-k = "symmetric-touching-serifless" +capital-q = "crossing" +a = "double-storey-toothless-corner" +b = "toothless-corner-serifless" +d = "toothless-corner-serifless" +g = "single-storey-earless-corner" +i = "serifed-flat-tailed" +l = "serifed-flat-tailed" +m = "earless-corner-double-arch-serifless" +n = "earless-corner-straight-serifless" +p = "earless-corner-serifless" +q = "earless-corner-straight-serifless" +u = "toothless-corner-serifless" +long-s = "bent-hook-middle-serifed-xh" +eszet = "sulzbacher-descending-serifless" +lower-delta = "flat-top" +lower-mu = "toothless-corner-serifless" +zero = "tall-slashed" +two = "straight-neck-serifless" +three = "flat-top-serifless" +brace = "straight" +ampersand = "et-toothless-corner" +percent = "rings-continuous-slash" +partial-derivative = "straight-bar" +lower-eth = "straight-bar" +micro-sign = "toothless-corner-serifless" +lig-neq = "more-slanted" +lig-equal-chain = "without-notch" +lig-hyphen-chain = "without-notch" + +[buildPlans.iosevka-smooth.variants.italic] +k = "straight-serifless" +long-s = "flat-hook-tailed" +eszet = "sulzbacher-tailed-serifless" + +[buildPlans.iosevka-smooth.ligations] +inherits = "dlig" + +[buildPlans.iosevka-smooth-term] +family = "Iosevka Smooth Term" +spacing = "term" +serifs = "sans" +noCvSs = false +exportGlyphNames = true + +[buildPlans.iosevka-smooth-term.variants.design] +capital-g = "toothless-corner-serifless-hooked" +capital-k = "symmetric-touching-serifless" +capital-q = "crossing" +a = "double-storey-toothless-corner" +b = "toothless-corner-serifless" +d = "toothless-corner-serifless" +g = "single-storey-earless-corner" +i = "serifed-flat-tailed" +l = "serifed-flat-tailed" +m = "earless-corner-double-arch-serifless" +n = "earless-corner-straight-serifless" +p = "earless-corner-serifless" +q = "earless-corner-straight-serifless" +u = "toothless-corner-serifless" +long-s = "bent-hook-middle-serifed-xh" +eszet = "sulzbacher-descending-serifless" +lower-delta = "flat-top" +lower-mu = "toothless-corner-serifless" +zero = "tall-slashed" +two = "straight-neck-serifless" +three = "flat-top-serifless" +brace = "straight" +ampersand = "et-toothless-corner" +percent = "rings-continuous-slash" +partial-derivative = "straight-bar" +lower-eth = "straight-bar" +micro-sign = "toothless-corner-serifless" +lig-neq = "more-slanted" +lig-equal-chain = "without-notch" +lig-hyphen-chain = "without-notch" + +[buildPlans.iosevka-smooth-term.variants.italic] +k = "straight-serifless" +long-s = "flat-hook-tailed" +eszet = "sulzbacher-tailed-serifless" + +[buildPlans.iosevka-smooth-term.ligations] +inherits = "dlig" diff --git a/.config/niri/config.kdl b/.config/niri/config.kdl new file mode 100644 index 0000000..6bf3227 --- /dev/null +++ b/.config/niri/config.kdl @@ -0,0 +1,330 @@ +spawn-at-startup "qs" "-c" "noctalia-shell" +spawn-at-startup "gentoo-pipewire-launcher" + +// https://yalter.github.io/niri/Configuration:-Input +input { + keyboard { + xkb { + layout "mango,mango,us" + variant "basic,swedish,basic" + options "lv3:switch,compose:ralt" + } + + repeat-delay 360 + repeat-rate 35 + numlock + } + + touchpad { + tap + dwt + drag true + natural-scroll + accel-speed 0.2 + accel-profile "adaptive" + scroll-method "two-finger" + } + + mouse { + natural-scroll + accel-speed 0.2 + accel-profile "adaptive" + } + + focus-follows-mouse + workspace-auto-back-and-forth +} + + +output "DP-1" { + mode "5120x1440@144.000" + scale 1 + position x=0 y=0 + focus-at-startup +} + +output "DP-2" { + mode "5120x1440@144.000" + scale 1 + position x=0 y=0 + focus-at-startup +} + +output "eDP-1" { + mode "2256x1504@60.000" + scale 1 + position x=1432 y=1440 +} + +cursor { + xcursor-theme "Adwaita" + xcursor-size 24 +} + +layout { + gaps 12 + background-color "#2B303B" + + always-center-single-column + center-focused-column "on-overflow" + + preset-column-widths { + proportion 0.33333 + proportion 0.50000 + proportion 0.66667 + } + + default-column-width { + proportion 0.33333 + } + + focus-ring { + off + } + + border { + width 2 + active-gradient from="#FAA14F" to="#B8F182" angle=150 relative-to="workspace-view" + inactive-color "#363C4A" + urgent-color "#841A11" + } + + shadow { + on + draw-behind-window true + + softness 30 + spread 25 + offset x=8 y=8 + color "#0007" + } + + default-column-display "tabbed" + tab-indicator { + hide-when-single-tab + width 4 + length total-proportion=0.9 + corner-radius 16 + active-gradient from="#FAA14F" to="#B8F182" angle=150 + inactive-color "#363C4A" + urgent-color "#841A11" + } +} + +hotkey-overlay { + skip-at-startup +} + +prefer-no-csd + +screenshot-path "~/media/img/screen/%Y-%m-%d_%H-%M-%S.png" + +// Animation settings. +// The wiki explains how to configure individual animations: +// https://yalter.github.io/niri/Configuration:-Animations +animations { + // Uncomment to turn off all animations. + // off + + // Slow down all animations by this factor. Values below 1 speed them up instead. + // slowdown 3.0 +} + +// Window rules let you adjust behavior for individual windows. +// Find more information on the wiki: +// https://yalter.github.io/niri/Configuration:-Window-Rules + +// Open the Firefox picture-in-picture player as floating by default. +window-rule { + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + open-floating true +} + +window-rule { + match app-id="scratch-term" + open-floating true + default-column-width { fixed 800; } + default-window-height { fixed 600; } +} + +window-rule { + match app-id="qalculate-(gtk|qt)" + open-floating true + default-column-width { fixed 800; } + default-window-height { fixed 600; } +} + +// Example: block out two password managers from screen capture. +// (This example rule is commented out with a "/-" in front.) +/-window-rule { + match app-id=r#"^org\.keepassxc\.KeePassXC$"# + match app-id=r#"^org\.gnome\.World\.Secrets$"# + + block-out-from "screen-capture" + + // Use this instead if you want them visible on third-party screenshot tools. + // block-out-from "screencast" +} + +layer-rule { + match namespace="^noctalia-overview*" + place-within-backdrop true +} + +binds { + Mod+Shift+Slash { show-hotkey-overlay; } + XF86Tools { spawn "emacsclient" "-ca" "emacs" "/home/thomas/.config"; } + + /* Applikationer */ + // Mod+C hotkey-overlay-title="Calculator" { + // spawn "qalculate-gtk" + // } + // Mod+E hotkey-overlay-title="Editor" { + // spawn "emacsclient" "-ca" "emacs" + // } + // Mod+M hotkey-overlay-title="Email" { + // spawn "foot" "aerc" + // } + // Mod+W hotkey-overlay-title="Web Browser" { + // spawn "firefox" + // } + Mod+Return hotkey-overlay-title="Terminal" { + spawn "foot" + } + Mod+Ctrl+Return hotkey-overlay-title="Terminal (Scratch)" { + spawn "foot" "--app-id" "scratch-term" + } + Mod+Space hotkey-overlay-title="App Launcher" { + spawn "fuzzel" "-I" "--log-level=warning" "--show-actions" + } + + /- Super+Alt+L hotkey-overlay-title="Screenlock" { + spawn "swaylock" + } + + /* Ljudkontroll */ + XF86AudioRaiseVolume allow-when-locked=true { + spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+" "-l" "1.0" + } + XF86AudioLowerVolume allow-when-locked=true { + spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-" + } + XF86AudioMute allow-when-locked=true { + spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" + } + XF86AudioMicMute allow-when-locked=true { + spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle" + } + + /* Mediakontroll */ + XF86AudioPlay allow-when-locked=true { + spawn "playerctl" "play-pause" + } + XF86AudioStop allow-when-locked=true { + spawn "playerctl" "stop" + } + XF86AudioPrev allow-when-locked=true { + spawn "playerctl" "previous" + } + XF86AudioNext allow-when-locked=true { + spawn "playerctl" "next" + } + + XF86MonBrightnessUp allow-when-locked=true { + spawn "brightnessctl" "--class=backlight" "set" "+10%" + } + XF86MonBrightnessDown allow-when-locked=true { + spawn "brightnessctl" "--class=backlight" "set" "10%-" + } + + Mod+Q repeat=false { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+F { focus-column-right; } + Mod+B { focus-column-left; } + Mod+N { focus-window-down-or-top; } + Mod+P { focus-window-up-or-bottom; } + + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down; } + Mod+Ctrl+Up { move-window-up; } + Mod+Ctrl+Right { move-column-right; } + Mod+Ctrl+F { move-column-right; } + Mod+Ctrl+B { move-column-left; } + Mod+Ctrl+N { move-window-down; } + Mod+Ctrl+P { move-window-up; } + + Mod+Home { focus-column-first; } + Mod+End { focus-column-last; } + Mod+Ctrl+Home { move-column-to-first; } + Mod+Ctrl+End { move-column-to-last; } + Mod+A { focus-column-first; } + Mod+E { focus-column-last; } + Mod+Ctrl+A { move-column-to-first; } + Mod+Ctrl+E { move-column-to-last; } + + Mod+Shift+Left { focus-monitor-left; } + Mod+Shift+Down { focus-monitor-down; } + Mod+Shift+Up { focus-monitor-up; } + Mod+Shift+Right { focus-monitor-right; } + + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+Shift+1 { focus-workspace 1; } + Mod+Shift+2 { focus-workspace 2; } + Mod+Shift+3 { focus-workspace 3; } + Mod+Shift+4 { focus-workspace 4; } + Mod+Shift+5 { focus-workspace 5; } + Mod+Shift+6 { focus-workspace 6; } + Mod+Shift+7 { focus-workspace 7; } + Mod+Shift+8 { focus-workspace 8; } + Mod+Shift+9 { focus-workspace 9; } + + Mod+Ctrl+1 { move-column-to-workspace 1; } + Mod+Ctrl+2 { move-column-to-workspace 2; } + Mod+Ctrl+3 { move-column-to-workspace 3; } + Mod+Ctrl+4 { move-column-to-workspace 4; } + Mod+Ctrl+5 { move-column-to-workspace 5; } + Mod+Ctrl+6 { move-column-to-workspace 6; } + Mod+Ctrl+7 { move-column-to-workspace 7; } + Mod+Ctrl+8 { move-column-to-workspace 8; } + Mod+Ctrl+9 { move-column-to-workspace 9; } + Mod+Ctrl+Shift+1 { move-column-to-workspace 1; } + Mod+Ctrl+Shift+2 { move-column-to-workspace 2; } + Mod+Ctrl+Shift+3 { move-column-to-workspace 3; } + Mod+Ctrl+Shift+4 { move-column-to-workspace 4; } + Mod+Ctrl+Shift+5 { move-column-to-workspace 5; } + Mod+Ctrl+Shift+6 { move-column-to-workspace 6; } + Mod+Ctrl+Shift+7 { move-column-to-workspace 7; } + Mod+Ctrl+Shift+8 { move-column-to-workspace 8; } + Mod+Ctrl+Shift+9 { move-column-to-workspace 9; } + + Mod+Comma { consume-window-into-column; } + Mod+Period { expel-window-from-column; } + + Mod+Ctrl+M { maximize-column; } + Mod+Ctrl+Shift+M { fullscreen-window; } + Mod+L { center-window; } + Mod+R { switch-preset-column-width; } + Mod+W { toggle-column-tabbed-display; } + Mod+O { toggle-overview; } + + Print { screenshot; } + Ctrl+Print { screenshot-screen; } + Alt+Print { screenshot-window; } + + Mod+Shift+Comma { focus-workspace-up; } + Mod+Shift+Period { focus-workspace-down; } + + Mod+Ctrl+G allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } +} diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 220c341..5a922e3 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -16,16 +16,18 @@ vim.opt.grepprg = 'rg --vimgrep' vim.opt.hlsearch = true vim.opt.ignorecase = true vim.opt.inccommand = 'split' -vim.opt.list = false vim.opt.listchars = { tab = '» ', trail = '․', nbsp = '␣' } +vim.opt.list = false vim.opt.matchpairs:append('<:>') +vim.opt.matchpairs:append('»:«') vim.opt.matchpairs:append('‘:’') vim.opt.matchpairs:append('“:”') -vim.opt.matchpairs:append('»:«') vim.opt.matchpairs:append('›:‹') vim.opt.mouse = 'a' vim.opt.number = true vim.opt.relativenumber = true +vim.opt.runtimepath:append("/usr/share/vim/vimfiles") +vim.opt.runtimepath:append("/usr/share/vim/vimfiles/after") vim.opt.scrolloff = 8 vim.opt.secure = true vim.opt.shiftwidth = 4 @@ -166,84 +168,24 @@ end require 'paq' { 'folke/todo-comments.nvim', 'folke/tokyonight.nvim', - 'hrsh7th/cmp-nvim-lsp', - 'hrsh7th/cmp-path', - 'hrsh7th/nvim-cmp', 'kylechui/nvim-surround', - 'L3MON4D3/LuaSnip', 'luckasRanarison/tree-sitter-hypr', 'Mango0x45/tree-sitter-gsp', - 'mattn/emmet-vim', - 'neovim/nvim-lspconfig', 'ngalaiko/tree-sitter-go-template', 'nvim-lua/plenary.nvim', - 'nvim-telescope/telescope.nvim', - 'nvim-telescope/telescope-ui-select.nvim', - { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate' }, + { + 'nvim-treesitter/nvim-treesitter', + branch = 'master', + build = ':TSUpdate', + }, 'nvim-treesitter/nvim-treesitter-textobjects', - 'saadparwaiz1/cmp_luasnip', 'savq/paq-nvim', 'wellle/targets.vim', } --- emmet-vim -vim.g.user_emmet_install = false - -- tokyonight.nvim vim.cmd.colorscheme 'tokyonight-night' --- telescope.nvim -local telescope = require 'telescope' -local tsactions = require 'telescope.actions' -local tsbuiltin = require 'telescope.builtin' -local tsthemes = require 'telescope.themes' - -telescope.setup { - defaults = { - scroll_strategy = 'limit', - path_display = { 'filename_first' }, - get_status_text = function(_) return '' end, - mappings = { - i = { - ['<Esc>'] = { - tsactions.close, - type = 'action', - opts = { nowait = true, silent = true }, - }, - ['<C-j>'] = { - tsactions.move_selection_next, - type = 'action', - opts = { nowait = true, silent = true }, - }, - ['<C-k>'] = { - tsactions.move_selection_previous, - type = 'action', - opts = { nowait = true, silent = true }, - }, - }, - }, - }, - extensions = { - ['ui-select'] = { tsthemes.get_dropdown() }, - } -} - -pcall(telescope.load_exetension, 'fzf') -pcall(telescope.load_exetension, 'ui-select') - -vim.keymap.set('n', '<Leader>ff', tsbuiltin.find_files, - { desc = '[F]ind [F]iles' }) -vim.keymap.set('n', '<Leader>fh', tsbuiltin.help_tags, - { desc = '[F]ind [H]elp' }) -vim.keymap.set('n', '<Leader>fg', tsbuiltin.live_grep, - { desc = '[F]ind [G]rep' }) -vim.keymap.set('n', '<Leader>/', function() - tsbuiltin.current_buffer_fuzzy_find(tsthemes.get_dropdown { - winblend = 10, - previewer = false, - }) -end, { desc = 'Fuzzily search in current buffer' }) - -- todo-comments.nvim require('todo-comments').setup { signs = false, @@ -400,116 +342,5 @@ require('nvim-surround').setup { } } --- nvim-lspconfig -local lsp = require 'lspconfig' -local caps = require('cmp_nvim_lsp').default_capabilities() - -lsp.clangd.setup { - cmd = { 'clangd', '-header-insertion=never' }, - capabilities = caps, -} -lsp.gopls.setup { - capabilities = caps, -} -lsp.rust_analyzer.setup { - capabilities = caps, -} -lsp.templ.setup { - capabilities = caps, -} -lsp.ts_ls.setup { - capabilities = caps, -} -lsp.lua_ls.setup { - settings = { - Lua = { - runtime = { - version = 'LuaJIT', - }, - diagnostics = { - globals = { - 'vim', - 'require', - }, - }, - workspace = { - library = vim.api.nvim_get_runtime_file('', true), - }, - telemetry = { - enable = false, - }, - }, - }, - capabilities = caps, -} - -vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('mango-lsp-config', { clear = true }), - callback = function(ev) - vim.diagnostic.disable() - vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' - vim.keymap.set('n', 'gK', vim.lsp.buf.hover, - { buffer = ev.buf, desc = 'View symbol hover information' }) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, - { buffer = ev.buf, desc = 'Goto [D]efinition' }) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, - { buffer = ev.buf, desc = 'Goto [I]mplementation' }) - vim.keymap.set('n', 'gr', vim.lsp.buf.rename, - { buffer = ev.buf, desc = '[R]ename symbol' }) - vim.keymap.set('n', 'gt', vim.lsp.buf.type_definition, - { buffer = ev.buf, desc = 'Goto [T]ype definition' }) - end, -}) - --- nvim-cmp & luasnip -local cmp = require 'cmp' -local luasnip = require 'luasnip' - -luasnip.config.setup { - history = true, - updateevents = 'TextChanged,TextChangedI', -} -require 'snippets' - -cmp.setup { - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - completion = { completeopt = 'menu,menuone,noinsert' }, - mapping = cmp.mapping.preset.insert { - ['<CR>'] = cmp.mapping.confirm { select = true }, - ['<C-Space>'] = cmp.mapping.complete(), - ['<C-p>'] = cmp.mapping.scroll_docs(-1), - ['<C-n>'] = cmp.mapping.scroll_docs(1), - ['<C-c>'] = cmp.mapping.abort(), - ['<C-j>'] = cmp.mapping.select_next_item({ - behaviour = cmp.SelectBehavior.Select, - }), - ['<C-k>'] = cmp.mapping.select_prev_item({ - behaviour = cmp.SelectBehavior.Select, - }), - ['<C-l>'] = cmp.mapping(function() - if luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - end - end, {'i', 's'}), - ['<C-h>'] = cmp.mapping(function() - if luasnip.expand_or_locally_jumpable(-1) then - luasnip.expand_or_jump(-1) - end - end, {'i', 's'}), - }, - sources = { - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - { name = 'path' }, - }, - experimental = { - ghost_text = true, - }, -} - -- Pipe require('pipe') diff --git a/.config/nvim/lua/snippets.lua b/.config/nvim/lua/snippets.lua deleted file mode 100644 index 185019c..0000000 --- a/.config/nvim/lua/snippets.lua +++ /dev/null @@ -1,190 +0,0 @@ -local ls = require('luasnip') -local ts_utils = require('nvim-treesitter.ts_utils') -local ts_locals = require('nvim-treesitter.locals') - -local c = ls.choice_node -local d = ls.dynamic_node -local f = ls.function_node -local i = ls.insert_node -local s = ls.s -local sn = ls.snippet_node -local t = ls.text_node -local fmt = require('luasnip.extras.fmt').fmt - -local function same(index) - return f(function(args) - return args[1] - end, { index }) -end - -ls.add_snippets('lua', { - s('req', fmt([[local {} = require('{}')]], { - f(function(name) - local xs = vim.split(name[1][1], '.', { plain = true }) - return xs[#xs] or '' - end, { 1 }), - i(1), - })), -}) - -local function is_ptr(str) - return string.find(str, '*', 1, true) ~= nil -end - -local function is_num(str) - return vim.regex( - '\\v^(' - .. 'u?int(8|16|32|64)?' - .. '|byte' - .. '|complex(64|128)' - .. '|float(32|64)' - .. '|rune' - .. '|uintptr' - .. ')$' - ):match_str(str) ~= nil -end - -local transforms = { - bool = 'false', - string = '""', - error = 'err', - [is_num] = '0', - [is_ptr] = 'nil', -} - -local transform = function(text) - local condition_matches = function(condition, ...) - if type(condition) == 'string' then - return condition == text - else - return condition(...) - end - end - - for condition, result in pairs(transforms) do - if condition_matches(condition, text) then - return t(result) - end - end - - return t(text .. '{}') -end - -local handlers = { - parameter_list = function(node) - local result = {} - - local count = node:named_child_count() - for idx = 0, count - 1 do - local matching_node = node:named_child(idx) - local type_node = matching_node:field('type')[1] - table.insert(result, transform( - vim.treesitter.get_node_text(type_node, 0) - )) - if idx ~= count - 1 then - table.insert(result, t({ ', ' })) - end - end - - return result - end, - - type_identifier = function(node) - local text = vim.treesitter.get_node_text(node, 0) - return { transform(text) } - end, -} - -local function_node_types = { - function_declaration = true, - method_declaration = true, - func_literal = true, -} - -local function go_result_type() - local cursor_node = ts_utils.get_node_at_cursor() - if cursor_node == nil then - print('Unable to find position') - return t('') - end - local scope = ts_locals.get_scope_tree(cursor_node, 0) - - local function_node - for _, v in ipairs(scope) do - if function_node_types[v:type()] then - function_node = v - break - end - end - - if not function_node then - print('Not inside of a function') - return t('') - end - - local query = vim.treesitter.query.parse('go', [[ - [ - (method_declaration result: (_) @id) - (function_declaration result: (_) @id) - (func_literal result: (_) @id) - ] - ]]) - for _, node in query:iter_captures(function_node, 0) do - if handlers[node:type()] then - return handlers[node:type()](node) - end - end -end - -ls.add_snippets('go', { - s( - 'ife', - fmt( - [[ - if err != nil { - return <> - } - ]], - { - d(1, function() - return sn(nil, go_result_type()) - end), - }, - { - delimiters = '<>', - } - ) - ), -}) - - -ls.add_snippets('c', { - s( - 'gu', - fmt( - [[ - #ifndef {}_H - #define {}_H - - {} - - #endif /* !{}_H */ - ]], - { i(1), same(1), i(0), same(1) } - ) - ), -}) - -ls.add_snippets('tex', { - s( - 'scope', - fmt( - [[ - \begin{{{}}} - {} - \end{{{}}} - ]], - { i(1), i(0), same(1) } - ) - ), -}) diff --git a/.config/qalculate/qalculate-gtk.cfg b/.config/qalculate/qalculate-gtk.cfg new file mode 100644 index 0000000..dbaaea7 --- /dev/null +++ b/.config/qalculate/qalculate-gtk.cfg @@ -0,0 +1,164 @@ + +[General] +version=5.9.0 +allow_multiple_instances=-1 +width=800 +always_on_top=0 +enable_tooltips=1 +error_info_shown=1 +save_mode_on_exit=1 +save_definitions_on_exit=1 +save_history_separately=0 +auto_update_exchange_rates=-1 +clear_history_on_exit=0 +history_expression_type=2 +use_custom_history_font=0 +expression_lines=2 +use_custom_expression_font=0 +replace_expression=0 +enable_completion=1 +enable_completion2=1 +completion_min=1 +completion_min2=1 +completion_delay=0 +use_custom_status_font=0 +general_exact=1 +vertical_button_padding=-1 +horizontal_button_padding=-1 +use_custom_keypad_font=0 +latest_button_currency=GBP +use_custom_result_font=0 +custom_result_height=1 +continuous_conversion=1 +set_missing_prefixes=0 +show_bases_keypad=1 +keep_function_dialog_open=0 +default_currency=EUR +ignore_locale=0 +load_global_definitions=1 +local_currency_conversion=1 +use_binary_prefixes=0 +check_version=0 +show_keypad=0 +show_history=1 +history_height=385 +minimal_width=500 +show_stack=1 +show_convert=0 +persistent_keypad=1 +minimal_mode=0 +rpn_keys=1 +expression_pos=0 +display_expression_status=1 +parsed_expression_in_resultview=0 +calculate_as_you_type_history_delay=2000 +use_unicode_signs=1 +lower_case_numbers=1 +duodecimal_symbols=0 +exp_display=3 +imaginary_j=0 +base_display=1 +binary_bits=64 +twos_complement=1 +hexadecimal_twos_complement=0 +twos_complement_input=0 +hexadecimal_twos_complement_input=0 +binary_bits=64 +spell_out_logical_operators=0 +caret_as_xor=0 +close_with_esc=-1 +digit_grouping=2 +copy_ascii=0 +copy_ascii_without_units=0 +decimal_comma=-1 +dot_as_separator=-1 +comma_as_separator=0 +use_custom_application_font=0 +multiplication_sign=2 +division_sign=1 +expression_history=485 +expression_history=5489+528 +expression_history=123552 +expression_history=123,4562 +expression_history=12332154878,321231545231553 +expression_history=123+456 +expression_history=123,45×8 +expression_history=321231,65456 +recent_functions= +recent_variables= +recent_units= + +[Mode] +min_deci=0 +use_min_deci=0 +max_deci=2 +use_max_deci=0 +precision=10 +interval_arithmetic=1 +interval_display=0 +min_exp=-1 +negative_exponents=0 +sort_minus_last=1 +number_fraction_format=0 +complex_number_form=0 +use_prefixes=1 +use_prefixes_for_all_units=0 +use_prefixes_for_currencies=0 +abbreviate_names=1 +all_prefixes_enabled=0 +denominator_prefix_enabled=1 +place_units_separately=1 +auto_post_conversion=3 +mixed_units_conversion=3 +number_base=10 +number_base_expression=10 +read_precision=0 +assume_denominators_nonzero=1 +warn_about_denominators_assumed_nonzero=1 +structuring=1 +angle_unit=1 +functions_enabled=1 +variables_enabled=1 +calculate_functions=1 +calculate_variables=1 +variable_units_enabled=1 +sync_units=1 +unknownvariables_enabled=0 +units_enabled=1 +allow_complex=1 +allow_infinite=1 +indicate_infinite_series=-1 +show_ending_zeroes=1 +rounding_mode=0 +approximation=1 +interval_calculation=1 +concise_uncertainty_input=0 +calculate_as_you_type=1 +in_rpn_mode=0 +chain_mode=0 +limit_implicit_multiplication=0 +parsing_mode=0 +simplified_percentage=-1 +spacious=1 +excessive_parenthesis=0 +visible_keypad=5 +short_multiplication=1 +default_assumption_type=4 +default_assumption_sign=0 + +[Plotting] +plot_legend_placement=2 +plot_style=0 +plot_smoothing=0 +plot_display_grid=1 +plot_full_border=0 +plot_min=0 +plot_max=10 +plot_step=1 +plot_sampling_rate=1001 +plot_use_sampling_rate=1 +plot_variable=x +plot_rows=0 +plot_type=0 +plot_color=1 +plot_linewidth=2 diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs index 94a36e3..3e5d406 100644 --- a/.config/user-dirs.dirs +++ b/.config/user-dirs.dirs @@ -11,5 +11,5 @@ XDG_TEMPLATES_DIR="$HOME/" XDG_PUBLICSHARE_DIR="$HOME/" XDG_DOCUMENTS_DIR="$HOME/doc" XDG_MUSIC_DIR="$HOME/media/mus" -XDG_PICTURES_DIR="$HOME/media/gfx" +XDG_PICTURES_DIR="$HOME/media/img" XDG_VIDEOS_DIR="$HOME/media/vid" |