Compare commits

...

34 commits
1.0 ... master

Author SHA1 Message Date
Јован Ђокић-Шумарац 1776bc8edc add ls 2025-01-18 19:59:42 +01:00
Јован Ђокић-Шумарац bde11a8bd6
update 2024-08-14 16:19:09 +02:00
Јован Ђокић-Шумарац ca0d4faec4
remove oil, hlchunk, add catppuccin, racket lsp 2024-07-22 23:27:02 +02:00
Јован Ђокић-Шумарац 65290b67f7
Merge branch 'recover' 2024-07-20 13:24:24 +02:00
Јован Ђокић-Шумарац c292dd4580 remove some stuff 2024-07-20 13:22:11 +02:00
Јован Ђокић-Шумарац 4d410eee9d
remove hlchunk, change colorscheme 2024-07-20 13:18:47 +02:00
Јован Ђокић-Шумарац 9aa3dd7cb7
replace nvim api commands with hibiscus macros 2024-07-16 16:22:53 +02:00
Јован Ђокић-Шумарац f77c851258 add fennel lsp and update readme 2024-07-15 00:56:29 +02:00
Јован Ђокић-Шумарац 5c82459251 edit readme 2024-07-14 19:40:04 +02:00
Јован Ђокић-Шумарац 92bc291040 update gitignore 2024-07-14 19:18:04 +02:00
Јован Ђокић-Шумарац f472d4fad6 update readme, remove lua_bak 2024-07-14 19:17:09 +02:00
Јован Ђокић-Шумарац 0fb906f746 Merge branch 'fennel/rewrite' 2024-07-14 19:14:01 +02:00
Јован Ђокић-Шумарац 2afcf3205b rewrite in fennel, second cour 2024-07-14 19:04:45 +02:00
Јован Ђокић-Шумарац 469ebea279 replace options dir to be fennel code 2024-07-12 22:10:34 +02:00
Јован Ђокић-Шумарац ba38b7bad1 remove startup page 2024-07-12 17:32:10 +02:00
Јован Ђокић-Шумарац bfd59534b4 change stuff i guess 2024-07-12 11:57:47 +02:00
Јован Ђокић-Шумарац 65128a7629 remove unused config 2024-07-10 13:25:26 +02:00
Јован Ђокић-Шумарац 15bcef5ea5 Merge remote-tracking branch 'origin/dev' 2024-07-10 10:59:33 +02:00
Јован Ђокић-Шумарац 6505b7b64f Some changes i guess 2024-07-10 10:57:53 +02:00
Јован Ђокић-Шумарац 06dce3980e use mini.clue 2024-06-16 16:52:09 +02:00
Јован Ђокић-Шумарац 15b55beb06 remove some plugins 2024-06-15 16:35:23 +02:00
Јован Ђокић-Шумарац cc8be5490f apply rework 2024-02-10 19:47:43 +01:00
Јован Ђокић-Шумарац 728f11abcf Merge branch 'test/rewrite' into 'master'
Test/rewrite

See merge request sumarac/trixy!2
2024-02-05 23:51:20 +00:00
Јован Ђокић-Шумарац b4c75a73d8 rework 2024-02-06 00:47:31 +01:00
Јован Ђокић-Шумарац 1e8e67a6eb Back up work 2024-02-04 00:25:41 +01:00
Јован Ђокић-Шумарац 9a4a943a31 Config for wilder and neovide options 2023-08-10 22:31:27 +02:00
Јован Ђокић-Шумарац 42c815505a Added wilder! Better wild menu and ui~ 2023-08-10 00:23:12 +02:00
Јован Ђокић-Шумарац 88628d13a5 Added Zettelkasten! 2023-08-09 23:39:10 +02:00
Јован Ђокић-Шумарац b6d268cc4e Removed noice, nomodoro, neorg ; new lualine theme 2023-08-08 20:41:14 +02:00
Јован Ђокић-Шумарац 8cedca2daf Quickfix for nvimtree 2023-08-07 21:03:06 +02:00
Јован Ђокић-Шумарац 924b37ba12 Replaced ChadTree with NvimTree, spelling fixes 2023-08-07 20:58:04 +02:00
Јован Ђокић-Шумарац 413682c1d9 Merge branch 'master' into 'master'
Removes duplicate line in keybind.lua

See merge request sumarac/trixy!1
2023-08-07 18:44:12 +00:00
HARSH SHETH 55dad131fb Removes duplicate line in keybind.lua 2023-08-03 12:00:48 +00:00
Јован Ђокић-Шумарац 8cc56f2ca8 Added comments, unified indentation and style 2023-08-03 12:56:24 +02:00
53 changed files with 678 additions and 881 deletions

2
.gitignore vendored Normal file → Executable file
View file

@ -1 +1,3 @@
lua/
lua_bak/
lazy-lock.json

0
LICENSE Normal file → Executable file
View file

58
README.md Normal file → Executable file
View file

