1
Fork 0

A shit ton of stuff

This commit is contained in:
Matei Adriel 2022-07-19 21:19:36 +03:00
parent 7cbe73ad5b
commit c01ce48abe
20 changed files with 338 additions and 288 deletions

View file

@ -19,6 +19,7 @@ Table of my own keybinds. Here as documentation for myself. I am yet to include
| _cp_ | Use system clipboard | | | _cp_ | Use system clipboard | |
| _jl_ | Save | | | _jl_ | Save | |
| _jk_ | Exit insert mode | | | _jk_ | Exit insert mode | |
| _rw_ | Rename word under cursor | |
| _\<leader>k_ | Insert digraph | | | _\<leader>k_ | Insert digraph | |
| _\<leader>a_ | Swap last 2 used buffers | | | _\<leader>a_ | Swap last 2 used buffers | |
| C-n | Open tree | nvim-tree | | C-n | Open tree | nvim-tree |
@ -35,10 +36,6 @@ Table of my own keybinds. Here as documentation for myself. I am yet to include
| \<leader>rn | Rename | lspconfig | | \<leader>rn | Rename | lspconfig |
| \<leader>f | format | lspconfig | | \<leader>f | format | lspconfig |
### Lh-brackets
The default brackets I load in each buffer are (), [], "", '', {} and \`\`. Different brackets are added in different filetypes.
### Telescope ### Telescope
| Keybind | Description | Plugins | | Keybind | Description | Plugins |
@ -60,13 +57,13 @@ The default brackets I load in each buffer are (), [], "", '', {} and \`\`. Diff
| Keybind | Description | | Keybind | Description |
| ------- | ------------------- | | ------- | ------------------- |
| _sc_ | Case split | | _isc_ | Case split |
| _mc_ | Make case | | _imc_ | Make case |
| _ml_ | Make lemma | | _iml_ | Make lemma |
| _es_ | Expression search | | _ies_ | Expression search |
| _gd_ | Generate definition | | _igd_ | Generate definition |
| _rh_ | Refine hole | | _irh_ | Refine hole |
| _ac_ | Add clause | | _iac_ | Add clause |
### Purescript ### Purescript
@ -75,6 +72,12 @@ The default brackets I load in each buffer are (), [], "", '', {} and \`\`. Diff
| _vb_ | Make tmux run spago build in sepearate pane | | _vb_ | Make tmux run spago build in sepearate pane |
| _vt_ | Make tmux run spago test in separate pane | | _vt_ | Make tmux run spago test in separate pane |
### Nix
| Keybind | Description |
| ------- | ------------------------------------------- |
| _ug_ | Run nix-fetchgit on the current file |
### Lean ### Lean
- Extra brackets: ⟨⟩ - Extra brackets: ⟨⟩

View file

@ -0,0 +1,12 @@
local A = require("my.plugins.arpeggio")
local C = require("my.plugins.comment")
print("Initializing nix keybinds...")
-- Use _ug_ to fetchgit stuff
A.chordSilent("n", "ug",
":lua require('my.helpers.update-nix-fetchgit').update()<CR>",
{ settings = "b" })
-- Idk why this isn't here by default
C.setCommentString("nix", "# %s")

View file

@ -1,11 +1,13 @@
local arpeggio = require("my.plugins.arpeggio") local arpeggio = require("my.plugins.arpeggio")
print("Initializing nix keybinds...")
-- Use vt to test -- Use vt to test
arpeggio.chordSilent("n", "vt", ":VimuxRunCommand \"clear && spago test\"<CR>", arpeggio.chordSilent("n", "vt", ":VimuxRunCommand \"clear && spago test\"<CR>",
{settings = "b"}) { settings = "b" })
-- Use vb to build -- Use vb to build
arpeggio.chordSilent("n", "vb", ":VimuxRunCommand \"clear && spago build\"<CR>", arpeggio.chordSilent("n", "vb", ":VimuxRunCommand \"clear && spago build\"<CR>",
{settings = "b"}) { settings = "b" })
vim.opt.expandtab = true -- Use spaces for the tab char vim.opt.expandtab = true -- Use spaces for the tab char

View file

@ -5,36 +5,38 @@ local au = require("my.helpers.augroup")
local M = {} local M = {}
function M.map(mode, lhs, rhs, opts) function M.map(mode, lhs, rhs, opts)
if string.len(mode) > 1 then if string.len(mode) > 1 then
for i = 1, #mode do for i = 1, #mode do
local c = mode:sub(i, i) local c = mode:sub(i, i)
M.map(c, lhs, rhs, opts) M.map(c, lhs, rhs, opts)
end
else
local options = helpers.mergeTables(opts, {noremap = true})
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end end
else
local options = helpers.mergeTables(opts, { noremap = true })
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end
end end
function M.mapSilent(mode, lhs, rhs, opts) function M.mapSilent(mode, lhs, rhs, opts)
local options = helpers.mergeTables(opts, {silent = true}) local options = helpers.mergeTables(opts, { silent = true })
M.map(mode, lhs, rhs, options) M.map(mode, lhs, rhs, options)
end end
function M.setup() function M.setup()
M.map("n", "qq", ":wq<cr>") -- Create vertical split M.map("n", "qq", ":wq<cr>") -- Create vertical split
-- Create chords -- Create chords
if arpeggio ~= nil then if arpeggio ~= nil then
arpeggio.chord("n", "vs", "<C-w>v") -- Create vertical split arpeggio.chord("n", "vs", "<C-w>v") -- Create vertical split
arpeggio.chord("n", "ji", ":w<cr>") -- Saving arpeggio.chord("n", "ji", ":w<cr>") -- Saving
arpeggio.chord("i", "jk", "<Esc>") -- Remap Esc to jk arpeggio.chord("i", "jk", "<Esc>") -- Remap Esc to jk
arpeggio.chord("i", "<Leader>k", "<C-k><cr>") -- Rebind digraph insertion to leader+k arpeggio.chord("i", "<Leader>k", "<C-k><cr>") -- Rebind digraph insertion to leader+k
arpeggio.chord("inv", "<Leader>a", "<C-6><cr>") -- Rebind switching to the last pane using leader+a arpeggio.chord("inv", "<Leader>a", "<C-6><cr>") -- Rebind switching to the last pane using leader+a
arpeggio.chord("nv", "cp", "\"+") -- Press cp to use the global clipboard arpeggio.chord("inv", "<Leader>a", "<C-6><cr>") -- Rebind switching to the last pane using leader+a
end arpeggio.chord("nv", "cp", "\"+") -- Press cp to use the global clipboard
arpeggio.chord("n", "rw", ":%s/<C-r><C-w>/") -- Press rt to rename word under cursor
end
return M return M
end end
return M return M

View file

@ -1,52 +1,54 @@
local M = {} local M = {}
function M.setup() function M.setup()
local paq = require("paq") local paq = require("paq")
local themePackages = require("my.theme").deps local themePackages = require("my.theme").deps
local base = { local base = {
"neovim/nvim-lspconfig", -- configures lsps for me "neovim/nvim-lspconfig", -- configures lsps for me
"windwp/nvim-autopairs", -- closes pairs for me (should look for a better one) "windwp/nvim-autopairs", -- closes pairs for me (should look for a better one)
"nvim-lua/plenary.nvim", -- async utility lib it seems? "nvim-lua/plenary.nvim", -- async utility lib it seems?
"nvim-telescope/telescope.nvim", -- fuzzy search for say opening files "nvim-telescope/telescope.nvim", -- fuzzy search for say opening files
"purescript-contrib/purescript-vim", -- purescript support "purescript-contrib/purescript-vim", -- purescript support
"terrortylor/nvim-comment", -- allows toggling line comments "terrortylor/nvim-comment", -- allows toggling line comments
{"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"}, -- use treesitter for syntax highlighting -- This gets installed by nix now!
{"nvim-treesitter/nvim-treesitter-textobjects", run = ":TSUpdate"}, -- the lean plugin wants me to install this, lol -- {"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"}, -- use treesitter for syntax highlighting
"startup-nvim/startup.nvim", -- splash screen "nvim-treesitter/nvim-treesitter-textobjects", -- the lean plugin wants me to install this, lol
"kyazdani42/nvim-web-devicons", -- nice looking icons -- "startup-nvim/startup.nvim", -- splash screen
"nvim-lualine/lualine.nvim", -- customizable status line "glepnir/dashboard-nvim", -- similar to startup.nvim
"kyazdani42/nvim-tree.lua", -- file tree "kyazdani42/nvim-web-devicons", -- nice looking icons
"lervag/vimtex", -- latex support "nvim-lualine/lualine.nvim", -- customizable status line
"jose-elias-alvarez/null-ls.nvim", -- generic language server "kyazdani42/nvim-tree.lua", -- file tree
"nvim-telescope/telescope-file-browser.nvim", -- file creation/deletion menu "lervag/vimtex", -- latex support
"onsails/lspkind.nvim", -- show icons in lsp completion menus "jose-elias-alvarez/null-ls.nvim", -- generic language server
"preservim/vimux", -- interact with tmux from within vim "nvim-telescope/telescope-file-browser.nvim", -- file creation/deletion menu
"christoomey/vim-tmux-navigator", -- easly switch between tmux and vim panes "onsails/lspkind.nvim", -- show icons in lsp completion menus
"kana/vim-arpeggio", -- chord support, let"s fucking goooo "preservim/vimux", -- interact with tmux from within vim
{"andweeb/presence.nvim", run = ":DownloadUnicode"}, -- discord rich presence "christoomey/vim-tmux-navigator", -- easly switch between tmux and vim panes
"Julian/lean.nvim", -- lean support "kana/vim-arpeggio", -- chord support, let"s fucking goooo
"kmonad/kmonad-vim", -- kmonad config support { "andweeb/presence.nvim", run = ":DownloadUnicode" }, -- discord rich presence
-- "LucHermitte/lh-vim-lib", -- dependency for lh-brackets "Julian/lean.nvim", -- lean support
-- "LucHermitte/lh-brackets", -- kinda useless bruh, should find something better "kmonad/kmonad-vim", -- kmonad config support
-- Cmp related stuff -- "LucHermitte/lh-vim-lib", -- dependency for lh-brackets
"hrsh7th/cmp-nvim-lsp", -- lsp completion -- "LucHermitte/lh-brackets", -- kinda useless bruh, should find something better
"hrsh7th/cmp-buffer", -- idr what this is -- Cmp related stuff
"hrsh7th/cmp-path", -- path completion ig? "hrsh7th/cmp-nvim-lsp", -- lsp completion
"hrsh7th/cmp-cmdline", -- cmdline completion perhaps? "hrsh7th/cmp-buffer", -- idr what this is
"hrsh7th/nvim-cmp", -- completion engine "hrsh7th/cmp-path", -- path completion ig?
"L3MON4D3/LuaSnip", -- snippeting engine "hrsh7th/cmp-cmdline", -- cmdline completion perhaps?
"saadparwaiz1/cmp_luasnip", -- snippet support for cmp "hrsh7th/nvim-cmp", -- completion engine
"wakatime/vim-wakatime", -- track time usage "L3MON4D3/LuaSnip", -- snippeting engine
"vmchale/dhall-vim", -- dhall syntax highlighting "saadparwaiz1/cmp_luasnip", -- snippet support for cmp
"folke/which-key.nvim" "wakatime/vim-wakatime", -- track time usage
} "vmchale/dhall-vim", -- dhall syntax highlighting
"folke/which-key.nvim"
}
for _, v in ipairs(themePackages) do for _, v in ipairs(themePackages) do
-- append package in the base list -- append package in the base list
table.insert(base, v) table.insert(base, v)
end end
paq(base) paq(base)
end end
return M return M

View file

@ -1,26 +1,26 @@
local A = require("my.helpers.augroup") local A = require("my.helpers.augroup")
local M = {} local M = {}
local extraCommentStrings = {nix = "# %s", lean = "/- %s -/", bkf = "-- %s"} local extraCommentStrings = { lean = "/- %s -/", bkf = "-- %s" }
-- Update comments for certain languages -- Update comments for certain languages
local function setCommentString(extension, commentString) function M.setCommentString(extension, commentString)
A.augroup('set-commentstring-' .. extension, function() A.augroup('set-commentstring-' .. extension, function()
local action = local action =
':lua vim.api.nvim_buf_set_option(0, "commentstring", "' .. ':lua vim.api.nvim_buf_set_option(0, "commentstring", "' ..
commentString .. '")' commentString .. '")'
A.autocmd('BufEnter', '*.' .. extension, action) A.autocmd('BufEnter', '*.' .. extension, action)
A.autocmd('BufFilePost', '*.' .. extension, action) A.autocmd('BufFilePost', '*.' .. extension, action)
end) end)
end end
function M.setup() function M.setup()
require('nvim_comment').setup() require('nvim_comment').setup()
for lang, commentString in pairs(extraCommentStrings) do for lang, commentString in pairs(extraCommentStrings) do
setCommentString(lang, commentString) M.setCommentString(lang, commentString)
end end
end end
return M return M

View file

@ -0,0 +1,32 @@
local M = {}
function M.setup()
local db = require("dashboard")
-- db.custom_header = {
-- "", "",
-- [[ /\ \ /\ \ /\ \ /\ \ /\ \ ]],
-- [[ /::\____\ /::\ \ /::\ \ /::\ \ /::\ \ ]],
-- [[ /:::/ / /::::\ \ \:::\ \ /::::\ \ /::::\ \ ]],
-- [[ /:::/ _/___ /::::::\ \ \:::\ \ /::::::\ \ /::::::\ \ ]],
-- [[ /:::/ /\ \ /:::/\:::\ \ \:::\ \ /:::/\:::\ \ /:::/\:::\ \ ]],
-- [[ /:::/ /::\____\ /:::/__\:::\ \ \:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ ]],
-- [[ /:::/ /:::/ / /::::\ \:::\ \ /::::\ \ /::::\ \:::\ \ /::::\ \:::\ \ ]],
-- [[ /:::/ /:::/ _/___ /::::::\ \:::\ \ /::::::\ \ /::::::\ \:::\ \ /::::::\ \:::\ \ ]],
-- [[ /:::/___/:::/ /\ \ /:::/\:::\ \:::\ \ /:::/\:::\ \ /:::/\:::\ \:::\ \ /:::/\:::\ \:::\____\ ]],
-- [[|:::| /:::/ /::\____\/:::/ \:::\ \:::\____\ /:::/ \:::\____\/:::/__\:::\ \:::\____\/:::/ \:::\ \:::| |]],
-- [[|:::|__/:::/ /:::/ /\::/ \:::\ /:::/ / /:::/ \::/ /\:::\ \:::\ \::/ /\::/ |::::\ /:::|____|]],
-- [[ \:::\/:::/ /:::/ / \/____/ \:::\/:::/ / /:::/ / \/____/ \:::\ \:::\ \/____/ \/____|:::::\/:::/ / ]],
-- [[ \::::::/ /:::/ / \::::::/ / /:::/ / \:::\ \:::\ \ |:::::::::/ / ]],
-- [[ \::::/___/:::/ / \::::/ / /:::/ / \:::\ \:::\____\ |::|\::::/ / ]],
-- [[ \:::\__/:::/ / /:::/ / \::/ / \:::\ \::/ / |::| \::/____/ ]],
-- [[ \::::::::/ / /:::/ / \/____/ \:::\ \/____/ |::| ~| ]],
-- [[ \::::::/ / /:::/ / \:::\ \ |::| | ]],
-- [[ \::::/ / /:::/ / \:::\____\ \::| | ]],
-- [[ \::/____/ \::/ / \::/ / \:| | ]],
-- [[ ~~ \/____/ \/____/ \|___| ]],
-- ""
-- }
end
return M

View file

@ -1,29 +1,30 @@
local M = {} local M = {}
function M.setup() function M.setup()
-- Other unconfigured plugins -- Other unconfigured plugins
require('nvim-autopairs').setup() require('nvim-autopairs').setup()
require("startup").setup() -- require("startup").setup()
require("presence"):setup({}) -- wtf does the : do here? require("presence"):setup({}) -- wtf does the : do here?
-- require("which-key").setup() -- require("which-key").setup()
-- Plugins with their own configs: -- Plugins with their own configs:
require("my.plugins.vim-tmux-navigator").setup() require("my.plugins.vim-tmux-navigator").setup()
-- require("my.plugins.fzf-lua").setup() -- require("my.plugins.fzf-lua").setup()
-- require("my.plugins.nerdtree").setup() -- require("my.plugins.nerdtree").setup()
require("my.plugins.treesitter").setup() require("my.plugins.treesitter").setup()
require("my.plugins.cmp").setup() require("my.plugins.dashboard").setup()
require("my.plugins.lspconfig").setup() require("my.plugins.cmp").setup()
require("my.plugins.null-ls").setup() require("my.plugins.lspconfig").setup()
require("my.plugins.lualine").setup() require("my.plugins.null-ls").setup()
require("my.plugins.comment").setup() require("my.plugins.lualine").setup()
require("my.plugins.nvim-tree").setup() require("my.plugins.comment").setup()
require("my.plugins.vimtex").setup() require("my.plugins.nvim-tree").setup()
require("my.plugins.telescope").setup() require("my.plugins.vimtex").setup()
require("my.plugins.vimux").setup() require("my.plugins.telescope").setup()
-- require("my.plugins.idris").setup() require("my.plugins.vimux").setup()
-- require("my.plugins.lh-brackets").setup() -- require("my.plugins.idris").setup()
require("my.plugins.lean").setup() -- require("my.plugins.lh-brackets").setup()
require("my.plugins.lean").setup()
end end
return M return M

View file

@ -1,143 +1,133 @@
local A = require("my.plugins.arpeggio")
local M = {} local M = {}
local function map(buf, mode, lhs, rhs, opts) local function map(buf, mode, lhs, rhs, opts)
local options = {noremap = true, silent = true} local options = { noremap = true, silent = true }
if opts then options = vim.tbl_extend('force', options, opts) end if opts then options = vim.tbl_extend('force', options, opts) end
vim.api.nvim_buf_set_keymap(buf, mode, lhs, rhs, options) vim.api.nvim_buf_set_keymap(buf, mode, lhs, rhs, options)
end end
function M.on_attach(client, bufnr) function M.on_attach(client, bufnr)
-- Enable completion triggered by <c-x><c-o> -- Enable completion triggered by <c-x><c-o>
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
if client.server_capabilities.documentFormattingProvider then if client.server_capabilities.documentFormattingProvider then
print("Initializing formatter...") print("Initializing formatter...")
vim.cmd([[ vim.cmd([[
augroup LspFormatting augroup LspFormatting
autocmd! * <buffer> autocmd! * <buffer>
autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_sync() autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_sync()
augroup END augroup END
]]) ]])
end end
print("Setting up keybinds...") print("Setting up keybinds...")
-- Go to declaration / definition / implementation -- Go to declaration / definition / implementation
map(bufnr, "n", 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>') map(bufnr, "n", 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>')
map(bufnr, "n", 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>') map(bufnr, "n", 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>')
map(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>') map(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>')
-- Hover -- Hover
map(bufnr, 'n', 'J', "<cmd>lua vim.diagnostic.open_float()<CR>") map(bufnr, 'n', 'J', "<cmd>lua vim.diagnostic.open_float()<CR>")
map(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>') map(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>')
map(bufnr, 'n', 'L', '<cmd>lua vim.lsp.buf.signature_help()<CR>') map(bufnr, 'n', 'L', '<cmd>lua vim.lsp.buf.signature_help()<CR>')
-- Workspace stuff -- Workspace stuff
-- map(bufnr, 'n', '<leader>wa', -- map(bufnr, 'n', '<leader>wa',
-- '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>') -- '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>')
-- map(bufnr, 'n', '<leader>wr', -- map(bufnr, 'n', '<leader>wr',
-- '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>') -- '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>')
-- map(bufnr, 'n', '<leader>wl', -- map(bufnr, 'n', '<leader>wl',
-- '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>') -- '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>')
-- Code actions -- Code actions
map(bufnr, 'n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>') map(bufnr, 'n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>')
map(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>') map(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>')
map(bufnr, 'n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>') map(bufnr, 'n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>')
map(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>') map(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>')
map(bufnr, 'n', '<leader>f', map(bufnr, 'n', '<leader>f',
'<cmd>lua vim.lsp.buf.format({async = true})<CR>') '<cmd>lua vim.lsp.buf.format({async = true})<CR>')
print("Initialized language server!") print("Initialized language server!")
end end
local function on_attach_typescript(client, bufnr) local function on_attach_typescript(client, bufnr)
-- We handle formatting using null-ls and prettierd -- We handle formatting using null-ls and prettierd
client.server_capabilities.documentFormattingProvider = false client.server_capabilities.documentFormattingProvider = false
M.on_attach(client, bufnr) M.on_attach(client, bufnr)
end
local function on_attach_nix(c, b)
A.chordSilent("n", "ug",
":lua require('my.helpers.update-nix-fetchgit').update()<CR>",
{settings = "b"})
M.on_attach(c, b)
end end
-- General server config -- General server config
local servers = { local servers = {
tsserver = {on_attach = on_attach_typescript}, tsserver = { on_attach = on_attach_typescript },
dhall_lsp_server = {}, dhall_lsp_server = {},
sumneko_lua = { sumneko_lua = {
settings = { settings = {
Lua = { Lua = {
runtime = { runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT', version = 'LuaJIT',
-- Setup your lua path -- Setup your lua path
path = runtime_path path = runtime_path
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = {'vim'}
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file("", true)
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {enable = false}
}
}, },
cmd = {"lua-language-server"} diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { 'vim' }
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file("", true)
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = { enable = false }
}
}, },
purescriptls = { cmd = { "lua-language-server" }
settings = { },
purescript = { purescriptls = {
censorWarnings = { settings = {
"UnusedName", "ShadowedName", "UserDefinedWarning" purescript = {
}, censorWarnings = {
formatter = "purs-tidy" "UnusedName", "ShadowedName", "UserDefinedWarning"
} },
} formatter = "purs-tidy"
}, }
rnix = {on_attach = on_attach_nix}, }
hls = { },
haskell = { hls = {
-- set formatter haskell = {
formattingProvider = "ormolu" -- set formatter
} formattingProvider = "ormolu"
}, }
cssls = {} },
-- agda = {}, Haven't gotten this one to work yet rnix = {},
cssls = {}
-- agda = {}, Haven't gotten this one to work yet
} }
function M.setup() function M.setup()
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp
.protocol .protocol
.make_client_capabilities()) .make_client_capabilities())
-- Setup basic language servers -- Setup basic language servers
for lsp, details in pairs(servers) do for lsp, details in pairs(servers) do
if details.on_attach == nil then if details.on_attach == nil then
-- Default setting for on_attach -- Default setting for on_attach
details.on_attach = M.on_attach details.on_attach = M.on_attach
end
require('lspconfig')[lsp].setup {
on_attach = details.on_attach,
settings = details.settings, -- Specific per-language settings
flags = {
debounce_text_changes = 150 -- This will be the default in neovim 0.7+
},
cmd = details.cmd,
capabilities = capabilities
}
end end
require('lspconfig')[lsp].setup {
on_attach = details.on_attach,
settings = details.settings, -- Specific per-language settings
flags = {
debounce_text_changes = 150 -- This will be the default in neovim 0.7+
},
cmd = details.cmd,
capabilities = capabilities
}
end
end end
return M return M

View file

@ -7,7 +7,7 @@ function M.setup()
local sources = { local sources = {
null_ls.builtins.formatting.prettierd.with({extra_filetypes = {}}), -- format ts files null_ls.builtins.formatting.prettierd.with({extra_filetypes = {}}), -- format ts files
null_ls.builtins.formatting.lua_format -- format lua code -- null_ls.builtins.formatting.lua_format -- format lua code
} }
null_ls.setup({sources = sources, on_attach = lspconfig.on_attach}) null_ls.setup({sources = sources, on_attach = lspconfig.on_attach})

View file

@ -1,24 +1,24 @@
local M = {} local M = {}
function M.setup() function M.setup()
require'nvim-treesitter.configs'.setup { require 'nvim-treesitter.configs'.setup {
ensure_installed = { ensure_installed = {
"bash", "javascript", "typescript", "c", "cpp", "css", "dockerfile", "bash", "javascript", "typescript", "c", "cpp", "css", "dockerfile",
"elixir", "fish", "html", "json", "latex", "python", "rust", "scss", "elixir", "fish", "html", "json", "latex", "python", "rust", "scss",
"toml", "tsx", "vim", "yaml", "nix" "toml", "tsx", "vim", "yaml", "nix"
}, },
sync_install = false, sync_install = false,
indent = {enable = true}, indent = { enable = true },
highlight = { highlight = {
enable = false, enable = true,
-- Setting this to true will run `:h syntax` and tree-sitter at the same time. -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- Using this option may slow down your editor, and you may see some duplicate highlights. -- Using this option may slow down your editor, and you may see some duplicate highlights.
-- Instead of true it can also be a list of languages -- Instead of true it can also be a list of languages
additional_vim_regex_highlighting = false additional_vim_regex_highlighting = false
}
} }
}
end end
return M return M

View file

@ -275,11 +275,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1654113405, "lastModified": 1656169755,
"narHash": "sha256-VpK+0QaWG2JRgB00lw77N9TjkE3ec0iMYIX1TzGpxa4=", "narHash": "sha256-Nlnm4jeQWEGjYrE6hxi/7HYHjBSZ/E0RtjCYifnNsWk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "ac2287df5a2d6f0a44bbcbd11701dbbf6ec43675", "rev": "4a3d01fb53f52ac83194081272795aa4612c2381",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -555,11 +555,11 @@
}, },
"nixos-unstable": { "nixos-unstable": {
"locked": { "locked": {
"lastModified": 1653407748, "lastModified": 1658161305,
"narHash": "sha256-g9puJaILRTb9ttlLQ7IehpV7Wcy0n+vs8LOFu6ylQcM=", "narHash": "sha256-X/nhnMCa1Wx4YapsspyAs6QYz6T/85FofrI6NpdPDHg=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5ce6597eca7d7b518c03ecda57d45f9404b5e060", "rev": "e4d49de45a3b5dbcb881656b4e3986e666141ea9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -571,11 +571,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1654605205, "lastModified": 1658237535,
"narHash": "sha256-aRTGBWpAr6DlLMoUyIvctWRcL59vpW98CdWUl+BhnXg=", "narHash": "sha256-z3Ff9oSXEPSZMfXdM+r29oJxtyKUnlUOc18U9E6Q48g=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "daa78e40e9592dbbcfd53937cbd9aae9e69a2999", "rev": "e732e1fdbf79bec59f7ade4a3675b091b4a9f6d6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -587,11 +587,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1653326962, "lastModified": 1658150454,
"narHash": "sha256-W8feCYqKTsMre4nAEpv5Kx1PVFC+hao/LwqtB2Wci/8=", "narHash": "sha256-dhyOQvRT8oYWN0SwsNyujohBsJqwF5W7fnhEcfgBk7E=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "41cc1d5d9584103be4108c1815c350e07c807036", "rev": "3110964916469ad6ed9fea72a0a3119a0959a14e",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -20,7 +20,7 @@
./tmux.nix ./tmux.nix
./kmonad.nix ./kmonad.nix
./direnv.nix ./direnv.nix
./chromium.nix # ./chromium.nix
./vieb.nix ./vieb.nix
]; ];
} }

View file

@ -40,10 +40,11 @@
vimclip # use neovim anywhere vimclip # use neovim anywhere
# chat apps # chat apps
discord unstable.discord
# deluge
slack slack
signal-desktop
tdesktop # telegram for the desktop tdesktop # telegram for the desktop
# deluge
# zoom-us # zoom-us
# teams # teams

View file

@ -17,12 +17,13 @@ let
sumneko-lua-language-server # lua sumneko-lua-language-server # lua
rnix-lsp # nix rnix-lsp # nix
haskell-language-server # haskell haskell-language-server # haskell
vscode-langservers-extracted # css and shit # vscode-langservers-extracted # css and shit
# Formatters # Formatters
luaformatter # lua luaformatter # lua
ormolu # haskell ormolu # haskell
prettierd # prettier but faster easy-purescript-nix.purs-tidy
# prettierd # prettier but faster
# Others # Others
wakatime # time tracking wakatime # time tracking
@ -31,6 +32,7 @@ let
nodePackages.typescript # typescript language nodePackages.typescript # typescript language
update-nix-fetchgit # useful for nix stuff update-nix-fetchgit # useful for nix stuff
tree-sitter # syntax highlighting tree-sitter # syntax highlighting
libstdcxx5 # required by treesitter aparently
texlive.combined.scheme-full # latex stuff texlive.combined.scheme-full # latex stuff
python38Packages.pygments # required for latex syntax highlighting python38Packages.pygments # required for latex syntax highlighting
@ -54,20 +56,20 @@ let
--prefix PATH : ${lib.makeBinPath extraPackages} --prefix PATH : ${lib.makeBinPath extraPackages}
''; '';
}; };
nvim-treesitter = pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: pkgs.tree-sitter.allGrammars);
in in
{ {
home-manager.users.adrielus = home-manager.users.adrielus =
{ {
home.file.".local/share/nvim/site/pack/paqs/start/paq-nvim".source = paq; home.file.".local/share/nvim/site/pack/paqs/start/paq-nvim".source = paq;
home.file.".local/share/nvim/site/pack/treesitter/start/nvim-treesitter".source = nvim-treesitter;
xdg.configFile."nvim/init.lua".text = myConfig; xdg.configFile."nvim/init.lua".text = myConfig;
xdg.configFile."nvim/lua/my/theme.lua".source = theme.neovim.theme; xdg.configFile."nvim/lua/my/theme.lua".source = theme.neovim.theme;
programs.neovim.enable = false;
home.packages = [ home.packages = [
neovim neovim
]; ];
programs.neovim = {
enable = false;
};
}; };
} }

View file

@ -14,5 +14,5 @@ in
home-manager.users.adrielus.home.sessionVariables = theme.env or { }; home-manager.users.adrielus.home.sessionVariables = theme.env or { };
}]; }];
home-manager.users.adrielus = { home.sessionVariables = variables; }; home-manager.users.adrielus.home.sessionVariables = variables;
} }

View file

@ -22,7 +22,7 @@ in
sddm.path = "${foreign.sddm}"; sddm.path = "${foreign.sddm}";
grub.path = pkgs.nixos-grub2-theme; grub.path = pkgs.nixos-grub2-theme;
xresources = builtins.readFile "${foreign.xresources}/Xresources"; xresources = builtins.readFile "${foreign.xresources}/${variant}.Xresources";
rofi = { rofi = {
theme = builtins.readFile "${foreign.rofi}/.local/share/rofi/themes/catppuccin.rasi"; theme = builtins.readFile "${foreign.rofi}/.local/share/rofi/themes/catppuccin.rasi";
@ -55,15 +55,17 @@ in
alacritty.settings = { alacritty.settings = {
import = [ "${foreign.alacritty}/catppuccin.yml" ]; import = [ "${foreign.alacritty}/catppuccin.yml" ];
# colors = variant;
window = { window = {
padding = { padding = {
x = 4; x = 4;
y = 4; y = 4;
}; };
opacity = transparency;
gtk_theme_variant = v "light" "dark"; gtk_theme_variant = v "light" "dark";
}; };
background_opacity = transparency;
}; };
} }

View file

@ -2,49 +2,49 @@
tmux = fetchFromGitHub { tmux = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "tmux"; repo = "tmux";
sha256 = "0frqk3g85licwl06qnck1bpxm9c7h9mj5law5vq28i2kv24qvv9n"; sha256 = "1vz6srk4zfgsjpwb7xa7n9mg5kfb3x7aq963mwqnl8m4zvmcy8vz";
rev = "87c33d683cf2b40e1340a10fa9049af2d28f5606"; rev = "1c87a9e1d2fac21815497ed7f599a1c1208d40cd";
}; };
sddm = fetchFromGitHub { sddm = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "sddm"; repo = "sddm";
sha256 = "19r04g28w17cg4c520qnz4gdf133vz8wlgjv6538wymh13pazh84"; sha256 = "065g331issjw8jh0hjqfhc98sqhb4i77mwx7y9v5wdy32pmym9i1";
rev = "da92da8ba221c85a3d0722cd35efece616c487cf"; rev = "cfe861c1ea9c92e4b4cd5acb3627021e1d2f5e6c";
}; };
grub = fetchFromGitHub { grub = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "grub"; repo = "grub";
sha256 = "06ji9w3n36c5kdkqavpnx1bb9xz4l83i1fx059a4gwkvni5lapkp"; sha256 = "0ra1psb37wsgdag5swfwwzcgy73014j34c9njnvxz1jdv0k56qlc";
rev = "3f62cd4174465631b40269a7c5631e5ee86dec45"; rev = "b2919a93ef37ea1b220bab90fa0a5fa3a26eec0b";
}; };
gtk = fetchFromGitHub { gtk = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "gtk"; repo = "gtk";
sha256 = "16dnfaj2w34m9i0b1jcg8wpaz5zdscl56gl3hqs4b7nkap1lan01"; sha256 = "1l8xr651mh4lf26s5d7jfk7vv1jxh9qld0w5hgcnqsa13lncsd5h";
rev = "359c584f607c021fcc657ce77b81c181ebaff6de"; rev = "7bfea1f0d569010998302c8242bb857ed8a83058";
}; };
rofi = fetchFromGitHub { rofi = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "rofi"; repo = "rofi";
sha256 = "063qwhy9hpy7i7wykliccpy9sdxhj77v6ry3ys69dwcchmspyn3j"; sha256 = "076xkxxmwhffns35n3cnbn6lz9i4w6hvma1g4mdw0zmayvy5rmpj";
rev = "b5ebfaf11bb90f1104b3d256e4671c6abb66d060"; rev = "2e14344b789d70d42853ffe2abe79b3b85b16e24";
}; };
alacritty = fetchFromGitHub { alacritty = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "alacritty"; repo = "alacritty";
sha256 = "0x90ac9v9j93i8l92nn1lhzwn6kzcg55v5xv7mg6g8rcrxlsm0xk"; sha256 = "0ka3a79i4iv2ahkc3hy41b4s220z8ydkrma52fvcqmphw1y3h7ml";
rev = "8f6b261375302657136c75569bdbd6dc3e2c67c4"; rev = "c2d27714b43984e47347c6d81216b7670a3fe07f";
}; };
wallpapers = fetchFromGitHub { wallpapers = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "wallpapers"; repo = "wallpapers";
sha256 = "055080z71zf752psmgywhkm51jhba5a1b23nnb9wqhksxd5saa0n"; sha256 = "0p1xfr6hv4w0zw04jpbylwiy3n2w9zpxfq041ql8j3jh4inn0w1g";
rev = "61d997b8f4c33f6890b0d138bfed6329f3aff794"; rev = "72f67e1e198cf07bdfd30f70c074a946e5dc64b4";
}; };
xresources = fetchFromGitHub { xresources = fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "xresources"; repo = "xresources";
sha256 = "0jj30xhpdgpl2ii67rv181c8pdgy88jzqnc584z4zpq4am3z4yip"; sha256 = "1ffx73l6s0pkf4d4g5lp2d0cfxjrbczsr5fy45i0503sa279fan7";
rev = "8caaef8e506f1a1da185ee46685dd791f0efffd1"; rev = "a9cd582faeef2f7410eb7d4b5a83d026e3f2b865";
}; };
} }

View file

@ -1,17 +1,18 @@
local M = {} local M = {}
M.deps = {{"catppuccin/nvim", as = "catppuccin"}} M.deps = { { "catppuccin/nvim", as = "catppuccin" } }
function M.setup() function M.setup()
local catppuccin = require("catppuccin") local catppuccin = require("catppuccin")
catppuccin.setup({ catppuccin.setup({
transparent_background = false, compile = { enable = true },
integrations = {nvimtree = {transparent_panel = false}} transparent_background = false,
}) integrations = { nvimtree = { transparent_panel = false } }
})
vim.g.catppuccin_flavour = os.getenv("CATPPUCCIN_FLAVOUR") vim.g.catppuccin_flavour = os.getenv("CATPPUCCIN_FLAVOUR")
vim.cmd [[colorscheme catppuccin]] vim.cmd [[colorscheme catppuccin]]
end end
return M return M

View file

@ -7,13 +7,13 @@ lib.lists.map (theme: pkgs.callPackage theme { }) [
(catppuccin { (catppuccin {
# wallpaper = "os/nix-magenta-pink-1920x1080.png"; # wallpaper = "os/nix-magenta-pink-1920x1080.png";
# wallpaper = "minimalistic/tetris.png"; # wallpaper = "minimalistic/tetris.png";
# wallpaper = "os/nix-black-4k.png"; wallpaper = "os/nix-black-4k.png";
# wallpaper = "landscapes/forrest.png"; # wallpaper = "landscapes/forrest.png";
# wallpaper = "landscapes/salty_mountains.png"; # wallpaper = "landscapes/salty_mountains.png";
wallpaper = "misc/rainbow.png"; # wallpaper = "misc/rainbow.png";
# wallpaper.foreign = ./wallpapers/eye.png; # wallpaper.foreign = ./wallpapers/eye.png;
transparency = 0.93; transparency = 0.93;
variant = "latte"; variant = "frappe";
}) })
(githubVariant { (githubVariant {
variant = "light"; variant = "light";