Compare commits

..

2 Commits

Author SHA1 Message Date
zegonix 726f316c83 (ghostty) disable warning on paste 2026-04-21 21:39:26 +02:00
scbj 0ae0eb1896 (scripts) fixed whitespace remover to keep line endings by default 2026-04-21 14:35:55 +02:00
24 changed files with 447 additions and 467 deletions
+1 -4
View File
@@ -6,11 +6,8 @@
# important for window manager and menu app (fuzzel, rofi, ..)
# to find scripts and utilities
unset export_paths
export_paths+=("${HOME}/dotfiles/scripts")
export_paths+=("${HOME}/dotfiles/desktop-files")
export_paths=("${HOME}/dotfiles/scripts")
export_paths+=("/opt/jlink")
export_paths+=("${HOME}/.cargo/bin")
for entry in ${export_paths[@]}; do
if ! [[ -d "${entry}" ]]; then
-1
View File
@@ -7,7 +7,6 @@
# to find scripts and utilities
export_paths=("${HOME}/dotfiles/scripts")
export_paths+=("${HOME}/dotfiles/desktop-files")
export_paths+=("${HOME}/tools/jlink")
for entry in ${export_paths[@]}; do
+1 -6
View File
@@ -38,10 +38,7 @@ if ! $(which navigate &>/dev/null); then
fi
if $(which eza &>/dev/null); then
alias list='eza -lao --no-permissions --group-directories-first \
-s=ext --color=always --time-style long-iso'
alias tree='eza -laoT --no-permissions --group-directories-first \
-s=ext --color=always --time-style long-iso -I=.git'
alias list='eza -lao --no-permissions --group-directories-first -s=ext --color=always --time-style long-iso'
else
alias list='ls -hAl --color=auto --group-directories-first'
fi
@@ -63,8 +60,6 @@ fi
# because `libreWolf` is ambiguous for tab completion
if $(which librewolf &>/dev/null); then
alias firefox='librewolf'
elif $(which librewolf.appimage &>/dev/null); then
alias firefox='librewolf.appimage'
fi
# short forms for tmux commands
-6
View File
@@ -1,6 +0,0 @@
[Desktop Entry]
Name=firefox
Comment=launch zegonix browser of choice
Exec=bash start-browser.sh
Type=Application
Categories=Network;WebBrowser;
-2
View File
@@ -21,7 +21,5 @@ mouse-scroll-multiplier = 1.0
app-notifications = no-clipboard-copy
copy-on-select = false
clipboard-paste-protection = false
clipboard-read = allow
clipboard-write = allow
theme = zegonix
+1 -1
View File
@@ -1,5 +1,5 @@
background = #14141F
background = #0C0C18
foreground = #D0D0D0
################
+5 -9
View File
@@ -13,13 +13,9 @@
[include]
path = ~/.config/.gitconfig
[alias]
graph = log \
--oneline \
--all \
--graph \
--pretty='tformat:%C(yellow)%h %C(blue)%as%C(auto)%d %C(reset)%s'
[format]
pretty = tformat:%C(yellow)%h %C(blue)%as%C(auto)%d %C(reset)%s
oneline = log \
-n 20 \
--pretty='tformat:%C(yellow)%h %C(blue)%as%C(auto)%d %C(reset)%s'
[alias]
graph = log --oneline --all --graph
oneline = log -20
+3 -4
View File
@@ -1,5 +1,4 @@
[Settings]
gtk-icon-theme-name=Adwaita
gtk-theme-name=Adwaita-dark
gtk-cursor-theme-name=Adwaita
gtk-font-name=JetBrainsMonoNerdFont
gtk-icon-theme-name = Adwaita
gtk-theme-name = Adwaita-dark
gtk-font-name = JetBrainsMonoNerdFont
+3 -4
View File
@@ -1,5 +1,4 @@
[Settings]
gtk-icon-theme-name=Adwaita
gtk-theme-name=Adwaita-dark
gtk-cursor-theme-name=Adwaita
gtk-font-name=JetBrainsMonoNerdFont
gtk-icon-theme-name = Adwaita
gtk-theme-name = Adwaita-dark
gtk-font-name = JetBrainsMonoNerdFont
+6 -8
View File
@@ -45,7 +45,7 @@ exec --no-startup-id dunst
exec --no-startup-id picom -b
# clean up and start polybar
exec_always --no-startup-id pkill polybar
exec_always --no-startup-id killall polybar
exec_always --no-startup-id bash ~/.config/polybar/launch_polybar.sh
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
@@ -128,7 +128,6 @@ bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
bindsym $mod+b scratchpad show
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
@@ -141,7 +140,6 @@ bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
bindsym $mod+Shift+z move scratchpad
# move focused container and switch to workspace
bindsym $mod+$Alt+1 move container to workspace number $ws1; workspace number $ws1
@@ -168,8 +166,8 @@ bindsym $mod+o move workspace to output up
bindsym $mod+p move workspace to output right
# take screenshots
bindsym $mod+s exec --no-startup-id bash x11-screenshot.sh --clipboard
bindsym $mod+Shift+s exec --no-startup-id bash x11-screenshot.sh
bindsym $mod+s exec --no-startup-id maim -suo | xclip -selection clipboard -t image/png
bindsym $mod+Shift+s exec --no-startup-id maim -suo "${HOME}/Pictures/screenshots/$(date '+%Y%m%d_%H%M%S').png"
# use pactl for media keys
set $refresh_i3status killall -SIGUSR1 i3status
@@ -197,7 +195,7 @@ mouse_warping none
############################
# load background image
exec --no-startup-id feh --bg-fill ~/dotfiles/images/pixel-windows.png
exec --no-startup-id feh --bg-fill ~/dotfiles/images/blaa.jpg
# window border style
default_border pixel 2
@@ -205,8 +203,8 @@ default_floating_border pixel 0
for_window [class=".*"] border pixel 1
# gaps between windows and screen border
gaps inner 6 px
gaps outer 0 px
gaps inner 4 px
gaps outer 2 px
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