@ -1,59 +1,23 @@
<p align="center">
<img src="pictures/trixy.png" />
</p>
# Trtixy is a begginer friendy distro of neovim, that aims to be powerfull while remaining minimal.
# Opinionated configuration for NeoVim, aiming to be powerful whilst being minimal.
## Notable plugins and features include :
- `onedark` and `nightfox` colorschemes
- `zen-mode` with `twilight`
- new, modern ui by `nui` and `noice`
- improved camelCase navigation wit w, b, e etc
- `harpoon` for easier jumping between project files
- pomodoro timer using `nomodoro` ; when pomodoro timer runs out, break starts with `cellular-automation.nvim`
- git integration using `gitsigns` and `neogit`
- debugger interface with `nvim-dap-ui`
- `hlchunk.nvim` used for highlighting current scope
- `veil` as a dashboard and startpage
- `chadtree` for file tree view
- Whole configuration is written in `fennel` - lisp that compiles into lua
- `lazy.nvim` for plugin management
- `tangerine` for fennel compilation
- `hibiscus` for neovim fennel macros
- `markview.nvim` for amazing markdown previewing
- `oil.nvim` for buffer filesystem manipulation
- `lsp-zero` as a language server setup, simply briliant
- ...
# Installation
```
$ git clone https://gitlab.com/sumarac/trixy ~/.config/nvim/
# doas pacman -S fennel
$ git clone https://git.bonsai.cool/brk/trixy ~/.config/nvim/
nvim +"Lazy sync"
```
It should pull Lazy.nvim itself, and also all of the plugins. Run :Mason to install your Language Servers of choice.
# Screenshots
### Dashboard with screensaver falling leaves
![image](pictures/veil.png)
### Highlighting current scope
![image](pictures/hlchunks.png)
### File tree
![image](pictures/chadtree.png)
### Language Server
![image](pictures/lsp-cmp.png)
![image](pictures/errors.png)
### Zen mode, with twilight
![image](pictures/zen.png)
### Git integration
![image](pictures/git.png)

81
fnl/options/colors.fnl Normal file
View file

