aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fish/completions/hugo.fish235
-rw-r--r--fish/config.fish8
-rw-r--r--fish/functions/shrekfetch.fish4
-rw-r--r--nvim/lua/plugins/indent-blankline.lua26
-rw-r--r--nvim/lua/plugins/nvim-lspconfig.lua21
-rw-r--r--nvim/lua/plugins/nvim-parinfer.lua5
-rw-r--r--nvim/lua/plugins/parinfer-rust.lua6
-rw-r--r--nvim/lua/plugins/toggleterm.lua10
-rwxr-xr-xscripts/set_random7
-rwxr-xr-xscripts/wallpapermenu10
-rw-r--r--wallust/templates/foot2
-rw-r--r--wallust/templates/niri4
-rw-r--r--wallust/templates/rofi-applauncher1
-rw-r--r--waybar/config1
-rw-r--r--yazi/yazi.toml2
15 files changed, 294 insertions, 48 deletions
diff --git a/fish/completions/hugo.fish b/fish/completions/hugo.fish
new file mode 100644
index 0000000..11fe85a
--- /dev/null
+++ b/fish/completions/hugo.fish
@@ -0,0 +1,235 @@
+# fish completion for hugo -*- shell-script -*-
+
+function __hugo_debug
+ set -l file "$BASH_COMP_DEBUG_FILE"
+ if test -n "$file"
+ echo "$argv" >> $file
+ end
+end
+
+function __hugo_perform_completion
+ __hugo_debug "Starting __hugo_perform_completion"
+
+ # Extract all args except the last one
+ set -l args (commandline -opc)
+ # Extract the last arg and escape it in case it is a space
+ set -l lastArg (string escape -- (commandline -ct))
+
+ __hugo_debug "args: $args"
+ __hugo_debug "last arg: $lastArg"
+
+ # Disable ActiveHelp which is not supported for fish shell
+ set -l requestComp "HUGO_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
+
+ __hugo_debug "Calling $requestComp"
+ set -l results (eval $requestComp 2> /dev/null)
+
+ # Some programs may output extra empty lines after the directive.
+ # Let's ignore them or else it will break completion.
+ # Ref: https://github.com/spf13/cobra/issues/1279
+ for line in $results[-1..1]
+ if test (string trim -- $line) = ""
+ # Found an empty line, remove it
+ set results $results[1..-2]
+ else
+ # Found non-empty line, we have our proper output
+ break
+ end
+ end
+
+ set -l comps $results[1..-2]
+ set -l directiveLine $results[-1]
+
+ # For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
+ # completions must be prefixed with the flag
+ set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
+
+ __hugo_debug "Comps: $comps"
+ __hugo_debug "DirectiveLine: $directiveLine"
+ __hugo_debug "flagPrefix: $flagPrefix"
+
+ for comp in $comps
+ printf "%s%s\n" "$flagPrefix" "$comp"
+ end
+
+ printf "%s\n" "$directiveLine"
+end
+
+# this function limits calls to __hugo_perform_completion, by caching the result behind $__hugo_perform_completion_once_result
+function __hugo_perform_completion_once
+ __hugo_debug "Starting __hugo_perform_completion_once"
+
+ if test -n "$__hugo_perform_completion_once_result"
+ __hugo_debug "Seems like a valid result already exists, skipping __hugo_perform_completion"
+ return 0
+ end
+
+ set --global __hugo_perform_completion_once_result (__hugo_perform_completion)
+ if test -z "$__hugo_perform_completion_once_result"
+ __hugo_debug "No completions, probably due to a failure"
+ return 1
+ end
+
+ __hugo_debug "Performed completions and set __hugo_perform_completion_once_result"
+ return 0
+end
+
+# this function is used to clear the $__hugo_perform_completion_once_result variable after completions are run
+function __hugo_clear_perform_completion_once_result
+ __hugo_debug ""
+ __hugo_debug "========= clearing previously set __hugo_perform_completion_once_result variable =========="
+ set --erase __hugo_perform_completion_once_result
+ __hugo_debug "Successfully erased the variable __hugo_perform_completion_once_result"
+end
+
+function __hugo_requires_order_preservation
+ __hugo_debug ""
+ __hugo_debug "========= checking if order preservation is required =========="
+
+ __hugo_perform_completion_once
+ if test -z "$__hugo_perform_completion_once_result"
+ __hugo_debug "Error determining if order preservation is required"
+ return 1
+ end
+
+ set -l directive (string sub --start 2 $__hugo_perform_completion_once_result[-1])
+ __hugo_debug "Directive is: $directive"
+
+ set -l shellCompDirectiveKeepOrder 32
+ set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
+ __hugo_debug "Keeporder is: $keeporder"
+
+ if test $keeporder -ne 0
+ __hugo_debug "This does require order preservation"
+ return 0
+ end
+
+ __hugo_debug "This doesn't require order preservation"
+ return 1
+end
+
+
+# This function does two things:
+# - Obtain the completions and store them in the global __hugo_comp_results
+# - Return false if file completion should be performed
+function __hugo_prepare_completions
+ __hugo_debug ""
+ __hugo_debug "========= starting completion logic =========="
+
+ # Start fresh
+ set --erase __hugo_comp_results
+
+ __hugo_perform_completion_once
+ __hugo_debug "Completion results: $__hugo_perform_completion_once_result"
+
+ if test -z "$__hugo_perform_completion_once_result"
+ __hugo_debug "No completion, probably due to a failure"
+ # Might as well do file completion, in case it helps
+ return 1
+ end
+
+ set -l directive (string sub --start 2 $__hugo_perform_completion_once_result[-1])
+ set --global __hugo_comp_results $__hugo_perform_completion_once_result[1..-2]
+
+ __hugo_debug "Completions are: $__hugo_comp_results"
+ __hugo_debug "Directive is: $directive"
+
+ set -l shellCompDirectiveError 1
+ set -l shellCompDirectiveNoSpace 2
+ set -l shellCompDirectiveNoFileComp 4
+ set -l shellCompDirectiveFilterFileExt 8
+ set -l shellCompDirectiveFilterDirs 16
+
+ if test -z "$directive"
+ set directive 0
+ end
+
+ set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
+ if test $compErr -eq 1
+ __hugo_debug "Received error directive: aborting."
+ # Might as well do file completion, in case it helps
+ return 1
+ end
+
+ set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
+ set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
+ if test $filefilter -eq 1; or test $dirfilter -eq 1
+ __hugo_debug "File extension filtering or directory filtering not supported"
+ # Do full file completion instead
+ return 1
+ end
+
+ set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
+ set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
+
+ __hugo_debug "nospace: $nospace, nofiles: $nofiles"
+
+ # If we want to prevent a space, or if file completion is NOT disabled,
+ # we need to count the number of valid completions.
+ # To do so, we will filter on prefix as the completions we have received
+ # may not already be filtered so as to allow fish to match on different
+ # criteria than the prefix.
+ if test $nospace -ne 0; or test $nofiles -eq 0
+ set -l prefix (commandline -t | string escape --style=regex)
+ __hugo_debug "prefix: $prefix"
+
+ set -l completions (string match -r -- "^$prefix.*" $__hugo_comp_results)
+ set --global __hugo_comp_results $completions
+ __hugo_debug "Filtered completions are: $__hugo_comp_results"
+
+ # Important not to quote the variable for count to work
+ set -l numComps (count $__hugo_comp_results)
+ __hugo_debug "numComps: $numComps"
+
+ if test $numComps -eq 1; and test $nospace -ne 0
+ # We must first split on \t to get rid of the descriptions to be
+ # able to check what the actual completion will be.
+ # We don't need descriptions anyway since there is only a single
+ # real completion which the shell will expand immediately.
+ set -l split (string split --max 1 \t $__hugo_comp_results[1])
+
+ # Fish won't add a space if the completion ends with any
+ # of the following characters: @=/:.,
+ set -l lastChar (string sub -s -1 -- $split)
+ if not string match -r -q "[@=/:.,]" -- "$lastChar"
+ # In other cases, to support the "nospace" directive we trick the shell
+ # by outputting an extra, longer completion.
+ __hugo_debug "Adding second completion to perform nospace directive"
+ set --global __hugo_comp_results $split[1] $split[1].
+ __hugo_debug "Completions are now: $__hugo_comp_results"
+ end
+ end
+
+ if test $numComps -eq 0; and test $nofiles -eq 0
+ # To be consistent with bash and zsh, we only trigger file
+ # completion when there are no other completions
+ __hugo_debug "Requesting file completion"
+ return 1
+ end
+ end
+
+ return 0
+end
+
+# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
+# so we can properly delete any completions provided by another script.
+# Only do this if the program can be found, or else fish may print some errors; besides,
+# the existing completions will only be loaded if the program can be found.
+if type -q "hugo"
+ # The space after the program name is essential to trigger completion for the program
+ # and not completion of the program name itself.
+ # Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
+ complete --do-complete "hugo " > /dev/null 2>&1
+end
+
+# Remove any pre-existing completions for the program since we will be handling all of them.
+complete -c hugo -e
+
+# this will get called after the two calls below and clear the $__hugo_perform_completion_once_result global
+complete -c hugo -n '__hugo_clear_perform_completion_once_result'
+# The call to __hugo_prepare_completions will setup __hugo_comp_results
+# which provides the program's completion choices.
+# If this doesn't require order preservation, we don't use the -k flag
+complete -c hugo -n 'not __hugo_requires_order_preservation && __hugo_prepare_completions' -f -a '$__hugo_comp_results'
+# otherwise we use the -k flag
+complete -k -c hugo -n '__hugo_requires_order_preservation && __hugo_prepare_completions' -f -a '$__hugo_comp_results'
diff --git a/fish/config.fish b/fish/config.fish
index 731f042..ffaf209 100644
--- a/fish/config.fish
+++ b/fish/config.fish
@@ -5,12 +5,12 @@ function fish_prompt
echo '%s%s%s # '
else
echo '%s%s%s $ '
- end) \ (set_color $fish_color_cwd) (prompt_pwd --full-length-dirs 5) (set_color normal)
+ end) (set_color $fish_color_cwd) (prompt_pwd --full-length-dirs 5) (set_color normal)
end
fish_add_path -p ~/.cargo/bin ~/.ghcup/bin
set -U fish_greeting
-set EDITOR "neovim"
+set EDITOR "nvim"
if status is-login
killall ssh-agent 1> /dev/null 2>&1
@@ -20,3 +20,7 @@ if status is-login
end
zoxide init fish | source
+
+
+# Added by Antigravity CLI installer
+set -gx PATH "/home/ericmarin/.local/bin" $PATH
diff --git a/fish/functions/shrekfetch.fish b/fish/functions/shrekfetch.fish
index e3ccc2c..191c64f 100644
--- a/fish/functions/shrekfetch.fish
+++ b/fish/functions/shrekfetch.fish
@@ -1,3 +1,3 @@
-function shrekfetch --wraps='fastfetch -l Pictures/shrek.jpg --logo-type sixel --logo-width 30' --description 'alias shrekfetch fastfetch -l Pictures/shrek.jpg --logo-type sixel --logo-width 30'
- fastfetch -l Pictures/shrek.jpg --logo-type sixel --logo-width 30 $argv
+function shrekfetch --wraps='fastfetch -l ~/Pictures/shrek.jpg --logo-type sixel --logo-width 30' --description 'alias shrekfetch fastfetch -l ~/Pictures/shrek.jpg --logo-type sixel --logo-width 30'
+ fastfetch -l ~/Pictures/shrek.jpg --logo-type sixel --logo-width 30 $argv
end
diff --git a/nvim/lua/plugins/indent-blankline.lua b/nvim/lua/plugins/indent-blankline.lua
index 06298a0..af9cff8 100644
--- a/nvim/lua/plugins/indent-blankline.lua
+++ b/nvim/lua/plugins/indent-blankline.lua
@@ -1,14 +1,16 @@
return {
- "lukas-reineke/indent-blankline.nvim",
- lazy = true,
- event = { "BufReadPost", "BufWritePost", "BufNewFile" },
- main = "ibl",
- opts = {
- exclude = {
- filetypes = {
- "dashboard",
- "norg"
- },
- },
- },
+ "lukas-reineke/indent-blankline.nvim",
+ lazy = true,
+ event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+ main = "ibl",
+ ---@module "ibl"
+ ---@type ibl.config
+ opts = {
+ exclude = {
+ filetypes = {
+ "dashboard",
+ "norg"
+ },
+ },
+ },
}
diff --git a/nvim/lua/plugins/nvim-lspconfig.lua b/nvim/lua/plugins/nvim-lspconfig.lua
index e464144..4c69816 100644
--- a/nvim/lua/plugins/nvim-lspconfig.lua
+++ b/nvim/lua/plugins/nvim-lspconfig.lua
@@ -3,11 +3,22 @@ local config = function()
local capabilities = require("cmp_nvim_lsp").default_capabilities()
-- setting custom signs
- local signs = { Error = "", Warn = "", Hint = "", Info = "" }
- for type, icon in pairs(signs) do
- local hl = "DiagnosticSign" .. type
- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
- end
+ vim.diagnostic.config({
+ signs = {
+ text = {
+ [vim.diagnostic.severity.ERROR] = '',
+ [vim.diagnostic.severity.WARN] = '',
+ [vim.diagnostic.severity.HINT] = '',
+ [vim.diagnostic.severity.INFO] = '',
+ },
+ linehl = {
+ [vim.diagnostic.severity.ERROR] = 'ErrorMsg',
+ },
+ numhl = {
+ [vim.diagnostic.severity.WARN] = 'WarningMsg',
+ },
+ },
+ })
vim.api.nvim_create_autocmd('LspAttach', {
callback = function(ev)
diff --git a/nvim/lua/plugins/nvim-parinfer.lua b/nvim/lua/plugins/nvim-parinfer.lua
deleted file mode 100644
index 8775f83..0000000
--- a/nvim/lua/plugins/nvim-parinfer.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-return {
- "gpanders/nvim-parinfer",
- lazy = true,
- ft = "lisp"
-}
diff --git a/nvim/lua/plugins/parinfer-rust.lua b/nvim/lua/plugins/parinfer-rust.lua
new file mode 100644
index 0000000..2b31d8a
--- /dev/null
+++ b/nvim/lua/plugins/parinfer-rust.lua
@@ -0,0 +1,6 @@
+return {
+ "eraserhd/parinfer-rust",
+ build = "cargo build --release",
+ lazy = true,
+ ft = { "scheme", "lisp" }
+}
diff --git a/nvim/lua/plugins/toggleterm.lua b/nvim/lua/plugins/toggleterm.lua
index 902cf4b..9bd1b78 100644
--- a/nvim/lua/plugins/toggleterm.lua
+++ b/nvim/lua/plugins/toggleterm.lua
@@ -1,17 +1,17 @@
local init = function()
local keymap = vim.keymap
- keymap.set("n", "<C-t>", ":ToggleTerm<Enter>",
+ --[[ keymap.set("n", "<C-t>", ":ToggleTerm<Enter>",
{ noremap = true, silent = true, desc = "Terminal (ToggleTerm)" }) -- Terminal
- keymap.set("t", "<C-t>", "<C-\\><C-n>:ToggleTerm<Enter>")
+ keymap.set("t", "<C-t>", "<C-\\><C-n>:ToggleTerm<Enter>") ]]
keymap.set("n", "<Space>g", ":ToggleLazyGit<Enter>",
{ noremap = true, silent = true, desc = "LazyGit (ToggleTerm)" }) -- LazyGit
end
local config = function()
- require("toggleterm").setup {
+ --[[ require("toggleterm").setup {
autochdir = false,
direction = "float",
- open_mapping = [[<c-t>]],
+ open_mapping = "<c-t>",
terminal_mappings = true,
start_in_insert = true,
float_opts = {
@@ -24,7 +24,7 @@ local config = function()
term.dir = cwd
end
end,
- }
+ } ]]
local Terminal = require("toggleterm.terminal").Terminal
local opts = {
noremap = true, -- non-recursive
diff --git a/scripts/set_random b/scripts/set_random
index 52dbab4..6c4a76d 100755
--- a/scripts/set_random
+++ b/scripts/set_random
@@ -5,9 +5,4 @@ if test (count $argv) -lt 1; or not test -d $argv[1]
exit 1
end
-~/.config/scripts/set_background (
- for file in (fd . $argv[1] -t f -d 1)
- if test -z $IMG; or test $file != $IMG
- echo (math (random) % 1000)":$file"
- end
- end | sort -n | head -n 1 | cut -d ':' -f2)
+~/.config/scripts/set_background "$(fd -a -t f -d 1 -E "$(basename "$IMG")" -e jpg -e png -e webp . "$argv[1]" | shuf -n1)"
diff --git a/scripts/wallpapermenu b/scripts/wallpapermenu
index 1ddf308..b60c646 100755
--- a/scripts/wallpapermenu
+++ b/scripts/wallpapermenu
@@ -3,12 +3,8 @@
if test -z $argv[1]
echo "Provide a directory"
else
- set chosen (
- for file in (fd . $argv[1] -t f -d 1)
- if test -z $IMG; or test $file != $IMG
- echo -en "$file\0icon\x1fthumbnail://$file\n"
- end
+ ~/.config/scripts/set_background (
+ for file in (fd -a -t f -d 1 -E "$(basename "$IMG")" -e jpg -e png -e webp . "$argv[1]")
+ echo -en "$file\0icon\x1fthumbnail://$file\n"
end | rofi -dmenu -p " " -show-icons -theme ~/.config/rofi/wallpapermenu.rasi)
-
- ~/.config/scripts/set_background (echo $chosen)
end
diff --git a/wallust/templates/foot b/wallust/templates/foot
index 4f487ba..09f97ed 100644
--- a/wallust/templates/foot
+++ b/wallust/templates/foot
@@ -1,5 +1,5 @@
font=Hack Nerd Font:size=10,Sazanami Gothic:size=10,Noto Color Emoji:size=10
-pad=15x15
+pad=10x10x10x10 center
dpi-aware=yes
term=foot-extra
diff --git a/wallust/templates/niri b/wallust/templates/niri
index 5f896d3..b2e7812 100644
--- a/wallust/templates/niri
+++ b/wallust/templates/niri
@@ -200,9 +200,9 @@ binds {
Mod+Space hotkey-overlay-title="Spawn Applauncher" { spawn "rofi" "-show" "drun" "-theme" "~/.config/rofi/applauncher.rasi"; }
Mod+Escape hotkey-overlay-title="Spawn Powermenu" { spawn "~/.config/scripts/powermenu"; }
Mod+W hotkey-overlay-title="Spawn Wallpapermenu" { spawn-sh "~/.config/scripts/wallpapermenu ~/Pictures/Backgrounds/"; }
- Mod+Alt+W { spawn-sh "~/.config/scripts/wallpapermenu ~/Pictures/Backgrounds/Alt/"; }
Mod+Shift+W hotkey-overlay-title="Random Wallpaper" { spawn-sh "~/.config/scripts/set_random ~/Pictures/Backgrounds/"; }
- Mod+Shift+Alt+W { spawn-sh "~/.config/scripts/set_random ~/Pictures/Backgrounds/Alt/"; }
+ Mod+Alt+W { spawn-sh "~/.config/scripts/wallpapermenu ~/Pictures/Backgrounds/Alt/"; }
+ Mod+Alt+Shift+W { spawn-sh "~/.config/scripts/set_random ~/Pictures/Backgrounds/Alt/"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "pamixer" "-i" "5"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "pamixer" "-d" "5"; }
diff --git a/wallust/templates/rofi-applauncher b/wallust/templates/rofi-applauncher
index 0dfb8a4..359fce6 100644
--- a/wallust/templates/rofi-applauncher
+++ b/wallust/templates/rofi-applauncher
@@ -5,6 +5,7 @@ configuration {
show-icons: true;
icon-theme: "Papirus";
terminal: "foot -o pad=0x0";
+ run-command: "sh -c '{cmd}'";
}
* {
background-color: {{background}};
diff --git a/waybar/config b/waybar/config
index 675e08d..18f6c0c 100644
--- a/waybar/config
+++ b/waybar/config
@@ -2,6 +2,7 @@
"layer": "top",
"spacing": 0,
"margin": 0,
+ "height": 22,
"reload_style_on_change": true,
"fixed-center": false,
"modules-left": ["clock", "network", "bluetooth", "backlight", "pulseaudio", "idle_inhibitor"],
diff --git a/yazi/yazi.toml b/yazi/yazi.toml
index 8cbefc6..e7c3619 100644
--- a/yazi/yazi.toml
+++ b/yazi/yazi.toml
@@ -1,6 +1,6 @@
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
-"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
+"schema" = "https://yazi-rs.github.io/schemas/yazi.json"
[mgr]
ratio = [ 1, 4, 3 ]