Compare commits

...

27 Commits
mail ... master

Author SHA1 Message Date
Gwen 4214dbe06e
Add bun autocompletions 2023-11-19 12:12:40 -05:00
Gwen 1f76d509c3
Add alactritty autocompletions 2023-11-19 12:12:18 -05:00
Gwen 645c953a7a
Update fish variables 2023-11-19 12:11:41 -05:00
Gwen 3334360253
Fix batcat name 2023-11-19 12:11:14 -05:00
Gwen d60d4a2754
Link helix language configuration file 2023-11-19 12:10:13 -05:00
Gwen 064aa1ca26
Set default remote name to o 2023-11-19 12:09:25 -05:00
Gwen c1a4a9f80b
Add ltex-ls for spellchecking 2023-11-19 12:08:57 -05:00
Gwen 69986f3048
Add convinience alias for carg-fuzz 2023-06-25 09:08:36 -04:00
Gwen 4669dc7353
Update greet function 2023-01-18 14:49:03 -05:00
Gwen 46e2f06928
Add visible whitespace to helix 2023-01-12 08:41:31 -05:00
Gwen 1d19572917
Use BerkeleyMono font 2023-01-12 08:40:58 -05:00
Gwen db381e88ba
Now that italics are working again, revisit theme
Add back italics.  They don't work in TMUX still, but at least I can now
use them in the theme to better hilight function parameters.
2023-01-01 13:45:23 -05:00
Gwen f6884568cc
Fix font configuration to enable italics
Only one of the entries needs to be specified for most fonts as
alacritty will automatically figure out all the right font data to
use.
2023-01-01 13:43:54 -05:00
Gwen a41c46b9ca Merge pull request 'Re-organize doc files' (#5) from re-organize into master
Reviewed-on: #5
2022-12-23 01:56:38 +00:00
Gwen bf6a57f7ed
Add helix install script 2022-12-22 20:36:20 -05:00
Gwen 4303e26f2a
Re-arrange git config
Moved more things from my global gitconfig to user config where it
feels appropriate.
2022-12-22 20:32:06 -05:00
Gwen 83594f3b8f
Undot and move bashrc stuff to config/bash 2022-12-22 15:00:39 -05:00
Gwen 30decb6580
Un-dot git files and move them to config folder 2022-12-22 14:52:44 -05:00
Gwen 42ab116eb3
Move dotfiles to config and unhide them 2022-12-22 14:49:56 -05:00
Gwen 6750a3df5f
Move fish config to config directory 2022-12-22 14:38:42 -05:00
Gwen b64f29b767
Link helix config files in setup script 2022-12-22 14:19:40 -05:00
Gwen 2054a6dfda
Give operators more contrast
This will make them more obvious as & is considered an operator in
rust without drawing too much attention to them.
2022-12-22 14:15:38 -05:00
Gwen ea227abea8
Add helix editor configuration
Mostly just customizations to the gruvbox theme to fit a bit better
to my eye and my preferences.
2022-12-22 14:13:35 -05:00
Gwen 92c48f0ced
Remove Emacs dotfiles
I love the core text editing experience of emacs, but I have grown
tired of the work it takes to just do so many things.  I like the
experience of customizing things, but I feel like I never have the
chance to do the polish I need in order to get things working smoothly.

I also really want better integration with LSP and debugging, things
which have always been sort of difficult for me in emacs.  Going to
try to start from a clean slate this winter break with helix (`hx`),
which has a lot of the text editing features that I like from emacs
but integrated through tree-sitter.  The ability to search though
code easily with goto and space modes really blows my mind, there
truely is nothing else like it.

It also has very good performance so far, though I haven't tested
anything especially huge.

So all of that is to say that I'm going to be using helix instead
of emacs.
2022-12-22 11:45:55 -05:00
Gwen 65ae393c80
Set GPG TTY
As recommended by gpg-agent manual
2022-07-25 15:40:38 -04:00
Gwen d3ea07495e
Add markdown support 2022-07-25 15:40:11 -04:00
Gwen 054b3f9b47
Sign with subkey 2022-07-25 11:20:17 -04:00
33 changed files with 404 additions and 796 deletions

4
.gitmodules vendored
View File

@ -1,4 +0,0 @@
[submodule "emacs/github-packages/wgsl-mode"]
path = emacs/github-packages/wgsl-mode
url = https://github.com/glfmn/wgsl-mode
branch = fix-regex

View File

@ -32,17 +32,10 @@ scrolling:
history: 10000
multiplier: 3
# Font configuration (changes require restart)
# Font configuration
font:
#normal:
#family: monospace
#style: Regular
#bold:
#family: monospace
#style: Bold
italic:
family: monospace
style: Italic
normal:
family: BerkeleyMono
size: 11.0
offset:
x: 0

View File

@ -11,7 +11,7 @@ esac
DIR="$(dirname $(readlink ~/.bashrc))"
# load all dotfiles in dotfiles repository
for DOTFILE in `find $DIR/system/.{prompt,alias,functions,path,env,shell}.sh`
for DOTFILE in `find $DIR/.{prompt,alias,functions,path,env,shell}.sh`
do
[ -f "$DOTFILE" ] && source "$DOTFILE"
done
@ -22,3 +22,7 @@ unset DIR
if [ -f /etc/bashrc ]; then
source /etc/bashrc
fi
# As suggested by gpg-agent manual, ensure the tty always matches
GPG_TTY=$(tty)
export GPG_TTY

View File

@ -0,0 +1,31 @@
complete -c alacritty -n "__fish_use_subcommand" -l embed -d 'X11 window ID to embed Alacritty within (decimal or hexadecimal with "0x" prefix)' -r
complete -c alacritty -n "__fish_use_subcommand" -l config-file -d 'Specify alternative configuration file [default: $XDG_CONFIG_HOME/alacritty/alacritty.yml]' -r -F
complete -c alacritty -n "__fish_use_subcommand" -l socket -d 'Path for IPC socket creation' -r -F
complete -c alacritty -n "__fish_use_subcommand" -s o -l option -d 'Override configuration file options [example: cursor.style=Beam]' -r
complete -c alacritty -n "__fish_use_subcommand" -l working-directory -d 'Start the shell in the specified working directory' -r -F
complete -c alacritty -n "__fish_use_subcommand" -s e -l command -d 'Command and args to execute (must be last argument)' -r
complete -c alacritty -n "__fish_use_subcommand" -s T -l title -d 'Defines the window title [default: Alacritty]' -r
complete -c alacritty -n "__fish_use_subcommand" -l class -d 'Defines window class/app_id on X11/Wayland [default: Alacritty]' -r
complete -c alacritty -n "__fish_use_subcommand" -s h -l help -d 'Print help information'
complete -c alacritty -n "__fish_use_subcommand" -s V -l version -d 'Print version information'
complete -c alacritty -n "__fish_use_subcommand" -l print-events -d 'Print all events to stdout'
complete -c alacritty -n "__fish_use_subcommand" -l ref-test -d 'Generates ref test'
complete -c alacritty -n "__fish_use_subcommand" -s q -d 'Reduces the level of verbosity (the min level is -qq)'
complete -c alacritty -n "__fish_use_subcommand" -s v -d 'Increases the level of verbosity (the max level is -vvv)'
complete -c alacritty -n "__fish_use_subcommand" -l hold -d 'Remain open after child process exit'
complete -c alacritty -n "__fish_use_subcommand" -f -a "msg" -d 'Send a message to the Alacritty socket'
complete -c alacritty -n "__fish_use_subcommand" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -s s -l socket -d 'IPC socket connection path override' -r -F
complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help information'
complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -f -a "create-window" -d 'Create a new window in the same Alacritty process'
complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -f -a "config" -d 'Update the Alacritty configuration'
complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l working-directory -d 'Start the shell in the specified working directory' -r -F
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s e -l command -d 'Command and args to execute (must be last argument)' -r
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s T -l title -d 'Defines the window title [default: Alacritty]' -r
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l class -d 'Defines window class/app_id on X11/Wayland [default: Alacritty]' -r
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l hold -d 'Remain open after child process exit'
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s h -l help -d 'Print help information'
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from config" -s w -l window-id -d 'Window ID for the new config' -r
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from config" -s r -l reset -d 'Clear all runtime configuration changes'
complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from config" -s h -l help -d 'Print help information'

View File

@ -0,0 +1,163 @@
# This is terribly complicated
# It's because:
# 1. bun run has to have dynamic completions
# 2. there are global options
# 3. bun {install add remove} gets special options
# 4. I don't know how to write fish completions well
# Contributions very welcome!!
function __fish__get_bun_bins
string split ' ' (bun getcompletes b)
end
function __fish__get_bun_scripts
set -lx SHELL bash
set -lx MAX_DESCRIPTION_LEN 40
string trim (string split '\n' (string split '\t' (bun getcompletes z)))
end
function __fish__get_bun_packages
if test (commandline -ct) != ""
set -lx SHELL fish
string split ' ' (bun getcompletes a (commandline -ct))
end
end
function __history_completions
set -l tokens (commandline --current-process --tokenize)
history --prefix (commandline) | string replace -r \^$tokens[1]\\s\* "" | string replace -r \^$tokens[2]\\s\* "" | string split ' '
end
function __fish__get_bun_bun_js_files
string split ' ' (bun getcompletes j)
end
function bun_fish_is_nth_token --description 'Test if current token is on Nth place' --argument-names n
set -l tokens (commandline -poc)
set -l tokens (string replace -r --filter '^([^-].*)' '$1' -- $tokens)
test (count $tokens) -eq "$n"
end
function __bun_command_count --argument-names n
set -l cmds (commandline -poc)
test (count cmds) -eq "$n"
end
function __bun_last_cmd --argument-names n
set -l cmds (commandline -poc)
test "(cmds[-1])" = "$n"
end
set -l bun_install_boolean_flags yarn production optional development no-save dry-run force no-cache silent verbose global
set -l bun_install_boolean_flags_descriptions "Write a yarn.lock file (yarn v1)" "Don't install devDependencies" "Add dependency to optionalDependencies" "Add dependency to devDependencies" "Don't install devDependencies" "Don't install anything" "Always request the latest versions from the registry & reinstall all dependenices" "Ignore manifest cache entirely" "Don't output anything" "Excessively verbose logging" "Use global folder"
set -l bun_builtin_cmds dev create help bun upgrade discord run install remove add init link unlink pm x
set -l bun_builtin_cmds_without_run dev create help bun upgrade discord install remove add init pm x
set -l bun_builtin_cmds_without_bun dev create help upgrade run discord install remove add init pm x
set -l bun_builtin_cmds_without_create dev help bun upgrade discord run install remove add init pm x
set -l bun_builtin_cmds_without_install create dev help bun upgrade discord run remove add init pm x
set -l bun_builtin_cmds_without_remove create dev help bun upgrade discord run install add init pm x
set -l bun_builtin_cmds_without_add create dev help bun upgrade discord run remove install init pm x
set -l bun_builtin_cmds_without_pm create dev help bun upgrade discord run init pm x
# clear
complete -e -c bun
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_run; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -a '(__fish__get_bun_scripts)' -d 'script'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_run; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from run" -a '(__fish__get_bun_bins)' -d 'package bin'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_run; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from run" -a '(__fish__get_bun_scripts)' -d 'script'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_run; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from run" -a '(__fish__get_bun_bun_js_files)' -d 'Bun.js'
complete -c bun \
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __fish_use_subcommand" -a 'run' -f -d 'Run a script or bin'
complete -c bun \
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -s 'u' -l 'origin' -r -d 'Server URL. Rewrites import paths'
complete -c bun \
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -s 'p' -l 'port' -r -d 'Port number to start server from'
complete -c bun \
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -s 'd' -l 'define' -r -d 'Substitute K:V while parsing, e.g. --define process.env.NODE_ENV:\"development\"'
complete -c bun \
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -s 'e' -l 'external' -r -d 'Exclude module from transpilation (can use * wildcards). ex: -e react'
complete -c bun \
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -l 'use' -r -d 'Use a framework (ex: next)'
complete -c bun \
-n "not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) install remove add;" --no-files -l 'hot' -r -d 'Enable hot reloading in Bun\'s JavaScript runtime'
complete -c bun \
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __fish_use_subcommand" -a 'dev' -d 'Start dev server'
complete -c bun \
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'create' -f -d 'Create a new project from a template'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_create next react; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from create;" -a 'next' -d 'new Next.js project'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_create next react; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from create;" -a 'react' -d 'new React project'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -a 'upgrade' -d 'Upgrade bun to the latest version' -x
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -a '--help' -d 'See all commands and flags' -x
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -l "version" -s "v" -a '--version' -d 'Bun\'s version' -x
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_use_subcommand" -a 'discord' -d 'Open bun\'s Discord server' -x
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_bun; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); __fish_use_subcommand" -a 'bun' -d 'Generate a new bundle'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_bun; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from bun" -F -d 'Bundle this'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_create; and not __fish_seen_subcommand_from (__fish__get_bun_bins); and not __fish_seen_subcommand_from (__fish__get_bun_scripts); and __fish_seen_subcommand_from react; or __fish_seen_subcommand_from next" -F -d "Create in directory"
complete -c bun \
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'init' -F -d 'Start an empty Bun project'
complete -c bun \
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'install' -f -d 'Install packages from package.json'
complete -c bun \
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'add' -F -d 'Add a package to package.json'
complete -c bun \
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand" -a 'remove' -F -d 'Remove a package from package.json'
complete -c bun \
-n "bun_fish_is_nth_token 1; and not __fish_seen_subcommand_from $bun_builtin_cmds; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) and __bun_command_count 1 and __fish_use_subcommand add remove" -F
for i in (seq (count $bun_install_boolean_flags))
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from install add remove;" -l "$bun_install_boolean_flags[$i]" -d "$bun_install_boolean_flags_descriptions[$i]"
end
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from install add remove;" -l 'cwd' -d 'Change working directory'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from install add remove;" -l 'cache-dir' -d 'Choose a cache directory (default: $HOME/.bun/install/cache)'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from add;" -d 'Popular' -a '(__fish__get_bun_packages)'
complete -c bun \
-n "not __fish_seen_subcommand_from $bun_builtin_cmds_without_pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts); and __fish_seen_subcommand_from add;" -d 'History' -a '(__history_completions)'
complete -c bun \
-n "__fish_seen_subcommand_from pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) cache;" -a 'bin ls cache hash hash-print hash-string' -f
complete -c bun \
-n "__fish_seen_subcommand_from pm; and __fish_seen_subcommand_from cache; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts);" -a 'rm' -f
complete -c bun -n "not __fish_seen_subcommand_from $bun_builtin_cmds (__fish__get_bun_bins) (__fish__get_bun_scripts)" -a "$bun_builtin_cmds" -f