@ -0,0 +1,81 @@
(import-macros {: set! : exec!} :hibiscus.vim)
(local espresso (require :catppuccin))
(local color_overrides
{ :macchiato
{ :rosewater :#F5B8AB
:flamingo :#F29D9D
:pink :#AD6FF7
:mauve :#FF8F40
:red :#E66767
:maroon :#EB788B
:peach :#FAB770
:yellow :#FACA64
:green :#70CF67
:teal :#4CD4BD
:sky :#61BDFF
:sapphire :#4BA8FA
:blue :#00BFFF
:lavender :#00BBCC
:text :#C1C9E6
:subtext1 :#A3AAC2
:subtext0 :#8E94AB
:overlay2 :#7D8296
:overlay1 :#676B80
:overlay0 :#464957
:surface2 :#3A3D4A
:surface1 :#2F313D
:surface0 :#1D1E29
:base :#0b0b0b
:mantle :#11111a
:crust :#191926 } })
(local integrations
{ :cmp true
:gitsigns true
:treesitter true
:telescope
{ :enabled true
:style :nvchad }
:mini
{ :enabled true} })
(espresso.setup
{ :flavour :macchiato
:color_overrides color_overrides
:integrations integrations })
(set! background :dark)
(exec! [colorscheme catppuccin])
; (local highlight_overrides
; { :all
; (fn [colors]
; :CurSearch { :bg colors.sky }
; :IncSearch { :bg colors.sky }
; :CursorLineNr { :fg colors.blue :style [:bold] }
; :DashboardFooter { :fg colors.overlay0 }
; :TreesitterContextBottom { :style {} }
; :WinSeparator { :fg colors.overlay0 :style [:bold] }
; :Headline { :style [:bold] }
; :Headline1 { :fg colors.blue :style [:bold] }
; :Headline2 { :fg colors.pink :style [:bold] }
; :Headline3 { :fg colors.lavender :style [:bold] }
; :Headline4 { :fg colors.green :style [:bold] }
; :Headline5 { :fg colors.peach :style [:bold] }
; :Headline6 { :fg colors.flamingo :style [:bold] }
; :rainbow1 { :fg colors.blue :style [:bold] }
; :rainbow2 { :fg colors.pink :style [:bold] }
; :rainbow3 { :fg colors.lavender :style [:bold] }
; :rainbow4 { :fg colors.green :style [:bold] }
; :rainbow5 { :fg colors.peach :style [:bold] }
; :rainbow6 { :fg colors.flamingo :style [:bold] }
; "@markup.italic" { :fg colors.blue :style [:italic] }
; "@markup.strong" { :fg colors.blue :style [:bold] } )})

6
fnl/options/init.fnl Executable file
View file

@ -0,0 +1,6 @@
(local dir :options.)
(fn modul [name] (.. dir name))
(require (modul :colors))
(require (modul :keybind))
(require (modul :opts))

41
fnl/options/keybind.fnl Executable file
View file

@ -0,0 +1,41 @@
(require-macros :hibiscus.core)
(require-macros :hibiscus.vim)
(g! mapleader " ")
; trim those bastards
(map! [n :noremap] :<leader>tw "<cmd>lua MiniTrailspace.trim()<CR>")
; Telescope mappings
(map! [n :noremap] :<leader>fb "<cmd>Telescope buffers<CR>")
(map! [n :noremap] :<leader>ff "<cmd>Telescope find_files<CR>")
(map! [n :noremap] :<leader>fs "<cmd>Telescope current_buffer_fuzzy_find<CR>")
(map! [n :noremap] :<leader>gs "<cmd>Telescope git_status<CR>")
(map! [n :noremap] :<leader>fg "<cmd>Telescope live_grep<CR>")
(map! [n :noremap] :<leader>fh "<cmd>Telescope help_tags<CR>")
(map! [n :noremap] :<leader>fk "<cmd>Telescope keymaps<CR>")
(map! [n :noremap] :<leader>tt "<cmd>terminal<CR>")
(map! [n :noremap] :<C-Space> "<cmd>bprev<CR>")
; remap keys so that they dont skip camelCase
(map! [n :noremap :silent] :w "<Plug>CamelCaseMotion_w")
(map! [n :noremap :silent] :b "<Plug>CamelCaseMotion_b")
(map! [n :noremap :silent] :e "<Plug>CamelCaseMotion_e")
(map! [n :noremap :silent] :ge "<Plug>CamelCaseMotion_ge")
; this little guy helps you move text, really helpful
(map! [v :noremap] :J ":m '>+1<CR>gv=gv")
(map! [v :noremap] :K ":m '<-2<CR>gv=gv")
; Cursor always stays on center
(map! [n :noremap] :J "mzJ`z")
(map! [n :noremap] :<C-d> "<C-d>zz")
(map! [n :noremap] :<C-u> "<C-u>zz")
(map! [n :noremap] :n "nzzzv")
(map! [n :noremap] :N "Nzzzv")
; interface with system clipboard
(map! [nvx :noremap :silent] :<leader>y "\"+y")
(map! [nvx :noremap :silent] :<leader>Y "\"+yy")
(map! [nvx :noremap :silent] :<leader>p "\"+p")

81
fnl/options/opts.fnl Normal file
View file

@ -0,0 +1,81 @@
(import-macros {: set! : g! : exec!} :hibiscus.vim)
(set! number true) ; enable line number
(set! relativenumber true) ; enable relative line number
(set! undofile true) ; persistent undo
(set! backup false) ; disable backup
(set! autowrite true) ; auto write buffer when it's not focused
(set! ignorecase true) ; case insensitive on search..
(set! list true) ; display listchars
(set! smartindent false) ; smarter indentation
(set! splitright true) ; split right instead of left
(set! splitkeep :screen) ; stabilize split
(set! startofline false) ; don't go to the start of the line when moving to another file
(set! swapfile false) ; disable swapfile
(set! termguicolors true) ; true colours for better experience
(set! wrap false) ; don't wrap lines
(set! backupcopy :yes) ; fix weirdness for stuff that replaces the entire file when hot reloading
(set! smarttab false)
(set! tabstop 4)
(set! softtabstop 4)
(set! shiftwidth 4)
(set! expandtab false)
(set! compatible false) ; disable compatibility with old vi
(set! showmatch true) ; show matches while searching for text
(set! hlsearch true) ; highlight text that has been searched
(set! incsearch true) ; incramentally search
(set! autoindent true)
(set! wildmode "longest,list")
(set! inccommand :split)
; (lua "opt.formatoptions:remove \"o\"")
(set! mouse :v)
(set! mouse :a)
; (set! clipboard :unnamedplus) ; use system clipboard
(set! ttyfast true)
(set! cursorline true)
(set! splitbelow true)
; (set! autochdir true)
(set! signcolumn :yes:1)
(set! showmode false)
(set! cmdheight 0)
(vim.cmd "syntax match keyword \"\\<lambda\\>\" conceal cchar=λ")
(set! conceallevel 1)
; Skip loading of following neovim builtins
(local default_plugins {
:2html_plugin
:getscript
:getscriptPlugin
:gzip
:logipat
:netrw
:netrwPlugin
:netrwSettings
:netrwFileHandlers
:matchit
:tar
:tarPlugin
:rrhelper
:spellfile_plugin
:vimball
:vimballPlugin
:zip
:zipPlugin
:tutor
:rplugin
:syntax
:synmenu
:optwin
:compiler
:bugreport
:ftplugin })
(each [_ plug (ipairs default_plugins)]
(g! (.. :loaded plug) 1))

View file

@ -0,0 +1,6 @@
(import-macros {: set!} :hibiscus.vim)
(set! termguicolors true)
(local colorizer (require :nvim-highlight-colors))
(colorizer.setup)

25
fnl/plugins/devicons.fnl Executable file
View file

@ -0,0 +1,25 @@
(local plug (require :nvim-web-devicons))
(plug.setup [
:strict true
:default true
:color_icons true
:override
[ :zsh
[ :icon ""
:color "#428850"
:cterm_color "65"
:name "zsh" ]]
:override_by_filename
[ :.gitignore
[ :icon ""
:color "#f1502f"
:name "gitignore" ]]
:override_by_extension
[ :log
[ :icon ""
:color "#81e043"
:name "Log" ]] ])

40
fnl/plugins/gitsigns.fnl Executable file
View file

@ -0,0 +1,40 @@
(local gitsigns (require :gitsigns))
(gitsigns.setup {
:signs
{ :add {:text :▍}
:change {:text :▍}
:delete {:text :▍}
:topdelete {:text :▍}
:changedelete {:text :▍}
:untracked {:text :▍} }
:signcolumn true
:numhl false
:linehl false
:word_diff false
:watch_gitdir { :follow_files true }
:attach_to_untracked true
:current_line_blame false
:current_line_blame_opts
{ :virt_text true
:virt_text_pos :eol
:delay 1000
:ignore_whitespace false }
:current_line_blame_formatter "<author>, <author_time:%Y-%m-%d> - <summary>"
:sign_priority 6
:update_debounce 100
:status_formatter nil
:max_file_length 40000
:preview_config
{ :border :single
:style :minimal
:relative :cursor
:row 0
:col 1 } })

18
fnl/plugins/harpoon.fnl Normal file
View file

@ -0,0 +1,18 @@
(import-macros {: map!} :hibiscus.vim)
(local harpoon (require :harpoon))
(harpoon.setup)
(map! [n :noremap] :<leader>ha (fn [] (harpoon.list:append)))
(map! [n :noremap] :<C-e> (fn [] (harpoon.ui.toggle_quick_menu (harpoon.list))))
(map! [n :noremap] :<C-h> (fn [] (harpoon.list:select 1)))
(map! [n :noremap] :<C-t> (fn [] (harpoon.list:select 2)))
(map! [n :noremap] :<C-n> (fn [] (harpoon.list:select 3)))
(map! [n :noremap] :<C-s> (fn [] (harpoon.list:select 4)))
;; Toggle previous & next buffers stored within Harpoon list
(map! [n :noremap] :<C-S-P> (fn [] (harpoon.list:prev)))
(map! [n :noremap] :<C-S-N> (fn [] (harpoon.list:next)))

27
fnl/plugins/hlchunk.fnl Executable file
View file

@ -0,0 +1,27 @@
(local hlchunk (require :hlchunk))
(hlchunk.setup {
:indent {
:enable true
:chars [ "." "." "." "." ]
:style
{ :#888888
:#666666
:#444444
:#333333
:#333333
:#333333
:#333333
:#333333 } }
:blank { :enable false }
:chunk { :enable false }
:line_num {
:enable false
:style :#ADBC9F
}
})

39
fnl/plugins/incline.fnl Normal file
View file

@ -0,0 +1,39 @@
(local incline (require :incline))
(incline.setup
{ :highlight
{ :groups
{ :InclineNormal
{ :default true
:group :lualine_a_normal }
:InclineNormalNC
{ :default true
:group :Comment } }}
:window
{ :margin
{ :vertical 0
:horizontal 1 }}
; :render
; (fn [props]
; (let
; [
; filename (vim.fn.fnamemodify (vim.api.nvim_buf_get_name props.buf) ::t)
; [icon color] (require :nvim-web-devicons).get_icon_color filename
; ]
;
; ([
; { icon
; { :guifg color } }
;
; [(if icon " " "")]
;
; [filename] ]) ))
})
; render = function(props)
; local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ":t")
; local icon, color = require("nvim-web-devicons").get_icon_color(filename)
; return { { icon, guifg = color }, { icon and " " or "" }, { filename } }
; end,

15
fnl/plugins/init.fnl Executable file
View file

@ -0,0 +1,15 @@
(local dir :plugins.)
(fn modul [name] (.. dir name))
(require (modul :lazy))
(require (modul :devicons))
(require (modul :gitsigns))
(require (modul :harpoon))
(require (modul :lsp-zero))
(require (modul :lualine))
(require (modul :mini))
(require (modul :telescope))
(require (modul :treesitter))
(require (modul :wilder))
(require (modul :incline))
(require (modul :colorizer))

76
fnl/plugins/lazy.fnl Executable file
View file

@ -0,0 +1,76 @@
(local lazypath (.. (vim.fn.stdpath :data) :/lazy/lazy.nvim))
(if (not (vim.loop.fs_stat lazypath))
(vim.fn.system
[:git :clone :--filter=blob:none :https://github.com/folke/lazy.nvim.git :--branch=stable lazypath]))
(vim.opt.rtp:prepend lazypath)
(local lazy (require :lazy))
(local plug 1)
(local plugins [
:ThePrimeagen/vim-be-good
:udayvir-singh/tangerine.nvim
:udayvir-singh/hibiscus.nvim
:lambdalisue/nerdfont.vim
{ plug :catppuccin/nvim
:name :catppuccin
:priority 1000 }
:gelguy/wilder.nvim
:bkad/camelcasemotion
:lewis6991/gitsigns.nvim
{ plug :b0o/incline.nvim
:event [:BufReadPre] }
:echasnovski/mini.nvim
:brenoprata10/nvim-highlight-colors
{ plug :svampkorg/moody.nvim
:event [:ModeChanged :BufWinEnter :WinEnter]
:opts [] }
{ plug :nvim-telescope/telescope-fzf-native.nvim
:build :make }
{ plug :nvim-telescope/telescope.nvim
:tag :0.1.8
:dependencies [:nvim-lua/plenary.nvim] }
{ plug :OXY2DEV/markview.nvim
:dependencies
[ :nvim-treesitter/nvim-treesitter
:nvim-tree/nvim-web-devicons ] }
{ plug :ThePrimeagen/harpoon
:branch :harpoon2
:dependencies [:nvim-lua/plenary.nvim] }
{ plug :nvim-lualine/lualine.nvim
:dependencies [:nvim-tree/nvim-web-devicons] }
{ plug :nvim-treesitter/nvim-treesitter
:build ":TSUpdate" }
{ plug :VonHeikemen/lsp-zero.nvim
:branch "v3.x"
:dependencies
[ :neovim/nvim-lspconfig
:williamboman/mason.nvim
:williamboman/mason-lspconfig.nvim
:hrsh7th/nvim-cmp
:hrsh7th/cmp-nvim-lsp
:L3MON4D3/LuaSnip ]}
{ plug :m4xshen/hardtime.nvim
:dependencies
[ :MunifTanjim/nui.nvim
:nvim-lua/plenary.nvim ] } ])
(lazy.setup plugins)

62
fnl/plugins/lsp-zero.fnl Executable file
View file

@ -0,0 +1,62 @@
(local lsp (require :lsp-zero))
(lsp.preset)
(local lspconfig (require :lspconfig))
(lspconfig.lua_ls.setup (lsp.nvim_lua_ls))
(local mason (require :mason))
(mason.setup)
(local mason-lspc (require :mason-lspconfig))
(mason-lspc.setup
{ :ensure-installed
[ :fennel-ls
:lua-language-server
:python-lsp-server
:zls ]
:automatic_installation true })
(local cmp (require :cmp))
(local cmp_action (lsp.cmp_action))
(lsp.on_attach (fn [_ bufnr] lsp.default_keymaps {:buffer bufnr}))
(lspconfig.pylsp.setup
{ :setings
{ :pylsp
{ :plugins
{ :pycodestyle
{ :ignore [:W391 :E303 :E226]
:maxLineLength 120 } }}}})
(lsp.setup)
; (local fennel-ls lspconfig.fennel_ls)
; (fennel-ls.setup {})
(lspconfig.racket_langserver.setup {})
(lspconfig.zls.setup {})
(cmp.setup
{ :mapping
{ :<CR> (cmp.mapping.confirm {:select true})
:<Tab> (cmp.mapping
(fn [fallback]
(if (cmp.visible)
(cmp.select_next_item)
(fallback)) [:i :s] ))
:<S-Tab> (cmp.mapping
(fn [fallback]
(if (cmp.visible)
(cmp.select_prev_item)
(fallback)) [:i :s] ))
:<C-Space> cmp.mapping.complete
:<C-f> cmp_action.luasnip_jump_forward
:<C-b> cmp_action.luasnip_jump_backward }})

11
fnl/plugins/lualine.fnl Executable file
View file

@ -0,0 +1,11 @@
(local lualine (require :lualine))
(lualine.setup
{ :options
{ :section_separators
{ :left :
:right : }
:component_separators
{ :left :
:right : }} })

14
fnl/plugins/mini.fnl Normal file
View file

@ -0,0 +1,14 @@
(local cursorword (require :mini.cursorword))
(cursorword.setup)
(local trailspace (require :mini.trailspace))
(trailspace.setup)
(local pairs (require :mini.pairs))
(pairs.setup)
(local clue (require :mini.clue))
(clue.setup)
(local surround (require :mini.surround))
(surround.setup)

2
fnl/plugins/oil.fnl Normal file
View file

@ -0,0 +1,2 @@
(local oil (require :oil))
(oil.setup)

11
fnl/plugins/telescope.fnl Normal file
View file

@ -0,0 +1,11 @@
(local telescope (require :telescope))
(telescope.setup
{ :extansions
{ :fzf
{ :fuzzy true
:override_generic_sorter true
:override_file_sorter true
:case_mode :smart_case } }})
(telescope.load_extension :fzf)

26
fnl/plugins/treesitter.fnl Executable file
View file

@ -0,0 +1,26 @@
(local configs (require :nvim-treesitter.configs))
; (local parsers (require :nvim-treesitter.parsers))
(configs.setup
{ :ensure_installed
[ :c
:lua
:vim
:vimdoc
:query
:haskell
:go
:bash
:python
:fennel
:hyprlang ]
:sync_install false
:auto_install true
:highlight
{ :enable true }})
(vim.filetype.add
{ :pattern
{ :.*/hypr/.*%.conf :hyprlang }})

24
fnl/plugins/wilder.fnl Executable file
View file

@ -0,0 +1,24 @@
; (local wilder (require :wilder))
;
; (wilder.setup {
; :modes [":" "/" "?"]
; })
;
; (wilder.set_option :renderer (wilder.renderer_mux {
; ":" (wilder.popupmenu_renderer {
; :highlighter wilder.basic_highlighter
; :left [ " " wilder.popupmenu_devicons ]
; :right [ " " wilder.popupmenu_scrollbar ]
; })
;
; "/" (wilder.popupmenu_renderer {
; :highlighter wilder.basic_highlighter
; :left [ "" wilder.popupmenu_devicons ]
; :right [ "" wilder.popupmenu_scrollbar ]
; })
; }))
;
; (wilder.set_option :renderer
; (wilder.popupmenu_renderer
; { :max_height :20%
; :min_width :100% }))

27
init.fnl Normal file
View file

@ -0,0 +1,27 @@
; ████████╗██████╗ ██╗██╗ ██╗██╗ ██╗
; ╚══██╔══╝██╔══██╗██║╚██╗██╔╝╚██╗ ██╔╝
; ██║ ██████╔╝██║ ╚███╔╝ ╚████╔╝
; ██║ ██╔══██╗██║ ██╔██╗ ╚██╔╝
; ██║ ██║ ██║██║██╔╝ ██╗ ██║
; ╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═
; Listen up, you motherfuckers,
; Those Ivy League dopes, they wanna
; mock us. Tell 'em all this is war.
; And not fighting a war is for suckers.
; (import-macros {: g! : set!} :hibiscus.vim)
; When using neovide, use these settings
; (when vim.g.neovide (do
; (set! guifont "FiraCode Nerd Font:h14")
; (g! neovide_scale_factor 1.0)
; (g! neovide_refresh_rate 120)
; (g! neovide_refresh_rate_idle 5)
; (g! neovide_cursor_antialiasing true)
; (g! neovide_cursor_animate_in_insert_mode true)
; (g! neovide_cursor_vfx_mode "ripple")))
(require :plugins)
(require :options)

44
init.lua Normal file → Executable file
View file

@ -1,13 +1,35 @@
-- needed to fix deprecation warning
vim.tbl_islist = vim.islist
-- bootstrap tangerine and hibiscus in order to have fennel support
local function bootstrap(url, ref)
local name = url:gsub(".*/", "")
local path
path = vim.fn.stdpath("data") .. "/lazy/" .. name
vim.opt.rtp:prepend(path)
if vim.fn.isdirectory(path) == 0 then
print(name .. ": installing in data dir...")
vim.fn.system {"git", "clone", url, path}
if ref then
vim.fn.system {"git", "-C", path, "checkout", ref}
end
vim.cmd "redraw"
print(name .. ": finished installing")
end
end
bootstrap("https://github.com/udayvir-singh/tangerine.nvim")
bootstrap("https://github.com/udayvir-singh/hibiscus.nvim")
-- ████████╗██████╗ ██╗██╗ ██╗██╗ ██╗
-- ╚══██╔══╝██╔══██╗██║╚██╗██╔╝╚██╗ ██╔╝
-- ██║ ██████╔╝██║ ╚███╔╝ ╚████╔╝
-- ██║ ██╔══██╗██║ ██╔██╗ ╚██╔╝
-- ██║ ██║ ██║██║██╔╝ ██╗ ██║
-- ╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═╝
require("plugins")
require("options")
require "tangerine".setup {
compiler = {
verbose = false,
hooks = { "onsave", "oninit" }
}
}

View file

@ -1,6 +0,0 @@
-- vim.opt.termguicolors = true
-- vim.opt.background = "dark"
-- vim.g.onedark_config = { style = 'darker' }
vim.cmd("colorscheme carbonfox")

View file

@ -1,3 +0,0 @@
require("options.colors")
require("options.opts")
require("options.keybind")

View file

@ -1,81 +0,0 @@
local map = vim.api.nvim_set_keymap
local cmap = vim.keymap.set
local options = { noremap = true }
local cmd_options = { noremap = true, silent = true }
local tele = require('telescope.builtin')
local neogit = require('neogit')
vim.g.mapleader = " "
map("n", "<leader>g", "<cmd>Neogit kind=split<CR>", options)
-- TELESCOPE
cmap("n", "<leader>ff", tele.find_files, options)
map("n", "<leader>fh", "<cmd>Telescope find_files hidden=true<CR>", options)
cmap("n", "<leader>fg", tele.git_files, options)
cmap("n", "<leader>fg", tele.git_files, options)
cmap("n", "<leader>fs", function()
tele.grep_string({ search = vim.fn.input("Grep > ") });
end)
map("n", "<leader>tw", "<cmd>lua MiniTrailspace.trim()<CR>", options)
map("n", "<leader>fm", "<cmd>CHADopen<CR>", options)
map("n", "<leader>fc", "<cmd>NERDTreeClose<CR>", options)
map("n", "<leader>tt", "<cmd>12 split <CR><cmd>Tnew<CR>", options)
map("n", "<leader>zt", "<cmd>Twilight<CR>", options)
map("n", "<leader>zz", "<cmd>ZenMode<CR>", options)
map("n", "w", "<Plug>CamelCaseMotion_w", cmd_options)
map("n", "b", "<Plug>CamelCaseMotion_b", cmd_options)
map("n", "e", "<Plug>CamelCaseMotion_e", cmd_options)
map("n", "ge", "<Plug>CamelCaseMotion_ge", cmd_options)
map("n", "<leader>v", "<cmd>Veil<CR>", options)
map("n", "<leader>p", "<cmd>NomoMenu<CR>", options)
map("v", "J", ":m '>+1<CR>gv=gv", options)
map("v", "K", ":m '<-2<CR>gv=gv", options)
map("n", "J", "mzJ`z", options)
map("n", "<C-d>", "<C-d>zz", options)
map("n", "<C-u>", "<C-u>zz", options)
map("n", "n", "nzzzv", options)
map("n", "N", "Nzzzv", options)
-- greatest remap ever
cmap("x", "p", [["_dP]])
cmap("x", "<leader>p", [["+dP]])
cmap({ "n", "v" }, "<leader>d", [["_d]])
map("n", "<C-k>", "<cmd>cnext<CR>zz", options)
map("n", "<C-j>", "<cmd>cprev<CR>zz", options)
map("n", "<leader>k", "<cmd>lnext<CR>zz", options)
map("n", "<leader>j", "<cmd>lprev<CR>zz", options)
cmap("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
map("n", "<leader>mr", "<cmd>CellularAutomaton make_it_rain<CR>", options)

View file

@ -1,71 +0,0 @@
local o = vim.opt
o.number = true -- enable line number
o.relativenumber = true -- enable relative line number
o.undofile = true -- persistent undo
o.backup = false -- disable backup
o.autowrite = true -- auto write buffer when it's not focused
o.ignorecase = true -- case insensitive on search..
o.list = true -- display listchars
o.smartindent = true -- smarter indentation
o.smarttab = true -- make tab behaviour smarter
o.splitright = true -- split right instead of left
o.splitkeep = "screen" -- stabilize split
o.startofline = false -- don't go to the start of the line when moving to another file
o.swapfile = false -- disable swapfile
o.termguicolors = true -- true colours for better experience
o.wrap = false -- don't wrap lines
o.backupcopy = "yes" -- fix weirdness for stuff that replaces the entire file when hot reloading
o.compatible = false
o.showmatch = true
o.hlsearch = true
o.incsearch = true
o.tabstop = 16
o.softtabstop = 4
o.shiftwidth = 4
o.autoindent = true
o.wildmode = "longest,list"
o.mouse = "v"
o.mouse = "a"
o.clipboard = "unnamedplus"
o.ttyfast = true
o.cursorline = true
o.splitbelow = true
o.autochdir = true
o.signcolumn="yes:1"
o.shell = "/bin/dash"
vim.api.nvim_command("filetype off")
vim.api.nvim_command("let &runtimepath.=',~/.vim/bundle/neoterm'")
vim.api.nvim_command("filetype plugin on")
vim.api.nvim_command("filetype plugin indent on")
vim.api.nvim_command("syntax on")
local disabled_built_ins = {
"netrw",
"netrwPlugin",
"netrwSettings",
"netrwFileHandlers",
"gzip",
"zip",
"zipPlugin",
"tar",
"tarPlugin",
"getscript",
"getscriptPlugin",
"vimball",
"vimballPlugin",
"2html_plugin",
"logipat",
"rrhelper",
"spellfile_plugin",
"matchit"
}
for _, plugin in pairs(disabled_built_ins) do
vim.g["loaded_" .. plugin] = 1
end

View file

@ -1,42 +0,0 @@
require'nvim-web-devicons'.setup {
-- your personnal icons can go here (to override)
-- you can specify color or cterm_color instead of specifying both of them
-- DevIcon will be appended to `name`
override = {
zsh = {
icon = "",
color = "#428850",
cterm_color = "65",
name = "Zsh"
}
};
-- globally enable different highlight colors per icon (default to true)
-- if set to false all icons will have the default icon's color
color_icons = true;
-- globally enable default icons (default to false)
-- will get overriden by `get_icons` option
default = true;
-- globally enable "strict" selection of icons - icon will be looked up in
-- different tables, first by filename, and if not found by extension; this
-- prevents cases when file doesn't have any extension but still gets some icon
-- because its name happened to match some extension (default to false)
strict = true;
-- same as `override` but specifically for overrides by filename
-- takes effect when `strict` is true
override_by_filename = {
[".gitignore"] = {
icon = "",
color = "#f1502f",
name = "Gitignore"
}
};
-- same as `override` but specifically for overrides by extension
-- takes effect when `strict` is true
override_by_extension = {
["log"] = {
icon = "",
color = "#81e043",
name = "Log"
}
};
}

View file

@ -1,9 +0,0 @@
require('drop').setup
{
---@type DropTheme|string
theme = "leaves", -- can be one of rhe default themes, or a custom theme
max = 15, -- maximum number of drops on the screen
interval = 100, -- every 150ms we update the drops
screensaver = 1000 * 60 * 1, -- show after 5 minutes. Set to false, to disable
filetypes = { "veil" }, -- will enable/disable automatically for the following filetypes
}

View file

@ -1,48 +0,0 @@
require('gitsigns').setup {
signs = {
add = { text = '' },
change = { text = '' },
delete = { text = '' },
topdelete = { text = '' },
changedelete = { text = '' },
untracked = { text = '' },
},
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
follow_files = true
},
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
},
current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = 'single',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1
},
yadm = {
enable = false
},
}

View file

@ -1,13 +0,0 @@
local mark = require("harpoon.mark")
local ui = require("harpoon.ui")
vim.g.mapleader = " "
vim.keymap.set("n", "<leader>ma", mark.add_file)
vim.keymap.set("n", "<leader>mm", ui.toggle_quick_menu)
vim.keymap.set("n", "<C-h>", function() ui.nav_file(1) end)
vim.keymap.set("n", "<C-t>", function() ui.nav_file(2) end)
vim.keymap.set("n", "<C-n>", function() ui.nav_file(3) end)
vim.keymap.set("n", "<C-s>", function() ui.nav_file(4) end)

View file

@ -1,29 +0,0 @@
require('hlchunk').setup({
indent = {
chars = { "·", "·", "·", "·", }, -- more code can be found in https://unicodeplus.com/
-- chars = { "│", "¦", "┆", "┊", }, -- more code can be found in https://unicodeplus.com/
style = {
"#333333",
},
},
blank = {
enable = false,
},
chunk = {
chars = {
horizontal_line = "",
vertical_line = "",
left_top = "",
left_bottom = "",
right_arrow = ">",
},
style = "#00ffff",
},
line_num = {
style = "#00ffff",
},
})

View file

@ -1,20 +0,0 @@
require("plugins.lazy")
require("plugins.noice")
require("plugins.neorg")
require("plugins.treesitter")
require("plugins.drop")
require("plugins.mini")
require("plugins.lsp-zero")
require("plugins.nomodoro")
require("plugins.devicons")
require("plugins.lualine")
require("plugins.veil")
require("plugins.harpoon")
require("plugins.hlblocks")
require("plugins.gitsigns")

View file

@ -1,209 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
"navarasu/onedark.nvim",
"EdenEast/nightfox.nvim",
"folke/twilight.nvim",
"folke/zen-mode.nvim",
"MunifTanjim/nui.nvim",
"bkad/camelcasemotion",
"ThePrimeagen/harpoon",
"tpope/vim-commentary",
"eandrju/cellular-automaton.nvim",
"dbinagi/nomodoro",
-- indicate what has changed in git repo
"lewis6991/gitsigns.nvim",
-- like magit for emacs
{
"NeogitOrg/neogit",
dependencies = "nvim-lua/plenary.nvim",
config = true
},
-- Debugger UI
{
"rcarriga/nvim-dap-ui",
dependencies = {"mfussenegger/nvim-dap"}
},
-- Surround text with quotes etc
{
"kylechui/nvim-surround",
version = "*", -- Use for stability; omit to use `main` branch for the latest features
config = function()
require("nvim-surround").setup()
end
},
-- highlight current scope
{
"shellRaining/hlchunk.nvim",
event = { "UIEnter" },
},
-- Automagically close () "" and so on
{
'windwp/nvim-autopairs',
event = "InsertEnter",
opts = {} -- this is equalent to setup({}) function
},
-- better status line than stock one
{
"nvim-lualine/lualine.nvim",
dependencies =
{
"nvim-tree/nvim-web-devicons",
opt = true
}
},
{
"NvChad/nvim-colorizer.lua",
config = function()
require('colorizer').setup()
end,
},
-- LEARN HJKL DAMMIT
{
"m4xshen/hardtime.nvim",
lazy = true,
opts = {}
},
-- modern ui
{
"folke/noice.nvim",
config = function ()
require("plugins.noice")
end
},
-- dashboard and start page
{
"willothy/veil.nvim",
dependencies = {
"nvim-telescope/telescope.nvim",
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope-file-browser.nvim"
},
},
-- size does not matter
{
'echasnovski/mini.nvim',
version = false,
},
-- File manager who?
{
"ms-jpq/chadtree",
version = 'chad',
build = 'python3 -m chadtree deps',
},
-- need that syntax highlight amirite
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate"
},
-- the name says it all
{
"SirVer/ultisnips",
lazy = true
},
-- That shmexy latex plugin
{
"lervag/vimtex",
lazy = true
},
-- DAMN, org mode?
{
"nvim-neorg/neorg",
lazy = true
},
-- Cool screensaver !!
{
"folke/drop.nvim",
event = "VimEnter",
},
{
'VonHeikemen/lsp-zero.nvim',
branch = 'v2.x',
dependencies = {
-- LSP Support
{'neovim/nvim-lspconfig'}, -- Required
{'williamboman/mason.nvim'}, -- Optional
{'williamboman/mason-lspconfig.nvim'}, -- Optional
-- Autocompletion
{'hrsh7th/nvim-cmp'}, -- Required
{'hrsh7th/cmp-nvim-lsp'}, -- Required
{'L3MON4D3/LuaSnip'}, -- Required
}
},
})
vim.opt.laststatus=2
vim.keymap.set('i', '<Tab>', [[pumvisible() ? "\<C-n>" : "\<Tab>"]], { expr = true })
vim.keymap.set('i', '<S-Tab>', [[pumvisible() ? "\<C-p>" : "\<S-Tab>"]], { expr = true })

View file

@ -1,54 +0,0 @@
local lsp = require('lsp-zero').preset({})
lsp.on_attach(function(client, bufnr)
-- see :help lsp-zero-keybindings
-- to learn the available actions
lsp.default_keymaps({buffer = bufnr})
end)
-- (Optional) Configure lua language server for neovim
require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls())
lsp.setup()
-- You need to setup `cmp` after lsp-zero
local cmp = require('cmp')
local cmp_action = require('lsp-zero').cmp_action()
cmp.setup({
mapping = {
-- `Enter` key to confirm completion
['<CR>'] = cmp.mapping.confirm({select = true}),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
fallback()
end
end, {"i", "s"}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
end, {"i", "s"}),
-- Ctrl+Space to trigger completion menu
['<C-Space>'] = cmp.mapping.complete(),
-- Navigate between snippet placeholder
['<C-f>'] = cmp_action.luasnip_jump_forward(),
['<C-b>'] = cmp_action.luasnip_jump_backward(),
}
})

View file

@ -1,41 +0,0 @@
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'carbonfox',
component_separators = { left = '', right = ''},
section_separators = { left = '', right = ''},
disabled_filetypes = {
statusline = {},
winbar = {},
},
ignore_focus = {},
always_divide_middle = true,
globalstatus = false,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
}
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {'filename'},
lualine_x = { require("nomodoro").status },
lualine_y = {'progress'},
lualine_z = {'location'}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {'filename'},
lualine_x = {'location'},
lualine_y = {},
lualine_z = {}
},
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {}
}

View file

@ -1,2 +0,0 @@
require('mini.cursorword').setup()
require('mini.trailspace').setup()

View file

@ -1,13 +0,0 @@
require('neorg').setup {
load = {
["core.defaults"] = {}, -- Loads default behaviour
["core.concealer"] = {}, -- Adds pretty icons to your documents
["core.dirman"] = { -- Manages Neorg workspaces
config = {
workspaces = {
notes = "~/notes",
},
},
},
},
}

View file

@ -1,85 +0,0 @@
require("noice").setup({
noice = {
health = {
checker = false
},
cmdline = {
format = {
cmdline = {
pattern = "^:",
icon = "",
lang = "vim",
},
search_down = {
kind = "search",
pattern = "^/",
icon = "",
lang = "regex",
},
search_up = {
kind = "search",
pattern = "^%?",
icon = "",
lang = "regex"
},
filter = {
pattern = "^:%s*!",
icon = "$",
lang = "bash"
},
lua = {
pattern = "^:%s*lua%s+",
icon = "",
lang = "lua"
},
help = {
pattern = "^:%s*h%s+",
icon = ""
},
input = {}
}
},
opts = {
win_options = {
winhighlight = {
Normal = "NormalFloat",
FloatBorder = "FloatBorder"
}
}
}
},
lsp = {
progress = {
enabled = true
},
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true
}
},
views = {
cmdline_popup = {
position = {
row = 0,
col = "50%"
},
size = {
width = "98%"
},
border = {
style = "none",
padding = { 1, 1 },
},
}
},
presets = {
long_message_to_split = true,
lsp_doc_border = true
},
popupmenu = {
backend = "cmp"
},
format = {}
})

View file

@ -1,26 +0,0 @@
require('nomodoro').setup({
work_time = 1,
break_time = 1,
menu_available = true,
texts = {
on_break_complete = "BREAK IS UP!",
on_work_complete = "TIME IS UP!",
status_icon = "",
timer_format = '!%0M:%0S' -- To include hours: '!%0H:%0M:%0S'
},
on_work_complete = function()
vim.cmd('CellularAutomaton make_it_rain')
end,
on_break_complete = function()
vim.cmd('Veil')
end
})
require('lualine').setup({
sections = {
lualine_x = {
require('nomodoro').status,
}
}
})

View file

@ -1,15 +0,0 @@
require'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all" (the five listed parsers should always be installed)
ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "haskell", "go", "bash" },
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
auto_install = true,
highlight = {
enable = true,
},
}

View file

@ -1,56 +0,0 @@
local current_day = os.date("%A")
local builtin = require("veil.builtin")
require("veil").setup({
sections = {
builtin.sections.animated(builtin.headers.frames_days_of_week[current_day], {
hl = { fg = "#5de4c7" },
}),
builtin.sections.buttons({
{
icon = "",
text = "Find Files",
shortcut = "f",
callback = function()
require("telescope.builtin").find_files()
end,
},
{
icon = "",
text = "Find Word",
shortcut = "w",
callback = function()
require("telescope.builtin").live_grep()
end,
},
{
icon = "",
text = "Buffers",
shortcut = "b",
callback = function()
require("telescope.builtin").buffers()
end,
},
{
icon = "",
text = "Config",
shortcut = "c",
callback = function()
require("telescope").extensions.file_browser.file_browser({
path = vim.fn.stdpath("config"),
})
end,
},
}),
builtin.sections.oldfiles(),
},
mappings = {},
startup = true,
listed = false
})

BIN
pics/trixy.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB