Compare commits

..

111 Commits

Author SHA1 Message Date
4ea3596e03 remove unused binaries 2025-11-19 10:19:30 +01:00
66f4e48ceb remove unused configurations 2025-11-19 10:16:59 +01:00
4eed9ae8b6 fix: use the satalite workspace update script in PATH, rather than direct path 2025-11-19 10:08:56 +01:00
141a74ecfa remove xprofile file, since it is unsed, and causes issues with bash_profile being sourced multiple times 2025-11-19 10:08:56 +01:00
ab5ff2bffc include i3 and nvim configuration in the central repository, rather than keep them in their seperate respective ones. 2025-11-19 10:08:56 +01:00
9ece4e28de move xdg directories to the default location.
a lot of applications seem to hardcode this location, so it's better to
have something default, or default-adjasoned.
2025-11-19 10:08:24 +01:00
ad02049329 fix: rework error code writing / simplify it 2025-11-19 10:00:01 +01:00
dcb30d0bea fix: POSIX compatibility case written incorrectly 2025-11-19 10:00:01 +01:00
945536a29c rework bash scripts to be completely, or mostly POSIX-compliant 2025-11-19 10:00:01 +01:00
76dadcf5d9 remove a bunch of crap I don't use 2025-11-19 10:00:01 +01:00
25adad8c1c move alias definitions to a seperate file to decrease clutter 2025-11-19 10:00:01 +01:00
07a9418459 remove vcpkg crap we no longer use 2025-11-19 10:00:01 +01:00
84778882e8 rework the bash PS1 prompt 2025-11-19 10:00:01 +01:00
c98c6eb1ec fix: shbangs in bash configuration files 2025-11-19 10:00:01 +01:00
d14e4c3cd9 remove git modules 2025-11-19 10:00:01 +01:00
ffd9a441fd update nvim 2025-11-18 12:50:11 +01:00
f7916cb9db add another arch ascii art, but with lower resolution to be usable in a tty 2025-11-18 12:50:11 +01:00
96d02aae9e flip flop java prime 2025-11-18 12:50:11 +01:00
7e14d394f7 define an alias for info 2025-11-18 12:50:11 +01:00
54fbef9b9e use command for detection over which 2025-11-18 12:50:11 +01:00
2584c9384e write comment 2025-11-18 12:45:16 +01:00
4731b849ee add shrug to xcompose 2025-11-18 12:45:07 +01:00
11bd26b123 add indentical to sybol to xcompose 2025-11-18 12:45:02 +01:00
0b7fff402a rework volume control 2025-11-18 12:44:46 +01:00
286357aa72 edit editorconfig to have JSON have tab width of eight 2025-11-13 12:13:35 +01:00
547ff80288 fix keybind to open 2025-11-13 10:48:52 +01:00
57b8fd050f update submodules 2025-11-12 12:10:06 +01:00
8672c1710a update lazygit 2025-11-12 12:09:58 +01:00
d89afea793 add LF configuration 2025-11-12 12:09:40 +01:00
f36f089d83 add roman numerals to xcompose 2025-10-17 12:16:38 +02:00
5a0b23c862 update i3 2025-10-17 12:16:32 +02:00
12124fd9aa add W.I.P. projection for europe. 2025-10-16 23:31:06 +02:00
2d779645f5 update i3 2025-10-16 23:30:51 +02:00
9d68e5b149 fix typo in satalite wp update 2025-10-16 23:30:48 +02:00
d4c61e5fbc update nvim 2025-10-16 23:30:27 +02:00
e14e17e340 comment out rando lines in actrc 2025-10-13 14:33:27 +02:00
5c1a53fc17 add lines to fastfetch 2025-10-13 14:33:17 +02:00
6388ef5e14 set a font size in kitty to what I am comfortable with
Kitty did not have a font size set, and I kept accedentally zooming in,
and then not knowing what it was set as and what I was comfortable with.
This ensures the window always opens with my preffered scale.
2025-10-13 14:33:07 +02:00
b954326d72 update i3 2025-10-13 14:32:11 +02:00
6bab7c7dc8 update nvim 2025-10-13 14:32:06 +02:00
41cc28dc03 update clang-format to be more in line with my current preferences / guidelines 2025-10-13 14:31:59 +02:00
932ce683af show the cursor in the the shell prompt 2025-10-13 14:31:20 +02:00
9e766b53af fix: spelling 2025-10-13 14:31:06 +02:00
b7ed739b2f fix: MULTI+.+= does not give DOT OPERATOR, as I expected, but BULLET. BULLET has been moved to ** and DOT OPERATOR set at .= 2025-10-13 14:30:58 +02:00
cd8e5fd322 fix: OMEGA is using the wrong UTF code 2025-10-13 14:30:07 +02:00
d22940e0db minor symbol name fixes 2025-10-13 14:29:56 +02:00
d1283e2e0a expand the greek alphabet, now all symbols have been added.
note: I thought I did this last time.
2025-10-13 14:29:22 +02:00
2ff35a55ef set NVIDIA as primary gpu 2025-09-18 14:19:38 +02:00
0553463958 modify inputrc to have completions to be coloured, and case-insensitive. 2025-09-18 14:19:27 +02:00
39a83a3398 remove setting the tab width for makefile to four 2025-09-18 14:18:48 +02:00
da521004c0 comment out the java-prime exported envs, since we're now running on just dedicated graphics 2025-09-18 14:18:34 +02:00
19e0dab102 update nvim 2025-09-18 14:17:52 +02:00
e3040bde7b rewrite polybar networks once again 2025-09-18 14:17:47 +02:00
21814db5b3 removal of hyfetch, and preferring to use a more customised fastfetch configuration 2025-09-03 13:32:13 +02:00
b2720b485e add lls alias 2025-08-28 16:05:11 +02:00
57785b6bab modify history settings 2025-08-28 10:02:59 +02:00
d6cc49e142 update submodules 2025-08-27 10:37:40 +02:00
c5ddc45f58 fix: polybar ethernet connections 2025-08-24 12:31:35 +02:00
ad29f488c9 update cpusetcores binary 2025-08-23 22:13:39 +02:00
22aa216945 update nvim 2025-08-23 22:13:32 +02:00
4160333b7d update feh on errors with satalite-wp-update 2025-08-23 22:13:26 +02:00
67d6dc8b14 add another definition for USB ethernet device 2025-08-13 13:43:51 +02:00
a4cd6d8f47 update submodules 2025-08-13 13:42:45 +02:00
9f076891a5 fix double comment 2025-08-13 12:47:35 +02:00
caef66b501 add an alias for rm to set -I, which is less intruisive than -i 2025-08-11 11:34:40 +02:00
e8f7f5fb37 fix: formatting 2025-08-11 10:38:24 +02:00
5304603970 enable globstar in bashrc 2025-08-11 10:37:41 +02:00
b37fe4cded update i3 2025-08-05 22:19:19 +02:00
cf34e15de2 fix: submodule paths were incorrect 2025-08-05 22:19:15 +02:00
30aa878adf fix: git modules url's weren't reflective of what they actually are 2025-08-05 22:19:15 +02:00
369cd2cd49 change projection settings to be better parameterised 2025-08-05 14:17:37 +02:00
8ef17d634d update nvim 2025-08-05 14:17:18 +02:00
84b9538547 make UTF-8 and LF uppercase 2025-08-02 01:28:53 +02:00
85123cc3cd add some extra languages around the C-based languages 2025-08-02 01:28:41 +02:00
147a26986a remove redundant indent_size=tab 2025-08-02 01:28:15 +02:00
7ee6cb61ae add comments 2025-08-02 01:28:03 +02:00
5a3dedb5eb update nvim 2025-08-02 01:01:07 +02:00
27f3e12eb2 add cs to the forcibly use category 2025-08-02 01:00:59 +02:00
5b9dd92c6f add a comment for a forces 4 spaces catagory 2025-08-02 01:00:44 +02:00
a68e286e1c correct definition order 2025-08-02 00:58:39 +02:00
24753d9d0c split apart the web languages into it's own definition 2025-08-02 00:54:31 +02:00
b990c56e44 remove markdown from the json/jsonc/css/scss column 2025-08-02 00:53:35 +02:00
680b94d2eb set tab width to 4 for those that were <4 2025-08-02 00:52:47 +02:00
5283050311 edit clang-format to be on-par with my current preferred style 2025-07-24 12:50:14 +02:00
d51ce2986f add notifications for audio (they're rubbish, but eh) 2025-07-21 14:38:29 +02:00
1bd89db726 move some desktop i3 behaviour into different shell scripts 2025-07-21 13:20:38 +02:00
9b51e31f1a make shell scripts more POSIX-compatible, and use tabs instead of spaces 2025-07-21 12:49:11 +02:00
aefe0e6dce we don't need to specify user 2025-07-18 11:07:17 +02:00
28877b9e9e remove include header warnings, as they're often incorrect 2025-07-18 11:06:43 +02:00
b34c71a440 add some clang-tidy options to clangd config 2025-07-18 11:06:13 +02:00
4178678640 add parameters to be able to fill the whole screen 2025-07-15 22:59:04 +02:00
1192fff9c6 modify parameters to fit within my monitor 2025-07-15 22:55:15 +02:00
0a18c01d69 parameterise the projection settings 2025-07-15 22:55:15 +02:00
84fad656ab set the output directory to static due to cronnie problems 2025-07-15 21:47:24 +02:00
5fed9922fb update submodules 2025-07-15 21:47:24 +02:00
8023ecebe9 make background image transparent 2025-07-14 15:58:01 +02:00
6ad8382023 convert is deprecated, use magick 2025-07-14 15:44:27 +02:00
cb80d0f1d8 add background removal 2025-07-14 13:58:00 +02:00
c9e06bfc28 update satalite-wp-update script to use the proper API ends 2025-07-14 13:56:38 +02:00
3a84c55afc update nvim 2025-07-14 11:43:38 +02:00
4041a9bd39 add jsonc to editorconfig 2025-07-14 11:41:56 +02:00
6ecd64652f change default tab_width to 8 2025-07-14 11:41:25 +02:00
05e375dd5b remove inconsistent tab widths form editorconfig 2025-07-14 11:41:11 +02:00
e8855a231d add gitea key to SSH_AUTH_SOCK 2025-07-14 11:40:51 +02:00
3e9446dc89 configure gitconfig to only use gpgSign on tags. 2025-07-07 15:36:11 +02:00
e52d797f42 update nvim 2025-07-03 14:08:18 +02:00
e124e07715 update clang format formatting rules to be up to par with my current preferences 2025-07-03 10:43:21 +02:00
2e82fc5ff4 strip end of line comments from clang-format 2025-07-03 10:07:31 +02:00
f8c8caa447 include xprofile 2025-07-03 10:02:47 +02:00
ba471b2ee5 remove localtmp 2025-07-03 10:02:36 +02:00
f79789fd27 write satalite connect script 2025-06-27 11:40:20 +02:00
26 changed files with 424 additions and 197 deletions

27
.bashrc
View File

@@ -12,26 +12,25 @@ esac
[ -z "${PS1-}" ] && return
# lazy loading of ssh agents
__lazy_ssh_agent() {
_lazy_ssh() {
if [ -z "$SSH_AUTH_SOCK" ]; then
eval "$(ssh-agent -s)" >/dev/null
ssh-add "$HOME/.ssh/github" >/dev/null 2>&1
ssh-add "$HOME/.ssh/gitea" >/dev/null 2>&1
ssh-add "$HOME/.ssh/admin@homeserver" >/dev/null 2>&1
ssh-add "$HOME/.ssh/github" >/dev/null
ssh-add "$HOME/.ssh/gitea" >/dev/null
ssh-add "$HOME/.ssh/admin@homeserver" >/dev/null
fi
}
# aliases so the function is called beforehand
alias ssh='__lazy_ssh_agent; ssh'
alias sudo='__lazy_ssh_agent; sudo'
alias ssh='_lazy_ssh; ssh'
alias sudo='_lazy_ssh; sudo'
# colourises make output, so when it prints via
# $(warning) or $(error), it is formatted properly
__colour_make() {
# alias to colourise make output
_make() {
make "$@" 2> >(sed -E \
-e "s/^([Mm]akefile:[0-9]+:.*)/\x1b[33m\1\x1b[0m/" \
-e "s/^.*error.*$/\x1b[31m&\x1b[0m/I" >&2)
}
alias make='__colour_make'
alias make='_make'
# lazily loads the git utilities, to prevent slowdowns
__lazy_git_ps1() {
@@ -51,13 +50,11 @@ __regenprompt() {
local err=$? # acquire the error code of the last executed command
local git=$(__lazy_git_ps1)
# Format the error code to be in the last column of the terminal
# this shall be printed as non-printable characters, so won't effect text wrapping.
if [ $err -ne 0 ]; then
err="\033[$((COLUMNS - 4))G\033[01;31m${err}\033[0G"
err="\[\033[$((COLUMNS - 4))G\033[01;31m\]${err}\[\033[0G\]"
else unset err; fi
PS1="\[$err\]" # error code
PS1="$err" # error code
PS1="$PS1\[\033[?25h\]" # show cursor
PS1="$PS1\[\033[01;35m\]\u@\h" # user@host
PS1="$PS1\[\033[00m\]:" # separator
@@ -75,7 +72,7 @@ HISTIGNORE='exit*:clear*:\:*:echo*'
shopt -s checkwinsize # check the window size after each command (and if necessary, the values of LINES and COLUMNS)
shopt -s globstar # enable globstar (**/*)
[ -f "$HOME/.bash_aliases" ] && . "$HOME/.bash_aliases"
[ -f "$HOME/.bash_aliases" ] && . .bash_aliases
# cute lil hyfetch :3
[ "$TERM" == "xterm-kitty" ] && fastfetch

View File

@@ -16,7 +16,6 @@ Checks:
- '-bugprone-easily-swappable-parameters'
- '-clang-analyzer-security.insecureAPI.*'
- '-misc-include-cleaner'
- '-bugprone-reserved-identifier'
WarningsAsErrors: ''
HeaderFileExtensions:
- ''

View File

@@ -20,4 +20,3 @@ Diagnostics:
- bugprone-implicit-widening-of-multiplication-result
- bugprone-switch-missing-default-case
- bugprone-easily-swappable-parameters
- bugprone-reserved-identifier

View File

@@ -43,8 +43,8 @@ bindsym XF86AudioMute exec --no-startup-id x-volume mute
bindsym XF86AudioMicMute exec --no-startup-id x-mic-mute
# brightness control
bindsym XF86MonBrightnessUp exec --no-startup-id x-brightness up
bindsym XF86MonBrightnessDown exec --no-startup-id x-brightness down
bindsym XF86MonBrightnessUp exec --no-startup-id x-brightness-up
bindsym XF86MonBrightnessDown exec --no-startup-id x-brightness-down
# media controls
bindsym XF86AudioPlay exec playerctl play-pause

View File

@@ -4,7 +4,6 @@ vim.g.maplocalleader = ' '
Autocmd = vim.api.nvim_create_autocmd
Map = vim.keymap.set
---@module 'gruvbox'
---@class userdata
---@field palette GruvboxPalette
_G.userdat = {}

View File

@@ -5,10 +5,7 @@ Map({ 'n', 'v' }, '<left>', '<nop>')
Map({ 'n', 'v' }, '<right>', '<nop>')
-- tab management / navigation
Map('n', '<c-t>', '<cmd>enew<cr>', { desc = 'create a new buffer' })
Map('n', '<tab>', '<cmd>bnext<cr>', { desc = 'move to next buffer' })
Map('n', '<s-tab>', '<cmd>bprevious<cr>', { desc = 'move to previous buffer' })
Map('n', '<c-w>', '<cmd>bd<cr>', { desc = 'close buffer' })
Map('n', '<c-t>', '<cmd>enew<cr>', { desc = 'create a new tab' })
-- for help exiting certain modes
Map({ 'n', 'i' }, '<esc>', '<cmd>nohlsearch<cr><esc>', { desc = 'cancel search highlighting and escape' })
@@ -31,8 +28,6 @@ Map('n', 'K', vim.lsp.buf.hover, { desc = 'symbol hover' })
Map('n', '<F2>', vim.lsp.buf.rename, { desc = 'rename symbol' })
Map('n', '<leader>lm', vim.diagnostic.open_float, { desc = 'view line\'s diagnostic messages' })
Map('n', '<leader>q', vim.lsp.buf.code_action, { desc = 'view quickfix list' })
Map('n', 'gd', vim.lsp.buf.definition, { desc = "Go to the definition" })
Map('n', 'gr', vim.lsp.buf.references, { desc = "Go to the reference" })
-- smart tabulation
Map('i', '<tab>', function()

View File

@@ -2,8 +2,17 @@ local o = vim.opt
-- set options
o.clipboard = "unnamedplus" -- keep the clipboard in sync with the one provided by the OS
o.termguicolors = true -- allows for colour in the terminal
o.number = true -- show line numbers
o.cursorline = true -- highlight the current line
o.ignorecase = true -- whether case should be ignored whilst searching
o.cursorcolumn = false -- highlight the current column
o.dir = vim.fn.stdpath('cache') .. '/swp' -- swap directory location for recovery
o.sessionoptions = 'buffers,curdir,folds,help,localoptions,tabpages,terminal'
o.expandtab = false -- whether tabs are expanded to spaces (overridden by .editorconfig)
o.diffopt = 'internal,filler,closeoff,linematch:60' -- diff visualisation
o.foldenable = true -- whether folding is enabled
o.wrap = false -- whether to wrap text to a new line when it goes off-screen
o.breakindent = true -- wrapped lines start at the same location as the start of the line
o.list = true -- shows invisible characters
o.listchars = { -- whitespace characters
eol = nil,
@@ -14,25 +23,30 @@ o.listchars = { -- whitespace charact
space = '·',
nbsp = '',
}
o.number = true -- show line numbers
o.mouse = 'nv' -- which modes the mouse is enabled in 'a:all'
o.relativenumber = true -- whether line numbers are relative to the cursor
o.sessionoptions = 'buffers,curdir,folds,help,localoptions,tabpages,terminal'
o.shiftwidth = 8 -- spaces for auto-indent
o.showmode = false -- don't show mode as this is already in the status line
o.scrolloff = 10 -- minimal number of screen lines to keep above and below the cursor
o.showtabline = 2 -- whether to show the tab line
o.signcolumn = 'yes' -- always show the signcolumn, otherwise it shifts text all the time
o.smartcase = true -- overrides the above option if contains capital letters
o.tabstop = 8 -- visual spaces per tab
o.softtabstop = 8 -- spaces inserted per tab in insert mode
o.shiftwidth = 8 -- spaces for auto-indent
o.smartindent = true -- behave a bit more nuanced with when to indent
o.spell = true -- whether spell checking is enabled
o.spellfile = vim.fn.stdpath('config') .. '/spell/user.utf-8.add'
o.spelllang = 'en_gb,nl' -- set the spell languages
o.termguicolors = true -- allows for colour in the terminal
o.timeoutlen = 300 -- number of MS to wait for a mapped sequence to complete
o.ttimeoutlen = 0 -- number of MS to wait for a key sequence to complete
o.ignorecase = true -- whether case should be ignored whilst searching
o.smartcase = true -- overrides the above option if contains capital letters
o.inccommand = 'split' -- split|nosplit whether substitutions should appear whilst typing.
o.splitbelow = true -- force all horizontal splits below the current window
o.splitright = true -- force all vertical splits to the right of this window
o.showmode = false -- don't show mode as this is already in the status line
o.undodir = vim.fn.stdpath('cache') .. '/undo' -- directory for undo files
o.undofile = true -- for saving the undo history
o.undolevels = 1024 -- the amount of changes that can be undone
o.timeoutlen = 300 -- number of MS to wait for a mapped sequence to complete
o.ttimeoutlen = 0 -- number of MS to wait for a key sequence to complete
o.updatetime = 250 -- number of MS of nothing typed to write a swap file to disk.
o.wrap = false -- whether to wrap text to a new line when it goes off-screen
o.spell = true -- whether spell checking is enabled
o.spelllang = 'en_gb,nl' -- set the spell languages
o.spellfile = vim.fn.stdpath('config') .. '/spell/user.utf-8.add'
vim.diagnostic.config({
underline = true, -- use underline for diagnostics

View File

@@ -0,0 +1,32 @@
---@type LazySpec
return { {
'windwp/nvim-autopairs', -- automatically inserts closing brackets
event = { 'BufReadPre', 'BufNewFile' },
opts = {
enable_moveright = true, -- moves the cursor over existing pairs instead of inserting duplicates
check_ts = true, -- whether to check treesitter for specific nodes
ts_config = {}
},
config = function(_, opts)
local autopairs = require 'nvim-autopairs'
autopairs.setup(opts)
-- customise the rule for [] brackets so it doesn't close when typing ANSI escape codes
local rule = autopairs.get_rule '['
if rule then
rule:with_pair(function(opt)
local ei = math.max(1, opt.col - 1) -- get the end-index
local prev_oct = opt.line:sub(math.max(1, opt.col - 4), ei) -- get the range of an octal escape code
local prev_hex = opt.line:sub(math.max(1, opt.col - 4), ei) -- get the range of a hexadecimal escape code
local prev_cha = opt.line:sub(math.max(1, opt.col - 2), ei) -- get the range of a character escape code
-- check whether we can't match any of the patterns,
-- if so return true, otherwise return false (whether to insert a pair)
return (prev_oct ~= [[\033]] and prev_hex ~= [[\x1b]] and prev_cha ~= [[\e]])
end)
else
vim.notify('could not add a rule for not auto-closing [ when typing an ANSI escape code',
vim.log.levels.WARN)
end
end,
} }

View File

@@ -0,0 +1,29 @@
---@type LazySpec
return { {
'akinsho/bufferline.nvim', -- shows the opened buffers
event = 'VeryLazy',
dependencies = { 'nvim-tree/nvim-web-devicons', },
---@type bufferline.UserConfig
opts = {
options = {
mode = 'buffers',
separator_style = '',
sort_by = 'directory',
diagnostics = 'nvim_lsp',
diagnostics_indicator = function(c, _, _, _)
return '(' .. c .. ')'
end,
},
},
config = function(_, opts)
require('bufferline').setup(opts)
Map('n', '<tab>', '<cmd>BufferLineCycleNext<cr>', { desc = 'switch to the next tab' })
Map('n', '<s-tab>', '<cmd>BufferLineCyclePrev<cr>', { desc = 'switch to the previous tab' })
Map('n', '<leader>wch', '<cmd>BufferLineCloseLeft<cr>', { desc = 'close the tabs on the left' })
Map('n', '<leader>wcl', '<cmd>BufferLineCloseRight<cr>', { desc = 'close the tabs on the right' })
Map('n', '<leader>wcw', '<cmd>BufferLineCloseOthers<cr>',
{ desc = 'close all tabs except the current one' })
end,
} }

View File

@@ -0,0 +1,54 @@
---@type LazySpec
return { {
'lewis6991/gitsigns.nvim', -- adds git signs to the signcolumn
event = 'VeryLazy',
opts = {
signs_staged_enable = true, -- whether staged statuses are enabled
signcolumn = true, -- the signs enable/disable based on the signcolumn state
current_line_blame = true, -- show the blame of the current line
current_line_blame_opts = {
delay = 50, -- delay in MS before blame is shown
ignore_whitespace = true, -- whether to ignore whitespace
use_focus = true, -- whether to only enable when the buffer is in focus
},
signs = { -- signs when working
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signs_staged = { -- signs when staged
add = { text = 'A' },
change = { text = 'M' },
delete = { text = 'D' },
topdelete = { text = 'D' },
changedelete = { text = 'M' },
untracked = { text = 'U' },
},
attach_to_untracked = true, -- shows untracked files' signcolumn
},
config = function(_, opts)
require('gitsigns').setup(opts)
local palette = _G.userdat.palette
local bg = vim.api.nvim_get_hl(0, { name = 'SignColumn' }).bg
for n, fg in pairs {
GitSignsAdd = palette.bright_green,
GitSignsChange = palette.bright_orange,
GitSignsDelete = palette.bright_red,
GitSignsTopdelete = palette.bright_red,
GitSignsChangedelete = palette.bright_orange,
GitSignsUntracked = palette.bright_aqua,
GitSignsStagedAdd = palette.neutral_green,
GitSignsStagedChange = palette.neutral_orange,
GitSignsStagedDelete = palette.neutral_red,
GitSignsStagedTopDelete = palette.neutral_red,
GitSignsStagedChangedelete = palette.neutral_orange,
GitSignsStagedUntracked = palette.neutral_aqua,
} do
vim.api.nvim_set_hl(0, n, { fg = fg, bg = bg })
end
end,
} }

View File

@@ -1,10 +1,9 @@
---@module 'lazy'
---@type LazySpec
return { {
'ellisonleao/gruvbox.nvim',
lazy = false,
dependencies = { 'johnfrankmorgan/whitespace.nvim' },
priority = 1000,
---@module 'gruvbox'
---@type GruvboxConfig
opts = {
styles = {

View File

@@ -0,0 +1,21 @@
---@module 'lazy'
---@type LazySpec
return { {
'lmburns/lf.nvim',
lazy = false,
dependencies = { 'akinsho/toggleterm.nvim' },
---@module 'lf'
---@type Lf.Config
opts = {
direction = 'float',
border = 'rounded',
},
config = function(_, opts)
vim.g.lf_netrw = 1
local lf = require('lf')
lf.setup(opts)
Map({ 'n' }, '<leader>o', lf.start, { desc = 'Shows the LF window' })
end
} }

View File

@@ -1,122 +1,71 @@
-- Clone 'mini.nvim' manually in a way that it gets managed by 'mini.deps'
local path_package = vim.fn.stdpath('data') .. '/site/'
local mini_path = path_package .. 'pack/deps/start/mini.nvim'
if not (vim.uv or vim.loop).fs_stat(mini_path) then
vim.cmd('echo "Installing [`mini.nvim`](../doc/mini-nvim.qmd#mini.nvim)" | redraw')
local clone_cmd = {
'git', 'clone', '--filter=blob:none',
'https://github.com/nvim-mini/mini.nvim', mini_path
}
vim.fn.system(clone_cmd)
vim.cmd('packadd mini.nvim | helptags ALL')
vim.cmd('echo "Installed [`mini.nvim`](../doc/mini-nvim.qmd#mini.nvim)" | redraw')
end
require('mini.deps').setup({ path = { package = path_package } })
require('mini.ai').setup() -- enhances the use of a/i textobjects
require('mini.align').setup() -- utility to align text in various ways
require('mini.comment').setup() -- for toggling comments inline
require('mini.move').setup() -- moving lines
require('mini.operators').setup() -- duplicating lines and evaluating equations inline
require('mini.pairs').setup() -- automatic closing pairs
require('mini.surround').setup() -- surround stuff
require('mini.clue').setup({ -- shows available keybinds when performing keybind actions
window = { delay = 50 },
triggers = {
-- Leader triggers
{ mode = 'n', keys = '<Leader>' },
{ mode = 'x', keys = '<Leader>' },
-- Built-in completion
{ mode = 'i', keys = '<C-x>' },
-- `g` key
{ mode = 'n', keys = 'g' },
{ mode = 'x', keys = 'g' },
-- Marks
{ mode = 'n', keys = "'" },
{ mode = 'n', keys = '`' },
{ mode = 'x', keys = "'" },
{ mode = 'x', keys = '`' },
-- Registers
{ mode = 'n', keys = '"' },
{ mode = 'x', keys = '"' },
{ mode = 'i', keys = '<C-r>' },
{ mode = 'c', keys = '<C-r>' },
-- Window commands
{ mode = 'n', keys = '<C-w>' },
-- `z` key
{ mode = 'n', keys = 'z' },
{ mode = 'x', keys = 'z' },
},
clues = {
-- Enhance this by adding descriptions for <Leader> mapping groups
require('mini.clue').gen_clues.builtin_completion(),
require('mini.clue').gen_clues.g(),
require('mini.clue').gen_clues.marks(),
require('mini.clue').gen_clues.registers(),
require('mini.clue').gen_clues.windows(),
require('mini.clue').gen_clues.z(),
},
})
require('mini.diff').setup({ -- shows git diffs in the file
view = {
style = 'sign',
}
})
require('mini.files').setup() -- file browser
Map('n', '<leader>o', MiniFiles.open, { desc = "Open mini file browser" })
require('mini.jump').setup() -- extends f,F,t,T to work across multiple lines
require('mini.cursorword').setup() -- highlight words beneath the cursor
require('mini.icons').setup()
require('mini.indentscope').setup({
draw = {
delay = 50, -- delay in MS before writing the indicator
animation = require('mini.indentscope').gen_animation.none(),
},
})
MiniDeps.later(function()
vim.api.nvim_set_hl(0, 'MiniIndentscopeSymbol', { link = 'Whitespace' })
end)
require('mini.notify').setup() -- has more noticeable / utilitarian / aesthetically pleasing notifications
require('mini.statusline').setup({
content = {
active = function()
local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
local git = MiniStatusline.section_git({ trunc_width = 40 })
local diff = MiniStatusline.section_diff({ trunc_width = 75 })
local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 })
local lsp = MiniStatusline.section_lsp({ trunc_width = 75 })
local filename = MiniStatusline.section_filename({ trunc_width = 140 })
local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
return MiniStatusline.combine_groups({
{ hl = mode_hl, strings = { mode } },
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics, lsp } },
'%<', -- general truncation point
{ hl = 'MiniStatuslineFilename', strings = { filename } },
'%=', -- align right
{ hl = 'MiniStatuslineFileInfo', strings = { fileinfo } },
{ hl = mode_hl, strings = { '%3l:%-3c' } }
})
end,
inactive = function()
return MiniStatusline.combine_groups({
{},
})
end
},
use_icons = true,
set_vim_settings = true,
})
require('mini.tabline').setup()
require('mini.trailspace').setup() -- trailing space indication and removal.
---@module 'lazy'
---@type LazySpec
return {}
return { {
'echasnovski/mini.nvim',
config = function()
require('mini.ai').setup()
require('mini.surround').setup()
require('mini.operators').setup()
require('mini.indentscope').setup({
symbol = '¦',
draw = {
delay = 50, -- delay in MS before writing the indicator
animation = require('mini.indentscope').gen_animation.none(),
},
options = {
try_as_border = false,
},
})
vim.api.nvim_set_hl(0, 'MiniIndentscopeSymbol', { fg = _G.userdat.palette.dark2, bg = nil })
require('mini.move').setup({
mappings = {
-- move visual selection in visual mode
left = '<m-h>',
down = '<m-j>',
up = '<m-k>',
right = '<m-l>',
-- move current line in normal mode
line_left = '<m-h>',
line_down = '<m-j>',
line_up = '<m-k>',
line_right = '<m-l>',
},
options = {
reindent_linewise = true, -- automatically re-indent selection during line vertical move
},
})
require('mini.statusline').setup({
content = {
active = function()
local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
local git = MiniStatusline.section_git({ trunc_width = 40 })
local diff = MiniStatusline.section_diff({ trunc_width = 75 })
local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 })
local lsp = MiniStatusline.section_lsp({ trunc_width = 75 })
local filename = MiniStatusline.section_filename({ trunc_width = 140 })
local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
return MiniStatusline.combine_groups({
{ hl = mode_hl, strings = { mode } },
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics, lsp } },
'%<', -- general truncation point
{ hl = 'MiniStatuslineFilename', strings = { filename } },
'%=', -- align right
{ hl = 'MiniStatuslineFileInfo', strings = { fileinfo } },
{ hl = mode_hl, strings = { '%3l:%-3c' } }
})
end,
inactive = function()
return MiniStatusline.combine_groups({
{},
})
end
},
use_icons = true,
set_vim_settings = true,
})
end
} }

View File

@@ -0,0 +1,13 @@
---@module 'lazy'
---@type LazySpec
return { {
'MeanderingProgrammer/render-markdown.nvim',
dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.nvim' },
---@module 'render-markdown'
---@type render.md.UserConfig
opts = {
completions = {
blink = { enabled = true }
}
}
} }

View File

@@ -0,0 +1,83 @@
---@module 'snacks'
---@module 'lazy'
---@type LazySpec
return { { -- provides quality of life features for neovim
'folke/snacks.nvim',
priority = 1000,
lazy = false,
---@type snacks.Config
opts = {
animate = { enabled = false }, -- efficient animations including over 45 easing functions (library)
bigfile = { enabled = false }, -- deal with big files
bufdelete = { enabled = false }, -- delete buffers without disrupting window layout
dashboard = { enabled = false }, -- beautiful declarative dashboards
debug = { enabled = false }, -- pretty inspect & backtraces for debugging
dim = { enabled = false }, -- focus on the active scope by dimming the rest
explorer = { enabled = false }, -- a file explorer (picker in disguise)
git = { enabled = false }, -- git utilities
gitbrowse = { enabled = false }, -- open the current file, branch, commit, or repo in a browser (e.g. github, gitlab, etc.)
image = { enabled = true }, -- image viewer using kitty graphics protocol
indent = { enabled = false }, -- indent guides and scopes
input = { enabled = false }, -- better vim.ui.input
layout = { enabled = false }, -- window layouts
lazygit = { enabled = false }, -- open lazygit in a float, auto-configure colour scheme and integration with neovim
notifier = { enabled = true }, -- pretty vim.notify
notify = { enabled = true }, -- utility functions to work with neovim's vim.notify
picker = { enabled = false }, -- picker for selecting items
profiler = { enabled = false }, -- neovim lua profiler
quickfile = { enabled = true }, -- when doing nvim somefile.txt, it will render the file as quickly as possible, before loading your plugins.
rename = { enabled = true }, -- LSP-integrated file renaming with support for plugins like and.
scope = { enabled = false }, -- scope detection, text objects and jumping based on treesitter or indent
scratch = { enabled = false }, -- scratch buffers with a persistent file
scroll = { enabled = false }, -- smooth scrolling
statuscolumn = { enabled = false }, -- pretty status column
terminal = { enabled = false }, -- create and toggle floating/split terminals
toggle = { enabled = false }, -- toggle keymaps integrated with which-key icons / colours
util = { enabled = false }, -- utility functions for Snacks (library)
win = { enabled = false }, -- create and manage floating windows or splits
words = { enabled = true }, -- auto-show LSP references and quickly navigate between them
zen = { enabled = false }, -- zen mode; distraction-free coding
},
keys = {
{ '*', function() Snacks.words.jump(-vim.v.count1) end, desc = 'next reference', nowait = true },
{ '#', function() Snacks.words.jump(vim.v.count1) end, desc = 'prev reference', nowait = true },
{ '<c-w>', function() Snacks.bufdelete() end, desc = 'delete buffer', nowait = true },
{ '<leader>N', function() Snacks.notifier.show_history() end, desc = 'show notification history' },
{ '<leader>U', function() Snacks.picker.undo() end, desc = 'undo tree' },
{ '<leader>gB', function() Snacks.git.blame_line() end, desc = 'git blame line' },
{ '<leader>gb', function() Snacks.picker.git_branches() end, desc = 'git branches' },
{ '<leader>@', function() Snacks.picker.lsp_symbols() end, desc = 'workspace symbols' },
{ '<leader>ld', function() Snacks.picker.lsp_definitions() end, desc = 'definition' },
{ '<leader>lr', function() Snacks.picker.lsp_references() end, desc = 'references' },
{ '<leader>li', function() Snacks.picker.lsp_implementations() end, desc = 'implementation' },
{ '<leader>lt', function() Snacks.picker.lsp_type_definitions() end, desc = 'type definition' },
{ '<leader>?', function() Snacks.picker.keymaps() end, desc = 'keymaps' },
{ 'gd', function() Snacks.picker.lsp_definitions() end, desc = 'definition' },
{ 'gr', function() Snacks.picker.lsp_references() end, desc = 'references' },
},
init = function()
Autocmd("User", {
pattern = 'VeryLazy',
callback = function()
local virt_lines = false;
Snacks.toggle.new({
id = "virtual_lines",
name = "diagnostics virtual lines",
get = function() return virt_lines end,
set = function(v)
virt_lines = v
vim.diagnostic.config({ virtual_lines = v })
end,
}):map('<leader>tl')
Snacks.toggle.option('wrap', { name = 'word wrap' }):map('<leader>tw')
Snacks.toggle.option('spell', { name = 'spelling' }):map('<leader>ts')
Snacks.toggle.inlay_hints():map('<leader>th')
end,
})
end,
---@param opts snacks.Config
config = function(_, opts)
require('snacks').setup(opts)
end
} }

View File

@@ -7,7 +7,6 @@ return { {
dependencies = {
{ 'nvim-lua/plenary.nvim' }, -- contains lua functions for neovim, apparently
{ 'nvim-telescope/telescope-ui-select.nvim' }, -- allows neovim core stuff to enter the telescope picker
{ 'nvim-tree/nvim-web-devicons' },
{
'nvim-telescope/telescope-fzf-native.nvim',
build = 'make', -- used for when the plugin is installed/updated

View File

@@ -0,0 +1,51 @@
---@type LazySpec
return { { -- displays pending keybinds, helps with remembering keybinds
'folke/which-key.nvim',
event = 'VeryLazy',
---@module 'which-key'
---@type wk.Opts
opts = {
delay = 0, -- delay in MS between pressing a key and opening which-key
icons = {
mappings = true,
keys = {
Up = '',
Down = '',
Left = '',
Right = '',
C = '󰘴',
M = '󰘵',
D = '󰘳',
S = '󰘶',
CR = '󰌑',
Esc = '󱊷',
ScrollWheelUp = '󱕑',
ScrollWheelDown = '󱕐',
NL = '󰌑',
BS = '󰁮',
Space = '󱁐',
Tab = '󰌒',
F1 = '<F1>',
F2 = '<F2>',
F3 = '<F3>',
F4 = '<F4>',
F5 = '<F5>',
F6 = '<F6>',
F7 = '<F7>',
F8 = '<F8>',
F9 = '<F9>',
F10 = '<F10>',
F11 = '<F11>',
F12 = '<F12>',
},
},
spec = { -- document the key chains we know about
{ '<leader>g', group = 'git' },
{ '<leader>s', group = 'search' },
{ '<leader>t', group = 'toggle' },
{ '<leader>w', group = 'windows' },
{ '<leader>l', group = 'lsp' },
{ '<leader>wc', group = 'close' },
},
},
} }

View File

@@ -1,6 +1,5 @@
# for backward searching the history
"\e[A": history-search-backward
"\e[B": history-search-forward
set completion-ignore-case on # ignore completion case
set colored-completion-prefix on # colour in what it has been able to complete
set completion-ignore-case on
set colored-completion-prefix on

2
.local/bin/emsdk Executable file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/sh
"$HOME/.local/share/emsdk/emsdk" "$@"

Binary file not shown.

View File

@@ -2,7 +2,8 @@
# shellcheck disable=SC1090,SC1091
# set -xv
EUMETSAT_KEY="jdBM1PsDQUm0tCZfk9VXD6IaJoUa"
EUMETSAT_SECRET="SumkiqFMU3MAGpt_azb1KXKgjdMa"
OUTDIR="$HOME/photos/eumetsat"
# full screen coverage
@@ -28,9 +29,6 @@ error() {
exit 1
}
[ -z "$EUMETSAT_KEY" ] && error 'make sure to set EUMETSAT_KEY to the client key'
[ -z "$EUMETSAT_SECRET" ] && error 'make sure to set EUMETSAT_SECRET to the client secret'
# verify internet
ping -c1 1.1.1.1 >>/dev/null || error "couldn't establish an internet connection!"

14
.local/bin/unzip-all Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/sh
if [ -z ${var+2} ]; then
printf "\033[91mno parameters were given!\033[0m\n"
fi
for i in $2; do
readonly fname
fname="$(basename "$i" .*)"
mkdir "$fname"
cd "$fname" || return 1
unzip "../$i"
cd - || return 1
done

Binary file not shown.

View File

@@ -1,27 +0,0 @@
#!/usr/bin/env sh
[ -z "$AMOUNT" ] && AMOUNT=5
notify() {
notify-send "$@" -h string:x-dunst-stack-tag:'brightnessctl' -a 'brightnessctl'
}
max=$(brightnessctl max)
br=$(brightnessctl get)
brp=$((100 * br / max))
case "$1" in
up) brp=$((brp + AMOUNT)) ;;
down) brp=$((brp - AMOUNT)) ;;
*)
echo 'E: could not decide what brightness action to perform!' >&2
notify 'could not decide what audio action to perform!' -u critical -t 5000
exit 1
;;
esac
brp=$((brp - (brp % AMOUNT)))
[ $brp -gt 100 ] && brp=100
brightnessctl set $brp%
ico=display-brightness-symbolic
notify -u low -i "$ico" -h "int:value:$brp" "brightness: $brp%"

4
.local/bin/x-brightness-down Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/sh
br=$(brightnessctl set 5%- |
grep '%' | awk '{print $4}' | sed 's/[^0-9]//g')
notify-send -u low -i display-brightness-symbolic -h int:value:"$br" -h string:x-dunst-stack-tag:'brightnessctl' -a 'brightnessctl' "brightness: $br%"

4
.local/bin/x-brightness-up Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/sh
br=$(brightnessctl set 5%+ |
grep '%' | awk '{print $4}' | sed 's/[^0-9]//g')
notify-send -i display-brightness-symbolic -u low -h int:value:"$br" -h string:x-dunst-stack-tag:'brightnessctl' -a 'brightnessctl' "brightness: $br%"