From 0694ba3805fcedcb15df07e63d4cd31f60e6d45c Mon Sep 17 00:00:00 2001 From: mitchell Date: Tue, 12 May 2026 19:46:14 -0400 Subject: [PATCH 01/27] chore: update nvim plugins and switch python tooling to ruff - bump ale, markview.nvim commits in lazy-lock - replace pylint with ruff as python linter - replace black with ruff/ruff_format as python formatter - add java, kotlin, python to treesitter languages --- .config/nvim/lazy-lock.json | 4 ++-- .config/nvim/lua/plugins/editor.lua | 4 ++-- .config/nvim/lua/plugins/treesitter.lua | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 33b88be..fd35f55 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,5 +1,5 @@ { - "ale": { "branch": "master", "commit": "80ff84db84ba172bfcdee5e2748924bb2249134b" }, + "ale": { "branch": "master", "commit": "c59c0d1a573a7b2fe491f78af4f2033bde454753" }, "blink.cmp": { "branch": "main", "commit": "729d023bb9870a55e1b309a12d5c503fb800a7e8" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "codecompanion.nvim": { "branch": "main", "commit": "7d7957c26d33a97085d3a0c82eeb0147a0f51314" }, @@ -8,7 +8,7 @@ "kanagawa.nvim": { "branch": "master", "commit": "debe91547d7fb1eef34ce26a5106f277fbfdd109" }, "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, "lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" }, - "markview.nvim": { "branch": "main", "commit": "1861f959599ae03cfd59f56222a542035b0cd947" }, + "markview.nvim": { "branch": "main", "commit": "e27dee8b2a61f89ac3a06deae0264ad1d3f7b62c" }, "mini.diff": { "branch": "main", "commit": "9bccf260cdb9308223f47a29fb4cb91c817a9349" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" }, "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, diff --git a/.config/nvim/lua/plugins/editor.lua b/.config/nvim/lua/plugins/editor.lua index 367542e..cb222e5 100644 --- a/.config/nvim/lua/plugins/editor.lua +++ b/.config/nvim/lua/plugins/editor.lua @@ -35,7 +35,7 @@ return { ruby = { "rubocop" }, css = { "stylelint", "biome" }, sh = { "shellcheck" }, - python = { "pylint" }, + python = { "ruff" }, } vim.g.ale_fixers = { @@ -57,7 +57,7 @@ return { elixir = { "mix_format" }, terraform = { "terraform" }, ruby = { "rubocop" }, - python = { "black" }, + python = { "ruff", "ruff_format" }, lua = { "stylua" }, } end, diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua index f3c8ebc..1628771 100644 --- a/.config/nvim/lua/plugins/treesitter.lua +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -28,6 +28,9 @@ return { "terraform", "yaml", "json", + "java", + "kotlin", + "python", } require("nvim-treesitter").install(langs) From 30ef692f0ccc71aba3245ec22221201bdd498221 Mon Sep 17 00:00:00 2001 From: mitchell Date: Mon, 13 Apr 2026 14:33:48 -0400 Subject: [PATCH 02/27] refactor: simplify fish prompt and configs --- .config/fish/completions/docker.fish | 564 ------------------ .config/fish/conf.d/define_aliases.fish | 20 + .../fish/conf.d/define_global_variables.fish | 34 ++ .../fish/conf.d/fish_frozen_key_bindings.fish | 14 - .config/fish/conf.d/fish_frozen_theme.fish | 84 ++- .config/fish/conf.d/import_sources.fish | 20 + .../key_binds.fish} | 11 +- .config/fish/config.fish | 13 - .config/fish/fish_plugins | 3 - .config/fish/functions/aisearch.fish | 4 - .config/fish/functions/back.fish | 6 - .config/fish/functions/btre.fish | 34 -- .config/fish/functions/define_aliases.fish | 60 -- .../functions/define_global_variables.fish | 41 -- .config/fish/functions/dm_env.fish | 3 - .config/fish/functions/do.fish | 9 - .config/fish/functions/fish_prompt.fish | 82 +-- .config/fish/functions/fish_right_prompt.fish | 32 +- .config/fish/functions/import_sources.fish | 24 - .config/fish/functions/pastoggle.fish | 23 - .config/fish/functions/pkm.fish | 78 --- .config/fish/functions/push.fish | 25 - .config/fish/functions/push_tasks.fish | 8 - .config/fish/functions/rebar.fish | 5 - .config/fish/functions/redisco.fish | 20 - .config/fish/functions/refresh.fish | 7 - .config/fish/functions/repeat.fish | 5 - .config/fish/functions/start_x_at_login.fish | 7 - .config/fish/functions/toglpulse.fish | 14 - .config/fish/functions/vban.fish | 4 - fish_universal_vars.fish | 35 -- sync | 6 - 32 files changed, 139 insertions(+), 1156 deletions(-) delete mode 100644 .config/fish/completions/docker.fish create mode 100644 .config/fish/conf.d/define_aliases.fish create mode 100644 .config/fish/conf.d/define_global_variables.fish delete mode 100644 .config/fish/conf.d/fish_frozen_key_bindings.fish create mode 100644 .config/fish/conf.d/import_sources.fish rename .config/fish/{functions/fish_user_key_bindings.fish => conf.d/key_binds.fish} (56%) delete mode 100644 .config/fish/fish_plugins delete mode 100644 .config/fish/functions/aisearch.fish delete mode 100644 .config/fish/functions/back.fish delete mode 100644 .config/fish/functions/btre.fish delete mode 100644 .config/fish/functions/define_aliases.fish delete mode 100644 .config/fish/functions/define_global_variables.fish delete mode 100644 .config/fish/functions/dm_env.fish delete mode 100644 .config/fish/functions/do.fish delete mode 100644 .config/fish/functions/import_sources.fish delete mode 100644 .config/fish/functions/pastoggle.fish delete mode 100644 .config/fish/functions/pkm.fish delete mode 100644 .config/fish/functions/push.fish delete mode 100644 .config/fish/functions/push_tasks.fish delete mode 100644 .config/fish/functions/rebar.fish delete mode 100644 .config/fish/functions/redisco.fish delete mode 100644 .config/fish/functions/refresh.fish delete mode 100644 .config/fish/functions/repeat.fish delete mode 100644 .config/fish/functions/start_x_at_login.fish delete mode 100644 .config/fish/functions/toglpulse.fish delete mode 100644 .config/fish/functions/vban.fish delete mode 100644 fish_universal_vars.fish diff --git a/.config/fish/completions/docker.fish b/.config/fish/completions/docker.fish deleted file mode 100644 index 53c19e9..0000000 --- a/.config/fish/completions/docker.fish +++ /dev/null @@ -1,564 +0,0 @@ -# docker.fish - docker completions for fish shell -# -# This file is generated by gen_docker_fish_completions.py from: -# https://github.com/barnybug/docker-fish-completion -# -# To install the completions: -# mkdir -p ~/.config/fish/completions -# cp docker.fish ~/.config/fish/completions -# -# Completion supported: -# - parameters -# - commands -# - containers -# - images -# - repositories - -function __fish_docker_no_subcommand --description 'Test if docker has yet to be given the subcommand' - for i in (commandline -opc) - if contains -- $i attach build commit cp create diff events exec export history images import info inspect kill load login logout logs pause port ps pull push rename restart rm rmi run save search start stop tag top trust unpause version wait stats - return 1 - end - end - return 0 -end - -function __fish_print_docker_containers --description 'Print a list of docker containers' -a select - switch $select - case running - docker ps -a --no-trunc --filter status=running --format "{{.ID}}\n{{.Names}}" | tr ',' '\n' - case stopped - docker ps -a --no-trunc --filter status=exited --format "{{.ID}}\n{{.Names}}" | tr ',' '\n' - case all - docker ps -a --no-trunc --format "{{.ID}}\n{{.Names}}" | tr ',' '\n' - end -end - -function __fish_docker_no_subcommand_trust --description 'Test if docker has yet to be given the trust subcommand' - if __fish_seen_subcommand_from trust - for i in (commandline -opc) - if contains -- $i inspect key revoke sign signer - return 1 - end - end - return 0 - end - return 1 -end - -function __fish_docker_subcommand_path --description 'Test if command has all arguments in any order' - set -l cmd (commandline -poc) - set -e cmd[1] - for sub in $argv - if not contains -- $sub $cmd - return 1 - end - end - return 0 -end - -function __fish_docker_subcommand_path_without --description 'Test if command has all arguments in any order' - set -l cmd (commandline -poc) - set -e cmd[1] - for sub in $argv - if contains -- $sub $cmd - return 1 - end - end - return 0 -end - -function __fish_print_docker_images --description 'Print a list of docker images' - docker images --format "{{.Repository}}:{{.Tag}}" | command grep -v '' -end - -function __fish_print_docker_repositories --description 'Print a list of docker repositories' - docker images --format "{{.Repository}}" | command grep -v '' | command sort | command uniq -end - -# common options -complete -c docker -f -n '__fish_docker_no_subcommand' -l api-cors-header -d "Set CORS headers in the Engine API. Default is cors disabled" -complete -c docker -f -n '__fish_docker_no_subcommand' -s b -l bridge -d 'Attach containers to a pre-existing network bridge' -complete -c docker -f -n '__fish_docker_no_subcommand' -l bip -d "Use this CIDR notation address for the network bridge's IP, not compatible with -b" -complete -c docker -f -n '__fish_docker_no_subcommand' -s D -l debug -d 'Enable debug mode' -complete -c docker -f -n '__fish_docker_no_subcommand' -s d -l daemon -d 'Enable daemon mode' -complete -c docker -f -n '__fish_docker_no_subcommand' -l dns -d 'Force Docker to use specific DNS servers' -complete -c docker -f -n '__fish_docker_no_subcommand' -l dns-opt -d 'Force Docker to use specific DNS options' -complete -c docker -f -n '__fish_docker_no_subcommand' -l dns-search -d 'Force Docker to use specific DNS search domains' -complete -c docker -f -n '__fish_docker_no_subcommand' -l exec-opt -d 'Set runtime execution options' -complete -c docker -f -n '__fish_docker_no_subcommand' -l fixed-cidr -d 'IPv4 subnet for fixed IPs (e.g. 10.20.0.0/16)' -complete -c docker -f -n '__fish_docker_no_subcommand' -l fixed-cidr-v6 -d 'IPv6 subnet for fixed IPs (e.g.: 2001:a02b/48)' -complete -c docker -f -n '__fish_docker_no_subcommand' -s G -l group -d 'Group to assign the unix socket specified by -H when running in daemon mode' -complete -c docker -f -n '__fish_docker_no_subcommand' -s g -l graph -d 'Path to use as the root of the Docker runtime' -complete -c docker -f -n '__fish_docker_no_subcommand' -s H -l host -d 'The socket(s) to bind to in daemon mode or connect to in client mode, specified using one or more tcp://host:port, unix:///path/to/socket, fd://* or fd://socketfd.' -complete -c docker -f -n '__fish_docker_no_subcommand' -s h -l help -d 'Print usage' -complete -c docker -f -n '__fish_docker_no_subcommand' -l icc -d 'Allow unrestricted inter-container and Docker daemon host communication' -complete -c docker -f -n '__fish_docker_no_subcommand' -l insecure-registry -d 'Enable insecure communication with specified registries (no certificate verification for HTTPS and enable HTTP fallback) (e.g., localhost:5000 or 10.20.0.0/16)' -complete -c docker -f -n '__fish_docker_no_subcommand' -l ip -d 'Default IP address to use when binding container ports' -complete -c docker -f -n '__fish_docker_no_subcommand' -l ip-forward -d 'Enable net.ipv4.ip_forward and IPv6 forwarding if --fixed-cidr-v6 is defined. IPv6 forwarding may interfere with your existing IPv6 configuration when using Router Advertisement.' -complete -c docker -f -n '__fish_docker_no_subcommand' -l ip-masq -d "Enable IP masquerading for bridge's IP range" -complete -c docker -f -n '__fish_docker_no_subcommand' -l iptables -d "Enable Docker's addition of iptables rules" -complete -c docker -f -n '__fish_docker_no_subcommand' -l ipv6 -d 'Enable IPv6 networking' -complete -c docker -f -n '__fish_docker_no_subcommand' -s l -l log-level -d 'Set the logging level ("debug", "info", "warn", "error", "fatal")' -complete -c docker -f -n '__fish_docker_no_subcommand' -l label -d 'Set key=value labels to the daemon (displayed in `docker info`)' -complete -c docker -f -n '__fish_docker_no_subcommand' -l mtu -d 'Set the containers network MTU' -complete -c docker -f -n '__fish_docker_no_subcommand' -s p -l pidfile -d 'Path to use for daemon PID file' -complete -c docker -f -n '__fish_docker_no_subcommand' -l registry-mirror -d 'Specify a preferred Docker registry mirror' -complete -c docker -f -n '__fish_docker_no_subcommand' -s s -l storage-driver -d 'Force the Docker runtime to use a specific storage driver' -complete -c docker -f -n '__fish_docker_no_subcommand' -l selinux-enabled -d 'Enable selinux support. SELinux does not presently support the BTRFS storage driver' -complete -c docker -f -n '__fish_docker_no_subcommand' -l storage-opt -d 'Set storage driver options' -complete -c docker -f -n '__fish_docker_no_subcommand' -l tls -d 'Use TLS; implied by --tlsverify' -complete -c docker -f -n '__fish_docker_no_subcommand' -l tlscacert -d 'Trust only remotes providing a certificate signed by the CA given here' -complete -c docker -f -n '__fish_docker_no_subcommand' -l tlscert -d 'Path to TLS certificate file' -complete -c docker -f -n '__fish_docker_no_subcommand' -l tlskey -d 'Path to TLS key file' -complete -c docker -f -n '__fish_docker_no_subcommand' -l tlsverify -d 'Use TLS and verify the remote (daemon: verify client, client: verify daemon)' -complete -c docker -f -n '__fish_docker_no_subcommand' -s v -l version -d 'Print version information and quit' - -# subcommands -# attach -complete -c docker -f -n '__fish_docker_no_subcommand' -a attach -d 'Attach local standard input, output, and error streams to a running container' -complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -l detach-keys -d 'Override the key sequence for detaching a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -l no-stdin -d 'Do not attach STDIN' -complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -l sig-proxy -d 'Proxy all received signals to the process' -complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -a '(__fish_print_docker_containers running)' -d "Container" - -# build -complete -c docker -f -n '__fish_docker_no_subcommand' -a build -d 'Build an image from a Dockerfile' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l add-host -d 'Add a custom host-to-IP mapping (host:ip)' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l build-arg -d 'Set build-time variables' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l cache-from -d 'Images to consider as cache sources' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l cgroup-parent -d 'Optional parent cgroup for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l compress -d 'Compress the build context using gzip' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l cpu-period -d 'Limit the CPU CFS (Completely Fair Scheduler) period' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l cpu-quota -d 'Limit the CPU CFS (Completely Fair Scheduler) quota' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -s c -l cpu-shares -d 'CPU shares (relative weight)' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l cpuset-cpus -d 'CPUs in which to allow execution (0-3, 0,1)' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l cpuset-mems -d 'MEMs in which to allow execution (0-3, 0,1)' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l disable-content-trust -d 'Skip image verification' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -s f -l file -d "Name of the Dockerfile (Default is ‘PATH/Dockerfile’)" -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l force-rm -d 'Always remove intermediate containers' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l iddfile -d 'Write the image ID to the file' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l isolation -d 'Container isolation technology' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l label -d 'Set metadata for an image' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -s m -l memory -d 'Memory limit' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l memory-swap -d 'Swap limit equal to memory plus swap: ‘-1’ to enable unlimited swap' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l network -d 'Set the networking mode for the RUN instructions during build' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l no-cache -d 'Do not use cache when building the image' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l pull -d 'Always attempt to pull a newer version of the image' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -s q -l quiet -d 'Suppress the build output and print image ID on success' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l rm -d 'Remove intermediate containers after a successful build' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l security-opt -d 'Security options' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l shm-size -d 'Size of /dev/shm' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -s t -l tag -d 'Name and optionally a tag in the ‘name:tag’ format' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l target -d 'Set the target build stage to build' -complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l ulimit -d 'Ulimit options' - -# commit -complete -c docker -f -n '__fish_docker_no_subcommand' -a commit -d "Create a new image from a container's changes" -complete -c docker -A -f -n '__fish_seen_subcommand_from commit' -s a -l author -d 'Author (e.g., "John Hannibal Smith ")' -complete -c docker -A -f -n '__fish_seen_subcommand_from commit' -s c -l change -d 'Apply Dockerfile instruction to the created image' -complete -c docker -A -f -n '__fish_seen_subcommand_from commit' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from commit' -s m -l message -d 'Commit message' -complete -c docker -A -f -n '__fish_seen_subcommand_from commit' -s p -l pause -d 'Pause container during commit' -complete -c docker -A -f -n '__fish_seen_subcommand_from commit' -a '(__fish_print_docker_containers all)' -d "Container" - -# cp -complete -c docker -f -n '__fish_docker_no_subcommand' -a cp -d "Copy files/folders between a container and the local filesystem" -complete -c docker -A -f -n '__fish_seen_subcommand_from cp' -s a -l archive -d 'Archive mode (copy all uid/gid information)' -complete -c docker -A -f -n '__fish_seen_subcommand_from cp' -s L -l follow-link -d 'Always follow symbol link in SRC_PATH' -complete -c docker -A -f -n '__fish_seen_subcommand_from cp' -l help -d 'Print usage' - -# create -complete -c docker -f -n '__fish_docker_no_subcommand' -a create -d 'Create a new container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l add-host -d 'Add a custom host-to-IP mapping (host:ip)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s a -l attach -d 'Attach to STDIN, STDOUT or STDERR.' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l blkio-weight -d 'Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l blkio-weight-device -d 'Block IO weight (relative device weight)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cap-add -d 'Add Linux capabilities' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cap-drop -d 'Drop Linux capabilities' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cgroup-parent -d 'Optional parent cgroup for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cidfile -d 'Write the container ID to the file' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpu-count -d 'CPU count (Windows only)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpu-percent -d 'CPU percent (Windows only)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpu-period -d 'Limit CPU CFS (Completely Fair Scheduler) period' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpu-quota -d 'Limit CPU CFS (Completely Fair Scheduler) quota' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpu-rt-period -d 'Limit CPU real-time period in microseconds' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpu-rt-runtime -d 'Limit CPU real-time runtime in microseconds' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpu-shares -d 'CPU shares (relative weight)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpus -d 'Number of CPUs' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpuset-cpus -d 'CPUs in which to allow execution (0-3, 0,1)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l cpuset-mems -d 'MEMs in which to allow execution (0-3, 0,1)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l device -d 'Add a host device to the container (e.g. --device=/dev/sdc:/dev/xvdc:rwm)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l device-cgroup-rule -d 'Add a rule to the cgroup allowed devices list' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l device-read-bps -d 'Limit read rate (bytes per second) from a device' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l device-read-iops -d 'Limit read rate (IO per second) from a device' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l device-write-bps -d 'Limit write rate (bytes per second) to a device' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l device-write-iops -d 'Limit write rate (IO per second) to a device' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l disable-content-trust -d 'Skip image verification' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l dns -d 'Set custom DNS servers' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l dns-opt -d 'Set DNS options' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l dns-option -d 'Set DNS options' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l dns-search -d 'Set custom DNS search domains' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s e -l env -d 'Set environment variables' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l entrypoint -d 'Overwrite the default ENTRYPOINT of the image' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l env-file -d 'Read in a line delimited file of environment variables' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l expose -d 'Expose a port or a range of ports' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l group-add -d 'Add additional groups to join' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l health-cmd -d 'Command to run to check health' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l health-interval -d 'Time between running the check (ms|s|m|h) (default 0s)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l health-retries -d 'Consecutive failures needed to report unhealthy' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l health-start-period -d 'Start period for the container to initialize before starting health-retries countdown (ms|s|m|h) (default 0s)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l health-timeout -d 'Maximum time to allow one check to run (ms|s|m|h) (default 0s)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s h -l hostname -d 'Container host name' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l init -d 'Run an init inside the container that forwards signals and reaps processes' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s i -l interactive -d 'Keep STDIN open even if not attached' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l io-maxbandwidth -d 'Maximum IO bandwidth limit for the system drive (Windows only)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l io-maxiops -d 'Maximum IOps limit for the system drive (Windows only)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l ip -d 'IPv4 address (e.g., 172.30.100.104)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l ip6 -d 'IPv6 address (e.g., 2001:db8::33)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l ipc -d 'IPC mode to use' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l isolation -d 'Container isolation technology' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l kernel-memory -d 'Kernel memory limit' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s l -l label -d 'Set meta data on a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l label-file -d 'Read in a line delimited file of labels' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l link -d 'Add link to another container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l link-local-ip -d 'Container IPv4/IPv6 link-local addresses' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l log-driver -d 'Logging driver for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l log-opt -d 'Log driver options' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l mac-address -d 'Container MAC address (e.g., 92:d0:c6:0a:29:33)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s m -l memory -d 'Memory limit' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l memory-reservation -d 'Memory soft limit' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l memory-swap -d 'Swap limit equal to memory plus swap: ‘-1’ to enable unlimited swap' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l memory-swappiness -d 'Tune container memory swappiness (0 to 100)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l mount -d 'Attach a filesystem mount to the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l name -d 'Assign a name to the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s net -l network -d 'Connect a container to a network' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s net-alias -l network-alias -d 'Add network-scoped alias for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l no-healthcheck -d 'Disable any container-specified HEALTHCHECK' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l oom-kill-disable -d 'Disable OOM Killer' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l oom-score-adj -d 'Tune host’s OOM preferences (-1000 to 1000)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l pid -d 'PID namespace to use' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l pids-limit -d 'Tune container pids limit (set -1 for unlimited )' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l privileged -d 'Give extended privileges to this container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s p -l publish -d "Publish a container’s port(s) to the host" -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s P -l publish-all -d 'Publish all exposed ports to random ports' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l read-only -d "Mount the container's root filesystem as read only" -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l restart -d 'Restart policy to apply when a container exits' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l rm -d 'Automatically remove the container when it exits' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l runtime -d 'Runtime to use for this container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l security-opt -d 'Security Options' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l shm-size -d 'Size of /dev/shm' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l stop-signal -d 'Signal to stop a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l stop-timeout -d 'Timeout (in seconds) to stop a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l storage-opt -d 'Storage driver options for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l sysctl -d 'Sysctl options' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l tmpfs -d 'Mount a tmpfs directory' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s t -l tty -d 'Allocate a pseudo-TTY' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l ulimit -d 'Ulimit options' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s u -l user -d ' Username or UID (format: [:])' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l userns -d 'User namespace to use' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l uts -d 'UTS namespace to use' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s v -l volume -d 'Bind mount a volume' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l volume-driver -d 'Optional volume driver for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l volumes-from -d 'Mount volumes from the specified container(s)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -s w -l workdir -d 'Working directory inside the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -a '(__fish_print_docker_images)' -d "Image" - -# diff -complete -c docker -f -n '__fish_docker_no_subcommand' -a diff -d "Inspect changes on a container's filesystem" -complete -c docker -A -f -n '__fish_seen_subcommand_from diff' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from diff' -a '(__fish_print_docker_containers all)' -d "Container" - -# events -complete -c docker -f -n '__fish_docker_no_subcommand' -a events -d 'Get real time events from the server' -complete -c docker -A -f -n '__fish_seen_subcommand_from events' -s f -l filter -d "Filter output based on conditions provided" -complete -c docker -A -f -n '__fish_seen_subcommand_from events' -l format -d 'Format the output using the given Go template' -complete -c docker -A -f -n '__fish_seen_subcommand_from events' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from events' -l since -d 'Show all events created since timestamp' -complete -c docker -A -f -n '__fish_seen_subcommand_from events' -l until -d 'Stream events until this timestamp' - -# exec -complete -c docker -f -n '__fish_docker_no_subcommand' -a exec -d 'Run a command in a running container' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -s d -l detach -d 'Detached mode: run command in the background' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -l detach-keys -d 'Override the key sequence for detaching a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -s e -l env -d 'Set environment variables' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -s i -l interactive -d 'Keep STDIN open even if not attached' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -l privileged -d 'Give extended privileges to the command' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -s t -l tty -d 'Allocate a pseudo-TTY' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -s u -l user -d 'Username or UID (format: [:])' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -s w -l workdir -d 'Working directory inside the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from exec' -a '(__fish_print_docker_containers running)' -d "Container" - -# export -complete -c docker -f -n '__fish_docker_no_subcommand' -a export -d 'Stream the contents of a container as a tar archive' -complete -c docker -A -f -n '__fish_seen_subcommand_from export' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from export' -s o -l output -d 'Write to a file, instead of STDOUT' -complete -c docker -A -f -n '__fish_seen_subcommand_from export' -a '(__fish_print_docker_containers all)' -d "Container" - -# history -complete -c docker -f -n '__fish_docker_no_subcommand' -a history -d 'Show the history of an image' -complete -c docker -A -f -n '__fish_seen_subcommand_from history' -l format -d 'Pretty-print images using a Go template' -complete -c docker -A -f -n '__fish_seen_subcommand_from history' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from history' -s H -l human -d 'Print sizes and dates in human readable format' -complete -c docker -A -f -n '__fish_seen_subcommand_from history' -l no-trunc -d "Don't truncate output" -complete -c docker -A -f -n '__fish_seen_subcommand_from history' -s q -l quiet -d 'Only show numeric IDs' -complete -c docker -A -f -n '__fish_seen_subcommand_from history' -a '(__fish_print_docker_images)' -d "Image" - -# images -complete -c docker -f -n '__fish_docker_no_subcommand' -a images -d 'List images' -complete -c docker -A -f -n '__fish_seen_subcommand_from images' -s a -l all -d 'Show all images (default hides intermediate images)' -complete -c docker -A -f -n '__fish_seen_subcommand_from images' -l digests -d 'Show digests' -complete -c docker -A -f -n '__fish_seen_subcommand_from images' -s f -l filter -d 'Filter output based on conditions provided' -complete -c docker -A -f -n '__fish_seen_subcommand_from images' -l format -d 'Pretty-print images using a Go template' -complete -c docker -A -f -n '__fish_seen_subcommand_from images' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from images' -l no-trunc -d "Don't truncate output" -complete -c docker -A -f -n '__fish_seen_subcommand_from images' -s q -l quiet -d 'Only show numeric IDs' -complete -c docker -A -f -n '__fish_seen_subcommand_from images' -a '(__fish_print_docker_repositories)' -d "Repository" - -# import -complete -c docker -f -n '__fish_docker_no_subcommand' -a import -d 'Create a new filesystem image from the contents of a tarball' -complete -c docker -A -f -n '__fish_seen_subcommand_from import' -s c -l change -d 'Apply Dockerfile instruction to the created image' -complete -c docker -A -f -n '__fish_seen_subcommand_from import' -s m -l message -d 'Set commit message for imported image' -complete -c docker -A -f -n '__fish_seen_subcommand_from import' -l help -d 'Print usage' - -# info -complete -c docker -f -n '__fish_docker_no_subcommand' -a info -d 'Display system-wide information' -complete -c docker -A -f -n '__fish_seen_subcommand_from info' -s f -l format -d 'Format the output using the given go template' -complete -c docker -A -f -n '__fish_seen_subcommand_from info' -l help -d 'Print usage' - -# inspect -complete -c docker -f -n '__fish_docker_no_subcommand' -a inspect -d 'Return low-level information on a container or image' -complete -c docker -A -f -n '__fish_seen_subcommand_from inspect' -s f -l format -d 'Format the output using the given go template.' -complete -c docker -A -f -n '__fish_seen_subcommand_from inspect' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from inspect' -s s -l size -d 'Display total file sizes if the type is container.' -complete -c docker -A -f -n '__fish_seen_subcommand_from inspect' -l type -d 'Return JSON for specified type' -complete -c docker -A -f -n '__fish_seen_subcommand_from inspect' -a '(__fish_print_docker_images)' -d "Image" -complete -c docker -A -f -n '__fish_seen_subcommand_from inspect' -a '(__fish_print_docker_containers all)' -d "Container" - -# kill -complete -c docker -f -n '__fish_docker_no_subcommand' -a kill -d 'Kill a running container' -complete -c docker -A -f -n '__fish_seen_subcommand_from kill' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from kill' -s s -l signal -d 'Signal to send to the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from kill' -a '(__fish_print_docker_containers running)' -d "Container" - -# load -complete -c docker -f -n '__fish_docker_no_subcommand' -a load -d 'Load an image from a tar archive' -complete -c docker -A -f -n '__fish_seen_subcommand_from load' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from load' -s i -l input -d 'Read from a tar archive file, instead of STDIN' -complete -c docker -A -f -n '__fish_seen_subcommand_from load' -s q -l quiet -d 'Suppress the load output' - -# login -complete -c docker -f -n '__fish_docker_no_subcommand' -a login -d 'Log in to a Docker registry server' -complete -c docker -A -f -n '__fish_seen_subcommand_from login' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from login' -s p -l password -d 'Password' -complete -c docker -A -f -n '__fish_seen_subcommand_from login' -l password-stdin -d 'Take the password from stdin' -complete -c docker -A -f -n '__fish_seen_subcommand_from login' -s u -l username -d 'Username' - -# logout -complete -c docker -f -n '__fish_docker_no_subcommand' -a logout -d 'Log out from a Docker registry server' - -# logs -complete -c docker -f -n '__fish_docker_no_subcommand' -a logs -d 'Fetch the logs of a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from logs' -s f -l follow -d 'Follow log output' -complete -c docker -A -f -n '__fish_seen_subcommand_from logs' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from logs' -s t -l timestamps -d 'Show timestamps' -complete -c docker -A -f -n '__fish_seen_subcommand_from logs' -l since -d 'Show logs since timestamp' -complete -c docker -A -f -n '__fish_seen_subcommand_from logs' -l tail -d 'Output the specified number of lines at the end of logs (defaults to all logs)' -complete -c docker -A -f -n '__fish_seen_subcommand_from logs' -a '(__fish_print_docker_containers running)' -d "Container" - -# port -complete -c docker -f -n '__fish_docker_no_subcommand' -a port -d 'Lookup the public-facing port that is NAT-ed to PRIVATE_PORT' -complete -c docker -A -f -n '__fish_seen_subcommand_from port' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from port' -a '(__fish_print_docker_containers running)' -d "Container" - -# pause -complete -c docker -f -n '__fish_docker_no_subcommand' -a pause -d 'Pause all processes within a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from pause' -a '(__fish_print_docker_containers running)' -d "Container" - -# ps -complete -c docker -f -n '__fish_docker_no_subcommand' -a ps -d 'List containers' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s a -l all -d 'Show all containers. Only running containers are shown by default.' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -l before -d 'Show only container created before Id or Name, include non-running ones.' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s f -l filter -d 'Provide filter values. Valid filters:' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s l -l latest -d 'Show only the latest created container, include non-running ones.' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s n -d 'Show n last created containers, include non-running ones.' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -l no-trunc -d "Don't truncate output" -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s q -l quiet -d 'Only display numeric IDs' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s s -l size -d 'Display total file sizes' -complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -l since -d 'Show only containers created since Id or Name, include non-running ones.' - -# pull -complete -c docker -f -n '__fish_docker_no_subcommand' -a pull -d 'Pull an image or a repository from a Docker registry server' -complete -c docker -A -f -n '__fish_seen_subcommand_from pull' -s a -l all-tags -d 'Download all tagged images in the repository' -complete -c docker -A -f -n '__fish_seen_subcommand_from pull' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from pull' -a '(__fish_print_docker_images)' -d "Image" -complete -c docker -A -f -n '__fish_seen_subcommand_from pull' -a '(__fish_print_docker_repositories)' -d "Repository" - -# push -complete -c docker -f -n '__fish_docker_no_subcommand' -a push -d 'Push an image or a repository to a Docker registry server' -complete -c docker -A -f -n '__fish_seen_subcommand_from push' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from push' -a '(__fish_print_docker_images)' -d "Image" -complete -c docker -A -f -n '__fish_seen_subcommand_from push' -a '(__fish_print_docker_repositories)' -d "Repository" - -# rename -complete -c docker -f -n '__fish_docker_no_subcommand' -a rename -d 'Rename an existing container' - -# restart -complete -c docker -f -n '__fish_docker_no_subcommand' -a restart -d 'Restart a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from restart' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from restart' -s t -l time -d 'Number of seconds to try to stop for before killing the container. Once killed it will then be restarted. Default is 10 seconds.' -complete -c docker -A -f -n '__fish_seen_subcommand_from restart' -a '(__fish_print_docker_containers running)' -d "Container" - -# rm -complete -c docker -f -n '__fish_docker_no_subcommand' -a rm -d 'Remove one or more containers' -complete -c docker -A -f -n '__fish_seen_subcommand_from rm' -s f -l force -d 'Force the removal of a running container (uses SIGKILL)' -complete -c docker -A -f -n '__fish_seen_subcommand_from rm' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from rm' -s l -l link -d 'Remove the specified link and not the underlying container' -complete -c docker -A -f -n '__fish_seen_subcommand_from rm' -s v -l volumes -d 'Remove the volumes associated with the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from rm' -a '(__fish_print_docker_containers stopped)' -d "Container" -complete -c docker -A -f -n '__fish_seen_subcommand_from rm' -s f -l force -a '(__fish_print_docker_containers all)' -d "Container" - -# rmi -complete -c docker -f -n '__fish_docker_no_subcommand' -a rmi -d 'Remove one or more images' -complete -c docker -A -f -n '__fish_seen_subcommand_from rmi' -s f -l force -d 'Force removal of the image' -complete -c docker -A -f -n '__fish_seen_subcommand_from rmi' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from rmi' -l no-prune -d 'Do not delete untagged parents' -complete -c docker -A -f -n '__fish_seen_subcommand_from rmi' -a '(__fish_print_docker_images)' -d "Image" - -# run -complete -c docker -f -n '__fish_docker_no_subcommand' -a run -d 'Run a command in a new container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s a -l attach -d 'Attach to STDIN, STDOUT or STDERR.' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l add-host -d 'Add a custom host-to-IP mapping (host:ip)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s c -l cpu-shares -d 'CPU shares (relative weight)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l cap-add -d 'Add Linux capabilities' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l cap-drop -d 'Drop Linux capabilities' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l cidfile -d 'Write the container ID to the file' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l cpuset -d 'CPUs in which to allow execution (0-3, 0,1)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s d -l detach -d 'Detached mode: run the container in the background and print the new container ID' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l device -d 'Add a host device to the container (e.g. --device=/dev/sdc:/dev/xvdc:rwm)' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l device-cgroup-rule -d 'Add a rule to the cgroup allowed devices list (e.g. --device-cgroup-rule="c 13:37 rwm")' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l dns -d 'Set custom DNS servers' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l dns-opt -d "Set custom DNS options (Use --dns-opt='' if you don't wish to set options)" -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l dns-search -d "Set custom DNS search domains (Use --dns-search=. if you don't wish to set the search domain)" -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s e -l env -d 'Set environment variables' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l entrypoint -d 'Overwrite the default ENTRYPOINT of the image' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l env-file -d 'Read in a line delimited file of environment variables' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l expose -d 'Expose a port or a range of ports (e.g. --expose=3300-3310) from the container without publishing it to your host' -complete -c docker -A -f -n '__fish_seen_subcommand_from create' -l group-add -d 'Add additional groups to run as' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s h -l hostname -d 'Container host name' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s i -l interactive -d 'Keep STDIN open even if not attached' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l ipc -d 'Default is to create a private IPC namespace (POSIX SysV IPC) for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l link -d 'Add link to another container in the form of :alias' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s m -l memory -d 'Memory limit (format: [], where unit = b, k, m or g)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l mac-address -d 'Container MAC address (e.g., 92:d0:c6:0a:29:33)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l memory-swap -d "Total memory usage (memory + swap), set '-1' to disable swap (format: [], where unit = b, k, m or g)" -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l mount -d 'Attach a filesystem mount to the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l name -d 'Assign a name to the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l net -d 'Set the Network mode for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s P -l publish-all -d 'Publish all exposed ports to random ports on the host interfaces' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s p -l publish -d "Publish a container's port to the host" -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l pid -d 'Default is to create a private PID namespace for the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l privileged -d 'Give extended privileges to this container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l read-only -d "Mount the container's root filesystem as read only" -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l restart -d 'Restart policy to apply when a container exits (no, on-failure[:max-retry], always)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l rm -d 'Automatically remove the container when it exits (incompatible with -d)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l security-opt -d 'Security Options' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l sig-proxy -d 'Proxy received signals to the process (non-TTY mode only). SIGCHLD, SIGSTOP, and SIGKILL are not proxied.' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l stop-signal -d 'Signal to kill a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s t -l tty -d 'Allocate a pseudo-TTY' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s u -l user -d 'Username or UID' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l tmpfs -d 'Mount tmpfs on a directory' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s v -l volume -d 'Bind mount a volume (e.g., from the host: -v /host:/container, from Docker: -v /container)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l volumes-from -d 'Mount volumes from the specified container(s)' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s w -l workdir -d 'Working directory inside the container' -complete -c docker -A -f -n '__fish_seen_subcommand_from run' -a '(__fish_print_docker_images)' -d "Image" - -# save -complete -c docker -f -n '__fish_docker_no_subcommand' -a save -d 'Save an image to a tar archive' -complete -c docker -A -f -n '__fish_seen_subcommand_from save' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from save' -s o -l output -d 'Write to an file, instead of STDOUT' -complete -c docker -A -f -n '__fish_seen_subcommand_from save' -a '(__fish_print_docker_images)' -d "Image" - -# search -complete -c docker -f -n '__fish_docker_no_subcommand' -a search -d 'Search for an image on the registry (defaults to the Docker Hub)' -complete -c docker -A -f -n '__fish_seen_subcommand_from search' -l automated -d 'Only show automated builds' -complete -c docker -A -f -n '__fish_seen_subcommand_from search' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from search' -l no-trunc -d "Don't truncate output" -complete -c docker -A -f -n '__fish_seen_subcommand_from search' -s s -l stars -d 'Only displays with at least x stars' - -# start -complete -c docker -f -n '__fish_docker_no_subcommand' -a start -d 'Start a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from start' -s a -l attach -d "Attach container's STDOUT and STDERR and forward all signals to the process" -complete -c docker -A -f -n '__fish_seen_subcommand_from start' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from start' -s i -l interactive -d "Attach container's STDIN" -complete -c docker -A -f -n '__fish_seen_subcommand_from start' -a '(__fish_print_docker_containers stopped)' -d "Container" - -# stats -complete -c docker -f -n '__fish_docker_no_subcommand' -a stats -d "Display a live stream of one or more containers' resource usage statistics" -complete -c docker -A -f -n '__fish_seen_subcommand_from stats' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from stats' -l no-stream -d 'Disable streaming stats and only pull the first result' -complete -c docker -A -f -n '__fish_seen_subcommand_from stats' -a '(__fish_print_docker_containers running)' -d "Container" - -# stop -complete -c docker -f -n '__fish_docker_no_subcommand' -a stop -d 'Stop a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from stop' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from stop' -s t -l time -d 'Number of seconds to wait for the container to stop before killing it. Default is 10 seconds.' -complete -c docker -A -f -n '__fish_seen_subcommand_from stop' -a '(__fish_print_docker_containers running)' -d "Container" - -# tag -complete -c docker -f -n '__fish_docker_no_subcommand' -a tag -d 'Tag an image into a repository' -complete -c docker -A -f -n '__fish_seen_subcommand_from tag' -s f -l force -d 'Force' -complete -c docker -A -f -n '__fish_seen_subcommand_from tag' -l help -d 'Print usage' - -# top -complete -c docker -f -n '__fish_docker_no_subcommand' -a top -d 'Lookup the running processes of a container' -complete -c docker -A -f -n '__fish_seen_subcommand_from top' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from top' -a '(__fish_print_docker_containers running)' -d "Container" - -#trust -complete -c docker -f -n '__fish_docker_no_subcommand' -a trust -d 'Manage trust on Docker images' -complete -c docker -A -f -n '__fish_seen_subcommand_from trust' -l help -d 'Print usage' - -#trust inspect -complete -c docker -A -f -n '__fish_docker_no_subcommand_trust' -a inspect -d 'Return low-level information about keys and signatures' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust inspect' -l pretty -d 'Print the information in a human friendly format' - -#trust key -complete -c docker -A -f -n '__fish_docker_no_subcommand_trust' -a key -d 'Manage keys for signing Docker images' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust key; and __fish_docker_subcommand_path_without generate load' -a generate -d 'Generate and load a signing key-pair' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust key load' -l dir -d 'Directory to generate key in, defaults to current directory' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust key; and __fish_docker_subcommand_path_without generate load' -a load -d 'Load a private key file for signing' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust key load' -l name -d 'Name for the loaded key (default "signer")' - -#trust revoke -complete -c docker -A -f -n '__fish_docker_no_subcommand_trust' -a revoke -d 'Remove trust for an image' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust revoke' -s y -l yes -d 'Do not prompt for confirmation' - -#trust sign -complete -c docker -A -f -n '__fish_docker_no_subcommand_trust' -a sign -d 'Sign an image' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust sign' -l local -d 'Sign a locally tagged image' - -#trust signer -complete -c docker -A -f -n '__fish_docker_no_subcommand_trust' -a signer -d 'Manage entities who can sign Docker images' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust signer; and __fish_docker_subcommand_path_without add remove' -a add -d 'Add a signer' -complete -c docker -A -f -n '__fish_docker_subcommand_path trust signer; and __fish_docker_subcommand_path_without add remove' -a remove -d 'remove a signer' - -# unpause -complete -c docker -f -n '__fish_docker_no_subcommand' -a unpause -d 'Unpause a paused container' -complete -c docker -A -f -n '__fish_seen_subcommand_from unpause' -a '(__fish_print_docker_containers running)' -d "Container" - -# version -complete -c docker -f -n '__fish_docker_no_subcommand' -a version -d 'Show the Docker version information' -complete -c docker -A -f -n '__fish_seen_subcommand_from version' -s f -l format -d 'Format the output using the given go template' -complete -c docker -A -f -n '__fish_seen_subcommand_from version' -l help -d 'Print usage' - -# wait -complete -c docker -f -n '__fish_docker_no_subcommand' -a wait -d 'Block until a container stops, then print its exit code' -complete -c docker -A -f -n '__fish_seen_subcommand_from wait' -l help -d 'Print usage' -complete -c docker -A -f -n '__fish_seen_subcommand_from wait' -a '(__fish_print_docker_containers running)' -d "Container" diff --git a/.config/fish/conf.d/define_aliases.fish b/.config/fish/conf.d/define_aliases.fish new file mode 100644 index 0000000..430de55 --- /dev/null +++ b/.config/fish/conf.d/define_aliases.fish @@ -0,0 +1,20 @@ +if status is-interactive + alias q exit + alias cl clear + alias ls lsd + alias rcp 'rsync -aP' + alias ssh-rm 'ssh-keygen -f ~/.ssh/known_hosts -R' + alias age-p 'age --armor --passphrase' + alias age-d 'age --decrypt --identity ~/.secrets/id_ed25519' + alias age-e 'age --armor --recipient (cat ~/.secrets/id_ed25519.pub)' + alias age-k 'age --decrypt --identity ~/.secrets/id_ed25519 ~/.secrets/age_keys.age' + alias kp 'keepassxc-cli show -k ~/.secrets/mjfs_keepass_key_file ~/.passwords/mjfs.kdbx' + alias fwl 'sudo firewall-cmd' + + switch (uname) + case Linux + alias sctl 'sudo systemctl' + alias uctl 'systemctl --user' + alias bctl bluetoothctl + end +end diff --git a/.config/fish/conf.d/define_global_variables.fish b/.config/fish/conf.d/define_global_variables.fish new file mode 100644 index 0000000..8c9e21f --- /dev/null +++ b/.config/fish/conf.d/define_global_variables.fish @@ -0,0 +1,34 @@ +set -gx EDITOR nvim +set -gx BROWSER firefox +set -gx DIFFPROG delta + +set -gx FZF_CTRL_T_COMMAND 'fd --type f --type d --hidden --exclude ".git/"' +set -gx FZF_DEFAULT_COMMAND 'fd --type f --type d --hidden --exclude ".git/"' +set -gx FZF_ALT_C_COMMAND 'fd --type d --hidden --exclude ".git/"' + +set -gx GOPATH $HOME/code/go +set -gx GOBIN $GOPATH/bin + +set -gx BUN_INSTALL $HOME/.bun + +set -gx LIBVIRT_DEFAULT_URI 'qemu:///system' + +if test (uname) = Darwin + set -gx ANDROID_HOME $HOME/Library/Android/Sdk +else + set -gx ANDROID_HOME $HOME/Android/Sdk +end + +set -gx PYENV_ROOT $HOME/.pyenv + +fish_add_path $GOBIN \ + $HOME/.local/bin \ + $HOME/.pub-cache/bin \ + $HOME/code/scripts \ + $HOME/code/flutter/bin \ + $HOME/.cargo/bin \ + $HOME/.dotnet/tools \ + $BUN_INSTALL/bin \ + $PYENV_ROOT/bin \ + $ANDROID_HOME/emulator \ + $ANDROID_HOME/platform-tools diff --git a/.config/fish/conf.d/fish_frozen_key_bindings.fish b/.config/fish/conf.d/fish_frozen_key_bindings.fish deleted file mode 100644 index dfed4d6..0000000 --- a/.config/fish/conf.d/fish_frozen_key_bindings.fish +++ /dev/null @@ -1,14 +0,0 @@ -# This file was created by fish when upgrading to version 4.3, to migrate -# the 'fish_key_bindings' variable from its old default scope (universal) -# to its new default scope (global). We recommend you delete this file -# and configure key bindings in ~/.config/fish/config.fish if needed. - -set --global fish_key_bindings fish_vi_key_bindings - -# Prior to version 4.3, fish shipped an event handler that runs -# `set --universal fish_key_bindings fish_default_key_bindings` -# whenever the fish_key_bindings variable is erased. -# This means that as long as any fish < 4.3 is still running on this system, -# we cannot complete the migration. -# As a workaround, erase the universal variable at every shell startup. -set --erase --universal fish_key_bindings diff --git a/.config/fish/conf.d/fish_frozen_theme.fish b/.config/fish/conf.d/fish_frozen_theme.fish index 72f87a6..3daa001 100644 --- a/.config/fish/conf.d/fish_frozen_theme.fish +++ b/.config/fish/conf.d/fish_frozen_theme.fish @@ -1,46 +1,38 @@ -# This file was created by fish when upgrading to version 4.3, to migrate -# theme variables from universal to global scope. -# Don't edit this file, as it will be written by the web-config tool (`fish_config`). -# To customize your theme, delete this file and see -# help interactive#syntax-highlighting -# or -# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING -# for appropriate commands to add to ~/.config/fish/config.fish instead. -# See also the release notes for fish 4.3.0 (run `help relnotes`). - -set --global fish_color_autosuggestion 727169 brblack -set --global fish_color_cancel -r -set --global fish_color_command 957FB8 magenta -set --global fish_color_comment 727169 brblack -set --global fish_color_cwd green -set --global fish_color_cwd_root red -set --global fish_color_end FF9E64 brred -set --global fish_color_error C34043 red -set --global fish_color_escape D27E99 brmagenta -set --global fish_color_history_current --bold -set --global fish_color_host normal -set --global fish_color_host_remote yellow -set --global fish_color_keyword D27E99 brmagenta -set --global fish_color_normal DCD7BA normal -set --global fish_color_operator 7AA89F cyan -set --global fish_color_param DCD7BA normal -set --global fish_color_quote C0A36E yellow -set --global fish_color_redirection 76946A green -set --global fish_color_search_match --background=2D4F67 --background=brcyan -set --global fish_color_selection --background=2D4F67 --background=brcyan -set --global fish_color_status red -set --global fish_color_user brgreen -set --global fish_color_valid_path --underline -set --global fish_pager_color_background -set --global fish_pager_color_completion DCD7BA normal -set --global fish_pager_color_description 727169 brblack -set --global fish_pager_color_prefix 957FB8 magenta -set --global fish_pager_color_progress 727169 brblack -set --global fish_pager_color_secondary_background -set --global fish_pager_color_secondary_completion -set --global fish_pager_color_secondary_description -set --global fish_pager_color_secondary_prefix -set --global fish_pager_color_selected_background -r -set --global fish_pager_color_selected_completion -set --global fish_pager_color_selected_description -set --global fish_pager_color_selected_prefix +if status is-interactive + set --global fish_color_autosuggestion 727169 brblack + set --global fish_color_cancel -r + set --global fish_color_command 957FB8 magenta + set --global fish_color_comment 727169 brblack + set --global fish_color_cwd green + set --global fish_color_cwd_root red + set --global fish_color_end FF9E64 brred + set --global fish_color_error C34043 red + set --global fish_color_escape D27E99 brmagenta + set --global fish_color_history_current --bold + set --global fish_color_host normal + set --global fish_color_host_remote yellow + set --global fish_color_keyword D27E99 brmagenta + set --global fish_color_normal DCD7BA normal + set --global fish_color_operator 7AA89F cyan + set --global fish_color_param DCD7BA normal + set --global fish_color_quote C0A36E yellow + set --global fish_color_redirection 76946A green + set --global fish_color_search_match --background=2D4F67 --background=brcyan + set --global fish_color_selection --background=2D4F67 --background=brcyan + set --global fish_color_status red + set --global fish_color_user brgreen + set --global fish_color_valid_path --underline + set --global fish_pager_color_background + set --global fish_pager_color_completion DCD7BA normal + set --global fish_pager_color_description 727169 brblack + set --global fish_pager_color_prefix 957FB8 magenta + set --global fish_pager_color_progress 727169 brblack + set --global fish_pager_color_secondary_background + set --global fish_pager_color_secondary_completion + set --global fish_pager_color_secondary_description + set --global fish_pager_color_secondary_prefix + set --global fish_pager_color_selected_background -r + set --global fish_pager_color_selected_completion + set --global fish_pager_color_selected_description + set --global fish_pager_color_selected_prefix +end diff --git a/.config/fish/conf.d/import_sources.fish b/.config/fish/conf.d/import_sources.fish new file mode 100644 index 0000000..e5a4f27 --- /dev/null +++ b/.config/fish/conf.d/import_sources.fish @@ -0,0 +1,20 @@ +# ASDF config start +if test -z $ASDF_DATA_DIR + set _asdf_shims "$HOME/.asdf/shims" +else + set _asdf_shims "$ASDF_DATA_DIR/shims" +end + +fish_add_path $_asdf_shims +set --erase _asdf_shims +# ASDF config end + +test -e /opt/homebrew/bin/brew +and /opt/homebrew/bin/brew shellenv | source - + +if status is-interactive + command -q zoxide; and zoxide init fish | source + command -q fzf; and fzf --fish | source +end + +command -q pyenv; and pyenv init - | source diff --git a/.config/fish/functions/fish_user_key_bindings.fish b/.config/fish/conf.d/key_binds.fish similarity index 56% rename from .config/fish/functions/fish_user_key_bindings.fish rename to .config/fish/conf.d/key_binds.fish index 76a368e..3b9b7b5 100644 --- a/.config/fish/functions/fish_user_key_bindings.fish +++ b/.config/fish/conf.d/key_binds.fish @@ -1,11 +1,12 @@ -function fish_user_key_bindings +if status is-interactive + set --global fish_key_bindings fish_vi_key_bindings + bind --mode insert comma,a 'ssh_add; commandline -f repaint' bind --mode insert .,comma 'nvim; commandline -f repaint' - bind --mode insert comma,s 'sysz; commandline -f repaint' bind --mode insert comma,z 'zi; commandline -f repaint' - bind --mode insert comma,t 'fzf-file-widget' - bind --mode insert comma,r 'fzf-history-widget' - bind --mode insert comma,c 'fzf-cd-widget' + bind --mode insert comma,f fzf-file-widget + bind --mode insert comma,r fzf-history-widget + bind --mode insert comma,c fzf-cd-widget bind --mode insert comma,l 'clear; commandline -f repaint' bind --mode insert comma,o 'opencode; commandline -f repaint' end diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 3ecc33b..e69de29 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -1,13 +0,0 @@ -function configure_fish - # Determine OS - set uname (uname) - - # Begin profile init - # (These functions are defined in the functions/ directory.) - define_global_variables - import_sources $uname - define_aliases $uname - ssh_agent_startup -end - -configure_fish diff --git a/.config/fish/fish_plugins b/.config/fish/fish_plugins deleted file mode 100644 index d1622d1..0000000 --- a/.config/fish/fish_plugins +++ /dev/null @@ -1,3 +0,0 @@ -jorgebucaran/fisher -jethrokuan/z -mitchell/swim.fish diff --git a/.config/fish/functions/aisearch.fish b/.config/fish/functions/aisearch.fish deleted file mode 100644 index 9b47022..0000000 --- a/.config/fish/functions/aisearch.fish +++ /dev/null @@ -1,4 +0,0 @@ -function aisearch --wraps aichat - set -lx AICHAT_PATCH_GEMINI_CHAT_COMPLETIONS '{".*":{"body":{"tools":[{"google_search":{}}]}}}' - aichat -r search -s $argv -end diff --git a/.config/fish/functions/back.fish b/.config/fish/functions/back.fish deleted file mode 100644 index c507b1d..0000000 --- a/.config/fish/functions/back.fish +++ /dev/null @@ -1,6 +0,0 @@ -function back -d 'A shortcut for backgrounding a command using nohup and named log file' - set log_name (string join _ $argv) - - echo "log file: $log_name.out" - nohup $argv >"$log_name.out" & -end diff --git a/.config/fish/functions/btre.fish b/.config/fish/functions/btre.fish deleted file mode 100644 index 9f885f7..0000000 --- a/.config/fish/functions/btre.fish +++ /dev/null @@ -1,34 +0,0 @@ -function btre -a device -d 'Reconnect to a known bluetooth device' - set -l devices CC:98:8B:3E:6B:9D 00:1B:66:E3:07:3A - set -l index 1 - - switch device - case sony - set index 1 - return - case senn - set index 2 - return - case '*' - test -n "$device"; and set index $device - end - - bluetoothctl power on - - and bluetoothctl remove $devices[$index] - - echo \n"--- Press enter to continue ---"\n - bluetoothctl scan on & - read -P '' - - bluetoothctl pair $devices[$index] - or return $status - read -p 'echo \n"--- Press enter to continue ---"\n' - - bluetoothctl trust $devices[$index] - and bluetoothctl connect $devices[$index] - or return $status - read -p 'echo \n"--- Press enter to continue ---"\n' - - kill %1 -end diff --git a/.config/fish/functions/define_aliases.fish b/.config/fish/functions/define_aliases.fish deleted file mode 100644 index 4cf04a5..0000000 --- a/.config/fish/functions/define_aliases.fish +++ /dev/null @@ -1,60 +0,0 @@ -function define_aliases -a uname -d 'Defines aliases for commonly used commands' - alias q exit - alias cl clear - alias ls lsd - alias rcp 'rsync -aP' - alias vg vagrant - alias tf terraform - alias gco 'gcloud compute' - alias tocb 'xclip -in -selection clipboard' - alias fromcb 'xclip -out -selection clipboard' - alias ssh-rm 'ssh-keygen -f ~/.ssh/known_hosts -R' - alias age-p 'age --armor --passphrase' - alias age-d 'age --decrypt --identity ~/.secrets/id_ed25519' - alias age-e 'age --armor --recipient (cat ~/.secrets/id_ed25519.pub)' - alias age-k 'age --decrypt --identity ~/.secrets/id_ed25519 ~/.secrets/age_keys.age' - alias kp 'keepassxc-cli show -k ~/.secrets/mjfs_keepass_key_file ~/.passwords/mjfs.kdbx' - alias bb 'bun --bun' - alias pn pnpm - alias nv 'neovide --fork; and clear' - alias hx helix - alias fwl 'sudo firewall-cmd' - alias o 'opencode run --thinking' - - switch "$uname" - case Linux - alias goland 'command goland' - alias rider 'command rider' - alias webstorm 'command webstorm' - alias sctl 'sudo systemctl' - alias uctl 'systemctl --user' - alias bctl bluetoothctl - case Darwin - alias goland 'open -a Goland' - alias rider 'open -a Rider' - alias webstorm 'open -a Webstorm' - - alias pkm 'brew search' - alias pkmi 'brew install' - alias pkmf 'brew update' - alias pkmu 'brew upgrade' - alias pkmr 'brew uninstall' - end - - # Linux distro specific aliases below - - #set -l distro - - #for line in (cat /etc/os-release) - # set -l items (string split --max 1 '=' $line) - - # if test $items[1] = 'ID' - # set distro $items[2] - # end - #end - - #switch "$distro" - # case 'arch' - # case 'debian' - #end -end diff --git a/.config/fish/functions/define_global_variables.fish b/.config/fish/functions/define_global_variables.fish deleted file mode 100644 index 1a2a6ae..0000000 --- a/.config/fish/functions/define_global_variables.fish +++ /dev/null @@ -1,41 +0,0 @@ -function define_global_variables -d 'Defines all and exclusively globally exported variables' - set -gx AWS_SDK_LOAD_CONFIG true - - set -gx DOTNET_ENVIRONMENT Development - set -gx DOTNET_CLI_TELEMETRY_OPTOUT true - - set -gx EDITOR nvim - set -gx BROWSER firefox - set -gx DIFFPROG delta - - set -gx FZF_CTRL_T_COMMAND 'fd --type f --type d --hidden --exclude ".git/"' - set -gx FZF_DEFAULT_COMMAND 'fd --type f --type d --hidden --exclude ".git/"' - set -gx FZF_ALT_C_COMMAND 'fd --type d --hidden --exclude ".git/"' - - set -gx GOPATH $HOME/code/go - set -gx GOBIN $GOPATH/bin - - set -gx BUN_INSTALL $HOME/.bun - - set -gx LIBVIRT_DEFAULT_URI 'qemu:///system' - - if test (uname) = "Darwin" - set -gx ANDROID_HOME $HOME/Library/Android/Sdk - else - set -gx ANDROID_HOME $HOME/Android/Sdk - end - - set -gx PYENV_ROOT $HOME/.pyenv - - fish_add_path $GOBIN \ - $HOME/.local/bin \ - $HOME/.pub-cache/bin \ - $HOME/code/scripts \ - $HOME/code/flutter/bin \ - $HOME/.cargo/bin \ - $HOME/.dotnet/tools \ - $BUN_INSTALL/bin \ - $PYENV_ROOT/bin \ - $ANDROID_HOME/emulator \ - $ANDROID_HOME/platform-tools -end diff --git a/.config/fish/functions/dm_env.fish b/.config/fish/functions/dm_env.fish deleted file mode 100644 index 2a026d6..0000000 --- a/.config/fish/functions/dm_env.fish +++ /dev/null @@ -1,3 +0,0 @@ -function dm-env -d 'Shortcut for setting your shell env for a docker-machine' - eval (docker-machine env $argv) -end diff --git a/.config/fish/functions/do.fish b/.config/fish/functions/do.fish deleted file mode 100644 index 843c01d..0000000 --- a/.config/fish/functions/do.fish +++ /dev/null @@ -1,9 +0,0 @@ -function do -d 'Repeat the command for each given argument' - set command (string split ' ' $argv[1]) - and set args $argv[2..] - or return 1 - - for arg in $args - $command $arg - end -end diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish index fc2721d..98b7fc7 100644 --- a/.config/fish/functions/fish_prompt.fish +++ b/.config/fish/functions/fish_prompt.fish @@ -1,6 +1,5 @@ function fish_prompt --description 'Write out the prompt' set -l last_status $status - set -l color_cwd set -l suffix set -l user_prefix set -l git_branch @@ -19,83 +18,34 @@ function fish_prompt --description 'Write out the prompt' end # Set cwd color and prompt suffix, based on current user and fish_bind_mode. - switch "$USER" - case root toor - if set -q fish_color_cwd_root - set color_cwd $fish_color_cwd_root - else - set color_cwd $fish_color_cwd - end - - set suffix '#' - - if test $fish_key_bindings = 'fish_vi_key_bindings' - switch "$fish_bind_mode" - case 'insert' - set suffix (set_color brblue) $suffix (set_color normal) - case 'visual' - set suffix (set_color bryellow) $suffix (set_color normal) - end - end - case '*' - set color_cwd $fish_color_cwd - - set suffix '>' - - if test $fish_key_bindings = 'fish_vi_key_bindings' - switch "$fish_bind_mode" - case 'insert' - set suffix (set_color brblue) $suffix (set_color normal) - case 'default' - set suffix '^' - case 'visual' - set suffix (set_color bryellow) 'v' (set_color normal) - end - end + set suffix '>' + if test $fish_key_bindings = fish_vi_key_bindings + switch "$fish_bind_mode" + case insert + set suffix (set_color brblue) $suffix (set_color normal) + case default + set suffix '<' + case visual + set suffix (set_color bryellow) v (set_color normal) + end end - # Set user_prefix, based on whether or not inside of ssh session. if test -n "$SSH_CLIENT" set user_prefix $USER @ (prompt_hostname) ' ' end - # Show current git branch, based on git commands only. - if git status >/dev/null 2>&1 - set -l branch_color green - set -l git_status (git status) - - if string match 'Changes not staged for commit:' $git_status >/dev/null - or string match 'Untracked files:' $git_status >/dev/null - set branch_color red - else if string match 'Changes to be committed:' $git_status >/dev/null - set branch_color yellow + # Show current git branch. + if set -l cur_branch (git branch --show-current 2>/dev/null) + if test -z "$cur_branch" + set cur_branch detached end - set -l cur_branch (string sub -s 3 (string match -r '^\* .*$' (git branch))) - if string match -q '(HEAD detached*' $cur_branch - set cur_branch 'detached' - end - - if test -n "$cur_branch" - set -l cur_branch_len (string length $cur_branch) - if test $cur_branch_len -gt 21 - set -l sub_str (string sub -l 18 $cur_branch) - set cur_branch "$sub_str..." - end - end - - if string match 'Your branch is ahead of*' $git_status >/dev/null - set cur_branch $cur_branch \u21A5 - else if string match 'Your branch is behind*' $git_status >/dev/null - set cur_branch $cur_branch \u21A7 - end - - set git_branch ' on ' (set_color $branch_color) $cur_branch (set_color normal) + set git_branch ' on ' (set_color $fish_color_cwd) $cur_branch (set_color normal) end # Combine all prompt variables - set -l cwd (set_color $color_cwd) (prompt_pwd) (set_color normal) + set -l cwd (set_color $fish_color_cwd) (prompt_pwd) (set_color normal) set -l top_prompt $cwd $git_branch set -l bottom_prompt $user_prefix $jobs_num $exit_code $suffix ' ' diff --git a/.config/fish/functions/fish_right_prompt.fish b/.config/fish/functions/fish_right_prompt.fish index f46baf0..d505136 100644 --- a/.config/fish/functions/fish_right_prompt.fish +++ b/.config/fish/functions/fish_right_prompt.fish @@ -1,18 +1,12 @@ # Some functions borrowed from bobthefish theme (https://github.com/oh-my-fish/theme-bobthefish). # Copyright (c) 2013-2014 Justin Hileman. -# -# You can override some default right prompt options in your config.fish: -# set -g theme_date_format "+%a %H:%M" function __bobthefish_cmd_duration -S -d 'Show command duration' - [ "$theme_display_cmd_duration" = "no" ] - and return - [ -z "$CMD_DURATION" -o "$CMD_DURATION" -lt 100 ] and return if [ "$CMD_DURATION" -lt 5000 ] - echo -ns $CMD_DURATION 'ms' + echo -ns $CMD_DURATION ms else if [ "$CMD_DURATION" -lt 60000 ] __bobthefish_pretty_ms $CMD_DURATION s else if [ "$CMD_DURATION" -lt 3600000 ] @@ -26,8 +20,7 @@ function __bobthefish_cmd_duration -S -d 'Show command duration' set_color $fish_color_normal set_color $fish_color_autosuggestion - [ "$theme_display_date" = "no" ] - or echo -ns ' ' $__bobthefish_left_arrow_glyph + echo -ns ' ' $__bobthefish_left_arrow_glyph end function __bobthefish_pretty_ms -S -a ms -a interval -d 'Millisecond formatting for humans' @@ -44,28 +37,13 @@ function __bobthefish_pretty_ms -S -a ms -a interval -d 'Millisecond formatting set scale 2 end - switch $FISH_VERSION - case 2.0.\* 2.1.\* 2.2.\* 2.3.\* - # Fish 2.3 and lower doesn't know about the -s argument to math. - math "scale=$scale;$ms/$interval_ms" | string replace -r '\\.?0*$' $interval - case 2.\* - # Fish 2.x always returned a float when given the -s argument. - math -s$scale "$ms/$interval_ms" | string replace -r '\\.?0*$' $interval - case \* - math -s$scale "$ms/$interval_ms" - echo -ns $interval - end + math -s$scale "$ms/$interval_ms" + echo -ns $interval end function __bobthefish_timestamp -S -d 'Show the current timestamp' - [ "$theme_display_date" = "no" ] - and return - - set -q theme_date_format - or set -l theme_date_format "+%c" - echo -n ' ' - date $theme_date_format + date "+%c" end function fish_right_prompt -d 'bobthefish is all about the right prompt' diff --git a/.config/fish/functions/import_sources.fish b/.config/fish/functions/import_sources.fish deleted file mode 100644 index 222d6ac..0000000 --- a/.config/fish/functions/import_sources.fish +++ /dev/null @@ -1,24 +0,0 @@ -function import_sources -a uname -d 'Loads any additional fish files needed at init.' - test -f ~/.asdf/plugins/dotnet-core/set-dotnet-home.fish; and source ~/.asdf/plugins/dotnet-core/set-dotnet-home.fish - - # ASDF configuration code - if test -z $ASDF_DATA_DIR - set _asdf_shims "$HOME/.asdf/shims" - else - set _asdf_shims "$ASDF_DATA_DIR/shims" - end - - fish_add_path $_asdf_shims - set --erase _asdf_shims - - test -e /opt/homebrew/bin/brew - and /opt/homebrew/bin/brew shellenv | source - - - command -q starship; and starship init fish | source - command -q zoxide; and zoxide init fish | source - command -q fzf; and fzf --fish | source - command -q pyenv; and pyenv init - | source - - # The next line updates PATH for the Google Cloud SDK. - # if test -f '/Users/m/Documents/google-cloud-sdk/path.fish.inc'; source '/Users/m/Documents/google-cloud-sdk/path.fish.inc'; end -end diff --git a/.config/fish/functions/pastoggle.fish b/.config/fish/functions/pastoggle.fish deleted file mode 100644 index c7f3075..0000000 --- a/.config/fish/functions/pastoggle.fish +++ /dev/null @@ -1,23 +0,0 @@ -function pastoggle -d 'Toggle the pulseaudio server between pc.lan and laptop.lan' - set -l host 'pc.lan' - set -l remote 'laptop.lan' - set -l config $HOME/.config/pulse/client.conf - - if test (hostname) = 'm-laptop' - set host 'laptop.lan' - set remote 'pc.lan' - end - - ssh $remote true - or return $status - - if test -f "$config" - rm $config - and systemctl --user restart pulseaudio.service - and ssh $remote "echo \"default-server = $host\" >$config; and systemctl --user restart pulseaudio.service" - else - ssh $remote "rm $config; and systemctl --user restart pulseaudio.service" - and echo "default-server = $remote" >$config - and systemctl --user restart pulseaudio.service - end -end diff --git a/.config/fish/functions/pkm.fish b/.config/fish/functions/pkm.fish deleted file mode 100644 index 6a548ac..0000000 --- a/.config/fish/functions/pkm.fish +++ /dev/null @@ -1,78 +0,0 @@ -function pkm -a command -d 'Shortcuts for pacman and apt' - set -l distro - - for line in (cat /etc/os-release) - set -l items (string split --max 1 '=' $line) - - if test $items[1] = ID - set distro $items[2] - break - end - end - - set -l pkm - - switch $distro - case arch - if command -q pikaur - _pacman_commander pikaur $argv - else - _pacman_commander 'sudo pacman' $argv - end - case debian - _apt_commander 'sudo apt' $argv - end -end - -function _pacman_commander -a pkm command - set -l args $argv[3..] - set pkm (string split ' ' $pkm) - - switch $command - case i install - $pkm --sync $args - case f fetch - argparse r/reflector -- $args - - sudo true - - if set -q _flag_reflector - reflector --latest 50 --fastest 3 --sort age --protocol https --thread 4 | - sudo tee /etc/pacman.d/mirrorlist - end - - and $pkm --sync --refresh - case u update - $pkm --sync --sysupgrade $args - and sudo env DIFFPROG='nvim -d' checkservices - case r remove - $pkm --remove --recursive --unneeded $args - case s search - $pkm $args - case '*' - $pkm $command $args - end -end - -function _apt_commander -a pkm command - set -l args $argv[3..] - set pkm (string split ' ' $pkm) - - switch $command - case i install - $pkm install $args - case f fetch - $pkm update - case u update - $pkm upgrade $args - and $pkm autoremove - and $pkm autoclean - case r remove - $pkm purge $args - and $pkm autoremove - case s search - $pkm search $args - case '*' - $pkm $command $args - end -end diff --git a/.config/fish/functions/push.fish b/.config/fish/functions/push.fish deleted file mode 100644 index 4813caf..0000000 --- a/.config/fish/functions/push.fish +++ /dev/null @@ -1,25 +0,0 @@ -function push -a message -d 'Send a push notification to your phone via pushover (optional delay as second arg)' - argparse 'u/url=' 'p/priority=' -- $argv - - set -l host (cat /etc/hostname) - - if test -z "$_flag_p" - set _flag_p '0' - end - - set payload \ - "{ - \"token\": \"$pushover_token\", - \"user\": \"$pushover_user\", - \"title\": \"Push from $host\", - \"url\": \"$_flag_u\", - \"priority\": $_flag_p, - \"message\": \"$message\" -}" - - curl \ - -X POST \ - -H 'Content-Type: application/json' \ - -d "$payload" \ - https://api.pushover.net/1/messages.json -end diff --git a/.config/fish/functions/push_tasks.fish b/.config/fish/functions/push_tasks.fish deleted file mode 100644 index d967cbd..0000000 --- a/.config/fish/functions/push_tasks.fish +++ /dev/null @@ -1,8 +0,0 @@ -function push_tasks -d 'Push tasks as a notification to your phone' - set tasks (task +READY export | - jq 'sort_by(.urgency) | - reverse | - map(@text "\(.description)\nLink: \(.link)\nWiki: http://wiki.m/\(.wiki)\nDue: \(.due)") | - join("\n\n")') - send_push $tasks -end diff --git a/.config/fish/functions/rebar.fish b/.config/fish/functions/rebar.fish deleted file mode 100644 index 72d7056..0000000 --- a/.config/fish/functions/rebar.fish +++ /dev/null @@ -1,5 +0,0 @@ -function rebar - pkill -fi polybar; and pkill -fi -9 polybar - bspc config top_padding -10 - nohup polybar m-bar &> /dev/null & disown -end diff --git a/.config/fish/functions/redisco.fish b/.config/fish/functions/redisco.fish deleted file mode 100644 index f252dfa..0000000 --- a/.config/fish/functions/redisco.fish +++ /dev/null @@ -1,20 +0,0 @@ -function redisco - set -l to_kill discord - - if test -n "$argv" - set to_kill $argv - end - - pgrep -fia $to_kill - or return - - read -P 'continue? [Y/n]> ' -l confirm - - if test "$confirm" = 'n' - return - end - - pkill -fi $to_kill - - nohup $to_kill &> /dev/null & disown -end diff --git a/.config/fish/functions/refresh.fish b/.config/fish/functions/refresh.fish deleted file mode 100644 index 22de56b..0000000 --- a/.config/fish/functions/refresh.fish +++ /dev/null @@ -1,7 +0,0 @@ -function refresh - while true - sleep 1 - clear - $argv - end -end diff --git a/.config/fish/functions/repeat.fish b/.config/fish/functions/repeat.fish deleted file mode 100644 index aca5df5..0000000 --- a/.config/fish/functions/repeat.fish +++ /dev/null @@ -1,5 +0,0 @@ -function repeat -a count -d 'Repeat the given action the given number of times' - for i in (seq $count) - $argv[2..-1] - end -end diff --git a/.config/fish/functions/start_x_at_login.fish b/.config/fish/functions/start_x_at_login.fish deleted file mode 100644 index 3b77bc6..0000000 --- a/.config/fish/functions/start_x_at_login.fish +++ /dev/null @@ -1,7 +0,0 @@ -function start_x_at_login - if status is-login - if test -z "$DISPLAY" -a "$XDG_VTNR" = 1 - startx -- -keeptty - end - end -end diff --git a/.config/fish/functions/toglpulse.fish b/.config/fish/functions/toglpulse.fish deleted file mode 100644 index ca47f3e..0000000 --- a/.config/fish/functions/toglpulse.fish +++ /dev/null @@ -1,14 +0,0 @@ -function toglpulse - killall slack Discord DiscordCanary - - if test -e ~/.config/pulse/client.conf - rm -rf ~/.config/pulse/client.conf - systemctl --user start pipewire.socket - rebar - else - killall easyeffects pavucontrol; or killall -9 easyeffects pavucontrol - echo "default-server = 192.168.1.155" >~/.config/pulse/client.conf - systemctl --user stop pipewire.socket pipewire pipewire-pulse wireplumber - rebar - end -end diff --git a/.config/fish/functions/vban.fish b/.config/fish/functions/vban.fish deleted file mode 100644 index f8514b8..0000000 --- a/.config/fish/functions/vban.fish +++ /dev/null @@ -1,4 +0,0 @@ -function vban -d 'Default VBAN startup script' - tmux new -s vban vban_emitter --ipaddress=192.168.1.155 --port=6980 --streamname=Main --backend=pulseaudio --device=alsa_output.pci-0000_05_00.6.analog-stereo.monitor - or tmux attach-session -t vban -end diff --git a/fish_universal_vars.fish b/fish_universal_vars.fish deleted file mode 100644 index c9d027a..0000000 --- a/fish_universal_vars.fish +++ /dev/null @@ -1,35 +0,0 @@ -set -l foreground DCD7BA normal -set -l selection 2D4F67 brcyan -set -l comment 727169 brblack -set -l red C34043 red -set -l orange FF9E64 brred -set -l yellow C0A36E yellow -set -l green 76946A green -set -l purple 957FB8 magenta -set -l cyan 7AA89F cyan -set -l pink D27E99 brmagenta - -# Syntax Highlighting Colors -set -U fish_color_normal $foreground -set -U fish_color_command $purple -set -U fish_color_keyword $pink -set -U fish_color_quote $yellow -set -U fish_color_redirection $green -set -U fish_color_end $orange -set -U fish_color_error $red -set -U fish_color_param $foreground -set -U fish_color_comment $comment -set -U fish_color_selection --background=$selection -set -U fish_color_search_match --background=$selection -set -U fish_color_operator $cyan -set -U fish_color_escape $pink -set -U fish_color_autosuggestion $comment - -# Completion Pager Colors -set -U fish_pager_color_progress $comment -set -U fish_pager_color_prefix $purple -set -U fish_pager_color_completion $foreground -set -U fish_pager_color_description $comment - -# Vi key bindings -set -U fish_key_bindings fish_vi_key_bindings diff --git a/sync b/sync index 265d6a2..be348b1 100755 --- a/sync +++ b/sync @@ -15,8 +15,6 @@ function main and sync_terminal_env - and set_fish_universal_vars - and if test -n "$_flag_i" set_color normal log 'Installing Neovim plugins' @@ -104,10 +102,6 @@ function sync_git_config git config --global user.email m@mjfs.us end -function set_fish_universal_vars - source ./fish_universal_vars.fish -end - function clean_up_tmp_space -a cwd start_dir tmp_dir if test ! "$cwd" = dotfiles cd $start_dir From 2f137cef36e592390ac78c444a4f8aa70a2c3185 Mon Sep 17 00:00:00 2001 From: mitchell Date: Mon, 4 May 2026 19:16:48 -0400 Subject: [PATCH 03/27] feat: re-add fish prompt git status colors and sync indicators --- .config/fish/functions/fish_prompt.fish | 30 ++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish index 98b7fc7..abced9e 100644 --- a/.config/fish/functions/fish_prompt.fish +++ b/.config/fish/functions/fish_prompt.fish @@ -35,13 +35,37 @@ function fish_prompt --description 'Write out the prompt' set user_prefix $USER @ (prompt_hostname) ' ' end - # Show current git branch. - if set -l cur_branch (git branch --show-current 2>/dev/null) + # Show current git branch, based on git commands only. + if set -l git_status (git status 2>/dev/null) + set -l branch_color green + + if string match 'Changes not staged for commit:' $git_status >/dev/null + or string match 'Untracked files:' $git_status >/dev/null + set branch_color red + else if string match 'Changes to be committed:' $git_status >/dev/null + set branch_color yellow + end + + set -l cur_branch (git branch --show-current) if test -z "$cur_branch" set cur_branch detached end - set git_branch ' on ' (set_color $fish_color_cwd) $cur_branch (set_color normal) + if test -n "$cur_branch" + set -l cur_branch_len (string length $cur_branch) + if test $cur_branch_len -gt 21 + set -l sub_str (string sub -l 18 $cur_branch) + set cur_branch "$sub_str..." + end + end + + if string match 'Your branch is ahead of*' $git_status >/dev/null + set cur_branch $cur_branch \u21A5 + else if string match 'Your branch is behind*' $git_status >/dev/null + set cur_branch $cur_branch \u21A7 + end + + set git_branch ' on ' (set_color $branch_color) $cur_branch (set_color normal) end # Combine all prompt variables From e984a0dc4028482e0b2da483c16b45fa797c3013 Mon Sep 17 00:00:00 2001 From: mitchell Date: Thu, 11 Jun 2026 18:38:00 -0400 Subject: [PATCH 04/27] feat(dotfiles): add pnpm support, virtualization aliases, and ssh agent hook - Add aliases for virt-viewer, virt-install, and virsh - Move firewall-cmd alias to Linux-specific block - Update fish_add_path to explicitly use --global scope --- .config/fish/conf.d/define_aliases.fish | 5 ++++- .config/fish/conf.d/define_global_variables.fish | 4 +++- .config/fish/conf.d/import_sources.fish | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.config/fish/conf.d/define_aliases.fish b/.config/fish/conf.d/define_aliases.fish index 430de55..0ffc08b 100644 --- a/.config/fish/conf.d/define_aliases.fish +++ b/.config/fish/conf.d/define_aliases.fish @@ -9,12 +9,15 @@ if status is-interactive alias age-e 'age --armor --recipient (cat ~/.secrets/id_ed25519.pub)' alias age-k 'age --decrypt --identity ~/.secrets/id_ed25519 ~/.secrets/age_keys.age' alias kp 'keepassxc-cli show -k ~/.secrets/mjfs_keepass_key_file ~/.passwords/mjfs.kdbx' - alias fwl 'sudo firewall-cmd' switch (uname) case Linux alias sctl 'sudo systemctl' alias uctl 'systemctl --user' alias bctl bluetoothctl + alias fwl 'sudo firewall-cmd' + alias vv 'virt-viewer' + alias vi 'virt-install' + alias vs 'virsh' end end diff --git a/.config/fish/conf.d/define_global_variables.fish b/.config/fish/conf.d/define_global_variables.fish index 8c9e21f..28ddab7 100644 --- a/.config/fish/conf.d/define_global_variables.fish +++ b/.config/fish/conf.d/define_global_variables.fish @@ -10,6 +10,7 @@ set -gx GOPATH $HOME/code/go set -gx GOBIN $GOPATH/bin set -gx BUN_INSTALL $HOME/.bun +set -gx PNPM_HOME $HOME/.local/share/pnpm set -gx LIBVIRT_DEFAULT_URI 'qemu:///system' @@ -21,7 +22,7 @@ end set -gx PYENV_ROOT $HOME/.pyenv -fish_add_path $GOBIN \ +fish_add_path --global $GOBIN \ $HOME/.local/bin \ $HOME/.pub-cache/bin \ $HOME/code/scripts \ @@ -29,6 +30,7 @@ fish_add_path $GOBIN \ $HOME/.cargo/bin \ $HOME/.dotnet/tools \ $BUN_INSTALL/bin \ + $PNPM_HOME/bin \ $PYENV_ROOT/bin \ $ANDROID_HOME/emulator \ $ANDROID_HOME/platform-tools diff --git a/.config/fish/conf.d/import_sources.fish b/.config/fish/conf.d/import_sources.fish index e5a4f27..aabf3b6 100644 --- a/.config/fish/conf.d/import_sources.fish +++ b/.config/fish/conf.d/import_sources.fish @@ -1,3 +1,5 @@ +ssh_agent_startup + # ASDF config start if test -z $ASDF_DATA_DIR set _asdf_shims "$HOME/.asdf/shims" From 9140be0d39e6ddc086d45d90d98874b8e9070d5d Mon Sep 17 00:00:00 2001 From: mitchell Date: Sun, 24 May 2026 16:16:16 -0400 Subject: [PATCH 05/27] chore(tmux): update default-terminal to tmux-256color --- .tmux.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tmux.conf b/.tmux.conf index 3524b3d..125c988 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -1,4 +1,4 @@ -set-option -g default-terminal "screen-256color" +set-option -g default-terminal "tmux-256color" setw -g mouse on setw -g mode-keys vi setw -g escape-time 50 From 518844ba5f275329b27cd08a3ebe188eb1ab1d88 Mon Sep 17 00:00:00 2001 From: mitchell Date: Tue, 12 May 2026 19:51:29 -0400 Subject: [PATCH 06/27] feat: add cachyos migration script --- cachyos_repo | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100755 cachyos_repo diff --git a/cachyos_repo b/cachyos_repo new file mode 100755 index 0000000..a523a1a --- /dev/null +++ b/cachyos_repo @@ -0,0 +1,7 @@ +#!/usr/bin/env fish +curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz +and tar xvf cachyos-repo.tar.xz +and cd cachyos-repo/ +and sudo ./cachyos-repo.sh +and sudo pacman -Syuu --noconfirm +and sudo pacman -S linux-cachyos linux-cachyos-headers From 95bc81cd2c014cf59ee054e1e3acf7d64207882a Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 2 May 2026 19:52:23 -0400 Subject: [PATCH 07/27] chore: remove useless /hosts/resolv.conf link; add ghostty-terminfo to pacstrap --- install_arch | 10 ++++------ pacstrap | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/install_arch b/install_arch index feef591..2d4f505 100755 --- a/install_arch +++ b/install_arch @@ -59,6 +59,10 @@ function main install_bootloader $boot_mode $device $encrypted_uuid move_dotfiles $username + + if test "$network" = networkd + echo 'REMINDER: Run "# ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf" after booting.' + end end function install @@ -100,10 +104,6 @@ function set_hostname -a new_hostname end log "Setting hostname to $new_hostname" echo $new_hostname >/etc/hostname - echo " -127.0.0.1 localhost -::1 localhost -127.0.1.1 $new_hostname.local $new_hostname" >>/etc/hosts end function configure_systemd_networkd @@ -119,8 +119,6 @@ IPv6PrivacyExtensions=yes" >/etc/systemd/network/20-wired.network log 'Enabling systemd networkd and resolved services' systemctl enable systemd-networkd.service systemctl enable systemd-resolved.service - - ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf end function configure_network_manager diff --git a/pacstrap b/pacstrap index 29b4453..5b5e4df 100755 --- a/pacstrap +++ b/pacstrap @@ -1,5 +1,5 @@ #!/usr/bin/env fish -pacstrap -K /mnt base linux git fish amd-ucode btrfs-progs $argv +pacstrap -K /mnt base linux git fish amd-ucode btrfs-progs ghostty-terminfo $argv and genfstab -U /mnt >>/mnt/etc/fstab and cp -r /root/dotfiles /mnt/ and arch-chroot /mnt From b9b332902757017830b8e59fec178862d9c18c29 Mon Sep 17 00:00:00 2001 From: mitchell Date: Tue, 12 May 2026 19:51:09 -0400 Subject: [PATCH 08/27] feat: use sudo-rs in install_arch --- install_arch | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/install_arch b/install_arch index 2d4f505..cdb6bfc 100755 --- a/install_arch +++ b/install_arch @@ -145,9 +145,15 @@ function add_lvm2_mkinitcpio_hook -a is_encrypt end function configure_sudo - log 'Adding and configuring wheel group' - install sudo + log 'Installing and configuring sudo' + install sudo sudo-rs + + ln -s /usr/bin/su-rs /usr/local/bin/su + ln -s /usr/bin/sudo-rs /usr/local/bin/sudo + ln -s /usr/bin/sudoedit-rs /usr/local/bin/sudoedit + ln -s /usr/bin/visudo-rs /usr/local/bin/visudo sed -i 's/# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers + sed -i 's/Defaults!\/usr\/bin\/visudo/Defaults!\/usr\/local\/bin\/visudo/' /etc/sudoers end function create_admin_user -a username pass From e33c60c7aa0f9ab1a3d59361c04838716a8fbf51 Mon Sep 17 00:00:00 2001 From: mitchell Date: Sun, 14 Jun 2026 18:22:58 -0400 Subject: [PATCH 09/27] chore(fish): replace asdf with mise --- .config/fish/conf.d/import_sources.fish | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.config/fish/conf.d/import_sources.fish b/.config/fish/conf.d/import_sources.fish index aabf3b6..580613f 100644 --- a/.config/fish/conf.d/import_sources.fish +++ b/.config/fish/conf.d/import_sources.fish @@ -1,16 +1,5 @@ ssh_agent_startup -# ASDF config start -if test -z $ASDF_DATA_DIR - set _asdf_shims "$HOME/.asdf/shims" -else - set _asdf_shims "$ASDF_DATA_DIR/shims" -end - -fish_add_path $_asdf_shims -set --erase _asdf_shims -# ASDF config end - test -e /opt/homebrew/bin/brew and /opt/homebrew/bin/brew shellenv | source - @@ -20,3 +9,4 @@ if status is-interactive end command -q pyenv; and pyenv init - | source +command -q mise; and mise activate fish | source From fd32e1431c5333f77cd3a00184aaecc14f0c5e0c Mon Sep 17 00:00:00 2001 From: mitchell Date: Thu, 18 Jun 2026 19:12:02 -0400 Subject: [PATCH 10/27] refactor: reorganize into packages for modular use --- {.config => bspwm/.config}/bspwm/bspwmrc | 0 {.config => bspwm/.config}/picom/picom.conf | 0 {.config => bspwm/.config}/polybar/config | 0 {.config => bspwm/.config}/rofi/config.rasi | 0 {.config => bspwm/.config}/sxhkd/sxhkdrc | 0 .../.config}/fish/conf.d/define_aliases.fish | 0 .../fish/conf.d/define_global_variables.fish | 0 .../fish/conf.d/fish_frozen_theme.fish | 0 .../.config}/fish/conf.d/import_sources.fish | 0 .../.config}/fish/conf.d/key_binds.fish | 0 {.config => fish/.config}/fish/config.fish | 0 .../.config}/fish/functions/adr.fish | 0 .../.config}/fish/functions/aikeys.fish | 0 .../.config}/fish/functions/commit.fish | 0 .../.config}/fish/functions/editcb.fish | 0 .../fish/functions/fish_greeting.fish | 0 .../fish/functions/fish_mode_prompt.fish | 0 .../.config}/fish/functions/fish_prompt.fish | 0 .../fish/functions/fish_right_prompt.fish | 0 .../.config}/fish/functions/jmpv.fish | 0 .../.config}/fish/functions/m.fish | 0 .../.config}/fish/functions/sesh.fish | 0 .../.config}/fish/functions/ssh_add.fish | 0 .../fish/functions/ssh_agent_startup.fish | 0 .../.config}/fish/functions/sshre.fish | 0 .../.config}/fish/functions/temp.fish | 0 .../.config}/fish/functions/vm_inst.fish | 0 .../.config}/fish/functions/vm_rm.fish | 0 .../.config}/fish/functions/ytmpv.fish | 0 {.config => ghostty/.config}/ghostty/config | 0 .gitconfig => git/.gitconfig | 0 {.config => niri/.config}/niri/config.kdl | 0 {.config => nvim/.config}/nvim/init.lua | 0 {.config => nvim/.config}/nvim/lazy-lock.json | 0 .../.config}/nvim/lua/core/autocmds.lua | 0 .../.config}/nvim/lua/core/keymaps.lua | 0 .../.config}/nvim/lua/core/options.lua | 0 .../.config}/nvim/lua/plugins/editor.lua | 0 .../nvim/lua/plugins/lsp_completion.lua | 0 .../.config}/nvim/lua/plugins/navigation.lua | 0 .../.config}/nvim/lua/plugins/tools.lua | 0 .../.config}/nvim/lua/plugins/treesitter.lua | 0 .../.config}/nvim/lua/plugins/ui.lua | 0 scripts/jmpv | 2 - scripts/rebar | 2 - scripts/redisco | 2 - scripts/sesh | 2 - scripts/toglpulse | 2 - scripts/vban | 2 - scripts/ytmpv | 2 - {.config => starship/.config}/starship.toml | 0 swim | 52 ------------------- .tmux-line.conf => tmux/.tmux-line.conf | 0 .tmux.conf => tmux/.tmux.conf | 0 .wezterm.lua => wezterm/.wezterm.lua | 0 .skhdrc => yabai/.skhdrc | 0 .yabairc => yabai/.yabairc | 0 57 files changed, 66 deletions(-) rename {.config => bspwm/.config}/bspwm/bspwmrc (100%) rename {.config => bspwm/.config}/picom/picom.conf (100%) rename {.config => bspwm/.config}/polybar/config (100%) rename {.config => bspwm/.config}/rofi/config.rasi (100%) rename {.config => bspwm/.config}/sxhkd/sxhkdrc (100%) rename {.config => fish/.config}/fish/conf.d/define_aliases.fish (100%) rename {.config => fish/.config}/fish/conf.d/define_global_variables.fish (100%) rename {.config => fish/.config}/fish/conf.d/fish_frozen_theme.fish (100%) rename {.config => fish/.config}/fish/conf.d/import_sources.fish (100%) rename {.config => fish/.config}/fish/conf.d/key_binds.fish (100%) rename {.config => fish/.config}/fish/config.fish (100%) rename {.config => fish/.config}/fish/functions/adr.fish (100%) rename {.config => fish/.config}/fish/functions/aikeys.fish (100%) rename {.config => fish/.config}/fish/functions/commit.fish (100%) rename {.config => fish/.config}/fish/functions/editcb.fish (100%) rename {.config => fish/.config}/fish/functions/fish_greeting.fish (100%) rename {.config => fish/.config}/fish/functions/fish_mode_prompt.fish (100%) rename {.config => fish/.config}/fish/functions/fish_prompt.fish (100%) rename {.config => fish/.config}/fish/functions/fish_right_prompt.fish (100%) rename {.config => fish/.config}/fish/functions/jmpv.fish (100%) rename {.config => fish/.config}/fish/functions/m.fish (100%) rename {.config => fish/.config}/fish/functions/sesh.fish (100%) rename {.config => fish/.config}/fish/functions/ssh_add.fish (100%) rename {.config => fish/.config}/fish/functions/ssh_agent_startup.fish (100%) rename {.config => fish/.config}/fish/functions/sshre.fish (100%) rename {.config => fish/.config}/fish/functions/temp.fish (100%) rename {.config => fish/.config}/fish/functions/vm_inst.fish (100%) rename {.config => fish/.config}/fish/functions/vm_rm.fish (100%) rename {.config => fish/.config}/fish/functions/ytmpv.fish (100%) rename {.config => ghostty/.config}/ghostty/config (100%) rename .gitconfig => git/.gitconfig (100%) rename {.config => niri/.config}/niri/config.kdl (100%) rename {.config => nvim/.config}/nvim/init.lua (100%) rename {.config => nvim/.config}/nvim/lazy-lock.json (100%) rename {.config => nvim/.config}/nvim/lua/core/autocmds.lua (100%) rename {.config => nvim/.config}/nvim/lua/core/keymaps.lua (100%) rename {.config => nvim/.config}/nvim/lua/core/options.lua (100%) rename {.config => nvim/.config}/nvim/lua/plugins/editor.lua (100%) rename {.config => nvim/.config}/nvim/lua/plugins/lsp_completion.lua (100%) rename {.config => nvim/.config}/nvim/lua/plugins/navigation.lua (100%) rename {.config => nvim/.config}/nvim/lua/plugins/tools.lua (100%) rename {.config => nvim/.config}/nvim/lua/plugins/treesitter.lua (100%) rename {.config => nvim/.config}/nvim/lua/plugins/ui.lua (100%) delete mode 100755 scripts/jmpv delete mode 100755 scripts/rebar delete mode 100755 scripts/redisco delete mode 100755 scripts/sesh delete mode 100755 scripts/toglpulse delete mode 100755 scripts/vban delete mode 100755 scripts/ytmpv rename {.config => starship/.config}/starship.toml (100%) delete mode 100755 swim rename .tmux-line.conf => tmux/.tmux-line.conf (100%) rename .tmux.conf => tmux/.tmux.conf (100%) rename .wezterm.lua => wezterm/.wezterm.lua (100%) rename .skhdrc => yabai/.skhdrc (100%) rename .yabairc => yabai/.yabairc (100%) diff --git a/.config/bspwm/bspwmrc b/bspwm/.config/bspwm/bspwmrc similarity index 100% rename from .config/bspwm/bspwmrc rename to bspwm/.config/bspwm/bspwmrc diff --git a/.config/picom/picom.conf b/bspwm/.config/picom/picom.conf similarity index 100% rename from .config/picom/picom.conf rename to bspwm/.config/picom/picom.conf diff --git a/.config/polybar/config b/bspwm/.config/polybar/config similarity index 100% rename from .config/polybar/config rename to bspwm/.config/polybar/config diff --git a/.config/rofi/config.rasi b/bspwm/.config/rofi/config.rasi similarity index 100% rename from .config/rofi/config.rasi rename to bspwm/.config/rofi/config.rasi diff --git a/.config/sxhkd/sxhkdrc b/bspwm/.config/sxhkd/sxhkdrc similarity index 100% rename from .config/sxhkd/sxhkdrc rename to bspwm/.config/sxhkd/sxhkdrc diff --git a/.config/fish/conf.d/define_aliases.fish b/fish/.config/fish/conf.d/define_aliases.fish similarity index 100% rename from .config/fish/conf.d/define_aliases.fish rename to fish/.config/fish/conf.d/define_aliases.fish diff --git a/.config/fish/conf.d/define_global_variables.fish b/fish/.config/fish/conf.d/define_global_variables.fish similarity index 100% rename from .config/fish/conf.d/define_global_variables.fish rename to fish/.config/fish/conf.d/define_global_variables.fish diff --git a/.config/fish/conf.d/fish_frozen_theme.fish b/fish/.config/fish/conf.d/fish_frozen_theme.fish similarity index 100% rename from .config/fish/conf.d/fish_frozen_theme.fish rename to fish/.config/fish/conf.d/fish_frozen_theme.fish diff --git a/.config/fish/conf.d/import_sources.fish b/fish/.config/fish/conf.d/import_sources.fish similarity index 100% rename from .config/fish/conf.d/import_sources.fish rename to fish/.config/fish/conf.d/import_sources.fish diff --git a/.config/fish/conf.d/key_binds.fish b/fish/.config/fish/conf.d/key_binds.fish similarity index 100% rename from .config/fish/conf.d/key_binds.fish rename to fish/.config/fish/conf.d/key_binds.fish diff --git a/.config/fish/config.fish b/fish/.config/fish/config.fish similarity index 100% rename from .config/fish/config.fish rename to fish/.config/fish/config.fish diff --git a/.config/fish/functions/adr.fish b/fish/.config/fish/functions/adr.fish similarity index 100% rename from .config/fish/functions/adr.fish rename to fish/.config/fish/functions/adr.fish diff --git a/.config/fish/functions/aikeys.fish b/fish/.config/fish/functions/aikeys.fish similarity index 100% rename from .config/fish/functions/aikeys.fish rename to fish/.config/fish/functions/aikeys.fish diff --git a/.config/fish/functions/commit.fish b/fish/.config/fish/functions/commit.fish similarity index 100% rename from .config/fish/functions/commit.fish rename to fish/.config/fish/functions/commit.fish diff --git a/.config/fish/functions/editcb.fish b/fish/.config/fish/functions/editcb.fish similarity index 100% rename from .config/fish/functions/editcb.fish rename to fish/.config/fish/functions/editcb.fish diff --git a/.config/fish/functions/fish_greeting.fish b/fish/.config/fish/functions/fish_greeting.fish similarity index 100% rename from .config/fish/functions/fish_greeting.fish rename to fish/.config/fish/functions/fish_greeting.fish diff --git a/.config/fish/functions/fish_mode_prompt.fish b/fish/.config/fish/functions/fish_mode_prompt.fish similarity index 100% rename from .config/fish/functions/fish_mode_prompt.fish rename to fish/.config/fish/functions/fish_mode_prompt.fish diff --git a/.config/fish/functions/fish_prompt.fish b/fish/.config/fish/functions/fish_prompt.fish similarity index 100% rename from .config/fish/functions/fish_prompt.fish rename to fish/.config/fish/functions/fish_prompt.fish diff --git a/.config/fish/functions/fish_right_prompt.fish b/fish/.config/fish/functions/fish_right_prompt.fish similarity index 100% rename from .config/fish/functions/fish_right_prompt.fish rename to fish/.config/fish/functions/fish_right_prompt.fish diff --git a/.config/fish/functions/jmpv.fish b/fish/.config/fish/functions/jmpv.fish similarity index 100% rename from .config/fish/functions/jmpv.fish rename to fish/.config/fish/functions/jmpv.fish diff --git a/.config/fish/functions/m.fish b/fish/.config/fish/functions/m.fish similarity index 100% rename from .config/fish/functions/m.fish rename to fish/.config/fish/functions/m.fish diff --git a/.config/fish/functions/sesh.fish b/fish/.config/fish/functions/sesh.fish similarity index 100% rename from .config/fish/functions/sesh.fish rename to fish/.config/fish/functions/sesh.fish diff --git a/.config/fish/functions/ssh_add.fish b/fish/.config/fish/functions/ssh_add.fish similarity index 100% rename from .config/fish/functions/ssh_add.fish rename to fish/.config/fish/functions/ssh_add.fish diff --git a/.config/fish/functions/ssh_agent_startup.fish b/fish/.config/fish/functions/ssh_agent_startup.fish similarity index 100% rename from .config/fish/functions/ssh_agent_startup.fish rename to fish/.config/fish/functions/ssh_agent_startup.fish diff --git a/.config/fish/functions/sshre.fish b/fish/.config/fish/functions/sshre.fish similarity index 100% rename from .config/fish/functions/sshre.fish rename to fish/.config/fish/functions/sshre.fish diff --git a/.config/fish/functions/temp.fish b/fish/.config/fish/functions/temp.fish similarity index 100% rename from .config/fish/functions/temp.fish rename to fish/.config/fish/functions/temp.fish diff --git a/.config/fish/functions/vm_inst.fish b/fish/.config/fish/functions/vm_inst.fish similarity index 100% rename from .config/fish/functions/vm_inst.fish rename to fish/.config/fish/functions/vm_inst.fish diff --git a/.config/fish/functions/vm_rm.fish b/fish/.config/fish/functions/vm_rm.fish similarity index 100% rename from .config/fish/functions/vm_rm.fish rename to fish/.config/fish/functions/vm_rm.fish diff --git a/.config/fish/functions/ytmpv.fish b/fish/.config/fish/functions/ytmpv.fish similarity index 100% rename from .config/fish/functions/ytmpv.fish rename to fish/.config/fish/functions/ytmpv.fish diff --git a/.config/ghostty/config b/ghostty/.config/ghostty/config similarity index 100% rename from .config/ghostty/config rename to ghostty/.config/ghostty/config diff --git a/.gitconfig b/git/.gitconfig similarity index 100% rename from .gitconfig rename to git/.gitconfig diff --git a/.config/niri/config.kdl b/niri/.config/niri/config.kdl similarity index 100% rename from .config/niri/config.kdl rename to niri/.config/niri/config.kdl diff --git a/.config/nvim/init.lua b/nvim/.config/nvim/init.lua similarity index 100% rename from .config/nvim/init.lua rename to nvim/.config/nvim/init.lua diff --git a/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json similarity index 100% rename from .config/nvim/lazy-lock.json rename to nvim/.config/nvim/lazy-lock.json diff --git a/.config/nvim/lua/core/autocmds.lua b/nvim/.config/nvim/lua/core/autocmds.lua similarity index 100% rename from .config/nvim/lua/core/autocmds.lua rename to nvim/.config/nvim/lua/core/autocmds.lua diff --git a/.config/nvim/lua/core/keymaps.lua b/nvim/.config/nvim/lua/core/keymaps.lua similarity index 100% rename from .config/nvim/lua/core/keymaps.lua rename to nvim/.config/nvim/lua/core/keymaps.lua diff --git a/.config/nvim/lua/core/options.lua b/nvim/.config/nvim/lua/core/options.lua similarity index 100% rename from .config/nvim/lua/core/options.lua rename to nvim/.config/nvim/lua/core/options.lua diff --git a/.config/nvim/lua/plugins/editor.lua b/nvim/.config/nvim/lua/plugins/editor.lua similarity index 100% rename from .config/nvim/lua/plugins/editor.lua rename to nvim/.config/nvim/lua/plugins/editor.lua diff --git a/.config/nvim/lua/plugins/lsp_completion.lua b/nvim/.config/nvim/lua/plugins/lsp_completion.lua similarity index 100% rename from .config/nvim/lua/plugins/lsp_completion.lua rename to nvim/.config/nvim/lua/plugins/lsp_completion.lua diff --git a/.config/nvim/lua/plugins/navigation.lua b/nvim/.config/nvim/lua/plugins/navigation.lua similarity index 100% rename from .config/nvim/lua/plugins/navigation.lua rename to nvim/.config/nvim/lua/plugins/navigation.lua diff --git a/.config/nvim/lua/plugins/tools.lua b/nvim/.config/nvim/lua/plugins/tools.lua similarity index 100% rename from .config/nvim/lua/plugins/tools.lua rename to nvim/.config/nvim/lua/plugins/tools.lua diff --git a/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua similarity index 100% rename from .config/nvim/lua/plugins/treesitter.lua rename to nvim/.config/nvim/lua/plugins/treesitter.lua diff --git a/.config/nvim/lua/plugins/ui.lua b/nvim/.config/nvim/lua/plugins/ui.lua similarity index 100% rename from .config/nvim/lua/plugins/ui.lua rename to nvim/.config/nvim/lua/plugins/ui.lua diff --git a/scripts/jmpv b/scripts/jmpv deleted file mode 100755 index ae490ed..0000000 --- a/scripts/jmpv +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -wezterm start -- fish -c jmpv diff --git a/scripts/rebar b/scripts/rebar deleted file mode 100755 index 94a1d68..0000000 --- a/scripts/rebar +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env fish -rebar diff --git a/scripts/redisco b/scripts/redisco deleted file mode 100755 index 9708960..0000000 --- a/scripts/redisco +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env fish -wezterm start -- fish -c "redisco $argv" diff --git a/scripts/sesh b/scripts/sesh deleted file mode 100755 index 5abdf42..0000000 --- a/scripts/sesh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env fish -wezterm start -- fish -c "sesh $argv" diff --git a/scripts/toglpulse b/scripts/toglpulse deleted file mode 100755 index 82ff5d6..0000000 --- a/scripts/toglpulse +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env fish -toglpulse diff --git a/scripts/vban b/scripts/vban deleted file mode 100755 index 58a27de..0000000 --- a/scripts/vban +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -wezterm start -- fish -c vban diff --git a/scripts/ytmpv b/scripts/ytmpv deleted file mode 100755 index 951eb45..0000000 --- a/scripts/ytmpv +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -wezterm start -- fish -c ytmpv diff --git a/.config/starship.toml b/starship/.config/starship.toml similarity index 100% rename from .config/starship.toml rename to starship/.config/starship.toml diff --git a/swim b/swim deleted file mode 100755 index 3204718..0000000 --- a/swim +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env -S fish --private - -set general_help ' -A collection of useful functions for this project. - -Either run a function like ./swim.fish [arg [arg [...]] -or source the file and run them as commands: -$ source ./swim.fish -$ lint [args] - -Run ./swim help to see it\'s definition. -' - -# Configuration - -set src_fish_files \ - ./install_arch \ - ./provision_linux \ - ./sync \ - ./upgrade_debian \ - ./**.fish \ - ./.**.fish - -# Commands - -function lint -d 'Lint fish scripts' - fish --no-execute $src_fish_files -end - -function format -d 'Format fish scripts' - fish_indent --write $src_fish_files -end - -# --- execution/help handling --- - -function help -a function_name -d 'Displays help for internal function' - if test -n "$function_name" - functions $function_name - else - echo $general_help - end -end - -argparse --ignore-unknown h/help -- $argv - -if test -n "$_flag_h" - help $argv -else if test -n "$argv" - $argv -else - echo $general_help -end diff --git a/.tmux-line.conf b/tmux/.tmux-line.conf similarity index 100% rename from .tmux-line.conf rename to tmux/.tmux-line.conf diff --git a/.tmux.conf b/tmux/.tmux.conf similarity index 100% rename from .tmux.conf rename to tmux/.tmux.conf diff --git a/.wezterm.lua b/wezterm/.wezterm.lua similarity index 100% rename from .wezterm.lua rename to wezterm/.wezterm.lua diff --git a/.skhdrc b/yabai/.skhdrc similarity index 100% rename from .skhdrc rename to yabai/.skhdrc diff --git a/.yabairc b/yabai/.yabairc similarity index 100% rename from .yabairc rename to yabai/.yabairc From 341cdd5b9ec7ed366d47bbd37b4514ea7d7d3e33 Mon Sep 17 00:00:00 2001 From: mitchell Date: Thu, 18 Jun 2026 19:35:10 -0400 Subject: [PATCH 11/27] chore: add stow to pkgs, ignore fish_variables, fix .gitconfig format --- .gitignore | 1 + git/.gitconfig | 76 +++++++++++++++++++++++++------------------------- install_utils | 3 +- 3 files changed, 41 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index b0ac3ed..0a13a4d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .aider* +fish_variables diff --git a/git/.gitconfig b/git/.gitconfig index 6f96709..33fbfd9 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -1,53 +1,53 @@ [alias] - sw = switch - rs = restore - rss = restore --staged - br = branch - cm = commit - st = status - rb = rebase - pfwl = push --force-with-lease - llog = log --date=local - flog = log --pretty=fuller --decorate - lol = log --graph --decorate --oneline - lola = log --graph --decorate --oneline --all - blog = log origin/master... --left-right - ds = diff --staged - amend = commit --amend -C HEAD - fixup = commit --fixup - squash = commit --squash - unstage = reset HEAD - rum = rebase master@{u} - puff = pull --ff-only - merff = merge --ff-only - fa = fetch --all - ap = add --patch - aa = add --all + sw = switch + rs = restore + rss = restore --staged + br = branch + cm = commit + st = status + rb = rebase + pfwl = push --force-with-lease + llog = log --date=local + flog = log --pretty=fuller --decorate + lol = log --graph --decorate --oneline + lola = log --graph --decorate --oneline --all + blog = log origin/master... --left-right + ds = diff --staged + amend = commit --amend -C HEAD + fixup = commit --fixup + squash = commit --squash + unstage = reset HEAD + rum = rebase master@{u} + puff = pull --ff-only + merff = merge --ff-only + fa = fetch --all + ap = add --patch + aa = add --all [core] - editor = nvim - pager = delta + editor = nvim + pager = delta [color] - ui = auto - branch = auto - interactive = auto - status = auto + ui = auto + branch = auto + interactive = auto + status = auto [push] - default = simple + default = simple [pull] - rebase = true + rebase = true [interactive] - diffFilter = delta --color-only + diffFilter = delta --color-only [delta] - navigate = true - dark = true - side-by-side = false - line-numbers = true + navigate = true + dark = true + side-by-side = false + line-numbers = true [merge] - conflictstyle = zdiff3 + conflictstyle = zdiff3 diff --git a/install_utils b/install_utils index 1ee6e57..c22b920 100755 --- a/install_utils +++ b/install_utils @@ -22,7 +22,8 @@ set -l base_pkgs \ tree-sitter-cli \ nodejs \ zoxide \ - git-delta + git-delta \ + stow set -l mac_pkgs \ $base_pkgs \ From 16201f13c2dabaf32391645c916ac9ed06fe3ced Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 20 Jun 2026 02:42:14 -0400 Subject: [PATCH 12/27] refactor: rename period-prefixed files to dot- --- bspwm/{.config => dot-config}/bspwm/bspwmrc | 0 bspwm/{.config => dot-config}/picom/picom.conf | 0 bspwm/{.config => dot-config}/polybar/config | 0 bspwm/{.config => dot-config}/rofi/config.rasi | 0 bspwm/{.config => dot-config}/sxhkd/sxhkdrc | 0 fish/{.config => dot-config}/fish/conf.d/define_aliases.fish | 0 .../fish/conf.d/define_global_variables.fish | 0 fish/{.config => dot-config}/fish/conf.d/fish_frozen_theme.fish | 0 fish/{.config => dot-config}/fish/conf.d/import_sources.fish | 0 fish/{.config => dot-config}/fish/conf.d/key_binds.fish | 0 fish/{.config => dot-config}/fish/config.fish | 0 fish/{.config => dot-config}/fish/functions/adr.fish | 0 fish/{.config => dot-config}/fish/functions/aikeys.fish | 0 fish/{.config => dot-config}/fish/functions/commit.fish | 0 fish/{.config => dot-config}/fish/functions/editcb.fish | 0 fish/{.config => dot-config}/fish/functions/fish_greeting.fish | 0 fish/{.config => dot-config}/fish/functions/fish_mode_prompt.fish | 0 fish/{.config => dot-config}/fish/functions/fish_prompt.fish | 0 .../{.config => dot-config}/fish/functions/fish_right_prompt.fish | 0 fish/{.config => dot-config}/fish/functions/jmpv.fish | 0 fish/{.config => dot-config}/fish/functions/m.fish | 0 fish/{.config => dot-config}/fish/functions/sesh.fish | 0 fish/{.config => dot-config}/fish/functions/ssh_add.fish | 0 .../{.config => dot-config}/fish/functions/ssh_agent_startup.fish | 0 fish/{.config => dot-config}/fish/functions/sshre.fish | 0 fish/{.config => dot-config}/fish/functions/temp.fish | 0 fish/{.config => dot-config}/fish/functions/vm_inst.fish | 0 fish/{.config => dot-config}/fish/functions/vm_rm.fish | 0 fish/{.config => dot-config}/fish/functions/ytmpv.fish | 0 ghostty/{.config => dot-config}/ghostty/config | 0 git/{.gitconfig => dot-gitconfig} | 0 niri/{.config => dot-config}/niri/config.kdl | 0 nvim/{.config => dot-config}/nvim/init.lua | 0 nvim/{.config => dot-config}/nvim/lazy-lock.json | 0 nvim/{.config => dot-config}/nvim/lua/core/autocmds.lua | 0 nvim/{.config => dot-config}/nvim/lua/core/keymaps.lua | 0 nvim/{.config => dot-config}/nvim/lua/core/options.lua | 0 nvim/{.config => dot-config}/nvim/lua/plugins/editor.lua | 0 nvim/{.config => dot-config}/nvim/lua/plugins/lsp_completion.lua | 0 nvim/{.config => dot-config}/nvim/lua/plugins/navigation.lua | 0 nvim/{.config => dot-config}/nvim/lua/plugins/tools.lua | 0 nvim/{.config => dot-config}/nvim/lua/plugins/treesitter.lua | 0 nvim/{.config => dot-config}/nvim/lua/plugins/ui.lua | 0 starship/{.config => dot-config}/starship.toml | 0 tmux/{.tmux-line.conf => dot-tmux-line.conf} | 0 tmux/{.tmux.conf => dot-tmux.conf} | 0 wezterm/{.wezterm.lua => dot-wezterm.lua} | 0 yabai/{.skhdrc => dot-skhdrc} | 0 yabai/{.yabairc => dot-yabairc} | 0 49 files changed, 0 insertions(+), 0 deletions(-) rename bspwm/{.config => dot-config}/bspwm/bspwmrc (100%) rename bspwm/{.config => dot-config}/picom/picom.conf (100%) rename bspwm/{.config => dot-config}/polybar/config (100%) rename bspwm/{.config => dot-config}/rofi/config.rasi (100%) rename bspwm/{.config => dot-config}/sxhkd/sxhkdrc (100%) rename fish/{.config => dot-config}/fish/conf.d/define_aliases.fish (100%) rename fish/{.config => dot-config}/fish/conf.d/define_global_variables.fish (100%) rename fish/{.config => dot-config}/fish/conf.d/fish_frozen_theme.fish (100%) rename fish/{.config => dot-config}/fish/conf.d/import_sources.fish (100%) rename fish/{.config => dot-config}/fish/conf.d/key_binds.fish (100%) rename fish/{.config => dot-config}/fish/config.fish (100%) rename fish/{.config => dot-config}/fish/functions/adr.fish (100%) rename fish/{.config => dot-config}/fish/functions/aikeys.fish (100%) rename fish/{.config => dot-config}/fish/functions/commit.fish (100%) rename fish/{.config => dot-config}/fish/functions/editcb.fish (100%) rename fish/{.config => dot-config}/fish/functions/fish_greeting.fish (100%) rename fish/{.config => dot-config}/fish/functions/fish_mode_prompt.fish (100%) rename fish/{.config => dot-config}/fish/functions/fish_prompt.fish (100%) rename fish/{.config => dot-config}/fish/functions/fish_right_prompt.fish (100%) rename fish/{.config => dot-config}/fish/functions/jmpv.fish (100%) rename fish/{.config => dot-config}/fish/functions/m.fish (100%) rename fish/{.config => dot-config}/fish/functions/sesh.fish (100%) rename fish/{.config => dot-config}/fish/functions/ssh_add.fish (100%) rename fish/{.config => dot-config}/fish/functions/ssh_agent_startup.fish (100%) rename fish/{.config => dot-config}/fish/functions/sshre.fish (100%) rename fish/{.config => dot-config}/fish/functions/temp.fish (100%) rename fish/{.config => dot-config}/fish/functions/vm_inst.fish (100%) rename fish/{.config => dot-config}/fish/functions/vm_rm.fish (100%) rename fish/{.config => dot-config}/fish/functions/ytmpv.fish (100%) rename ghostty/{.config => dot-config}/ghostty/config (100%) rename git/{.gitconfig => dot-gitconfig} (100%) rename niri/{.config => dot-config}/niri/config.kdl (100%) rename nvim/{.config => dot-config}/nvim/init.lua (100%) rename nvim/{.config => dot-config}/nvim/lazy-lock.json (100%) rename nvim/{.config => dot-config}/nvim/lua/core/autocmds.lua (100%) rename nvim/{.config => dot-config}/nvim/lua/core/keymaps.lua (100%) rename nvim/{.config => dot-config}/nvim/lua/core/options.lua (100%) rename nvim/{.config => dot-config}/nvim/lua/plugins/editor.lua (100%) rename nvim/{.config => dot-config}/nvim/lua/plugins/lsp_completion.lua (100%) rename nvim/{.config => dot-config}/nvim/lua/plugins/navigation.lua (100%) rename nvim/{.config => dot-config}/nvim/lua/plugins/tools.lua (100%) rename nvim/{.config => dot-config}/nvim/lua/plugins/treesitter.lua (100%) rename nvim/{.config => dot-config}/nvim/lua/plugins/ui.lua (100%) rename starship/{.config => dot-config}/starship.toml (100%) rename tmux/{.tmux-line.conf => dot-tmux-line.conf} (100%) rename tmux/{.tmux.conf => dot-tmux.conf} (100%) rename wezterm/{.wezterm.lua => dot-wezterm.lua} (100%) rename yabai/{.skhdrc => dot-skhdrc} (100%) rename yabai/{.yabairc => dot-yabairc} (100%) diff --git a/bspwm/.config/bspwm/bspwmrc b/bspwm/dot-config/bspwm/bspwmrc similarity index 100% rename from bspwm/.config/bspwm/bspwmrc rename to bspwm/dot-config/bspwm/bspwmrc diff --git a/bspwm/.config/picom/picom.conf b/bspwm/dot-config/picom/picom.conf similarity index 100% rename from bspwm/.config/picom/picom.conf rename to bspwm/dot-config/picom/picom.conf diff --git a/bspwm/.config/polybar/config b/bspwm/dot-config/polybar/config similarity index 100% rename from bspwm/.config/polybar/config rename to bspwm/dot-config/polybar/config diff --git a/bspwm/.config/rofi/config.rasi b/bspwm/dot-config/rofi/config.rasi similarity index 100% rename from bspwm/.config/rofi/config.rasi rename to bspwm/dot-config/rofi/config.rasi diff --git a/bspwm/.config/sxhkd/sxhkdrc b/bspwm/dot-config/sxhkd/sxhkdrc similarity index 100% rename from bspwm/.config/sxhkd/sxhkdrc rename to bspwm/dot-config/sxhkd/sxhkdrc diff --git a/fish/.config/fish/conf.d/define_aliases.fish b/fish/dot-config/fish/conf.d/define_aliases.fish similarity index 100% rename from fish/.config/fish/conf.d/define_aliases.fish rename to fish/dot-config/fish/conf.d/define_aliases.fish diff --git a/fish/.config/fish/conf.d/define_global_variables.fish b/fish/dot-config/fish/conf.d/define_global_variables.fish similarity index 100% rename from fish/.config/fish/conf.d/define_global_variables.fish rename to fish/dot-config/fish/conf.d/define_global_variables.fish diff --git a/fish/.config/fish/conf.d/fish_frozen_theme.fish b/fish/dot-config/fish/conf.d/fish_frozen_theme.fish similarity index 100% rename from fish/.config/fish/conf.d/fish_frozen_theme.fish rename to fish/dot-config/fish/conf.d/fish_frozen_theme.fish diff --git a/fish/.config/fish/conf.d/import_sources.fish b/fish/dot-config/fish/conf.d/import_sources.fish similarity index 100% rename from fish/.config/fish/conf.d/import_sources.fish rename to fish/dot-config/fish/conf.d/import_sources.fish diff --git a/fish/.config/fish/conf.d/key_binds.fish b/fish/dot-config/fish/conf.d/key_binds.fish similarity index 100% rename from fish/.config/fish/conf.d/key_binds.fish rename to fish/dot-config/fish/conf.d/key_binds.fish diff --git a/fish/.config/fish/config.fish b/fish/dot-config/fish/config.fish similarity index 100% rename from fish/.config/fish/config.fish rename to fish/dot-config/fish/config.fish diff --git a/fish/.config/fish/functions/adr.fish b/fish/dot-config/fish/functions/adr.fish similarity index 100% rename from fish/.config/fish/functions/adr.fish rename to fish/dot-config/fish/functions/adr.fish diff --git a/fish/.config/fish/functions/aikeys.fish b/fish/dot-config/fish/functions/aikeys.fish similarity index 100% rename from fish/.config/fish/functions/aikeys.fish rename to fish/dot-config/fish/functions/aikeys.fish diff --git a/fish/.config/fish/functions/commit.fish b/fish/dot-config/fish/functions/commit.fish similarity index 100% rename from fish/.config/fish/functions/commit.fish rename to fish/dot-config/fish/functions/commit.fish diff --git a/fish/.config/fish/functions/editcb.fish b/fish/dot-config/fish/functions/editcb.fish similarity index 100% rename from fish/.config/fish/functions/editcb.fish rename to fish/dot-config/fish/functions/editcb.fish diff --git a/fish/.config/fish/functions/fish_greeting.fish b/fish/dot-config/fish/functions/fish_greeting.fish similarity index 100% rename from fish/.config/fish/functions/fish_greeting.fish rename to fish/dot-config/fish/functions/fish_greeting.fish diff --git a/fish/.config/fish/functions/fish_mode_prompt.fish b/fish/dot-config/fish/functions/fish_mode_prompt.fish similarity index 100% rename from fish/.config/fish/functions/fish_mode_prompt.fish rename to fish/dot-config/fish/functions/fish_mode_prompt.fish diff --git a/fish/.config/fish/functions/fish_prompt.fish b/fish/dot-config/fish/functions/fish_prompt.fish similarity index 100% rename from fish/.config/fish/functions/fish_prompt.fish rename to fish/dot-config/fish/functions/fish_prompt.fish diff --git a/fish/.config/fish/functions/fish_right_prompt.fish b/fish/dot-config/fish/functions/fish_right_prompt.fish similarity index 100% rename from fish/.config/fish/functions/fish_right_prompt.fish rename to fish/dot-config/fish/functions/fish_right_prompt.fish diff --git a/fish/.config/fish/functions/jmpv.fish b/fish/dot-config/fish/functions/jmpv.fish similarity index 100% rename from fish/.config/fish/functions/jmpv.fish rename to fish/dot-config/fish/functions/jmpv.fish diff --git a/fish/.config/fish/functions/m.fish b/fish/dot-config/fish/functions/m.fish similarity index 100% rename from fish/.config/fish/functions/m.fish rename to fish/dot-config/fish/functions/m.fish diff --git a/fish/.config/fish/functions/sesh.fish b/fish/dot-config/fish/functions/sesh.fish similarity index 100% rename from fish/.config/fish/functions/sesh.fish rename to fish/dot-config/fish/functions/sesh.fish diff --git a/fish/.config/fish/functions/ssh_add.fish b/fish/dot-config/fish/functions/ssh_add.fish similarity index 100% rename from fish/.config/fish/functions/ssh_add.fish rename to fish/dot-config/fish/functions/ssh_add.fish diff --git a/fish/.config/fish/functions/ssh_agent_startup.fish b/fish/dot-config/fish/functions/ssh_agent_startup.fish similarity index 100% rename from fish/.config/fish/functions/ssh_agent_startup.fish rename to fish/dot-config/fish/functions/ssh_agent_startup.fish diff --git a/fish/.config/fish/functions/sshre.fish b/fish/dot-config/fish/functions/sshre.fish similarity index 100% rename from fish/.config/fish/functions/sshre.fish rename to fish/dot-config/fish/functions/sshre.fish diff --git a/fish/.config/fish/functions/temp.fish b/fish/dot-config/fish/functions/temp.fish similarity index 100% rename from fish/.config/fish/functions/temp.fish rename to fish/dot-config/fish/functions/temp.fish diff --git a/fish/.config/fish/functions/vm_inst.fish b/fish/dot-config/fish/functions/vm_inst.fish similarity index 100% rename from fish/.config/fish/functions/vm_inst.fish rename to fish/dot-config/fish/functions/vm_inst.fish diff --git a/fish/.config/fish/functions/vm_rm.fish b/fish/dot-config/fish/functions/vm_rm.fish similarity index 100% rename from fish/.config/fish/functions/vm_rm.fish rename to fish/dot-config/fish/functions/vm_rm.fish diff --git a/fish/.config/fish/functions/ytmpv.fish b/fish/dot-config/fish/functions/ytmpv.fish similarity index 100% rename from fish/.config/fish/functions/ytmpv.fish rename to fish/dot-config/fish/functions/ytmpv.fish diff --git a/ghostty/.config/ghostty/config b/ghostty/dot-config/ghostty/config similarity index 100% rename from ghostty/.config/ghostty/config rename to ghostty/dot-config/ghostty/config diff --git a/git/.gitconfig b/git/dot-gitconfig similarity index 100% rename from git/.gitconfig rename to git/dot-gitconfig diff --git a/niri/.config/niri/config.kdl b/niri/dot-config/niri/config.kdl similarity index 100% rename from niri/.config/niri/config.kdl rename to niri/dot-config/niri/config.kdl diff --git a/nvim/.config/nvim/init.lua b/nvim/dot-config/nvim/init.lua similarity index 100% rename from nvim/.config/nvim/init.lua rename to nvim/dot-config/nvim/init.lua diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/dot-config/nvim/lazy-lock.json similarity index 100% rename from nvim/.config/nvim/lazy-lock.json rename to nvim/dot-config/nvim/lazy-lock.json diff --git a/nvim/.config/nvim/lua/core/autocmds.lua b/nvim/dot-config/nvim/lua/core/autocmds.lua similarity index 100% rename from nvim/.config/nvim/lua/core/autocmds.lua rename to nvim/dot-config/nvim/lua/core/autocmds.lua diff --git a/nvim/.config/nvim/lua/core/keymaps.lua b/nvim/dot-config/nvim/lua/core/keymaps.lua similarity index 100% rename from nvim/.config/nvim/lua/core/keymaps.lua rename to nvim/dot-config/nvim/lua/core/keymaps.lua diff --git a/nvim/.config/nvim/lua/core/options.lua b/nvim/dot-config/nvim/lua/core/options.lua similarity index 100% rename from nvim/.config/nvim/lua/core/options.lua rename to nvim/dot-config/nvim/lua/core/options.lua diff --git a/nvim/.config/nvim/lua/plugins/editor.lua b/nvim/dot-config/nvim/lua/plugins/editor.lua similarity index 100% rename from nvim/.config/nvim/lua/plugins/editor.lua rename to nvim/dot-config/nvim/lua/plugins/editor.lua diff --git a/nvim/.config/nvim/lua/plugins/lsp_completion.lua b/nvim/dot-config/nvim/lua/plugins/lsp_completion.lua similarity index 100% rename from nvim/.config/nvim/lua/plugins/lsp_completion.lua rename to nvim/dot-config/nvim/lua/plugins/lsp_completion.lua diff --git a/nvim/.config/nvim/lua/plugins/navigation.lua b/nvim/dot-config/nvim/lua/plugins/navigation.lua similarity index 100% rename from nvim/.config/nvim/lua/plugins/navigation.lua rename to nvim/dot-config/nvim/lua/plugins/navigation.lua diff --git a/nvim/.config/nvim/lua/plugins/tools.lua b/nvim/dot-config/nvim/lua/plugins/tools.lua similarity index 100% rename from nvim/.config/nvim/lua/plugins/tools.lua rename to nvim/dot-config/nvim/lua/plugins/tools.lua diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/dot-config/nvim/lua/plugins/treesitter.lua similarity index 100% rename from nvim/.config/nvim/lua/plugins/treesitter.lua rename to nvim/dot-config/nvim/lua/plugins/treesitter.lua diff --git a/nvim/.config/nvim/lua/plugins/ui.lua b/nvim/dot-config/nvim/lua/plugins/ui.lua similarity index 100% rename from nvim/.config/nvim/lua/plugins/ui.lua rename to nvim/dot-config/nvim/lua/plugins/ui.lua diff --git a/starship/.config/starship.toml b/starship/dot-config/starship.toml similarity index 100% rename from starship/.config/starship.toml rename to starship/dot-config/starship.toml diff --git a/tmux/.tmux-line.conf b/tmux/dot-tmux-line.conf similarity index 100% rename from tmux/.tmux-line.conf rename to tmux/dot-tmux-line.conf diff --git a/tmux/.tmux.conf b/tmux/dot-tmux.conf similarity index 100% rename from tmux/.tmux.conf rename to tmux/dot-tmux.conf diff --git a/wezterm/.wezterm.lua b/wezterm/dot-wezterm.lua similarity index 100% rename from wezterm/.wezterm.lua rename to wezterm/dot-wezterm.lua diff --git a/yabai/.skhdrc b/yabai/dot-skhdrc similarity index 100% rename from yabai/.skhdrc rename to yabai/dot-skhdrc diff --git a/yabai/.yabairc b/yabai/dot-yabairc similarity index 100% rename from yabai/.yabairc rename to yabai/dot-yabairc From f5e55a09d6d019f826c1a0bf69b879bbc3de5efb Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 20 Jun 2026 14:50:38 -0400 Subject: [PATCH 13/27] refactor: further cleanup/modularization --- cachyos_repo => archiso/cachyos_repo | 0 format_btrfs => archiso/format_btrfs | 0 install_arch => archiso/install_arch | 0 pacstrap => archiso/pacstrap | 0 greetd_niri.kdl => misc/greetd_niri.kdl | 0 gtkgreet.css => misc/gtkgreet.css | 0 sync | 116 ------------------------ 7 files changed, 116 deletions(-) rename cachyos_repo => archiso/cachyos_repo (100%) rename format_btrfs => archiso/format_btrfs (100%) rename install_arch => archiso/install_arch (100%) rename pacstrap => archiso/pacstrap (100%) rename greetd_niri.kdl => misc/greetd_niri.kdl (100%) rename gtkgreet.css => misc/gtkgreet.css (100%) delete mode 100755 sync diff --git a/cachyos_repo b/archiso/cachyos_repo similarity index 100% rename from cachyos_repo rename to archiso/cachyos_repo diff --git a/format_btrfs b/archiso/format_btrfs similarity index 100% rename from format_btrfs rename to archiso/format_btrfs diff --git a/install_arch b/archiso/install_arch similarity index 100% rename from install_arch rename to archiso/install_arch diff --git a/pacstrap b/archiso/pacstrap similarity index 100% rename from pacstrap rename to archiso/pacstrap diff --git a/greetd_niri.kdl b/misc/greetd_niri.kdl similarity index 100% rename from greetd_niri.kdl rename to misc/greetd_niri.kdl diff --git a/gtkgreet.css b/misc/gtkgreet.css similarity index 100% rename from gtkgreet.css rename to misc/gtkgreet.css diff --git a/sync b/sync deleted file mode 100755 index be348b1..0000000 --- a/sync +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env fish - -function main - argparse d/desktop g/git i/install -- $argv - set -l start_dir (pwd) - and set -l tmp_dir (mktemp --directory 2>/dev/null; or mktemp -d -t 'dotfiles') - and set -l cwd (string match -r '\w+$' $start_dir) - and set -l uname (uname) - or return $status - - log 'Syncing shell environment configurations' - set_color grey - - setup_tmp_space $cwd $tmp_dir - - and sync_terminal_env - - and if test -n "$_flag_i" - set_color normal - log 'Installing Neovim plugins' - set_color grey - - install_nvim_plugins - end - - and if test -n "$_flag_d" - set_color normal - log 'Syncing desktop environment configurations' - set_color grey - - sync_desktop_env $uname - end - - and if test -n "$_flag_g" - set_color normal - log 'Sync git config' - sync_git_config - set_color grey - end - - clean_up_tmp_space $cwd $start_dir $tmp_dir - or return $status - - set_color normal - echo -s \n 'Done syncing.' -end - -function setup_tmp_space -a cwd tmp_dir - if test ! "$cwd" = dotfiles - git clone --recurse-submodules https://github.com/mitchell/dotfiles.git $tmp_dir - and cd $tmp_dir - end -end - -function sync_terminal_env - if ! test -e ~/.config - mkdir ~/.config - end - - if ! test -e ~/code/scripts - mkdir -p ~/code/scripts - end - - rsync -aP ./.config/fish ~/.config/ - and rsync -aP ./.config/nvim ~/.config/ - and rsync -aP ./.tmux-line.conf ~/ - and rsync -aP ./.tmux.conf ~/ - and rsync -aP ./scripts/ ~/code/scripts/ - and rsync -aP ./.config/starship.toml ~/.config/ -end - -function sync_desktop_env -a uname - rsync -aP ./.wezterm.lua ~/ - rsync -aP ./.config/ghostty ~/.config/ - or return 1 - - switch $uname - case Darwin - rsync -aP ./.yabairc ~/ - and rsync -aP ./.skhdrc ~/ - - case Linux - rsync -aP ./.config/bspwm ~/.config/ - and rsync -aP ./.config/sxhkd ~/.config/ - and rsync -aP ./.config/picom ~/.config/ - and rsync -aP ./.config/polybar ~/.config/ - and rsync -aP ./.config/rofi ~/.config/ - and rsync -aP ./.config/niri ~/.config/ - end -end - -function install_nvim_plugins - command -q nvim - and nvim +PlugUpgrade +PlugUpdate +UpdateRemotePlugins +qa - and nvim +COQdeps +bnext +bdelete -end - -function sync_git_config - rsync -aP ./.gitconfig ~/ - - git config --global user.name mitchell - git config --global user.email m@mjfs.us -end - -function clean_up_tmp_space -a cwd start_dir tmp_dir - if test ! "$cwd" = dotfiles - cd $start_dir - and rm -r $tmp_dir - end -end - -function log -a message - echo \n"--- $message ---"\n -end - -main $argv From b5f52373561e9338f08882d7cc2ccea577854414 Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 20 Jun 2026 15:22:13 -0400 Subject: [PATCH 14/27] feat(install_utils): automate OS detection --- install_utils | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/install_utils b/install_utils index c22b920..89f6941 100755 --- a/install_utils +++ b/install_utils @@ -4,7 +4,17 @@ function log -a message echo \n"--- $message ---"\n end -read -P "OS? (arch/debian/fedora/mac) " -l distro +set -l distro +set -l uname (uname) + +if test $uname = Darwin + set distro mac +else if test -f /etc/os-release + set distro (grep '^ID=' /etc/os-release | string replace 'ID=' '' | string trim -c '"') +else + echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)' + return 1 +end set -l base_pkgs \ fish \ @@ -54,15 +64,18 @@ switch $distro log 'Installing yay' sudo pacman --sync --refresh --sysupgrade --noconfirm - and sudo pacman --sync --needed --noconfirm base-devel go - or return $status + and sudo pacman --sync --needed --noconfirm base-devel go bat + or return test -d yay or git clone https://aur.archlinux.org/yay.git and cd yay + and bat PKGBUILD + and read -P 'Continue? (y/N): ' -l ready + and test "$ready" = y; or test "$ready" = Y and makepkg --syncdeps --install --noconfirm and cd .. - or return $status + or return log 'Installing packages with yay' @@ -76,4 +89,7 @@ switch $distro log 'Installing packages with DNF' sudo dnf upgrade --assumeyes and sudo dnf --assumeyes install $fedora_pkgs + case '*' + echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)' + return 1 end From d7f3eb62fac8542566cdcd7d58e5fc0b09665e8d Mon Sep 17 00:00:00 2001 From: mitchell Date: Sun, 17 May 2026 15:14:41 -0400 Subject: [PATCH 15/27] feat(pacstrap): run install_arch from pacstrap --- archiso/pacstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archiso/pacstrap b/archiso/pacstrap index 5b5e4df..5a9aa85 100755 --- a/archiso/pacstrap +++ b/archiso/pacstrap @@ -2,4 +2,4 @@ pacstrap -K /mnt base linux git fish amd-ucode btrfs-progs ghostty-terminfo $argv and genfstab -U /mnt >>/mnt/etc/fstab and cp -r /root/dotfiles /mnt/ -and arch-chroot /mnt +and arch-chroot /mnt /dotfiles/archiso/install_arch From 0e6ad07177f7ea900ebfb5bda43d0944ec1e0ab7 Mon Sep 17 00:00:00 2001 From: mitchell Date: Sun, 21 Jun 2026 23:16:37 -0400 Subject: [PATCH 16/27] chore: ignore noctalia themes --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0a13a4d..274e5e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .aider* fish_variables +noctalia* From 46354f8c99b03880a4586f148cbfb945ad29359e Mon Sep 17 00:00:00 2001 From: mitchell Date: Fri, 3 Jul 2026 21:59:07 -0400 Subject: [PATCH 17/27] feat(install_utils): install extrepo on Debian --- install_utils | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install_utils b/install_utils index 89f6941..475957b 100755 --- a/install_utils +++ b/install_utils @@ -50,7 +50,8 @@ set -l arch_pkgs \ set -l debian_pkgs \ $base_pkgs \ - fd-find + fd-find \ + extrepo set -l fedora_pkgs \ $base_pkgs \ From 4ddcc04e968fd283069e1781c6fa024f079d0e40 Mon Sep 17 00:00:00 2001 From: mitchell Date: Wed, 8 Jul 2026 00:06:03 -0400 Subject: [PATCH 18/27] feat(zsh): add zsh config --- .../nvim/lua/plugins/treesitter.lua | 1 + zsh/dot-zshenv | 19 ++++ zsh/dot-zshrc | 102 ++++++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 zsh/dot-zshenv create mode 100644 zsh/dot-zshrc diff --git a/nvim/dot-config/nvim/lua/plugins/treesitter.lua b/nvim/dot-config/nvim/lua/plugins/treesitter.lua index 1628771..d40c158 100644 --- a/nvim/dot-config/nvim/lua/plugins/treesitter.lua +++ b/nvim/dot-config/nvim/lua/plugins/treesitter.lua @@ -17,6 +17,7 @@ return { "regex", "bash", "fish", + "zsh", "typescript", "javascript", "tsx", diff --git a/zsh/dot-zshenv b/zsh/dot-zshenv new file mode 100644 index 0000000..b71684c --- /dev/null +++ b/zsh/dot-zshenv @@ -0,0 +1,19 @@ +export EDITOR='nvim' +export DIFFPROG='delta' + +export FZF_CTRL_T_COMMAND='fd --type f --type d --hidden --exclude ".git/"' +export FZF_DEFAULT_COMMAND='fd --type f --type d --hidden --exclude ".git/"' +export FZF_ALT_C_COMMAND='fd --type d --hidden --exclude ".git/"' + +export GOPATH="$HOME/code/go" +export GOBIN="$GOPATH/bin" + +export BUN_INSTALL="$HOME/.bun" +export PNPM_HOME="$HOME/.local/share/pnpm" + +PATH="$BUN_INSTALL/bin:$PATH" +PATH="$PNPM_HOME/bin:$PATH" +PATH="$GOBIN:$PATH" +PATH="$HOME/.local/bin:$PATH" +PATH="$HOME/code/scripts:$PATH" +export PATH diff --git a/zsh/dot-zshrc b/zsh/dot-zshrc new file mode 100644 index 0000000..9da5c05 --- /dev/null +++ b/zsh/dot-zshrc @@ -0,0 +1,102 @@ +# --- History --- +HISTFILE=~/.histfile +HISTSIZE=1000 +SAVEHIST=2000 + +# --- Options --- +setopt autocd +setopt sharehistory +setopt histignoredups +setopt histignorealldups +setopt histsavenodups +bindkey -v + +# --- Completion --- +zstyle :compinstall filename '/home/m/.zshrc' +autoload -Uz compinit +compinit + +# --- Aliases --- +alias ll='ls -l' +alias la='ls -lA' +alias o='opencode run --thinking' +alias oc='opencode' +alias sctl='sudo systemctl' +alias uctl='systemctl --user' + +# --- Keybinds --- +bindkey '.,' open-nvim +bindkey ',l' clear-screen +bindkey ',r' fzf-history-widget +bindkey ',f' fzf-file-widget +bindkey ',c' fzf-cd-widget + +# --- Functions --- +function open-nvim { nvim; } +zle -N open-nvim open-nvim + +function m { + local tmp cwd + tmp="$(mktemp -t "yazi-cwd.XXXXXX")" + command yazi "$@" --cwd-file="$tmp" + IFS= read -r -d '' cwd <"$tmp" + [ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd" + rm -f -- "$tmp" +} + +# --- Prompt Configuration --- +prompt_char='>' + +function set_prompt { + local branch + branch="$(git branch --show-current 2>/dev/null)" + + if [[ "$PWD" == "$HOME" ]]; then + PROMPT="%F{magenta}%~%f $prompt_char " + elif [[ "$branch" != '' ]]; then + PROMPT="%F{magenta}%~%f ($branch) +$prompt_char " + else + PROMPT="%F{magenta}%~%f +$prompt_char " + fi +} +autoload -Uz add-zsh-hook +add-zsh-hook precmd set_prompt + +function set_prompt_char { + local old + old=$prompt_char + + if [[ $KEYMAP == vicmd && $REGION_ACTIVE != 0 ]]; then + prompt_char='v' + elif [[ $KEYMAP == vicmd ]]; then + prompt_char='<' + else + prompt_char='>' + fi + + if [[ $prompt_char != "$old" ]]; then + set_prompt + zle reset-prompt + fi +} +autoload -Uz add-zle-hook-widget +add-zle-hook-widget line-pre-redraw set_prompt_char + +# --- External Tools & Plugins --- +command -v mise >/dev/null && eval "$(mise activate zsh)" +command -v zoxide >/dev/null && eval "$(zoxide init zsh)" +command -v fzf >/dev/null && eval "$(fzf --zsh)" +command -v lsd >/dev/null && alias ls='lsd' + +if [[ -d ~/.zsh ]]; then + source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh + source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh + source ~/.zsh/zsh-history-substring-search/zsh-history-substring-search.zsh + + bindkey '^[[A' history-substring-search-up + bindkey '^[[B' history-substring-search-down + bindkey -M vicmd 'k' history-substring-search-up + bindkey -M vicmd 'j' history-substring-search-down +fi From 11d574fae213b57868efa3a763c076b992287326 Mon Sep 17 00:00:00 2001 From: mitchell Date: Thu, 9 Jul 2026 03:30:07 -0400 Subject: [PATCH 19/27] refactor(install_utils): convert to bash --- install_utils | 166 ++++++++++++++++++++++++-------------------------- 1 file changed, 81 insertions(+), 85 deletions(-) diff --git a/install_utils b/install_utils index 475957b..ea78f05 100755 --- a/install_utils +++ b/install_utils @@ -1,96 +1,92 @@ -#!/usr/bin/env fish +#!/bin/bash -function log -a message - echo \n"--- $message ---"\n -end +set -euo pipefail -set -l distro -set -l uname (uname) +# Function to log messages +log() { + echo -e "\n--- $1 ---\n" +} -if test $uname = Darwin - set distro mac -else if test -f /etc/os-release - set distro (grep '^ID=' /etc/os-release | string replace 'ID=' '' | string trim -c '"') +distro="" +uname_val=$(uname) + +if [ "$uname_val" = "Darwin" ]; then + distro="mac" +elif [ -f /etc/os-release ]; then + source /etc/os-release + distro=$ID else - echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)' - return 1 -end + echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)' + exit 1 +fi -set -l base_pkgs \ - fish \ - git \ - neovim \ - tmux \ - rsync \ - curl \ - less \ - fzf \ - mosh \ - lsd \ - ripgrep \ - bat \ - tree-sitter-cli \ - nodejs \ - zoxide \ - git-delta \ - stow +# Base packages array +base_pkgs=( + git + neovim + tmux + rsync + curl + less + fzf + mosh + lsd + ripgrep + bat + tree-sitter-cli + zoxide + git-delta + stow +) -set -l mac_pkgs \ - $base_pkgs \ - fd \ - yazi +# OS specific arrays +mac_pkgs=("${base_pkgs[@]}" fd yazi) +arch_pkgs=("${base_pkgs[@]}" fd yazi ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols-common ttf-nerd-fonts-symbols-mono) +debian_pkgs=("${base_pkgs[@]}" fd-find extrepo) +fedora_pkgs=("${base_pkgs[@]}" fd-find) -set -l arch_pkgs \ - $base_pkgs \ - fd \ - yazi \ - ttf-nerd-fonts-symbols \ - ttf-nerd-fonts-symbols-common \ - ttf-nerd-fonts-symbols-mono +case "$distro" in +mac) + log 'Installing packages with Homebrew' + brew install "${mac_pkgs[@]}" + ;; +arch) + log 'Installing yay' -set -l debian_pkgs \ - $base_pkgs \ - fd-find \ - extrepo + sudo pacman --sync --refresh --sysupgrade --noconfirm + sudo pacman --sync --needed --noconfirm base-devel go bat -set -l fedora_pkgs \ - $base_pkgs \ - fd-find + if [ ! -d "yay" ]; then + git clone https://aur.archlinux.org/yay.git + fi -switch $distro - case mac - log 'Installing packages with Homebrew' - brew install $mac_pkgs - case arch - log 'Installing yay' + cd yay + bat PKGBUILD + read -p 'Continue? (y/N): ' ready + if [[ "$ready" =~ ^[yY] ]]; then + makepkg --syncdeps --install --noconfirm + else + echo "Installation aborted." + exit 1 + fi + cd .. - sudo pacman --sync --refresh --sysupgrade --noconfirm - and sudo pacman --sync --needed --noconfirm base-devel go bat - or return - - test -d yay - or git clone https://aur.archlinux.org/yay.git - and cd yay - and bat PKGBUILD - and read -P 'Continue? (y/N): ' -l ready - and test "$ready" = y; or test "$ready" = Y - and makepkg --syncdeps --install --noconfirm - and cd .. - or return - - log 'Installing packages with yay' - - yay --sync --noconfirm $arch_pkgs - case debian - log 'Installing packages with APT' - sudo apt-get --quiet --yes update - and sudo apt-get --quiet --yes upgrade - and sudo apt-get --quiet --yes install $debian_pkgs - case fedora - log 'Installing packages with DNF' - sudo dnf upgrade --assumeyes - and sudo dnf --assumeyes install $fedora_pkgs - case '*' - echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)' - return 1 -end + log 'Installing packages with yay' + yay --sync --noconfirm "${arch_pkgs[@]}" + ;; +debian | ubuntu) + log 'Installing packages with APT' + sudo apt-get --quiet --yes update + sudo apt-get --quiet --yes upgrade + sudo apt-get --quiet --yes install "${debian_pkgs[@]}" + ;; +fedora | rhel | rocky | almalinux | centos) + log 'Installing packages with DNF' + sudo dnf upgrade --assumeyes + sudo dnf install --assumeyes --skip-broken "${fedora_pkgs[@]}" + ;; +*) + echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)' + exit 1 + ;; +esac From ae110cb07637a53686329fbfcd9b78eaa5d63edf Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 11 Jul 2026 15:29:51 -0400 Subject: [PATCH 20/27] feat(zsh): add .zsh with zsh-users plugins --- .gitmodules | 9 +++++++++ zsh/dot-zsh/zsh-autosuggestions | 1 + zsh/dot-zsh/zsh-history-substring-search | 1 + zsh/dot-zsh/zsh-syntax-highlighting | 1 + 4 files changed, 12 insertions(+) create mode 100644 .gitmodules create mode 160000 zsh/dot-zsh/zsh-autosuggestions create mode 160000 zsh/dot-zsh/zsh-history-substring-search create mode 160000 zsh/dot-zsh/zsh-syntax-highlighting diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..03d9733 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "zsh/dot-zsh/zsh-autosuggestions"] + path = zsh/dot-zsh/zsh-autosuggestions + url = https://github.com/zsh-users/zsh-autosuggestions.git +[submodule "zsh/dot-zsh/zsh-history-substring-search"] + path = zsh/dot-zsh/zsh-history-substring-search + url = https://github.com/zsh-users/zsh-history-substring-search.git +[submodule "zsh/dot-zsh/zsh-syntax-highlighting"] + path = zsh/dot-zsh/zsh-syntax-highlighting + url = https://github.com/zsh-users/zsh-syntax-highlighting.git diff --git a/zsh/dot-zsh/zsh-autosuggestions b/zsh/dot-zsh/zsh-autosuggestions new file mode 160000 index 0000000..85919cd --- /dev/null +++ b/zsh/dot-zsh/zsh-autosuggestions @@ -0,0 +1 @@ +Subproject commit 85919cd1ffa7d2d5412f6d3fe437ebdbeeec4fc5 diff --git a/zsh/dot-zsh/zsh-history-substring-search b/zsh/dot-zsh/zsh-history-substring-search new file mode 160000 index 0000000..14c8d2e --- /dev/null +++ b/zsh/dot-zsh/zsh-history-substring-search @@ -0,0 +1 @@ +Subproject commit 14c8d2e0ffaee98f2df9850b19944f32546fdea5 diff --git a/zsh/dot-zsh/zsh-syntax-highlighting b/zsh/dot-zsh/zsh-syntax-highlighting new file mode 160000 index 0000000..1d85c69 --- /dev/null +++ b/zsh/dot-zsh/zsh-syntax-highlighting @@ -0,0 +1 @@ +Subproject commit 1d85c692615a25fe2293bdd44b34c217d5d2bf04 From b7424c996537d398ba5dc7daf921a553565469b8 Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 11 Jul 2026 17:03:50 -0400 Subject: [PATCH 21/27] feat(zsh): add user and hostname to prompt --- zsh/dot-zshrc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zsh/dot-zshrc b/zsh/dot-zshrc index 9da5c05..26fd456 100644 --- a/zsh/dot-zshrc +++ b/zsh/dot-zshrc @@ -52,13 +52,13 @@ function set_prompt { branch="$(git branch --show-current 2>/dev/null)" if [[ "$PWD" == "$HOME" ]]; then - PROMPT="%F{magenta}%~%f $prompt_char " + PROMPT="%F{magenta}%~%f %n@%m $prompt_char " elif [[ "$branch" != '' ]]; then PROMPT="%F{magenta}%~%f ($branch) -$prompt_char " +%n@%m $prompt_char " else PROMPT="%F{magenta}%~%f -$prompt_char " +%n@%m $prompt_char " fi } autoload -Uz add-zsh-hook From 9abd76516a432ad69b11f929053ffcead04d61a4 Mon Sep 17 00:00:00 2001 From: mitchell Date: Sun, 12 Jul 2026 22:35:58 -0400 Subject: [PATCH 22/27] feat(zsh): add more aliases --- zsh/dot-zshrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zsh/dot-zshrc b/zsh/dot-zshrc index 26fd456..361fc21 100644 --- a/zsh/dot-zshrc +++ b/zsh/dot-zshrc @@ -23,6 +23,8 @@ alias o='opencode run --thinking' alias oc='opencode' alias sctl='sudo systemctl' alias uctl='systemctl --user' +alias q='exit' +alias fwl='sudo firewall-cmd' # --- Keybinds --- bindkey '.,' open-nvim From 080e4fcd5ff3ff84b0fe1ae2cfd66755e9ca74d3 Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 25 Jul 2026 15:44:45 -0400 Subject: [PATCH 23/27] feat(fish): add vclone function --- fish/dot-config/fish/functions/vclone.fish | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 fish/dot-config/fish/functions/vclone.fish diff --git a/fish/dot-config/fish/functions/vclone.fish b/fish/dot-config/fish/functions/vclone.fish new file mode 100644 index 0000000..c5ea082 --- /dev/null +++ b/fish/dot-config/fish/functions/vclone.fish @@ -0,0 +1,4 @@ +function vclone -a source image -d 'Clones and resizes a VM image to 40G' + virsh vol-clone $source $image default + virsh vol-resize $image 40G default +end From 061b0923bccdfc548c329fe0e2237e1f290dbb2e Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 25 Jul 2026 15:47:36 -0400 Subject: [PATCH 24/27] feat(sway): add config for swaywm; add filetype to zsh config --- sway/dot-config/sway/config | 241 ++++++++++++++++++++++++++++++++++++ zsh/dot-zshenv | 1 + zsh/dot-zshrc | 1 + 3 files changed, 243 insertions(+) create mode 100644 sway/dot-config/sway/config diff --git a/sway/dot-config/sway/config b/sway/dot-config/sway/config new file mode 100644 index 0000000..92b5d86 --- /dev/null +++ b/sway/dot-config/sway/config @@ -0,0 +1,241 @@ +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l +set $term ghostty +set $ipc noctalia msg + +gaps inner 8 + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +# output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs + +### Idle configuration +# +# Example configuration: +# +# exec swayidle -w \ +# timeout 300 'swaylock -f -c 000000' \ +# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ +# before-sleep 'swaylock -f -c 000000' +# +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 300 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. + +### Input configuration +# +# Example configuration: +# +# input type:touchpad { +# dwt enabled +# tap enabled +# natural_scroll enabled +# middle_emulation enabled +# } +# +# input type:keyboard { +# xkb_layout "eu" +# } +# +# You can also configure each device individually. +# Read `man 5 sway-input` for more information about this section. + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+q kill + + bindsym $mod+space exec $ipc panel-toggle launcher + bindsym $mod+s exec $ipc panel-toggle control-center + bindsym $mod+comma exec $ipc settings-toggle + bindsym $mod+Mod1+q exec $ipc panel-toggle session + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right + # Center window + bindsym $mod+c move position center +# +# Workspaces: +# + # Switch to workspace + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 10 + # Move focused container to workspace + bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+2 move container to workspace number 2 + bindsym $mod+Shift+3 move container to workspace number 3 + bindsym $mod+Shift+4 move container to workspace number 4 + bindsym $mod+Shift+5 move container to workspace number 5 + bindsym $mod+Shift+6 move container to workspace number 6 + bindsym $mod+Shift+7 move container to workspace number 7 + bindsym $mod+Shift+8 move container to workspace number 8 + bindsym $mod+Shift+9 move container to workspace number 9 + bindsym $mod+Shift+0 move container to workspace number 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. + bindsym $mod+bracketleft workspace prev + bindsym $mod+bracketright workspace next + bindsym $mod+Shift+bracketleft move container to workspace prev + bindsym $mod+Shift+bracketright move container to workspace next + + bindgesture swipe:left workspace prev + bindgesture swipe:right workspace next + bindgesture swipe:4:left move container to workspace prev + bindgesture swipe:4:right move container to workspace next + +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + bindsym $mod+t layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+Mod1+space focus mode_toggle + + # Move focus to the parent container + bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" +# +# Utilities: +# + # Special keys to adjust volume via PulseAudio + bindsym --locked XF86AudioRaiseVolume exec $ipc volume-up + bindsym --locked XF86AudioLowerVolume exec $ipc volume-down + bindsym --locked XF86AudioMute exec $ipc volume-mute + + # Special keys to control media via playerctl + bindsym --locked XF86AudioPlay exec playerctl play-pause + bindsym --locked XF86AudioPause exec playerctl play-pause + bindsym --locked XF86AudioPrev exec playerctl previous + bindsym --locked XF86AudioNext exec playerctl next + bindsym --locked XF86AudioStop exec playerctl stop + + # Special keys to adjust brightness via brightnessctl + bindsym --locked XF86MonBrightnessUp exec $ipc brightness-up + bindsym --locked XF86MonBrightnessDown exec $ipc brightness-down + + # Special key to take a screenshot with grim + bindsym Print exec grim + + +include /etc/sway/config.d/* + +exec noctalia + +include ~/.config/sway/noctalia diff --git a/zsh/dot-zshenv b/zsh/dot-zshenv index b71684c..a05a922 100644 --- a/zsh/dot-zshenv +++ b/zsh/dot-zshenv @@ -1,3 +1,4 @@ +# vim: ft=zsh export EDITOR='nvim' export DIFFPROG='delta' diff --git a/zsh/dot-zshrc b/zsh/dot-zshrc index 361fc21..ca6d79b 100644 --- a/zsh/dot-zshrc +++ b/zsh/dot-zshrc @@ -1,3 +1,4 @@ +# vim: ft=zsh # --- History --- HISTFILE=~/.histfile HISTSIZE=1000 From 69ca2dd73be206f10363ce8d918ffec4fbafb953 Mon Sep 17 00:00:00 2001 From: mitchell Date: Mon, 27 Jul 2026 00:39:24 -0400 Subject: [PATCH 25/27] chore: update arch scripts and add `vc` alias --- archiso/install_arch | 2 +- fish/dot-config/fish/conf.d/define_aliases.fish | 1 + install_utils | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/archiso/install_arch b/archiso/install_arch index cdb6bfc..adc61dd 100755 --- a/archiso/install_arch +++ b/archiso/install_arch @@ -95,7 +95,7 @@ function set_locale sed -i 's/#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen locale-gen echo 'LANG=en_US.UTF-8' >/etc/locale.conf - touch /etc/vconsole.conf + echo 'KEYMAP=us' >/etc/vconsole.conf end function set_hostname -a new_hostname diff --git a/fish/dot-config/fish/conf.d/define_aliases.fish b/fish/dot-config/fish/conf.d/define_aliases.fish index 0ffc08b..d82dfbd 100644 --- a/fish/dot-config/fish/conf.d/define_aliases.fish +++ b/fish/dot-config/fish/conf.d/define_aliases.fish @@ -19,5 +19,6 @@ if status is-interactive alias vv 'virt-viewer' alias vi 'virt-install' alias vs 'virsh' + alias vc 'virsh console' end end diff --git a/install_utils b/install_utils index ea78f05..5e7bc18 100755 --- a/install_utils +++ b/install_utils @@ -56,6 +56,7 @@ arch) sudo pacman --sync --refresh --sysupgrade --noconfirm sudo pacman --sync --needed --noconfirm base-devel go bat + cd /tmp if [ ! -d "yay" ]; then git clone https://aur.archlinux.org/yay.git fi @@ -69,9 +70,10 @@ arch) echo "Installation aborted." exit 1 fi - cd .. log 'Installing packages with yay' + yay -Y --save --devel + yay -Y --save --answerdiff All yay --sync --noconfirm "${arch_pkgs[@]}" ;; debian | ubuntu) From 46b25218f8328b93a893466dd94461932b41c32c Mon Sep 17 00:00:00 2001 From: mitchell Date: Mon, 27 Jul 2026 19:51:09 -0400 Subject: [PATCH 26/27] feat(sway): add 3 preset resize sizes --- sway/dot-config/sway/config | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sway/dot-config/sway/config b/sway/dot-config/sway/config index 92b5d86..5f99c88 100644 --- a/sway/dot-config/sway/config +++ b/sway/dot-config/sway/config @@ -206,6 +206,10 @@ mode "resize" { bindsym Up resize shrink height 10px bindsym Right resize grow width 10px + bindsym 1 resize set 50 ppt 100 ppt + bindsym 2 resize set 65 ppt 100 ppt + bindsym 3 resize set 70 ppt 100 ppt + # Return to default mode bindsym Return mode "default" bindsym Escape mode "default" From 8dc22335bc5d03b499e9c2b881a2e78913d9d278 Mon Sep 17 00:00:00 2001 From: mitchell Date: Thu, 30 Jul 2026 01:48:17 -0400 Subject: [PATCH 27/27] chore(README): update description and lists --- README.md | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index f895a31..3494208 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,32 @@ # mitchell's dotfiles This mostly exists for my convenient bootstrapping onto new systems. I would generally recommend -drawing from individual applications' configurations as inspiration for your own dotfiles. However, -the included scripts should be generalized enough to work on anybody's machines. +drawing from individual applications' configurations as inspiration for your own dotfiles. But I use +Stow to link each config module into my home dir, and things should be general enough to use +yourself. This repo contains my preferred configurations for: - neovim - fish shell +- zsh shell - git - tmux -- wezterm (X11/macOS) -- ghostty (X11/Wayland) -- keepassxc -- bspwm (X11) -- sxhkd (X11) -- Niri (Wayland) -- yabaiwm (macOS) -- skhd (macOS) +- ghostty +- wezterm +- bspwm/sxhkd (x11) +- sway (wayland) +- niri (wayland) +- yabai/skhd (macos) ## Scripts -### `sync` - -**Dependencies** - -- fish -- git -- rsync -- curl - -**Description** - -> **Warning:** This will overwrite any existing files by the same name. - -Syncs all configuration files found in this repository to your home folder. - -To run sync script using curl: `curl https://raw.githubusercontent.com/mitchell/dotfiles/master/sync | fish` - ### `install_utils` **Dependencies** - git -- fish +- bash **Description**