This commit is contained in:
Varris 2024-01-20 14:42:38 +01:00
parent 01b5ca2843
commit d0a4f14470
36 changed files with 49 additions and 526 deletions

View File

@ -24,7 +24,8 @@
helix.url = "github:helix-editor/helix";
helix.inputs.nixpkgs.follows = "nixpkgs";
firefox-nightly.url = "github:nix-community/flake-firefox-nightly";
wezterm.url = "github:happenslol/wezterm/add-nix-flake?dir=nix";
wezterm.inputs.nixpkgs.follows = "nixpkgs";
gruvbox-kvantum.url = "github:thefallnn/Gruvbox-Kvantum";
gruvbox-kvantum.flake = false;

View File

@ -16,6 +16,7 @@
gvfs.enable = true;
openssh.enable = true;
udisks2.enable = true;
dbus.implementation = "broker";
fstrim = {
enable = true;

View File

@ -3,7 +3,7 @@
enable = true;
settings = {
plugins = "duplicates ftintitle fetchart embedart chroma edit replaygain badfiles fish";
plugins = "duplicates ftintitle fetchart embedart chroma edit lastgenre replaygain badfiles fish";
directory = "/mnt/hdd/Music";
library = "/mnt/hdd/Music/library.db";

View File

@ -9,9 +9,16 @@
package = inputs.helix.packages.${pkgs.system}.helix;
defaultEditor = true;
settings = {
theme = "gruvbox";
themes = {
custom-gruvbox = {
inherits = "gruvbox";
"ui.background" = {bg = "none";};
"ui.statusline" = {bg = "none";};
};
};
settings = {
theme = "custom-gruvbox";
editor = {
line-number = "relative";
color-modes = true;
@ -23,7 +30,7 @@
statusline = {
left = ["mode" "spinner"];
center = ["file-name"];
right = [];
right = ["selections" "file-type" "position"];
mode.normal = "NORMAL";
mode.insert = "INSERT";

View File

@ -1,27 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
programs.kitty = {
enable = true;
font = {
name = "JetBrainsMono Nerd Font";
size = 10;
};
shellIntegration.enableFishIntegration = true;
theme = "Gruvbox Dark";
settings = {
focus_follows_mouse = true;
confirm_os_window_close = "2";
background_opacity = "0.9";
modify_font = "cell_height 2px";
shell_integration = "no-cursor";
tab_bar_style = "powerline";
window_padding_width = "14";
};
};
}

View File

@ -89,12 +89,6 @@
};
};
# services.mpdris2 = {
# enable = true;
# notifications = true;
# multimediaKeys = false;
# };
services.mpd-mpris = {
enable = true;
mpd.useLocal = true;

View File

@ -1,3 +0,0 @@
require("settings")
require("plugins")
require("remaps")

View File

@ -1 +0,0 @@
require("nvim-autopairs").setup({})

View File

@ -1,16 +0,0 @@
require("bufferline").setup({
options = {
show_tab_indicators = true,
-- separator_style = { "", "" },
indicator = { style = "icon", icon = "" },
color_icons = true,
offsets = {
{
filetype = "neo-tree",
text = "File Explorer",
text_align = "center",
separator = true,
},
},
},
})

View File

@ -1,117 +0,0 @@
local cmp = require("cmp")
local lspkind = require("lspkind")
local luasnip = require("luasnip")
require("luasnip.loaders.from_vscode").lazy_load()
local has_words_before = function()
unpack = unpack or table.unpack
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
cmp.setup({
preselect = cmp.PreselectMode.None,
formatting = {
format = lspkind.cmp_format({
mode = "symbol_text",
symbol_map = {
Text = "󰉿",
Method = "󰆧",
Function = "󰊕",
Constructor = "",
Field = "",
Variable = "󰀫",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "󰎠",
Enum = "",
Keyword = "󰌋",
Snippet = "",
Color = "󰏘",
File = "󰈙",
Reference = "󰈇",
Folder = "󰉋",
EnumMember = "",
Constant = "󰏿",
Struct = "",
Event = "",
Operator = "󰆕",
TypeParameter = "",
},
}),
},
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
sources = cmp.config.sources({
{ name = "buffer" },
{ name = "path" },
{ name = "nvim_lsp" },
{ name = "luasnip" },
}),
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = false }),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
-- they way you will only jump inside the snippet region
elseif luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
}),
})
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
{ name = "cmdline" },
}),
})
cmp.setup.cmdline("/", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "buffer" },
}),
})