View File

@ -22,9 +22,13 @@ if type -q cargo
abbr -ga c cargo
end
if type -q cargo-fuzz
abbr -ga fuzz rustup run nightly cargo fuzz
end
# configure cat replacement
if type -q bat
abbr -ga cat bat
if type -q batcat
abbr -ga cat batcat
set -x BAT_THEME 'Monokai Extended'
end

View File

@ -0,0 +1,33 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3400
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:005fd7
SETUVAR fish_color_comment:990000
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:009900
SETUVAR fish_color_error:ff0000
SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:00a6b2
SETUVAR fish_color_param:00afff
SETUVAR fish_color_quote:999900
SETUVAR fish_color_redirection:00afff
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell\x0aType\x20\x60help\x60\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:\x1d
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr

View File

@ -0,0 +1,22 @@
function table_row -a COLOR KEY VAL LEN
set -l repeats (math $LEN - (string length $KEY) - (string length $VAL) - 2)
echo (set_color $COLOR)$KEY(set_color normal) \
(set_color grey)(string repeat '.' -n $repeats) \
(set_color -i brwhite)$VAL(set_color normal)
end
function fish_greeting
set -l user (whoami)@(hostname)
set -l uptime (uptime | sed 's/.*up \([^,]*\), .*/\1/')
set -l shell_version (echo $FISH_VERSION)
set -l date (date)
set -l len (math $COLUMNS - 2)
echo (string repeat '░' -n $COLUMNS)
set_color grey; echo 1 (table_row brblue 'CURRENT USER' $user $len)
set_color grey; echo 2 (table_row brmagenta 'DATE' $date $len)
set_color grey; echo 3 (table_row brcyan 'SHELL VERSION' fish-$shell_version $len)
set_color grey; echo 4 (table_row bryellow 'RUST' (rustc --version) $len)
end

