Compare commits

...
3 Commits
Author SHA1 Message Date
jasonhilder 3a111d6017 Major cleanup for pop os minimal config. 2026-09-09 05:48:19 +02:00
jasonhilder 1e2dd2f5fb Vim setup 2026-08-18 05:52:38 +02:00
jasonhilder 398722e3a4 Removed evi for vanilla vim. 2026-08-18 05:50:54 +02:00
22 changed files with 609 additions and 692 deletions
+4
View File
@@ -1,6 +1,10 @@
config/fish/conf.d
config/fish/functions
config/fish/fish_variables
config/fish/generated_completions/
config/vim/autoload/
config/vim/pack/
config/vim/.netrwhist
config/nvim/nvim-pack-lock.json
config/awesome/bling
scripts/bin/Obsidian
-120
View File
@@ -1,120 +0,0 @@
#!/usr/bin/env bash
set -e
if [ "$EUID" -eq 0 ]; then
echo "Please run this script as your normal user, not with sudo."
exit 1
fi
echo "==> Updating system..."
sudo xbps-install -Syu
echo "==> Installing KDE and desktop essentials..."
sudo xbps-install -y \
kde-plasma \
kde-baseapps \
NetworkManager \
sddm \
xorg-minimal \
xorg-server-xwayland \
mesa-dri \
qt6-wayland \
kwayland \
elogind \
pipewire \
alsa-pipewire \
libspa-bluetooth \
bluez \
xdg-desktop-portal \
xdg-desktop-portal-kde \
git \
curl \
neovim
echo "==> Disabling conflicting DHCP service..."
if [ -e /var/service/dhcpcd ]; then
sudo sv down dhcpcd || true
sudo rm -f /var/service/dhcpcd
fi
echo "==> Enabling system services..."
enable_service() {
service="$1"
if [ ! -e "/var/service/$service" ]; then
sudo ln -s "/etc/sv/$service" "/var/service/$service"
fi
}
enable_service dbus
enable_service NetworkManager
enable_service sddm
enable_service bluetoothd
echo "==> Adding user to required groups..."
sudo usermod -aG network,audio,video,bluetooth "$USER"
echo "==> Configuring ALSA for PipeWire..."
sudo mkdir -p /etc/alsa/conf.d
sudo ln -sf \
/usr/share/alsa/alsa.conf.d/50-pipewire.conf \
/etc/alsa/conf.d/50-pipewire.conf
sudo ln -sf \
/usr/share/alsa/alsa.conf.d/99-pipewire-default.conf \
/etc/alsa/conf.d/99-pipewire-default.conf
echo "==> Configuring PipeWire PulseAudio compatibility..."
sudo mkdir -p /etc/pipewire/pipewire.conf.d
sudo ln -sf \
/usr/share/examples/pipewire/20-pipewire-pulse.conf \
/etc/pipewire/pipewire.conf.d/20-pipewire-pulse.conf
echo "==> Enabling PipeWire desktop autostart..."
mkdir -p "$HOME/.config/autostart"
ln -sf \
/usr/share/applications/pipewire.desktop \
"$HOME/.config/autostart/pipewire.desktop"
echo "==> Reconfiguring packages..."
sudo xbps-reconfigure -fa
echo
echo "========================================"
echo " Void KDE bootstrap complete"
echo "========================================"
echo
echo "Installed:"
echo " KDE Plasma"
echo " SDDM"
echo " Plasma Wayland"
echo " NetworkManager"
echo " PipeWire + WirePlumber"
echo " Bluetooth"
echo " XWayland"
echo " Neovim"
echo
echo "Enabled services:"
sudo sv status dbus NetworkManager bluetoothd sddm
echo
echo "NOTE: elogind is installed but intentionally"
echo "not enabled as a runit service."
echo
echo "Reboot, then select 'Plasma (Wayland)' in SDDM."
echo
echo " sudo reboot"
echo
-184
View File
@@ -1,184 +0,0 @@
# ==============================================================================
# ENVIRONMENT VARIABLES
# ==============================================================================
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_STATE_HOME="$HOME/.local/state"
export GOOGLE_API_KEY="no"
export GOOGLE_DEFAULT_CLIENT_ID="no"
export GOOGLE_DEFAULT_CLIENT_SECRET="no"
# Core settings
export EDITOR="evi"
export VISUAL="evi"
export MANPAGER="evi +Man!"
export BROWSER="firefox"
export COLORTERM="truecolor"
# Development
export DEBUG=1
export GOPATH="$HOME/.go"
export GOCACHE="$HOME/.go/cache"
export GOROOT=/usr/local/go
export PATH="/usr/local/go/bin:$GOPATH/bin:$PATH"
# Direnv
eval "$(direnv hook bash)"
# ==============================================================================
# FZF configuration
# ==============================================================================
export FZF_DEFAULT_OPTS="
--height 40%
--layout=reverse
--border
--ansi
--preview-window=down:30%
--bind 'ctrl-d:preview-page-down,ctrl-u:preview-page-up'
--color=fg:#ffffff,header:#f38ba8,info:#cba6ac,pointer:#f5e0dc
--color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6ac,hl+:#f38ba8"
export FZF_DEFAULT_COMMAND='fdfind --exclude={.git,.cache,.xmake,.zig-cache,build,tmp,node_modules,elpa} --type f -H'
# ==============================================================================
# PATH CONFIGURATION
# ==============================================================================
# bash has no fish_add_path (which dedupes + checks existence), so roll a
# small helper that does the same thing.
add_to_path() {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="$1:$PATH"
fi
}
add_to_path /var/lib/flatpak/exports/bin
add_to_path /usr/local/bin
add_to_path /usr/local/go/bin
add_to_path "$GOPATH/bin"
add_to_path "$HOME/bin"
add_to_path "$HOME/.local/bin"
add_to_path "$HOME/.local/share/flatpak/exports/bin"
add_to_path "$HOME/.npm-global/bin"
add_to_path "$HOME/.odin/"
export PATH
# ==============================================================================
# AUTO COMPLETE
# ==============================================================================
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
fi
# ==============================================================================
# ALIASES
# ==============================================================================
# Void linux helpers
# System update (sync + update all packages)
alias void-update='sudo xbps-install -Su'
# Remove orphaned dependencies + clean cache
alias void-clean='sudo xbps-remove -Oo'
# List explicitly installed (manual) packages
alias void-installed='xbps-query -m'
# List all installed packages
alias void-installedall='xbps-query -l'
# Show which package owns a file
alias void-owns='xbps-query -o'
# Remove a package and its unused deps in one go (usage: purge <pkgname>)
alias void-purge='sudo xbps-remove -R'
# Install a package (usage: install <pkgname>)
alias void-install='sudo xbps-install'
# Remove a package (usage: remove <pkgname>)
alias void-remove='sudo xbps-remove'
# Search for a package
alias void-search='xbps-query -Rs'
# Show info about a package
alias void-query='xbps-query -R'
# List commands
alias ls='ls -lh --color=auto --group-directories-first'
alias ll='ls -lAh --color=auto --group-directories-first'
alias la='ls -la --color=auto --group-directories-first'
alias l='ls -CF --color=auto'
alias tree='tree --dirsfirst -C'
# Safety aliases
alias rm='rm -I --preserve-root'
alias mv='mv -i'
alias cp='cp -i'
alias ln='ln -i'
# System information
alias df='df -h'
alias du='du -h'
alias free='free -h'
alias bat='bat --theme="ansi" --paging=never'
# Application shortcuts
alias :q='exit'
alias files='thunar .'
alias fetch='pfetch'
# Custom shortcuts
alias v='evi'
alias vi='evi'
alias reload='source ~/.bashrc'
alias dots='cd ~/.dotfiles && evi'
alias doti='bash ~/.dotfiles/install.sh -i'
alias dotl='bash ~/.dotfiles/install.sh -l'
alias myip='curl ipinfo.io/ip; echo ""'
alias query='xbps-query -Rs'
alias commits='git log origin/main..HEAD --oneline'
## Basic project picker using fzf
pp() {
local project
project=$(
find ~/Projects -mindepth 1 -maxdepth 1 -type d |
awk -F/ '{print $NF "\t" $0}' |
fzf --with-nth=1
)
[ -z "$project" ] && return
project=$(echo "$project" | cut -f2)
cd "$project" && clear
}
# ==============================================================================
# PROMPT
# ==============================================================================
# bash has no built-in __fish_git_prompt_* equivalent, so we write a small
# git-branch function and build PS1 by hand.
parse_git_branch() {
git branch 2>/dev/null | sed -n '/\* /s///p'
}
git_prompt_info() {
local branch
branch=$(parse_git_branch)
[ -z "$branch" ] && return
local esc=$'\033'
local status marker
status=$(git status --porcelain 2>/dev/null)
if [ -n "$status" ]; then
if echo "$status" | grep -q '^[MADRC]'; then
marker=" ${esc}[33m●${esc}[0m " # staged - yellow ●
elif echo "$status" | grep -q '^??'; then
marker="" # untracked - no char
else
marker=" ${esc}[31m+${esc}[0m " # dirty - red +
fi
else
marker=" ${esc}[1;32m${esc}[0m " # clean - green
fi
echo " ${esc}[1;35m(${branch})${esc}[0m${marker}"
}
PS1='\[\033[32m\]\u\[\033[0m\]@\[\033[34m\]\h\[\033[0m\]:\[\033[36m\]\w\[\033[0m\]$(git_prompt_info)\$ '
-12
View File
@@ -1,12 +0,0 @@
let g:netrw_dirhistmax =10
let g:netrw_dirhistcnt =1
let g:netrw_dirhist_1='/home/jason/Projects/dotfiles'
let g:netrw_dirhist_0='/home/jason/Projects/GraveKeeper/src'
let g:netrw_dirhist_9='/home/jason/Projects/GraveKeeper'
let g:netrw_dirhist_8='/home/jason/.config/kitty/kitty.conf'
let g:netrw_dirhist_7='/home/jason/.evi'
let g:netrw_dirhist_6='/home/jason/Projects/GraveKeeper'
let g:netrw_dirhist_5='/home/jason/.evi'
let g:netrw_dirhist_4='/home/jason/.evi/pack'
let g:netrw_dirhist_3='/home/jason/.evi'
let g:netrw_dirhist_2='/home/jason/.evi/autoload'
-202
View File
@@ -1,202 +0,0 @@
" ============================================================================
" EVi Configuration
" ============================================================================
" General
" ----------------------------------------------------------------------------
set nocompatible
set encoding=utf-8
set hidden
set history=1000
set clipboard=unnamedplus
set splitright
set splitbelow
" ----------------------------------------------------------------------------
" UI
" ----------------------------------------------------------------------------
set number
set relativenumber
set wildmenu
set showcmd
colorscheme jellybeans
" ----------------------------------------------------------------------------
" Transparent UI
" ----------------------------------------------------------------------------
augroup VimTransparent
autocmd!
autocmd ColorScheme * highlight Normal ctermbg=NONE guibg=NONE
\ | highlight NonText ctermbg=NONE guibg=NONE
\ | highlight LineNr ctermbg=NONE guibg=NONE
\ | highlight SignColumn ctermbg=NONE guibg=NONE
\ | highlight EndOfBuffer ctermbg=NONE guibg=NONE
augroup END
" ----------------------------------------------------------------------------
" Status Line
" ----------------------------------------------------------------------------
set laststatus=2
highlight EviStatus cterm=NONE ctermfg=White ctermbg=236
set statusline=%#EviStatus#%f\ %m%r\ %=%{&filetype}\ \ %l:%c\ %p%%
" ----------------------------------------------------------------------------
" Editing
" ----------------------------------------------------------------------------
set tabstop=4
set shiftwidth=4
set expandtab
set smartindent
set nowrap
set incsearch
set hlsearch
set ignorecase
set smartcase
set completeopt=menu,menuone,noselect
" ----------------------------------------------------------------------------
" File Types
" ----------------------------------------------------------------------------
syntax on
filetype plugin indent on
" ----------------------------------------------------------------------------
" fzf
" ----------------------------------------------------------------------------
if executable('rg')
let $FZF_DEFAULT_COMMAND =
\ 'rg --files --hidden --follow --glob "!.git/*"'
endif
nnoremap <C-p> :Files<CR>
nnoremap <C-o> :Buffers<CR>
nnoremap <C-s> :Rg<CR>
nnoremap <C-b> :Build<CR>
" ----------------------------------------------------------------------------
" Search
" ----------------------------------------------------------------------------
nnoremap <Esc><Esc> :nohlsearch<CR>
nnoremap n nzzzv
nnoremap N Nzzzv
" ----------------------------------------------------------------------------
" Window Navigation
" ----------------------------------------------------------------------------
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-x> <C-w>q
" ----------------------------------------------------------------------------
" LSP - OLS
" ----------------------------------------------------------------------------
packadd lsp
call LspOptionsSet(#{
\ autoComplete: v:false,
\ autoHighlight: v:false,
\ autoHighlightDiags: v:true,
\ autoPopulateDiags: v:true,
\ semanticHighlight: v:false,
\ showSignature: v:false,
\ completionInPreview: v:false,
\ condensedCompletionMenu: v:true,
\ })
if executable('ols')
call LspAddServer([#{
\ name: 'ols',
\ filetype: ['odin'],
\ path: 'ols',
\ args: ['--stdio'],
\ features: #{
\ diagnostic: v:false,
\ completion: v:true,
\ hover: v:true,
\ signatureHelp: v:false,
\ documentHighlight: v:true,
\ semanticHighlight: v:true,
\ },
\ }])
endif
command! Action LspCodeAction
command! Rename LspRename
autocmd FileType odin setlocal omnifunc=LspOmniFunc
inoremap <C-@> <C-X><C-O>
nnoremap K :LspHover<CR>
" ----------------------------------------------------------------------------
" Go to Definition
" ----------------------------------------------------------------------------
function! GotoDefinitionSplit() abort
vsplit
LspGotoDefinition
endfunction
nnoremap gd :call GotoDefinitionSplit()<CR>
" ----------------------------------------------------------------------------
" Diagnostics
" ----------------------------------------------------------------------------
function! ToggleDiagnostics() abort
for l:win in getwininfo()
if get(l:win, 'quickfix', 0)
execute l:win.winnr .. 'close'
return
endif
endfor
LspDiag show
endfunction
command! Diagnostics call ToggleDiagnostics()
nnoremap <C-i> :Diagnostics<CR>
" ----------------------------------------------------------------------------
" Netrw / File Tree
" ----------------------------------------------------------------------------
let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 0
let g:netrw_altv = 1
let g:netrw_winsize = 33
let g:netrw_keepdir = 0
nnoremap <C-e> :Lexplore<CR>
" ----------------------------------------------------------------------------
" Build System
" ----------------------------------------------------------------------------
function! Build(...) abort
" Already in the build terminal → close it.
if get(b:, 'build_terminal', 0) && &buftype ==# 'terminal'
close
echo ''
return
endif
if !filereadable('build.sh')
echohl WarningMsg
echo 'No build.sh found in current directory.'
echohl None
return
endif
wall
let l:command = './build.sh'
if a:0 > 0
let l:command .= ' ' .. join(a:000, ' ')
endif
botright vsplit
execute 'vertical resize ' .. float2nr(&columns * 0.37)
execute 'terminal ++curwin ' .. l:command
let b:build_terminal = 1
tnoremap <buffer> <CR> <Nop>
endfunction
command! -nargs=* Build call Build(<f-args>)
Submodule config/evi/pack/downloads/opt/lsp deleted from 6ab67121fa
Submodule config/evi/pack/plugins/start/fzf deleted from ca4c1b80e3
Submodule config/evi/pack/plugins/start/fzf.vim deleted from d2a59a992a
Submodule config/evi/pack/plugins/start/jellybeans deleted from ef83bf4dc8
Submodule config/evi/pack/plugins/start/vim-polyglot deleted from f061eddb7c
+134
View File
@@ -0,0 +1,134 @@
# ==============================================================================
# ENVIRONMENT VARIABLES
# ==============================================================================
set -gx XDG_CONFIG_HOME "$HOME/.config"
set -gx XDG_DATA_HOME "$HOME/.local/share"
set -gx XDG_CACHE_HOME "$HOME/.cache"
set -gx XDG_STATE_HOME "$HOME/.local/state"
set -gx GOOGLE_API_KEY "no"
set -gx GOOGLE_DEFAULT_CLIENT_ID "no"
set -gx GOOGLE_DEFAULT_CLIENT_SECRET "no"
# Core settings
set -gx EDITOR "vim"
set -gx VISUAL "vim"
set -gx MANPAGER "vim +Man!"
set -gx BROWSER "firefox"
set -gx COLORTERM "truecolor"
# Development
set -gx DEBUG 1
set -gx GOPATH "$HOME/.go"
set -gx GOCACHE "$HOME/.go/cache"
set -gx GOROOT /usr/local/go
# Direnv
direnv hook fish | source
# ==============================================================================
# FZF configuration
# ==============================================================================
set -gx FZF_DEFAULT_OPTS "
--height 40%
--layout=reverse
--border
--ansi
--preview-window=down:30%
--bind 'ctrl-d:preview-page-down,ctrl-u:preview-page-up'
--color=fg:#ffffff,header:#f38ba8,info:#cba6ac,pointer:#f5e0dc
--color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6ac,hl+:#f38ba8"
set -gx FZF_DEFAULT_COMMAND "fdfind --exclude={.git,.cache,.xmake,.zig-cache,build,tmp,node_modules,elpa} --type f -H"
# ==============================================================================
# PATH CONFIGURATION
# ==============================================================================
# fish_add_path dedupes + checks existence natively, no helper needed
fish_add_path /var/lib/flatpak/exports/bin
fish_add_path /usr/local/bin
fish_add_path /usr/local/go/bin
fish_add_path $GOPATH/bin
fish_add_path $HOME/bin
fish_add_path $HOME/.local/bin
fish_add_path $HOME/.local/share/flatpak/exports/bin
fish_add_path $HOME/.npm-global/bin
fish_add_path $HOME/.odin/
# ==============================================================================
# ALIASES
# ==============================================================================
# List commands
alias ls 'ls -lh --color=auto --group-directories-first'
alias ll 'ls -lAh --color=auto --group-directories-first'
alias la 'ls -la --color=auto --group-directories-first'
alias l 'ls -CF --color=auto'
alias tree 'tree --dirsfirst -C'
# Safety aliases
alias rm 'rm -I --preserve-root'
alias mv 'mv -i'
alias cp 'cp -i'
alias ln 'ln -i'
# System information
alias df 'df -h'
alias du 'du -h'
alias free 'free -h'
alias bat 'bat --theme="ansi" --paging=never'
# Application shortcuts
alias :q 'exit'
alias files 'thunar .'
alias fetch 'pfetch'
# Custom shortcuts
alias reload 'source ~/.config/fish/config.fish'
alias dots 'cd ~/.dotfiles && vi'
alias doti 'bash ~/.dotfiles/install.sh -i'
alias dotl 'bash ~/.dotfiles/install.sh -l'
alias myip 'curl ipinfo.io/ip; echo ""'
alias query 'xbps-query -Rs'
alias commits 'git log origin/main..HEAD --oneline'
## Basic project picker using fzf
function pp
set -l project (find ~/Projects -mindepth 1 -maxdepth 1 -type d | awk -F/ '{print $NF "\t" $0}' | fzf --with-nth=1)
test -z "$project"; and return
set project (echo $project | cut -f2)
cd $project; and clear
end
# ==============================================================================
# GIT PROMPT CONFIG
# (used by fish_git_prompt, called from fish_prompt.fish below)
# ==============================================================================
set -g __fish_git_prompt_show_informative_status
set -g __fish_git_prompt_char_stagedstate '●'
set -g __fish_git_prompt_char_dirtystate '+'
set -g __fish_git_prompt_char_untrackedstate ''
set -g __fish_git_prompt_color_branch magenta
set -g __fish_git_prompt_color_stagedstate yellow
set -g __fish_git_prompt_color_dirtystate red
# ==============================================================================
# PROMPT
# ==============================================================================
function fish_prompt
set_color green
echo -n (whoami)
set_color normal
echo -n '@'
set_color blue
echo -n (prompt_hostname)
set_color normal
echo -n ':'
set_color cyan
echo -n (prompt_pwd)
set_color normal
fish_git_prompt
echo -n '$ '
end
@@ -3,12 +3,8 @@
)
;; HHKB Professional Classic (Linux)
;;
;; Small key left of Space = Muhenkan
;; Large key left of Space = Left Alt
;;
;; AwesomeWM:
;; modkey = "Mod4"
(defsrc
esc 1 2 3 4 5 6 7 8 9 0 - = \ grv
-56
View File
@@ -1,56 +0,0 @@
# ============================================================================
# Kitty Configuration
# ============================================================================
enable_audio_bell no
term xterm-256color
# ----------------------------------------------------------------------------
# Font
# ----------------------------------------------------------------------------
font_family JetBrainsMono Nerd Font
font_size 12.0
# ----------------------------------------------------------------------------
# Window
# ----------------------------------------------------------------------------
window_padding_width 10
window_padding_height 10
# ----------------------------------------------------------------------------
# Cursor
# ----------------------------------------------------------------------------
cursor_shape beam
cursor_blink_interval 0.5
# ----------------------------------------------------------------------------
# Layout
# ----------------------------------------------------------------------------
enabled_layouts splits
# ----------------------------------------------------------------------------
# Splits
# ----------------------------------------------------------------------------
# Vertical split
map ctrl+v launch --location=vsplit --cwd=current
# Close current kitty split
map ctrl+q close_window
# ----------------------------------------------------------------------------
# Colors
# ----------------------------------------------------------------------------
foreground #e8e8e8
background #121212
cursor #D4D4D4
cursor_text_color #1F1F1F
color0 #1F1F1F
color1 #F44747
color2 #6A9955
color3 #DCDCAA
color4 #569CD6
color5 #C586C0
color6 #56B6C2
color7 #D4D4D4
color8 #808080
+86
View File
@@ -0,0 +1,86 @@
" ============================================================================
" Vi Configuration
" ============================================================================
" General
" ----------------------------------------------------------------------------
set nocompatible
set encoding=utf-8
set hidden
set history=1000
set clipboard=unnamedplus
set splitright
set splitbelow
" ----------------------------------------------------------------------------
" UI
" ----------------------------------------------------------------------------
set number
set relativenumber
set wildmenu
set showcmd
" ----------------------------------------------------------------------------
" Transparent UI
" ----------------------------------------------------------------------------
augroup VimTransparent
autocmd!
autocmd ColorScheme * highlight Normal ctermbg=NONE guibg=NONE
\ | highlight NonText ctermbg=NONE guibg=NONE
\ | highlight LineNr ctermbg=NONE guibg=NONE
\ | highlight SignColumn ctermbg=NONE guibg=NONE
\ | highlight EndOfBuffer ctermbg=NONE guibg=NONE
augroup END
" ----------------------------------------------------------------------------
" Status Line
" ----------------------------------------------------------------------------
set laststatus=2
highlight EviStatus cterm=NONE ctermfg=White ctermbg=236
set statusline=%#EviStatus#%f\ %m%r\ %=%{&filetype}\ \ %l:%c\ %p%%
" ----------------------------------------------------------------------------
" Editing
" ----------------------------------------------------------------------------
set tabstop=4
set shiftwidth=4
set expandtab
set smartindent
set nowrap
set incsearch
set hlsearch
set ignorecase
set smartcase
set completeopt=menu,menuone,noselect
" ----------------------------------------------------------------------------
" File Types
" ----------------------------------------------------------------------------
syntax on
filetype plugin indent on
" ----------------------------------------------------------------------------
" Search
" ----------------------------------------------------------------------------
nnoremap <Esc><Esc> :nohlsearch<CR>
nnoremap n nzzzv
nnoremap N Nzzzv
" ----------------------------------------------------------------------------
" Window Navigation
" ----------------------------------------------------------------------------
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-x> <C-w>q
" ----------------------------------------------------------------------------
" Netrw / File Tree
" ----------------------------------------------------------------------------
let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 0
let g:netrw_altv = 1
let g:netrw_winsize = 33
let g:netrw_keepdir = 0
nnoremap <C-e> :Lexplore<CR>
+8
View File
@@ -0,0 +1,8 @@
{
"folders":
[
{
"path": "."
}
]
}
+345
View File
@@ -0,0 +1,345 @@
{
"auto_complete":
{
"selected_items":
[
]
},
"buffers":
[
{
"file": "config/kitty/kitty.conf",
"file_size": 1776,
"file_write_time": 134326208246694386,
"settings":
{
"buffer_size": 1776,
"line_ending": "Unix"
}
},
{
"file": "install.sh",
"file_size": 4218,
"file_write_time": 134327099681520306,
"settings":
{
"buffer_size": 4172,
"encoding": "UTF-8",
"line_ending": "Unix"
}
}
],
"build_system": "",
"build_system_choices":
[
],
"build_varint": "",
"command_palette":
{
"height": 0.0,
"last_filter": "",
"selected_items":
[
[
"ter",
"Open Terminal Here…"
],
[
"termi",
"Open Terminal Here…"
],
[
"ins",
"Package Control: Install Package"
],
[
"theme",
"UI: Customize Theme"
],
[
"inst",
"Package Control: Install Package"
],
[
"install ",
"Package Control: Install Package"
],
[
"settings",
"Preferences: Settings"
],
[
"list p",
"Package Control: List Packages"
],
[
"insta",
"Package Control: Install Package"
],
[
"install pa",
"Package Control: Install Package"
],
[
"install",
"Package Control: Install Package"
],
[
"package",
"Enable Package Control"
]
],
"width": 0.0
},
"console":
{
"height": 124.0,
"history":
[
]
},
"distraction_free":
{
"menu_visible": true,
"show_minimap": false,
"show_open_files": false,
"show_tabs": false,
"side_bar_visible": false,
"status_bar_visible": false
},
"expanded_folders":
[
"/home/jason/Projects/dotfiles"
],
"file_history":
[
"/home/jason/Projects/dotfiles/config/bash/bashrc",
"/home/jason/Projects/dotfiles/install.sh",
"/home/jason/Projects/dotfiles/README.md",
"/home/jason/Projects/dotfiles/scripts/installs/install_odin",
"/home/jason/Projects/dotfiles/scripts/installs/install_raylib_deps",
"/home/jason/Projects/dotfiles/scripts/installs/install_php",
"/home/jason/Projects/Godot/test-struct/src/entities/player/player.gd",
"/home/jason/Projects/raylib_reference/src/map.odin"
],
"find":
{
"height": 41.0
},
"find_in_files":
{
"height": 143.0,
"where_history":
[
]
},
"find_state":
{
"case_sensitive": false,
"find_history":
[
],
"highlight": true,
"in_selection": false,
"preserve_case": false,
"regex": false,
"replace_history":
[
],
"reverse": false,
"scrollbar_highlights": true,
"show_context": true,
"use_buffer2": true,
"use_gitignore": true,
"whole_word": false,
"wrap": true
},
"groups":
[
{
"sheets":
[
{
"buffer": 0,
"file": "config/kitty/kitty.conf",
"semi_transient": false,
"settings":
{
"buffer_size": 1776,
"regions":
{
},
"selection":
[
[
101,
101
]
],
"settings":
{
"lsp_uri": "file:///home/jason/Projects/dotfiles/config/kitty/kitty.conf",
"syntax": "Packages/Text/Plain text.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 1,
"stack_multiselect": false,
"type": "text"
},
{
"buffer": 1,
"file": "install.sh",
"selected": true,
"semi_transient": false,
"settings":
{
"buffer_size": 4172,
"regions":
{
},
"selection":
[
[
12,
12
]
],
"settings":
{
"lsp_uri": "file:///home/jason/Projects/dotfiles/install.sh",
"syntax": "Packages/ShellScript/Bash.sublime-syntax",
"tab_size": 4,
"translate_tabs_to_spaces": false
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 0,
"stack_multiselect": false,
"type": "text"
}
]
}
],
"incremental_find":
{
"height": 41.0
},
"input":
{
"height": 54.0
},
"layout":
{
"cells":
[
[
0,
0,
1,
1
]
],
"cols":
[
0.0,
1.0
],
"rows":
[
0.0,
1.0
]
},
"menu_visible": false,
"output.LSP Log Panel":
{
"height": 0.0,
"history":
[
]
},
"output.diagnostics":
{
"height": 0.0,
"history":
[
]
},
"output.find_results":
{
"height": 0.0,
"history":
[
]
},
"pinned_build_system": "",
"project": "dotfiles.sublime-project",
"replace":
{
"height": 78.0
},
"save_all_on_build": true,
"select_file":
{
"height": 0.0,
"last_filter": "",
"selected_items":
[
[
"ins",
"install.sh"
],
[
"odin",
"scripts/installs/install_odin"
],
[
"rayl",
"scripts/installs/install_raylib_deps"
],
[
"install_odi",
"scripts/installs/install_odin"
]
],
"width": 0.0
},
"select_project":
{
"height": 500.0,
"last_filter": "",
"selected_items":
[
],
"width": 380.0
},
"select_symbol":
{
"height": 0.0,
"last_filter": "",
"selected_items":
[
],
"width": 0.0
},
"selected_group": 0,
"settings":
{
"_vintageous_reset_during_init": true,
"lsp_show_inlay_hints": false
},
"show_minimap": false,
"show_open_files": false,
"show_tabs": false,
"side_bar_visible": true,
"side_bar_width": 271.0,
"status_bar_visible": true,
"template_settings":
{
}
}
+14 -48
View File
@@ -83,10 +83,9 @@ if [ "$DO_LINKS" = true ]; then
CREATED=0
SKIPPED=0
link_file "$DOTFILES_DIR/config/bash/bashrc" "$HOME/.bashrc"
link_file "$DOTFILES_DIR/config/fish/config.fish" "$HOME/.config/fish/config.fish"
link_file "$DOTFILES_DIR/config/vim" "$HOME/.vim"
link_file "$DOTFILES_DIR/config/kanata" "$HOME/.config/kanata"
link_file "$DOTFILES_DIR/config/alacritty" "$HOME/.config/alacritty"
link_file "$DOTFILES_DIR/config/nvim" "$HOME/.config/nvim"
link_file "$DOTFILES_DIR/scripts/bin" "$HOME/.local/bin"
echo ""
@@ -111,53 +110,20 @@ if [ "$DO_INSTALL" = true ]; then
fi
if [ "$DO_INSTALL" = true ]; then
# -----------------------------------------------------------------------------
## ADD NONFREE REPOS
# -----------------------------------------------------------------------------
echo "📦 Checking nonfree repositories..."
REPO_PACKAGES=(void-repo-nonfree)
# Only add multilib-nonfree on x86_64
if [ "$(uname -m)" = "x86_64" ]; then
REPO_PACKAGES+=(void-repo-multilib-nonfree)
fi
MISSING_REPOS=()
for repo in "${REPO_PACKAGES[@]}"; do
if ! xbps-query -p pkgver "$repo" >/dev/null 2>&1; then
MISSING_REPOS+=("$repo")
fi
done
if [ ${#MISSING_REPOS[@]} -eq 0 ]; then
echo "✅ Nonfree repositories already enabled."
else
echo "📦 Enabling repositories: ${MISSING_REPOS[*]}"
sudo xbps-install -Sy "${MISSING_REPOS[@]}"
fi
echo ""
# -----------------------------------------------------------------------------
## INSTALL REQUIRED PACKAGES
# -----------------------------------------------------------------------------
REQUIRED_PACKAGES=(
# system
pfetch fuse
fuse3
# network & download
wget curl ca-certificates gnupg rsync
# core utilities
git fd jq fzf ripgrep tree direnv make bat
ark unzip p7zip tar gzip bzip2 xz kanata
gitu
fish git vim fd-find jq fzf ripgrep tree direnv make bat
ark unzip p7zip-full tar gzip bzip2 xz-utils
# build & dev tools
alacritty base-devel valgrind tree-sitter-cli go nodejs
build-essential valgrind nodejs
# fonts
noto-fonts-ttf noto-fonts-emoji
# kde
xdg-desktop-portal xdg-desktop-portal-kde
fonts-noto-core fonts-noto-color-emoji
# desktop portal
xdg-desktop-portal xdg-desktop-portal-gtk
)
MISSING_PACKAGES=()
@@ -165,9 +131,9 @@ if [ "$DO_INSTALL" = true ]; then
echo "🔍 Checking for missing packages..."
echo ""
# Check which packages are missing using xbps-query
# Check which packages are missing using dpkg
for pkg in "${REQUIRED_PACKAGES[@]}"; do
if ! xbps-query -p pkgver "$pkg" >/dev/null 2>&1; then
if ! dpkg -s "$pkg" >/dev/null 2>&1; then
MISSING_PACKAGES+=("$pkg")
fi
done
@@ -175,11 +141,11 @@ if [ "$DO_INSTALL" = true ]; then
if [ ${#MISSING_PACKAGES[@]} -eq 0 ]; then
echo "✅ All required packages are already installed."
else
echo "📦 Syncing repository indexes..."
sudo xbps-install -S
echo "📦 Syncing package index..."
sudo apt update
echo "📦 Installing missing packages: ${MISSING_PACKAGES[*]}"
sudo xbps-install "${MISSING_PACKAGES[@]}"
sudo apt install -y "${MISSING_PACKAGES[@]}"
fi
echo ""
BIN
View File
Binary file not shown.
+14 -7
View File
@@ -1,23 +1,30 @@
#!/bin/bash
# ---------------------------------------------------------------------------------
# Odin compiler install recipe
# Target: Void Linux
# Target: Pop!_OS / Ubuntu / Debian
# Builds from source - recommended method on Linux
# ---------------------------------------------------------------------------------
set -e
ODIN_DIR="$HOME/.odin"
echo "Installing Odin build dependencies..."
sudo xbps-install -Sy llvm18 llvm18-devel clang18 libstdc++-devel git-lfs
git lfs install
sudo apt update
sudo apt install -y llvm-18-dev clang-18 git-lfs build-essential
git lfs install --force
echo "Cloning Odin repository..."
git clone https://github.com/odin-lang/Odin "$ODIN_DIR"
cd "$ODIN_DIR"
if [ -d "$ODIN_DIR" ]; then
echo "Directory $ODIN_DIR already exists. Pulling latest..."
cd "$ODIN_DIR" && git pull
else
git clone https://github.com/odin-lang/Odin "$ODIN_DIR"
cd "$ODIN_DIR"
fi
echo "Building Odin compiler..."
LLVM_CONFIG=$(command -v llvm-config) make release-native
LLVM_CONFIG=llvm-config-18 make release-native
echo ""
echo "✓ Odin install complete."
echo " Then verify with: odin version"
echo " Add to your path if needed: export PATH=\"\$HOME/.odin:\$PATH\""
echo " Then verify with: odin version"
-16
View File
@@ -1,16 +0,0 @@
#!/bin/bash
# ---------------------------------------------------------------------------------
# PHP install recipe
# Fetches the void php version and composer package
# ---------------------------------------------------------------------------------
set -e
# install the Void linux php version
sudo xbps-install php php-mysql php-sqlite php-ffi php-fpm php-intl php-xsl php-imagick php-gd
# install/download composer
sudo xbps-install composer
echo ""
echo "✅ PHP + Composer setup complete."
+4 -3
View File
@@ -1,14 +1,15 @@
#!/bin/bash
# ---------------------------------------------------------------------------------
# Raylib-go dependency install recipe
# Target: Void Linux
# Target: Pop!_OS / Ubuntu / Debian
# Installs system libs needed for raylib to run
# ---------------------------------------------------------------------------------
set -e
echo "Installing raylib-go system dependencies..."
sudo xbps-install make alsa-lib-devel libglvnd-devel libX11-devel libXrandr-devel libXi-devel libXcursor-devel libXinerama-devel mesa MesaLib-devel
sudo apt update
sudo apt install -y build-essential libasound2-dev libgl1-mesa-dev libx11-dev libxrandr-dev libxi-dev libxcursor-dev libxinerama-dev libxinerama-dev libxcursor-dev libxinerama-dev
echo ""
echo "✓ Raylib-go dependencies installed."
echo ""
echo ""
-35
View File
@@ -1,35 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
echo "==> Installing dependencies..."
sudo xbps-install -S sassc gtk-engine-murrine gtk+3-devel
WORKDIR="$(mktemp -d)"
cd "$WORKDIR"
echo "==> Cloning Qogir theme..."
git clone --depth=1 https://github.com/vinceliuice/Qogir-theme.git
echo "==> Installing Qogir theme (dark, void icon, default square corners)..."
cd "$WORKDIR/Qogir-theme"
sudo ./install.sh -d /usr/share/themes -c dark -t default -i void
echo "==> Installing libadwaita (GTK4) link..."
sudo ./install.sh -d /usr/share/themes -c dark -t default -i void -l
cd "../"
echo "==> Cloning Qogir Icon theme..."
git clone --depth=1 git@github.com:vinceliuice/Qogir-icon-theme.git
cd "$WORKDIR/Qogir-icon-theme"
echo "==> Installing Qogir icons..."
sudo ./install.sh -d /home/jason/.icons
echo "==> Cleaning up..."
cd "$HOME"
sudo rm -rf "$WORKDIR"
echo ""
echo "Done. Now set in XFCE Settings:"
echo " Appearance -> Style: Qogir-Dark"
echo " Window Manager -> Theme: Qogir-Dark"