View File

@ -1 +0,0 @@
require("colorizer").setup({})

View File

@ -1,4 +0,0 @@
require("gruvbox").setup({
transparent_mode = true,
})
vim.cmd("colorscheme gruvbox")

View File

@ -1 +0,0 @@
require("Comment").setup({})

View File

@ -1 +0,0 @@
require("dressing").setup()

View File

@ -1,4 +0,0 @@
vim.opt.list = true
vim.opt.listchars:append("eol:↴")
require("ibl").setup({})

View File

@ -1,19 +0,0 @@
require("plugins.autopairs")
require("plugins.bufferline")
require("plugins.cmp")
require("plugins.colorizer")
require("plugins.colorscheme")
require("plugins.comment")
require("plugins.dressing")
require("plugins.ibl")
require("plugins.lspconfig")
require("plugins.lualine")
require("plugins.noice")
require("plugins.notify")
require("plugins.smartsplits")
require("plugins.surround")
require("plugins.telescope")
require("plugins.treesitter")
require("plugins.trouble")
require("plugins.ufo")
require("plugins.which-key")

View File

@ -1,50 +0,0 @@
local capabilities = require("cmp_nvim_lsp").default_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
}
local lspconfig = require("lspconfig")
local null_ls = require("null-ls")
local null_ls_formatting = null_ls.builtins.formatting
null_ls.setup({
sources = {
null_ls_formatting.prettier,
null_ls_formatting.nixpkgs_fmt,
},
})
lspconfig.nixd.setup({ capabilities = capabilities })
lspconfig.lua_ls.setup({
capabilities = capabilities,
settings = {
Lua = {
runtime = { version = "LuaJIT" },
diagnostics = { globals = { "vim" } },
workspace = {
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = false,
},
telemetry = { enable = false },
},
},
})
lspconfig.clangd.setup({ capabilities = capabilities })
lspconfig.rust_analyzer.setup({ capabilities = capabilities })
lspconfig.zls.setup({ capabilities = capabilities })
lspconfig.jedi_language_server.setup({ capabilities = capabilities })
lspconfig.bashls.setup({ capabilities = capabilities })
lspconfig.tsserver.setup({ capabilities = capabilities })
lspconfig.cssls.setup({
capabilities = capabilities,
cmd = { "css-languageserver", "--stdio" },
settings = {
css = { validate = true },
},
})

View File

@ -1,5 +0,0 @@
require("lualine").setup({
options = {
theme = "gruvbox_dark",
},
})

View File

@ -1,35 +0,0 @@
require("neo-tree").setup({
default_component_configs = {
icon = {
folder_empty = "󰜌",
folder_empty_open = "󰜌",
},
git_status = {
symbols = {
renamed = "󰁕",
unstaged = "󰄱",
},
},
},
document_symbols = {
kinds = {
File = { icon = "󰈙", hl = "Tag" },
Namespace = { icon = "󰌗", hl = "Include" },
Package = { icon = "󰏖", hl = "Label" },
Class = { icon = "󰌗", hl = "Include" },
Property = { icon = "󰆧", hl = "@property" },
Enum = { icon = "󰒻", hl = "@number" },
Function = { icon = "󰊕", hl = "Function" },
String = { icon = "󰀬", hl = "String" },
Number = { icon = "󰎠", hl = "Number" },
Array = { icon = "󰅪", hl = "Type" },
Object = { icon = "󰅩", hl = "Type" },
Key = { icon = "󰌋", hl = "" },
Struct = { icon = "󰌗", hl = "Type" },
Operator = { icon = "󰆕", hl = "Operator" },
TypeParameter = { icon = "󰊄", hl = "Type" },
StaticMethod = { icon = "󰠄 ", hl = "Function" },
},
},
})

View File

@ -1,18 +0,0 @@
require("noice").setup({
lsp = {
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true,
},
},
-- you can enable a preset for easier configuration
presets = {
bottom_search = false, -- use a classic bottom cmdline for search
command_palette = false, -- position the cmdline and popupmenu together
long_message_to_split = false, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
})

View File

@ -1,3 +0,0 @@
require("notify").setup({
background_colour = "#282828",
})

View File

@ -1 +0,0 @@
require("presence").setup({})

View File