38
config/git/gitconfig Normal file
View File

@ -0,0 +1,38 @@
[push]
default = simple
[core]
editor = "vi"
excludesfile = ~/.gitignore_global
attributesfile = ~/.gitattributes_global
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
required = true
process = git-lfs filter-process
[filter "nbstrip_full"]
clean = "jq --indent 1 \
'(.cells[] | select(has(\"outputs\")) | .outputs) = [] \
| (.cells[] | select(has(\"execution_count\")) | .execution_count) = null \
| .metadata = {\"language_info\": {\"name\": \"python\", \"pygments_lexer\": \"ipython3\"}} \
| .cells[].metadata = {} \
'"
smudge = cat
required = true
[commit]
verbose = true
[help]
autocorrect = 10
[init]
defaultBranch = main
[clone]
defaultRemoteName = o
[include]
path = ~/.gitconfig.user

View File

@ -1,28 +1,18 @@
[push]
default = simple
[user]
name = Gwen Lofman
email = git@glfmn.io
signingkey = 4DB217ABEC8E37B0
[commit]
gpgSign = true
[tag]
gpgSign = true
[core]
editor = "vi"
excludesfile = ~/.gitignore_global
attributesfile = ~/.gitattributes_global
editor = "hx"
pager = delta --dark
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
required = true
process = git-lfs filter-process
[filter "nbstrip_full"]
clean = "jq --indent 1 \
'(.cells[] | select(has(\"outputs\")) | .outputs) = [] \
| (.cells[] | select(has(\"execution_count\")) | .execution_count) = null \
| .metadata = {\"language_info\": {\"name\": \"python\", \"pygments_lexer\": \"ipython3\"}} \
| .cells[].metadata = {} \
'"
smudge = cat
required = true
[alias]
# "Custom" commands
# diff against characters instead of lines
@ -71,15 +61,3 @@ required = true
fll = !git lgl --follow -- # long-format commits
fst = !git lst --follow -- # stat-style commits
fpa = !git lpa --follow -- # full patch commits
[commit]
verbose = true
[help]
autocorrect = 10
[init]
defaultBranch = main
[include]
path = ~/.gitconfig.user

13
config/helix/config.toml Normal file
View File

@ -0,0 +1,13 @@
# Configuration for helix editor.
#
# See https://docs.helix-editor.com/configuration.html
# Custom derivative of gruvbox
theme = "glfmn"
[editor]
color-modes = true # Differentiate between modes in lower left-hand corner
bufferline = "multiple" # Show buffers as tabs
[editor.whitespace]
render = "all"

View File

@ -0,0 +1,34 @@
[[language]]
name = "image-blocks"
scope = "source.image-blocks"
file-types = ["ibl"]
roots = []
comment-token = ";"
indent = { tab-width = 4, unit = " " }
# language-server = { command = "image-blocks-viewer" }
[[grammar]]
name = "image-blocks"
source.path = "/home/ludens/Code/tree-sitter-image-blocks"
[[language]]
name = "zig"
[language.debugger]
name = "lldb-vscode"
transport = "stdio"
command = "lldb-vscode-17"
[[language.debugger.templates]]
name = "binary"
request = "launch"
completion = [{ name = "binary", completion = "filename" }]
args = { program = "{0}", initCommands = []}
[[language]]
name = "markdown"
language-server = { command = "ltex-ls" }
[[language]]
name = "git-commit"
language-server = { command = "ltex-ls" }

View File

@ -0,0 +1,24 @@
inherits = "gruvbox"
# Make delimiters less loud
"punctuation" = "gray1"
"punctuation.delimiter" = "gray1"
# Make operators less loud but stil stand out
"operator" = "fg3"
# Unify look of variables with slight contrast difference to emphasize
# function parameters.
"variable" = "fg2"
"variable.parameter" = { fg = "fg1", modifiers = ["italic"] }
"variable.builtin" = { fg = "fg1", modifiers = ["italic"] }
# Unify look of functions
"function" = "green1"
"function.macro" = "aqua1"
"function.builtin" = { fg = "green1", modifiers = ["bold"] }
# Differentiate ui modes more clearly
"ui.statusline.normal" = { fg = "fg1", bg = "green0" }
"ui.statusline.insert" = { fg = "fg1", bg = "blue0", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "fg1", bg = "orange0", modifiers = ["bold"] }

