diff --git a/.dotter/global.toml b/.dotter/global.toml index f7471ab..66a80ff 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -25,6 +25,7 @@ [niri] depends = [ "wm", "terminals" ] [niri.files] + "configs/hypr/base/hypridle.conf" = "~/.config/hypr/hypridle.conf" "configs/niri/base" = "~/.config/niri" "configs/noctalia" = "~/.config/noctalia" "configs/systemd/user/niri.service.wants" = "~/.config/systemd/user/niri.service.wants" @@ -59,11 +60,13 @@ depends = [ "cli-utils", "terminals" ] [dev.files] - "configs/git" = "~/.config/git" - "configs/lazygit" = "~/.config/lazygit" - "configs/mise" = "~/.config/mise" - "configs/nvim" = "~/.config/nvim" - "configs/zed" = "~/.config/zed" + "configs/containers" = "~/.config/containers" + "configs/git" = "~/.config/git" + "configs/lazygit" = "~/.config/lazygit" + "configs/mise" = "~/.config/mise" + "configs/nvim" = "~/.config/nvim" + "configs/rumdl" = "~/.config/rumdl" + "configs/zed" = "~/.config/zed" [nvim-min.files] "configs/nvim-min" = "~/.config/nvim" diff --git a/configs/containers/systemd/dev-databases.pod b/configs/containers/systemd/dev-databases.pod index c11ff1b..f547b3e 100644 --- a/configs/containers/systemd/dev-databases.pod +++ b/configs/containers/systemd/dev-databases.pod @@ -1,4 +1,3 @@ [Pod] PodName=databases -PublishPort=9090:3000 PublishPort=5432:5432 diff --git a/configs/containers/systemd/dev-dbui.container b/configs/containers/systemd/dev-dbui.container index 6a8b0f1..259e832 100644 --- a/configs/containers/systemd/dev-dbui.container +++ b/configs/containers/systemd/dev-dbui.container @@ -1,14 +1,11 @@ [Container] -Image=docker.io/dbgate/dbgate +Image=docker.io/adminneoorg/adminneo AutoUpdate=registry -Pod=dev-databases.pod -Environment=CONNECTIONS=POSTGRES -Environment=LABEL_POSTGRES="Localhost Postgres" -Environment=ENGINE_POSTGRES=postgres@dbgate-plugin-postgres -Environment=SERVER_POSTGRES=localhost -Environment=PORT_POSTGRES=5432 -Environment=USER_POSTGRES=postgres -Environment=PASSWORD_POSTGRES=1234 - -[Service] -ExecStartPost=/usr/bin/xdg-open http://localhost:9090 +Network=host +Environment=NEO_THEME=default +Environment=NEO_COLOR_VARIANT=green +Environment=NEO_JSON_VALUES_DETECTION=true +Environment=NEO_JSON_VALUES_AUTO_FORMAT=true +Environment=NEO_NAVIGATION_MODE=dual +Environment=NEO_PREFER_SELECTION=true +Environment=NEO_RELATION_LINKS=true diff --git a/configs/fish/functions/envsource.fish b/configs/fish/functions/envsource.fish index af570e4..bc66566 100644 --- a/configs/fish/functions/envsource.fish +++ b/configs/fish/functions/envsource.fish @@ -1,5 +1,5 @@ function envsource - for line in (cat $argv | grep -v '^#') + for line in (cat $argv[1] | grep -v -e '^\([[:space:]]\|#.*\)*$') set item (string split -m 1 '=' $line) set -gx $item[1] $item[2] echo "Exported key $item[1]" diff --git a/configs/fish/functions/ssh-tunnel.fish b/configs/fish/functions/ssh-tunnel.fish new file mode 100644 index 0000000..fca446c --- /dev/null +++ b/configs/fish/functions/ssh-tunnel.fish @@ -0,0 +1,28 @@ +function ssh-tunnel + set -l label "Select SSH tunnel to activate:" + + set -l tunnel (fd . ~/.ssh/tunnels.d/ | fzf -d / --with-nth=6 --accept-nth=6 --nth=6 --preview='bat {}' --input-label=foo --input-label-pos=bottom | cut -d "." -f 1) + + if test -z $tunnel + return + end + + envsource "$HOME/.ssh/tunnels.d/$tunnel.conf" + + echo "Activating connection $tunnel..." + + if not systemctl --user is-active "database-ssh-tunnel@$tunnel.service" -q + systemctl --user start "database-ssh-tunnel@$tunnel.service" + end + + if test (string lower $DB_START_EXPLORER) = "true" + echo "Opening Databse in browser, password will be copied to the clipboard..." + + if not systemctl --user is-active "dev-dbui.service" -q + systemctl --user start "dev-dbui.service" + end + + wl-copy "$DB_PASSWORD" + xdg-open "http://localhost:8080?$DB_DRIVER=$TUNNEL_LOCAL_ADDRESS:$TUNNEL_LOCAL_PORT&username=$DB_USER&db=$DB_NAME&ns=public" + end +end diff --git a/configs/just/dots.just b/configs/just/dots.just index 9ca0f26..311be21 100644 --- a/configs/just/dots.just +++ b/configs/just/dots.just @@ -2,3 +2,9 @@ set working-directory := "{{ dotter.current_dir }}" deploy: dotter deploy + +enable_tailscale: + sudo tailscale set --operator=$USER + tailscale configure systray --enable-startup=systemd + systemctl --user daemon-reload + systemctl --user enable --now tailscale-systray diff --git a/configs/noctalia/pam/password.conf b/configs/noctalia/pam/password.conf index 68fc325..a659b71 100644 --- a/configs/noctalia/pam/password.conf +++ b/configs/noctalia/pam/password.conf @@ -1,3 +1,3 @@ -#auth sufficient pam_fprintd.so max-tries=1 -# only uncomment this if you have a fingerprint reader +auth sufficient pam_fprintd.so timeout=-1 +auth sufficient /run/current-system/sw/lib/security/pam_fprintd.so timeout=-1 # for NixOS auth required pam_unix.so diff --git a/configs/noctalia/settings.json b/configs/noctalia/settings.json index a3edb4f..3cf2b80 100644 --- a/configs/noctalia/settings.json +++ b/configs/noctalia/settings.json @@ -6,7 +6,8 @@ "customLaunchPrefixEnabled": false, "enableClipPreview": true, "enableClipboardHistory": true, - "iconMode": "tabler", + "enableSettingsSearch": true, + "iconMode": "native", "ignoreMouseInput": false, "pinnedApps": [ ], @@ -25,6 +26,7 @@ ], "preferredPlayer": "", "visualizerType": "mirrored", + "volumeFeedback": false, "volumeOverdrive": false, "volumeStep": 5 }, @@ -34,12 +36,15 @@ "density": "default", "exclusive": true, "floating": true, + "hideOnOverview": false, "marginHorizontal": 3, "marginVertical": 5, "monitors": [ ], "outerCorners": true, "position": "top", + "screenOverrides": [ + ], "showCapsule": true, "showOutline": false, "useSeparateOpacity": true, @@ -107,6 +112,7 @@ "hidePassive": false, "id": "Tray", "pinned": [ + "systray_17288" ] }, { @@ -114,9 +120,14 @@ }, { "hideWhenZero": false, + "hideWhenZeroUnread": false, "id": "NotificationHistory", "showUnreadBadge": true }, + { + "displayMode": "onhover", + "id": "Network" + }, { "displayMode": "onhover", "id": "Volume", @@ -125,6 +136,7 @@ { "deviceNativePath": "", "displayMode": "alwaysShow", + "hideIfIdle": false, "hideIfNotDetected": true, "id": "Battery", "showNoctaliaPerformance": true, @@ -161,18 +173,15 @@ { "enabled": true, "id": "weather-card" - }, - { - "enabled": false, - "id": "timer-card" } ] }, "colorSchemes": { "darkMode": true, + "generationMethod": "tonal-spot", "manualSunrise": "06:30", "manualSunset": "18:30", - "matugenSchemeType": "scheme-fruit-salad", + "monitorForColors": "", "predefinedScheme": "Catppuccin Macchiato Teal", "schedulingMode": "off", "useWallpaperColors": false @@ -268,11 +277,13 @@ "boxRadiusRatio": 1, "compactLockScreen": false, "dimmerOpacity": 0.25, + "enableLockScreenCountdown": true, "enableShadows": true, "forceBlackScreenCorners": false, "iRadiusRatio": 1, "language": "", "lockOnSuspend": true, + "lockScreenCountdownDuration": 5000, "radiusRatio": 1, "scaleRatio": 1, "screenRadiusRatio": 1, @@ -282,7 +293,8 @@ "showChangelogOnStartup": true, "showHibernateOnLockScreen": false, "showScreenCorners": false, - "showSessionButtonsOnLockScreen": true + "showSessionButtonsOnLockScreen": true, + "telemetryEnabled": false }, "hooks": { "darkModeChange": "", @@ -291,6 +303,8 @@ "performanceModeEnabled": "", "screenLock": "", "screenUnlock": "", + "session": "", + "startup": "", "wallpaperChange": "" }, "location": { @@ -312,7 +326,7 @@ "bluetoothHideUnnamedDevices": false, "bluetoothRssiPollIntervalMs": 10000, "bluetoothRssiPollingEnabled": false, - "wifiDetailsViewMode": "grid", + "wifiDetailsViewMode": "list", "wifiEnabled": true }, "nightLight": { @@ -328,6 +342,7 @@ "backgroundOpacity": 1, "criticalUrgencyDuration": 15, "enableKeyboardLayoutToast": true, + "enableMediaToast": false, "enabled": true, "location": "top", "lowUrgencyDuration": 3, @@ -413,7 +428,7 @@ "showHeader": true, "showNumberLabels": true }, - "settingsVersion": 39, + "settingsVersion": 44, "systemMonitor": { "cpuCriticalThreshold": 90, "cpuPollingInterval": 3000, @@ -432,6 +447,8 @@ "memPollingInterval": 3000, "memWarningThreshold": 80, "networkPollingInterval": 3000, + "swapCriticalThreshold": 90, + "swapWarningThreshold": 80, "tempCriticalThreshold": 90, "tempPollingInterval": 3000, "tempWarningThreshold": 80, @@ -439,32 +456,9 @@ "warningColor": "" }, "templates": { - "alacritty": false, - "cava": false, - "code": false, - "discord": false, - "emacs": false, - "enableUserTemplates": false, - "foot": false, - "fuzzel": false, - "ghostty": false, - "gtk": false, - "helix": false, - "hyprland": false, - "kcolorscheme": false, - "kitty": false, - "mango": false, - "niri": false, - "pywalfox": false, - "qt": false, - "spicetify": false, - "telegram": false, - "vicinae": false, - "walker": false, - "wezterm": false, - "yazi": false, - "zed": false, - "zenBrowser": false + "activeTemplates": [ + ], + "enableUserTheming": false }, "ui": { "bluetoothDetailsViewMode": "grid", @@ -482,6 +476,7 @@ "wifiDetailsViewMode": "grid" }, "wallpaper": { + "automationEnabled": true, "directory": "/home/aleidk/Pictures/Wallpapers", "enableMultiMonitorDirectories": false, "enabled": true, @@ -492,16 +487,16 @@ ], "overviewEnabled": true, "panelPosition": "center", - "randomEnabled": true, "randomIntervalSec": 900, - "recursiveSearch": true, "setWallpaperOnAllMonitors": true, + "showHiddenFiles": false, "solidColor": "#1a1a2e", "transitionDuration": 1500, "transitionEdgeSmoothness": 0.05, "transitionType": "random", "useSolidColor": false, "useWallhaven": false, + "viewMode": "recursive", "wallhavenApiKey": "", "wallhavenCategories": "111", "wallhavenOrder": "desc", diff --git a/configs/nvim/lazy-lock.json b/configs/nvim/lazy-lock.json index 93288d1..181005e 100644 --- a/configs/nvim/lazy-lock.json +++ b/configs/nvim/lazy-lock.json @@ -3,7 +3,7 @@ "blink.compat": { "branch": "main", "commit": "08943fdf2eb00432d6205db6d0239434135416bd" }, "catppuccin": { "branch": "main", "commit": "faf15ab0201b564b6368ffa47b56feefc92ce3f4" }, "comment-box.nvim": { "branch": "main", "commit": "06bb771690bc9df0763d14769b779062d8f12bc5" }, - "conform.nvim": { "branch": "master", "commit": "a203480a350b03092e473bf3001733d547160a73" }, + "conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" }, "flatten.nvim": { "branch": "main", "commit": "72527798e75b5e34757491947c2cb853ce21dc0e" }, "friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" }, "fzf-lua": { "branch": "main", "commit": "758173f499d15410ecb50c5519a41b27c33e645d" }, @@ -11,7 +11,7 @@ "hardtime.nvim": { "branch": "main", "commit": "3541ad24faff78274669eceaf130502eb7f1261a" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "b1d9a914b02ba5660f1e272a03314b31d4576fe2" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "c953789db7fd28eafe5eb5659846d34b5024b3cc" }, "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, "mini.nvim": { "branch": "main", "commit": "94cae4660a8b2d95dbbd56e1fbc6fcfa2716d152" }, "neogen": { "branch": "main", "commit": "dc50715c009f89b8111197fd2f282f6042daa7ea" }, @@ -19,7 +19,7 @@ "nvim-dap": { "branch": "master", "commit": "5dd4d50f2e6a2eaf9e57fad023d294ef371bda35" }, "nvim-dap-view": { "branch": "main", "commit": "390dae6bf67f3342ebb481159932ef0fe54822ba" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" }, - "nvim-lint": { "branch": "master", "commit": "6b46370d02cd001509a765591a3ffc481b538794" }, + "nvim-lint": { "branch": "master", "commit": "b3292aac30b935d4cccf0904053d1c7930df8a20" }, "nvim-lspconfig": { "branch": "master", "commit": "c8503e63c6afab3ed34b49865a4a4edbb1ebf4a8" }, "nvim-treesitter": { "branch": "main", "commit": "802195d8f1980db25a7a39a55f9a25df21756c73" }, "nvim-treesitter-context": { "branch": "master", "commit": "66a9b5fa9e806918b5fe3dba00c6cce7e230abd2" }, diff --git a/configs/nvim/lua/aleidk/options.lua b/configs/nvim/lua/aleidk/options.lua index cf76fb6..d3fb9be 100644 --- a/configs/nvim/lua/aleidk/options.lua +++ b/configs/nvim/lua/aleidk/options.lua @@ -161,12 +161,18 @@ vim.lsp.config("rust-analyzer", { }, }, }) +vim.lsp.config("rumdl", { + cmd = { "rumdl", "server" }, + filetypes = { "markdown" }, + root_markers = { ".git" }, +}) vim.g.markdown_fenced_languages = { "ts=typescript", } vim.lsp.enable("denols") +vim.lsp.enable("phpactor") vim.lsp.inlay_hint.enable(true) diff --git a/configs/nvim/lua/aleidk/plugins/formatter.lua b/configs/nvim/lua/aleidk/plugins/formatter.lua index f7add11..2679748 100644 --- a/configs/nvim/lua/aleidk/plugins/formatter.lua +++ b/configs/nvim/lua/aleidk/plugins/formatter.lua @@ -23,7 +23,7 @@ return { json = { "biome" }, jsonc = { "biome" }, lua = { "stylua" }, - markdown = { "markdownlint" }, + markdown = { "rumdl" }, php = { "pint" }, python = { "ruff_format", "ruff_organize_imports" }, rust = { "rustfmt" }, diff --git a/configs/nvim/lua/aleidk/plugins/linters.lua b/configs/nvim/lua/aleidk/plugins/linters.lua index f73dc84..d55af16 100644 --- a/configs/nvim/lua/aleidk/plugins/linters.lua +++ b/configs/nvim/lua/aleidk/plugins/linters.lua @@ -1,30 +1,30 @@ return { - "mfussenegger/nvim-lint", - event = "VeryLazy", - config = function() - local lint = require("lint") + "mfussenegger/nvim-lint", + event = "VeryLazy", + config = function() + local lint = require("lint") - lint.linters.gitlint.stdin = true - lint.linters.gitlint.args = { "--contrib", "contrib-title-conventional-commits", "--msg-filename", "-" } + lint.linters.gitlint.stdin = true + lint.linters.gitlint.args = { "--contrib", "contrib-title-conventional-commits", "--msg-filename", "-" } - lint.linters_by_ft = { - -- astro = { "eslint_d" }, - kotlin = { "ktlint" }, - python = { "ruff" }, - sh = { "shellcheck" }, - NeogitCommitMessage = { "gitlint" }, - gitcommit = { "gitlint" }, - markdown = { "markdownlint" }, - javascript = { "biomejs" }, - typescript = { "biomejs" }, - javascriptreact = { "biomejs" }, - typescriptreact = { "biomejs" }, - } + lint.linters_by_ft = { + -- astro = { "eslint_d" }, + kotlin = { "ktlint" }, + python = { "ruff" }, + sh = { "shellcheck" }, + NeogitCommitMessage = { "gitlint" }, + gitcommit = { "gitlint" }, + -- markdown = { "rumdl" }, runned as LSP + javascript = { "biomejs" }, + typescript = { "biomejs" }, + javascriptreact = { "biomejs" }, + typescriptreact = { "biomejs" }, + } - vim.api.nvim_create_autocmd({ "BufWritePost" }, { - callback = function() - require("lint").try_lint() - end, - }) - end, + vim.api.nvim_create_autocmd({ "BufWritePost" }, { + callback = function() + require("lint").try_lint() + end, + }) + end, } diff --git a/configs/nvim/lua/aleidk/plugins/mini.lua b/configs/nvim/lua/aleidk/plugins/mini.lua index ca46956..32e5c93 100644 --- a/configs/nvim/lua/aleidk/plugins/mini.lua +++ b/configs/nvim/lua/aleidk/plugins/mini.lua @@ -1,248 +1,246 @@ return { - 'echasnovski/mini.nvim', - version = '*', - dependencies = { - "rafamadriz/friendly-snippets", - }, - config = function() - require('mini.icons').setup() + "echasnovski/mini.nvim", + version = "*", + dependencies = { + "rafamadriz/friendly-snippets", + }, + config = function() + require("mini.icons").setup() - vim.fn.sign_define("DapBreakpoint", { text = " ", texthl = "DapBreakpoint" }) - vim.fn.sign_define("DapBreakpointCondition", { text = " ", texthl = "DapBreakpointCondition" }) - vim.fn.sign_define("DapBreakpointRejected", { text = " ", texthl = "DapBreakpointRejected" }) - vim.fn.sign_define("DapLogPoint", { text = ".>", texthl = "DapLogPoint" }) - vim.fn.sign_define("DapStopped", { text = "󰁕 ", texthl = "DapStopped", numhl = "debugPC" }) + vim.fn.sign_define("DapBreakpoint", { text = " ", texthl = "DapBreakpoint" }) + vim.fn.sign_define("DapBreakpointCondition", { text = " ", texthl = "DapBreakpointCondition" }) + vim.fn.sign_define("DapBreakpointRejected", { text = " ", texthl = "DapBreakpointRejected" }) + vim.fn.sign_define("DapLogPoint", { text = ".>", texthl = "DapLogPoint" }) + vim.fn.sign_define("DapStopped", { text = "󰁕 ", texthl = "DapStopped", numhl = "debugPC" }) + require("mini.bracketed").setup({ + diagnostic = { options = { severity = vim.diagnostic.severity.ERROR } }, + }) + require("mini.ai").setup({}) + require("mini.cursorword").setup() -- Highlight word under cursor + require("mini.extra").setup() + require("mini.jump").setup({ + mappings = { + repeat_jump = "", + }, + }) -- Extend f, F, t, T + require("mini.jump2d").setup({ + spotter = require("mini.jump2d").gen_pattern_spotter("[^%s%p]+", "start"), + view = { + dim = true, + n_steps_ahead = 2, + }, + allowed_lines = { + blank = false, + cursor_at = false, + }, + }) + require("mini.surround").setup() + require("mini.operators").setup() + require("mini.pairs").setup({ + modes = { command = true }, + }) - require('mini.bracketed').setup({ - diagnostic = { options = { severity = vim.diagnostic.severity.ERROR } }, - }) - require("mini.ai").setup({}) - require('mini.cursorword').setup() -- Highlight word under cursor - require('mini.extra').setup() - require('mini.jump').setup({ - mappings = { - repeat_jump = "" - } - }) -- Extend f, F, t, T - require('mini.jump2d').setup( - { - spotter = require('mini.jump2d').gen_pattern_spotter('[^%s%p]+', 'start'), - view = { - dim = true, - n_steps_ahead = 2 - }, - allowed_lines = { - blank = false, - cursor_at = false - }, - } - ) - require('mini.surround').setup() - require('mini.operators').setup() - require('mini.pairs').setup({ - modes = { command = true } - }) + require("mini.splitjoin").setup() + require("mini.align").setup({}) + -- require('mini.animate').setup() + require("mini.notify").setup() + vim.notify = require("mini.notify").make_notify() + vim.keymap.set( + "n", + "un", + require("mini.notify").show_history, + { desc = "Show notifications", silent = true } + ) + require("mini.statusline").setup() + require("mini.diff").setup({ view = { style = "sign" } }) - require('mini.splitjoin').setup() - require("mini.align").setup({}) - -- require('mini.animate').setup() - require('mini.notify').setup() - vim.notify = require('mini.notify').make_notify() - vim.keymap.set('n', 'un', require('mini.notify').show_history, { desc = 'Show notifications', silent = true }) - require('mini.statusline').setup() - require('mini.diff').setup({ view = { style = 'sign' } }) + require("mini.git").setup({}) - require('mini.git').setup({}) + vim.keymap.set( + { "n", "x" }, + "gs", + "lua MiniGit.show_at_cursor()", + { desc = "Show at cursor", silent = true } + ) - vim.keymap.set({ 'n', 'x' }, 'gs', 'lua MiniGit.show_at_cursor()', - { desc = 'Show at cursor', silent = true }) + local starter = require("mini.starter") + starter.setup({ + footer = "", + evaluate_single = true, + items = { + starter.sections.recent_files(10, true), + starter.sections.sessions(5, true), + starter.sections.pick(), + starter.sections.builtin_actions(), + }, + content_hooks = { + starter.gen_hook.adding_bullet(), + starter.gen_hook.indexing("all", { "Builtin actions" }), + starter.gen_hook.aligning("center", "center"), + }, + }) - local starter = require('mini.starter') - starter.setup({ - footer = '', - evaluate_single = true, - items = { - starter.sections.recent_files(10, true), - starter.sections.sessions(5, true), - starter.sections.pick(), - starter.sections.builtin_actions(), - }, - content_hooks = { - starter.gen_hook.adding_bullet(), - starter.gen_hook.indexing('all', { 'Builtin actions' }), - starter.gen_hook.aligning("center", "center"), - }, - }) + require("mini.indentscope").setup({ + draw = { + animation = require("mini.indentscope").gen_animation.none(), + }, + }) - require('mini.indentscope').setup({ - draw = { - animation = require('mini.indentscope').gen_animation.none(), - }, - }) + require("mini.move").setup({ + mappings = { + -- Move visual selection in Visual mode + left = "H", + right = "L", + down = "J", + up = "K", - require('mini.move').setup({ - mappings = { - -- Move visual selection in Visual mode - left = 'H', - right = 'L', - down = 'J', - up = 'K', + -- Move current line in Normal mode + line_left = "", + line_right = "", + line_down = "", + line_up = "", + }, + }) + require("mini.comment").setup({ + options = { + -- Whether to ignore blank lines when commenting + ignore_blank_line = true, + -- Whether to ignore blank lines in actions and textobject + start_of_line = true, + }, + }) - -- Move current line in Normal mode - line_left = '', - line_right = '', - line_down = '', - line_up = '', - }, - }) - require('mini.comment').setup({ - options = { - -- Whether to ignore blank lines when commenting - ignore_blank_line = true, - -- Whether to ignore blank lines in actions and textobject - start_of_line = true, - }, - }) + local gen_loader = require("mini.snippets").gen_loader + require("mini.snippets").setup({ + snippets = { + -- Load custom file with global snippets first (adjust for Windows) + gen_loader.from_file("~/.config/nvim-unstable/snippets/global.json"), - local gen_loader = require('mini.snippets').gen_loader - require('mini.snippets').setup({ - snippets = { - -- Load custom file with global snippets first (adjust for Windows) - gen_loader.from_file('~/.config/nvim-unstable/snippets/global.json'), + -- Load snippets based on current language by reading files from + -- "snippets/" subdirectories from 'runtimepath' directories. + gen_loader.from_lang(), + }, + }) - -- Load snippets based on current language by reading files from - -- "snippets/" subdirectories from 'runtimepath' directories. - gen_loader.from_lang(), - }, - }) + local miniclue = require("mini.clue") + miniclue.setup({ + triggers = { + -- Leader triggers + { mode = "n", keys = "" }, + { mode = "v", keys = "" }, + { mode = "x", keys = "" }, - local miniclue = require("mini.clue") - miniclue.setup({ - triggers = { - -- Leader triggers - { mode = "n", keys = "" }, - { mode = "v", keys = "" }, - { mode = "x", keys = "" }, + -- Built-in completion + { mode = "i", keys = "" }, - -- Built-in completion - { mode = "i", keys = "" }, + -- `g` key + { mode = "n", keys = "g" }, + { mode = "x", keys = "g" }, - -- `g` key - { mode = "n", keys = "g" }, - { mode = "x", keys = "g" }, + -- Marks + { mode = "n", keys = "'" }, + { mode = "n", keys = "`" }, + { mode = "x", keys = "'" }, + { mode = "x", keys = "`" }, - -- Marks - { mode = "n", keys = "'" }, - { mode = "n", keys = "`" }, - { mode = "x", keys = "'" }, - { mode = "x", keys = "`" }, + -- Registers + { mode = "n", keys = '"' }, + { mode = "x", keys = '"' }, + { mode = "i", keys = "" }, + { mode = "c", keys = "" }, - -- Registers - { mode = "n", keys = '"' }, - { mode = "x", keys = '"' }, - { mode = "i", keys = "" }, - { mode = "c", keys = "" }, + -- Window commands + { mode = "n", keys = "" }, - -- Window commands - { mode = "n", keys = "" }, + -- `z` key + { mode = "n", keys = "z" }, + { mode = "x", keys = "z" }, + }, - -- `z` key - { mode = "n", keys = "z" }, - { mode = "x", keys = "z" }, - }, + -- Add a "postkeys" value to activate those keys after others + clues = { + miniclue.gen_clues.builtin_completion(), + miniclue.gen_clues.g(), + miniclue.gen_clues.marks(), + miniclue.gen_clues.registers(), + miniclue.gen_clues.windows(), + miniclue.gen_clues.z(), - -- Add a "postkeys" value to activate those keys after others - clues = { - miniclue.gen_clues.builtin_completion(), - miniclue.gen_clues.g(), - miniclue.gen_clues.marks(), - miniclue.gen_clues.registers(), - miniclue.gen_clues.windows(), - miniclue.gen_clues.z(), + { mode = "n", keys = "", desc = "+Bookmarks" }, + { mode = "n", keys = "n", postkeys = "" }, + { mode = "n", keys = "N", postkeys = "" }, + { mode = "n", keys = "b", desc = "+Buffers" }, + { mode = "n", keys = "bh", postkeys = "b" }, + { mode = "n", keys = "bl", postkeys = "b" }, + { mode = "n", keys = "d", desc = "+Debugger" }, + { mode = "n", keys = "dh", postkeys = "d" }, + { mode = "n", keys = "dJ", postkeys = "d" }, + { mode = "n", keys = "dj", postkeys = "d" }, + { mode = "n", keys = "dk", postkeys = "d" }, + { mode = "n", keys = "dl", postkeys = "d" }, + { mode = "n", keys = "f", desc = "+Find" }, + { mode = "n", keys = "g", desc = "+Git" }, + { mode = "n", keys = "l", desc = "+LSP" }, + { mode = "n", keys = "u", desc = "+UI & Config" }, + { mode = "n", keys = "p", desc = "+Run stuff" }, + { mode = "n", keys = "z", desc = "+ZK" }, + { mode = "v", keys = "z", desc = "+ZK" }, + { mode = "n", keys = "g?", desc = "+Print Debug" }, + }, - { mode = "n", keys = "", desc = "+Bookmarks" }, - { mode = "n", keys = "n", postkeys = "" }, - { mode = "n", keys = "N", postkeys = "" }, - { mode = "n", keys = "b", desc = "+Buffers" }, - { mode = "n", keys = "bh", postkeys = "b" }, - { mode = "n", keys = "bl", postkeys = "b" }, - { mode = "n", keys = "d", desc = "+Debugger" }, - { mode = "n", keys = "dh", postkeys = "d" }, - { mode = "n", keys = "dJ", postkeys = "d" }, - { mode = "n", keys = "dj", postkeys = "d" }, - { mode = "n", keys = "dk", postkeys = "d" }, - { mode = "n", keys = "dl", postkeys = "d" }, - { mode = "n", keys = "f", desc = "+Find" }, - { mode = "n", keys = "g", desc = "+Git" }, - { mode = "n", keys = "l", desc = "+LSP" }, - { mode = "n", keys = "r", desc = "+Replace" }, - { mode = "n", keys = "u", desc = "+UI & Config" }, - { mode = "n", keys = "w", desc = "+Workspace" }, - { mode = "n", keys = "p", desc = "+Run stuff" }, - { mode = "n", keys = "z", desc = "+ZK" }, - { mode = "v", keys = "z", desc = "+ZK" }, - { mode = "v", keys = "a", desc = "+AI" }, - { mode = "n", keys = "a", desc = "+AI" }, - { mode = "n", keys = "g?", desc = "+Print Debug" }, - }, + -- Clue window settings + window = { + -- Floating window config + config = { + width = "auto", + }, + -- Delay before showing clue window + delay = 200, + -- Keys to scroll inside the clue window + scroll_down = "", + scroll_up = "", + }, + }) - -- Clue window settings - window = { - -- Floating window config - config = { - width = "auto", - }, - -- Delay before showing clue window - delay = 200, - -- Keys to scroll inside the clue window - scroll_down = "", - scroll_up = "", - }, - }) + local hipatterns = require("mini.hipatterns") + hipatterns.setup({ + highlighters = { + -- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE' + fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" }, + hack = { pattern = "%f[%w]()HACK()%f[%W]", group = "MiniHipatternsHack" }, + todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" }, + note = { pattern = "%f[%w]()NOTE()%f[%W]", group = "MiniHipatternsNote" }, - local hipatterns = require('mini.hipatterns') - hipatterns.setup({ - highlighters = { - -- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE' - fixme = { pattern = '%f[%w]()FIXME()%f[%W]', group = 'MiniHipatternsFixme' }, - hack = { pattern = '%f[%w]()HACK()%f[%W]', group = 'MiniHipatternsHack' }, - todo = { pattern = '%f[%w]()TODO()%f[%W]', group = 'MiniHipatternsTodo' }, - note = { pattern = '%f[%w]()NOTE()%f[%W]', group = 'MiniHipatternsNote' }, + -- Highlight hex color strings (`#rrggbb`) using that color + hex_color = hipatterns.gen_highlighter.hex_color(), + }, + }) - -- Highlight hex color strings (`#rrggbb`) using that color - hex_color = hipatterns.gen_highlighter.hex_color(), - }, - }) + require("mini.sessions").setup({ + autowrite = false, + }) + vim.keymap.set("n", "us", function() + local default_name = require("mini.sessions").get_latest() or "Session.vim" + vim.ui.input({ prompt = "Session name: ", default = default_name }, function(input) + if input == nil then return end + require("mini.sessions").write(input) + end) + end, { desc = "Save session", silent = true }) + vim.keymap.set("n", "uS", function() + require("mini.sessions").read() + end, { desc = "Load session (latest)", silent = true }) - require('mini.sessions').setup({ - autowrite = false - }) - vim.keymap.set('n', 'us', function() - local default_name = require('mini.sessions').get_latest() or "Session.vim" - vim.ui.input({ prompt = "Session name: ", default = default_name }, function(input) - if input == nil then - return - end - require('mini.sessions').write(input) - end) - end, - { desc = 'Save session', silent = true }) - vim.keymap.set('n', 'uS', function() require('mini.sessions').read() end, - { desc = 'Load session (latest)', silent = true }) + vim.api.nvim_create_user_command("SessionSelect", function() + require("mini.sessions").select("read") + end, {}) - vim.api.nvim_create_user_command("SessionSelect", function() - require('mini.sessions').select('read') - end, {}) + vim.api.nvim_create_user_command("SessionDelete", function() + require("mini.sessions").select("delete") + end, {}) - vim.api.nvim_create_user_command("SessionDelete", function() - require('mini.sessions').select('delete') - end, {}) - - - vim.keymap.set('n', 'uz', function() - require('mini.misc').zoom() - end, - { desc = 'Toggle zoom', silent = true }) - end + vim.keymap.set("n", "uz", function() + require("mini.misc").zoom() + end, { desc = "Toggle zoom", silent = true }) + end, } diff --git a/configs/nvim/lua/aleidk/plugins/treesitter.lua b/configs/nvim/lua/aleidk/plugins/treesitter.lua index 012ccd0..7ca4043 100644 --- a/configs/nvim/lua/aleidk/plugins/treesitter.lua +++ b/configs/nvim/lua/aleidk/plugins/treesitter.lua @@ -42,11 +42,17 @@ return { }) vim.keymap.set({ "n", "x", "o" }, "]]", function() - ts_obj.move.goto_next({ "@block.outer", "@function.outer", "@class.outer" }, "textobjects") + require("nvim-treesitter-textobjects.move").goto_next( + { "@block.outer", "@function.outer", "@class.outer" }, + "textobjects" + ) end) vim.keymap.set({ "n", "x", "o" }, "[[", function() - ts_obj.move.goto_previous({ "@block.outer", "@function.outer", "@class.outer" }, "textobjects") + require("nvim-treesitter-textobjects.move").goto_previous( + { "@block.outer", "@function.outer", "@class.outer" }, + "textobjects" + ) end) local ts_repeat_move = require("nvim-treesitter-textobjects.repeatable_move") diff --git a/configs/rumdl/rumdl.toml b/configs/rumdl/rumdl.toml new file mode 100644 index 0000000..8e90d60 --- /dev/null +++ b/configs/rumdl/rumdl.toml @@ -0,0 +1,177 @@ +[global] + disable = [ ] + enable = [ ] + exclude = [ ] + flavor = "gfm" + include = [ ] + respect_gitignore = true + +[MD001] + front-matter-title = true + +[MD003] + # Heading style should be consistent + style = "atx" + +[MD004] + style = "dash" + +[MD007] + start-indented = false + style = "text-aligned" + +[MD009] + br-spaces = 2 + list-item-empty-lines = false + strict = false + +[MD010] + spaces-per-tab = 4 + +[MD012] + maximum = 1 + +[MD013] + abbreviations = [ ] + code-blocks = true + headings = true + length-mode = "visual" + line-length = 80 + paragraphs = false + reflow = true + reflow-mode = "sentence-per-line" + strict = false + tables = false + +[MD014] + show-output = true + +[MD022] + allowed-at-start = true + lines-above = 1 + lines-below = 1 + +[MD024] + allow-different-nesting = false + siblings-only = true + +[MD025] + allow-document-sections = false + allow-with-separators = false + front-matter-title = "title" + level = 1 + +[MD026] + punctuation = ".,;:!" + +[MD029] + style = "one-or-ordered" + +[MD030] + ol-multi = 1 + ol-single = 1 + ul-multi = 1 + ul-single = 1 + +[MD031] + list-items = true + +[MD032] + allow-lazy-continuation = true + +[MD033] + allowed-elements = [ ] + disallowed-elements = [ ] + +[MD035] + style = "consistent" + +[MD036] + punctuation = ".,;:!?" + +[MD041] + front-matter-title = "title" + front-matter-title-pattern = "" + level = 1 + +[MD043] + headings = [ ] + match-case = false + +[MD044] + code-blocks = false + html-comments = false + html-elements = true + names = [ ] + +[MD045] + placeholder-text = "TODO: Add image description" + +[MD046] + style = "fenced" + +[MD048] + style = "consistent" + +[MD049] + # Italic Text + style = "underscore" + +[MD050] + # Bold Text + style = "asterisk" + +[MD051] + anchor-style = "github" + +[MD053] + ignored-definitions = [ ] + +[MD054] + autolink = true + collapsed = true + full = true + inline = true + shortcut = true + url-inline = true + +[MD055] + style = "consistent" + +[MD058] + minimum-after = 1 + minimum-before = 1 + +[MD059] + prohibited-texts = [ "click here", "here", "link", "more" ] + +[MD060] + column-align = "auto" + enabled = true + max-width = 0 + style = "aligned" + +[MD061] + case-sensitive = true + terms = [ ] + +[MD063] + enabled = true + ignore-words = [ ] + lowercase-words = [ "a", "an", "and", "as", "at", "but", "by", "for", "from", "in", "into", "nor", "of", "off", "on", "or", "per", "so", "the", "to", "up", "via", "with", "yet" ] + max-level = 6 + min-level = 1 + preserve-cased-words = true + style = "title_case" + +[MD064] + allow-sentence-double-space = false + +[MD072] + enabled = true + +[md073] + enabled = true + enforce-order = true + max-level = 4 + min-level = 2 diff --git a/configs/systemd/user/database-ssh-tunnel@.service b/configs/systemd/user/database-ssh-tunnel@.service new file mode 100644 index 0000000..7c1ce0e --- /dev/null +++ b/configs/systemd/user/database-ssh-tunnel@.service @@ -0,0 +1,10 @@ +[Unit] +Description=SSH Persistent port forward for %i, makes available remote port locally +After=network-online.target +Wants=network-online.target + +[Service] +EnvironmentFile=%h/.ssh/tunnels.d/%i.conf +ExecStart=/usr/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -L ${TUNNEL_LOCAL_ADDRESS}:${TUNNEL_LOCAL_PORT}:${TUNNEL_REMOTE_ADDRESS}:${TUNNEL_REMOTE_PORT} ${TUNNEL_SSH_HOST} +RestartSec=3 +Restart=always diff --git a/configs/systemd/user/niri.service.wants/hypridle.service b/configs/systemd/user/niri.service.wants/hypridle.service new file mode 120000 index 0000000..55da293 --- /dev/null +++ b/configs/systemd/user/niri.service.wants/hypridle.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/hypridle.service \ No newline at end of file