@ -1,8 +0,0 @@
require("smart-splits").setup({
ignored_filetypes = {
"neo-tree",
"nofile",
"quickfix",
"prompt",
},
})

View File

@ -1 +0,0 @@
require("nvim-surround").setup()

View File

@ -1,12 +0,0 @@
local telescope = require("telescope")
telescope.setup({
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown({}),
},
},
})
telescope.load_extension("fzf")
telescope.load_extension("ui-select")
telescope.load_extension("undo")

View File

@ -1,4 +0,0 @@
require("nvim-treesitter.configs").setup({
highlight = { enable = true },
indent = { enable = true },
})

View File

@ -1 +0,0 @@
require("trouble").setup()

View File

@ -1,13 +0,0 @@
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.o.foldlevelstart = 99
vim.o.foldenable = true
-- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself
vim.keymap.set('n', 'zR', require('ufo').openAllFolds)
vim.keymap.set('n', 'zM', require('ufo').closeAllFolds)
require('ufo').setup({
provider_selector = function(bufnr, filetype, buftype)
return {'treesitter', 'indent'}
end
})

View File

@ -1,7 +0,0 @@
vim.o.timeoutlen = 100
require("which-key").setup({
window = {
padding = { 1, 5, 1, 5 },
},
})

View File

@ -1,37 +0,0 @@
local map = vim.keymap.set
local telescope_builtin = require("telescope.builtin")
local smart_splits = require("smart-splits")
map("n", "<S-h>", "<cmd>BufferLineCyclePrev<CR>", { desc = "Prev buffer" })
map("n", "<S-l>", "<cmd>BufferLineCycleNext<CR>", { desc = "Next buffer" })
map({ "n", "i" }, "<ESC>", "<cmd>noh<CR><ESC>", { desc = "Escape and clear hlsearch" })
map("n", "<Leader>ff", telescope_builtin.find_files, { desc = "Find Files" })
map("n", "<Leader>fb", telescope_builtin.buffers, { desc = "List Buffers" })
map("n", "<Leader>fh", telescope_builtin.help_tags, { desc = "Help Tags" })
map("n", "<Leader>fp", telescope_builtin.git_files, { desc = "Find Files (Git)" })
map("n", "<Leader>fc", function()
telescope_builtin.git_files({ cwd = "~/.dotfiles" })
end, { desc = "Edit Dotfiles" })
map("n", "<C-n>", "<cmd>Neotree toggle<CR>", { desc = "Open NeoTree" })
map({ "n", "x" }, "ga", ":EasyAlign", { desc = "Align text" })
-- resizing splits
map("n", "<A-h>", smart_splits.resize_left)
map("n", "<A-j>", smart_splits.resize_down)
map("n", "<A-k>", smart_splits.resize_up)
map("n", "<A-l>", smart_splits.resize_right)
-- moving between splits
map("n", "<C-h>", smart_splits.move_cursor_left)
map("n", "<C-j>", smart_splits.move_cursor_down)
map("n", "<C-k>", smart_splits.move_cursor_up)
map("n", "<C-l>", smart_splits.move_cursor_right)
-- swapping buffers between windows
map("n", "<leader><leader>h", smart_splits.swap_buf_left)
map("n", "<leader><leader>j", smart_splits.swap_buf_down)
map("n", "<leader><leader>k", smart_splits.swap_buf_up)
map("n", "<leader><leader>l", smart_splits.swap_buf_right)
-- null-ls
map("n", "<Leader>lf", vim.lsp.buf.format, { desc = "Format file" })

View File

@ -1,33 +0,0 @@
vim.g.mapleader = " "
-- 4 space tabs
vim.o.expandtab = true
vim.o.shiftwidth = 4
vim.o.tabstop = 4
vim.o.smartindent = true
vim.o.background = "dark"
vim.o.clipboard = "unnamedplus"
vim.o.termguicolors = true
vim.o.ignorecase = true
vim.o.smartcase = true
vim.o.wrap = false
vim.o.scrolloff = 8
vim.o.swapfile = false
vim.o.backup = false
vim.o.undodir = os.getenv("HOME") .. "/.local/share/nvim/undodir"
vim.o.undofile = true
vim.o.scrolloff = 8
vim.wo.number = true
vim.wo.relativenumber = true
vim.api.nvim_create_autocmd("FileType", {
pattern = "nix,yuck",
callback = function()
vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
end,
})

