mirror of
https://codeberg.org/hyperreal/dotfiles
synced 2024-11-01 08:43:08 +01:00
Update
This commit is contained in:
parent
482ff562a8
commit
eda1b5c9d0
3
config/.config/bat/config
Normal file
3
config/.config/bat/config
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
--theme=Catppuccin-mocha
|
||||||
|
--style=plain
|
||||||
|
--pager="less -FRX"
|
2048
config/.config/bat/themes/Catppuccin-mocha.tmTheme
Normal file
2048
config/.config/bat/themes/Catppuccin-mocha.tmTheme
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,22 @@
|
|||||||
[core]
|
[core]
|
||||||
editor = "emacsclient"
|
editor = "emacsclient"
|
||||||
pager = "diff-so-fancy | less --tabs=4 -RFX"
|
pager = "diff-so-fancy | less '--tabs=4' -RFX"
|
||||||
|
|
||||||
|
[diff-so-fancy]
|
||||||
|
changeHunkIndicators = true
|
||||||
|
markEmptyLines = true
|
||||||
|
stripLeadingSymbols = true
|
||||||
|
useUnicodeRuler = true
|
||||||
|
|
||||||
[init]
|
[init]
|
||||||
defaultBranch = "main"
|
defaultBranch = "main"
|
||||||
|
|
||||||
|
[interactive]
|
||||||
|
diffFilter = "diff-so-fancy --patch"
|
||||||
|
|
||||||
[pull]
|
[pull]
|
||||||
rebase = true
|
rebase = true
|
||||||
|
|
||||||
[user]
|
[user]
|
||||||
email = "23226432+hyperreal64@users.noreply.github.com"
|
email = "hyperreal@moonshadow.dev"
|
||||||
name = "Jeffrey Serio"
|
name = "Jeffrey Serio"
|
||||||
|
@ -1,113 +1,115 @@
|
|||||||
# Sets user-defined palette
|
"$schema" = 'https://starship.rs/config-schema.json'
|
||||||
palette = "catppuccin_mocha"
|
|
||||||
|
|
||||||
format = """$time$container$directory$all$line_break$username$hostname$character"""
|
## PROMPT FORMAT
|
||||||
right_format = """$cmd_duration $jobs $status"""
|
format = """$time$container$directory$all$cmd_duration$jobs$status$line_break$username$hostname$character"""
|
||||||
|
|
||||||
|
# # PALETTE
|
||||||
|
palette = 'catppuccin_mocha'
|
||||||
|
|
||||||
|
[palettes.catppuccin_mocha]
|
||||||
|
rosewater = '#f5e0dc'
|
||||||
|
flamingo = '#f2cdcd'
|
||||||
|
pink = '#f5c2e7'
|
||||||
|
mauve = '#cba6f7'
|
||||||
|
red = '#f38ba8'
|
||||||
|
maroon = '#eba0ac'
|
||||||
|
peach = '#fab387'
|
||||||
|
yellow = '#f9e2af'
|
||||||
|
green = '#a6e3a1'
|
||||||
|
teal = '#94e2d5'
|
||||||
|
sky = '#89dceb'
|
||||||
|
sapphire = '#74c7ec'
|
||||||
|
blue = '#89b4fa'
|
||||||
|
lavender = '#b4befe'
|
||||||
|
text = '#cdd6f4'
|
||||||
|
subtext1 = '#bac2de'
|
||||||
|
subtext0 = '#a6adc8'
|
||||||
|
overlay2 = '#9399b2'
|
||||||
|
overlay1 = '#7f849c'
|
||||||
|
overlay0 = '#6c7086'
|
||||||
|
surface2 = '#585b70'
|
||||||
|
surface1 = '#45475a'
|
||||||
|
surface0 = '#313244'
|
||||||
|
base = '#1e1e2e'
|
||||||
|
mantle = '#181825'
|
||||||
|
crust = '#11111b'
|
||||||
|
|
||||||
|
## LEFT SIDE - FIRST LINE
|
||||||
[time]
|
[time]
|
||||||
disabled = false
|
disabled = false
|
||||||
format = '[\[ $time \]]($style) '
|
format = '[$time]($style) '
|
||||||
time_format = "%T"
|
time_format = '%T'
|
||||||
style = "bold peach"
|
style = 'bold peach'
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
style = 'subtext0'
|
||||||
|
truncation_length = 8
|
||||||
|
truncate_to_repo = true
|
||||||
|
truncation_symbol = 'repo: '
|
||||||
|
|
||||||
|
[docker_context]
|
||||||
|
symbol = 'docker: '
|
||||||
|
format = '[$symbol$context]($style)'
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
symbol = ' '
|
||||||
|
|
||||||
|
[git_status]
|
||||||
|
style = 'text'
|
||||||
|
ahead = '⇡${count}'
|
||||||
|
diverged = '⇕⇡${ahead_count}⇣${behind_count}'
|
||||||
|
behind = '⇣${count}'
|
||||||
|
deleted = 'x'
|
||||||
|
|
||||||
|
[golang]
|
||||||
|
symbol = 'go: '
|
||||||
|
format = '[$symbol($version )($style)'
|
||||||
|
|
||||||
|
[nix_shell]
|
||||||
|
symbol = 'nix: '
|
||||||
|
format = '[$symbol$state(\($name\))]($style)'
|
||||||
|
|
||||||
|
[nodejs]
|
||||||
|
symbol = 'node: '
|
||||||
|
format = '[$symbol($version)]($style)'
|
||||||
|
|
||||||
|
[python]
|
||||||
|
symbol = 'py: '
|
||||||
|
format = '[${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)'
|
||||||
|
|
||||||
|
[rust]
|
||||||
|
symbol = 'rust: '
|
||||||
|
format = '[$symbol($version)]($style)'
|
||||||
|
|
||||||
|
[cmd_duration]
|
||||||
|
min_time = 1
|
||||||
|
style = 'yellow'
|
||||||
|
format = 'duration: [$duration]($style) '
|
||||||
|
disabled = false
|
||||||
|
|
||||||
|
[status]
|
||||||
|
format = 'exit status: [$status = $common_meaning]($style) '
|
||||||
|
disabled = false
|
||||||
|
style = 'bold red'
|
||||||
|
recognize_signal_code = true
|
||||||
|
map_symbol = true
|
||||||
|
|
||||||
|
## LEFT SIDE - SECOND LINE
|
||||||
[username]
|
[username]
|
||||||
format = "[$user]($style)@"
|
format = '[$user]($style)@'
|
||||||
style_user = "red"
|
style_user = 'red'
|
||||||
style_root = "bold red"
|
style_root = 'bold red'
|
||||||
show_always = true
|
show_always = true
|
||||||
|
|
||||||
# Second param
|
|
||||||
[hostname]
|
[hostname]
|
||||||
format = "[$hostname]($style)"
|
format = '[$hostname]($style)'
|
||||||
style = "lavender"
|
style = 'lavender'
|
||||||
trim_at = ".local"
|
trim_at = '.local'
|
||||||
ssh_only = false
|
ssh_only = false
|
||||||
disabled = false
|
disabled = false
|
||||||
|
|
||||||
# Third param
|
|
||||||
[directory]
|
|
||||||
style = "subtext0"
|
|
||||||
truncation_length = 8
|
|
||||||
truncate_to_repo = true
|
|
||||||
truncation_symbol = "repo: "
|
|
||||||
|
|
||||||
# Before all the version info (python, nodejs, php, etc.)
|
|
||||||
[git_status]
|
|
||||||
style = "text"
|
|
||||||
ahead = "⇡${count}"
|
|
||||||
diverged = "⇕⇡${ahead_count}⇣${behind_count}"
|
|
||||||
behind = "⇣${count}"
|
|
||||||
deleted = "x"
|
|
||||||
|
|
||||||
[container]
|
|
||||||
style = "bold pink"
|
|
||||||
format = "[$symbol \\[ $name \\]]($style) "
|
|
||||||
|
|
||||||
# Last param in the first line/row
|
|
||||||
[cmd_duration]
|
|
||||||
min_time = 1
|
|
||||||
style = "yellow"
|
|
||||||
format = "duration: [$duration]($style)"
|
|
||||||
disabled = false
|
|
||||||
|
|
||||||
# Prompt: param 2
|
|
||||||
[character]
|
[character]
|
||||||
format = "$symbol "
|
format = ' [$symbol]($style) '
|
||||||
success_symbol = ' [%](teal)'
|
success_symbol = '[➜](bold teal)'
|
||||||
error_symbol = ' [%](red)'
|
error_symbol = '[➜](bold red)'
|
||||||
vicmd_symbol = " [<](teal)"
|
vimcmd_symbol = '[V](bold green)'
|
||||||
|
|
||||||
# SYMBOLS
|
|
||||||
[status]
|
|
||||||
format = 'exit status: [$status_common_meaning$status_signal_name$status]($style)'
|
|
||||||
disabled = false
|
|
||||||
style = "bold red"
|
|
||||||
|
|
||||||
[docker_context]
|
|
||||||
symbol = " "
|
|
||||||
|
|
||||||
[git_branch]
|
|
||||||
symbol = " "
|
|
||||||
|
|
||||||
[golang]
|
|
||||||
symbol = " "
|
|
||||||
|
|
||||||
[nodejs]
|
|
||||||
symbol = " "
|
|
||||||
|
|
||||||
[package]
|
|
||||||
symbol = " "
|
|
||||||
|
|
||||||
[python]
|
|
||||||
symbol = " "
|
|
||||||
|
|
||||||
[rust]
|
|
||||||
symbol = " "
|
|
||||||
|
|
||||||
[palettes.catppuccin_mocha]
|
|
||||||
rosewater = "#f5e0dc"
|
|
||||||
flamingo = "#f2cdcd"
|
|
||||||
pink = "#f5c2e7"
|
|
||||||
mauve = "#cba6f7"
|
|
||||||
red = "#f38ba8"
|
|
||||||
maroon = "#eba0ac"
|
|
||||||
peach = "#fab387"
|
|
||||||
yellow = "#f9e2af"
|
|
||||||
green = "#a6e3a1"
|
|
||||||
teal = "#94e2d5"
|
|
||||||
sky = "#89dceb"
|
|
||||||
sapphire = "#74c7ec"
|
|
||||||
blue = "#89b4fa"
|
|
||||||
lavender = "#b4befe"
|
|
||||||
text = "#cdd6f4"
|
|
||||||
subtext1 = "#bac2de"
|
|
||||||
subtext0 = "#a6adc8"
|
|
||||||
overlay2 = "#9399b2"
|
|
||||||
overlay1 = "#7f849c"
|
|
||||||
overlay0 = "#6c7086"
|
|
||||||
surface2 = "#585b70"
|
|
||||||
surface1 = "#45475a"
|
|
||||||
surface0 = "#313244"
|
|
||||||
base = "#1e1e2e"
|
|
||||||
mantle = "#181825"
|
|
||||||
crust = "#11111b"
|
|
||||||
|
9
config/.config/systemd/user/sync_to_remotes.service
Normal file
9
config/.config/systemd/user/sync_to_remotes.service
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Daily sync_to_remotes.py
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/home/jas/repos/codeberg.org/hyperreal/admin-scripts/sync_to_remotes.py
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
10
config/.config/systemd/user/sync_to_remotes.timer
Normal file
10
config/.config/systemd/user/sync_to_remotes.timer
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Daily sync_to_remotes.py
|
||||||
|
DefaultDependencies=yes
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar=*-*-* 00:00:00
|
||||||
|
Persistent=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
@ -0,0 +1 @@
|
|||||||
|
/home/jas/.config/systemd/user/sync_to_remotes.timer
|
@ -1,328 +1,19 @@
|
|||||||
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
|
copy_clipboard "system"
|
||||||
keybinds {
|
copy_command "wl-copy"
|
||||||
normal {
|
copy_on_select true
|
||||||
// uncomment this and adjust key if using copy_on_select=false
|
theme "catppuccin-mocha"
|
||||||
// bind "Alt c" { Copy; }
|
|
||||||
}
|
|
||||||
locked {
|
|
||||||
bind "Ctrl g" { SwitchToMode "Normal"; }
|
|
||||||
}
|
|
||||||
resize {
|
|
||||||
bind "Ctrl n" { SwitchToMode "Normal"; }
|
|
||||||
bind "h" "Left" { Resize "Increase Left"; }
|
|
||||||
bind "j" "Down" { Resize "Increase Down"; }
|
|
||||||
bind "k" "Up" { Resize "Increase Up"; }
|
|
||||||
bind "l" "Right" { Resize "Increase Right"; }
|
|
||||||
bind "H" { Resize "Decrease Left"; }
|
|
||||||
bind "J" { Resize "Decrease Down"; }
|
|
||||||
bind "K" { Resize "Decrease Up"; }
|
|
||||||
bind "L" { Resize "Decrease Right"; }
|
|
||||||
bind "=" "+" { Resize "Increase"; }
|
|
||||||
bind "-" { Resize "Decrease"; }
|
|
||||||
}
|
|
||||||
pane {
|
|
||||||
bind "Ctrl p" { SwitchToMode "Normal"; }
|
|
||||||
bind "h" "Left" { MoveFocus "Left"; }
|
|
||||||
bind "l" "Right" { MoveFocus "Right"; }
|
|
||||||
bind "j" "Down" { MoveFocus "Down"; }
|
|
||||||
bind "k" "Up" { MoveFocus "Up"; }
|
|
||||||
bind "p" { SwitchFocus; }
|
|
||||||
bind "n" { NewPane; SwitchToMode "Normal"; }
|
|
||||||
bind "d" { NewPane "Down"; SwitchToMode "Normal"; }
|
|
||||||
bind "r" { NewPane "Right"; SwitchToMode "Normal"; }
|
|
||||||
bind "x" { CloseFocus; SwitchToMode "Normal"; }
|
|
||||||
bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
|
|
||||||
bind "z" { TogglePaneFrames; SwitchToMode "Normal"; }
|
|
||||||
bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; }
|
|
||||||
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }
|
|
||||||
bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;}
|
|
||||||
}
|
|
||||||
move {
|
|
||||||
bind "Ctrl h" { SwitchToMode "Normal"; }
|
|
||||||
bind "n" "Tab" { MovePane; }
|
|
||||||
bind "h" "Left" { MovePane "Left"; }
|
|
||||||
bind "j" "Down" { MovePane "Down"; }
|
|
||||||
bind "k" "Up" { MovePane "Up"; }
|
|
||||||
bind "l" "Right" { MovePane "Right"; }
|
|
||||||
}
|
|
||||||
tab {
|
|
||||||
bind "Ctrl t" { SwitchToMode "Normal"; }
|
|
||||||
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
|
|
||||||
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
|
|
||||||
bind "l" "Right" "Down" "j" { GoToNextTab; }
|
|
||||||
bind "n" { NewTab; SwitchToMode "Normal"; }
|
|
||||||
bind "x" { CloseTab; SwitchToMode "Normal"; }
|
|
||||||
bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
|
|
||||||
bind "1" { GoToTab 1; SwitchToMode "Normal"; }
|
|
||||||
bind "2" { GoToTab 2; SwitchToMode "Normal"; }
|
|
||||||
bind "3" { GoToTab 3; SwitchToMode "Normal"; }
|
|
||||||
bind "4" { GoToTab 4; SwitchToMode "Normal"; }
|
|
||||||
bind "5" { GoToTab 5; SwitchToMode "Normal"; }
|
|
||||||
bind "6" { GoToTab 6; SwitchToMode "Normal"; }
|
|
||||||
bind "7" { GoToTab 7; SwitchToMode "Normal"; }
|
|
||||||
bind "8" { GoToTab 8; SwitchToMode "Normal"; }
|
|
||||||
bind "9" { GoToTab 9; SwitchToMode "Normal"; }
|
|
||||||
bind "Tab" { ToggleTab; }
|
|
||||||
}
|
|
||||||
scroll {
|
|
||||||
bind "Ctrl s" { SwitchToMode "Normal"; }
|
|
||||||
bind "e" { EditScrollback; SwitchToMode "Normal"; }
|
|
||||||
bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
|
|
||||||
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
|
|
||||||
bind "j" "Down" { ScrollDown; }
|
|
||||||
bind "k" "Up" { ScrollUp; }
|
|
||||||
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
|
|
||||||
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
|
|
||||||
bind "d" { HalfPageScrollDown; }
|
|
||||||
bind "u" { HalfPageScrollUp; }
|
|
||||||
// uncomment this and adjust key if using copy_on_select=false
|
|
||||||
// bind "Alt c" { Copy; }
|
|
||||||
}
|
|
||||||
search {
|
|
||||||
bind "Ctrl s" { SwitchToMode "Normal"; }
|
|
||||||
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
|
|
||||||
bind "j" "Down" { ScrollDown; }
|
|
||||||
bind "k" "Up" { ScrollUp; }
|
|
||||||
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
|
|
||||||
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
|
|
||||||
bind "d" { HalfPageScrollDown; }
|
|
||||||
bind "u" { HalfPageScrollUp; }
|
|
||||||
bind "n" { Search "down"; }
|
|
||||||
bind "p" { Search "up"; }
|
|
||||||
bind "c" { SearchToggleOption "CaseSensitivity"; }
|
|
||||||
bind "w" { SearchToggleOption "Wrap"; }
|
|
||||||
bind "o" { SearchToggleOption "WholeWord"; }
|
|
||||||
}
|
|
||||||
entersearch {
|
|
||||||
bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; }
|
|
||||||
bind "Enter" { SwitchToMode "Search"; }
|
|
||||||
}
|
|
||||||
renametab {
|
|
||||||
bind "Ctrl c" { SwitchToMode "Normal"; }
|
|
||||||
bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; }
|
|
||||||
}
|
|
||||||
renamepane {
|
|
||||||
bind "Ctrl c" { SwitchToMode "Normal"; }
|
|
||||||
bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; }
|
|
||||||
}
|
|
||||||
session {
|
|
||||||
bind "Ctrl o" { SwitchToMode "Normal"; }
|
|
||||||
bind "Ctrl s" { SwitchToMode "Scroll"; }
|
|
||||||
bind "d" { Detach; }
|
|
||||||
}
|
|
||||||
tmux {
|
|
||||||
bind "[" { SwitchToMode "Scroll"; }
|
|
||||||
bind "Ctrl b" { Write 2; SwitchToMode "Normal"; }
|
|
||||||
bind "\"" { NewPane "Down"; SwitchToMode "Normal"; }
|
|
||||||
bind "%" { NewPane "Right"; SwitchToMode "Normal"; }
|
|
||||||
bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
|
|
||||||
bind "c" { NewTab; SwitchToMode "Normal"; }
|
|
||||||
bind "," { SwitchToMode "RenameTab"; }
|
|
||||||
bind "p" { GoToPreviousTab; SwitchToMode "Normal"; }
|
|
||||||
bind "n" { GoToNextTab; SwitchToMode "Normal"; }
|
|
||||||
bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; }
|
|
||||||
bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; }
|
|
||||||
bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; }
|
|
||||||
bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; }
|
|
||||||
bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; }
|
|
||||||
bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; }
|
|
||||||
bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; }
|
|
||||||
bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; }
|
|
||||||
bind "o" { FocusNextPane; }
|
|
||||||
bind "d" { Detach; }
|
|
||||||
}
|
|
||||||
shared_except "locked" {
|
|
||||||
bind "Ctrl g" { SwitchToMode "Locked"; }
|
|
||||||
bind "Ctrl q" { Quit; }
|
|
||||||
bind "Alt n" { NewPane; }
|
|
||||||
bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; }
|
|
||||||
bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; }
|
|
||||||
bind "Alt j" "Alt Down" { MoveFocus "Down"; }
|
|
||||||
bind "Alt k" "Alt Up" { MoveFocus "Up"; }
|
|
||||||
bind "Alt =" "Alt +" { Resize "Increase"; }
|
|
||||||
bind "Alt -" { Resize "Decrease"; }
|
|
||||||
}
|
|
||||||
shared_except "normal" "locked" {
|
|
||||||
bind "Enter" "Esc" { SwitchToMode "Normal"; }
|
|
||||||
}
|
|
||||||
shared_except "pane" "locked" {
|
|
||||||
bind "Ctrl p" { SwitchToMode "Pane"; }
|
|
||||||
}
|
|
||||||
shared_except "resize" "locked" {
|
|
||||||
bind "Ctrl n" { SwitchToMode "Resize"; }
|
|
||||||
}
|
|
||||||
shared_except "scroll" "locked" {
|
|
||||||
bind "Ctrl s" { SwitchToMode "Scroll"; }
|
|
||||||
}
|
|
||||||
shared_except "session" "locked" {
|
|
||||||
bind "Ctrl o" { SwitchToMode "Session"; }
|
|
||||||
}
|
|
||||||
shared_except "tab" "locked" {
|
|
||||||
bind "Ctrl t" { SwitchToMode "Tab"; }
|
|
||||||
}
|
|
||||||
shared_except "move" "locked" {
|
|
||||||
bind "Ctrl h" { SwitchToMode "Move"; }
|
|
||||||
}
|
|
||||||
shared_except "tmux" "locked" {
|
|
||||||
bind "Ctrl b" { SwitchToMode "Tmux"; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
tab-bar { path "tab-bar"; }
|
|
||||||
status-bar { path "status-bar"; }
|
|
||||||
strider { path "strider"; }
|
|
||||||
// compact-bar { path "compact-bar"; }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
|
|
||||||
// eg. when terminal window with an active zellij session is closed
|
|
||||||
// Options:
|
|
||||||
// - detach (Default)
|
|
||||||
// - quit
|
|
||||||
//
|
|
||||||
// on_force_close "quit"
|
|
||||||
|
|
||||||
// Send a request for a simplified ui (without arrow fonts) to plugins
|
|
||||||
// Options:
|
|
||||||
// - true
|
|
||||||
// - false (Default)
|
|
||||||
//
|
|
||||||
// simplified_ui true
|
|
||||||
|
|
||||||
// Choose the path to the default shell that zellij will use for opening new panes
|
|
||||||
// Default: $SHELL
|
|
||||||
//
|
|
||||||
// default_shell "fish"
|
|
||||||
|
|
||||||
// Toggle between having pane frames around the panes
|
|
||||||
// Options:
|
|
||||||
// - true (default)
|
|
||||||
// - false
|
|
||||||
//
|
|
||||||
// pane_frames true
|
|
||||||
|
|
||||||
// Define color themes for Zellij
|
|
||||||
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
|
|
||||||
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
|
|
||||||
//
|
|
||||||
// themes {
|
|
||||||
// dracula {
|
|
||||||
// fg 248 248 242
|
|
||||||
// bg 40 42 54
|
|
||||||
// red 255 85 85
|
|
||||||
// green 80 250 123
|
|
||||||
// yellow 241 250 140
|
|
||||||
// blue 98 114 164
|
|
||||||
// magenta 255 121 198
|
|
||||||
// orange 255 184 108
|
|
||||||
// cyan 139 233 253
|
|
||||||
// black 0 0 0
|
|
||||||
// white 255 255 255
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
themes {
|
themes {
|
||||||
catppuccin-mocha {
|
catppuccin-mocha {
|
||||||
bg "#585b70"
|
bg "#585b70"
|
||||||
fg "#cdd6f4"
|
black "#181825"
|
||||||
red "#f38ba8"
|
|
||||||
green "#a6e3a1"
|
|
||||||
blue "#89b4fa"
|
blue "#89b4fa"
|
||||||
yellow "#f9e2af"
|
cyan "#89dceb"
|
||||||
|
fg "#cdd6f4"
|
||||||
|
green "#a6e3a1"
|
||||||
magenta "#f5c2e7"
|
magenta "#f5c2e7"
|
||||||
orange "#fab387"
|
orange "#fab387"
|
||||||
cyan "#89dceb"
|
red "#f38ba8"
|
||||||
black "#181825"
|
|
||||||
white "#cdd6f4"
|
white "#cdd6f4"
|
||||||
}
|
yellow "#f9e2af"
|
||||||
rose-pine {
|
|
||||||
bg "#191724"
|
|
||||||
fg "#e0def4"
|
|
||||||
red "#eb6f92"
|
|
||||||
green "#31748f"
|
|
||||||
blue "#9ccfd8"
|
|
||||||
yellow "#f6c177"
|
|
||||||
magenta "#c4a7e7"
|
|
||||||
orange "#fe640b"
|
|
||||||
cyan "#ebbcba"
|
|
||||||
black "#26233a"
|
|
||||||
white "#e0def4"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Choose the theme that is specified in the themes section.
|
|
||||||
// Default: default
|
|
||||||
//
|
|
||||||
theme "catppuccin-mocha"
|
|
||||||
|
|
||||||
// The name of the default layout to load on startup
|
|
||||||
// Default: "default"
|
|
||||||
//
|
|
||||||
default_layout "default"
|
|
||||||
|
|
||||||
// Choose the mode that zellij uses when starting up.
|
|
||||||
// Default: normal
|
|
||||||
//
|
|
||||||
// default_mode "locked"
|
|
||||||
|
|
||||||
// Toggle enabling the mouse mode.
|
|
||||||
// On certain configurations, or terminals this could
|
|
||||||
// potentially interfere with copying text.
|
|
||||||
// Options:
|
|
||||||
// - true (default)
|
|
||||||
// - false
|
|
||||||
//
|
|
||||||
// mouse_mode false
|
|
||||||
|
|
||||||
// Configure the scroll back buffer size
|
|
||||||
// This is the number of lines zellij stores for each pane in the scroll back
|
|
||||||
// buffer. Excess number of lines are discarded in a FIFO fashion.
|
|
||||||
// Valid values: positive integers
|
|
||||||
// Default value: 10000
|
|
||||||
//
|
|
||||||
// scroll_buffer_size 10000
|
|
||||||
|
|
||||||
// Provide a command to execute when copying text. The text will be piped to
|
|
||||||
// the stdin of the program to perform the copy. This can be used with
|
|
||||||
// terminal emulators which do not support the OSC 52 ANSI control sequence
|
|
||||||
// that will be used by default if this option is not set.
|
|
||||||
// Examples:
|
|
||||||
//
|
|
||||||
//copy_command "xclip -selection clipboard" // x11
|
|
||||||
copy_command "wl-copy" // wayland
|
|
||||||
// copy_command "pbcopy" // osx
|
|
||||||
|
|
||||||
// Choose the destination for copied text
|
|
||||||
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
|
|
||||||
// Does not apply when using copy_command.
|
|
||||||
// Options:
|
|
||||||
// - system (default)
|
|
||||||
// - primary
|
|
||||||
//
|
|
||||||
copy_clipboard "system"
|
|
||||||
|
|
||||||
// Enable or disable automatic copy (and clear) of selection when releasing mouse
|
|
||||||
// Default: true
|
|
||||||
//
|
|
||||||
copy_on_select true
|
|
||||||
|
|
||||||
// Path to the default editor to use to edit pane scrollbuffer
|
|
||||||
// Default: $EDITOR or $VISUAL
|
|
||||||
//
|
|
||||||
scrollback_editor "/bin/emacs -nw"
|
|
||||||
|
|
||||||
// When attaching to an existing session with other users,
|
|
||||||
// should the session be mirrored (true)
|
|
||||||
// or should each user have their own cursor (false)
|
|
||||||
// Default: false
|
|
||||||
//
|
|
||||||
// mirror_session true
|
|
||||||
|
|
||||||
// The folder in which Zellij will look for layouts
|
|
||||||
//
|
|
||||||
layout_dir "/home/jas/.config/zellij/layouts"
|
|
||||||
|
|
||||||
// The folder in which Zellij will look for themes
|
|
||||||
//
|
|
||||||
// theme_dir "/path/to/my/theme_dir"
|
|
||||||
|
296
doom/.doom.d/config.el
Normal file
296
doom/.doom.d/config.el
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;;;; Misc settings
|
||||||
|
|
||||||
|
;; start Emacs as a server process
|
||||||
|
(server-start)
|
||||||
|
|
||||||
|
(setq doom-user-dir "~/.doom.d/")
|
||||||
|
|
||||||
|
;; package-archives
|
||||||
|
(setq package-archives
|
||||||
|
'(("gnu" . "https://elpa.gnu.org/packages/")
|
||||||
|
("melpa" . "https://melpa.org/packages/")))
|
||||||
|
|
||||||
|
(after! projectile
|
||||||
|
(setq projectile-project-root-files-bottom-up
|
||||||
|
(remove ".git" projectile-project-root-files-bottom-up)))
|
||||||
|
|
||||||
|
;; Set fonts
|
||||||
|
(setq fontsize 18)
|
||||||
|
(setq monofontfam "JetBrainsMono Nerd Font Mono")
|
||||||
|
(setq doom-font (font-spec :family monofontfam :size fontsize)
|
||||||
|
doom-variable-pitch-font (font-spec :family monofontfam :size fontsize)
|
||||||
|
doom-symbol-font (font-spec :family monofontfam :size fontsize)
|
||||||
|
doom-big-font (font-spec :family monofontfam :size fontsize))
|
||||||
|
|
||||||
|
;; Use catppuccin-mocha theme
|
||||||
|
(setq doom-theme 'catppuccin)
|
||||||
|
(setq catppuccin-flavor 'mocha)
|
||||||
|
|
||||||
|
;; History
|
||||||
|
(setq savehist-file "~/.local/share/emacs/savehist")
|
||||||
|
(savehist-mode 1)
|
||||||
|
(setq history-length t)
|
||||||
|
(setq history-delete-duplicates t)
|
||||||
|
(setq savehist-save-minibuffer-history 1)
|
||||||
|
(setq savehist-additional-variables
|
||||||
|
'(kill-ring
|
||||||
|
search-ring
|
||||||
|
regexp-search-ring))
|
||||||
|
|
||||||
|
;; Display time in the modeline
|
||||||
|
(display-time-mode 1)
|
||||||
|
|
||||||
|
;; Enable blink cursor
|
||||||
|
(blink-cursor-mode 1)
|
||||||
|
|
||||||
|
;; Sentences end with a single space because it's right and proper
|
||||||
|
(setq sentence-end-double-space nil)
|
||||||
|
|
||||||
|
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||||
|
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||||
|
(setq display-line-numbers-type 'relative)
|
||||||
|
|
||||||
|
;; Keybinding to kill-whole-line
|
||||||
|
(global-set-key (kbd "M-9") 'kill-whole-line)
|
||||||
|
|
||||||
|
;; trim newline from string output
|
||||||
|
(defun string-trim-final-newline (string)
|
||||||
|
"Trim the last newline character from string.
|
||||||
|
Used with `shell-command-to-string'.
|
||||||
|
Source: https://emacs.stackexchange.com/a/21906"
|
||||||
|
(let ((len (length string)))
|
||||||
|
(cond
|
||||||
|
((and (> len 0) (eql (aref string (- len 1)) ?\n))
|
||||||
|
(substring string 0 (- len 1)))
|
||||||
|
(t string))))
|
||||||
|
|
||||||
|
;; wrapper around `shell-command-to-string' to remove newline
|
||||||
|
(defun shell-command-output-string (command)
|
||||||
|
(string-trim-final-newline (shell-command-to-string command)))
|
||||||
|
|
||||||
|
;; Copy all or text selection
|
||||||
|
(defun xah-copy-all-or-region ()
|
||||||
|
"Put the whole buffer content to `kill-ring', or text selection if there's one.
|
||||||
|
Respects `narrow-to-region'.
|
||||||
|
URL `https://ergomacs.org/emacs/emacs_copy_cut_all_or_region.html'
|
||||||
|
Version 2015-08-22"
|
||||||
|
(interactive)
|
||||||
|
(if (use-region-p)
|
||||||
|
(progn
|
||||||
|
(kill-new (buffer-substring (region-beginning) (region-end)))
|
||||||
|
(message "Text selection copied."))
|
||||||
|
(progn
|
||||||
|
(kill-new (buffer-string))
|
||||||
|
(message "Buffer content copied."))))
|
||||||
|
|
||||||
|
;; Cut all or text selection
|
||||||
|
(defun xah-cut-all-or-region ()
|
||||||
|
"Cut the whole buffer content to `kill-ring', or text selection if there's one.
|
||||||
|
Respects `narrow-to-region'.
|
||||||
|
URL `https://ergomacs.org/emacs/emacs_copy_cut_all_or_region.html'
|
||||||
|
Version 2015-08-22"
|
||||||
|
(interactive)
|
||||||
|
(if (use-region-p)
|
||||||
|
(progn
|
||||||
|
(kill-new (buffer-substring (region-beginning) (region-end)))
|
||||||
|
(delete-region (region-beginning) (region-end)))
|
||||||
|
(progn
|
||||||
|
(kill-new (buffer-string))
|
||||||
|
(delete-region (point-min) (point-max)))))
|
||||||
|
|
||||||
|
;; open URL in Firefox/LibreWolf
|
||||||
|
(defun browse-host-web (url)
|
||||||
|
"Browse URL with Firefox/LibreWolf/IceCat"
|
||||||
|
(interactive "sURL: ")
|
||||||
|
(shell-command (concat "librewolf" url)))
|
||||||
|
|
||||||
|
(setq browse-url-browser-function 'browse-host-web)
|
||||||
|
|
||||||
|
;; after copy Ctrl+c in Linux X11, you can paste by `yank' in emacs
|
||||||
|
(setq select-enable-clipboard t)
|
||||||
|
|
||||||
|
;; after mouse selection copy in X11, you can paste by `yank' in emacs
|
||||||
|
(setq select-enable-primary t)
|
||||||
|
|
||||||
|
;; set keybinding for paste
|
||||||
|
(global-set-key (kbd "C-S-V") #'clipboard-yank)
|
||||||
|
|
||||||
|
;; Smart home key
|
||||||
|
(defun smart-beginning-of-line ()
|
||||||
|
"Move point to first non-whitespace character or beginning-of-line.
|
||||||
|
|
||||||
|
Move point to the first non-whitespace character on this line.
|
||||||
|
If point was already at that position, move point to beginning of line."
|
||||||
|
(interactive "^")
|
||||||
|
(let ((oldpos (point)))
|
||||||
|
(back-to-indentation)
|
||||||
|
(and (= oldpos (point))
|
||||||
|
(beginning-of-line))))
|
||||||
|
|
||||||
|
(global-set-key (kbd "<home>") 'smart-beginning-of-line)
|
||||||
|
(global-set-key (kbd "<end>") 'end-of-line)
|
||||||
|
|
||||||
|
;; Autoformat on save
|
||||||
|
(setq +format-on-save-enabled-modes
|
||||||
|
'(emacs-lisp-mode))
|
||||||
|
|
||||||
|
;; UTF-8
|
||||||
|
(prefer-coding-system 'utf-8)
|
||||||
|
(when (display-graphic-p)
|
||||||
|
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)))
|
||||||
|
|
||||||
|
|
||||||
|
;;;; undo-tree-mode - visualize undos and branches
|
||||||
|
|
||||||
|
(global-undo-tree-mode)
|
||||||
|
(setq undo-tree-visualizer-timestamps t)
|
||||||
|
(setq undo-tree-visualizer-diff t)
|
||||||
|
(setq undo-tree-history-directory-alist '(("." . "~/.local/share/emacs/backups/undo-tree")))
|
||||||
|
|
||||||
|
|
||||||
|
;;;; evil-nerd-commenter
|
||||||
|
|
||||||
|
(global-set-key (kbd "M-;") 'evilnc-comment-or-uncomment-lines)
|
||||||
|
(global-set-key (kbd "C-c l") 'evilnc-quick-comment-or-uncomment-to-the-line)
|
||||||
|
(global-set-key (kbd "C-c c") 'evilnc-copy-and-comment-lines)
|
||||||
|
(global-set-key (kbd "C-c p") 'evilnc-comment-or-uncomment-paragraphs)
|
||||||
|
|
||||||
|
|
||||||
|
;;;; org-mode
|
||||||
|
|
||||||
|
(add-hook 'org-mode-hook (lambda () (org-superstar-mode 1)))
|
||||||
|
(require 'org-protocol)
|
||||||
|
|
||||||
|
(setq org-modules '(org-agenda
|
||||||
|
org-choose
|
||||||
|
org-collector
|
||||||
|
))
|
||||||
|
(eval-after-load 'org
|
||||||
|
'(org-load-modules-maybe t))
|
||||||
|
|
||||||
|
(setq org-directory "~/org/")
|
||||||
|
(setq org-default-notes-file "~/org/inbox.org")
|
||||||
|
(setq org-agenda-files '("~/org/inbox.org"))
|
||||||
|
|
||||||
|
;; support selecting lines by using shift
|
||||||
|
(setq org-support-shift-select t)
|
||||||
|
|
||||||
|
;; org-mode tags
|
||||||
|
;; I hardly use these but whatever
|
||||||
|
(setq org-tag-alist (quote (("@archiving" .?a)
|
||||||
|
("@blog" .?b)
|
||||||
|
("@homelab" . ?l)
|
||||||
|
("@hyperreal.coffee" .?h)
|
||||||
|
("@nirn.quest" .?n)
|
||||||
|
("@reading" . ?r)
|
||||||
|
("@selfcare" . ?s))))
|
||||||
|
|
||||||
|
;; org-mode keybindings
|
||||||
|
(with-eval-after-load 'org
|
||||||
|
(bind-key "C-c $" 'org-archive-subtree)
|
||||||
|
(bind-key "C-c r" 'org-capture)
|
||||||
|
(bind-key "C-c R" 'org-roam-capture)
|
||||||
|
(bind-key "C-c a" 'org-agenda)
|
||||||
|
(bind-key "C-c l" 'org-store-link)
|
||||||
|
(bind-key "C-c L" 'org-insert-link-global)
|
||||||
|
(bind-key "C-c O" 'org-open-at-point-global))
|
||||||
|
|
||||||
|
(setq org-use-effective-time t)
|
||||||
|
|
||||||
|
;; org-refile
|
||||||
|
(setq org-reverse-note-order nil) ; new notes prepended
|
||||||
|
(setq org-refile-use-outline-path 'full-file-path)
|
||||||
|
(setq org-outline-path-complete-in-steps nil)
|
||||||
|
(setq org-refile-allow-creating-parent-nodes nil)
|
||||||
|
(setq org-refile-use-cache nil)
|
||||||
|
(setq org-blank-before-new-entry '((heading . t) (plain-list-item . t)))
|
||||||
|
|
||||||
|
(setq org-refile-targets
|
||||||
|
`((("~/org/inbox.org"
|
||||||
|
"~/org/computing.org"
|
||||||
|
"~/org/todos.org")
|
||||||
|
. (:maxlevel . 5))))
|
||||||
|
|
||||||
|
;; org-todo-keywords
|
||||||
|
(with-eval-after-load 'org
|
||||||
|
(setq org-todo-keywords
|
||||||
|
'((sequence
|
||||||
|
"STARTED(s)"
|
||||||
|
"TODO(t)"
|
||||||
|
"WAITING(w@/!)"
|
||||||
|
"IDEA(i)"
|
||||||
|
"SOMEDAY(.)"
|
||||||
|
"BLOCKED(k@/!)"
|
||||||
|
"|"
|
||||||
|
"DONE(x!)"
|
||||||
|
"CANCELLED(c)")
|
||||||
|
(sequence "PROJECT" "|" "DONE(x)")
|
||||||
|
(sequence "MAYBE(,0)" "CHOSEN(c,+)" "|" "REJECTED")))
|
||||||
|
|
||||||
|
;; catppuccin palette
|
||||||
|
(setq org-todo-keyword-faces
|
||||||
|
'(("STARTED" . (:foreground "#a6d189" :weight bold))
|
||||||
|
("TODO" . (:foreground "#a6e3a1" :weight bold))
|
||||||
|
("WAITING" . (:foreground "#f9e2af" :weight bold))
|
||||||
|
("IDEA" . (:foreground "#74c7ec" :weight bold))
|
||||||
|
("SOMEDAY" . (:foreground "#f2cdcd" :weight bold))
|
||||||
|
("BLOCKED" . (:foreground "#c6d0f5" :weight bold))
|
||||||
|
("DONE" . (:foreground "#f38ba8" :weight bold))
|
||||||
|
("CANCELLED" . (:foreground "#e78284" :weight bold))
|
||||||
|
("MAYBE" . (:foreground "#c6d0f5" :weight bold))
|
||||||
|
("CHOSEN" . (:foreground "#89b4fa" :weight bold))
|
||||||
|
("REJECTED" . (:foreground "#d20f39" :weight bold)))))
|
||||||
|
|
||||||
|
(setq org-log-done 'time)
|
||||||
|
|
||||||
|
;; ox-hugo
|
||||||
|
(with-eval-after-load 'ox
|
||||||
|
(require 'ox-hugo))
|
||||||
|
|
||||||
|
;; colorize compilation buffer
|
||||||
|
;; from https://sachachua.com/dotemacs/index.html#orga33bac5
|
||||||
|
(require 'ansi-color)
|
||||||
|
(defun colorize-compilation-buffer ()
|
||||||
|
(when (eq major-mode 'compilation-mode)
|
||||||
|
(let ((inhibit-read-only t))
|
||||||
|
(ansi-color-apply-on-region compilation-filter-start (point-max)))))
|
||||||
|
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
|
||||||
|
|
||||||
|
|
||||||
|
;;;; helpful
|
||||||
|
|
||||||
|
(global-set-key (kbd "C-h f") #'helpful-callable)
|
||||||
|
(global-set-key (kbd "C-h v") #'helpful-variable)
|
||||||
|
(global-set-key (kbd "C-h k") #'helpful-key)
|
||||||
|
(global-set-key (kbd "C-h x") #'helpful-command)
|
||||||
|
(global-set-key (kbd "C-c C-d") #'helpful-at-point)
|
||||||
|
|
||||||
|
|
||||||
|
;;;; dictionary
|
||||||
|
|
||||||
|
(global-set-key (kbd "C-c l") #'dictionary-lookup-definition)
|
||||||
|
(setq dictionary-server "dict.org")
|
||||||
|
|
||||||
|
|
||||||
|
;;;; dired
|
||||||
|
|
||||||
|
(map! :after dired
|
||||||
|
:map dired-mode-map
|
||||||
|
"C-o" #'casual-dired-tmenu)
|
||||||
|
|
||||||
|
|
||||||
|
;;;; elpher
|
||||||
|
|
||||||
|
(setq elpher-default-url-type "gemini")
|
||||||
|
|
||||||
|
|
||||||
|
;;;; vterm
|
||||||
|
|
||||||
|
(setq vterm-kill-buffer-on-exit t)
|
||||||
|
(setq vterm-always-compile-module t)
|
||||||
|
(setq vterm-other-window t)
|
||||||
|
(setq vterm-buffer-name-string "vterm %s")
|
||||||
|
(setq vterm-copy-exclude-prompt t)
|
||||||
|
(setq vterm-ignore-blink-cursor nil)
|
191
doom/.doom.d/init.el
Normal file
191
doom/.doom.d/init.el
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
;;; init.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;; This file controls what Doom modules are enabled and what order they load
|
||||||
|
;; in. Remember to run 'doom sync' after modifying it!
|
||||||
|
|
||||||
|
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
||||||
|
;; documentation. There you'll find a link to Doom's Module Index where all
|
||||||
|
;; of our modules are listed, including what flags they support.
|
||||||
|
|
||||||
|
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
||||||
|
;; 'C-c c k' for non-vim users) to view its documentation. This works on
|
||||||
|
;; flags as well (those symbols that start with a plus).
|
||||||
|
;;
|
||||||
|
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
|
||||||
|
;; directory (for easy access to its source code).
|
||||||
|
|
||||||
|
(doom! :input
|
||||||
|
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
|
||||||
|
;;chinese
|
||||||
|
;;japanese
|
||||||
|
;;layout ; auie,ctsrnm is the superior home row
|
||||||
|
|
||||||
|
:completion
|
||||||
|
company ; the ultimate code completion backend
|
||||||
|
;; (corfu +orderless) ; complete with cap(f), cape and a flying feather!
|
||||||
|
;;helm ; the *other* search engine for love and life
|
||||||
|
;;ido ; the other *other* search engine...
|
||||||
|
;;ivy ; a search engine for love and life
|
||||||
|
vertico ; the search engine of the future
|
||||||
|
|
||||||
|
:ui
|
||||||
|
;;deft ; notational velocity for Emacs
|
||||||
|
doom ; what makes DOOM look the way it does
|
||||||
|
doom-dashboard ; a nifty splash screen for Emacs
|
||||||
|
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||||
|
(emoji +unicode) ; 🙂
|
||||||
|
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||||
|
;;indent-guides ; highlighted indent columns
|
||||||
|
ligatures ; ligatures and symbols to make your code pretty again
|
||||||
|
;;minimap ; show a map of the code on the side
|
||||||
|
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||||
|
;;nav-flash ; blink cursor line after big motions
|
||||||
|
;;neotree ; a project drawer, like NERDTree for vim
|
||||||
|
ophints ; highlight the region an operation acts on
|
||||||
|
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||||
|
;;tabs ; a tab bar for Emacs
|
||||||
|
;;treemacs ; a project drawer, like neotree but cooler
|
||||||
|
;;unicode ; extended unicode support for various languages
|
||||||
|
(vc-gutter +pretty) ; vcs diff in the fringe
|
||||||
|
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||||
|
;;window-select ; visually switch windows
|
||||||
|
workspaces ; tab emulation, persistence & separate workspaces
|
||||||
|
;;zen ; distraction-free coding or writing
|
||||||
|
|
||||||
|
:editor
|
||||||
|
;;(evil +everywhere); come to the dark side, we have cookies
|
||||||
|
file-templates ; auto-snippets for empty files
|
||||||
|
fold ; (nigh) universal code folding
|
||||||
|
(format +onsave) ; automated prettiness
|
||||||
|
;;god ; run Emacs commands without modifier keys
|
||||||
|
;;lispy ; vim for lisp, for people who don't like vim
|
||||||
|
;;multiple-cursors ; editing in many places at once
|
||||||
|
;;objed ; text object editing for the innocent
|
||||||
|
;;parinfer ; turn lisp into python, sort of
|
||||||
|
;;rotate-text ; cycle region at point between text candidates
|
||||||
|
snippets ; my elves. They type so I don't have to
|
||||||
|
;;word-wrap ; soft wrapping with language-aware indent
|
||||||
|
|
||||||
|
:emacs
|
||||||
|
dired ; making dired pretty [functional]
|
||||||
|
electric ; smarter, keyword-based electric-indent
|
||||||
|
ibuffer ; interactive buffer management
|
||||||
|
undo ; persistent, smarter undo for your inevitable mistakes
|
||||||
|
vc ; version-control and Emacs, sitting in a tree
|
||||||
|
|
||||||
|
:term
|
||||||
|
;;eshell ; the elisp shell that works everywhere
|
||||||
|
;;shell ; simple shell REPL for Emacs
|
||||||
|
;;term ; basic terminal emulator for Emacs
|
||||||
|
vterm ; the best terminal emulation in Emacs
|
||||||
|
|
||||||
|
:checkers
|
||||||
|
syntax ; tasing you for every semicolon you forget
|
||||||
|
;; (spell +flyspell) ; tasing you for misspelling mispelling
|
||||||
|
;; grammar ; tasing grammar mistake every you make
|
||||||
|
|
||||||
|
:tools
|
||||||
|
ansible
|
||||||
|
;;biblio ; Writes a PhD for you (citation needed)
|
||||||
|
;;collab ; buffers with friends
|
||||||
|
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||||
|
direnv
|
||||||
|
;;docker
|
||||||
|
;;editorconfig ; let someone else argue about tabs vs spaces
|
||||||
|
;;ein ; tame Jupyter notebooks with emacs
|
||||||
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
|
;; lookup ; navigate your code and its documentation
|
||||||
|
lsp ; M-x vscode
|
||||||
|
magit ; a git porcelain for Emacs
|
||||||
|
make ; run make tasks from Emacs
|
||||||
|
;;pass ; password manager for nerds
|
||||||
|
;; pdf ; pdf enhancements
|
||||||
|
;;prodigy ; FIXME managing external services & code builders
|
||||||
|
;;terraform ; infrastructure as code
|
||||||
|
;;tmux ; an API for interacting with tmux
|
||||||
|
tree-sitter ; syntax and parsing, sitting in a tree...
|
||||||
|
;;upload ; map local to remote projects via ssh/ftp
|
||||||
|
|
||||||
|
:os
|
||||||
|
(:if (featurep :system 'macos) macos) ; improve compatibility with macOS
|
||||||
|
;;tty ; improve the terminal Emacs experience
|
||||||
|
|
||||||
|
:lang
|
||||||
|
;;agda ; types of types of types of types...
|
||||||
|
;;beancount ; mind the GAAP
|
||||||
|
;;(cc +lsp) ; C > C++ == 1
|
||||||
|
;;clojure ; java with a lisp
|
||||||
|
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||||
|
;;coq ; proofs-as-programs
|
||||||
|
;;crystal ; ruby at the speed of c
|
||||||
|
;;csharp ; unity, .NET, and mono shenanigans
|
||||||
|
data ; config/data formats
|
||||||
|
;;(dart +flutter) ; paint ui and not much else
|
||||||
|
;;dhall
|
||||||
|
;;elixir ; erlang done right
|
||||||
|
;;elm ; care for a cup of TEA?
|
||||||
|
emacs-lisp ; drown in parentheses
|
||||||
|
;;erlang ; an elegant language for a more civilized age
|
||||||
|
;;ess ; emacs speaks statistics
|
||||||
|
;;factor
|
||||||
|
;;faust ; dsp, but you get to keep your soul
|
||||||
|
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
|
||||||
|
;;fsharp ; ML stands for Microsoft's Language
|
||||||
|
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||||
|
;;gdscript ; the language you waited for
|
||||||
|
(go +lsp) ; the hipster dialect
|
||||||
|
;;(graphql +lsp) ; Give queries a REST
|
||||||
|
;;(haskell +lsp) ; a language that's lazier than I am
|
||||||
|
;;hy ; readability of scheme w/ speed of python
|
||||||
|
;;idris ; a language you can depend on
|
||||||
|
json ; At least it ain't XML
|
||||||
|
;;(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||||
|
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||||
|
;;julia ; a better, faster MATLAB
|
||||||
|
;;kotlin ; a better, slicker Java(Script)
|
||||||
|
;;latex ; writing papers in Emacs has never been so fun
|
||||||
|
;;lean ; for folks with too much to prove
|
||||||
|
;;ledger ; be audit you can be
|
||||||
|
;;lua ; one-based indices? one-based indices
|
||||||
|
markdown ; writing docs for people to ignore
|
||||||
|
;;nim ; python + lisp at the speed of c
|
||||||
|
nix ; I hereby declare "nix geht mehr!"
|
||||||
|
;;ocaml ; an objective camel
|
||||||
|
org ; organize your plain life in plain text
|
||||||
|
;;php ; perl's insecure younger brother
|
||||||
|
;;plantuml ; diagrams for confusing people more
|
||||||
|
;;purescript ; javascript, but functional
|
||||||
|
(python +lsp +pyright) ; beautiful is better than ugly
|
||||||
|
;;qt ; the 'cutest' gui framework ever
|
||||||
|
;;racket ; a DSL for DSLs
|
||||||
|
;;raku ; the artist formerly known as perl6
|
||||||
|
;;rest ; Emacs as a REST client
|
||||||
|
;;rst ; ReST in peace
|
||||||
|
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||||
|
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||||
|
;;scala ; java, but good
|
||||||
|
;;(scheme +guile) ; a fully conniving family of lisps
|
||||||
|
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||||
|
;; sml
|
||||||
|
;;solidity ; do you need a blockchain? No.
|
||||||
|
;;swift ; who asked for emoji variables?
|
||||||
|
;;terra ; Earth and Moon in alignment for performance.
|
||||||
|
web ; the tubes
|
||||||
|
yaml ; JSON, but readable
|
||||||
|
;;zig ; C, but simpler
|
||||||
|
|
||||||
|
:email
|
||||||
|
;;(mu4e +org +gmail)
|
||||||
|
;;notmuch
|
||||||
|
;;(wanderlust +gmail)
|
||||||
|
|
||||||
|
:app
|
||||||
|
;;calendar
|
||||||
|
;;emms
|
||||||
|
;;everywhere ; *leave* Emacs!? You must be joking
|
||||||
|
;;irc ; how neckbeards socialize
|
||||||
|
;;(rss +org) ; emacs as an RSS reader
|
||||||
|
|
||||||
|
:config
|
||||||
|
;;literate
|
||||||
|
(default +bindings +smartparens))
|
27
doom/.doom.d/packages.el
Normal file
27
doom/.doom.d/packages.el
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
;; -*- no-byte-compile: t; -*-
|
||||||
|
;;; $DOOMDIR/packages.el
|
||||||
|
|
||||||
|
;; To install a package with Doom you must declare them here and run 'doom sync'
|
||||||
|
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||||
|
;; use 'M-x doom/reload'.
|
||||||
|
|
||||||
|
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||||
|
;(package! some-package)
|
||||||
|
(package! apheleia)
|
||||||
|
(package! autothemer)
|
||||||
|
(package! casual-dired)
|
||||||
|
(package! catppuccin-theme)
|
||||||
|
(package! dockerfile-mode)
|
||||||
|
(package! elpher)
|
||||||
|
(package! evil-nerd-commenter)
|
||||||
|
(package! gemini :recipe
|
||||||
|
(:host nil :repo "https://git.carcosa.net/jmcbray/gemini.el"))
|
||||||
|
(package! helpful)
|
||||||
|
(package! just-mode)
|
||||||
|
(package! license-templates)
|
||||||
|
(package! org-superstar)
|
||||||
|
(package! ox-hugo)
|
||||||
|
(package! pdf-tools)
|
||||||
|
(package! shell-pop)
|
||||||
|
(package! systemd)
|
||||||
|
(package! undo-tree)
|
@ -1,39 +1,47 @@
|
|||||||
# justfile for common household tasks
|
# justfile for common household tasks
|
||||||
|
|
||||||
set shell := ["zsh", "-cu"]
|
set shell := ["zsh", "-cu"]
|
||||||
|
dotfiles_repo := "/home/jas/repos/codeberg.org/hyperreal/dotfiles"
|
||||||
go-tools:
|
homedir := "/home/jas/"
|
||||||
go install golang.org/x/tools/gpls@latest
|
configdir := "/home/jas/.config/"
|
||||||
go install github.com/fatih/gomodifytags@latest
|
|
||||||
go install github.com/cweill/gotests/...@latest
|
|
||||||
go install github.com/x-motemen/gore/cmd/gore@latest
|
|
||||||
go install golang.org/x/tools/cmd/guru@latest
|
|
||||||
|
|
||||||
python-tools:
|
|
||||||
pipx install --include-deps ansible
|
|
||||||
pipx install black
|
|
||||||
pipx install nose
|
|
||||||
pipx install pytest
|
|
||||||
pipx install hyfetch
|
|
||||||
pip install --user pyright
|
|
||||||
|
|
||||||
webdev-tools:
|
|
||||||
sudo npm install -g @catppuccin/inkcat
|
|
||||||
sudo npm install -g prettier
|
|
||||||
sudo npm install -g js-beautify
|
|
||||||
sudo npm install -g stylelint
|
|
||||||
sudo dnf install -y tidy
|
|
||||||
|
|
||||||
rust-tools:
|
|
||||||
source "${HOME}/.cargo/env"
|
|
||||||
cargo install cargo-binstall
|
|
||||||
cargo_pkgs=(arp-scan bandwhich bat diskonaut du-dust fblog fd hyperfine procs ripgrep skim vivid wthrr)
|
|
||||||
for pkg in "${cargo_pkgs[@]}"; do cargo-binstall -y "$pkg"; done
|
|
||||||
|
|
||||||
refresh-doom-emacs:
|
refresh-doom-emacs:
|
||||||
rm -rf "${HOME}/.config/emacs"
|
rm -rf {{configdir}}/emacs
|
||||||
git clone --depth 1 https://github.com/doomemacs/doomemacs "${HOME}/.config/emacs"
|
git clone --depth 1 https://github.com/doomemacs/doomemacs {{configdir}}/emacs
|
||||||
"${HOME}/.config/emacs/bin/doom" install --force --verbose
|
{{configdir}}/emacs/bin/doom install --force --verbose
|
||||||
|
|
||||||
rustup:
|
deploy-dotfiles:
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
cp -rfv {{dotfiles_repo}}/just/.justfile {{homedir}}
|
||||||
|
cp -rfv {{dotfiles_repo}}/doom/.doom.d {{homedir}}
|
||||||
|
cp -fv {{dotfiles_repo}}/zsh/.zshrc {{homedir}}
|
||||||
|
cp -rfv {{dotfiles_repo}}/zsh/.zshrc.d {{homedir}}
|
||||||
|
cp -fv {{dotfiles_repo}}/zsh/.zshenv {{homedir}}
|
||||||
|
cp -rfv {{dotfiles_repo}}/config/.config/bat {{configdir}}
|
||||||
|
cp -rfv {{dotfiles_repo}}/config/.config/git {{configdir}}
|
||||||
|
cp -fv {{dotfiles_repo}}/config/.config/starship.toml {{configdir}}
|
||||||
|
cp -rfv {{dotfiles_repo}}/config/.config/zellij {{configdir}}
|
||||||
|
cp -rfv {{dotfiles_repo}}/config/.config/systemd {{configdir}}
|
||||||
|
|
||||||
|
save-dotfiles:
|
||||||
|
cp -fv {{homedir}}/.justfile {{dotfiles_repo}}/just/
|
||||||
|
cp -rfv {{homedir}}/.doom.d {{dotfiles_repo}}/doom/
|
||||||
|
cp -fv {{homedir}}/.zshrc {{dotfiles_repo}}/zsh/
|
||||||
|
cp -rfv {{homedir}}/.zshrc.d {{dotfiles_repo}}/zsh/
|
||||||
|
cp -fv {{homedir}}/.zshenv {{dotfiles_repo}}/zsh/
|
||||||
|
cp -rfv {{configdir}}/bat {{dotfiles_repo}}/config/.config/
|
||||||
|
cp -rfv {{configdir}}/git {{dotfiles_repo}}/config/.config/
|
||||||
|
cp -fv {{configdir}}/starship.toml {{dotfiles_repo}}/config/.config/
|
||||||
|
cp -rfv {{configdir}}/zellij {{dotfiles_repo}}/config/.config/
|
||||||
|
cp -rfv {{configdir}}/systemd {{dotfiles_repo}}/config/.config/
|
||||||
|
|
||||||
|
clean-dotfiles:
|
||||||
|
rm -fv {{homedir}}/.justfile
|
||||||
|
rm -rfv {{homedir}}/.doom.d
|
||||||
|
rm -fv {{homedir}}/.zshrc
|
||||||
|
rm -rfv {{homedir}}/.zshrc.d
|
||||||
|
rm -fv {{homedir}}/.zshenv
|
||||||
|
rm -rfv {{configdir}}/bat
|
||||||
|
rm -rfv {{configdir}}/git
|
||||||
|
rm -fv {{configdir}}/starship.toml
|
||||||
|
rm -rfv {{configdir}}/zellij
|
||||||
|
rm -rfv {{configdir}}/systemd
|
||||||
|
24
zsh/.zshenv
24
zsh/.zshenv
@ -1,23 +1 @@
|
|||||||
#
|
eval "$(starship init zsh)"
|
||||||
# Generic .zshenv file for zsh
|
|
||||||
#
|
|
||||||
# .zshenv is sourced on ALL invocations of the shell, unless the -f option is
|
|
||||||
# set. It should NOT normally contain commands to set the command search path,
|
|
||||||
# or other common environment variables unless you really know what you're
|
|
||||||
# doing. E.g. running "PATH=/custom/path gdb program" sources this file (when
|
|
||||||
# gdb runs the program via $SHELL), so you want to be sure not to override a
|
|
||||||
# custom environment in such cases. Note also that .zshenv should not contain
|
|
||||||
# commands that produce output or assume the shell is attached to a tty.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Some people insist on setting their PATH here to affect things like ssh.
|
|
||||||
# Those that do should probably use $SHLVL to ensure that this only happens
|
|
||||||
# the first time the shell is started (to avoid overriding a customized
|
|
||||||
# environment). Also, the various profile/rc/login files all get sourced
|
|
||||||
# *after* this file, so they will override this value. One solution is to
|
|
||||||
# put your path-setting code into a file named .zpath, and source it from
|
|
||||||
# both here (if we're not a login shell) and from the .zprofile file (which
|
|
||||||
# is only sourced if we are a login shell).
|
|
||||||
if [[ $SHLVL == 1 ]]; then
|
|
||||||
source ~/.zpath
|
|
||||||
fi
|
|
||||||
|
103
zsh/.zshrc
103
zsh/.zshrc
@ -5,51 +5,14 @@
|
|||||||
#
|
#
|
||||||
# Zsh Manual - https://zsh-manual.netlify.app
|
# Zsh Manual - https://zsh-manual.netlify.app
|
||||||
# Zsh Guide - https://zsh-guide.netlify.app
|
# Zsh Guide - https://zsh-guide.netlify.app
|
||||||
#
|
|
||||||
# ,----[ man -k zsh ]
|
|
||||||
# |
|
|
||||||
# | zsh (1) - the Z shell
|
|
||||||
# | zshall (1) - the Z shell meta-man page
|
|
||||||
# | zshbuiltins (1) - zsh builtin commands
|
|
||||||
# | zshcalsys (1) - zsh calendar system
|
|
||||||
# | zshcompctl (1) - zsh programmable completion
|
|
||||||
# | zshcompsys (1) - zsh completion system
|
|
||||||
# | zshcompwid (1) - zsh completion widgets
|
|
||||||
# | zshcontrib (1) - user contributions to zsh
|
|
||||||
# | zshexpn (1) - zsh expansion and substitution
|
|
||||||
# | zshmisc (1) - everything and then some
|
|
||||||
# | zshmodules (1) - zsh loadable modules
|
|
||||||
# | zshoptions (1) - zsh options
|
|
||||||
# | zshparam (1) - zsh parameters
|
|
||||||
# | zshroadmap (1) - informal introduction to the zsh manual
|
|
||||||
# | zshtcpsys (1) - zsh tcp system
|
|
||||||
# | zshzftpsys (1) - zftp function front-end
|
|
||||||
# | zshzle (1) - zsh command line editor
|
|
||||||
# `----
|
|
||||||
#
|
|
||||||
# Zsh startup sequence
|
|
||||||
# 1) /etc/zshenv -> Always run for every zsh. (login + interactive + other)
|
|
||||||
# 2) ~/.zshenv -> Usually run for every zsh. (login + interactive + other)
|
|
||||||
# 3) /etc/zprofile -> Run for login shells. (login)
|
|
||||||
# 4) ~/.zprofile -> Run for login shells. (login)
|
|
||||||
# 5) /etc/zshrc -> Run for interactive shells. (login + interactive)
|
|
||||||
# 6) ~/.zshrc -> Run for interactive shells. (login + interactive)
|
|
||||||
# 7) /etc/zlogin -> Run for login shells. (login)
|
|
||||||
# 8) ~/.zlogin -> Run for login shells. (login)
|
|
||||||
#
|
|
||||||
# This file is based on Christian Schneider's zsh configuration
|
|
||||||
# https://www.strcat.de/dotfiles
|
|
||||||
|
|
||||||
# Load Homebrew
|
|
||||||
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
||||||
|
|
||||||
# Plugins
|
# Plugins
|
||||||
if ! test -f ~/.zplug/init.zsh; then
|
if ! test -f "${HOME}/.zplug/init.zsh"; then
|
||||||
export ZPLUG_HOME=~/.zplug
|
export ZPLUG_HOME="${HOME}/.zplug"
|
||||||
git clone https://github.com/zplug/zplug $ZPLUG_HOME
|
git clone https://github.com/zplug/zplug $ZPLUG_HOME
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source ~/.zplug/init.zsh
|
source "${HOME}/.zplug/init.zsh"
|
||||||
|
|
||||||
# Use autosuggestions when typing commands
|
# Use autosuggestions when typing commands
|
||||||
zplug "zsh-users/zsh-autosuggestions"
|
zplug "zsh-users/zsh-autosuggestions"
|
||||||
@ -70,7 +33,7 @@ zplug "plugins/extract", from:oh-my-zsh
|
|||||||
zplug "plugins/systemd", from:oh-my-zsh
|
zplug "plugins/systemd", from:oh-my-zsh
|
||||||
|
|
||||||
# Load file from ~/.zshrc.d
|
# Load file from ~/.zshrc.d
|
||||||
zplug "~/.zshrc.d", from:local, use:'*'
|
zplug "${HOME}/.zshrc.d", from:local, use:'*'
|
||||||
|
|
||||||
if ! zplug check; then
|
if ! zplug check; then
|
||||||
zplug install;
|
zplug install;
|
||||||
@ -82,18 +45,18 @@ zplug load
|
|||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# ENVIRONMENT VARS
|
# ENVIRONMENT VARS
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
export SHELL=/usr/bin/zsh
|
export PATH="${HOME}/.config/emacs/bin:${PATH}"
|
||||||
export DOOMDIR="${HOME}/nextcloud/doom"
|
export PAGER="less -FRX"
|
||||||
export LS_COLORS=$(vivid generate catppuccin-mocha)
|
|
||||||
export PAGER="less -X"
|
|
||||||
export MANWIDTH="88"
|
export MANWIDTH="88"
|
||||||
export MANROFFOPT="-c"
|
export MANROFFOPT="-c"
|
||||||
export MANPAGER="less -X"
|
export MANPAGER="less -FRX"
|
||||||
|
export BAT_PAGER="less -FRX"
|
||||||
|
export BAT_STYLE="plain"
|
||||||
|
|
||||||
if test -x "$(command -v emacs)"; then
|
if test -x "$(command -v emacs)"; then
|
||||||
EDITOR="emacs"
|
EDITOR="emacsclient"
|
||||||
else
|
else
|
||||||
EDITOR="nvim"
|
EDITOR="vim"
|
||||||
fi
|
fi
|
||||||
export EDITOR
|
export EDITOR
|
||||||
|
|
||||||
@ -108,23 +71,6 @@ export LESS_TERMCAP_se=$'\e[0m' # reset reverse video
|
|||||||
export LESS_TERMCAP_ue=$'\e[0m' # reset underline
|
export LESS_TERMCAP_ue=$'\e[0m' # reset underline
|
||||||
export GROFF_NO_SGR=1 # for konsole and gnome-terminal
|
export GROFF_NO_SGR=1 # for konsole and gnome-terminal
|
||||||
|
|
||||||
# Format of process time reports with 'time'
|
|
||||||
# %% A '%'
|
|
||||||
# %U CPU seconds spent in user mode
|
|
||||||
# %S CPU seconds spent in kernel mode
|
|
||||||
# %E Elapsed time in seconds
|
|
||||||
# %P CPU percentage, computed as (%U+%S)/%E
|
|
||||||
# %J The name of this job
|
|
||||||
# Default is:
|
|
||||||
# %E real %U user %S system %P %J
|
|
||||||
TIMEFMT="\
|
|
||||||
|
|
||||||
The name of this job : %J
|
|
||||||
CPU seconds spent in user mode : %U
|
|
||||||
CPU seconds spent in kernel mode : %S
|
|
||||||
Elapsed time in seconds : %E
|
|
||||||
CPU percentage : %P"
|
|
||||||
|
|
||||||
# HISTSIZE is the number of lines of history that is kept within any given
|
# HISTSIZE is the number of lines of history that is kept within any given
|
||||||
# running zsh instance. SAVEHIST is the number of lines of history that is
|
# running zsh instance. SAVEHIST is the number of lines of history that is
|
||||||
# written out to the HISTFILE when that event occurs. If you use the
|
# written out to the HISTFILE when that event occurs. If you use the
|
||||||
@ -135,12 +81,7 @@ HISTSIZE=100000
|
|||||||
SAVEHIST=65536
|
SAVEHIST=65536
|
||||||
|
|
||||||
# Name of the file used to store command history
|
# Name of the file used to store command history
|
||||||
HISTFILE=~/.zsh_history
|
HISTFILE="${HOME}/.zsh_history"
|
||||||
|
|
||||||
# If nonnegative, commands whose combined user and system execution times
|
|
||||||
# (measured in seconds) are greater than this value have timing stats printed
|
|
||||||
# for them.
|
|
||||||
REPORTTIME=10
|
|
||||||
|
|
||||||
# Language
|
# Language
|
||||||
export LANG="en_US.UTF-8"
|
export LANG="en_US.UTF-8"
|
||||||
@ -148,12 +89,11 @@ export LANG="en_US.UTF-8"
|
|||||||
# Manpages
|
# Manpages
|
||||||
export MANPATH="${MANPATH:-/usr/share/man:/usr/local/share/man}"
|
export MANPATH="${MANPATH:-/usr/share/man:/usr/local/share/man}"
|
||||||
|
|
||||||
if [ -d "${HOME}/.fzf/man" ]; then
|
# Add ~/.local/bin to PATH
|
||||||
export MANPATH="${MANPATH}:${HOME}/.fzf/man"
|
export PATH="${HOME}/.local/bin:${PATH}"
|
||||||
fi
|
|
||||||
|
|
||||||
# Bat theme
|
# Add ~/bin to PATH
|
||||||
export BAT_THEME="Catppuccin Mocha"
|
export PATH="${HOME}/bin:${PATH}"
|
||||||
|
|
||||||
# Automatically remove duplicates from these arrays
|
# Automatically remove duplicates from these arrays
|
||||||
typeset -gU path cdpath manpath fpath
|
typeset -gU path cdpath manpath fpath
|
||||||
@ -162,5 +102,12 @@ typeset -gU path cdpath manpath fpath
|
|||||||
autoload -U add-zsh-hook
|
autoload -U add-zsh-hook
|
||||||
add-zsh-hook -Uz chpwd() { print -Pn "\e]2;%m:%2~\a" }
|
add-zsh-hook -Uz chpwd() { print -Pn "\e]2;%m:%2~\a" }
|
||||||
|
|
||||||
# starship.rs
|
# direnv
|
||||||
eval "$(starship init zsh)"
|
eval "$(direnv hook zsh)"
|
||||||
|
|
||||||
|
# Ensure always loading the latest version of the emacs-vterm-zsh.sh file
|
||||||
|
if [[ "$INSIDE_EMACS" = 'vterm' ]] \
|
||||||
|
&& [[ -n ${EMACS_VTERM_PATH} ]] \
|
||||||
|
&& [[ -f ${EMACS_VTERM_PATH}/etc/emacs-vterm-zsh.sh ]]; then
|
||||||
|
source ${EMACS_VTERM_PATH}/etc/emacs-vterm-zsh.sh
|
||||||
|
fi
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
# Get top 10 shell commands
|
|
||||||
alias top10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10'
|
|
||||||
|
|
||||||
# history mechanism
|
|
||||||
alias h='history'
|
|
||||||
|
|
||||||
# Aliases for APT
|
# Aliases for APT
|
||||||
if [ -e "/etc/debian_version" ]; then
|
if [ -e "/etc/debian_version" ]; then
|
||||||
alias acs="sudo apt-cache search"
|
alias acs="sudo apt-cache search"
|
||||||
@ -36,32 +30,21 @@ if [ -e "/etc/redhat-release" ]; then
|
|||||||
alias dnfu='sudo dnf update'
|
alias dnfu='sudo dnf update'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Convert UPPER to lower (or back)
|
|
||||||
alias UP2low='for i in *(.); mv $i ${i:l}'
|
|
||||||
alias low2UP='for i in *(.); mv $i ${i:u}'
|
|
||||||
|
|
||||||
# The ls family
|
# The ls family
|
||||||
if test -x "$(command -v lsd)"; then
|
if test -x "$(command -v lsd)"; then
|
||||||
alias ls='lsd'
|
alias ls='lsd'
|
||||||
|
alias la='lsd -a'
|
||||||
|
alias ll='lsd -l'
|
||||||
|
alias lal='lsd -al'
|
||||||
else
|
else
|
||||||
alias ls='ls --color=auto'
|
alias ls='ls --color=auto'
|
||||||
|
alias la='ls -a'
|
||||||
|
alias ll='ls -l'
|
||||||
|
alias lal='ls -al'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
alias l='ls -lFhg'
|
# grep
|
||||||
alias la='ls -a'
|
|
||||||
alias ll='ls -l'
|
|
||||||
alias lal='ls -al'
|
|
||||||
alias ldot='ls -gld .*'
|
|
||||||
alias lse='ls -lZ'
|
|
||||||
|
|
||||||
# greps
|
|
||||||
alias grep='grep --color'
|
alias grep='grep --color'
|
||||||
alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}'
|
|
||||||
|
|
||||||
# Copy SSH public key to clipboard (requires xclip or xsel)
|
|
||||||
if test -x "$(command -v xclip)"; then
|
|
||||||
alias pubkey='printf "$(cat ~/.ssh/id_ed25519.pub)" | xclip -selection clipboard | echo "SSH public key copied"'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prompt user before overwriting files
|
# Prompt user before overwriting files
|
||||||
alias cp='cp -i'
|
alias cp='cp -i'
|
||||||
@ -76,10 +59,10 @@ alias zfun='functions | bat -l zsh'
|
|||||||
alias -g H='| head'
|
alias -g H='| head'
|
||||||
alias -g T='| tail'
|
alias -g T='| tail'
|
||||||
alias -g G='| grep'
|
alias -g G='| grep'
|
||||||
alias -g L='| less -X'
|
alias -g L='| less -FRX'
|
||||||
alias -g B='| bat'
|
alias -g B='| bat'
|
||||||
alias -g J='| jq'
|
alias -g J='| jq'
|
||||||
alias -g CC='| xclip -selection clipboard'
|
alias -g CC='| wl-copy'
|
||||||
alias -g C='| wc -l'
|
alias -g C='| wc -l'
|
||||||
|
|
||||||
# Get public IP address
|
# Get public IP address
|
||||||
@ -110,10 +93,6 @@ alias lsocku='sudo lsof -nP | grep UDP'
|
|||||||
# List TCP sockets in use
|
# List TCP sockets in use
|
||||||
alias lsockt='sudo lsof -nP | grep TCP'
|
alias lsockt='sudo lsof -nP | grep TCP'
|
||||||
|
|
||||||
# Reboot / Poweroff
|
|
||||||
alias rbt='sudo systemctl reboot'
|
|
||||||
alias shut='sudo systemctl poweroff'
|
|
||||||
|
|
||||||
# firewalld
|
# firewalld
|
||||||
if test -x "$(command -v firewall-cmd)"; then
|
if test -x "$(command -v firewall-cmd)"; then
|
||||||
alias fw='sudo firewall-cmd'
|
alias fw='sudo firewall-cmd'
|
||||||
@ -134,12 +113,3 @@ alias grbi='git rebase -i'
|
|||||||
alias grm='git rm'
|
alias grm='git rm'
|
||||||
alias grv='git remote -v'
|
alias grv='git remote -v'
|
||||||
alias gst='git status'
|
alias gst='git status'
|
||||||
|
|
||||||
# doom emacs
|
|
||||||
alias doomdoc="~/.config/emacs/bin/doom doctor"
|
|
||||||
alias dsync="~/.config/emacs/bin/doom sync"
|
|
||||||
alias dclean="~/.config/emacs/bin/doom clean"
|
|
||||||
alias dcomp="~/.config/emacs/bin/doom compile"
|
|
||||||
alias dpurge="~/.config/emacs/bin/doom purge"
|
|
||||||
alias denv="~/.config/emacs/bin/doom env"
|
|
||||||
alias dupgrade="~/.config/emacs/bin/doom upgrade"
|
|
||||||
|
@ -27,9 +27,9 @@ if test -x "$(command -v gumssh)"; then
|
|||||||
bindkey -s '^[s' 'gumssh^M'
|
bindkey -s '^[s' 'gumssh^M'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## ranger
|
## yazi
|
||||||
if test -x "$(command -v ranger)"; then
|
if test -x "$(command -v yazi)"; then
|
||||||
bindkey -s '^[f' 'ranger^M'
|
bindkey -s '^[f' 'yazi^M'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## history substring search
|
## history substring search
|
||||||
|
@ -58,12 +58,18 @@ function rmknownhosts() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Empty trash
|
# Empty trash
|
||||||
function rubbish() {
|
function trsh() {
|
||||||
if check_cmd trash-empty; then
|
if check_cmd trash-empty; then
|
||||||
trash-empty -f -v
|
trash-empty -f
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Copy SSH public key to clipboard (requires wl-copy)
|
||||||
|
function pubkey() {
|
||||||
|
cat "${HOME}/.ssh/id_ed25519.pub" | tr -d '\n' | wl-copy
|
||||||
|
echo "--> SSH public key copied to clipboard"
|
||||||
|
}
|
||||||
|
|
||||||
# Compatibility with emacs-libvterm
|
# Compatibility with emacs-libvterm
|
||||||
function vterm_printf() {
|
function vterm_printf() {
|
||||||
if [ -n "$TMUX" ] && ([ "${TERM%%-*}" = "tmux" ] || [ "${TERM%%-*}" = "screen" ]); then
|
if [ -n "$TMUX" ] && ([ "${TERM%%-*}" = "tmux" ] || [ "${TERM%%-*}" = "screen" ]); then
|
||||||
@ -77,12 +83,12 @@ function vterm_printf() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove all .jpeg .jpg .png .svg files from downloads
|
# Remove all .jpeg .jpg .png .svg .webp files from downloads
|
||||||
function rmpics() {
|
function rmpics() {
|
||||||
find "${HOME}/downloads" \
|
find "${HOME}/downloads" \
|
||||||
-maxdepth 1 \
|
-maxdepth 1 \
|
||||||
-type f \
|
-type f \
|
||||||
\( -name "*.jpg" -o -name "*.jpg_original" -o -name "*.jpeg" -o -name "*.svg" -o -name "*.png" \) \
|
\( -name "*.jpg" -o -name "*.jpg_original" -o -name "*.jpeg" -o -name "*.svg" -o -name "*.png" -o -name "*.webp" \) \
|
||||||
-delete
|
-delete
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +123,8 @@ function mark() {
|
|||||||
"${mark_to_add} added to shellmarks file"
|
"${mark_to_add} added to shellmarks file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cat "${HOME}/.shellmarks" | sort | tee "${HOME}/.shellmarks" >/dev/null
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,13 +185,13 @@ function dstack() {
|
|||||||
# Print timestamp as %Y-%m-%d %H:%M:%S.
|
# Print timestamp as %Y-%m-%d %H:%M:%S.
|
||||||
function tstamp() {
|
function tstamp() {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
date '+%Y-%m-%d %H:%M:%S'
|
date '+%Y-%m-%d %H:%M:%S' | tr -d '\n'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Print timestamp as %Y-%m-%dT%H:%M:%S%:z
|
# Print timestamp as %Y-%m-%dT%H:%M:%S%:z
|
||||||
function tstampz() {
|
function tstampz() {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
date '+%Y-%m-%dT%H:%M:%S%:z'
|
date '+%Y-%m-%dT%H:%M:%S%:z' | tr -d '\n'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a /overview/ of all available function()'s; the description for
|
# Create a /overview/ of all available function()'s; the description for
|
||||||
@ -231,3 +239,30 @@ function restart() { exec $SHELL $SHELL_ARGS "$@"; }
|
|||||||
|
|
||||||
# cd to ~, clear screen, and restart zsh.
|
# cd to ~, clear screen, and restart zsh.
|
||||||
function rsrc() { cd && clear && restart; }
|
function rsrc() { cd && clear && restart; }
|
||||||
|
|
||||||
|
# Set hostname:pwd for vterm buffer title
|
||||||
|
autoload -U add-zsh-hook
|
||||||
|
add-zsh-hook -Uz chpwd() { print -Pn "\e]2;%m:%2~\a" }
|
||||||
|
|
||||||
|
# For directory tracking and prompt tracking in Emacs Vterm
|
||||||
|
function vterm_prompt_end() {
|
||||||
|
vterm_printf "51;A$(whoami)@$(hostname):$(pwd)"
|
||||||
|
}
|
||||||
|
setopt PROMPT_SUBST
|
||||||
|
PROMPT=$PROMPT'%{$(vterm_prompt_end)%}'
|
||||||
|
|
||||||
|
# To read and execute Emacs commands in Vterm
|
||||||
|
function vterm_cmd() {
|
||||||
|
local vterm_elisp
|
||||||
|
vterm_elisp=""
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
vterm_elisp="$vterm_elisp""$(printf '"%s" ' "$(printf "%s" "$1" | sed -e 's|\\|\\\\|g' -e 's|"|\\"|g')")"
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
vterm_printf "51;E$vterm_elisp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# find-file in Emacs
|
||||||
|
function find_file() {
|
||||||
|
vterm_cmd find-file "$(realpath "${@:-.}")"
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user