Compare commits

..

18 Commits

Author SHA1 Message Date
Henrik Bakken 5c052509c4 yazi fix config 2026-05-29 11:26:21 +02:00
Henrik Bakken 03a9ca5060 vesktop->discord, heif image support 2026-05-27 09:50:29 +02:00
Henrik Bakken 9f17fbcb37 btop update 2026-05-23 00:34:36 +02:00
Henrik Bakken c42475c571 nvim better completeopt 2026-05-23 00:33:52 +02:00
Henrik Bakken 0d1702456e nvim stop ftplugin hijacking omnifunc 2026-05-09 02:01:23 +02:00
Henrik Bakken 2914b79ded nvim ty disable autoimports 2026-05-09 02:01:18 +02:00
Henrik Bakken 1c8d5284ca nvim lspconfig 2026-05-09 02:01:18 +02:00
Henrik Bakken 640379c105 sway+tmux added bash emergency brakes 2026-05-06 13:43:03 +02:00
Henrik Bakken 379ae0f786 qutebrowser gemini tips
- finn.no maps showing (webgl)
- altinn login
- avoid dangerous lowercase normal-mode mapping
2026-04-26 21:03:31 +02:00
Henrik Bakken fe08de4f9a nvim-lint simplified, no timeout 2026-04-26 00:49:39 +02:00
Henrik Bakken 2d0f0470a0 nvim which-key fix and enable TreeWalker in python 2026-04-26 00:49:10 +02:00
Henrik Bakken 99ab844325 nvim remove bugged guicursor setting 2026-04-25 21:25:12 +02:00
Henrik Bakken 927f556aef nvim + tmux tweaks 2026-04-18 02:52:32 +02:00
Henrik Bakken f0e19a1f71 nvim + tmux tweaks 2026-04-18 01:53:01 +02:00
Henrik Bakken 608d9b8cf7 Merge remote-tracking branch 'hjarl/main' 2026-04-09 19:33:32 +02:00
Henrik Bakken adbe1641ec nvim tweaks 2026-04-09 19:31:03 +02:00
Henrik Bakken 0509989016 remove edge 2026-03-31 12:18:44 +02:00
Henrik Bakken 49dae6be39 misc edits: foot, nvim, sway, qute 2026-03-30 16:04:15 +02:00
10 changed files with 162 additions and 277 deletions
+18 -4
View File
@@ -1,4 +1,4 @@
#? Config file for btop v.1.4.6
#? Config file for btop v.1.4.7
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
@@ -14,6 +14,11 @@ truecolor = true
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = false
#* Option to disable presets. Either the default preset, custom presets, or all presets.
#* "Off" All presets are enabled.
#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled.
disable_presets = "Off"
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
@@ -24,6 +29,9 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = false
#* Disable all mouse events.
disable_mouse = false
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = true
@@ -53,14 +61,14 @@ graph_symbol_net = "default"
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu mem net proc gpu0"
shown_boxes = "gpu0 cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu lazy"
proc_sorting = "memory"
#* Reverse sorting order, True or False.
proc_reversed = false
@@ -92,6 +100,9 @@ proc_left = false
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = false
#* Should the process list follow the selected process when detailed view is open.
proc_follow_detailed = true
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = false
@@ -208,6 +219,9 @@ io_graph_combined = false
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Swap the positions of the upload and download speed graphs. When true, upload will be on top.
swap_upload_download = false
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
@@ -250,7 +264,7 @@ rsmi_measure_pcie_speeds = true
#* Horizontally mirror the GPU graph.
gpu_mirror_graph = true
#* Set which GPU vendors to show. Available values are "nvidia amd intel"
#* Set which GPU vendors to show. Available values are "nvidia amd intel apple"
shown_gpus = "nvidia amd intel"
#* Custom gpu0 model name, empty string to disable.
+3 -44
View File
@@ -32,6 +32,9 @@ dpi-aware=yes
# selection-target=primary
# workers=<number of logical CPUs>
[main]
include=/usr/share/foot/themes/gruvbox
[environment]
SYSTEMD_EDITOR=/usr/bin/nvim
EDITOR=/usr/bin/nvim
@@ -68,50 +71,6 @@ lines=100000
# hide-when-typing=no
# alternate-scroll-mode=yes
[colors-dark]
alpha=0.9 # Adjust alpha to change transparency level
foreground=cdd6f4
background=1e1e2e
cursor=11111b f5e0dc
regular0=45475a
regular1=f38ba8
regular2=a6e3a1
regular3=f9e2af
regular4=89b4fa
regular5=f5c2e7
regular6=94e2d5
regular7=bac2de
bright0=585b70
bright1=f38ba8
bright2=a6e3a1
bright3=f9e2af
bright4=89b4fa
bright5=f5c2e7
bright6=94e2d5
bright7=a6adc8
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
16=fab387
17=f5e0dc
# ...
# 255 = <256-color palette #255>
# Misc colors
selection-foreground=cdd6f4
selection-background=414356
jump-labels=11111b fab387
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
search-box-no-match=11111b f38ba8
search-box-match=cdd6f4 313244
urls=89b4fa
[csd]
# preferred=server
size=0
+2 -1
View File
@@ -28,7 +28,7 @@ application/x-bittorrent=org.qbittorrent.qBittorrent.desktop;
inode/directory=yazi.desktop;
x-scheme-handler/msteams=teams.desktop;
text/calendar=userapp-khalimport.desktop;
x-scheme-handler/discord=vesktop.desktop;
x-scheme-handler/discord=discord.desktop
application/vnd.openxmlformats-officedocument.wordprocessingml.document=org.kde.okular.desktop;
text/markdown=org.kde.okular.desktop;
application/zip=userapp-file-roller.desktop;
@@ -38,6 +38,7 @@ x-scheme-handler/vnc=org.remmina.Remmina.desktop;
x-scheme-handler/remmina=org.remmina.Remmina.desktop;
application/x-remmina=org.remmina.Remmina.desktop;
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
image/heif=qimgv.desktop
[Added Associations]
+1
View File
@@ -2,3 +2,4 @@ vim.o.colorcolumn = "100"
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.softtabstop = 4
vim.g.no_python_maps = 1
+82 -192
View File
@@ -7,7 +7,6 @@ vim.opt.shell = "/usr/bin/zsh"
vim.g.BASH_Ctrl_j = "off"
vim.g.BASH_Ctrl_l = "off"
vim.opt.clipboard:append("unnamedplus")
vim.opt.guicursor = "n-v-c:block-CustomCursor,i:ver100-CustomICursor,n-v-c:blinkon0,i:blinkwait10"
vim.opt.cursorline = true
vim.opt.list = true
vim.opt.listchars = { tab = "", trail = "·", extends = "", precedes = "", nbsp = "+" }
@@ -43,7 +42,7 @@ vim.opt.smartindent = false
vim.opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" }
-- Completion Window/Popup settings
vim.opt.completeopt = { "menu", "popup", "preview" }
vim.opt.completeopt = { "menu", "menuone", "longest", "noselect", "noinsert", "popup", "preview" }
vim.opt.pumblend = 10
vim.opt.pumheight = 10
vim.opt.winminwidth = 5
@@ -77,7 +76,6 @@ vim.opt.splitkeep = "screen"
vim.opt.splitright = true
-- Terminal & Status Column
vim.opt.termguicolors = true
vim.opt.number = true
vim.opt.relativenumber = true
vim.diagnostic.config({
@@ -98,9 +96,8 @@ vim.diagnostic.config({
},
float = { source = true },
})
vim.lsp.set_log_level(2)
vim.api.nvim_create_autocmd("FileType", {
vim.api.nvim_create_autocmd("BufEnter", {
desc = "Disable auto-commenting on new line",
pattern = "*",
callback = function() vim.opt_local.formatoptions:remove({ "r", "o" }) end,
@@ -231,36 +228,6 @@ map("n", "]e", diagnostic_goto(1, "ERROR"), { desc = "Next Error" })
map("n", "]w", diagnostic_goto(1, "WARN"), { desc = "Next Warning" })
map("n", "gl", vim.diagnostic.setloclist, { desc = "Diagnostics to Location List" })
-- Buffer-local LSP mappings
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(ev)
local bmap = function(mode, keys, func, desc) vim.keymap.set(mode, keys, func, { buffer = ev.buf, desc = desc }) end
bmap("n", "gd", vim.lsp.buf.definition, "Goto Definition")
bmap("n", "gD", vim.lsp.buf.type_definition, "Goto Type Definition")
bmap("n", "gi", vim.lsp.buf.declaration, "Goto Declaration")
bmap("n", "gI", vim.lsp.buf.implementation, "Goto Implementation")
bmap("n", "gr", function() vim.lsp.buf.references({ includeDeclaration = false }) end, "Goto References")
bmap({ "n", "i" }, "<M-x>", vim.lsp.buf.signature_help, "Signature Help")
bmap("n", "<M-r>", vim.lsp.buf.rename, "Rename Symbol")
bmap({ "n", "x" }, "<leader>ca", vim.lsp.buf.code_action, "Code Action")
-- K is automatically mapped to vim.lsp.buf.hover() in Neovim 0.10+
-- If your LSP supports inlay hints, you can add a toggle here:
local client = vim.lsp.get_client_by_id(ev.data.client_id)
if client and client.server_capabilities.inlayHintProvider and vim.lsp.inlay_hint then
bmap(
"n",
"<leader>uh",
function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end,
"Toggle Inlay Hints"
)
end
end,
})
-- ----------------------------------------
-- AUTOCMD
-- ----------------------------------------
@@ -331,86 +298,37 @@ vim.api.nvim_create_user_command("ConvertEOL", function(opts)
})
end, { nargs = 1 })
-- fix diff colors on some color schemes
-- https://codeyarns.com/tech/2011-07-29-vim-chart-of-color-names.html
vim.api.nvim_create_user_command("FixColors", function()
vim.api.nvim_set_hl(0, "CustomCursor", { fg = "salmon1", bg = "cyan" })
vim.api.nvim_set_hl(0, "CustomICursor", { fg = "salmon1", bg = "cyan" })
vim.api.nvim_set_hl(0, "ColorColumn", { bg = "salmon4" })
end, {})
-- ----------------------------------------
-- SPECS
-- ----------------------------------------
local function makespecs_themes()
return {
{ "aktersnurra/no-clown-fiesta.nvim", opts = { transparent = false } },
"NLKNguyen/papercolor-theme",
"junegunn/seoul256.vim",
"mcauley-penney/phobos-anomaly.nvim",
"folke/tokyonight.nvim",
{ "bluz71/vim-moonfly-colors", name = "moonfly", lazy = false },
{
"uloco/bluloco.nvim",
lazy = false,
dependencies = { "rktjmp/lush.nvim" },
opts = {},
},
{
"mhartington/oceanic-next",
config = function()
local customthemegroup = vim.api.nvim_create_augroup("customthemegroup", {})
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = { "OceanicNext" },
group = customthemegroup,
callback = function()
vim.api.nvim_set_hl(0, "DiffAdded", { default = false, link = "DiffAdd" })
vim.api.nvim_set_hl(0, "DiffRemoved", { default = false, link = "DiffDelete" })
vim.api.nvim_set_hl(0, "Normal", {})
vim.api.nvim_set_hl(0, "LineNr", {})
vim.api.nvim_set_hl(0, "SignColumn", {})
vim.api.nvim_set_hl(0, "EndOfBuffer", {})
end,
})
end,
},
"morhetz/gruvbox",
{
"catppuccin/nvim",
name = "catppuccin",
-- opts = { integrations = { grug_far = true, mason = true, noice = true, snacks = true, which_key = true } },
},
{
"Shatur/neovim-ayu",
init = function() vim.g.ayu_extended_palette = 1 end,
},
"tomasr/molokai",
"jnurmine/Zenburn",
"sainnhe/gruvbox-material",
"sainnhe/everforest",
"sainnhe/edge",
"sainnhe/sonokai",
{ "catppuccin/nvim", name = "catppuccin", opts = { auto_integrations = true } },
}
end
local function makespec_lspconfig()
local rootdirfix = function(root_markers)
return function(bufnr, on_dir)
on_dir(require("lspconfig").util.root_pattern(unpack(root_markers))(vim.fn.bufname(bufnr)))
end
end
return {
"neovim/nvim-lspconfig",
lazy = false,
event = { "BufReadPost", "BufNewFile" },
cmd = { "LspInfo", "LspRestart", "LspStart", "LspStop" },
keys = { { "<F4>", "<cmd>LspInfo<cr>", noremap = true } },
config = function()
-- Lua
vim.lsp.config("lua_ls", {
cmd = { "lua-language-server" },
settings = {
Lua = {
workspace = {
checkThirdParty = false,
library = { vim.env.VIMRUNTIME },
},
workspace = { checkThirdParty = false, library = { vim.env.VIMRUNTIME } },
telemetry = { enable = false },
diagnostics = { globals = { "vim" } },
format = { enable = false },
@@ -446,7 +364,7 @@ local function makespec_lspconfig()
vim.lsp.config("yamlls", {
settings = {
yaml = {
schemas = { kubernetes = "/home/hjalmarlucius/src/hjarl/system/manifests/*.yaml" },
schemas = { kubernetes = vim.fn.expand("~/src/hjarl/system/manifests/*.yaml") },
-- schemaStore = { enable = false, url = "" },
},
},
@@ -454,24 +372,21 @@ local function makespec_lspconfig()
vim.lsp.config("ty", {
cmd = { "ty", "server" },
filetypes = { "python" },
root_dir = rootdirfix({ ".git", "pyproject.toml", "setup.py", "setup.cfg" }),
settings = { ty = { experimental = { rename = true } } },
root_markers = { ".git" },
settings = { ty = { completions = { autoImport = false }, experimental = { rename = true } } },
})
vim.lsp.config("pyrefly", {
cmd = { "pyrefly", "lsp" },
filetypes = { "python" },
root_dir = rootdirfix({ ".git", "pyproject.toml", "setup.py", "setup.cfg", "pyrefly.toml" }),
root_markers = { ".git" },
})
vim.lsp.config("pylsp", {
filetypes = { "python" },
root_dir = rootdirfix({ ".git", "pyproject.toml", "setup.py", "setup.cfg" }),
root_markers = { ".git" },
settings = {
pylsp = {
plugins = {
pylsp_mypy = {
enabled = true,
dmypy = true,
},
pylsp_mypy = { enabled = true, dmypy = true },
pycodestyle = { enabled = false },
mccabe = { enabled = false },
},
@@ -481,11 +396,10 @@ local function makespec_lspconfig()
vim.lsp.config("basedpyright", {
cmd = { "basedpyright-langserver", "--stdio", "--threads", "20" },
filetypes = { "python" },
root_dir = rootdirfix({ ".git", "pyproject.toml", "setup.py", "setup.cfg", "pyrightconfig.json" }),
root_markers = { ".git" },
settings = {
python = {
analysis = {
-- logLevel = "Trace",
autoImportCompletions = false,
diagnosticMode = "workspace",
logTypeEvaluationTime = true,
@@ -502,16 +416,12 @@ local function makespec_lspconfig()
autoUseWorkspaceTsdk = true,
experimental = {
maxInlayHintLength = 30,
completion = {
enableServerSideFuzzyMatch = true,
},
completion = { enableServerSideFuzzyMatch = true },
},
},
javascript = {
updateImportsOnFileMove = { enabled = "always" },
suggest = {
completeFunctionCalls = true,
},
suggest = { completeFunctionCalls = true },
inlayHints = {
enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true },
@@ -523,9 +433,7 @@ local function makespec_lspconfig()
},
typescript = {
updateImportsOnFileMove = { enabled = "always" },
suggest = {
completeFunctionCalls = true,
},
suggest = { completeFunctionCalls = true },
inlayHints = {
enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true },
@@ -538,6 +446,18 @@ local function makespec_lspconfig()
},
})
vim.lsp.config("tinymist", {
cmd = { "tinymist" },
filetypes = { "typst" },
root_markers = { ".git", "typst.toml" },
})
vim.lsp.config("bashls", {
cmd = { "bash-language-server", "start" },
filetypes = { "sh", "bash" },
root_markers = { ".git" },
})
vim.lsp.enable("bashls")
vim.lsp.enable("clangd")
vim.lsp.enable("html")
@@ -549,6 +469,42 @@ local function makespec_lspconfig()
vim.lsp.enable("tinymist")
vim.lsp.enable("vtsls")
vim.lsp.enable("yamlls")
vim.api.nvim_create_autocmd("FileType", {
group = vim.api.nvim_create_augroup("DefeatFtpluginOmnifunc", { clear = true }),
pattern = { "python" },
callback = function(ev)
vim.schedule(function()
if vim.api.nvim_buf_is_valid(ev.buf) then vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" end
end)
end,
})
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", { clear = true }),
callback = function(ev)
local bmap = function(mode, keys, func, desc)
vim.keymap.set(mode, keys, func, { buffer = ev.buf, desc = desc, silent = true })
end
bmap("n", "gd", vim.lsp.buf.definition, "Goto Definition")
bmap("n", "gD", vim.lsp.buf.declaration, "Goto Declaration")
bmap("n", "gy", vim.lsp.buf.type_definition, "Goto Type Definition")
bmap({ "n", "i" }, "<M-x>", vim.lsp.buf.signature_help, "Signature Help")
bmap("i", "<C-Space>", "<C-x><C-o>", "Trigger LSP Completion")
bmap("i", "<C-l>", "<C-n>", "Buffer/Keyword Completion")
bmap("i", "<C-f>", "<C-x><C-f>", "File Path Completion")
local client = vim.lsp.get_client_by_id(ev.data.client_id)
if client and client.server_capabilities.inlayHintProvider and vim.lsp.inlay_hint then
bmap(
"n",
"<leader>uh",
function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end,
"Toggle Inlay Hints"
)
end
end,
})
end,
}
end
@@ -565,17 +521,6 @@ local function makespec_smearcursor()
}
end
local function makespec_neoscroll()
return {
"karb94/neoscroll.nvim",
event = "VeryLazy",
config = function()
-- Initialize with empty mappings. It is loaded, but completely dormant.
require("neoscroll").setup({ mappings = {} })
end,
}
end
local function makespec_hexokinase()
return {
-- coloring of colornames
@@ -791,16 +736,9 @@ local function makespecs_previewers()
get_root = function(filename)
local root = os.getenv("TYPST_ROOT")
if root then return root end
local dir0 = vim.fn.fnamemodify(filename, ":p:h")
local dir = dir0
for _ = 1, 10 do
if vim.fn.isdirectory(dir .. "/.git/") ~= 0 or vim.fn.filereadable(dir .. "/.git") ~= 0 then
print("root dir: " .. dir)
return dir
end
dir = vim.fn.fnamemodify(dir, ":p:h:h")
end
return dir0
local git_root = vim.fs.root(filename, ".git")
if git_root then return git_root end
return vim.fn.fnamemodify(filename, ":p:h")
end,
},
},
@@ -1006,7 +944,6 @@ local function makespec_whichkey()
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
defaults = {},
spec = {
{
mode = { "n", "v" },
@@ -1023,6 +960,12 @@ local function makespec_whichkey()
{ "[", group = "prev" },
{ "]", group = "next" },
{ "g", group = "goto" },
{ "gr", group = "lsp actions", icon = { icon = "", color = "purple" } },
{ "gra", desc = "Code Action" },
{ "gri", desc = "Goto Implementation" },
{ "grn", desc = "Rename Symbol" },
{ "grr", desc = "Goto References" },
{ "gy", desc = "Goto Type Definition" },
{ "gs", group = "surround" },
{ "z", group = "fold" },
{ "<leader><tab>", group = "tabs" },
@@ -1040,7 +983,7 @@ local function makespec_whichkey()
keys = {
{
"<leader>?",
function() require("which-key").show({ global = false }) end,
function() require("which-key").show({ global = true }) end,
desc = "Buffer Keymaps (which-key)",
},
{
@@ -1123,8 +1066,8 @@ local function makespec_snacks()
{ "<M-f>", function() Snacks.picker.git_files() end, desc = "Find Git Files" },
{ "<leader>fg", function() Snacks.picker.git_files() end, desc = "Find Git Files" },
{ "<leader>fa", function() Snacks.picker.files() end, desc = "Find Files" },
{ "<leader>fc", function() Snacks.picker.files({ cwd = "/home/hjalmarlucius/dotfiles", title="Find Configs" }) end, desc = "Find Config" },
{ "<leader>fn", function() Snacks.picker.files({ cwd = "/home/hjalmarlucius/notes", title="Find Notes" }) end, desc = "Find Note", },
{ "<leader>fc", function() Snacks.picker.files({ cwd = vim.fn.expand("~/dotfiles"), title="Find Configs" }) end, desc = "Find Config" },
{ "<leader>fn", function() Snacks.picker.files({ cwd = vim.fn.expand("~/notes"), title="Find Notes" }) end, desc = "Find Note", },
-- logs
{ "<leader>ll", function() Snacks.notifier.show_history() end, desc = "Notification History" },
-- code
@@ -1181,44 +1124,6 @@ local function makespec_snacks()
get = function() return require("smear_cursor").enabled end,
set = function(state) require("smear_cursor").enabled = state end,
}):map("<leader>uS")
-- Toggle for Neoscroll
local ns_keys = {
["<C-u>"] = function() require("neoscroll").ctrl_u({ half_win_duration = 250 }) end,
["<C-d>"] = function() require("neoscroll").ctrl_d({ half_win_duration = 250 }) end,
["<C-b>"] = function() require("neoscroll").ctrl_b({ half_win_duration = 450 }) end,
["<C-f>"] = function() require("neoscroll").ctrl_f({ half_win_duration = 450 }) end,
["<C-y>"] = function()
require("neoscroll").scroll(-0.1, { move_cursor = false, duration = 100 })
end,
["<C-e>"] = function()
require("neoscroll").scroll(0.1, { move_cursor = false, duration = 100 })
end,
["zt"] = function() require("neoscroll").zt({ half_win_duration = 250 }) end,
["zz"] = function() require("neoscroll").zz({ half_win_duration = 250 }) end,
["zb"] = function() require("neoscroll").zb({ half_win_duration = 250 }) end,
}
vim.g.neoscroll_enabled = false
Snacks.toggle({
name = "Smooth Scroll",
get = function() return vim.g.neoscroll_enabled end,
set = function(state)
vim.g.neoscroll_enabled = state
if state then
-- Turn ON: Map the keys to Neoscroll's functions
for key, func in pairs(ns_keys) do
vim.keymap.set({ "n", "v", "x" }, key, func, { desc = "Smooth Scroll " .. key })
end
else
-- Turn OFF: Delete the maps, returning Neovim to default scrolling
for key, _ in pairs(ns_keys) do
pcall(vim.keymap.del, { "n", "v", "x" }, key)
end
end
end,
}):map("<leader>uN")
end,
})
end,
@@ -1540,24 +1445,9 @@ local function makespec_lint()
}
local lint_augroup = vim.api.nvim_create_augroup("nvim_lint", { clear = true })
local timer = vim.uv.new_timer()
-- Use a timer to debounce linting to prevent UI stutter
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,
callback = function(args)
timer:stop()
local bufnr = args.buf
timer:start(
200,
0,
vim.schedule_wrap(function()
if vim.api.nvim_buf_is_valid(bufnr) then
require("lint").try_lint(nil, { bufnr = bufnr })
end
end)
)
end,
callback = function() require("lint").try_lint() end,
})
end,
}
@@ -1760,7 +1650,6 @@ for _, spec in ipairs({
makespec_flash(),
makespec_grugfar(),
-- visuals
makespec_neoscroll(),
makespec_smearcursor(),
makespec_hexokinase(),
makespec_lualine(),
@@ -1800,5 +1689,6 @@ vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = lazyspecs,
checker = { enabled = true },
rocks = { enabled = false },
})
vim.cmd("colorscheme bluloco-dark")
vim.cmd("colorscheme sonokai")
+20 -9
View File
@@ -1,23 +1,27 @@
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from typing import Any
from qutebrowser.config.config import ConfigContainer
from qutebrowser.config.configfiles import ConfigAPI
config: Any = None
c: Any = None
c: "ConfigContainer" = c # type: ignore # noqa: F821
config: "ConfigAPI" = config # type: ignore # noqa: F821
from typing import TYPE_CHECKING
config.load_autoconfig(True)
config.bind("<", "tab-move -")
config.bind("<Ctrl+Shift+Tab>", "tab-prev")
config.bind("<Ctrl+Tab>", "tab-next")
config.bind("<Ctrl+l>", "cmd-set-text :open {url:pretty}")
config.bind("<Ctrl+r>", "reload")
config.unbind("r", mode="normal")
config.bind("<Ctrl+r>", "reload -f")
config.bind("R", "reload", mode="normal")
config.bind("<Ctrl+n>", "tab-clone -w")
config.bind("<Ctrl+t>", "tab-clone -t")
config.bind("<Ctrl+Shift+r>", "restart", mode="normal")
config.bind("<Ctrl+h>", "history")
config.bind("<F8>", "config-cycle colors.webpage.darkmode.enabled true false")
config.bind("<F2>", "edit-url")
config.bind("<F10>", "config-cycle colors.webpage.darkmode.enabled true false")
config.bind("<F11>", "config-cycle tabs.position top left")
config.bind("<F12>", "devtools")
config.bind("<Shift+F12>", "view-source")
@@ -46,8 +50,8 @@ config.bind("wk", "forward -w", mode="normal")
config.bind("ø", "cmd-set-text :")
config.bind("m", 'cmd-set-text :quickmark-add {url:pretty} "', mode="normal")
config.bind("D", "tab-close")
config.bind(",m", "hint links spawn mpv {hint-url}", mode="normal")
config.bind(",M", "spawn mpv {url}", mode="normal")
config.bind(",m", "hint links spawn -d mpv {hint-url}", mode="normal")
config.bind(",M", "spawn -d mpv {url}", mode="normal")
config.unbind("co") # close all tabs except this one
config.unbind("<Ctrl+x>") # navigate decrement
config.unbind("<Ctrl+a>") # navigate increment
@@ -69,7 +73,7 @@ c.completion.open_categories = [
c.content.register_protocol_handler = False
c.content.blocking.enabled = True
c.content.fullscreen.window = True
c.content.blocking.method = "both"
c.content.blocking.method = "adblock"
c.content.blocking.adblock.lists = [
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt",
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt",
@@ -107,6 +111,14 @@ urlconfigs: dict[str, list[tuple[str, bool | str | dict[str, str]]]] = {
{"X-YouTube-Client-Name": "85", "X-YouTube-Client-Version": "2.0"},
)
],
"https://*.altinn.no": [
("content.cookies.accept", "all"),
("content.javascript.can_open_tabs_automatically", True),
],
"https://*.bankid.no": [
("content.cookies.accept", "all"),
("content.javascript.can_open_tabs_automatically", True),
],
}
for url, urlconfig in urlconfigs.items():
for setting, value in urlconfig:
@@ -131,7 +143,6 @@ c.input.insert_mode.auto_leave = False
c.input.insert_mode.plugins = True
c.messages.timeout = 5000
c.qt.force_platform = "wayland"
c.qt.force_software_rendering = "qt-quick"
c.qt.highdpi = True
c.scrolling.bar = "always"
c.scrolling.smooth = False
+10 -10
View File
@@ -67,7 +67,7 @@ set $powermenu ~/.config/sway/scripts/power_menu.sh
# ------------------------------------------
# Launch the terminal
bindsym $mod+Return exec $term
bindsym $mod+Shift+Return exec foot
bindsym Mod4+Shift+Return exec foot bash
# Kill focused window
bindsym $mod+Shift+q kill
# Lock screen
@@ -157,15 +157,15 @@ bindsym {
floating_modifier $mod normal
bindsym {
# Resize with arrow keys
$mod+ctrl+Right resize shrink width 10 px
$mod+ctrl+Up resize grow height 10 px
$mod+ctrl+Down resize shrink height 10 px
$mod+ctrl+Left resize grow width 10 px
$mod+ctrl+Right resize shrink width 100 px
$mod+ctrl+Up resize grow height 100 px
$mod+ctrl+Down resize shrink height 100 px
$mod+ctrl+Left resize grow width 100 px
# Resize with Vim keys
$mod+ctrl+$right resize shrink width 10 px
$mod+ctrl+$up resize grow height 10 px
$mod+ctrl+$down resize shrink height 10 px
$mod+ctrl+$left resize grow width 10 px
$mod+ctrl+$right resize shrink width 100 px
$mod+ctrl+$up resize grow height 100 px
$mod+ctrl+$down resize shrink height 100 px
$mod+ctrl+$left resize grow width 100 px
}
# Resize floating windows with mouse scroll
bindsym --whole-window --border {
@@ -294,7 +294,7 @@ exec_always swayidle -w \
idlehint 240
# Start foot server
exec_always --no-startup-id foot --server
exec systemctl --user enable --now foot-server.service
exec {
# Desktop notifications
+9
View File
@@ -18,6 +18,9 @@ set -g default-terminal "tmux-256color"
# Tell tmux which features the outer Foot client supports.
set -as terminal-features ',foot*:RGB,clipboard,focus,title'
# Allow image passthrough
set -gq allow-passthrough on
# Start with index 1
set -g base-index 1
setw -g pane-base-index 1
@@ -104,6 +107,10 @@ bind t clock-mode
# Show pane numbers
bind i display-panes
ps_pid='#(pgrep -P "#{pane_pid}" | tr "\n" " ")'
cmd='#(ps --no-headers -o args $(pgrep -P "#{pane_pid}"))'
bind P display-message -d 100000 "${cmd} FOLDER:#{pane_current_path} CMD:#{=/-20/…:pane_current_command} PID:${ps_pid}"
# Config Reloads
bind r source-file ~/.config/tmux/tmux.conf \; refresh-client \; display-message "Config reloaded"
@@ -119,6 +126,8 @@ bind v split-window -h -c "#{pane_current_path}"
bind s split-window -v -c "#{pane_current_path}"
bind V split-window -fh -c "#{pane_current_path}"
bind S split-window -fv -c "#{pane_current_path}"
bind x split-window -fh bash
# Change layouts
bind o rotate-window
+15 -15
View File
@@ -12,7 +12,7 @@ max_height = 1500
[open]
prepend_rules = [
{ name = "*.csv", use = "text" },
{ url = "*.csv", use = "text" },
]
[opener]
@@ -24,36 +24,36 @@ text = [
[input]
cursor_blink = true
[[plugin.append_previewers]]
url = "*"
run = "file-extra-metadata"
[[plugin.prepend_fetchers]]
id = "git"
name = "*"
group = "git"
url = "*"
run = "git"
[[plugin.prepend_fetchers]]
id = "git"
name = "*/"
group = "git"
url = "*/"
run = "git"
[[plugin.prepend_previewers]]
name = "*.tar*"
url = "*.tar*"
run = 'piper --format=url -- tar tf "$1"'
[[plugin.prepend_previewers]]
name = "*.csv"
url = "*.csv"
run = 'piper -- bat -p --color=always "$1"'
[[plugin.prepend_previewers]]
name = "*.md"
url = "*.md"
run = 'piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"'
[[plugin.prepend_previewers]]
name = "*/"
url = "*/"
run = 'piper -- eza -TL=3 --color=always --icons=always --group-directories-first --no-quotes "$1"'
[[plugin.append_previewers]]
name = "*"
run = 'file-extra-metadata'
[[plugin.prepend_spotters]]
name = "*"
run = 'file-extra-metadata'
url = "*"
run = "file-extra-metadata"
+2 -2
View File
@@ -88,6 +88,7 @@ installmap = dict(
"v4l-utils",
# photos
"qimgv",
"kimageformats5", # heif support
"digikam",
# music
"quodlibet",
@@ -113,7 +114,6 @@ installmap = dict(
"qutebrowser",
"firefox",
"google-chrome",
"microsoft-edge-stable-bin",
"w3m",
"python-adblock", # for qutebrowser ad blocker
"python-tldextract",
@@ -140,7 +140,7 @@ installmap = dict(
"bandwhich", # network
"sysstat",
),
apps=("keepassxc", "bitwarden", "qalculate-gtk", "vesktop"),
apps=("keepassxc", "bitwarden", "qalculate-gtk", "discord"),
sway=(
"xdg-terminal-exec",
# visuals