+69
View File
@@ -0,0 +1,69 @@
# use interactive shell instead of login shell
set-option -g default-command "/bin/bash"
# enable rgb colors
set -ag terminal-overrides ",*:RGB"
# reasonable resizing
setw -g aggressive-resize on
# start window and pane index at 1
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# status bar
set -g status-interval 5
# buffer size
set-option -g history-limit 3000
### input options & keybindings
set-window-option -g mode-keys vi
bind-key -n M-c copy-mode
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection
# change prefix key to <space>
unbind C-b
set-option -g prefix C-Space
# window navigation
bind-key -n M-Left previous-window
bind-key -n M-Right next-window
bind-key -n M-S-Left swap-window -t -1 -d
bind-key -n M-S-Right swap-window -t +1 -d
# pane navigation
bind -n M-Left select-pane -L
bind -n M-Down select-pane -D
bind -n M-Up select-pane -U
bind -n M-Right select-pane -R
bind -n M-j swap-pane -D
bind -n M-k swap-pane -U
bind-key -n M-F1 select-layout even-horizontal
bind-key -n M-F2 select-layout main-vertical
bind-key -n M-F3 select-layout tiled
unbind x
bind-key x kill-pane -t +0
# detach current session and close terminal
bind-key k run "tmux detach -P"
# enable mouse support
set -g mouse on
# bind -n WheelUpPane {
# if -F '#{==:#{window_name},nvim}' {
# send-keys -M
# } {
# copy-mode -e
# }
# }
+3 -3
View File
@@ -2,13 +2,13 @@
Section "Monitor"
Identifier "DP-3"
Identifier "DisplayPort-2"
Option "Primary" "true"
Option "DPMS"
EndSection
Section "Monitor"
Identifier "DP-2"
Option "rightof" "DP-3"
Identifier "DisplayPort-1"
Option "rightof" "DisplayPort-2"
Option "DPMS"
EndSection
+230 -228
View File
@@ -1,256 +1,258 @@
-- plugin for language servers
return {
"neovim/nvim-lspconfig",
dependencies = {
-- Automatically install LSPs and related tools to stdpath for Neovim
{ "williamboman/mason.nvim", config = true }, -- NOTE: Must be loaded before dependants
"williamboman/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim",
"neovim/nvim-lspconfig",
dependencies = {
-- Automatically install LSPs and related tools to stdpath for Neovim
{ "williamboman/mason.nvim", config = true }, -- NOTE: Must be loaded before dependants
"williamboman/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim",
-- Useful status updates for LSP.
-- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
{
"j-hui/fidget.nvim",
tag = "v1.4.0",
opts = {
progress = {
display = {
done_icon = "", -- Icon shown when all LSP progress tasks are complete
},
},
notification = {
window = {
winblend = 0, -- Background color opacity in the notification window
},
},
},
},
},
config = function()
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
-- Create a function that lets us more easily define mappings specific
-- for LSP related items. It sets the mode, buffer and description for us each time.
callback = function(event)
local map = function(keys, func, desc, mode)
mode = mode or "n"
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- Useful status updates for LSP.
-- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
{
"j-hui/fidget.nvim",
tag = "v1.4.0",
opts = {
progress = {
display = {
done_icon = "", -- Icon shown when all LSP progress tasks are complete
},
},
notification = {
window = {
winblend = 0, -- Background color opacity in the notification window
},
},
},
},
},
config = function()
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
-- Create a function that lets us more easily define mappings specific
-- for LSP related items. It sets the mode, buffer and description for us each time.
callback = function(event)
local map = function(keys, func, desc, mode)
mode = mode or "n"
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
-- Find references for the word under your cursor.
map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- Find references for the word under your cursor.
map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("<leader>D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("<leader>D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition")
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map("<leader>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols")
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map("<leader>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols")
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map("<leader>ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols")
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map("<leader>ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols")
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" })
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" })
-- Opens a popup that displays documentation about the word under your cursor
-- See `:help K` for why this keymap
map("K", vim.lsp.buf.hover, "[K]ontext - Show Tooltip")
-- Opens a popup that displays documentation about the word under your cursor
-- See `:help K` for why this keymap
map("K", vim.lsp.buf.hover, "[K]ontext - Show Tooltip")
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
map("<leader>df", vim.diagnostic.open_float, "show diagnostic in floating window")
map("<leader>df", vim.diagnostic.open_float, "show diagnostic in floating window")
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared (the second autocommand).
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then
local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false })
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared (the second autocommand).
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then
local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false })
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd("LspDetach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf })
end,
})
end
vim.api.nvim_create_autocmd("LspDetach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf })
end,
})
end
-- The following code creates a keymap to toggle inlay hints in your
-- code, if the language server you are using supports them
--
-- This may be unwanted, since they displace some of your code
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
map("<leader>th", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
end, "[T]oggle Inlay [H]ints")
end
end,
})
-- The following code creates a keymap to toggle inlay hints in your
-- code, if the language server you are using supports them
--
-- This may be unwanted, since they displace some of your code
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
map("<leader>th", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
end, "[T]oggle Inlay [H]ints")
end
end,
})
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities())
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities())
-- Enable the following language servers
local servers = {
clangd = {},
marksman = {},
lua_ls = {
settings = {
Lua = {
completion = {
callSnippet = "Replace",
},
runtime = { version = "LuaJIT" },
workspace = {
checkThirdParty = false,
library = {
"${3rd}/luv/library",
unpack(vim.api.nvim_get_runtime_file("", true)),
},
},
diagnostics = { disable = { "missing-fields" } },
-- Enable the following language servers
local servers = {
clangd = {},
lua_ls = {
-- cmd = {...},
-- filetypes = { ...},
-- capabilities = {},
settings = {
Lua = {
completion = {
callSnippet = "Replace",
},
runtime = { version = "LuaJIT" },
workspace = {
checkThirdParty = false,
library = {
"${3rd}/luv/library",
unpack(vim.api.nvim_get_runtime_file("", true)),
},
},
diagnostics = { disable = { "missing-fields" } },
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
-- diagnostics = { disable = { 'missing-fields' } },
},
},
},
pylsp = {
settings = {
pylsp = {
plugins = {
pyflakes = { enabled = false },
pycodestyle = { enabled = false },
autopep8 = { enabled = false },
yapf = { enabled = false },
mccabe = { enabled = false },
pylsp_mypy = { enabled = false },
pylsp_black = { enabled = false },
pylsp_isort = { enabled = false },
},
},
},
},
ruff = {
-- Notes on code actions: https://github.com/astral-sh/ruff-lsp/issues/119#issuecomment-1595628355
-- Get isort like behavior: https://github.com/astral-sh/ruff/issues/8926#issuecomment-1834048218
commands = {
RuffAutofix = {
function()
vim.lsp.buf.execute_command({
command = "ruff.applyAutofix",
arguments = {
{ uri = vim.uri_from_bufnr(0) },
},
})
end,
description = "Ruff: Fix all auto-fixable problems",
},
RuffOrganizeImports = {
function()
vim.lsp.buf.execute_command({
command = "ruff.applyOrganizeImports",
arguments = {
{ uri = vim.uri_from_bufnr(0) },
},
})
end,
description = "Ruff: Format imports",
},
},
},
rust_analyzer = {
["rust-analyzer"] = {
cargo = {
features = "all",
},
checkOnSave = true,
check = {
command = "clippy",
},
},
},
}
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
-- diagnostics = { disable = { 'missing-fields' } },
},
},
},
pylsp = {
settings = {
pylsp = {
plugins = {
pyflakes = { enabled = false },
pycodestyle = { enabled = false },
autopep8 = { enabled = false },
yapf = { enabled = false },
mccabe = { enabled = false },
pylsp_mypy = { enabled = false },
pylsp_black = { enabled = false },
pylsp_isort = { enabled = false },
},
},
},
},
ruff = {
-- Notes on code actions: https://github.com/astral-sh/ruff-lsp/issues/119#issuecomment-1595628355
-- Get isort like behavior: https://github.com/astral-sh/ruff/issues/8926#issuecomment-1834048218
commands = {
RuffAutofix = {
function()
vim.lsp.buf.execute_command({
command = "ruff.applyAutofix",
arguments = {
{ uri = vim.uri_from_bufnr(0) },
},
})
end,
description = "Ruff: Fix all auto-fixable problems",
},
RuffOrganizeImports = {
function()
vim.lsp.buf.execute_command({
command = "ruff.applyOrganizeImports",
arguments = {
{ uri = vim.uri_from_bufnr(0) },
},
})
end,
description = "Ruff: Format imports",
},
},
},
rust_analyzer = {
["rust-analyzer"] = {
cargo = {
features = "all",
},
checkOnSave = true,
check = {
command = "clippy",
},
},
},
}
-- Ensure the servers and tools above are installed
require("mason").setup()
-- Ensure the servers and tools above are installed
require("mason").setup()
-- You can add other tools here that you want Mason to install
-- for you, so that they are available from within Neovim.
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
"stylua", -- Used to format Lua code
"clangd",
"rust-analyzer",
})
require("mason-tool-installer").setup({ ensure_installed = ensure_installed })
-- You can add other tools here that you want Mason to install
-- for you, so that they are available from within Neovim.
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
"stylua", -- Used to format Lua code
"clangd",
"rust-analyzer",
})
require("mason-tool-installer").setup({ ensure_installed = ensure_installed })
-- vim.cmd([[autocmd! ColorScheme * highlight NormalFloat guibg=#1f2335]])
-- vim.cmd([[autocmd! ColorScheme * highlight FloatBorder guifg=white guibg=#1f2335]])
-- vim.cmd([[autocmd! ColorScheme * highlight NormalFloat guibg=#1f2335]])
-- vim.cmd([[autocmd! ColorScheme * highlight FloatBorder guifg=white guibg=#1f2335]])
local border = {
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
}
local border = {
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
{ "", "FloatBorder" },
}
local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview
function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...)
opts = opts or {}
opts.border = opts.border or border
return orig_util_open_floating_preview(contents, syntax, opts, ...)
end
local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview
function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...)
opts = opts or {}
opts.border = opts.border or border
return orig_util_open_floating_preview(contents, syntax, opts, ...)
end
require("mason-lspconfig").setup({
handlers = {
function(server_name)
local server = servers[server_name] or {}
-- This handles overriding only values explicitly passed
-- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for ts_ls)
server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
require("lspconfig")[server_name].setup(server)
end,
},
})
end,
require("mason-lspconfig").setup({
handlers = {
function(server_name)
local server = servers[server_name] or {}
-- This handles overriding only values explicitly passed
-- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for ts_ls)
server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
require("lspconfig")[server_name].setup(server)
end,
},
})
end,
}
+2 -2
View File
@@ -1,7 +1,7 @@
if type "xrandr"; then
for m in $(xrandr --query | grep " connected " | cut -d" " -f1); do
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
MONITOR=$m polybar --reload toph &
done
else
polybar --reload toph &
fi
fi
+57 -4
View File
@@ -3,7 +3,55 @@
A collection of configuration files meant to be used with GNU stow, hence the directory structure.
## Link configurations with GNU stow
## Usage
### List of packages to install
* (alacritty)
* audacious
* bash-completion
* bat
* bitwarden
* dunst
* eza
* feh
* fzf
* git
* ghostty
* ly
* maim
* man
* neovim
* pandoc
* pavucontrol
* picom
* polybar
* ripgrep
* rofi
* starship
* stow
* tmux
* unzip
* xclip
AUR:
* paru
### Getting the repository
Navigate to your home directory `~/`.
Download the repository to that directory or do it the recommended way and clone it there with git:
```
git clone https://github.com/zegonix/dotfiles.git
```
or
```
git clone git@github.com:zegonix/dotfiles.git
```
**Note:** The location of the local copy is important for stow. You can put it somewhere else, but you will have to configure stow to inform it of non default source and target locations, the target is relative to the source by default.
### Link configurations with GNU stow
Make sure to have `stow` installed.
Navigate into your local copy of the repository, usually `~/dotfiles`.
Create links to the configurations with:
@@ -12,11 +60,16 @@ Create links to the configurations with:
```
for example
```
stow bashrc
stow alacritty
```
It is important to execute this and similar commands in the root directory of the repository `~/dotfiles` unless you specify source and target locations manually.
## Ideas for scripts
## Todos
* [ ] configure lock screen (probably i3lock)
* [ ] sway (wayland in general..)
* [ ] terminal emulators to keep in mind:
* [ ] `foot` (wayland exclusive) -> postponed for potential wayland setup
* (sed) script to reformat text files for a configurable line length.
+20 -33
View File
@@ -1,38 +1,25 @@
@theme "~/.config/rofi/themes/zegonix-blue.rasi"
// @theme "~/.config/rofi/themes/zegonix-black.rasi"
//@theme "~/.config/rofi/themes/zegonix-black.rasi"
configuration {
// mode
modes: "combi,run";
combi-modes: "drun,run";
drun-match-fields: "name,generic,keywords";
modes: "combi,window,run";
combi-modes: "drun,run";
drun-match-fields: "name,generic,keywords";
matching: "fuzzy";
monitor: -1;
terminal: "ghostty";
case-sensitive: false;
kb-row-up: "Up,Control+k";
kb-row-down: "Down,Control+j";
kb-accept-entry: "Return,Control+m";
kb-remove-to-eol: "";
timeout {
action: "kb-cancel";
delay: 0;
}
// blargh?
monitor: -1;
terminal: "ghostty";
no-plugins: true;
// matching
matching: "fuzzy";
case-sensitive: false;
// keybindings
kb-row-up: "Up,Control+k";
kb-row-down: "Down,Control+j";
kb-accept-entry: "Return";
kb-remove-to-eol: "";
kb-clear-line: "";
kb-remove-word-back: "Control+BackSpace,Control+w";
// do not cancel me!
timeout {
action: "kb-cancel";
delay: 0;
}
// ??
filebrowser {
directories-first: true;
sorting-method: "name";
}
filebrowser {
directories-first: true;
sorting-method: "name";
}
}
+15 -28
View File
@@ -1,18 +1,18 @@
* {
font: "JetBrains Mono Nerd Font 14";
font: "Victor Mono Nerd Font 13";
zx-transparent: transparent;
zx-white: #C8C8C8FF;
zx-dark-blue: #000010EA;
zx-dark-blue: #080C1CEA;
zx-blue: #203050C8;
zx-light-blue: #5BB8FFFF;
zx-light-blue: #6bceffff;
zx-cyan: #15D7E5FF;
zx-light-grey: #A0A0ADFF;
zx-dark-grey: #202028C8;
zx-black: #000000EA;
zx-background: @zx-black;
zx-secondary: @zx-dark-grey;
zx-accent: @zx-light-grey;
zx-accent: @zx-white;
zx-text: @zx-white;
background-color: transparent;
@@ -20,14 +20,16 @@
window {
location: center;
width: 30%;
width: 35%;
background-color: @zx-background;
border: 0;
border-color: @zx-accent;
children: [ mainbox ];
padding: 2 12 8 12;
children: [mainbox];
}
mainbox {
@@ -35,7 +37,7 @@ mainbox {
border: 0px;
spacing: 8px;
children: [ inputbar, listview, mode-switcher ];
children: [inputbar, listview];
}
inputbar {
@@ -48,7 +50,7 @@ inputbar {
border: 0 0 1px 0;
border-color: @zx-accent;
children: [ entry ];
children: [prompt, entry];
}
prompt {
@@ -70,17 +72,17 @@ listview {
spacing: 5px;
border: 0px;
background-color: @zx-transparent;
background-color: @transparent; //@zx-background;
children: [ element ];
children: [element];
}
element {
background-color: @zx-transparent;
background-color: transparent;
text-color: inherit;
border: 0;
children: [ element-text ];
children: [element-text];
}
element-text {
@@ -104,19 +106,4 @@ element-text.selected {
prompt, entry, element-text {
vertical-align: 0.5;
}
mode-switcher {
children: [ button ];
}
button {
padding: 4 0 4 0;
text-color: @zx-text;
text-transform: bold;
}
button.selected {
text-color: @zx-background;
background-color: @zx-accent;
}
}
+5 -2
View File
@@ -20,13 +20,15 @@
window {
location: center;
width: 30%;
width: 25%;
background-color: @zx-background;
border: 0;
border-color: @zx-accent;
//padding: 2 12 8 12;
children: [mainbox];
}
@@ -42,6 +44,7 @@ inputbar {
spacing: 40px;
padding: 10px;
//background-color: @zx-secondary;
text-color: @zx-text;
border: 0 0 1px 0;
@@ -69,7 +72,7 @@ listview {
spacing: 5px;
border: 0px;
background-color: @zx-transparent;
background-color: @zx-transparent; //@zx-background;
children: [element];
}
+1 -1
View File
@@ -23,7 +23,7 @@ function __search-history {
READLINE_POINT=$((0 + ${#command}))
}
if [[ "$-" == *i* ]] && $(which fzf &>/dev/null); then
if [[ "$-" == *i* ]] && which fzf &>/dev/null; then
bind -r "\C-r"
bind -x '"\C-r": __search-history'
fi
-9
View File
@@ -1,9 +0,0 @@
#!/usr/bin/env bash
if $(which librewolf &>/dev/null); then
librewolf
elif $(which librewolf.appimage); then
librewolf.appimage
else
notify-send "[ERROR]" "Failed to start browser"
fi
+24 -84
View File
@@ -4,17 +4,13 @@ function remove-whitespace {
# exclude file types
# (ignore generated files/directories)
exclude_paths=(
".git"
"*/.git/*"
)
exclude_files=(
"*.lst"
"*.map"
"*.svd"
"*.sym"
"*.doc"
"*.docx"
"*.ppt"
"*.pptx"
)
unset help
@@ -24,49 +20,28 @@ function remove-whitespace {
unset file_args
unset ffunix
unset files
unset args
unset arguments
for arg in "$@"; do
if [[ "${arg}" =~ ^-[a-zA-Z]{2,}$ ]]; then
temp=($(echo ${arg} | grep --color=never -o "."))
args+=(${temp[@]/#/-})
else
args+=("${arg}")
fi
done
for arg in "${args[@]}"; do
[[ "${arg}" != "--" ]] && arguments+=("${arg}")
done
unset args
for arg in "${arguments[@]}"; do
unset arg_found
case "${arg}" in
for arg in $@; do
case ${arg} in
"-u" | "--unix")
arg_found="true"
ffunix="true"
continue
;;
"-h" | "--help")
arg_found="true"
"-h" | "--help" | "-help")
help="true"
continue
;;
"-n" | "--no-action")
arg_found="true"
no_action="true"
continue
;;
"-s" | "--silent")
arg_found="true"
silent="true"
continue
;;
*) ;;
esac
if [[ -n "${arg_found}" ]]; then
continue
fi
if [[ -d "${arg}" ]]; then
path_args+=("${arg}")
continue
@@ -86,42 +61,21 @@ function remove-whitespace {
grep_regex=$'[[:blank:]]+\r?$'
fi
# compile exclude arguments
unset excludes
excludes=("(")
for n in ${!exclude_paths[@]}; do
excludes+=("-name" "${exclude_paths[$n]}")
if ((${n} < ${#exclude_paths[@]} - 1)); then
excludes+=("-o")
fi
done
excludes+=(")" "-type d" "-prune" "-o")
for arg in "${exclude_files[@]}"; do
excludes+=("-not" "-name" "${arg}")
done
for arg in "${path_args[@]}"; do
files=("$(
for arg in ${path_args[@]}; do
files+=($(
find "${arg}" \
${excludes[@]} \
"${exclude_paths[@]/#/-not -path }" \
"${exclude_files[@]/#/-not -name }" \
-type f \
-exec grep -EIq "${grep_regex}" {} \; \
-print
)")
))
done
for arg in ${file_args[@]}; do
grep -EIq "${grep_regex}" ${arg} && files+=("${arg}")
done
IFS=$'\n'
files=(${files})
unset IFS
for arg in "${file_args[@]}"; do
grep -EIq "${grep_regex}" "${arg}" && files+=("${arg}")
done
if [[ -n "${help}" ]] || [[ -z "${file_args[@]} ${path_args[@]}" ]]; then
if [[ -n "${help}" ]] || [[ -z "${files[@]}" ]]; then
cat <<EOF
Usage: remove-whitespace [-h] [-n] path [path]
@@ -136,46 +90,32 @@ Options:
line endings
-h, --help show this help
-n, --no-action do not delete, only detect whitespace
this switch forces silent=false
-s, --silent suppress output
EOF
return 0
fi
if [[ -z "${files[@]}" ]]; then
echo "no files with trailing whitespace or dos style line endings found"
return 0
fi
if [[ -z "${no_action}" ]]; then
for file in "${files[@]}"; do
for file in ${files[@]}; do
if [[ -n "${ffunix}" ]]; then
sed -i "${sed_cmd}" "${file}"
sed -i "${sed_cmd}" ${file}
else
sed -i "${sed_cmd}" "${file}"
sed -i "${sed_cmd}" ${file}
fi
done
fi
if [[ -n "${no_action}" ]] &&
[[ -n "${files}" ]]; then
tput setaf 1
tput smso
echo "The following files contain whitespace:"
tput sgr0
for file in "${files[@]}"; do
echo "${file}"
done
elif [[ -z "${silent}" ]] &&
echo ""
if [[ -z "${silent} ${no_action}" ]] &&
[[ -n "${files}" ]]; then
tput setaf 1
tput smso
echo "The following files contained whitespace:"
tput sgr0
for file in "${files[@]}"; do
for file in ${files[@]}; do
echo "${file}"
done
fi
}
-26
View File
@@ -1,26 +0,0 @@
#!/usr/bin/env bash
unset use_clipboard
if [[ "$1" == "-c" ]] || [[ "$1" == "--clipboard" ]]; then
use_clipboard="true"
fi
if ! $(which maim &>/dev/null); then
notify-send "[screenshot]" "missing \`maim\`"
exit 1
fi
if [[ -n "${use_clipboard}" ]] && ! $(which xclip &>/dev/null); then
notify-send "[screenshot]" "missing \`xclip\`"
exit 1
fi
if [[ -z "${use_clipboard}" ]]; then
screenshots_path="${HOME}/screenshots"
echo "${screenshots_path}"
if [[ ! -d "${screenshots_path}" ]]; then
mkdir "${screenshots_path}"
fi
maim -suo "${screenshots_path}/$(date '+%Y%m%d_%H%M%S').png"
else
maim -suo | xclip -selection clipboard -t image/png
fi
+1 -2
View File
@@ -2,8 +2,7 @@
# use interactive shell instead of login shell
set-option -g default-command "/bin/bash"
# configure terminal
set -g default-terminal "tmux-256color"
# enable rgb colors
set -ag terminal-overrides ",*:RGB"
# enable mouse support