Compare commits

...

12 Commits

Author SHA1 Message Date
ebc9039915 oil git integration 2026-06-27 22:20:44 +02:00
88ed0146d2 refactor struct 2026-06-27 20:38:07 +02:00
3731c014f7 More clues 2026-06-27 19:59:24 +02:00
479ba02e79 better diff colors 2026-06-27 19:56:59 +02:00
00290628f8 Added mini pluligins and improved Mason. 2026-06-27 19:52:00 +02:00
60a602922e major update 2026-06-27 19:28:45 +02:00
22981a59f6 improving sets 2026-06-27 19:09:03 +02:00
05b83edc1a more inpirations 2026-06-27 18:38:23 +02:00
66828167e6 better docs 2026-06-27 15:55:24 +02:00
1ab9eceb0d cleanup README 2026-06-27 15:50:52 +02:00
bdffc2821b add ghostty install script 2026-06-27 15:40:55 +02:00
fee227e2ae cleanup 2026-06-27 14:56:54 +02:00
17 changed files with 235 additions and 141 deletions

View File

@@ -1,19 +1,10 @@
# prefer this if stow is available
.PHONY: stow unstow
stow:
stow nvim
# stow-server:
# stow default zsh-server lazygit albert tmux neovim ranger
# rm:
# rm ~/.zshrc ~/.p10k.zsh ~/.tmux.conf ~/.docker_aliases ~/.config/albert/albert.conf ~/.config/nvim/init.vim ~/.config/ranger/rc.conf ~/.config/kitty/kitty.conf
# echo "this might delete files from this repository also"
# link-root:
# sudo rm -rf /root/.oh-my-zsh /root/.zshrc /root/.p10k.zsh /root/.docker_aliases
# sudo ln -s ${HOME}/.oh-my-zsh /root/
# sudo ln -s ${HOME}/.zshrc /root/
# sudo ln -s ${HOME}/.p10k.zsh /root/
# sudo ln -s ${HOME}/.docker_aliases /root/
unstow:
stow -D nvim
LN := ln -svf
LNDIR := ln -sv
@@ -21,19 +12,22 @@ LNDIR := ln -sv
DOTFILES_DIR := $(shell pwd)
TARGET_DIR := $(HOME)
.PHONY: link
# if stow is not available, symlink configs instead
.PHONY: link unlink
link: nvim
unlink: unnvim
.PHONY: nvim
nvim:
rm -rf $(TARGET_DIR)/.config/nvim
$(LNDIR) $(DOTFILES_DIR)/nvim/.config/nvim $(TARGET_DIR)/.config/nvim
.PHONY: unnvim
unnvim:
rm -rf $(TARGET_DIR)/.config/nvim
.PHONY: git
git:
rm -f $(TARGET_DIR)/.gitconfig
$(LN) $(DOTFILES_DIR)/git/.gitconfig $(TARGET_DIR)/.gitconfig
# zsh:
# $(LN) ./zsh/.zshrc ~/.zshrc
# $(LN) ./zsh/.zprofile ~/.zprofile

View File

