From 3a8f55211f45cf48c4e70a7399e653fcea14a349 Mon Sep 17 00:00:00 2001 From: Anton Bilous Date: Thu, 26 Jun 2025 21:40:43 +0300 Subject: [PATCH] Helix --- .config/fish/conf.d/env.fish | 2 +- .config/helix/config.toml | 46 +++++++++++++++++++++++++++++++ .config/helix/languages.toml | 23 ++++++++++++++++ .config/hypr/binds.conf | 38 +++++++++++++------------ .config/kitty/kitty.conf | 1 + .config/nvim/after/lsp/nil_ls.lua | 7 +++++ .config/nvim/lazy-lock.json | 18 ++++++------ .config/yazi/keymap.toml | 2 +- .config/yazi/yazi.toml | 2 +- .gitignore | 4 +++ 10 files changed, 114 insertions(+), 29 deletions(-) create mode 100644 .config/helix/config.toml create mode 100644 .config/helix/languages.toml create mode 100644 .config/nvim/after/lsp/nil_ls.lua diff --git a/.config/fish/conf.d/env.fish b/.config/fish/conf.d/env.fish index 5d9fbc9..b5c4c24 100644 --- a/.config/fish/conf.d/env.fish +++ b/.config/fish/conf.d/env.fish @@ -31,7 +31,7 @@ set -gx SCREENRECORD_DIR $XDG_VIDEOS_DIR/screen # Find an editor -for e in nvim vim vi helix nano +for e in helix nvim vim vi nano type -q $e; or continue set -gx EDITOR $e break diff --git a/.config/helix/config.toml b/.config/helix/config.toml new file mode 100644 index 0000000..cabca7a --- /dev/null +++ b/.config/helix/config.toml @@ -0,0 +1,46 @@ +theme = "ao" + +[editor] +# no you don't +mouse = false +middle-click-paste = false +scroll-lines = 0 + +shell = ["fish", "-c"] +line-number = "relative" +cursorline = true +continue-comments = false # annoying +gutters = ["diagnostics", "line-numbers", "diff"] +auto-completion = true # TODO: is it annoying? +completion-replace = true +auto-format = true +auto-info = true # TODO: idle-timeout? +# true-color = true +rulers = [80, 100] +bufferline = "multiple" # never, always, multiple +color-modes = true # mode indicator color +insert-final-newline = true # POSIX compatibility +popup-border = "none" # popup, menu, all, none +jump-label-alphabet = "tneiouykhsrafwvd" +end-of-line-diagnostics = "disable" # TODO: check `inline-diagnostics` + +# file-picker.hidden = true +cursor-shape.insert = "underline" + +[editor.statusline.mode] +normal = "N" +insert = "I" +select = "S" + +[keys.normal] +# "=" = ":format" +D = [ "extend_to_line_end", "delete_selection" ] + +# previous/next buffer +L = "goto_next_buffer" +H = "goto_previous_buffer" +# move/copy line below/above +"A-j" = [ "extend_to_line_bounds", "delete_selection", "paste_after" ] +"A-k" = [ "extend_to_line_bounds", "delete_selection", "move_line_up", "paste_before" ] +"A-J" = [ "extend_to_line_bounds", "yank", "paste_after" ] +"A-K" = [ "extend_to_line_bounds", "yank", "paste_before" ] diff --git a/.config/helix/languages.toml b/.config/helix/languages.toml new file mode 100644 index 0000000..4aa6a7b --- /dev/null +++ b/.config/helix/languages.toml @@ -0,0 +1,23 @@ +[language-server.taplo] +config = {} # https://github.com/helix-editor/helix/issues/3897 + +[language-server.rust-analyzer] +checkOnSave = true +cargo = { allFeatures = true, loadOutDirsFromCheck = true, runBuildScripts = true } + +check.command = "clippy" +check.extraArgs = [ "--", + "--no-deps", + "-Wclippy::correctness", + "-Wclippy::complexity", + "-Wclippy::suspicious", + "-Wclippy::style", + "-Wclippy::perf", + "-Wclippy::pedantic", + "-Wclippy::nursery", + "-Wclippy::cargo", + "-Aclippy::restriction", + "-Aclippy::must_use_candidate", +] +procMacro.enable = true + diff --git a/.config/hypr/binds.conf b/.config/hypr/binds.conf index af87853..d28c433 100644 --- a/.config/hypr/binds.conf +++ b/.config/hypr/binds.conf @@ -61,6 +61,9 @@ binde = CTRL, F2, exec, playerctl volume 0.05+ binde = $mod CTRL, F2, exec, playerctl volume 0.01+ bind = $mod, F3, exec, playerctl play-pause bind = SHIFT, F3, exec, playerctl -a play-pause +# bind = $mod, F4, pass, class:^(com\.obsproject\.Studio)$ +bind = $mod, F4, sendshortcut, , F4, class:^(com\.obsproject\.Studio)$ +bind = $mod SHIFT, F4, sendshortcut, SHIFT, F4, class:^(com\.obsproject\.Studio)$ # toggles bindl = $mod, F5, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 1 bind = SHIFT, F5, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 @@ -93,8 +96,9 @@ binde = SHIFT, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUD binde = SHIFT, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%- bindl =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 1 bind = SHIFT, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 -bindl =, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1 ; killall waybar -s 35 -bind = SHIFT, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0 ; killall waybar -s 35 +# bindl =, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1 ; killall waybar -s 35 +# bind = SHIFT, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0 ; killall waybar -s 35 +bind =, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle ; killall waybar -s 35 bind =, XF86AudioPlay, exec, playerctl play-pause bind =, XF86AudioPrev, exec, playerctl previous bind =, XF86AudioNext, exec, playerctl next @@ -139,7 +143,7 @@ bind = SHIFT, F, exec, firefox bind = SHIFT, F, submap, reset bind = CTRL, F, exec, torbrowser-launcher bind = CTRL, F, submap, reset -bind =, T, exec, killall telegram-desktop || telegram-desktop +bind =, T, exec, killall Telegram || Telegram bind =, T, submap, reset bind =, S, exec, killall signal-desktop || signal-desktop bind =, S, submap, reset @@ -153,15 +157,15 @@ bind =, Y, exec, kitty yazi bind =, Y, submap, reset bind =, L, exec, logseq bind =, L, submap, reset -bind =, O, exec, QT_SCALE_FACTOR=1.5 obs +bind =, O, exec, QT_SCALE_FACTOR=1.25 obs bind =, O, submap, reset bind =, K, exec, klavaro bind =, K, submap, reset -bind = SHIFT, S, exec, mysql-workbench +bind = SHIFT, S, exec, gamemoderun steam-native bind = SHIFT, S, submap, reset bind =, D, exec, discord --enable-features=UseOzonePlatform --ozone-platform=wayland bind =, D, submap, reset -bind = SHIFT, V, exec, virtualboxvm --startvm Ghost11 +bind = SHIFT, V, exec, QT_SCALE_FACTOR=1.5 virtualbox bind = SHIFT, V, submap, reset bind =, V, exec, bitwarden-desktop bind =, V, submap, reset @@ -298,17 +302,17 @@ bindle =, J, exec, brightnessctl s 5%+ binde = CTRL, J, exec, brightnessctl s 1%+ binde = SHIFT, J, exec, brightnessctl s 15%+ -bind =, R, exec, wl-screenrec --codec hevc -b '1 MB' --audio --audio-device $(pactl list short sinks | grep $(pactl get-default-sink) | head -c2) -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv -bind =, R, exec, sleep 0.5; killall waybar -s 36 -bind =, R, submap, reset -bind = SHIFT, R, exec, wl-screenrec --codec hevc -b '1 MB' --audio -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv -bind = SHIFT, R, exec, sleep 0.5; killall waybar -s 36 -bind = SHIFT, R, submap, reset -bind = CTRL, R, exec, wl-screenrec --codec hevc -b '0.5 MB' -g "$($slurp_cmd ff00ff)" -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv -bind = CTRL, R, exec, sleep 0.5; killall waybar -s 36 -bind = CTRL, R, submap, reset -bind = $mod, R, exec, killall -INT wl-screenrec ; sleep 1; killall waybar -s 36 -bind = $mod, R, submap, reset +# bind =, R, exec, wl-screenrec --codec hevc -b '1 MB' --audio --audio-device $(pactl list short sinks | grep $(pactl get-default-sink) | head -c2) -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv +# bind =, R, exec, sleep 0.5; killall waybar -s 36 +# bind =, R, submap, reset +# bind = SHIFT, R, exec, wl-screenrec --codec hevc -b '1 MB' --audio -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv +# bind = SHIFT, R, exec, sleep 0.5; killall waybar -s 36 +# bind = SHIFT, R, submap, reset +# bind = CTRL, R, exec, wl-screenrec --codec hevc -b '0.5 MB' -g "$($slurp_cmd ff00ff)" -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv +# bind = CTRL, R, exec, sleep 0.5; killall waybar -s 36 +# bind = CTRL, R, submap, reset +# bind = $mod, R, exec, killall -INT wl-screenrec ; sleep 1; killall waybar -s 36 +# bind = $mod, R, submap, reset bindl = $mod, M, submap, reset bindl = $mod, grave, submap, reset diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf index 45e923c..68ae93f 100644 --- a/.config/kitty/kitty.conf +++ b/.config/kitty/kitty.conf @@ -268,6 +268,7 @@ clear_all_shortcuts yes # kitten_alias # Miscellaneous {{{ +map ctrl+[ send_text all  map shift+space send_text all \033[32;2u map kitty_mod+v paste_from_clipboard diff --git a/.config/nvim/after/lsp/nil_ls.lua b/.config/nvim/after/lsp/nil_ls.lua new file mode 100644 index 0000000..cc69a7a --- /dev/null +++ b/.config/nvim/after/lsp/nil_ls.lua @@ -0,0 +1,7 @@ +return { + settings = { + ["nil"] = { + formatting = { command = { "alejandra" } } + } + } +} diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 3eadedb..04ebc9e 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,21 +1,21 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, - "LuaSnip": { "branch": "master", "commit": "c1851d5c519611dfc451b6582961b2602e0af89b" }, + "LuaSnip": { "branch": "master", "commit": "fb525166ccc30296fb3457441eb979113de46b00" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "cyberdream.nvim": { "branch": "main", "commit": "8407e80415aebd6b052773d751dda7cd9cfc6835" }, + "cyberdream.nvim": { "branch": "main", "commit": "f660ebfd8840e226d2a5368e08108a7aa84fef36" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "39e0d1cd44eafed5f30c372e377ab1cb1781ec9f" }, + "gitsigns.nvim": { "branch": "main", "commit": "1b0350ab707713b2bc6c236151f1a324175347b1" }, "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" }, - "mason.nvim": { "branch": "main", "commit": "888d6ee499d8089a3a4be4309d239d6be1c1e6c0" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "c4c84f4521d62de595c0d0f718a9a40c1890c8ce" }, + "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-lspconfig": { "branch": "master", "commit": "ac1dfbe3b60e5e23a2cff90e3bd6a3bc88031a57" }, - "nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "b0debd5c424969b4baeabdc8f54db3036c691732" }, - "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, + "nvim-lspconfig": { "branch": "master", "commit": "69a1624aff5dc30dddd0c59d99a947b63c80bf2a" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "89ebe73cd2836db80a22d9748999ace0241917a5" }, + "nvim-web-devicons": { "branch": "master", "commit": "19d6211c78169e78bab372b585b6fb17ad974e82" }, "onedark.nvim": { "branch": "master", "commit": "11de4da47f3e69cb70c3ae9816bd8af166cbe121" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, diff --git a/.config/yazi/keymap.toml b/.config/yazi/keymap.toml index c121921..965f8eb 100644 --- a/.config/yazi/keymap.toml +++ b/.config/yazi/keymap.toml @@ -1,6 +1,6 @@ "$schema" = "https://yazi-rs.github.io/schemas/keymap.json" -[manager] +[mgr] prepend_keymap = [ { on = "", run = "plugin wl-clipboard", desc = "Yank to clipboard" }, { on = "R", run = "rename --empty=stem --cursor=start", desc = "Rename file full" }, diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml index 99c65a4..10018f7 100644 --- a/.config/yazi/yazi.toml +++ b/.config/yazi/yazi.toml @@ -1,6 +1,6 @@ "$schema" = "https://yazi-rs.github.io/schemas/yazi.json" -[manager] +[mgr] ratio = [0, 2, 3] # prev, current, next / preview sort_by = "natural" # 1.md < 2.md < 10.md # sort_translit = false # replaces  as A, Æ as AE, etc. diff --git a/.gitignore b/.gitignore index 80e4415..3423fb9 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,10 @@ .config/git/* !.config/git/config +!.config/helix/ +.config/helix/* +!.config/helix/*.toml + !.config/nvim/ .config/nvim/* !.config/nvim/lua/