View File

@ -1,451 +0,0 @@
;;; glsl-mode.el --- major mode for Open GLSL shader files
;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
;; Copyright (C) 2011, 2014, 2019 Jim Hourihan
;;
;; Authors: Xavier.Decoret@imag.fr,
;; Jim Hourihan <jimhourihan ~at~ gmail.com> (updated for 4.6, etc)
;; Keywords: languages OpenGL GPU SPIR-V Vulkan
;; Version: 2.4
;; X-URL: https://github.com/jimhourihan/glsl-mode
;;
;; Original X-URL http://artis.inrialpes.fr/~Xavier.Decoret/resources/glsl-mode/
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; For a full copy of the GNU General Public License
;; see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; Major mode for editing OpenGLSL grammar files, usually files ending with
;; `.vert', `.frag', `.glsl', `.geom'. Is is based on c-mode plus some
;; features and pre-specified fontifications.
;;
;; Modifications from the 1.0 version of glsl-mode (jimhourihan):
;; * Removed original optimized regexps for font-lock-keywords and
;; replaced with keyword lists for easier maintenance
;; * Added customization group and faces
;; * Preprocessor faces
;; * Updated to GLSL 4.6
;; * Separate deprecated symbols
;; * Made _ part of a word
;; * man page lookup at opengl.org
;; This package provides the following features:
;; * Syntax coloring (via font-lock) for grammar symbols and
;; builtin functions and variables for up to GLSL version 4.6
;; * Indentation for the current line (TAB) and selected region (C-M-\).
;; * Switching between file.vert and file.frag
;; with S-lefttab (via ff-find-other-file)
;; * interactive function glsl-find-man-page prompts for glsl built
;; in function, formats opengl.org url and passes to browse-url
;;; Installation:
;; This file requires Emacs-20.3 or higher and package cc-mode.
;; If glsl-mode is not part of your distribution, put this file into your
;; load-path and the following into your ~/.emacs:
;; (autoload 'glsl-mode "glsl-mode" nil t)
;; (add-to-list 'auto-mode-alist '("\\.glsl\\'" . glsl-mode))
;; (add-to-list 'auto-mode-alist '("\\.vert\\'" . glsl-mode))
;; (add-to-list 'auto-mode-alist '("\\.frag\\'" . glsl-mode))
;; (add-to-list 'auto-mode-alist '("\\.geom\\'" . glsl-mode))
;; Reference:
;; https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.60.pdf
;;; Code:
(provide 'glsl-mode)
(eval-when-compile ; required and optional libraries
(require 'cc-mode)
(require 'find-file))
(require 'align)
(defgroup glsl nil
"OpenGL Shading Language Major Mode"
:group 'languages)
(defconst glsl-language-version "4.6"
"GLSL language version number.")
(defconst gl-version "4.6"
"OpenGL major mode version number.")
(defvar glsl-mode-menu nil "Menu for GLSL mode")
(defvar glsl-mode-hook nil "GLSL mode hook")
(defvar glsl-type-face 'glsl-type-face)
(defface glsl-type-face
'((t (:inherit font-lock-type-face))) "glsl: type face"
:group 'glsl)
(defvar glsl-builtin-face 'glsl-builtin-face)
(defface glsl-builtin-face
'((t (:inherit font-lock-builtin-face))) "glsl: builtin face"
:group 'glsl)
(defvar glsl-deprecated-builtin-face 'glsl-deprecated-builtin-face)
(defface glsl-deprecated-builtin-face
'((t (:inherit font-lock-warning-face))) "glsl: deprecated builtin face"
:group 'glsl)
(defvar glsl-qualifier-face 'glsl-qualifier-face)
(defface glsl-qualifier-face
'((t (:inherit font-lock-keyword-face))) "glsl: qualifier face"
:group 'glsl)
(defvar glsl-keyword-face 'glsl-keyword-face)
(defface glsl-keyword-face
'((t (:inherit font-lock-keyword-face))) "glsl: keyword face"
:group 'glsl)
(defvar glsl-deprecated-keyword-face 'glsl-deprecated-keyword-face)
(defface glsl-deprecated-keyword-face
'((t (:inherit font-lock-warning-face))) "glsl: deprecated keyword face"
:group 'glsl)
(defvar glsl-variable-name-face 'glsl-variable-name-face)
(defface glsl-variable-name-face
'((t (:inherit font-lock-variable-name-face))) "glsl: variable face"
:group 'glsl)
(defvar glsl-deprecated-variable-name-face 'glsl-deprecated-variable-name-face)
(defface glsl-deprecated-variable-name-face
'((t (:inherit font-lock-warning-face))) "glsl: deprecated variable face"
:group 'glsl)
(defvar glsl-reserved-keyword-face 'glsl-reserved-keyword-face)
(defface glsl-reserved-keyword-face
'((t (:inherit glsl-keyword-face))) "glsl: reserved keyword face"
:group 'glsl)
(defvar glsl-preprocessor-face 'glsl-preprocessor-face)
(defface glsl-preprocessor-face
'((t (:inherit font-lock-preprocessor-face))) "glsl: preprocessor face"
:group 'glsl)
(defcustom glsl-additional-types nil
"List of additional keywords to be considered types. These are
added to the `glsl-type-list' and are fontified using the
`glsl-type-face'. Examples of existing types include \"float\", \"vec4\",
and \"int\"."
:type '(repeat (string :tag "Type Name"))
:group 'glsl)
(defcustom glsl-additional-qualifiers nil
"List of additional keywords to be considered qualifiers. These
are added to the `glsl-qualifier-list' and are fontified using
the `glsl-qualifier-face'. Examples of existing qualifiers
include \"const\", \"in\", and \"out\"."
:type '(repeat (string :tag "Qualifier Name"))
:group 'glsl)
(defcustom glsl-additional-keywords nil
"List of additional GLSL keywords. These are added to the
`glsl-keyword-list' and are fontified using the
`glsl-keyword-face'. Example existing keywords include \"while\",
\"if\", and \"return\"."
:type '(repeat (string :tag "Keyword"))
:group 'glsl)
(defcustom glsl-additional-built-ins nil
"List of additional functions to be considered built-in. These
are added to the `glsl-builtin-list' and are fontified using the
`glsl-builtin-face'."
:type '(repeat (string :tag "Keyword"))
:group 'glsl)
(defvar glsl-mode-hook nil)
(defvar glsl-mode-map
(let ((glsl-mode-map (make-sparse-keymap)))
(define-key glsl-mode-map [S-iso-lefttab] 'ff-find-other-file)
glsl-mode-map)
"Keymap for GLSL major mode.")
(defcustom glsl-browse-url-function 'browse-url
"Function used to display GLSL man pages. E.g. browse-url, eww, w3m, etc"
:type 'function
:group 'glsl)
(defcustom glsl-man-pages-base-url "http://www.opengl.org/sdk/docs/man/html/"
"Location of GL man pages."
:type 'string
:group 'glsl)
;;;###autoload
(progn
(add-to-list 'auto-mode-alist '("\\.vert\\'" . glsl-mode))
(add-to-list 'auto-mode-alist '("\\.frag\\'" . glsl-mode))
(add-to-list 'auto-mode-alist '("\\.geom\\'" . glsl-mode))
(add-to-list 'auto-mode-alist '("\\.glsl\\'" . glsl-mode)))
(eval-and-compile
;; These vars are useful for completion so keep them around after
;; compile as well. The goal here is to have the byte compiled code
;; have optimized regexps so its not done at eval time.
(defvar glsl-type-list
'("float" "double" "int" "void" "bool" "true" "false" "mat2" "mat3"
"mat4" "dmat2" "dmat3" "dmat4" "mat2x2" "mat2x3" "mat2x4" "dmat2x2"
"dmat2x3" "dmat2x4" "mat3x2" "mat3x3" "mat3x4" "dmat3x2" "dmat3x3"
"dmat3x4" "mat4x2" "mat4x3" "mat4x4" "dmat4x2" "dmat4x3" "dmat4x4" "vec2"
"vec3" "vec4" "ivec2" "ivec3" "ivec4" "bvec2" "bvec3" "bvec4" "dvec2"
"dvec3" "dvec4" "uint" "uvec2" "uvec3" "uvec4" "atomic_uint"
"sampler1D" "sampler2D" "sampler3D" "samplerCube" "sampler1DShadow"
"sampler2DShadow" "samplerCubeShadow" "sampler1DArray" "sampler2DArray"
"sampler1DArrayShadow" "sampler2DArrayShadow" "isampler1D" "isampler2D"
"isampler3D" "isamplerCube" "isampler1DArray" "isampler2DArray"
"usampler1D" "usampler2D" "usampler3D" "usamplerCube" "usampler1DArray"
"usampler2DArray" "sampler2DRect" "sampler2DRectShadow" "isampler2DRect"
"usampler2DRect" "samplerBuffer" "isamplerBuffer" "usamplerBuffer"
"sampler2DMS" "isampler2DMS" "usampler2DMS" "sampler2DMSArray"
"isampler2DMSArray" "usampler2DMSArray" "samplerCubeArray"
"samplerCubeArrayShadow" "isamplerCubeArray" "usamplerCubeArray"
"image1D" "iimage1D" "uimage1D" "image2D" "iimage2D" "uimage2D" "image3D"
"iimage3D" "uimage3D" "image2DRect" "iimage2DRect" "uimage2DRect"
"imageCube" "iimageCube" "uimageCube" "imageBuffer" "iimageBuffer"
"uimageBuffer" "image1DArray" "iimage1DArray" "uimage1DArray"
"image2DArray" "iimage2DArray" "uimage2DArray" "imageCubeArray"
"iimageCubeArray" "uimageCubeArray" "image2DMS" "iimage2DMS" "uimage2DMS"
"image2DMSArray" "iimage2DMSArray" "uimage2DMSArray"))
(defvar glsl-qualifier-list
'("attribute" "const" "uniform" "varying" "buffer" "shared" "coherent"
"volatile" "restrict" "readonly" "writeonly" "layout" "centroid" "flat"
"smooth" "noperspective" "patch" "sample" "in" "out" "inout"
"invariant" "lowp" "mediump" "highp"))
(defvar glsl-keyword-list
'("break" "continue" "do" "for" "while" "if" "else" "subroutine"
"discard" "return" "precision" "struct" "switch" "default" "case"))
(defvar glsl-reserved-list
'("input" "output" "asm" "class" "union" "enum" "typedef" "template" "this"
"packed" "resource" "goto" "inline" "noinline"
"common" "partition" "active" "long" "short" "half" "fixed" "unsigned" "superp"
"public" "static" "extern" "external" "interface"
"hvec2" "hvec3" "hvec4" "fvec2" "fvec3" "fvec4"
"filter" "sizeof" "cast" "namespace" "using"
"sampler3DRect"))
(defvar glsl-deprecated-qualifier-list
'("varying" "attribute")) ; centroid is deprecated when used with varying
(defvar glsl-builtin-list
'("abs" "acos" "acosh" "all" "any" "anyInvocation" "allInvocations"
"allInvocationsEqual" "asin" "asinh" "atan" "atanh"
"atomicAdd" "atomicMin" "atomicMax" "atomicAnd" "atomicOr"
"atomicXor" "atomicExchange" "atomicCompSwap"
"atomicCounter" "atomicCounterDecrement" "atomicCounterIncrement"
"atomicCounterAdd" "atomicCounterSubtract" "atomicCounterMin"
"atomicCounterMax" "atomicCounterAnd" "atomicCounterOr"
"atomicCounterXor" "atomicCounterExchange" "atomicCounterCompSwap"
"barrier" "bitCount" "bitfieldExtract" "bitfieldInsert" "bitfieldReverse"
"ceil" "clamp" "cos" "cosh" "cross" "degrees" "determinant" "dFdx" "dFdy"
"dFdyFine" "dFdxFine" "dFdyCoarse" "dFdxCoarse" "distance" "dot"
"fwidthFine" "fwidthCoarse"
"EmitStreamVertex" "EmitStreamPrimitive" "EmitVertex" "EndPrimitive"
"EndStreamPrimitive" "equal" "exp" "exp2" "faceforward" "findLSB"
"findMSB" "floatBitsToInt" "floatBitsToUint" "floor" "fma" "fract"
"frexp" "fwidth" "greaterThan" "greaterThanEqual" "groupMemoryBarrier"
"imageAtomicAdd" "imageAtomicAnd" "imageAtomicCompSwap" "imageAtomicExchange"
"imageAtomicMax" "imageAtomicMin" "imageAtomicOr" "imageAtomicXor"
"imageLoad" "imageSize" "imageStore" "imulExtended" "intBitsToFloat"
"imageSamples" "interpolateAtCentroid" "interpolateAtOffset" "interpolateAtSample"
"inverse" "inversesqrt" "isinf" "isnan" "ldexp" "length" "lessThan"
"lessThanEqual" "log" "log2" "matrixCompMult" "max" "memoryBarrier"
"memoryBarrierAtomicCounter" "memoryBarrierBuffer"
"memoryBarrierShared" "memoryBarrierImage" "memoryBarrier"
"min" "mix" "mod" "modf" "normalize" "not" "notEqual" "outerProduct"
"packDouble2x32" "packHalf2x16" "packSnorm2x16" "packSnorm4x8"
"packUnorm2x16" "packUnorm4x8" "pow" "radians" "reflect" "refract"
"round" "roundEven" "sign" "sin" "sinh" "smoothstep" "sqrt" "step" "tan"
"tanh" "texelFetch" "texelFetchOffset" "texture" "textureGather"
"textureGatherOffset" "textureGatherOffsets" "textureGrad" "textureSamples"
"textureGradOffset" "textureLod" "textureLodOffset" "textureOffset"
"textureProj" "textureProjGrad" "textureProjGradOffset" "textureProjLod"
"textureProjLodOffset" "textureProjOffset" "textureQueryLevels" "textureQueryLod"
"textureSize" "transpose" "trunc" "uaddCarry" "uintBitsToFloat"
"umulExtended" "unpackDouble2x32" "unpackHalf2x16" "unpackSnorm2x16"
"unpackSnorm4x8" "unpackUnorm2x16" "unpackUnorm4x8" "usubBorrow"))
(defvar glsl-deprecated-builtin-list
'("noise1" "noise2" "noise3" "noise4"
"texture1D" "texture1DProj" "texture1DLod" "texture1DProjLod"
"texture2D" "texture2DProj" "texture2DLod" "texture2DProjLod"
"texture2DRect" "texture2DRectProj"
"texture3D" "texture3DProj" "texture3DLod" "texture3DProjLod"
"shadow1D" "shadow1DProj" "shadow1DLod" "shadow1DProjLod"
"shadow2D" "shadow2DProj" "shadow2DLod" "shadow2DProjLod"
"textureCube" "textureCubeLod"))
(defvar glsl-deprecated-variables-list
'("gl_FragColor" "gl_FragData" "gl_MaxVarying" "gl_MaxVaryingFloats"
"gl_MaxVaryingComponents"))
(defvar glsl-preprocessor-directive-list
'("define" "undef" "if" "ifdef" "ifndef" "else" "elif" "endif"
"error" "pragma" "extension" "version" "line"))
(defvar glsl-preprocessor-expr-list
'("defined" "##"))
(defvar glsl-preprocessor-builtin-list
'("__LINE__" "__FILE__" "__VERSION__"))
) ; eval-and-compile
(eval-and-compile
(defun glsl-ppre (re)
(format "\\<\\(%s\\)\\>" (regexp-opt re))))
(defvar glsl-font-lock-keywords-1
(append
(list
(cons (eval-when-compile
(format "^[ \t]*#[ \t]*\\<\\(%s\\)\\>"
(regexp-opt glsl-preprocessor-directive-list)))
glsl-preprocessor-face)
(cons (eval-when-compile
(glsl-ppre glsl-type-list))
glsl-type-face)
(cons (eval-when-compile
(glsl-ppre glsl-deprecated-qualifier-list))
glsl-deprecated-keyword-face)
(cons (eval-when-compile
(glsl-ppre glsl-reserved-list))
glsl-reserved-keyword-face)
(cons (eval-when-compile
(glsl-ppre glsl-qualifier-list))
glsl-qualifier-face)
(cons (eval-when-compile
(glsl-ppre glsl-keyword-list))
glsl-keyword-face)
(cons (eval-when-compile
(glsl-ppre glsl-preprocessor-builtin-list))
glsl-keyword-face)
(cons (eval-when-compile
(glsl-ppre glsl-deprecated-builtin-list))
glsl-deprecated-builtin-face)
(cons (eval-when-compile
(glsl-ppre glsl-builtin-list))
glsl-builtin-face)
(cons (eval-when-compile
(glsl-ppre glsl-deprecated-variables-list))
glsl-deprecated-variable-name-face)
(cons "gl_[A-Z][A-Za-z_]+" glsl-variable-name-face)
)
(when glsl-additional-types
(list
(cons (glsl-ppre glsl-additional-types) glsl-type-face)))
(when glsl-additional-keywords
(list
(cons (glsl-ppre glsl-additional-keywords) glsl-keyword-face)))
(when glsl-additional-qualifiers
(list
(cons (glsl-ppre glsl-additional-qualifiers) glsl-qualifier-face)))
(when glsl-additional-built-ins
(list
(cons (glsl-ppre glsl-additional-built-ins) glsl-builtin-face)))
)
"Highlighting expressions for GLSL mode.")
(defvar glsl-font-lock-keywords glsl-font-lock-keywords-1
"Default highlighting expressions for GLSL mode.")
(defvar glsl-mode-syntax-table
(let ((glsl-mode-syntax-table (make-syntax-table)))
(modify-syntax-entry ?/ ". 124b" glsl-mode-syntax-table)
(modify-syntax-entry ?* ". 23" glsl-mode-syntax-table)
(modify-syntax-entry ?\n "> b" glsl-mode-syntax-table)
(modify-syntax-entry ?_ "w" glsl-mode-syntax-table)
glsl-mode-syntax-table)
"Syntax table for glsl-mode.")
(defvar glsl-other-file-alist
'(("\\.frag$" (".vert"))
("\\.vert$" (".frag"))
)
"Alist of extensions to find given the current file's extension.")
(defun glsl-man-completion-list ()
"Return list of all GLSL keywords."
(append glsl-builtin-list glsl-deprecated-builtin-list))
(defun glsl-find-man-page (thing)
"Collects and displays manual entry for GLSL built-in function THING."
(interactive
(let ((word (current-word nil t)))
(list
(completing-read
(concat "OpenGL.org GLSL man page: (" word "): ")
(glsl-man-completion-list)
nil nil nil nil word))))
(save-excursion
(apply glsl-browse-url-function
(list (concat glsl-man-pages-base-url thing ".xhtml")))))
(easy-menu-define glsl-menu glsl-mode-map
"GLSL Menu"
`("GLSL"
["Comment Out Region" comment-region
(c-fn-region-is-active-p)]
["Uncomment Region" (comment-region (region-beginning)
(region-end) '(4))
(c-fn-region-is-active-p)]
["Indent Expression" c-indent-exp
(memq (char-after) '(?\( ?\[ ?\{))]
["Indent Line or Region" c-indent-line-or-region t]
["Fill Comment Paragraph" c-fill-paragraph t]
"----"
["Backward Statement" c-beginning-of-statement t]
["Forward Statement" c-end-of-statement t]
"----"
["Up Conditional" c-up-conditional t]
["Backward Conditional" c-backward-conditional t]
["Forward Conditional" c-forward-conditional t]
"----"
["Backslashify" c-backslash-region (c-fn-region-is-active-p)]
"----"
["Find GLSL Man Page" glsl-find-man-page t]
))
;;;###autoload
(define-derived-mode glsl-mode prog-mode "GLSL"
"Major mode for editing GLSL shader files."
(c-initialize-cc-mode t)
(setq abbrev-mode t)
(c-init-language-vars-for 'c-mode)
(c-common-init 'c-mode)
(cc-imenu-init cc-imenu-c++-generic-expression)
(set (make-local-variable 'font-lock-defaults) '(glsl-font-lock-keywords))
(set (make-local-variable 'ff-other-file-alist) 'glsl-other-file-alist)
(set (make-local-variable 'comment-start) "// ")
(set (make-local-variable 'comment-end) "")
(set (make-local-variable 'comment-padding) "")
(easy-menu-add glsl-menu)
(add-to-list 'align-c++-modes 'glsl-mode)
(c-run-mode-hooks 'c-mode-common-hook)
(run-mode-hooks 'glsl-mode-hook)
:after-hook (progn (c-make-noise-macro-regexps)
(c-make-macro-with-semi-re)
(c-update-modeline))
)
;;; glsl-mode.el ends here

@ -1 +0,0 @@
Subproject commit cf2779ec15cb6315f2d887a7287afc7da5d734b9

View File

@ -1,252 +0,0 @@
;;; Configuration --- my config for emacs
;;; Commentary:
;; Setting up Emacs as a minimal text editor with support for LSP
;;; Code:
;; Start up to a more minimal text editor
(setq inhibit-startup-message t)
(menu-bar-mode -1) ; no menu bar
(scroll-bar-mode -1) ; no visible scrollbar
(tool-bar-mode -1) ; no toolbar
(tooltip-mode -1) ; no tooltips
(set-fringe-mode 10) ; horizontal padding
(global-auto-revert-mode t) ; automatically refresh files when I do git stuff
(setq visible-bell t) ; visual instead of audio indicator for errors
(setq create-lockfiles nil) ; don't create .# files
(setq make-backup-files nil) ; don't create backfup files
(setq gc-cons-threshold #x8000000) ; garbage collection limit
; Set the initial window size
(if (window-system) (set-frame-size (selected-frame) 180 50))
;; Set Default font and font size
(add-to-list 'default-frame-alist '(font . "Source Code Pro"))
(set-face-attribute 'default t :font "Source Code Pro")
(set-face-attribute 'default nil :height 105)
;; Make ESQ quit prompts
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
;; Line numbers
(column-number-mode)
(global-display-line-numbers-mode t)
(dolist (mode '(org-mode-hook
term-mode-hook
eshell-mode-hook))
(add-hook mode (lambda () (display-line-numbers-mode 0))))
;; Initialize package sources
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")
("gnu" . "https://elpa.gnu.org/packages/")))
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
; Initialize use-package on non-Linux platforms
(unless (package-installed-p 'use-package)
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)
;; Themes
(use-package doom-modeline
:ensure t
:init (doom-modeline-mode 1)
:custom ((doom-modeline-height 15)))
(use-package doom-themes
:config
(setq doom-themes-enable-bold t
doom-themes-enable-italic t)
(doom-themes-visual-bell-config)
:init (load-theme 'doom-gruvbox t))
;; Search Functionality
(use-package counsel
:bind (("M-x" . counsel-M-x)
("C-x b" . counsel-ibuffer)
("C-x C-f" . counsel-find-file)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:config (setq ivy-initial-inputs-alist nil))
(use-package swiper)
(use-package ivy
:diminish
:bind (("C-s" . swiper)
:map ivy-minibuffer-map
("TAB" . ivy-partial-or-done)
("C-j" . ivy-immediate-done)
("RET" . ivy-alt-done)
:map ivy-switch-buffer-map
("C-d" . ivy-switch-buffer-kill)
:map ivy-reverse-i-search-map
("C-d" . ivy-reverse-i-search-kill))
:config
(setq ivy-re-builders-alist '((t . ivy--regex-ignore-order)))
(ivy-mode 1))
(use-package ivy-rich
:init (ivy-rich-mode 1))
;; Help
(use-package which-key
:init (which-key-mode)
:diminish which-key-mode
:config (setq which-key-idle-delay 0.3))
(use-package helpful
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
:bind (([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key)))
;; Project management
(use-package projectile
:diminish projectile-mode
:config (projectile-mode)
:custom ((projectile-completion-system 'ivy))
:bind-keymap ("C-c p" . projectile-command-map)
:init (when (file-directory-p "~/Code")
(setq projectile-project-search-path '("~/Code"))))
(use-package counsel-projectile
:config (counsel-projectile-mode))
;; Programming
(use-package rainbow-delimiters
:hook (prog-mode . rainbow-delimiters-mode))
;; Use smartparens for rust and perhaps other C-like
(use-package smartparens-config
:ensure smartparens
:diminish smartparens-mode
:hook (rustic-mode . smartparens-mode)
:bind (("C-M-a" . sp-beginning-of-sexp)
("C-M-e" . sp-end-of-sexp)
("C-M-n" . sp-next-sexp)
("C-M-p" . sp-previous-sexp)
("C-M-f" . sp-forward-sexp)
("C-M-b" . sp-backward-sexp)
("M-f" . sp-forward-symbol)
("M-b" . sp-backward-symbol)
("C-k" . sp-kill-hybrid-sexp)
("C-)" . sp-slurp-hybrid-sexp))
:config (require 'smartparens-config))
;; Use paredit for everything else
(use-package paredit
:diminish paredit-mode
:hook ((emacs-lisp-mode . enable-paredit-mode)
(ielm-mode . enable-paredit-mode)))
;; Spaces over tabs
(setq-default indent-tabs-mode nil)
(defun disable-tabs ()
"Use spaces for indentation."
(setq indent-tabs-mode nil))
(dolist (mode '(prog-mode-hook
lisp-mode-hook
emacs-lisp-mode-hook))
(add-hook mode 'disable-tabs))
;; Highlight whitespace
(use-package whitespace-mode
:ensure nil ; don't actually install the package
:hook
(prog-mode . whitespace-mode)
(before-save . whitespace-cleanup)
(whitespace-mode . (lambda ()
(setq whitespace-display-mappings
'((space-mark 32 [183] [46])
(space-mark 160 [164] [95])
(newline-mark 10 [#x23CE 10] [36 10])
(tab-mark 9 [187 9] [92 9])))))
:custom (whitespace-line '((t (:underline (:color "dim gray" :style wave))))))
;; Error checking
(use-package flycheck
:hook (prog-mode . flycheck-mode))
;; Auto-completion
(use-package company
:hook (prog-mode . company-mode)
:config (setq company-tooltip-align-annotations t
company-minimum-prefix-length 2))
;; Must be installed for rust-analyzer to work
(use-package yasnippet
:ensure
:config
(yas-reload-all)
(add-hook 'prog-mode-hook 'yas-minor-mode))
;; Language server protocol
(use-package lsp-mode
:init (setq lsp-keymap-prefix "C-c l")
:hook ((lsp-mode . lsp-enable-which-key-integration))
:bind (:map lsp-mode-map
("M-?" . lsp-find-references))
:commands lsp
:config
(setq lsp-eldoc-render-all nil)
; (setq lsp-signature-auto-activate t)
(setq lsp-enable-xref t))
(use-package lsp-ivy
:commands lsp-ivy-workspace-symbol)
;; Rust programming
;; Nuke rust-mode from the auto-mode-alist so that rustic mode loads instead
(use-package rust-mode
:config
(while (rassoc 'rust-mode auto-mode-alist)
(setq auto-mode-alist
(assq-delete-all (car (rassoc 'rust-mode auto-mode-alist))
auto-mode-alist))))
(use-package rustic
:bind (:map rustic-mode-map ("C-c C-c l" . flycheck-list-errors))
:config
(setq rustic-format-on-save t)
(add-hook 'rustic-mode-hook 'glfmn/rustic-mode-hook))
(defun glfmn/rustic-mode-hook ()
;; so that run C-c C-c C-r works without having to confirm
(setq-local buffer-save-without-query t))
(use-package flycheck-rust
:config (add-hook 'flycheck-mode-hook #'flycheck-rust-setup))
(use-package toml-mode)
(use-package wgsl-mode
:load-path "~/.emacs.d/github-packages/wgsl-mode"
:mode "\\.wgsl\\'")
(use-package glsl-mode
:load-path "~/.emacs.d/github-packages/glsl-mode")
;;; init.el ends here

View File

@ -1,10 +0,0 @@
[user]
name = Gwen Lofman
email = git@glfmn.io
signingkey = git@glfmn.io
[commit]
gpgSign = true
[tag]
gpgSign = true

View File

@ -9,3 +9,9 @@ cargo install -f glit
# Rust alternatives for common programs
sudo apt install exa fd-find
cargo install -f git-delta batcat
# Helix text editor
mkdir -p ~/Code/util
git clone https://github.com/helix-editor/helix ~/Code/util/helix
cargo install --path ~/Code/util/helix/helix-term
ln -s ~/Code/util/helix/runtime ~/.config/helix/runtime

View File

@ -1,17 +0,0 @@
function fish_greeting
echo ' '(set_color F00)'___
___======____='(set_color FF7F00)'-'(set_color FF0)'-'(set_color FF7F00)'-='(set_color F00)')
/T \_'(set_color FF0)'--='(set_color FF7F00)'=='(set_color F00)') '(set_color red)(whoami)'@'(hostname)'
[ \ '(set_color FF7F00)'('(set_color FF0)'0'(set_color FF7F00)') '(set_color F00)'\~ \_'(set_color FF0)'-='(set_color FF7F00)'='(set_color F00)')'(set_color yellow)' Uptime:'(set_color white)(uptime | sed 's/.*up \([^,]*\), .*/\1/')(set_color red)'
\ / )J'(set_color FF7F00)'~~ \\'(set_color FF0)'-='(set_color F00)') Theme: '(set_color white)(echo $fish_theme)(set_color red)'
\\\\___/ )JJ'(set_color FF7F00)'~'(set_color FF0)'~~ '(set_color F00)'\) '(set_color yellow)'Version: '(set_color white)(echo $FISH_VERSION)(set_color red)'
\_____/JJJ'(set_color FF7F00)'~~'(set_color FF0)'~~ '(set_color F00)'\\
'(set_color FF7F00)'/ '(set_color FF0)'\ '(set_color FF0)', \\'(set_color F00)'J'(set_color FF7F00)'~~~'(set_color FF0)'~~ '(set_color FF7F00)'\\
(-'(set_color FF0)'\)'(set_color F00)'\='(set_color FF7F00)'|'(set_color FF0)'\\\\\\'(set_color FF7F00)'~~'(set_color FF0)'~~ '(set_color FF7F00)'L_'(set_color FF0)'_
'(set_color FF7F00)'('(set_color F00)'\\'(set_color FF7F00)'\\) ('(set_color FF0)'\\'(set_color FF7F00)'\\\)'(set_color F00)'_ '(set_color FF0)'\=='(set_color FF7F00)'__
'(set_color F00)'\V '(set_color FF7F00)'\\\\'(set_color F00)'\) =='(set_color FF7F00)'=_____ '(set_color FF0)'\\\\\\\\'(set_color FF7F00)'\\\\
'(set_color F00)'\V) \_) '(set_color FF7F00)'\\\\'(set_color FF0)'\\\\JJ\\'(set_color FF7F00)'J\)
'(set_color F00)'/'(set_color FF7F00)'J'(set_color FF0)'\\'(set_color FF7F00)'J'(set_color F00)'T\\'(set_color FF7F00)'JJJ'(set_color F00)'J)
(J'(set_color FF7F00)'JJ'(set_color F00)'| \UUU)
(UU)'(set_color normal)
end

View File

@ -13,30 +13,30 @@ DIR=$(pwd -L)
echo -e "\n${GREEN}linking config files...${NC}\n"
# System profiles
echo -e "\n\t${BOLD}System profiles...${NC}\n"
ln -sbv "$DIR/.bashrc" ~
ln -sbv "$DIR/profiles/.bash_profile" ~
ln -sbv "$DIR/profiles/.inputrc" ~
ln -sbv "$DIR/profiles/fish" ~/.config/
ln -sbv "$DIR/emacs" ~/.emacs.d
# System config
echo -e "\n\t${BOLD}System config...${NC}\n"
ln -sbv "$DIR/config/bash/bashrc" ~/.bashrc
ln -sbv "$DIR/config/bash/profile" ~/.bash_profile
ln -sbv "$DIR/config/inputrc" ~/.inputrc
ln -sbv "$DIR/config/fish" ~/.config/
# Text editor config
echo -e "\n\t${BOLD}Text editors...${NC}\n"
ln -sbv "$DIR/profiles/.vimrc" ~
ln -sbv "$DIR/profiles/.spacemacs" ~
ln -sbv "$DIR/service/emacs.service" ~/.config/systemd/user/
ln -sbv "$DIR/config/vimrc" ~/.vimrc
ln -sbv "$DIR/config/helix/config.toml" ~/.config/helix/config.toml
ln -sbv "$DIR/config/helix/languages.toml" ~/.config/helix/languages.toml
ln -sbv "$DIR/config/helix/themes/" ~/.config/helix/
# Terminal Config
echo -e "\n\t${BOLD}Terminal Emulator...${NC}\n"
ln -sbv "$DIR/profiles/.alacritty.yml" ~
ln -sbv "$DIR/config/alacritty.yml" ~/.alacritty.yml
# Git
echo -e "\n\t${BOLD}git...${NC}\n"
ln -sbv "$DIR/git/.gitconfig" ~
ln -sbv "$DIR/git/.gitconfig.user" ~
ln -sbv "$DIR/git/.gitignore_global" ~
ln -sbv "$DIR/git/.gitattributes_global" ~
ln -sbv "$DIR/config/git/gitconfig" ~/.gitconfig
ln -sbv "$DIR/config/git/gitconfig.user" ~/.gitconfig.user
ln -sbv "$DIR/config/git/gitignore_global" ~/.gitignore_global
ln -sbv "$DIR/config/git/gitattributes_global" ~/.gitattributes_global
# e-mail
echo -e "\n\t${BOLD}email...${NC}\n"