@@ -2,7 +2,6 @@
[Insipiration](https://github.com/Racle/dotfiles/tree/master)
# Usage
Run `make stow`

View File

@@ -2,6 +2,7 @@ cc-clean(){
rm -rf ./**/*.out 2>/dev/null
}
# compile and run a single C program. Useful for prototyping.
cc-run(){
local file
if [ -z "$1" ]; then
@@ -12,11 +13,6 @@ cc-run(){
file="$1"
shift
#if command -v norminette &>/dev/null
#then
# norminette "${file}" -R CheckForbiddenSourceHeader
#fi
gcc "${file}" -o "${file}.out" -Wall -Wextra -Werror -g3 -fsanitize=address $@ && \
"./${file}.out"

View File

@@ -0,0 +1,2 @@
sudo dnf copr enable scottames/ghostty
sudo dnf install ghostty

View File

@@ -0,0 +1 @@
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)"

View File

@@ -3,34 +3,11 @@
Inspirations:
- [illya](https://codeberg.org/42nerds/nvim)
- [nolan](https://github.com/Hrumble/sneaky-nvim-config)
- [mats](https://github.com/BeerB34r/dotfiles)
# Neovim Notes
## Splits
Horizontal split:
```vim
:sp
```
Vertical split:
```vim
:vs
```
Open a file in a horizontal split:
```vim
:sp path/to/file
```
Open a file in a vertical split:
```vim
:vs path/to/file
```
See custom keymaps with short descriptions with `<leader><leader>h`.
Split shortcuts:
@@ -53,12 +30,6 @@ Buffer shortcuts:
- `<leader>bn` next buffer
- `<leader>bd` delete the current buffer
Browse files with:
```vim
<leader>dl
```
Telescope shortcuts:
- `<leader>ff` find files
@@ -68,22 +39,13 @@ Telescope shortcuts:
Oil usage:
- `<leader>dl` opens the parent directory of the current file
- `<leader>dl` opens the file browser
- `<CR>` opens a file or enters a directory
- `-` goes to the parent directory
- `<BS>` also goes to the parent directory
- `<A-h>` also goes to the parent directory
- `<A-l>` opens the selected file or enters the selected directory
- `<C-p>` previews the selected entry in a right-hand vertical split
- edit the Oil buffer, then `:w` to apply file operations
- hidden files are shown, but `.git` stays hidden
Open `netrw` explicitly with:
```vim
<leader>nl
:Ex
```
- `<C-p>` previews the selected entry
## Window Navigation
@@ -104,33 +66,28 @@ Cycle through windows:
## Terminal
Open a terminal in the current window:
```vim
:term
```
Open a terminal in a horizontal split:
```vim
:sp | term
```
Open a terminal in a vertical split:
```vim
:vs | term
```
Leave terminal mode and return to normal mode:
```vim
<Esc>
```
## LSP
Mason is installed through `vim.pack` together with `mason-lspconfig.nvim` and `nvim-lspconfig`.
This config automatically installs and enables the managed language servers on first start. The current managed set is `bashls`, `clangd`, `jsonls`, `lua_ls`, `marksman`, `taplo`, `ts_ls`, and `yamlls`.
Useful Mason commands:
```vim
:Mason
:MasonLog
:checkhealth mason
```
`ts_ls` provides TypeScript and JavaScript language server support after Mason installs `typescript-language-server`.
When an LSP server is attached to the current buffer:
- `gd` go to definition
@@ -143,22 +100,15 @@ Diagnostics:
- `g.` open diagnostic float
- `gl` send diagnostics to the location list
- `gle` display error information
- `gie` toggle inline errors
- `gve` toggle virtual line errors
- `g]` jump to next error
- `g[` jump to previous error
## Tree-sitter
Tree-sitter is managed with `nvim-treesitter` via `vim.pack`.
Installing missing parsers requires the external tools from the upstream README:
- `tar`
- `curl`
- `tree-sitter-cli`
- a C compiler
If `tree-sitter` is on your `PATH`, startup will try to install the configured parsers if they are missing.
Tree-sitter is managed with `nvim-treesitter` via `vim.pack`. `tree-sitter-cli` and a C compiler is required to be installed.
Useful commands:

View File

@@ -0,0 +1,42 @@
local uc = vim.api.nvim_create_user_command
local ac = vim.api.nvim_create_autocmd
local aug = vim.api.nvim_create_augroup
-- User commands
uc("W", "w|e", { desc = "write file then refresh buffer" })
-- Auto commands
ac("TextYankPost", {
desc = "Highlight when yanking text",
group = aug("highlight-yank", { clear = true }),
callback = function()
vim.highlight.on_yank()
end,
})
ac("LspAttach", {
desc = "Notify user about attached LSP clients",
group = aug("LSPOnAttach", { clear = true }),
callback = function(event)
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client then
vim.notify(client.name .. " attached", vim.log.levels.INFO, {})
end
end,
})
-- ac("LspAttach", {
-- group = aug("lsp_attach_disable_ruff_hover", { clear = true }),
-- callback = function(args)
-- local client = vim.lsp.get_client_by_id(args.data.client_id)
-- if client == nil then
-- return
-- end
-- if client.name == "ruff" then
-- client.server_capabilities.hoverProvider = false
-- end
-- end,
-- desc = "LSP: Disable hover capabilties for ruff",
-- })
-- Only show the invisible characters inside the code editing buffers
vim.cmd([[autocmd BufWinEnter * if &buftype != '' | setlocal nolist | endif]])

View File

@@ -1,3 +1,4 @@
require("romanzy.set")
require("romanzy.remap")
require("romanzy.options")
require("romanzy.keymaps")
require("romanzy.commands")
require("romanzy.plugins")

View File

@@ -19,6 +19,7 @@ local function telescope_picker(picker)
end
map("n", "<leader><leader>r", ":source ~/.config/nvim/init.lua<CR>", { desc = "reload init.lua" })
map("n", "<leader><leader>h", telescope_picker("keymaps"), { desc = "show keymaps" })
map("n", "<leader>dl", "<Cmd>Oil<CR>", { desc = "open oil" })
map("n", "<leader>ff", telescope_picker("find_files"), { desc = "find files" })
map("n", "<leader>fg", telescope_picker("live_grep"), { desc = "live grep" })
@@ -40,7 +41,7 @@ map("n", "<leader>bp", "<Cmd>bprevious<CR>", { desc = "prev buffer" })
map("n", "<leader>bn", "<Cmd>bnext<CR>", { desc = "next buffer" })
map("n", "<leader>bd", "<Cmd>bdelete<CR>", { desc = "delete buffer" })
map("t", "<Esc>", "<C-\\><C-n>", { desc = "exit terminal" })
map("t", "\\<Esc>", "<C-\\><C-n>", { desc = "exit terminal" })
map("n", "<C-h>", "<C-w>h", { desc = "window left" })
map("n", "<C-j>", "<C-w>j", { desc = "window down" })

View File

@@ -0,0 +1,41 @@
local g = vim.g
local o = vim.opt
-- Leaders
g.mapleader = " " -- Uses space as the global leader key.
g.maplocalleader = " " -- Uses space as the local leader key.
-- Interface
o.number = true -- Shows absolute line numbers.
o.relativenumber = true -- Shows relative numbers for easier motion.
o.scrolloff = 8 -- Keeps context lines visible around the cursor.
o.signcolumn = "yes" -- Always reserves space for signs in the gutter.
o.colorcolumn = "+1" -- Highlights the preferred maximum line width.
o.wrap = false -- Prevents long lines from wrapping on screen.
o.list = true -- Displays whitespace characters using listchars.
o.listchars = {
tab = "» ",
trail = "·",
extends = "",
precedes = "",
nbsp = "",
} -- Defines how invisible characters are rendered.
o.termguicolors = true -- Enables full RGB color support.
o.mouse = "" -- Disables mouse support.
-- Editing
o.tabstop = 4 -- Renders tab characters as four columns.
o.softtabstop = 4 -- Makes tab/backspace feel like four spaces.
o.shiftwidth = 4 -- Uses four columns for each indent step.
o.expandtab = false -- Keeps literal tab characters instead of spaces.
o.smartindent = true -- Adds indentation automatically on new lines.
o.swapfile = false -- Disables swapfile creation.
-- Search and update behavior
o.incsearch = true -- Updates search matches as you type.
o.updatetime = 50 -- Reduces idle delay for swap and CursorHold events.
o.spelllang = { "en_us" } -- Uses US English for spell checking.
-- Shell
o.shell = "bash" -- Runs shell commands through bash.

View File

@@ -1,4 +1,5 @@
require("romanzy.plugins.rose-pine")
require("romanzy.plugins.mini")
require("romanzy.plugins.oil")
require("romanzy.plugins.telescope")
require("romanzy.plugins.nvim-treesitter")

View File

@@ -104,5 +104,6 @@ end
require("mason").setup()
mason_lspconfig.setup({
ensure_installed = managed_servers,
automatic_enable = managed_servers,
})

View File

@@ -0,0 +1,70 @@
vim.pack.add({
{
src = "https://github.com/echasnovski/mini.nvim",
name = "mini.nvim",
branch = "stable",
},
})
local clue = require("mini.clue")
local icons = require("mini.icons")
local git = require("mini.git")
local diff = require("mini.diff")
local statusline = require("mini.statusline")
local hipatterns = require("mini.hipatterns")
local ai = require("mini.ai")
local notify = require("mini.notify")
local surround = require("mini.surround")
local function set_mini_diff_highlights()
vim.api.nvim_set_hl(0, "MiniDiffSignAdd", { fg = "#9ccf8d" })
vim.api.nvim_set_hl(0, "MiniDiffSignChange", { fg = "#f6c177" })
vim.api.nvim_set_hl(0, "MiniDiffSignDelete", { fg = "#eb6f92" })
vim.api.nvim_set_hl(0, "MiniDiffOverAdd", { fg = "#9ccf8d" })
vim.api.nvim_set_hl(0, "MiniDiffOverChange", { fg = "#f6c177" })
vim.api.nvim_set_hl(0, "MiniDiffOverDelete", { fg = "#eb6f92" })
end
clue.setup({
triggers = {
{ mode = "n", keys = "<leader>" },
{ mode = "n", keys = "g" },
{ mode = "n", keys = "<C-w>"},
{ mode = "n", keys = "z" },
{ mode = "i", keys = "<C-x>" },
},
clues = {
clue.gen_clues.builtin_completion(),
clue.gen_clues.g(),
clue.gen_clues.marks(),
clue.gen_clues.registers(),
clue.gen_clues.windows(),
clue.gen_clues.z(),
},
window = {
delay = 500,
},
})
icons.setup({})
git.setup({})
diff.setup({})
set_mini_diff_highlights()
vim.api.nvim_create_autocmd("ColorScheme", {
callback = set_mini_diff_highlights,
})
statusline.setup({ use_icons = true })
hipatterns.setup({
highlighters = {
fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" },
hack = { pattern = "%f[%w]()HACK()%f[%W]", group = "MiniHipatternsHack" },
todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" },
note = { pattern = "%f[%w]()NOTE()%f[%W]", group = "MiniHipatternsNote" },
file = { pattern = "%f[%w]()FILE()%f[%W]", group = "MiniHipatternsNote" },
hex_color = hipatterns.gen_highlighter.hex_color(),
},
})
ai.setup({})
notify.setup({})
vim.notify = notify.make_notify()
surround.setup({})

View File

@@ -3,8 +3,23 @@ vim.pack.add({
src = "https://github.com/stevearc/oil.nvim",
name = "oil.nvim",
},
{
src = "https://github.com/malewicz1337/oil-git.nvim",
name = "oil-git.nvim",
},
})
local function set_oil_git_highlights()
vim.api.nvim_set_hl(0, "OilGitAdded", { link = "MiniDiffSignAdd" })
vim.api.nvim_set_hl(0, "OilGitUntracked", { link = "MiniDiffSignAdd" })
vim.api.nvim_set_hl(0, "OilGitModifiedStaged", { link = "MiniDiffSignChange" })
vim.api.nvim_set_hl(0, "OilGitModifiedUnstaged", { link = "MiniDiffSignChange" })
vim.api.nvim_set_hl(0, "OilGitRenamed", { link = "MiniDiffSignChange" })
vim.api.nvim_set_hl(0, "OilGitCopied", { link = "MiniDiffSignChange" })
vim.api.nvim_set_hl(0, "OilGitDeleted", { link = "MiniDiffSignDelete" })
vim.api.nvim_set_hl(0, "OilGitConflict", { link = "MiniDiffSignDelete" })
end
require("oil").setup({
keymaps = {
["<C-h>"] = false,
@@ -27,3 +42,17 @@ require("oil").setup({
end,
},
})
require("oil-git").setup({
show_file_highlights = true,
show_directory_highlights = true,
show_file_symbols = true,
show_directory_symbols = true,
symbol_position = "none",
})
set_oil_git_highlights()
vim.api.nvim_create_autocmd("ColorScheme", {
group = vim.api.nvim_create_augroup("romanzy_oil_git_highlights", { clear = true }),
callback = set_oil_git_highlights,
})

View File

@@ -1,42 +0,0 @@
vim.g.mapleader = " "
vim.g.maplocalleader = " "
vim.opt.nu = true
vim.opt.relativenumber = true
-- disable normie mouse stuff
vim.opt.mouse = ""
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = false
vim.opt.smartindent = true
vim.opt.wrap = false -- no line wrapping...
vim.opt.incsearch = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 8
vim.opt.signcolumn = "yes"
vim.opt.updatetime = 50
vim.opt.colorcolumn = "80"
vim.opt.spelllang = { 'en_us' }
vim.opt.listchars = {
tab = "» ",
trail = "·",
extends = "",
precedes = "",
nbsp = ""
}
vim.opt.list = true
-- only show the invisible characters inside the code editing buffers
vim.cmd([[autocmd BufWinEnter * if &buftype != '' | setlocal nolist | endif]])
vim.opt.shell = "bash"

View File

@@ -12,6 +12,10 @@
"rev": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d",
"src": "https://github.com/mason-org/mason.nvim"
},
"mini.nvim": {
"rev": "1599a473aa6f5290a5d740b1144846e6f0c3963d",
"src": "https://github.com/echasnovski/mini.nvim"
},
"nvim-lspconfig": {
"rev": "bfcc0171a43f22afa61d927ffe9fcb6cb85dc99e",
"src": "https://github.com/neovim/nvim-lspconfig"
@@ -20,6 +24,10 @@
"rev": "4916d6592ede8c07973490d9322f187e07dfefac",
"src": "https://github.com/nvim-treesitter/nvim-treesitter"
},
"oil-git.nvim": {
"rev": "54de208323d00c519e26280f8b5b4b821d32f955",
"src": "https://github.com/malewicz1337/oil-git.nvim"
},
"oil.nvim": {
"rev": "b73018b75affd13fa38e2fc94ef753b465f770d7",
"src": "https://github.com/stevearc/oil.nvim"