diff --git a/.dotter/global.toml b/.dotter/global.toml index 42caea7..748bd20 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -1,9 +1,14 @@ -[settings] -default_target_type = "automatic" +[default] +depends = ["nvim"] -[helpers] -flatten_table = ".dotter/handlebars_helpers/flatten_table.rhai" -header = ".dotter/handlebars_helpers/header.rhai" +[default.files] +"README.md" = "" +chezmoi = "" +config = "" +exports = "" +scripts = "" + +[default.variables] # CLI package [cli] @@ -17,9 +22,6 @@ depends = ["nvim", "zsh"] "config/yazi" = "~/.config/yazi" "config/zellij" = "~/.config/zellij" -[dev] -depends = ["rust"] - [dev.files] "config/git" = "~/.config/git" "config/lazygit" = { target = "~/.config/lazygit", type = "symbolic"} @@ -36,8 +38,8 @@ depends = ["rust"] [nushell.files] "config/nushell" = "~/.config/nushell" +[settings] +default_target_type = "automatic" + [nvim.files] "config/nvim" = "~/.config/nvim" - -[rust.variables] -cargo.packages = [] diff --git a/.dotter/handlebars_helpers/flatten_table.rhai b/.dotter/handlebars_helpers/flatten_table.rhai deleted file mode 100644 index 30ee4f9..0000000 --- a/.dotter/handlebars_helpers/flatten_table.rhai +++ /dev/null @@ -1,30 +0,0 @@ -/* -* Flatten a table into a list of values. -* The table has to be in the form of -* ```toml -* [table.subtable] -* variable1 = ["value1", "value2"] -* -* [table.subtable] -* variable2 = ["value3", "value4"] -* -* then we use it in handlerbars like this: -* -* {{ flatten_table table.subtable }} -* -* and it will return an array with all the arrays of subtable -*/ - -if type_of(params[0]) != "map" { - return; -} - -let table = params[0]; - -let result = []; - -for value in table.values() { - result.append(value); -} - -result diff --git a/.dotter/handlebars_helpers/header.rhai b/.dotter/handlebars_helpers/header.rhai deleted file mode 100644 index 1a35fc7..0000000 --- a/.dotter/handlebars_helpers/header.rhai +++ /dev/null @@ -1,48 +0,0 @@ -let x_padding = hash["padding"] ?? 50; - -let header = #{ - x_padding: x_padding, - out: "", - append: |suffix| { - this.out += suffix + "\n"; - }, - append_center: |suffix| { - - let suffix_len = suffix.len(); - let padding = this.x_padding - suffix_len / 2; - let fill = ""; - fill.pad(padding, " "); - - this.out += fill + suffix.to_upper() + fill + "\n"; - }, - append_divider: || { - let divider = ""; - divider.pad(this.x_padding * 2, "─"); - - this.append(divider); - }, - open_echo: || { - this.out += "echo -e '\n"; - }, - close_echo: || { - this.out += "'"; - }, - to_string: || { - return this.out; - } -}; - -header.open_echo(); - -header.append_divider(); - - -params.for_each(|idx| { - header.append_center(this); -}); - -header.append_divider(); -header.close_echo(); - -return header.to_string(); - diff --git a/.dotter/machines/fedora.toml b/.dotter/machines/fedora.toml deleted file mode 100644 index 63e5773..0000000 --- a/.dotter/machines/fedora.toml +++ /dev/null @@ -1,54 +0,0 @@ -# Dotter only support merging tables, and put the key-values into the global scope of the tables -# If we try to use the same variable name in a package, it will throw an error -# if we try to use the same key in a nested table, it will be overriden with the last value -# -# the fix to this is to have a table with unique keys, this is supported by handlerbars {{#each}} directive -# but will give us an array as value, so we need to flatten it - -[utils.variables] -pkg-install = "sudo dnf install -y" - -[cli.variables.copr] -cli = [ - "atim/lazygit", - "atim/starship" -] - -[cli.variables.packages] -cli = [ - "bat", - "dnf-plugin-system-upgrade", - "duf", - "eza", - "fd-find", - "firefox-dev", - "flatpak", - "fzf", - "git", - "lazygit", - "neovim", - "remove-retired-packages", - "ripgrep", - "sd", - "starship", - "tealdeer", - "zoxide", - "zsh", -] - -[dev.variables.packages] -dev = [ - "gcc", - "gcc-c++", - "nodejs", - "openssl", - "openssl-devel", - "tmux", - "tree-sitter-cli", -] - -[rust.variables] -cargo.packages = [ - "yazi-fm", - "yazi-cli", -] diff --git a/.dotter/pre_deploy.sh b/.dotter/pre_deploy.sh index 2cddc64..bbb0008 100644 --- a/.dotter/pre_deploy.sh +++ b/.dotter/pre_deploy.sh @@ -1,43 +1 @@ -#!/usr/bin/env bash -# shellcheck disable=all -# This is a handlerbars template, so ignore issues - -{{!~ Detect the distribution ~}} -{{~ assign "distro" (trim (command_output "awk -F= '/^ID=/ {print $2}' /etc/os-release | tr -d '\"'")) ~}} - -{{ header "Running pre deploy script for distro" (to_title_case distro) }} - -{{#if (eq distro "fedora") ~}} - -{{! extract the copr repositories variable }} -{{~ assign "copr" (flatten_table copr) ~}} - -{{#if (ne (len copr) 0) ~}} -{{ header "Enabling copr repositories" }} - -{{# each copr }} -sudo -B dnf copr enable -y '{{ this }}' -{{ /each }} - -{{~ /if }} - -{{ header "Installing dnf packages" }} -sudo -B dnf install -y {{~# each (flatten_table packages) }} '{{ this }}' {{~ /each }} - -{{~ /if }} - -{{#if (and dotter.packages.rust (not (is_executable "cargo"))) }} - -{{ header "Installing rust" }} -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --default-toolchain stable - -{{ /if }} - -{{#if (and dotter.packages.rust (ne (len cargo.packages) 0)) }} - -{{ header "Installing crates" }} -cargo install --locked {{# each cargo.packages }} "{{ this }}" {{ /each }} - -{{ /if }} - -{{ header "Done :3" }} +sudo dnf install -y {{# each packages }} {{ this }} {{/each}} diff --git a/.dotter/work-laptop.toml b/.dotter/work-laptop.toml index 8e15648..7709e32 100644 --- a/.dotter/work-laptop.toml +++ b/.dotter/work-laptop.toml @@ -1,5 +1,5 @@ -includes = [".dotter/machines/fedora.toml"] -packages = ["cli", "dev"] +includes = [] +packages = ["default", "cli", "dev"] [files] diff --git a/config/git/config b/config/git/config index 65fa801..0c713a8 100644 --- a/config/git/config +++ b/config/git/config @@ -8,7 +8,3 @@ [includeIf "gitdir:~/Repos/Work/"] path = ~/.config/git/config-work -[merge] - autoStash = true -[rebase] - autoStash = true diff --git a/config/nvim/lua/aleidk/plugins/file-explorer.lua b/config/nvim/lua/aleidk/plugins/file-explorer.lua index ab03cca..e7b6eaa 100644 --- a/config/nvim/lua/aleidk/plugins/file-explorer.lua +++ b/config/nvim/lua/aleidk/plugins/file-explorer.lua @@ -1,7 +1,7 @@ ---@type LazySpec return { "mikavilpas/yazi.nvim", - -- event = "VeryLazy", + event = "VeryLazy", keys = { -- 👇 in this section, choose your own keymappings! { diff --git a/config/nvim/lua/aleidk/plugins/init.lua b/config/nvim/lua/aleidk/plugins/init.lua index 4c6fcb8..8dbb557 100644 --- a/config/nvim/lua/aleidk/plugins/init.lua +++ b/config/nvim/lua/aleidk/plugins/init.lua @@ -35,6 +35,41 @@ return { { "uC", "CccHighlighterToggle", desc = "Toggle Color highlight" }, }, }, + -- Dotfiles management + { + "xvzc/chezmoi.nvim", + dependencies = { "nvim-lua/plenary.nvim", "alker0/chezmoi.vim" }, + config = function() + require("chezmoi").setup({ + { + edit = { + watch = false, + force = false, + }, + notification = { + on_open = true, + on_apply = true, + on_watch = false, + }, + telescope = { + select = { "" }, + }, + }, + }) + + vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { + -- INFO: this should be the same as $(chezmoi source-path) + pattern = { os.getenv("HOME") .. "/.local/share/chezmoi/chezmoi/*" }, + callback = function() + vim.schedule(require("chezmoi.commands.__edit").watch) + end, + }) + local telescope = require("telescope") + + telescope.load_extension("chezmoi") + vim.keymap.set("n", "fz", telescope.extensions.chezmoi.find_files, { desc = "Find dotfile" }) + end, + }, { "pmizio/typescript-tools.nvim", dependencies = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig" }, @@ -53,4 +88,12 @@ return { }, }, }, + + { + "olexsmir/gopher.nvim", + ft = "go", + build = function() + vim.cmd([[silent! GoInstallDeps]]) + end, + }, } diff --git a/config/nvim/lua/aleidk/plugins/lsp.lua b/config/nvim/lua/aleidk/plugins/lsp.lua index ab2f1aa..4a4c40d 100644 --- a/config/nvim/lua/aleidk/plugins/lsp.lua +++ b/config/nvim/lua/aleidk/plugins/lsp.lua @@ -175,9 +175,6 @@ return { }), ["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = _border, - max_width = 200, - max_height = 200, - focus = true, }), }, } diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml index 4c37eb5..6e42a49 100644 --- a/config/yazi/keymap.toml +++ b/config/yazi/keymap.toml @@ -45,11 +45,11 @@ keymap = [ { on = ["J"], run = "seek 5", desc = "Seek down 5 units in the preview" }, # Selection - { on = [ "" ], run = [ "toggle", "arrow 1" ], desc = "Toggle the current selection state" }, + { on = [ "" ], run = [ "select --state=none", "arrow 1" ], desc = "Toggle the current selection state" }, { on = [ "v" ], run = "visual_mode", desc = "Enter visual mode (selection mode)" }, { on = [ "V" ], run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" }, - { on = [ "" ], run = "toggle_all", desc = "Select all files" }, - { on = [ "" ], run = "toggle_all on", desc = "Inverse selection of all files" }, + { on = [ "" ], run = "select_all --state=true", desc = "Select all files" }, + { on = [ "" ], run = "select_all --state=none", desc = "Inverse selection of all files" }, # Operation { on = [ "o" ], run = "open", desc = "Open the selected files" }, @@ -98,10 +98,10 @@ keymap = [ { on = [ "N" ], run = "find_arrow --previous", desc = "Go to previous found file" }, # Sorting - { on = [ ",", "m" ], run = "sort mtime --reverse=no", desc = "Sort by modified time" }, - { on = [ ",", "M" ], run = "sort mtime --reverse", desc = "Sort by modified time (reverse)" }, - { on = [ ",", "c" ], run = "sort btime --reverse=no", desc = "Sort by created time" }, - { on = [ ",", "C" ], run = "sort btime --reverse", desc = "Sort by created time (reverse)" }, + { on = [ ",", "m" ], run = "sort modified --reverse=no", desc = "Sort by modified time" }, + { on = [ ",", "M" ], run = "sort modified --reverse", desc = "Sort by modified time (reverse)" }, + { on = [ ",", "c" ], run = "sort created --reverse=no", desc = "Sort by created time" }, + { on = [ ",", "C" ], run = "sort created --reverse", desc = "Sort by created time (reverse)" }, { on = [ ",", "e" ], run = "sort extension --reverse=no", desc = "Sort by extension" }, { on = [ ",", "E" ], run = "sort extension --reverse", desc = "Sort by extension (reverse)" }, { on = [ ",", "a" ], run = "sort alphabetical --reverse=no", desc = "Sort alphabetically" }, @@ -162,7 +162,7 @@ keymap = [ { on = [ "~" ], run = "help", desc = "Open help" } ] -[pick] +[select] keymap = [ { on = [ "" ], run = "close", desc = "Cancel selection" }, diff --git a/config/yazi/yazi.toml b/config/yazi/yazi.toml index 9c93301..e59bd36 100644 --- a/config/yazi/yazi.toml +++ b/config/yazi/yazi.toml @@ -188,7 +188,7 @@ quit_title = "{n} task{s} running, sure to quit? (y/N)" quit_origin = "center" quit_offset = [ 0, 2, 50, 3 ] -[pick] +[select] open_title = "Open with:" open_origin = "hovered" open_offset = [ 0, 1, 50, 7 ]