Compare commits
30 Commits
d2888a9b61
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| e4258d8ec1 | |||
| 13bade3a4d | |||
| e251e675f4 | |||
| f3522bf985 | |||
| 9d61d9f418 | |||
| 738a15a00d | |||
| 46a2b9fd61 | |||
| 90922ccd77 | |||
| eeb24c1233 | |||
| 34ad6a3aa1 | |||
| 9c9d0188bb | |||
| 44a7ecce2e | |||
| 26939a3be8 | |||
| 855c2f7434 | |||
| 0a7d920b58 | |||
| a93d11a2c8 | |||
| 52adaeccbd | |||
| e1ce1dbed8 | |||
| e08d911cd2 | |||
| d965b7253d | |||
| 3387bd40a9 | |||
| 2fd2cd8439 | |||
| 6e71257558 | |||
| 115a8cdc9d | |||
| 90bd05f36e | |||
| 65c538cb25 | |||
| 55ef5235f1 | |||
| 3041aec614 | |||
| 7ce41d3f2c | |||
| cbdf04ed4e |
29
README.md
29
README.md
@@ -1,29 +1,8 @@
|
|||||||
Tony's DotFiles
|
# Tony's DotFiles
|
||||||
===============
|
|
||||||
|
|
||||||
This is a collection of all the files that I want very easily available on any new machine that I sit down at. The install script is designed to be run either from the cloned repository or as a stand-alone script through curl. See the usage details for examples.
|
## Scripts
|
||||||
|
|
||||||
WARNING
|
`install-packages.sh` is not really meant to be run automatically, and is instead mostly just documentation of what packages I have installed and how they were added.
|
||||||
-------
|
|
||||||
|
|
||||||
The install script provided with these dotfiles is destructive and will overwrite files without asking. To ensure that you do not lose anything important please backup your .bashrc, .gitconfig, .gitignore, .inputrc, .tmux.conf, and .vimrc files in your home directory.
|
`run-stow.sh` just links the dotfiles from this repo into their correct locations.
|
||||||
|
|
||||||
I can not be held responsible if you lose any important data.
|
|
||||||
|
|
||||||
Usage
|
|
||||||
-----
|
|
||||||
|
|
||||||
**Method 1**
|
|
||||||
|
|
||||||
The first method requires cloning the repository and running the install script manually.
|
|
||||||
|
|
||||||
git clone ssh://git@git.grosinger.net:22322/tgrosinger/dotfiles.git ~/.dotfiles
|
|
||||||
cd ~/.dotfiles
|
|
||||||
./install.sh
|
|
||||||
|
|
||||||
**Method 2**
|
|
||||||
|
|
||||||
The second method does not require cloning the repository however it does require that Git and Curl is installed on the target machine.
|
|
||||||
|
|
||||||
\curl -sSL https://git.grosinger.net/tgrosinger/dotfiles/raw/branch/main/install.sh | bash
|
|
||||||
|
|
||||||
|
|||||||
13
atuin.toml
13
atuin.toml
@@ -1,13 +0,0 @@
|
|||||||
# https://docs.atuin.sh/configuration/config/
|
|
||||||
|
|
||||||
workspaces = true
|
|
||||||
keymap_mode = "auto"
|
|
||||||
enter_accept = true
|
|
||||||
|
|
||||||
history_filter = [
|
|
||||||
"^cd$",
|
|
||||||
"^lg$",
|
|
||||||
"^ls$",
|
|
||||||
"^clear$",
|
|
||||||
"^vim$",
|
|
||||||
]
|
|
||||||
9
bin/linux/mount-voyager.sh
Executable file
9
bin/linux/mount-voyager.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
SHARE="tony"
|
||||||
|
MOUNTPOINT="${HOME}/Voyager"
|
||||||
|
HOST="192.168.1.66"
|
||||||
|
CREDENTIALS="${HOME}/.voyager-credentials"
|
||||||
|
|
||||||
|
mkdir -p ${MOUNTPOINT}
|
||||||
|
sudo mount -t cifs -o credentials=${CREDENTIALS},uid=$(id -u),gid=$(id -g) //${HOST}/${SHARE} ${MOUNTPOINT}
|
||||||
8
bin/linux/soundcloud-dl
Executable file
8
bin/linux/soundcloud-dl
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#/bin/bash
|
||||||
|
|
||||||
|
podman run --rm -i \
|
||||||
|
-v ${HOME}/Music:/downloads:z \
|
||||||
|
--userns keep-id:uid=1000,gid=1000 \
|
||||||
|
--entrypoint scdl \
|
||||||
|
yt-dlp:latest $@
|
||||||
|
|
||||||
8
bin/linux/spotify-dl
Executable file
8
bin/linux/spotify-dl
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#/bin/bash
|
||||||
|
|
||||||
|
podman run --rm -i \
|
||||||
|
-v ${HOME}/Music:/downloads:z \
|
||||||
|
--userns keep-id:uid=1000,gid=1000 \
|
||||||
|
--entrypoint spotdl \
|
||||||
|
yt-dlp:latest $@
|
||||||
|
|
||||||
7
bin/linux/youtube-dl
Executable file
7
bin/linux/youtube-dl
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#/bin/bash
|
||||||
|
|
||||||
|
podman run --rm \
|
||||||
|
-v ${HOME}/Videos/youtube:/downloads:z \
|
||||||
|
--userns keep-id:uid=1000,gid=1000 \
|
||||||
|
yt-dlp:latest -S 'res:1080' $@
|
||||||
|
|
||||||
7
bin/linux/youtube-dl-playlist
Executable file
7
bin/linux/youtube-dl-playlist
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#/bin/bash
|
||||||
|
|
||||||
|
podman run --rm \
|
||||||
|
-v ${HOME}/Videos/youtube:/downloads:z \
|
||||||
|
--userns keep-id:uid=1000,gid=1000 \
|
||||||
|
yt-dlp:latest --embed-metadata -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" -S 'res:1080' $@
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ export GPG_TTY=$(tty)
|
|||||||
export PATH=$PATH:${HOME}/go/bin
|
export PATH=$PATH:${HOME}/go/bin
|
||||||
|
|
||||||
export TERM="xterm-256color"
|
export TERM="xterm-256color"
|
||||||
export EDITOR=$(which vim)
|
export EDITOR=$(which nvim)
|
||||||
|
|
||||||
# Adding applications to path
|
# Adding applications to path
|
||||||
if [[ -d ${HOME}/.dotfiles/bin/linux ]]; then
|
if [[ -d ${HOME}/.dotfiles/bin/linux ]]; then
|
||||||
@@ -280,5 +280,7 @@
|
|||||||
"typescript.inlayHints.propertyDeclarationTypes.enabled": true,
|
"typescript.inlayHints.propertyDeclarationTypes.enabled": true,
|
||||||
"typescript.inlayHints.variableTypes.enabled": true,
|
"typescript.inlayHints.variableTypes.enabled": true,
|
||||||
"editor.inlayHints.fontFamily": "Sriracha",
|
"editor.inlayHints.fontFamily": "Sriracha",
|
||||||
"github.copilot.nextEditSuggestions.enabled": true
|
"github.copilot.nextEditSuggestions.enabled": true,
|
||||||
|
"gitlens.ai.model": "vscode",
|
||||||
|
"gitlens.ai.vscode.model": "copilot:gpt-4.1"
|
||||||
}
|
}
|
||||||
10
home/.config/alacritty/alacritty.toml
Normal file
10
home/.config/alacritty/alacritty.toml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[general]
|
||||||
|
import = [
|
||||||
|
"~/.config/alacritty/themes/catppuccin_latte.toml"
|
||||||
|
]
|
||||||
|
|
||||||
|
[font]
|
||||||
|
normal = { family = "JetBrainsMonoNerdFontMono", style = "Regular" }
|
||||||
|
bold = { family = "JetBrainsMonoNerdFontMono", style = "Bold" }
|
||||||
|
italic = { family = "JetBrainsMonoNerdFontMono", style = "Italic" }
|
||||||
|
bold_italic = { family = "JetBrainsMonoNerdFontMono", style = "BoldItalic" }
|
||||||
76
home/.config/alacritty/themes/catppuccin_latte.toml
Normal file
76
home/.config/alacritty/themes/catppuccin_latte.toml
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
# Default colors
|
||||||
|
[colors.primary]
|
||||||
|
background = '#EFF1F5' # base
|
||||||
|
foreground = '#4C4F69' # text
|
||||||
|
# Bright and dim foreground colors
|
||||||
|
dim_foreground = '#4C4F69' # text
|
||||||
|
bright_foreground = '#4C4F69' # text
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
[colors.cursor]
|
||||||
|
text = '#EFF1F5' # base
|
||||||
|
cursor = '#DC8A78' # rosewater
|
||||||
|
|
||||||
|
[colors.vi_mode_cursor]
|
||||||
|
text = '#EFF1F5' # base
|
||||||
|
cursor = '#7287FD' # lavender
|
||||||
|
|
||||||
|
# Search colors
|
||||||
|
[colors.search.matches]
|
||||||
|
foreground = '#EFF1F5' # base
|
||||||
|
background = '#6C6F85' # subtext0
|
||||||
|
|
||||||
|
[colors.search.focused_match]
|
||||||
|
foreground = '#EFF1F5' # base
|
||||||
|
background = '#40A02B' # green
|
||||||
|
|
||||||
|
[colors.footer_bar]
|
||||||
|
foreground = '#EFF1F5' # base
|
||||||
|
background = '#6C6F85' # subtext0
|
||||||
|
|
||||||
|
# Keyboard regex hints
|
||||||
|
[colors.hints.start]
|
||||||
|
foreground = '#EFF1F5' # base
|
||||||
|
background = '#DF8E1D' # yellow
|
||||||
|
|
||||||
|
[colors.hints.end]
|
||||||
|
foreground = '#EFF1F5' # base
|
||||||
|
background = '#6C6F85' # subtext0
|
||||||
|
|
||||||
|
# Selection colors
|
||||||
|
[colors.selection]
|
||||||
|
text = '#EFF1F5' # base
|
||||||
|
background = '#DC8A78' # rosewater
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
[colors.normal]
|
||||||
|
black = '#5C5F77' # subtext1
|
||||||
|
red = '#D20F39' # red
|
||||||
|
green = '#40A02B' # green
|
||||||
|
yellow = '#DF8E1D' # yellow
|
||||||
|
blue = '#1E66F5' # blue
|
||||||
|
magenta = '#EA76CB' # pink
|
||||||
|
cyan = '#179299' # teal
|
||||||
|
white = '#ACB0BE' # surface2
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
[colors.bright]
|
||||||
|
black = '#6C6F85' # subtext0
|
||||||
|
red = '#D20F39' # red
|
||||||
|
green = '#40A02B' # green
|
||||||
|
yellow = '#DF8E1D' # yellow
|
||||||
|
blue = '#1E66F5' # blue
|
||||||
|
magenta = '#EA76CB' # pink
|
||||||
|
cyan = '#179299' # teal
|
||||||
|
white = '#BCC0CC' # surface1
|
||||||
|
|
||||||
|
# Dim colors
|
||||||
|
[colors.dim]
|
||||||
|
black = '#5C5F77' # subtext1
|
||||||
|
red = '#D20F39' # red
|
||||||
|
green = '#40A02B' # green
|
||||||
|
yellow = '#DF8E1D' # yellow
|
||||||
|
blue = '#1E66F5' # blue
|
||||||
|
magenta = '#EA76CB' # pink
|
||||||
|
cyan = '#179299' # teal
|
||||||
|
white = '#ACB0BE' # surface2
|
||||||
20
home/.config/atuin/config.toml
Normal file
20
home/.config/atuin/config.toml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# https://docs.atuin.sh/configuration/config/
|
||||||
|
|
||||||
|
workspaces = true
|
||||||
|
keymap_mode = "auto"
|
||||||
|
enter_accept = true
|
||||||
|
|
||||||
|
history_filter = [
|
||||||
|
"^cd$",
|
||||||
|
"^lg$",
|
||||||
|
"^ls$",
|
||||||
|
"^clear$",
|
||||||
|
"^vim$",
|
||||||
|
]
|
||||||
|
|
||||||
|
[search]
|
||||||
|
## The list of enabled filter modes, in order of priority.
|
||||||
|
## The "workspace" mode is skipped when not in a workspace or workspaces = false.
|
||||||
|
## Default filter mode can be overridden with the filter_mode setting.
|
||||||
|
#filters = [ "global", "host", "session", "session-preload", "workspace", "directory" ]
|
||||||
|
filters = [ "global", "workspace", "directory" ]
|
||||||
1
home/.config/bat/config
Normal file
1
home/.config/bat/config
Normal file
@@ -0,0 +1 @@
|
|||||||
|
--theme="Catppuccin Latte"
|
||||||
2112
home/.config/bat/themes/Catppuccin Latte.tmTheme
Normal file
2112
home/.config/bat/themes/Catppuccin Latte.tmTheme
Normal file
File diff suppressed because it is too large
Load Diff
23
home/.config/dunst/dunstrc
Normal file
23
home/.config/dunst/dunstrc
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
#
|
||||||
|
# Catppuccin Latte
|
||||||
|
# https://github.com/catppuccin/dunst/blob/main/themes/latte.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[global]
|
||||||
|
frame_color = "#1e66f5"
|
||||||
|
separator_color= frame
|
||||||
|
highlight = "#1e66f5"
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
background = "#eff1f5"
|
||||||
|
foreground = "#4c4f69"
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#eff1f5"
|
||||||
|
foreground = "#4c4f69"
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#eff1f5"
|
||||||
|
foreground = "#4c4f69"
|
||||||
|
frame_color = "#fe640b"
|
||||||
268
home/.config/fish/completions/bat.fish
Normal file
268
home/.config/fish/completions/bat.fish
Normal file
@@ -0,0 +1,268 @@
|
|||||||
|
# Fish Shell Completions
|
||||||
|
# Copy or symlink to $XDG_CONFIG_HOME/fish/completions/bat.fish
|
||||||
|
# ($XDG_CONFIG_HOME is usually set to ~/.config)
|
||||||
|
|
||||||
|
# `bat` is `batcat` on Debian and Ubuntu
|
||||||
|
set bat bat
|
||||||
|
|
||||||
|
# Helper functions:
|
||||||
|
|
||||||
|
function __bat_complete_files -a token
|
||||||
|
# Cheat to complete files by calling `complete -C` on a fake command name,
|
||||||
|
# like `__fish_complete_directories` does.
|
||||||
|
set -l fake_command aaabccccdeeeeefffffffffgghhhhhhiiiii
|
||||||
|
complete -C"$fake_command $token"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __bat_complete_one_language -a comp
|
||||||
|
command $bat --list-languages | string split -f1 : | string match -e "$comp"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __bat_complete_list_languages
|
||||||
|
for spec in (command $bat --list-languages)
|
||||||
|
set -l name (string split -f1 : $spec)
|
||||||
|
for ext in (string split -f2 : $spec | string split ,)
|
||||||
|
test -n "$ext"; or continue
|
||||||
|
string match -rq '[/*]' $ext; and continue
|
||||||
|
printf "%s\t%s\n" $ext $name
|
||||||
|
end
|
||||||
|
printf "%s\t\n" $name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __bat_complete_map_syntax
|
||||||
|
set -l token (commandline -ct)
|
||||||
|
|
||||||
|
if string match -qr '(?<glob>.+):(?<syntax>.*)' -- $token
|
||||||
|
# If token ends with a colon, complete with the list of language names.
|
||||||
|
set -f comps $glob:(__bat_complete_one_language $syntax)
|
||||||
|
else if string match -qr '\*' -- $token
|
||||||
|
# If token contains a globbing character (`*`), complete only possible
|
||||||
|
# globs in the current directory
|
||||||
|
set -f comps (__bat_complete_files $token | string match -er '[*]'):
|
||||||
|
else
|
||||||
|
# Complete files (and globs).
|
||||||
|
set -f comps (__bat_complete_files $token | string match -erv '/$'):
|
||||||
|
end
|
||||||
|
|
||||||
|
if set -q comps[1]
|
||||||
|
printf "%s\t\n" $comps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __bat_cache_subcommand
|
||||||
|
__fish_seen_subcommand_from cache
|
||||||
|
end
|
||||||
|
|
||||||
|
# Returns true if no exclusive arguments seen.
|
||||||
|
function __bat_no_excl_args
|
||||||
|
not __bat_cache_subcommand; and not __fish_seen_argument \
|
||||||
|
-s h -l help \
|
||||||
|
-s V -l version \
|
||||||
|
-l acknowledgements \
|
||||||
|
-l config-dir -l config-file \
|
||||||
|
-l diagnostic \
|
||||||
|
-l list-languages -l list-themes
|
||||||
|
end
|
||||||
|
|
||||||
|
# Returns true if the 'cache' subcommand is seen without any exclusive arguments.
|
||||||
|
function __bat_cache_no_excl
|
||||||
|
__bat_cache_subcommand; and not __fish_seen_argument \
|
||||||
|
-s h -l help \
|
||||||
|
-l acknowledgements -l build -l clear
|
||||||
|
end
|
||||||
|
|
||||||
|
function __bat_style_opts
|
||||||
|
set -l style_opts \
|
||||||
|
"default,recommended components" \
|
||||||
|
"auto,same as 'default' unless piped" \
|
||||||
|
"full,all components" \
|
||||||
|
"plain,no components" \
|
||||||
|
"changes,Git change markers" \
|
||||||
|
"header,alias for header-filename" \
|
||||||
|
"header-filename,filename above content" \
|
||||||
|
"header-filesize,filesize above content" \
|
||||||
|
"grid,lines b/w sidebar/header/content" \
|
||||||
|
"numbers,line numbers in sidebar" \
|
||||||
|
"rule,separate files" \
|
||||||
|
"snip,separate ranges"
|
||||||
|
|
||||||
|
string replace , \t $style_opts
|
||||||
|
end
|
||||||
|
|
||||||
|
# Use option argument descriptions to indicate which is the default, saving
|
||||||
|
# horizontal space and making sure the option description isn't truncated.
|
||||||
|
set -l color_opts '
|
||||||
|
auto\tdefault
|
||||||
|
never\t
|
||||||
|
always\t
|
||||||
|
'
|
||||||
|
set -l decorations_opts $color_opts
|
||||||
|
set -l paging_opts $color_opts
|
||||||
|
|
||||||
|
# Include some examples so we can indicate the default.
|
||||||
|
set -l pager_opts '
|
||||||
|
less\tdefault
|
||||||
|
less\ -FR\t
|
||||||
|
more\t
|
||||||
|
vimpager\t
|
||||||
|
builtin\t
|
||||||
|
'
|
||||||
|
|
||||||
|
set -l italic_text_opts '
|
||||||
|
always\t
|
||||||
|
never\tdefault
|
||||||
|
'
|
||||||
|
|
||||||
|
set -l wrap_opts '
|
||||||
|
auto\tdefault
|
||||||
|
never\t
|
||||||
|
character\t
|
||||||
|
'
|
||||||
|
|
||||||
|
# While --tabs theoretically takes any number, most people should be OK with these.
|
||||||
|
# Specifying a list lets us explain what 0 does.
|
||||||
|
set -l tabs_opts '
|
||||||
|
0\tpass\ tabs\ through\ directly
|
||||||
|
1\t
|
||||||
|
2\t
|
||||||
|
4\t
|
||||||
|
8\t
|
||||||
|
'
|
||||||
|
|
||||||
|
set -l special_themes '
|
||||||
|
auto\tdefault,\ Choose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||||
|
auto:always\tChoose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||||
|
auto:system\tChoose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||||
|
dark\tUse\ the\ theme\ specified\ by\ --theme-dark
|
||||||
|
light\tUse\ the\ theme\ specified\ by\ --theme-light
|
||||||
|
'
|
||||||
|
|
||||||
|
# Completions:
|
||||||
|
|
||||||
|
complete -c $bat -l acknowledgements -d "Print acknowledgements" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -l binary -x -a "no-printing as-text" -d "How to treat binary content" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l cache-dir -f -d "Show bat's cache directory" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -s c -l chop-long-lines -d "Truncate all lines longer than screen width" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l color -x -a "$color_opts" -d "When to use colored output" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l completion -x -a "bash fish zsh ps1" -d "Show shell completion for a certain shell" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -l config-dir -f -d "Display location of configuration directory" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -l config-file -f -d "Display location of configuration file" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -l decorations -x -a "$decorations_opts" -d "When to use --style decorations" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l diagnostic -d "Print diagnostic info for bug reports" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -s d -l diff -d "Only show lines with Git changes" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l diff-context -x -d "Show N context lines around Git changes" -n "__fish_seen_argument -s d -l diff"
|
||||||
|
|
||||||
|
complete -c $bat -l generate-config-file -f -d "Generates a default configuration file" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -l file-name -x -d "Specify the display name" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s f -l force-colorization -d "Force color and decorations" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s h -d "Print a concise overview" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -l help -f -d "Print all help information" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -s H -l highlight-line -x -d "Highlight line(s) N[:M]" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l ignored-suffix -x -d "Ignore extension" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l italic-text -x -a "$italic_text_opts" -d "When to use italic text in the output" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s l -l language -x -k -a "(__bat_complete_list_languages)" -d "Set the syntax highlighting language" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l lessopen -d "Enable the $LESSOPEN preprocessor" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -s r -l line-range -x -d "Only print lines [M]:[N] (either optional)" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l list-languages -f -d "List syntax highlighting languages" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -l list-themes -f -d "List syntax highlighting themes" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -s m -l map-syntax -x -a "(__bat_complete_map_syntax)" -d "Map <glob pattern>:<language syntax>" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l no-config -d "Do not use the configuration file"
|
||||||
|
|
||||||
|
complete -c $bat -l no-custom-assets -d "Do not load custom assets"
|
||||||
|
|
||||||
|
complete -c $bat -l no-lessopen -d "Disable the $LESSOPEN preprocessor if enabled (overrides --lessopen)"
|
||||||
|
|
||||||
|
complete -c $bat -l nonprintable-notation -x -a "unicode caret" -d "Set notation for non-printable characters" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s n -l number -d "Only show line numbers, no other decorations" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l no-paging -d "Alias for --paging=never" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l pager -x -a "$pager_opts" -d "Which pager to use" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l paging -x -a "$paging_opts" -d "When to use the pager" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s p -l plain -d "Show plain style" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l set-terminal-title -d "Sets terminal title to filenames when using a pager" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s A -l show-all -d "Show non-printable characters" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s s -l squeeze-blank -d "Squeeze consecutive empty lines into a single empty line" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l squeeze-limit -x -d "Set the maximum number of consecutive empty lines to be printed" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l strip-ansi -x -a "auto never always" -d "Specify when to strip ANSI escape sequences from the input" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s p -l plain -d "Disable decorations" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -o pp -d "Disable decorations and paging" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s P -d "Disable paging" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l style -x -k -a "(__fish_complete_list , __bat_style_opts)" -d "Specify which non-content elements to display" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l tabs -x -a "$tabs_opts" -d "Set tab width" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l terminal-width -x -d "Set terminal <width>, +<offset>, or -<offset>" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l theme -x -a "$special_themes(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l theme-dark -x -a "(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme for dark backgrounds" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l theme-light -x -a "(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme for light backgrounds" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s u -l unbuffered -d "This option exists for POSIX-compliance reasons" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s V -l version -f -d "Show version information" -n __fish_is_first_arg
|
||||||
|
|
||||||
|
complete -c $bat -l wrap -x -a "$wrap_opts" -d "Text-wrapping mode" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
# Sub-command 'cache' completions
|
||||||
|
## Completion of the 'cache' command itself is removed for better UX
|
||||||
|
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
|
||||||
|
|
||||||
|
complete -c $bat -l build -f -d "Parse new definitions into cache" -n __bat_cache_no_excl
|
||||||
|
|
||||||
|
complete -c $bat -l clear -f -d "Reset definitions to defaults" -n __bat_cache_no_excl
|
||||||
|
|
||||||
|
complete -c $bat -l blank -f -d "Create new data instead of appending" -n "__bat_cache_subcommand; and not __fish_seen_argument -l clear"
|
||||||
|
|
||||||
|
complete -c $bat -l source -x -a "(__fish_complete_directories)" -d "Load syntaxes and themes from DIR" -n "__bat_cache_subcommand; and not __fish_seen_argument -l clear"
|
||||||
|
|
||||||
|
complete -c $bat -l target -x -a "(__fish_complete_directories)" -d "Store cache in DIR" -n __bat_cache_subcommand
|
||||||
|
|
||||||
|
complete -c $bat -l acknowledgements -d "Build acknowledgements.bin" -n __bat_cache_no_excl
|
||||||
|
|
||||||
|
complete -c $bat -s h -d "Print a concise overview of $bat-cache help" -n __bat_cache_no_excl
|
||||||
|
|
||||||
|
complete -c $bat -l help -f -d "Print all $bat-cache help" -n __bat_cache_no_excl
|
||||||
|
|
||||||
|
# vim:ft=fish
|
||||||
|
|
||||||
235
home/.config/fish/completions/devbox.fish
Normal file
235
home/.config/fish/completions/devbox.fish
Normal file
@@ -0,0 +1,235 @@
|
|||||||
|
# fish completion for devbox -*- shell-script -*-
|
||||||
|
|
||||||
|
function __devbox_debug
|
||||||
|
set -l file "$BASH_COMP_DEBUG_FILE"
|
||||||
|
if test -n "$file"
|
||||||
|
echo "$argv" >> $file
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __devbox_perform_completion
|
||||||
|
__devbox_debug "Starting __devbox_perform_completion"
|
||||||
|
|
||||||
|
# Extract all args except the last one
|
||||||
|
set -l args (commandline -opc)
|
||||||
|
# Extract the last arg and escape it in case it is a space
|
||||||
|
set -l lastArg (string escape -- (commandline -ct))
|
||||||
|
|
||||||
|
__devbox_debug "args: $args"
|
||||||
|
__devbox_debug "last arg: $lastArg"
|
||||||
|
|
||||||
|
# Disable ActiveHelp which is not supported for fish shell
|
||||||
|
set -l requestComp "DEVBOX_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
|
||||||
|
|
||||||
|
__devbox_debug "Calling $requestComp"
|
||||||
|
set -l results (eval $requestComp 2> /dev/null)
|
||||||
|
|
||||||
|
# Some programs may output extra empty lines after the directive.
|
||||||
|
# Let's ignore them or else it will break completion.
|
||||||
|
# Ref: https://github.com/spf13/cobra/issues/1279
|
||||||
|
for line in $results[-1..1]
|
||||||
|
if test (string trim -- $line) = ""
|
||||||
|
# Found an empty line, remove it
|
||||||
|
set results $results[1..-2]
|
||||||
|
else
|
||||||
|
# Found non-empty line, we have our proper output
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l comps $results[1..-2]
|
||||||
|
set -l directiveLine $results[-1]
|
||||||
|
|
||||||
|
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
|
||||||
|
# completions must be prefixed with the flag
|
||||||
|
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
|
||||||
|
|
||||||
|
__devbox_debug "Comps: $comps"
|
||||||
|
__devbox_debug "DirectiveLine: $directiveLine"
|
||||||
|
__devbox_debug "flagPrefix: $flagPrefix"
|
||||||
|
|
||||||
|
for comp in $comps
|
||||||
|
printf "%s%s\n" "$flagPrefix" "$comp"
|
||||||
|
end
|
||||||
|
|
||||||
|
printf "%s\n" "$directiveLine"
|
||||||
|
end
|
||||||
|
|
||||||
|
# this function limits calls to __devbox_perform_completion, by caching the result behind $__devbox_perform_completion_once_result
|
||||||
|
function __devbox_perform_completion_once
|
||||||
|
__devbox_debug "Starting __devbox_perform_completion_once"
|
||||||
|
|
||||||
|
if test -n "$__devbox_perform_completion_once_result"
|
||||||
|
__devbox_debug "Seems like a valid result already exists, skipping __devbox_perform_completion"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set --global __devbox_perform_completion_once_result (__devbox_perform_completion)
|
||||||
|
if test -z "$__devbox_perform_completion_once_result"
|
||||||
|
__devbox_debug "No completions, probably due to a failure"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
__devbox_debug "Performed completions and set __devbox_perform_completion_once_result"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# this function is used to clear the $__devbox_perform_completion_once_result variable after completions are run
|
||||||
|
function __devbox_clear_perform_completion_once_result
|
||||||
|
__devbox_debug ""
|
||||||
|
__devbox_debug "========= clearing previously set __devbox_perform_completion_once_result variable =========="
|
||||||
|
set --erase __devbox_perform_completion_once_result
|
||||||
|
__devbox_debug "Successfully erased the variable __devbox_perform_completion_once_result"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __devbox_requires_order_preservation
|
||||||
|
__devbox_debug ""
|
||||||
|
__devbox_debug "========= checking if order preservation is required =========="
|
||||||
|
|
||||||
|
__devbox_perform_completion_once
|
||||||
|
if test -z "$__devbox_perform_completion_once_result"
|
||||||
|
__devbox_debug "Error determining if order preservation is required"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l directive (string sub --start 2 $__devbox_perform_completion_once_result[-1])
|
||||||
|
__devbox_debug "Directive is: $directive"
|
||||||
|
|
||||||
|
set -l shellCompDirectiveKeepOrder 32
|
||||||
|
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
|
||||||
|
__devbox_debug "Keeporder is: $keeporder"
|
||||||
|
|
||||||
|
if test $keeporder -ne 0
|
||||||
|
__devbox_debug "This does require order preservation"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
__devbox_debug "This doesn't require order preservation"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# This function does two things:
|
||||||
|
# - Obtain the completions and store them in the global __devbox_comp_results
|
||||||
|
# - Return false if file completion should be performed
|
||||||
|
function __devbox_prepare_completions
|
||||||
|
__devbox_debug ""
|
||||||
|
__devbox_debug "========= starting completion logic =========="
|
||||||
|
|
||||||
|
# Start fresh
|
||||||
|
set --erase __devbox_comp_results
|
||||||
|
|
||||||
|
__devbox_perform_completion_once
|
||||||
|
__devbox_debug "Completion results: $__devbox_perform_completion_once_result"
|
||||||
|
|
||||||
|
if test -z "$__devbox_perform_completion_once_result"
|
||||||
|
__devbox_debug "No completion, probably due to a failure"
|
||||||
|
# Might as well do file completion, in case it helps
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l directive (string sub --start 2 $__devbox_perform_completion_once_result[-1])
|
||||||
|
set --global __devbox_comp_results $__devbox_perform_completion_once_result[1..-2]
|
||||||
|
|
||||||
|
__devbox_debug "Completions are: $__devbox_comp_results"
|
||||||
|
__devbox_debug "Directive is: $directive"
|
||||||
|
|
||||||
|
set -l shellCompDirectiveError 1
|
||||||
|
set -l shellCompDirectiveNoSpace 2
|
||||||
|
set -l shellCompDirectiveNoFileComp 4
|
||||||
|
set -l shellCompDirectiveFilterFileExt 8
|
||||||
|
set -l shellCompDirectiveFilterDirs 16
|
||||||
|
|
||||||
|
if test -z "$directive"
|
||||||
|
set directive 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
|
||||||
|
if test $compErr -eq 1
|
||||||
|
__devbox_debug "Received error directive: aborting."
|
||||||
|
# Might as well do file completion, in case it helps
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
|
||||||
|
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
|
||||||
|
if test $filefilter -eq 1; or test $dirfilter -eq 1
|
||||||
|
__devbox_debug "File extension filtering or directory filtering not supported"
|
||||||
|
# Do full file completion instead
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
|
||||||
|
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
|
||||||
|
|
||||||
|
__devbox_debug "nospace: $nospace, nofiles: $nofiles"
|
||||||
|
|
||||||
|
# If we want to prevent a space, or if file completion is NOT disabled,
|
||||||
|
# we need to count the number of valid completions.
|
||||||
|
# To do so, we will filter on prefix as the completions we have received
|
||||||
|
# may not already be filtered so as to allow fish to match on different
|
||||||
|
# criteria than the prefix.
|
||||||
|
if test $nospace -ne 0; or test $nofiles -eq 0
|
||||||
|
set -l prefix (commandline -t | string escape --style=regex)
|
||||||
|
__devbox_debug "prefix: $prefix"
|
||||||
|
|
||||||
|
set -l completions (string match -r -- "^$prefix.*" $__devbox_comp_results)
|
||||||
|
set --global __devbox_comp_results $completions
|
||||||
|
__devbox_debug "Filtered completions are: $__devbox_comp_results"
|
||||||
|
|
||||||
|
# Important not to quote the variable for count to work
|
||||||
|
set -l numComps (count $__devbox_comp_results)
|
||||||
|
__devbox_debug "numComps: $numComps"
|
||||||
|
|
||||||
|
if test $numComps -eq 1; and test $nospace -ne 0
|
||||||
|
# We must first split on \t to get rid of the descriptions to be
|
||||||
|
# able to check what the actual completion will be.
|
||||||
|
# We don't need descriptions anyway since there is only a single
|
||||||
|
# real completion which the shell will expand immediately.
|
||||||
|
set -l split (string split --max 1 \t $__devbox_comp_results[1])
|
||||||
|
|
||||||
|
# Fish won't add a space if the completion ends with any
|
||||||
|
# of the following characters: @=/:.,
|
||||||
|
set -l lastChar (string sub -s -1 -- $split)
|
||||||
|
if not string match -r -q "[@=/:.,]" -- "$lastChar"
|
||||||
|
# In other cases, to support the "nospace" directive we trick the shell
|
||||||
|
# by outputting an extra, longer completion.
|
||||||
|
__devbox_debug "Adding second completion to perform nospace directive"
|
||||||
|
set --global __devbox_comp_results $split[1] $split[1].
|
||||||
|
__devbox_debug "Completions are now: $__devbox_comp_results"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test $numComps -eq 0; and test $nofiles -eq 0
|
||||||
|
# To be consistent with bash and zsh, we only trigger file
|
||||||
|
# completion when there are no other completions
|
||||||
|
__devbox_debug "Requesting file completion"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
|
||||||
|
# so we can properly delete any completions provided by another script.
|
||||||
|
# Only do this if the program can be found, or else fish may print some errors; besides,
|
||||||
|
# the existing completions will only be loaded if the program can be found.
|
||||||
|
if type -q "devbox"
|
||||||
|
# The space after the program name is essential to trigger completion for the program
|
||||||
|
# and not completion of the program name itself.
|
||||||
|
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
|
||||||
|
complete --do-complete "devbox " > /dev/null 2>&1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove any pre-existing completions for the program since we will be handling all of them.
|
||||||
|
complete -c devbox -e
|
||||||
|
|
||||||
|
# this will get called after the two calls below and clear the $__devbox_perform_completion_once_result global
|
||||||
|
complete -c devbox -n '__devbox_clear_perform_completion_once_result'
|
||||||
|
# The call to __devbox_prepare_completions will setup __devbox_comp_results
|
||||||
|
# which provides the program's completion choices.
|
||||||
|
# If this doesn't require order preservation, we don't use the -k flag
|
||||||
|
complete -c devbox -n 'not __devbox_requires_order_preservation && __devbox_prepare_completions' -f -a '$__devbox_comp_results'
|
||||||
|
# otherwise we use the -k flag
|
||||||
|
complete -k -c devbox -n '__devbox_requires_order_preservation && __devbox_prepare_completions' -f -a '$__devbox_comp_results'
|
||||||
29
home/.config/fish/config.fish
Normal file
29
home/.config/fish/config.fish
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
if status is-interactive
|
||||||
|
# Commands to run in interactive sessions can go here
|
||||||
|
|
||||||
|
# Disable the welcome message
|
||||||
|
# https://fishshell.com/docs/current/cmds/fish_greeting.html
|
||||||
|
set -g fish_greeting
|
||||||
|
|
||||||
|
if test -f /home/linuxbrew/.linuxbrew/bin/brew
|
||||||
|
/home/linuxbrew/.linuxbrew/bin/brew shellenv | source
|
||||||
|
end
|
||||||
|
if test -f $(which atuin)
|
||||||
|
atuin init fish | source
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override globals
|
||||||
|
set -gx EDITOR nvim
|
||||||
|
|
||||||
|
# Enable autoenv
|
||||||
|
source ~/.config/fish/functions/activate.fish
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
alias vim="nvim"
|
||||||
|
alias dc="podman compose"
|
||||||
|
alias lg="lazygit"
|
||||||
|
alias la="eza --long --header --git --group --time-style long-iso -a"
|
||||||
|
|
||||||
|
# Set Path
|
||||||
|
fish_add_path -p /home/tgrosinger/.dotfiles/bin/linux
|
||||||
|
end
|
||||||
43
home/.config/fish/fish_variables
Normal file
43
home/.config/fish/fish_variables
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __fish_initialized:3800
|
||||||
|
SETUVAR fish_color_autosuggestion:9ca0b0
|
||||||
|
SETUVAR fish_color_cancel:d20f39
|
||||||
|
SETUVAR fish_color_command:1e66f5
|
||||||
|
SETUVAR fish_color_comment:8c8fa1
|
||||||
|
SETUVAR fish_color_cwd:df8e1d
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:fe640b
|
||||||
|
SETUVAR fish_color_error:d20f39
|
||||||
|
SETUVAR fish_color_escape:e64553
|
||||||
|
SETUVAR fish_color_gray:9ca0b0
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:1e66f5
|
||||||
|
SETUVAR fish_color_host_remote:40a02b
|
||||||
|
SETUVAR fish_color_keyword:8839ef
|
||||||
|
SETUVAR fish_color_normal:4c4f69
|
||||||
|
SETUVAR fish_color_operator:ea76cb
|
||||||
|
SETUVAR fish_color_option:40a02b
|
||||||
|
SETUVAR fish_color_param:dd7878
|
||||||
|
SETUVAR fish_color_quote:40a02b
|
||||||
|
SETUVAR fish_color_redirection:ea76cb
|
||||||
|
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dccd0da
|
||||||
|
SETUVAR fish_color_selection:\x2d\x2dbackground\x3dccd0da
|
||||||
|
SETUVAR fish_color_status:d20f39
|
||||||
|
SETUVAR fish_color_user:179299
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_key_bindings:fish_vi_key_bindings
|
||||||
|
SETUVAR fish_pager_color_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_completion:4c4f69
|
||||||
|
SETUVAR fish_pager_color_description:9ca0b0
|
||||||
|
SETUVAR fish_pager_color_prefix:ea76cb
|
||||||
|
SETUVAR fish_pager_color_progress:9ca0b0
|
||||||
|
SETUVAR fish_pager_color_secondary_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_prefix:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_prefix:\x1d
|
||||||
|
SETUVAR fish_user_paths:/home/tgrosinger/\x2edotfiles/bin/linux
|
||||||
133
home/.config/fish/functions/activate.fish
Normal file
133
home/.config/fish/functions/activate.fish
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
#
|
||||||
|
# Autoenv for fish shell.
|
||||||
|
# Based on, but heavily modified from:
|
||||||
|
# https://github.com/loopbit/autoenv_fish
|
||||||
|
#
|
||||||
|
|
||||||
|
set AUTOENV_AUTH_FILE ~/.autoenv_authorized
|
||||||
|
if [ -z "$AUTOENV_ENV_FILENAME" ]
|
||||||
|
set AUTOENV_ENV_FILENAME ".env"
|
||||||
|
end
|
||||||
|
|
||||||
|
# probe to see if we have access to a shasum command, otherwise disable autoenv
|
||||||
|
if which gsha1sum 2>/dev/null >&2
|
||||||
|
# Okay
|
||||||
|
else if which sha1sum 2>/dev/null >&2
|
||||||
|
# Okay
|
||||||
|
else if which shasum 2>/dev/null >&2
|
||||||
|
# Okay
|
||||||
|
else
|
||||||
|
echo "Autoenv cannot locate a compatible shasum binary; not enabling"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
|
||||||
|
# This function will be automatically called on directory change
|
||||||
|
# without needing to override the `cd` command.
|
||||||
|
function autoenv_init --on-variable PWD
|
||||||
|
set defIFS $IFS
|
||||||
|
set IFS (echo -en "\n\b")
|
||||||
|
|
||||||
|
set target $argv[1]
|
||||||
|
set home (dirname $HOME)
|
||||||
|
set search_dir $PWD
|
||||||
|
|
||||||
|
while [ $search_dir != / -a $search_dir != "$home" ]
|
||||||
|
set file "$search_dir/$AUTOENV_ENV_FILENAME"
|
||||||
|
if [ -e $file ]
|
||||||
|
set files $files $file
|
||||||
|
end
|
||||||
|
set search_dir (dirname $search_dir)
|
||||||
|
end
|
||||||
|
|
||||||
|
set numerator (count $files)
|
||||||
|
if [ $numerator -gt 0 ]
|
||||||
|
for x in (seq $numerator)
|
||||||
|
set envfile $files[$x]
|
||||||
|
autoenv_check_authz_and_run "$envfile"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set IFS $defIFS
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_run
|
||||||
|
set file "(realpath "$argv[1]")"
|
||||||
|
autoenv_check_authz_and_run "$file"
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_env
|
||||||
|
builtin echo "autoenv:" "$argv[1]"
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_printf
|
||||||
|
builtin printf "autoenv: "
|
||||||
|
builtin printf "$argv[1]"
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_indent
|
||||||
|
cat -e $argv[1] | sed 's/.*/autoenv: &/'
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_hashline
|
||||||
|
# typeset envfile hash
|
||||||
|
set envfile $argv[1]
|
||||||
|
set hash (shasum "$envfile" | cut -d' ' -f 1)
|
||||||
|
echo "$envfile:$hash"
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_check_authz
|
||||||
|
# typeset envfile hash
|
||||||
|
set envfile $argv[1]
|
||||||
|
set hash (autoenv_hashline "$envfile")
|
||||||
|
touch $AUTOENV_AUTH_FILE
|
||||||
|
grep -Gq "$hash" $AUTOENV_AUTH_FILE
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_check_authz_and_run
|
||||||
|
set envfile $argv[1]
|
||||||
|
if autoenv_check_authz "$envfile"
|
||||||
|
autoenv_source "$envfile"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
if [ -z $MC_SID ] #make sure mc is not running
|
||||||
|
autoenv_env
|
||||||
|
autoenv_env "WARNING:"
|
||||||
|
autoenv_env "This is the first time you are about to source $envfile":
|
||||||
|
autoenv_env
|
||||||
|
autoenv_env " --- (begin contents) ---------------------------------------"
|
||||||
|
autoenv_indent "$envfile"
|
||||||
|
autoenv_env " --- (end contents) -----------------------------------------"
|
||||||
|
autoenv_env
|
||||||
|
autoenv_printf "Are you sure you want to allow this? (y/N) \n"
|
||||||
|
read answer
|
||||||
|
if [ $answer = y -o $answer = Y ]
|
||||||
|
autoenv_authorize_env "$envfile"
|
||||||
|
autoenv_source "$envfile"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_deauthorize_env
|
||||||
|
#typeset envfile
|
||||||
|
set envfile $argv[1]
|
||||||
|
cp "$AUTOENV_AUTH_FILE" "$AUTOENV_AUTH_FILE.tmp"
|
||||||
|
grep -Gv "$envfile:" "$AUTOENV_AUTH_FILE.tmp" >$AUTOENV_AUTH_FILE
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_authorize_env
|
||||||
|
#typeset envfile
|
||||||
|
set envfile $argv[1]
|
||||||
|
autoenv_deauthorize_env "$envfile"
|
||||||
|
autoenv_hashline "$envfile" >>$AUTOENV_AUTH_FILE
|
||||||
|
end
|
||||||
|
|
||||||
|
function autoenv_source
|
||||||
|
#TODO: Why are global vars not being passed to sourced script?
|
||||||
|
set -g AUTOENV_CUR_FILE $argv[1]
|
||||||
|
set -g AUTOENV_CUR_DIR (dirname $argv[1])
|
||||||
|
source "$argv[1]"
|
||||||
|
#set -e AUTOENV_CUR_FILE
|
||||||
|
#set -e AUTOENV_CUR_DIR
|
||||||
|
end
|
||||||
24
home/.config/fish/functions/fish_prompt.fish
Normal file
24
home/.config/fish/functions/fish_prompt.fish
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
function fish_prompt
|
||||||
|
set -l __last_command_exit_status $status
|
||||||
|
|
||||||
|
set -l cyan (set_color -o cyan)
|
||||||
|
set -l yellow (set_color -o yellow)
|
||||||
|
set -l red (set_color -o red)
|
||||||
|
set -l green (set_color -o green)
|
||||||
|
set -l blue (set_color -o blue)
|
||||||
|
set -l normal (set_color normal)
|
||||||
|
|
||||||
|
set -l arrow_color "$green"
|
||||||
|
if test $__last_command_exit_status != 0
|
||||||
|
set arrow_color "$red"
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l arrow "$arrow_color➜ "
|
||||||
|
if fish_is_root_user
|
||||||
|
set arrow "$arrow_color# "
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l cwd $cyan(prompt_pwd | path basename)
|
||||||
|
|
||||||
|
echo -n -s $arrow ' '$cwd $repo_info $normal ' '
|
||||||
|
end
|
||||||
30
home/.config/fish/themes/Catppuccin Latte.theme
Normal file
30
home/.config/fish/themes/Catppuccin Latte.theme
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# name: 'Catppuccin Latte'
|
||||||
|
# url: 'https://github.com/catppuccin/fish'
|
||||||
|
# preferred_background: eff1f5
|
||||||
|
|
||||||
|
fish_color_normal 4c4f69
|
||||||
|
fish_color_command 1e66f5
|
||||||
|
fish_color_param dd7878
|
||||||
|
fish_color_keyword 8839ef
|
||||||
|
fish_color_quote 40a02b
|
||||||
|
fish_color_redirection ea76cb
|
||||||
|
fish_color_end fe640b
|
||||||
|
fish_color_comment 8c8fa1
|
||||||
|
fish_color_error d20f39
|
||||||
|
fish_color_gray 9ca0b0
|
||||||
|
fish_color_selection --background=ccd0da
|
||||||
|
fish_color_search_match --background=ccd0da
|
||||||
|
fish_color_option 40a02b
|
||||||
|
fish_color_operator ea76cb
|
||||||
|
fish_color_escape e64553
|
||||||
|
fish_color_autosuggestion 9ca0b0
|
||||||
|
fish_color_cancel d20f39
|
||||||
|
fish_color_cwd df8e1d
|
||||||
|
fish_color_user 179299
|
||||||
|
fish_color_host 1e66f5
|
||||||
|
fish_color_host_remote 40a02b
|
||||||
|
fish_color_status d20f39
|
||||||
|
fish_pager_color_progress 9ca0b0
|
||||||
|
fish_pager_color_prefix ea76cb
|
||||||
|
fish_pager_color_completion 4c4f69
|
||||||
|
fish_pager_color_description 9ca0b0
|
||||||
46
home/.config/foot/foot.ini
Normal file
46
home/.config/foot/foot.ini
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
font=JetBrainsMonoNerdFontMono:size=12
|
||||||
|
# Should automatically use these.
|
||||||
|
#font-bold=JetBrainsMonoNerdFontMono:weight=bold
|
||||||
|
#font-italic=JetBrainsMonoNerdFontMono:slant=italic
|
||||||
|
#font-bold-italic=JetBrainsMonoNerdFontMono:weight=bold:slant=italic
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Catppuccine Latte
|
||||||
|
# https://github.com/catppuccin/foot
|
||||||
|
#
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
cursor=eff1f5 dc8a78
|
||||||
|
foreground=4c4f69
|
||||||
|
background=eff1f5
|
||||||
|
|
||||||
|
regular0=5c5f77
|
||||||
|
regular1=d20f39
|
||||||
|
regular2=40a02b
|
||||||
|
regular3=df8e1d
|
||||||
|
regular4=1e66f5
|
||||||
|
regular5=ea76cb
|
||||||
|
regular6=179299
|
||||||
|
regular7=acb0be
|
||||||
|
|
||||||
|
bright0=6c6f85
|
||||||
|
bright1=d20f39
|
||||||
|
bright2=40a02b
|
||||||
|
bright3=df8e1d
|
||||||
|
bright4=1e66f5
|
||||||
|
bright5=ea76cb
|
||||||
|
bright6=179299
|
||||||
|
bright7=bcc0cc
|
||||||
|
|
||||||
|
16=fe640b
|
||||||
|
17=dc8a78
|
||||||
|
|
||||||
|
selection-foreground=4c4f69
|
||||||
|
selection-background=ccced7
|
||||||
|
|
||||||
|
search-box-no-match=dce0e8 d20f39
|
||||||
|
search-box-match=4c4f69 ccd0da
|
||||||
|
|
||||||
|
jump-labels=dce0e8 fe640b
|
||||||
|
urls=1e66f5
|
||||||
@@ -4,6 +4,7 @@ customCommands:
|
|||||||
description: "Force push with lease."
|
description: "Force push with lease."
|
||||||
key: "x"
|
key: "x"
|
||||||
promptToReturnFromSubprocess: false # removes "press enter to return to lazygit" popup
|
promptToReturnFromSubprocess: false # removes "press enter to return to lazygit" popup
|
||||||
|
notARepository: 'skip'
|
||||||
git:
|
git:
|
||||||
autoForwardBranches: "none"
|
autoForwardBranches: "none"
|
||||||
os:
|
os:
|
||||||
38
home/.config/nvim/lazy-lock.json
Normal file
38
home/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" },
|
||||||
|
"SchemaStore.nvim": { "branch": "main", "commit": "5f2299987a1937612c910f00db39156bab6a6b35" },
|
||||||
|
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
|
||||||
|
"catppuccin": { "branch": "main", "commit": "ce4a8e0d5267e67056f9f4dcf6cb1d0933c8ca00" },
|
||||||
|
"conform.nvim": { "branch": "master", "commit": "4993e07fac6679d0a5005aa7499e0bad2bd39f19" },
|
||||||
|
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||||
|
"focus.nvim": { "branch": "master", "commit": "26a755c363284547196ceb258a83f92608d7979b" },
|
||||||
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "5813e4878748805f1518cee7abb50fd7205a3a48" },
|
||||||
|
"grug-far.nvim": { "branch": "main", "commit": "b58b2d65863f4ebad88b10a1ddd519e5380466e0" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||||
|
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||||
|
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "7d527c76c43f46294de9c19d39c5a86317809b4b" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
|
||||||
|
"mini.ai": { "branch": "main", "commit": "bfb26d9072670c3aaefab0f53024b2f3729c8083" },
|
||||||
|
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
||||||
|
"mini.pairs": { "branch": "main", "commit": "472ec50092a3314ec285d2db2baa48602d71fe93" },
|
||||||
|
"mini.surround": { "branch": "main", "commit": "88c52297ed3e69ecf9f8652837888ecc727a28ee" },
|
||||||
|
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
|
"nvim-lint": { "branch": "master", "commit": "d1118791070d090777398792a73032a0ca5c79ff" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "b2441c9374699685991959f50e5e6293c509e501" },
|
||||||
|
"nvim-treesitter": { "branch": "main", "commit": "17885756e63df73ed90db62e4630f744ceda6514" },
|
||||||
|
"nvim-treesitter-textobjects": { "branch": "main", "commit": "63c4dce4a56312ef1bdeafd16bdefa008fcc950a" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
|
||||||
|
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
|
"render-markdown.nvim": { "branch": "main", "commit": "6e0e8902dac70fecbdd8ce557d142062a621ec38" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
|
||||||
|
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
|
||||||
|
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||||
|
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
|
||||||
|
"vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||||
|
}
|
||||||
13
home/.config/nvim/lazyvim.json
Normal file
13
home/.config/nvim/lazyvim.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"extras": [
|
||||||
|
"lazyvim.plugins.extras.coding.mini-surround",
|
||||||
|
"lazyvim.plugins.extras.lang.json",
|
||||||
|
"lazyvim.plugins.extras.lang.markdown",
|
||||||
|
"lazyvim.plugins.extras.lang.yaml"
|
||||||
|
],
|
||||||
|
"install_version": 8,
|
||||||
|
"news": {
|
||||||
|
"NEWS.md": "11866"
|
||||||
|
},
|
||||||
|
"version": 8
|
||||||
|
}
|
||||||
173
home/.config/rofi/catppuccin-default.rasi
Normal file
173
home/.config/rofi/catppuccin-default.rasi
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
@import "catppuccin-latte"
|
||||||
|
// @import "catppuccin-frappe"
|
||||||
|
// @import "catppuccin-macchiato"
|
||||||
|
// @import "catppuccin-mocha"
|
||||||
|
|
||||||
|
* {
|
||||||
|
selected-active-foreground: @background;
|
||||||
|
lightfg: @text;
|
||||||
|
separatorcolor: @foreground;
|
||||||
|
urgent-foreground: @red;
|
||||||
|
alternate-urgent-background: @lightbg;
|
||||||
|
lightbg: @mantle;
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: @foreground;
|
||||||
|
normal-background: @background;
|
||||||
|
selected-urgent-background: @red;
|
||||||
|
alternate-active-background: @lightbg;
|
||||||
|
spacing: 2;
|
||||||
|
alternate-normal-foreground: @foreground;
|
||||||
|
urgent-background: @background;
|
||||||
|
selected-normal-foreground: @lightbg;
|
||||||
|
active-foreground: @blue;
|
||||||
|
background: @base;
|
||||||
|
selected-active-background: @blue;
|
||||||
|
active-background: @background;
|
||||||
|
selected-normal-background: @lightfg;
|
||||||
|
alternate-normal-background: @lightbg;
|
||||||
|
foreground: @text;
|
||||||
|
selected-urgent-foreground: @background;
|
||||||
|
normal-foreground: @foreground;
|
||||||
|
alternate-urgent-foreground: @red;
|
||||||
|
alternate-active-foreground: @blue;
|
||||||
|
|
||||||
|
}
|
||||||
|
element {
|
||||||
|
padding: 1px ;
|
||||||
|
cursor: pointer;
|
||||||
|
spacing: 5px ;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
element normal.normal {
|
||||||
|
background-color: @normal-background;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
element normal.urgent {
|
||||||
|
background-color: @urgent-background;
|
||||||
|
text-color: @urgent-foreground;
|
||||||
|
}
|
||||||
|
element normal.active {
|
||||||
|
background-color: @active-background;
|
||||||
|
text-color: @active-foreground;
|
||||||
|
}
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
element selected.urgent {
|
||||||
|
background-color: @selected-urgent-background;
|
||||||
|
text-color: @selected-urgent-foreground;
|
||||||
|
}
|
||||||
|
element selected.active {
|
||||||
|
background-color: @selected-active-background;
|
||||||
|
text-color: @selected-active-foreground;
|
||||||
|
}
|
||||||
|
element alternate.normal {
|
||||||
|
background-color: @alternate-normal-background;
|
||||||
|
text-color: @alternate-normal-foreground;
|
||||||
|
}
|
||||||
|
element alternate.urgent {
|
||||||
|
background-color: @alternate-urgent-background;
|
||||||
|
text-color: @alternate-urgent-foreground;
|
||||||
|
}
|
||||||
|
element alternate.active {
|
||||||
|
background-color: @alternate-active-background;
|
||||||
|
text-color: @alternate-active-foreground;
|
||||||
|
}
|
||||||
|
element-text {
|
||||||
|
background-color: transparent;
|
||||||
|
cursor: inherit;
|
||||||
|
highlight: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
element-icon {
|
||||||
|
background-color: transparent;
|
||||||
|
size: 1.0000em ;
|
||||||
|
cursor: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
window {
|
||||||
|
padding: 5;
|
||||||
|
background-color: @background;
|
||||||
|
border: 1;
|
||||||
|
}
|
||||||
|
mainbox {
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
message {
|
||||||
|
padding: 1px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
}
|
||||||
|
textbox {
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
listview {
|
||||||
|
padding: 2px 0px 0px ;
|
||||||
|
scrollbar: true;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
spacing: 2px ;
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
}
|
||||||
|
scrollbar {
|
||||||
|
width: 4px ;
|
||||||
|
padding: 0;
|
||||||
|
handle-width: 8px ;
|
||||||
|
border: 0;
|
||||||
|
handle-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
sidebar {
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
cursor: pointer;
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
button selected {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
num-filtered-rows {
|
||||||
|
expand: false;
|
||||||
|
text-color: Gray;
|
||||||
|
}
|
||||||
|
num-rows {
|
||||||
|
expand: false;
|
||||||
|
text-color: Gray;
|
||||||
|
}
|
||||||
|
textbox-num-sep {
|
||||||
|
expand: false;
|
||||||
|
str: "/";
|
||||||
|
text-color: Gray;
|
||||||
|
}
|
||||||
|
inputbar {
|
||||||
|
padding: 1px ;
|
||||||
|
spacing: 0px ;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
children: [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ];
|
||||||
|
}
|
||||||
|
case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
entry {
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
cursor: text;
|
||||||
|
spacing: 0;
|
||||||
|
placeholder-color: Gray;
|
||||||
|
placeholder: "Type to filter";
|
||||||
|
}
|
||||||
|
prompt {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
textbox-prompt-colon {
|
||||||
|
margin: 0px 0.3000em 0.0000em 0.0000em ;
|
||||||
|
expand: false;
|
||||||
|
str: ":";
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
29
home/.config/rofi/catppuccin-latte.rasi
Normal file
29
home/.config/rofi/catppuccin-latte.rasi
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
* {
|
||||||
|
rosewater: #dc8a78;
|
||||||
|
flamingo: #dd7878;
|
||||||
|
pink: #ea76cb;
|
||||||
|
mauve: #8839ef;
|
||||||
|
red: #d20f39;
|
||||||
|
maroon: #e64553;
|
||||||
|
peach: #fe640b;
|
||||||
|
yellow: #df8e1d;
|
||||||
|
green: #40a02b;
|
||||||
|
teal: #179299;
|
||||||
|
sky: #04a5e5;
|
||||||
|
sapphire: #209fb5;
|
||||||
|
blue: #1e66f5;
|
||||||
|
lavender: #7287fd;
|
||||||
|
text: #4c4f69;
|
||||||
|
subtext1: #5c5f77;
|
||||||
|
subtext0: #6c6f85;
|
||||||
|
overlay2: #7c7f93;
|
||||||
|
overlay1: #8c8fa1;
|
||||||
|
overlay0: #9ca0b0;
|
||||||
|
surface2: #acb0be;
|
||||||
|
surface1: #bcc0cc;
|
||||||
|
surface0: #ccd0da;
|
||||||
|
base: #eff1f5;
|
||||||
|
mantle: #e6e9ef;
|
||||||
|
crust: #dce0e8;
|
||||||
|
}
|
||||||
|
|
||||||
170
home/.config/rofi/config.rasi
Normal file
170
home/.config/rofi/config.rasi
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
@import "catppuccin-default"
|
||||||
|
|
||||||
|
configuration {
|
||||||
|
/* modes: "window,drun,run,ssh";*/
|
||||||
|
/* font: "mono 12";*/
|
||||||
|
/* location: 0;*/
|
||||||
|
/* yoffset: 0;*/
|
||||||
|
/* xoffset: 0;*/
|
||||||
|
/* fixed-num-lines: true;*/
|
||||||
|
/* show-icons: false;*/
|
||||||
|
/* preview-cmd: ;*/
|
||||||
|
/* on-selection-changed: ;*/
|
||||||
|
/* on-mode-changed: ;*/
|
||||||
|
/* on-entry-accepted: ;*/
|
||||||
|
/* on-menu-canceled: ;*/
|
||||||
|
/* on-menu-error: ;*/
|
||||||
|
/* on-screenshot-taken: ;*/
|
||||||
|
/* terminal: "rofi-sensible-terminal";*/
|
||||||
|
/* ssh-client: "ssh";*/
|
||||||
|
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
|
||||||
|
/* run-command: "{cmd}";*/
|
||||||
|
/* run-list-command: "";*/
|
||||||
|
/* run-shell-command: "{terminal} -e {cmd}";*/
|
||||||
|
/* window-command: "wmctrl -i -R {window}";*/
|
||||||
|
/* window-match-fields: "all";*/
|
||||||
|
/* icon-theme: ;*/
|
||||||
|
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
|
||||||
|
/* drun-categories: ;*/
|
||||||
|
/* drun-exclude-categories: ;*/
|
||||||
|
/* drun-show-actions: false;*/
|
||||||
|
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
|
||||||
|
/* drun-url-launcher: "xdg-open";*/
|
||||||
|
/* disable-history: false;*/
|
||||||
|
/* ignored-prefixes: "";*/
|
||||||
|
/* sort: false;*/
|
||||||
|
/* sorting-method: "normal";*/
|
||||||
|
/* case-sensitive: false;*/
|
||||||
|
/* case-smart: false;*/
|
||||||
|
/* cycle: true;*/
|
||||||
|
/* sidebar-mode: false;*/
|
||||||
|
/* hover-select: false;*/
|
||||||
|
/* eh: 1;*/
|
||||||
|
/* auto-select: false;*/
|
||||||
|
/* parse-hosts: false;*/
|
||||||
|
/* parse-known-hosts: true;*/
|
||||||
|
/* combi-modes: "window,run";*/
|
||||||
|
/* matching: "normal";*/
|
||||||
|
/* tokenize: true;*/
|
||||||
|
/* m: "-5";*/
|
||||||
|
/* filter: ;*/
|
||||||
|
/* dpi: -1;*/
|
||||||
|
/* threads: 0;*/
|
||||||
|
/* scroll-method: 0;*/
|
||||||
|
/* window-format: "{w} {c} {t}";*/
|
||||||
|
/* click-to-exit: true;*/
|
||||||
|
/* global-kb: false;*/
|
||||||
|
/* max-history-size: 25;*/
|
||||||
|
/* combi-hide-mode-prefix: false;*/
|
||||||
|
/* combi-display-format: "{mode} {text}";*/
|
||||||
|
/* matching-negate-char: '-' /* unsupported */;*/
|
||||||
|
/* cache-dir: ;*/
|
||||||
|
/* window-thumbnail: false;*/
|
||||||
|
/* drun-use-desktop-cache: false;*/
|
||||||
|
/* drun-reload-desktop-cache: false;*/
|
||||||
|
/* normalize-match: false;*/
|
||||||
|
/* steal-focus: false;*/
|
||||||
|
/* application-fallback-icon: ;*/
|
||||||
|
/* refilter-timeout-limit: 300;*/
|
||||||
|
/* xserver-i300-workaround: false;*/
|
||||||
|
/* completer-mode: "filebrowser";*/
|
||||||
|
/* imdkit: true;*/
|
||||||
|
/* pid: "/run/user/1000/rofi.pid";*/
|
||||||
|
/* display-window: ;*/
|
||||||
|
/* display-run: ;*/
|
||||||
|
/* display-ssh: ;*/
|
||||||
|
/* display-drun: ;*/
|
||||||
|
/* display-combi: ;*/
|
||||||
|
/* display-keys: ;*/
|
||||||
|
/* display-filebrowser: ;*/
|
||||||
|
/* display-recursivebrowser: ;*/
|
||||||
|
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
||||||
|
/* kb-secondary-paste: "Control+v,Insert";*/
|
||||||
|
/* kb-secondary-copy: "Control+c";*/
|
||||||
|
/* kb-clear-line: "Control+w";*/
|
||||||
|
/* kb-move-front: "Control+a";*/
|
||||||
|
/* kb-move-end: "Control+e";*/
|
||||||
|
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
||||||
|
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
||||||
|
/* kb-move-char-back: "Left,Control+b";*/
|
||||||
|
/* kb-move-char-forward: "Right,Control+f";*/
|
||||||
|
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
||||||
|
/* kb-remove-word-forward: "Control+Alt+d";*/
|
||||||
|
/* kb-remove-char-forward: "Delete,Control+d";*/
|
||||||
|
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
||||||
|
/* kb-remove-to-eol: "Control+k";*/
|
||||||
|
/* kb-remove-to-sol: "Control+u";*/
|
||||||
|
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
||||||
|
/* kb-accept-custom: "Control+Return";*/
|
||||||
|
/* kb-accept-custom-alt: "Control+Shift+Return";*/
|
||||||
|
/* kb-accept-alt: "Shift+Return";*/
|
||||||
|
/* kb-delete-entry: "Shift+Delete";*/
|
||||||
|
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
||||||
|
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
||||||
|
/* kb-mode-complete: "Control+l";*/
|
||||||
|
/* kb-row-left: "Control+Page_Up";*/
|
||||||
|
/* kb-row-right: "Control+Page_Down";*/
|
||||||
|
/* kb-row-up: "Up,Control+p";*/
|
||||||
|
/* kb-row-down: "Down,Control+n";*/
|
||||||
|
/* kb-row-tab: "";*/
|
||||||
|
/* kb-element-next: "Tab";*/
|
||||||
|
/* kb-element-prev: "ISO_Left_Tab";*/
|
||||||
|
/* kb-page-prev: "Page_Up";*/
|
||||||
|
/* kb-page-next: "Page_Down";*/
|
||||||
|
/* kb-row-first: "Home,KP_Home";*/
|
||||||
|
/* kb-row-last: "End,KP_End";*/
|
||||||
|
/* kb-row-select: "Control+space";*/
|
||||||
|
/* kb-screenshot: "Alt+S";*/
|
||||||
|
/* kb-ellipsize: "Alt+period";*/
|
||||||
|
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
||||||
|
/* kb-toggle-sort: "Alt+grave";*/
|
||||||
|
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
||||||
|
/* kb-custom-1: "Alt+1";*/
|
||||||
|
/* kb-custom-2: "Alt+2";*/
|
||||||
|
/* kb-custom-3: "Alt+3";*/
|
||||||
|
/* kb-custom-4: "Alt+4";*/
|
||||||
|
/* kb-custom-5: "Alt+5";*/
|
||||||
|
/* kb-custom-6: "Alt+6";*/
|
||||||
|
/* kb-custom-7: "Alt+7";*/
|
||||||
|
/* kb-custom-8: "Alt+8";*/
|
||||||
|
/* kb-custom-9: "Alt+9";*/
|
||||||
|
/* kb-custom-10: "Alt+0";*/
|
||||||
|
/* kb-custom-11: "Alt+exclam";*/
|
||||||
|
/* kb-custom-12: "Alt+at";*/
|
||||||
|
/* kb-custom-13: "Alt+numbersign";*/
|
||||||
|
/* kb-custom-14: "Alt+dollar";*/
|
||||||
|
/* kb-custom-15: "Alt+percent";*/
|
||||||
|
/* kb-custom-16: "Alt+dead_circumflex";*/
|
||||||
|
/* kb-custom-17: "Alt+ampersand";*/
|
||||||
|
/* kb-custom-18: "Alt+asterisk";*/
|
||||||
|
/* kb-custom-19: "Alt+parenleft";*/
|
||||||
|
/* kb-select-1: "Super+1";*/
|
||||||
|
/* kb-select-2: "Super+2";*/
|
||||||
|
/* kb-select-3: "Super+3";*/
|
||||||
|
/* kb-select-4: "Super+4";*/
|
||||||
|
/* kb-select-5: "Super+5";*/
|
||||||
|
/* kb-select-6: "Super+6";*/
|
||||||
|
/* kb-select-7: "Super+7";*/
|
||||||
|
/* kb-select-8: "Super+8";*/
|
||||||
|
/* kb-select-9: "Super+9";*/
|
||||||
|
/* kb-select-10: "Super+0";*/
|
||||||
|
/* kb-entry-history-up: "Control+Up";*/
|
||||||
|
/* kb-entry-history-down: "Control+Down";*/
|
||||||
|
/* kb-matcher-up: "Super+equal";*/
|
||||||
|
/* kb-matcher-down: "Super+minus";*/
|
||||||
|
/* ml-row-left: "ScrollLeft";*/
|
||||||
|
/* ml-row-right: "ScrollRight";*/
|
||||||
|
/* ml-row-up: "ScrollUp";*/
|
||||||
|
/* ml-row-down: "ScrollDown";*/
|
||||||
|
/* me-select-entry: "MousePrimary";*/
|
||||||
|
/* me-accept-entry: "MouseDPrimary";*/
|
||||||
|
/* me-accept-custom: "Control+MouseDPrimary";*/
|
||||||
|
timeout {
|
||||||
|
action: "kb-cancel";
|
||||||
|
delay: 0;
|
||||||
|
}
|
||||||
|
filebrowser {
|
||||||
|
directories-first: true;
|
||||||
|
sorting-method: "name";
|
||||||
|
}
|
||||||
|
}
|
||||||
37
home/.config/rofi/scripts/copyq.sh
Executable file
37
home/.config/rofi/scripts/copyq.sh
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Read the most recent items from CopyQ and present them in a rofi menu.
|
||||||
|
#
|
||||||
|
# Converted to bash from
|
||||||
|
# https://github.com/cjbassi/rofi-copyq/blob/master/rofi-copyq
|
||||||
|
|
||||||
|
# CopyQ script to get all clipboard items as JSON
|
||||||
|
copyq_script_getAll='
|
||||||
|
var result=[];
|
||||||
|
for ( var i = 0; i < size(); ++i ) {
|
||||||
|
var obj = {};
|
||||||
|
obj.row = i;
|
||||||
|
obj.mimetypes = str(read("?", i)).split("\n");
|
||||||
|
obj.mimetypes.pop();
|
||||||
|
obj.text = str(read(i));
|
||||||
|
result.push(obj);
|
||||||
|
}
|
||||||
|
JSON.stringify(result);
|
||||||
|
'
|
||||||
|
|
||||||
|
# Get clipboard items from CopyQ
|
||||||
|
json_arr=$(printf '%s' "$copyq_script_getAll" | copyq -)
|
||||||
|
|
||||||
|
# Parse JSON and format items for rofi
|
||||||
|
# Process each JSON object separately, replacing newlines within each item
|
||||||
|
items=$(printf '%s' "$json_arr" | jq -r '.[] | .text | gsub("\n"; " ") | gsub(" +"; " ")')
|
||||||
|
|
||||||
|
# Show rofi menu and get selected index
|
||||||
|
title='rofi-copyq'
|
||||||
|
selected_index=$(printf '%s' "$items" | rofi -dmenu -i -p "$title" -format i)
|
||||||
|
|
||||||
|
# If user selected an item, select it in CopyQ
|
||||||
|
if [ -n "$selected_index" ]; then
|
||||||
|
echo "Selected item: $selected_index"
|
||||||
|
copyq "select($selected_index);"
|
||||||
|
fi
|
||||||
71
home/.config/rofi/scripts/qalc.sh
Executable file
71
home/.config/rofi/scripts/qalc.sh
Executable file
@@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# https://github.com/onespaceman/menu-calc
|
||||||
|
# https://github.com/BarbUk/menu-qalc
|
||||||
|
# https://github.com/ClemaX/menu-qalc-wayland
|
||||||
|
#
|
||||||
|
# Calculator for use with rofi
|
||||||
|
# Copying to the clipboard requires wl-copy
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "$(tput bold)menu-calc$(tput sgr0)"
|
||||||
|
echo "A calculator for Rofi"
|
||||||
|
echo
|
||||||
|
echo "$(tput bold)Usage:$(tput sgr0)"
|
||||||
|
echo " = 4+2"
|
||||||
|
echo " = (4+2)/(4+3)"
|
||||||
|
echo " = 4^2"
|
||||||
|
echo " = sqrt(4)"
|
||||||
|
echo " = c(2)"
|
||||||
|
echo
|
||||||
|
echo "$(tput bold)Passing arguments to Rofi:$(tput sgr0)"
|
||||||
|
echo "Any parameters after ' -- ' will be passed to Rofi."
|
||||||
|
echo
|
||||||
|
echo " = -- <Rofi args>"
|
||||||
|
echo
|
||||||
|
echo "The answer can be copied to the clipboard and used for further calculations inside (or outside) Rofi."
|
||||||
|
echo
|
||||||
|
echo "If launched outside of Rofi the expression may need quotation marks."
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
process_query() { # query
|
||||||
|
local query="$1"
|
||||||
|
|
||||||
|
qalc +u8 -color=never -terse <<<"$query" |
|
||||||
|
awk '!/^>/ && !/^$/ {gsub(/^[ \t]+|[ \t]+$/, "", $0); print}'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Process CLI parameters
|
||||||
|
for var in "$@"; do
|
||||||
|
case $var in
|
||||||
|
-h | --help) usage ;;
|
||||||
|
--) break ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Path to menu application
|
||||||
|
if [[ -n $(command -v rofi) ]]; then
|
||||||
|
menu="$(command -v rofi)"
|
||||||
|
menu="$menu -dmenu -lines 3"
|
||||||
|
else
|
||||||
|
>&2 echo "Rofi not found"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine args to pass to rofi
|
||||||
|
while [[ $# -gt 0 && $1 != "--" ]]; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
[[ $1 == "--" ]] && shift
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
action=$(echo -e "Copy\nClear\nClose" | ${menu} "$@" -p "= $answer")
|
||||||
|
|
||||||
|
case "$action" in
|
||||||
|
"Clear") answer= ;;
|
||||||
|
"Copy") wl-copy -- "$answer" ;;
|
||||||
|
"Close" | "") exit ;;
|
||||||
|
*) answer=$(process_query "$answer $action") ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
26
home/.config/sway/catppuccin-latte
Normal file
26
home/.config/sway/catppuccin-latte
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
set $rosewater #dc8a78
|
||||||
|
set $flamingo #dd7878
|
||||||
|
set $pink #ea76cb
|
||||||
|
set $mauve #8839ef
|
||||||
|
set $red #d20f39
|
||||||
|
set $maroon #e64553
|
||||||
|
set $peach #fe640b
|
||||||
|
set $yellow #df8e1d
|
||||||
|
set $green #40a02b
|
||||||
|
set $teal #179299
|
||||||
|
set $sky #04a5e5
|
||||||
|
set $sapphire #209fb5
|
||||||
|
set $blue #1e66f5
|
||||||
|
set $lavender #7287fd
|
||||||
|
set $text #4c4f69
|
||||||
|
set $subtext1 #5c5f77
|
||||||
|
set $subtext0 #6c6f85
|
||||||
|
set $overlay2 #7c7f93
|
||||||
|
set $overlay1 #8c8fa1
|
||||||
|
set $overlay0 #9ca0b0
|
||||||
|
set $surface2 #acb0be
|
||||||
|
set $surface1 #bcc0cc
|
||||||
|
set $surface0 #ccd0da
|
||||||
|
set $base #eff1f5
|
||||||
|
set $mantle #e6e9ef
|
||||||
|
set $crust #dce0e8
|
||||||
257
home/.config/sway/config
Normal file
257
home/.config/sway/config
Normal file
@@ -0,0 +1,257 @@
|
|||||||
|
# Default config for sway
|
||||||
|
# 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
|
||||||
|
# Your preferred terminal emulator
|
||||||
|
set $term alacritty
|
||||||
|
# Your preferred application launcher
|
||||||
|
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||||
|
# on the original workspace that the command was run on.
|
||||||
|
# Recommends: rofi-wayland
|
||||||
|
set $rofi_cmd rofi \
|
||||||
|
-terminal '$term'
|
||||||
|
# Shows a combined list of the applications with desktop files and
|
||||||
|
# executables from PATH.
|
||||||
|
# TODO: add window with the next release of rofi-wayland
|
||||||
|
set $menu $rofi_cmd -show combi -combi-modes drun#run -modes combi
|
||||||
|
|
||||||
|
### Output configuration
|
||||||
|
#
|
||||||
|
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||||
|
# Requires: desktop-backgrounds-compat, swaybg, jxl-pixbuf-loader
|
||||||
|
output * bg /usr/share/backgrounds/default.jxl 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
|
||||||
|
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||||
|
# Read `man 5 sway-input` for more information about this section.
|
||||||
|
input "2362:628:PIXA3854:00_093A:0274_Touchpad" {
|
||||||
|
# Allow clicking by tapping.
|
||||||
|
tap enabled
|
||||||
|
# Moving fingers up moves the display down, like a phone.
|
||||||
|
natural_scroll enabled
|
||||||
|
# Two fingers is right click.
|
||||||
|
click_method clickfinger
|
||||||
|
}
|
||||||
|
|
||||||
|
### Key bindings
|
||||||
|
#
|
||||||
|
# Basics:
|
||||||
|
#
|
||||||
|
# Start a terminal
|
||||||
|
bindsym $mod+Return exec $term
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# Start your launcher
|
||||||
|
bindsym $mod+d exec $menu
|
||||||
|
|
||||||
|
# Window switching
|
||||||
|
bindsym $mod+Tab exec rofi -show window -modes window
|
||||||
|
|
||||||
|
# Clipboard history
|
||||||
|
bindsym $mod+Shift+v exec /home/tgrosinger/.config/rofi/scripts/copyq.sh
|
||||||
|
|
||||||
|
# Calculator
|
||||||
|
bindsym $mod+Equal exec /home/tgrosinger/.config/rofi/scripts/qalc.sh
|
||||||
|
|
||||||
|
# Lazygit
|
||||||
|
bindsym $mod+g exec alacritty --title Floating-Lazygit --command /home/linuxbrew/.linuxbrew/bin/lazygit; grab_focus; floating enable
|
||||||
|
for_window [title="Floating-Lazygit"] floating enable
|
||||||
|
for_window [title="Floating-Lazygit"] resize set 1800 1200
|
||||||
|
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# 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+s 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+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"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Theme
|
||||||
|
#
|
||||||
|
|
||||||
|
include catppuccin-latte
|
||||||
|
|
||||||
|
# target title bg text indicator border
|
||||||
|
client.focused $lavender $surface0 $text $rosewater $lavender
|
||||||
|
client.focused_inactive $overlay0 $base $text $rosewater $overlay0
|
||||||
|
client.unfocused $overlay0 $base $text $rosewater $overlay0
|
||||||
|
client.urgent $peach $base $peach $overlay0 $peach
|
||||||
|
client.placeholder $overlay0 $base $text $overlay0 $overlay0
|
||||||
|
client.background $base
|
||||||
|
|
||||||
|
#
|
||||||
|
# Launch default apps
|
||||||
|
#
|
||||||
|
|
||||||
|
exec copyq
|
||||||
|
exec workrave
|
||||||
|
|
||||||
|
# Include configs from 3 locations:
|
||||||
|
# - /usr/share/sway/config.d
|
||||||
|
# - /etc/sway/config.d
|
||||||
|
# - $XDG_CONFIG_HOME/sway/config.d ($HOME/.config/sway/config.d)
|
||||||
|
#
|
||||||
|
# If multiple directories contain the files with the same name, the later
|
||||||
|
# directory takes precedence; `$XDG_CONFIG_HOME/sway/config.d/20-swayidle.conf`
|
||||||
|
# will always be loaded instead of `/usr/share/sway/config.d/20-swayidle.conf`
|
||||||
|
# or `/etc/sway/config.d/20-swayidle.conf`
|
||||||
|
#
|
||||||
|
# This mechanism permits overriding our default configuration per-system
|
||||||
|
# (/etc) or per-user ($XDG_CONFIG_HOME) basis. Just create the file you
|
||||||
|
# want to modify/override in the higher-level directory.
|
||||||
|
#
|
||||||
|
# For example, to disable the default bar from Fedora configs, you'll need to
|
||||||
|
# $ echo -n > "$HOME/.config/sway/config.d/90-bar.conf"
|
||||||
|
#
|
||||||
|
# Note the quoting, the $() and the arguments quoting. All the parts are equally
|
||||||
|
# important to make the magic work. And if you want to learn the secret behind
|
||||||
|
# the trick, it's all in the `wordexp(3)`.
|
||||||
|
#
|
||||||
|
include '$(/usr/libexec/sway/layered-include "/usr/share/sway/config.d/*.conf" "/etc/sway/config.d/*.conf" "${XDG_CONFIG_HOME:-$HOME/.config}/sway/config.d/*.conf")'
|
||||||
35
home/.config/swaylock/config
Normal file
35
home/.config/swaylock/config
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Image path supports environment variables and shell expansions,
|
||||||
|
# e.g. image=$HOME/Pictures/default.png
|
||||||
|
image=/usr/share/backgrounds/default.jxl
|
||||||
|
scaling=fill
|
||||||
|
|
||||||
|
# Catppuccin Latte
|
||||||
|
color=eff1f5
|
||||||
|
bs-hl-color=dc8a78
|
||||||
|
caps-lock-bs-hl-color=dc8a78
|
||||||
|
caps-lock-key-hl-color=40a02b
|
||||||
|
inside-color=00000000
|
||||||
|
inside-clear-color=00000000
|
||||||
|
inside-caps-lock-color=00000000
|
||||||
|
inside-ver-color=00000000
|
||||||
|
inside-wrong-color=00000000
|
||||||
|
key-hl-color=40a02b
|
||||||
|
layout-bg-color=00000000
|
||||||
|
layout-border-color=00000000
|
||||||
|
layout-text-color=4c4f69
|
||||||
|
line-color=00000000
|
||||||
|
line-clear-color=00000000
|
||||||
|
line-caps-lock-color=00000000
|
||||||
|
line-ver-color=00000000
|
||||||
|
line-wrong-color=00000000
|
||||||
|
ring-color=7287fd
|
||||||
|
ring-clear-color=dc8a78
|
||||||
|
ring-caps-lock-color=fe640b
|
||||||
|
ring-ver-color=1e66f5
|
||||||
|
ring-wrong-color=e64553
|
||||||
|
separator-color=00000000
|
||||||
|
text-color=4c4f69
|
||||||
|
text-clear-color=dc8a78
|
||||||
|
text-caps-lock-color=fe640b
|
||||||
|
text-ver-color=1e66f5
|
||||||
|
text-wrong-color=e64553
|
||||||
211
home/.config/waybar/config.jsonc
Normal file
211
home/.config/waybar/config.jsonc
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
// -*- mode: jsonc -*-
|
||||||
|
{
|
||||||
|
// "layer": "top", // Waybar at top layer
|
||||||
|
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
||||||
|
"height": 30, // Waybar height (to be removed for auto height)
|
||||||
|
// "width": 1280, // Waybar width
|
||||||
|
"spacing": 0, // Gaps between modules (4px)
|
||||||
|
// Choose the order of the modules
|
||||||
|
"modules-left": [
|
||||||
|
"sway/workspaces",
|
||||||
|
"sway/mode",
|
||||||
|
"sway/scratchpad"
|
||||||
|
],
|
||||||
|
"modules-center": [
|
||||||
|
"sway/window"
|
||||||
|
],
|
||||||
|
"modules-right": [
|
||||||
|
"idle_inhibitor",
|
||||||
|
"pulseaudio",
|
||||||
|
"network",
|
||||||
|
"power-profiles-daemon",
|
||||||
|
"cpu",
|
||||||
|
//"memory",
|
||||||
|
//"temperature",
|
||||||
|
"backlight",
|
||||||
|
//"sway/language",
|
||||||
|
"battery",
|
||||||
|
"clock",
|
||||||
|
"tray"
|
||||||
|
],
|
||||||
|
// Modules configuration
|
||||||
|
// "sway/workspaces": {
|
||||||
|
// "disable-scroll": true,
|
||||||
|
// "all-outputs": true,
|
||||||
|
// "warp-on-scroll": false,
|
||||||
|
// "format": "{name}: {icon}",
|
||||||
|
// "format-icons": {
|
||||||
|
// "1": "",
|
||||||
|
// "2": "",
|
||||||
|
// "3": "",
|
||||||
|
// "4": "",
|
||||||
|
// "5": "",
|
||||||
|
// "urgent": "", "focused": "", "default": "" }
|
||||||
|
// },
|
||||||
|
"keyboard-state": {
|
||||||
|
"numlock": true,
|
||||||
|
"capslock": true,
|
||||||
|
"format": "{name} {icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"locked": "",
|
||||||
|
"unlocked": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sway/mode": {
|
||||||
|
"format": "<span style=\"italic\">{}</span>"
|
||||||
|
},
|
||||||
|
"sway/scratchpad": {
|
||||||
|
"format": "{icon} {count}",
|
||||||
|
"show-empty": false,
|
||||||
|
"format-icons": ["", ""],
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "{app}: {title}"
|
||||||
|
},
|
||||||
|
"mpd": {
|
||||||
|
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
|
||||||
|
"format-disconnected": "Disconnected ",
|
||||||
|
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
||||||
|
"unknown-tag": "N/A",
|
||||||
|
"interval": 5,
|
||||||
|
"consume-icons": {
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"random-icons": {
|
||||||
|
"off": "<span color=\"#f53c3c\"></span> ",
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"repeat-icons": {
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"single-icons": {
|
||||||
|
"on": "1 "
|
||||||
|
},
|
||||||
|
"state-icons": {
|
||||||
|
"paused": "",
|
||||||
|
"playing": ""
|
||||||
|
},
|
||||||
|
"tooltip-format": "MPD (connected)",
|
||||||
|
"tooltip-format-disconnected": "MPD (disconnected)"
|
||||||
|
},
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"activated": "",
|
||||||
|
"deactivated": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
// "icon-size": 21,
|
||||||
|
"spacing": 10,
|
||||||
|
// "icons": {
|
||||||
|
// "blueman": "bluetooth",
|
||||||
|
// "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
// "timezone": "America/New_York",
|
||||||
|
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||||
|
"format-alt": "{:%Y-%m-%d}"
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"format": "{usage}% ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"format": "{}% "
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
// "thermal-zone": 2,
|
||||||
|
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||||
|
"critical-threshold": 80,
|
||||||
|
// "format-critical": "{temperatureC}°C {icon}",
|
||||||
|
"format": "{temperatureC}°C {icon}",
|
||||||
|
"format-icons": ["", "", ""]
|
||||||
|
},
|
||||||
|
"backlight": {
|
||||||
|
// "device": "acpi_video1",
|
||||||
|
"format": "{percent}% {icon}",
|
||||||
|
"format-icons": ["🌑", "🌘", "🌗", "🌖", "🌕"]
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
// "good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{capacity}% {icon}",
|
||||||
|
"format-full": "{capacity}% {icon}",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
// "format-good": "", // An empty format will hide the module
|
||||||
|
// "format-full": "",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"battery#bat2": {
|
||||||
|
"bat": "BAT2"
|
||||||
|
},
|
||||||
|
"power-profiles-daemon": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
|
||||||
|
"tooltip": true,
|
||||||
|
"format-icons": {
|
||||||
|
"default": "",
|
||||||
|
"performance": "",
|
||||||
|
"balanced": "",
|
||||||
|
"power-saver": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||||
|
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||||
|
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
|
"format-linked": "{ifname} (No IP) ",
|
||||||
|
"format-disconnected": "Disconnected ⚠",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-source": "{volume}% ",
|
||||||
|
"format-source-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"custom/media": {
|
||||||
|
"format": "{icon} {text}",
|
||||||
|
"return-type": "json",
|
||||||
|
"max-length": 40,
|
||||||
|
"format-icons": {
|
||||||
|
"spotify": "",
|
||||||
|
"default": "🎜"
|
||||||
|
},
|
||||||
|
"escape": true,
|
||||||
|
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
||||||
|
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||||
|
},
|
||||||
|
"custom/power": {
|
||||||
|
"format" : "⏻ ",
|
||||||
|
"tooltip": false,
|
||||||
|
"menu": "on-click",
|
||||||
|
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
|
||||||
|
"menu-actions": {
|
||||||
|
"shutdown": "shutdown",
|
||||||
|
"reboot": "reboot",
|
||||||
|
"suspend": "systemctl suspend",
|
||||||
|
"hibernate": "systemctl hibernate"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
26
home/.config/waybar/latte.css
Normal file
26
home/.config/waybar/latte.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
@define-color rosewater #dc8a78;
|
||||||
|
@define-color flamingo #dd7878;
|
||||||
|
@define-color pink #ea76cb;
|
||||||
|
@define-color mauve #8839ef;
|
||||||
|
@define-color red #d20f39;
|
||||||
|
@define-color maroon #e64553;
|
||||||
|
@define-color peach #fe640b;
|
||||||
|
@define-color yellow #df8e1d;
|
||||||
|
@define-color green #40a02b;
|
||||||
|
@define-color teal #179299;
|
||||||
|
@define-color sky #04a5e5;
|
||||||
|
@define-color sapphire #209fb5;
|
||||||
|
@define-color blue #1e66f5;
|
||||||
|
@define-color lavender #7287fd;
|
||||||
|
@define-color text #4c4f69;
|
||||||
|
@define-color subtext1 #5c5f77;
|
||||||
|
@define-color subtext0 #6c6f85;
|
||||||
|
@define-color overlay2 #7c7f93;
|
||||||
|
@define-color overlay1 #8c8fa1;
|
||||||
|
@define-color overlay0 #9ca0b0;
|
||||||
|
@define-color surface2 #acb0be;
|
||||||
|
@define-color surface1 #bcc0cc;
|
||||||
|
@define-color surface0 #ccd0da;
|
||||||
|
@define-color base #eff1f5;
|
||||||
|
@define-color mantle #e6e9ef;
|
||||||
|
@define-color crust #dce0e8;
|
||||||
281
home/.config/waybar/style.css
Normal file
281
home/.config/waybar/style.css
Normal file
@@ -0,0 +1,281 @@
|
|||||||
|
@import "latte.css";
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: 'JetBrainsMono';
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: @base;
|
||||||
|
border-bottom: 2px solid alpha(@crust, 0.3);
|
||||||
|
color: #ffffff;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module {
|
||||||
|
color: @text;
|
||||||
|
}
|
||||||
|
.modules-right .module {
|
||||||
|
background-color: @surface0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
window#waybar.empty {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
window#waybar.solo {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
button {
|
||||||
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
|
box-shadow: inset 0 -3px transparent;
|
||||||
|
/* Avoid rounded borders under each button name */
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
button:hover {
|
||||||
|
background: inherit;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor:hover,
|
||||||
|
#battery:hover,
|
||||||
|
#clock:hover,
|
||||||
|
#pulseaudio:hover {
|
||||||
|
background-color: @surface2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: @text;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: @surface0;
|
||||||
|
box-shadow: inset 0 -3px @overlay1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: shade(@red, 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
background-color: #64727D;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#wireplumber,
|
||||||
|
#custom-media,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#scratchpad,
|
||||||
|
#power-profiles-daemon,
|
||||||
|
#mpd {
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window,
|
||||||
|
#workspaces {
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the leftmost module, omit left margin */
|
||||||
|
.modules-left > widget:first-child > #workspaces {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
|
.modules-right > widget:last-child > #workspaces {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging, #battery.plugged {
|
||||||
|
background-color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
||||||
|
#battery.warning:not(.charging) {
|
||||||
|
background-color: @yellow;
|
||||||
|
}
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
background-color: @red;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: steps(12);
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon {
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.performance {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.balanced {
|
||||||
|
background-color: #2980b9;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.power-saver {
|
||||||
|
background-color: #2ecc71;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
background-color: @crust;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
background-color: @crust;
|
||||||
|
color: @subtext1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber {
|
||||||
|
background-color: #fff0f5;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber.muted {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-spotify {
|
||||||
|
background-color: #66cc99;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-vlc {
|
||||||
|
background-color: #ffa000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .needs-attention {
|
||||||
|
-gtk-icon-effect: highlight;
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor.activated {
|
||||||
|
background-color: @teal;
|
||||||
|
color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.stopped {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.paused {
|
||||||
|
background-color: #51a37a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#language {
|
||||||
|
background: #00b093;
|
||||||
|
color: #740864;
|
||||||
|
padding: 0 5px;
|
||||||
|
margin: 0 5px;
|
||||||
|
min-width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#keyboard-state {
|
||||||
|
background: #97e1ad;
|
||||||
|
color: #000000;
|
||||||
|
padding: 0 0px;
|
||||||
|
margin: 0 5px;
|
||||||
|
min-width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#keyboard-state > label {
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#keyboard-state > label.locked {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#scratchpad {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#scratchpad.empty {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item {
|
||||||
|
padding: 0 5px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item.screenshare {
|
||||||
|
background-color: #cf5700;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item.audio-in {
|
||||||
|
background-color: #1ca000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item.audio-out {
|
||||||
|
background-color: #0069d4;
|
||||||
|
}
|
||||||
0
.gitattributes → home/.gitattributes
vendored
0
.gitattributes → home/.gitattributes
vendored
@@ -36,7 +36,7 @@
|
|||||||
sync = "!git fetch -p && git rebase origin/$(git default-branch)"
|
sync = "!git fetch -p && git rebase origin/$(git default-branch)"
|
||||||
|
|
||||||
[core]
|
[core]
|
||||||
editor = vim
|
editor = nvim
|
||||||
pager = delta
|
pager = delta
|
||||||
attributesfile = /home/tgrosinger/.gitattributes
|
attributesfile = /home/tgrosinger/.gitattributes
|
||||||
excludesfile = /home/tgrosinger/.gitignore_global
|
excludesfile = /home/tgrosinger/.gitignore_global
|
||||||
78
install-packages.sh
Executable file
78
install-packages.sh
Executable file
@@ -0,0 +1,78 @@
|
|||||||
|
# Install homebrew dependencies
|
||||||
|
sudo dnf group install development-tools
|
||||||
|
|
||||||
|
echo "Installing homebrew"
|
||||||
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||||
|
|
||||||
|
# NOTE: Do not brew install anything with a dependency on node.
|
||||||
|
# Instead, install with npm -g.
|
||||||
|
|
||||||
|
brew install \
|
||||||
|
atuin \
|
||||||
|
bat \
|
||||||
|
eza \
|
||||||
|
fd \
|
||||||
|
fish \
|
||||||
|
fzf \
|
||||||
|
gcc \
|
||||||
|
gh \
|
||||||
|
git \
|
||||||
|
git-delta \
|
||||||
|
jq \
|
||||||
|
lazygit \
|
||||||
|
neovim \
|
||||||
|
restic \
|
||||||
|
ripgrep \
|
||||||
|
stow \
|
||||||
|
tmux
|
||||||
|
#crane \
|
||||||
|
#deno \
|
||||||
|
#dive \
|
||||||
|
#go \
|
||||||
|
#gron \
|
||||||
|
#hadolint \
|
||||||
|
#pnpm
|
||||||
|
#sqlite \
|
||||||
|
#stripe-cli \
|
||||||
|
#visidata \
|
||||||
|
|
||||||
|
brew services start atuin
|
||||||
|
|
||||||
|
# Previously these were installed with npm because I didn't want to use brew to
|
||||||
|
# install packages with a node dependency. I'm not sure if that is still required.
|
||||||
|
#npm install -g @devcontainers/cli
|
||||||
|
#npm install -g mjml
|
||||||
|
#npm install -g jsonlint
|
||||||
|
|
||||||
|
# Install ble.sh
|
||||||
|
# https://github.com/akinomyoga/ble.sh
|
||||||
|
|
||||||
|
# Install system packages
|
||||||
|
sudo dnf install \
|
||||||
|
alacritty \
|
||||||
|
copyq \
|
||||||
|
direnv \
|
||||||
|
distrobox \
|
||||||
|
fuse-libs \ # For running appimages
|
||||||
|
gstreamer1-plugin-openh264 mozilla-openh264 \ # For twitch videos
|
||||||
|
podman \
|
||||||
|
qalculate qalculate-gtk # Homebrew version installs x11 and waylany in brew.
|
||||||
|
|
||||||
|
# Install tailscale
|
||||||
|
# https://tailscale.com/kb/1511/install-fedora-2
|
||||||
|
|
||||||
|
# Install flatpaks
|
||||||
|
flatpak install io.dbeaver.DBeaverCommunity
|
||||||
|
flatpak install flathub org.gimp.GIMP
|
||||||
|
flatpak install flathub org.gnucash.GnuCash
|
||||||
|
flatpak install flathub org.kde.digikam
|
||||||
|
flatpak install flathub org.libreoffice.LibreOffice
|
||||||
|
flatpak install flathub org.kde.okular
|
||||||
|
|
||||||
|
# Install devbox
|
||||||
|
# https://www.jetify.com/docs/devbox/installing-devbox
|
||||||
|
curl -fsSL https://get.jetify.com/devbox | bash
|
||||||
|
|
||||||
|
# Installing tmux plugins
|
||||||
|
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||||
|
|
||||||
164
install.sh
164
install.sh
@@ -1,164 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#Copyright (C) 2022 Tony Grosinger. All rights reserved.
|
|
||||||
#
|
|
||||||
#Description:
|
|
||||||
# This script can be run in two modes depending on the file structure of the
|
|
||||||
# current working directory or the arguments passed to it.
|
|
||||||
#
|
|
||||||
# Mode 1: From within a cloned repository or downloaded snapshot with all files
|
|
||||||
# already present and ready to be symlinked
|
|
||||||
#
|
|
||||||
# Mode 2: Standalone or through Curl in which case all required files will be
|
|
||||||
# downloaded automatically to `~/.dotfiles` before creating symlinks.
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
DOTFILES_DIR="${HOME}/.dotfiles"
|
|
||||||
GIT_REPO_BASE="https://github.com/tgrosinger/dotfiles"
|
|
||||||
GIT_REPO="${GIT_REPO_BASE}.git"
|
|
||||||
REPO_TAR="${GIT_REPO_BASE}/archive/master.tar.gz"
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Define functions
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
# Remove a file if it exists then create a symlink to the one contained in ${DOTFILES_DIR}
|
|
||||||
function linkFile() {
|
|
||||||
ln -fns ${DOTFILES_DIR}/$1 $1;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create a directory named by first parameter. Delete directory first if it already exists.
|
|
||||||
function createDirectory() {
|
|
||||||
if [ -d $1 ]; then rm -rf $1; fi
|
|
||||||
mkdir $1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Perform the actual work of copying files and creating symlinks.
|
|
||||||
# Requires a home directory argument.
|
|
||||||
function performSetup() {
|
|
||||||
if [ ${#} != 1 ]; then
|
|
||||||
echo "Must pass home directory to ${FUNCNAME}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
home=${1}
|
|
||||||
|
|
||||||
echo "Moving to Home directory..."
|
|
||||||
pushd ${home} > /dev/null
|
|
||||||
|
|
||||||
echo "Linking shell configs..."
|
|
||||||
linkFile ".bashrc"
|
|
||||||
|
|
||||||
echo "Linking vim..."
|
|
||||||
linkFile ".vim"
|
|
||||||
linkFile ".vimrc"
|
|
||||||
|
|
||||||
echo "Linking Git..."
|
|
||||||
linkFile ".gitconfig"
|
|
||||||
linkFile ".gitattributes"
|
|
||||||
|
|
||||||
echo "Linking LazyGit..."
|
|
||||||
mkdir -p ~/.config/lazygit
|
|
||||||
ln -fns ${DOTFILES_DIR}/.lazygit ~/.config/lazygit/config.yml
|
|
||||||
|
|
||||||
echo "Linking Atuin..."
|
|
||||||
mkdir -p ~/.config/atuin
|
|
||||||
ln -fns ${DOTFILES_DIR}/atuin.toml ~/.config/atuin/config.toml
|
|
||||||
|
|
||||||
echo "Linking Ble.sh..."
|
|
||||||
linkFile ".blerc"
|
|
||||||
|
|
||||||
echo "Linking tmux..."
|
|
||||||
linkFile ".tmux.conf"
|
|
||||||
|
|
||||||
echo "Linking inputrc..."
|
|
||||||
linkFile ".inputrc"
|
|
||||||
|
|
||||||
echo "Installing tmux plugins"
|
|
||||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
|
||||||
|
|
||||||
echo "Linking gitmux..."
|
|
||||||
linkFile ".gitmux.conf"
|
|
||||||
|
|
||||||
echo "Linking neovim config"
|
|
||||||
ln -fns ${DOTFILES_DIR}/nvim ~/.config/nvim
|
|
||||||
|
|
||||||
echo "Installing homebrew"
|
|
||||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
||||||
|
|
||||||
if [[ "${OSTYPE}" == "darwin"* ]]; then
|
|
||||||
brew install tmux
|
|
||||||
else
|
|
||||||
sudo apt install build-essential visidata
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NOTE: Do not brew install anything with a dependency on node.
|
|
||||||
# Instead, install with npm -g.
|
|
||||||
|
|
||||||
brew install \
|
|
||||||
gcc \
|
|
||||||
tmux neovim \
|
|
||||||
eza bat fzf ripgrep fd jq gron \
|
|
||||||
hadolint \
|
|
||||||
git lazygit git-delta \
|
|
||||||
crane dive \
|
|
||||||
go sqlite \
|
|
||||||
stripe-cli restic \
|
|
||||||
deno pnpm
|
|
||||||
|
|
||||||
npm install -g @devcontainers/cli
|
|
||||||
npm install -g mjml
|
|
||||||
npm install -g jsonlint
|
|
||||||
|
|
||||||
popd > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Initialize (Determine mode)
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
# Determine which mode we are running in. (Does the install script exist in the dotfiles directory?)
|
|
||||||
if [ -f ${DOTFILES_DIR}/install.sh ]; then
|
|
||||||
echo "Running in Mode 1: Already cloned repository"
|
|
||||||
performSetup ${HOME}
|
|
||||||
echo "Done! Restart your shell to see changes"
|
|
||||||
else
|
|
||||||
echo "Running in Mode 2: Direct from Curl"
|
|
||||||
|
|
||||||
# Make sure git is installed. Exit if it isn't.
|
|
||||||
if which git; then
|
|
||||||
# Git is installed, clone the repository using read-only url
|
|
||||||
if [ -d ${DOTFILES_DIR} ]; then
|
|
||||||
if [ -d ${DOTFILES_DIR}/.git ]; then
|
|
||||||
echo "Updating dotfiles repository in ${DOTFILES_DIR}"
|
|
||||||
pushd ${DOTFILES_DIR} > /dev/null
|
|
||||||
git pull > /dev/null
|
|
||||||
popd > /dev/null
|
|
||||||
else
|
|
||||||
echo "Cloning dotfiles repository to ${DOTFILES_DIR}"
|
|
||||||
rm -rf ${DOTFILES_DIR}
|
|
||||||
git clone ${GIT_REPO} ${DOTFILES_DIR}
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Cloning dotfiles repository to ${DOTFILES_DIR}"
|
|
||||||
git clone ${GIT_REPO} ${DOTFILES_DIR}
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Git is not installed, download the zip and extract
|
|
||||||
if ! which wget; then
|
|
||||||
echo "You must have either git or wget installed. Please install one before continuing."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d ${DOTFILES_DIR} ]; then
|
|
||||||
rm -rf ${DOTFILES_DIR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir ${DOTFILES_DIR}
|
|
||||||
curl -L ${REPO_TAR} | tar zx --strip 1 --directory ${DOTFILES_DIR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
performSetup ${HOME}
|
|
||||||
echo "Done! Restart your shell to see changes"
|
|
||||||
fi
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
{
|
|
||||||
"LazyVim": { "branch": "main", "commit": "25abbf546d564dc484cf903804661ba12de45507" },
|
|
||||||
"SchemaStore.nvim": { "branch": "main", "commit": "e906ac3ed0bd273781759e7635b5b824393c925c" },
|
|
||||||
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
|
|
||||||
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
|
||||||
"catppuccin": { "branch": "main", "commit": "30fa4d122d9b22ad8b2e0ab1b533c8c26c4dde86" },
|
|
||||||
"conform.nvim": { "branch": "master", "commit": "04bfa5f35706410376bf7618a01fcf44e3f35b59" },
|
|
||||||
"crates.nvim": { "branch": "main", "commit": "a49df0f70171adc77704eac70dd2c0d179065933" },
|
|
||||||
"firenvim": { "branch": "master", "commit": "c927486daff6d1eb8a0d61fd9e264bc1bf5f2c36" },
|
|
||||||
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
|
|
||||||
"focus.nvim": { "branch": "master", "commit": "5500e1a9e926eec5a361d910679282fd723c0a96" },
|
|
||||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
|
|
||||||
"grug-far.nvim": { "branch": "main", "commit": "385d1949dc21d0c39e7a74b4f4a25da18817bc86" },
|
|
||||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
|
||||||
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
|
|
||||||
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
|
||||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
|
||||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "86389a3dd687cfaa647b6f44731e492970034baa" },
|
|
||||||
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
|
||||||
"mini.ai": { "branch": "main", "commit": "1cd4f021a05c29acd4ab511c0981da14217daf38" },
|
|
||||||
"mini.icons": { "branch": "main", "commit": "b8f6fa6f5a3fd0c56936252edcd691184e5aac0c" },
|
|
||||||
"mini.pairs": { "branch": "main", "commit": "1e1ca3f60f58d4050bf814902b472eec9963a5dd" },
|
|
||||||
"mini.surround": { "branch": "main", "commit": "7a8606333affe7ce637a0ba91bbafc46fc42bfa0" },
|
|
||||||
"neotest": { "branch": "master", "commit": "35a59c1f59dbb954d92b74ab64a966a668cea495" },
|
|
||||||
"neotest-golang": { "branch": "main", "commit": "e892eeb585f8bb041eb50e9fc58d6d48f62c3717" },
|
|
||||||
"neotest-jest": { "branch": "main", "commit": "46ccc50273838f0b48e3c4814c1c46c0ccfe9edf" },
|
|
||||||
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
|
|
||||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
|
||||||
"nvim-ansible": { "branch": "main", "commit": "bba61168b7aef735e7f950fdfece5ef6c388eacf" },
|
|
||||||
"nvim-dap": { "branch": "master", "commit": "f777d1d20ed50c2f312e286892c062d9c2f1c6fe" },
|
|
||||||
"nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
|
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
|
||||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
|
||||||
"nvim-lint": { "branch": "master", "commit": "7ef127aaede2a4d5ad8df8321e2eb4e567f29594" },
|
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "d64ea08d8033543a61af35f2f23cac0f0d05f7b4" },
|
|
||||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
|
|
||||||
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
|
|
||||||
"persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
|
|
||||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
|
||||||
"render-markdown.nvim": { "branch": "main", "commit": "0087ee1d505d4fc4886d8d3121ae7848b7c0e49b" },
|
|
||||||
"rustaceanvim": { "branch": "master", "commit": "cd67c30b63dd0fc58c4662b54d2cef50cfe60d57" },
|
|
||||||
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
|
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
|
|
||||||
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
|
|
||||||
"ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" },
|
|
||||||
"vim-dadbod": { "branch": "master", "commit": "e95afed23712f969f83b4857a24cf9d59114c2e6" },
|
|
||||||
"vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" },
|
|
||||||
"vim-dadbod-ui": { "branch": "master", "commit": "2900a1617b3df1a48683d872eadbe1101146a49a" },
|
|
||||||
"vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" },
|
|
||||||
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"extras": [
|
|
||||||
"lazyvim.plugins.extras.coding.mini-surround",
|
|
||||||
"lazyvim.plugins.extras.dap.core",
|
|
||||||
"lazyvim.plugins.extras.formatting.prettier",
|
|
||||||
"lazyvim.plugins.extras.lang.ansible",
|
|
||||||
"lazyvim.plugins.extras.lang.go",
|
|
||||||
"lazyvim.plugins.extras.lang.json",
|
|
||||||
"lazyvim.plugins.extras.lang.markdown",
|
|
||||||
"lazyvim.plugins.extras.lang.sql",
|
|
||||||
"lazyvim.plugins.extras.lang.svelte",
|
|
||||||
"lazyvim.plugins.extras.lang.tailwind",
|
|
||||||
"lazyvim.plugins.extras.lang.typescript",
|
|
||||||
"lazyvim.plugins.extras.lang.yaml",
|
|
||||||
"lazyvim.plugins.extras.linting.eslint",
|
|
||||||
"lazyvim.plugins.extras.test.core"
|
|
||||||
],
|
|
||||||
"install_version": 8,
|
|
||||||
"news": {
|
|
||||||
"NEWS.md": "10960"
|
|
||||||
},
|
|
||||||
"version": 8
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
-- This can be removed once the fix is merged upstream.
|
|
||||||
-- See https://github.com/LazyVim/LazyVim/pull/6354
|
|
||||||
return {
|
|
||||||
"akinsho/bufferline.nvim",
|
|
||||||
init = function()
|
|
||||||
local bufline = require("catppuccin.groups.integrations.bufferline")
|
|
||||||
function bufline.get()
|
|
||||||
return bufline.get_theme()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
return {
|
|
||||||
{
|
|
||||||
"nvim-neotest/neotest",
|
|
||||||
dependencies = {
|
|
||||||
"haydenmeade/neotest-jest",
|
|
||||||
},
|
|
||||||
opts = function(_, opts)
|
|
||||||
table.insert(
|
|
||||||
opts.adapters,
|
|
||||||
require("neotest-jest")({
|
|
||||||
jestCommand = "npm test",
|
|
||||||
jestConfigFile = "jest.config.ts",
|
|
||||||
-- env = { CI = true },
|
|
||||||
cwd = function()
|
|
||||||
return vim.fn.getcwd()
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
10
run-stow.sh
Executable file
10
run-stow.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ! -d "${HOME}/.dotfiles" ]; then
|
||||||
|
echo "Cannot find dotfiles directory in user home."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd ${HOME}/.dotfiles >/dev/null
|
||||||
|
stow -v .
|
||||||
|
popd >/dev/null
|
||||||
Reference in New Issue
Block a user