diff --git a/nixpkgs/.config/nixpkgs/modules/desktop/alacritty.nix b/nixpkgs/.config/nixpkgs/modules/desktop/alacritty.nix index 874bdec..a89ec35 100644 --- a/nixpkgs/.config/nixpkgs/modules/desktop/alacritty.nix +++ b/nixpkgs/.config/nixpkgs/modules/desktop/alacritty.nix @@ -46,7 +46,8 @@ in #normal.family = "Iosevka"; normal.family = "Terminus (TTF)"; offset.x = 0; - offset.y = -2; + #offset.y = -2; + offset.y = 0; }; colors = config.elkowar.desktop.colors; }; diff --git a/nvim/.config/nvim/fnl/init.fnl b/nvim/.config/nvim/fnl/init.fnl index 0842c46..289e1c8 100644 --- a/nvim/.config/nvim/fnl/init.fnl +++ b/nvim/.config/nvim/fnl/init.fnl @@ -60,7 +60,6 @@ (se wrap false) (se completeopt "menuone,noselect") (se laststatus 2) -(se showmode true) (se splitbelow true) (se splitright true) (se mouse "a") diff --git a/nvim/.config/nvim/fnl/macros.fnl b/nvim/.config/nvim/fnl/macros.fnl index 8c826bf..91038d0 100644 --- a/nvim/.config/nvim/fnl/macros.fnl +++ b/nvim/.config/nvim/fnl/macros.fnl @@ -20,8 +20,8 @@ :dbg (fn [x] - `(let [view# (. (require "aniseed.fennel") :view)] - (print (.. `,(tostring x) " => " (view# ,x))) + `(let [view# (require "aniseed.view")] + (print (.. `,(tostring x) " => " (view#.serialise ,x))) ,x)) :dbg-call diff --git a/nvim/.config/nvim/fnl/plugins.fnl b/nvim/.config/nvim/fnl/plugins.fnl index 8f7ee40..f785b94 100644 --- a/nvim/.config/nvim/fnl/plugins.fnl +++ b/nvim/.config/nvim/fnl/plugins.fnl @@ -36,12 +36,17 @@ ; general purpose lua wrappers for nvim stuff :norcalli/nvim.lua {} - :glepnir/galaxyline.nvim {:mod "plugins.galaxyline" - :after "gruvbox"} + ;:glepnir/galaxyline.nvim {:mod "plugins.galaxyline" + ;:after "gruvbox"} - ;:gwimm/lililine.nvim {:after "gruvbox"} + :Famiu/feline.nvim {:mod "plugins.feline" + :after "gruvbox"} + + ;:gwimm/lililine.nvim {:after "gruvbox" + ;:mod "plugins.lililine"} :akinsho/nvim-bufferline.lua {:mod "plugins.bufferline"} + ;:romgrk/barbar.nvim {:mod "plugins.barbar"} :sindrets/diffview.nvim {:mod "plugins.diffview"} :tweekmonster/startuptime.vim {:cmd ["StartupTime"]} @@ -88,7 +93,9 @@ :tommcdo/vim-exchange {} ;:frazrepo/vim-rainbow {} - :bhurlow/vim-parinfer {:ft ["fennel" "carp" "lisp" "elisp"]} + ;:bhurlow/vim-parinfer {:ft ["fennel" "carp" "lisp" "elisp"]} + + :eraserhd/parinfer-rust {:run "cargo build --release"} :bduggan/vim-raku {:ft ["raku"]} :LnL7/vim-nix {:ft ["nix"]} diff --git a/nvim/.config/nvim/fnl/plugins/barbar.fnl b/nvim/.config/nvim/fnl/plugins/barbar.fnl new file mode 100644 index 0000000..7780d10 --- /dev/null +++ b/nvim/.config/nvim/fnl/plugins/barbar.fnl @@ -0,0 +1,7 @@ +(module utils + {autoload {a aniseed.core + fennel aniseed.fennel + nvim aniseed.nvim + str aniseed.string} + require-macros [macros]}) + diff --git a/nvim/.config/nvim/fnl/plugins/feline.fnl b/nvim/.config/nvim/fnl/plugins/feline.fnl new file mode 100644 index 0000000..719bbde --- /dev/null +++ b/nvim/.config/nvim/fnl/plugins/feline.fnl @@ -0,0 +1,103 @@ +(module utils + {autoload {a aniseed.core + nvim aniseed.nvim + utils utils + str aniseed.string + colors colors + view aniseed.view + feline feline + feline-git feline.providers.git + feline-lsp feline.providers.lsp} + require-macros [macros]}) + + + + +(local modes + {:n {:text "NORMAL" :color colors.neutral_aqua} + :i {:text "INSERT" :color colors.neutral_yellow} + :c {:text "CMMAND" :color colors.neutral_aqua} + :ce {:text "NORMEX" :color colors.neutral_aqua} + :cv {:text "EX" :color colors.neutral_aqua} + :ic {:text "INSCOMP" :color colors.neutral_aqua} + :no {:text "OP-PENDING" :color colors.neutral_aqua} + :r {:text "HIT-ENTER" :color colors.neutral_aqua} + :r? {:text "CONFIRM" :color colors.neutral_aqua} + :R {:text "REPLACE" :color colors.neutral_aqua} + :Rv {:text "VIRTUAL" :color colors.neutral_aqua} + :s {:text "SELECT" :color colors.neutral_aqua} + :S {:text "SELECT" :color colors.neutral_aqua} + :t {:text "TERM" :color colors.neutral_aqua} + :v {:text "VISUAL" :color colors.neutral_blue} + :V {:text "VISUAL LINE" :color colors.neutral_blue} + "" {:text "VISUAL BLOCK" :color colors.neutral_blue}}) + +;(def bar-bg colors.dark1) +(def bar-bg colors.dark0) + +(defn or-empty [x] (or x "")) +(defn spaces [x] (if x (.. " " x " ") "")) + +(defn get-current-filepath [] + (let [file (utils.shorten-path (vim.fn.bufname) 5 50)] + (if (a.empty? file) "" + nvim.bo.readonly (.. "RO " file) + (and nvim.bo.modifiable nvim.bo.modified) (.. file "●") + (.. file " ")))) + +(defn lsp-diagnostic-component [kind color] + {:enabled #(~= 0 (vim.lsp.diagnostic.get_count 0 kind)) + :provider #(spaces (vim.lsp.diagnostic.get_count 0 kind)) + :left_sep "" + :right_sep "" + :hl {:fg bar-bg :bg color}}) + + +(defn vim-mode-hl [use-as-fg?] + (let [color (. modes (vim.fn.mode) :color)] + (if use-as-fg? {:bg bar-bg :fg color} {:bg color :fg bar-bg}))) + +(defn git-status-provider [] + (or-empty (utils.keep-if #(~= "master" $1) + (?. vim.b :gitsigns_status_dict :head)))) + +(def components + {:left {:active {} :inactive {}} + :mid {:active {} :inactive {}} + :right {:active {} :inactive {}}}) + +(set components.left.active + [{:provider #(.. " " (or (. modes (vim.fn.mode) :text) vim.fn.mode) " ") + :hl #(vim-mode-hl false)} + {:provider get-current-filepath :left_sep " "} + {:provider git-status-provider :left_sep " " :hl #(vim-mode-hl true)}]) + + + +(defn get-lsp-progress [] + (let [msgs (vim.lsp.util.get_progress_messages) + s (icollect [_ msg (ipairs msgs)] + (when msg.message + (.. msg.title " " msg.message)))] + (or-empty (str.join " | " s)))) + +(set components.mid.active + [{:provider get-lsp-progress}]) + +(set components.right.active + [{:provider vim.bo.filetype + :right_sep " " + :hl #(vim-mode-hl true)} + (lsp-diagnostic-component "Information" colors.neutral_purple) + (lsp-diagnostic-component "Hint" colors.neutral_blue) + (lsp-diagnostic-component "Warn" colors.neutal_yellow) + (lsp-diagnostic-component "Error" colors.neutral_red) + {:provider #(let [[line col] (vim.api.nvim_win_get_cursor 0)] (.. " " line ":" col " ")) + :hl #(vim-mode-hl false)}]) + + +(feline.setup + {:default_bg bar-bg + :default_fg colors.dark4 + :components components}) + diff --git a/nvim/.config/nvim/fnl/plugins/lililine.fnl b/nvim/.config/nvim/fnl/plugins/lililine.fnl new file mode 100644 index 0000000..5e62622 --- /dev/null +++ b/nvim/.config/nvim/fnl/plugins/lililine.fnl @@ -0,0 +1,166 @@ +(module plugins.lililine + {require {a aniseed.core + str aniseed.string + nvim aniseed.nvim + utils utils + colors colors + line lililine} + + require-macros [macros]}) + + +(fn get-current-filename [] + (nvim.fn.expand "%:t")) + +(fn get-current-filepath [] + (let [file (utils.shorten-path (vim.fn.bufname) 5 50)] + (if (a.empty? file) "" + nvim.bo.readonly (.. "RO " file) + (and nvim.bo.modifiable nvim.bo.modified) (.. file " ") + file))) + +(fn make-lsp-diagnostic-provider [kind] + (fn [] + (let [n (vim.lsp.diagnostic.get_count 0 kind)] + (if (= n 0) "" (.. " " n " "))))) + + +(def bar-bg colors.dark0_soft) + + +(def modes + {:n {:text "NORMAL" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :i {:text "INSERT" :color {:bg colors.neutral_yellow :fg colors.dark0}} + :c {:text "CMMAND" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :ce {:text "NORMEX" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :cv {:text "EX" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :ic {:text "INSCOMP" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :no {:text "OP-PENDING" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :r {:text "HIT-ENTER" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :r? {:text "CONFIRM" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :R {:text "REPLACE" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :Rv {:text "VIRTUAL" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :s {:text "SELECT" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :S {:text "SELECT" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :t {:text "TERM" :color {:bg colors.neutral_aqua :fg colors.dark0}} + :v {:text "VISUAL" :color {:bg colors.neutral_blue :fg colors.dark0}} + :V {:text "VISUAL LINE" :color {:bg colors.neutral_blue :fg colors.dark0}} + "" {:text "VISUAL BLOCK" :color {:bg colors.neutral_blue :fg colors.dark0}}}) + + + + +(utils.highlight :StatusLine {:bg bar-bg :fg colors.light4}) +(utils.highlight :StatusLineFilePath {:bg bar-bg :fg colors.light4}) + +(utils.highlight :StatusLineLspInfo {:bg colors.neutral_blue :fg bar-bg}) +(utils.highlight :StatusLineLspWarn {:bg colors.neutal_yellow :fg bar-bg}) +(utils.highlight :StatusLineLspError {:bg colors.bright_red :fg bar-bg}) + +(def space {:provider #" " :highlight :StatusLineBase}) + + +(set line.lines.status + [[; Mode + {:provider #(let [data (or (. modes (vim.fn.mode)) + {:text (vim.fn.mode) + :color {:bg colors.neutral_orange :fg colors.dark0}})] + {:text (.. " " data.text " ") :color data.color}) + :highlight :StatusLineMode} + + space + + ; Filepath + {:provider get-current-filepath + :highlight :StatusLineFilePath}] + + [] + + + [; Filetype + {:provider #vim.bo.filetype :highlight :StatusLine} + + ; Diagnostics + {:provider (make-lsp-diagnostic-provider "Info") + :highlight :StatusLineLspInfo} + {:provider (make-lsp-diagnostic-provider "Warning") + :highlight :StatusLineLspWarn} + {:provider (make-lsp-diagnostic-provider "Error") + :highlight :StatusLineLspError} + + + + ; Line info + {:provider #(let [[line col] (vim.api.nvim_win_get_cursor 0)] + (.. " " line ":" col " ")) + :highlight :StatusLineMode}]]) + + ;{:LineInfo {:provider #(.. " " (gl-fileinfo.line_column) " ") + ;:highlight "GalaxyViMode" + ;:separator ""}}]) + + +; TODO +;Git-branch + ;{:provider #(let [branch (vim.fn.system "git rev-parse --abbrev-ref HEAD")] + ;(if (= "master" branch) "" branch)) + ;:highlight :StatusLine}]]) + + + +;(set galaxyline.section.left + ;[{:ViMode {:provider + ;#(let [vim-mode (nvim.fn.mode) + ;modedata (or (. modes vim-mode) + ;{:text vim-mode + ;:colors {:bg colors.neutral_orange :fg colors.dark0}})] + ;(utils.highlight "GalaxyViMode" modedata.colors) + ;(.. " " modedata.text " "))}} + + ;{:FileName {:provider get-current-filepath + ;:highlight [colors.light4 bar-bg-col]}} + + ;{:Space {:provider #"" + ;:highlight [colors.light0 bar-bg-col]}}]) + +;(set galaxyline.section.right + ;[{:GitBranch {:highlight [colors.light4 bar-bg-col] + ;:provider + ;#(let [branch (gl-vcs.get_git_branch)] + ;(if (= "master" branch) "" branch))}} + + ;{:FileType {:provider #nvim.bo.filetype + ;:highlight [colors.neutral_aqua bar-bg-col]}} + + ;{:DiagnosticInfo {:provider (make-lsp-diagnostic-provider "Info") + ;:highlight [colors.dark1 colors.neutral_blue]}} + ;{:DiagnosticWarn {:provider (make-lsp-diagnostic-provider "Warning") + ;:highlight [colors.dark1 colors.neutral_yellow] + ;:separator ""}} + ;{:DiagnosticError {:provider (make-lsp-diagnostic-provider "Error") + ;:highlight [colors.dark1 colors.bright_red] + ;:separator ""}} + ;{:LineInfo {:provider #(.. " " (gl-fileinfo.line_column) " ") + ;:highlight "GalaxyViMode" + ;:separator ""}}]) + +;(do + ;(fn add-segment-defaults [data] + ;(a.merge {:highlight [colors.light0 bar-bg-col] + ;:separator " " + ;:separator_highlight "StatusLine"} + ;data)) + + ;(fn map-gl-section [f section] + ;(icollect [_ elem (ipairs section)] + ;(collect [k v (pairs elem)] + ;(values k (f v))))) + + ;(set galaxyline.section.left (map-gl-section add-segment-defaults galaxyline.section.left)) + ;(set galaxyline.section.right (map-gl-section add-segment-defaults galaxyline.section.right))) + + + + + + diff --git a/nvim/.config/nvim/fnl/plugins/sneak.fnl b/nvim/.config/nvim/fnl/plugins/sneak.fnl index a53b524..4227e3a 100644 --- a/nvim/.config/nvim/fnl/plugins/sneak.fnl +++ b/nvim/.config/nvim/fnl/plugins/sneak.fnl @@ -4,4 +4,4 @@ (set vim.g.sneak#label 1) (utils.keymap [:n :o] : "Sneak_s" {:noremap false}) -(utils.keymap [:n :o] : "Sneak_s" {:noremap false}) +(utils.keymap [:n :o] : "Sneak_S" {:noremap false})