View File

@ -1,72 +0,0 @@
{pkgs, ...}: {
programs.neovim = {
enable = true;
defaultEditor = true;
plugins = with pkgs.vimPlugins; [
bufferline-nvim
comment-nvim
dressing-nvim
gruvbox-nvim
hmts-nvim
indent-blankline-nvim
lualine-nvim
luasnip
mini-nvim
neo-tree-nvim
noice-nvim
nui-nvim
nvim-autopairs
nvim-colorizer-lua
nvim-notify
nvim-surround
nvim-ufo
nvim-web-devicons
smart-splits-nvim
vim-easy-align
which-key-nvim
presence-nvim
vim-fugitive
telescope-nvim
telescope-fzf-native-nvim
telescope-ui-select-nvim
telescope-undo-nvim
null-ls-nvim
nvim-lspconfig
nvim-treesitter.withAllGrammars
trouble-nvim
nvim-cmp
cmp-buffer
cmp-cmdline
cmp-nvim-lsp
cmp-nvim-lsp-signature-help
cmp-path
cmp_luasnip
friendly-snippets
lspkind-nvim
];
extraPackages = with pkgs; [
nodePackages.bash-language-server
clang-tools
lua-language-server
python3Packages.jedi-language-server
nixpkgs-fmt
nixd
rust-analyzer
stylua
nodePackages.typescript-language-server
nodePackages.vscode-css-languageserver-bin
zls
];
};
xdg.configFile.nvim = {
source = ./config;
recursive = true;
};
}

View File

@ -2,7 +2,7 @@
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
terminal = "${pkgs.kitty}/bin/kitty";
terminal = "wezterm";
extraConfig = {
modi = "drun,run";
};

View File

@ -2,26 +2,26 @@
config,
pkgs,
...
}: let
leftMonitor = {
display = "DP-2";
res = "preferred";
pos = "0x0";
};
}: {
wayland.windowManager.hyprland = let
leftMonitor = {
display = "DP-2";
res = "preferred";
pos = "0x0";
};
rightMonitor = {
display = "DP-1";
res = "preferred";
pos = "2560x0";
};
rightMonitor = {
display = "DP-1";
res = "preferred";
pos = "2560x0";
};
modKey = "SUPER";
in {
wayland.windowManager.hyprland = {
modKey = "SUPER";
in {
settings = {
monitor = [
"${leftMonitor.display}, ${leftMonitor.res}, ${leftMonitor.pos}, 1, vrr, 2"
"${rightMonitor.display}, ${rightMonitor.res}, ${rightMonitor.pos}, 1, vrr, 2"
"${leftMonitor.display}, ${leftMonitor.res}, ${leftMonitor.pos}, 1"
"${rightMonitor.display}, ${rightMonitor.res}, ${rightMonitor.pos}, 1"
];
workspace = [
@ -142,7 +142,7 @@ in {
"${modKey}, Q, exec, ${pkgs.firefox}/bin/firefox"
"${modKey}, Return, exec, ${pkgs.kitty}/bin/kitty"
"${modKey}, Return, exec, wezterm"
", XF86AudioRaiseVolume, exec, ${pkgs.pamixer}/bin/pamixer -i 5 --get-volume"
", XF86AudioLowerVolume, exec, ${pkgs.pamixer}/bin/pamixer -d 5 --get-volume"

View File

@ -6,6 +6,7 @@
}: {
programs.wezterm = {
enable = true;
package = inputs.wezterm.packages.${pkgs.system}.default;
extraConfig =
/*
lua
@ -18,7 +19,22 @@
config = wezterm.config_builder()
end
config.color_scheme = 'Gruvbox Dark (Gogh)'
config = {
font = wezterm.font "JetBrainsMono Nerd Font",
font_size = 10,
line_height = 1.1,
window_background_opacity = 0.9,
color_scheme = 'Gruvbox Dark (Gogh)',
hide_tab_bar_if_only_one_tab = true,
window_padding = {
left = "20",
right = "20",
top = "20",
bottom = "20",
},
}
return config
'';

View File

@ -11,13 +11,11 @@
./configs/dircolors.nix
./configs/firefox
./configs/fish
./configs/kitty
./configs/wezterm
./configs/kvantum
./configs/lf
./configs/mpd
./configs/mpv
# ./configs/neovim
./configs/helix
./configs/rofi
./configs/tmux