summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/emacs/modules/mm-editing.el1
-rw-r--r--.config/fuzzel/fuzzel.ini4
-rw-r--r--.config/git/config4
-rw-r--r--.config/htop/htoprc26
-rw-r--r--.config/iosevka-smooth/private-build-plans.toml93
-rw-r--r--.config/niri/config.kdl330
-rw-r--r--.config/nvim/init.lua187
-rw-r--r--.config/nvim/lua/snippets.lua190
-rw-r--r--.config/qalculate/qalculate-gtk.cfg164
-rw-r--r--.config/user-dirs.dirs2
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"