Compare commits

...

12 Commits

Author SHA1 Message Date
39745885c2 Enable VFR at Hyprland 2025-08-20 16:15:25 -05:00
af79a7c09c Use less stepped-on env file location for proj 2025-08-19 17:45:48 -05:00
ade6aba195 Fix socket 2025-07-09 12:43:20 -05:00
b3777d53a9 Cleaning up some vim plugins 2025-06-29 16:19:32 -05:00
3782f0b76c Disable relative line numbering 2025-05-15 11:38:02 -05:00
4f67e2b9f7 Add memory limits to ollama 2025-05-15 11:37:39 -05:00
e48092d2ae Play with hyprland bounce animations 2025-02-27 02:05:38 -06:00
ee6cf018b7 Set a non-default split ratio for dwindle 2025-02-27 01:56:17 -06:00
84bdaa7bd0 Switch to swapwindow
This more closely mimicks bspwm
2025-02-27 01:48:32 -06:00
bd3063e370 Cleanup 2025-02-27 01:48:20 -06:00
c653114e2c Implement moving into that submap 2025-02-27 01:11:27 -06:00
4efd4c3625 Implement resize submap 2025-02-27 01:05:00 -06:00
14 changed files with 59 additions and 157 deletions

3
.gitmodules vendored
View File

@@ -43,3 +43,6 @@
[submodule "base/.vim/bundle/vim-groovy"] [submodule "base/.vim/bundle/vim-groovy"]
path = base/.vim/bundle/vim-groovy path = base/.vim/bundle/vim-groovy
url = https://github.com/thecodesmith/vim-groovy url = https://github.com/thecodesmith/vim-groovy
[submodule "base/.vim/bundle/FastFold"]
path = base/.vim/bundle/FastFold
url = https://github.com/Konfekt/FastFold

View File

@@ -8,6 +8,8 @@ Environment="LD_LIBRARY_PATH=/var/home/salt/Projects/ollama/rocm/lib/ollama/"
ExecStart=/home/salt/Projects/ollama/ollama serve ExecStart=/home/salt/Projects/ollama/ollama serve
Restart=always Restart=always
RestartSec=3 RestartSec=3
MemoryHigh=3G
MemoryMax=4G
[Install] [Install]
WantedBy=default.target WantedBy=default.target

View File

@@ -21,7 +21,7 @@ proj() {
cd "$projdir" || return 50 cd "$projdir" || return 50
# Run code if we have it # Run code if we have it
# The fun part is this environment file can access some vars about the proj # The fun part is this environment file can access some vars about the proj
local envfile="$projdir/.env" local envfile="$projdir/.project-env"
if [ -r "$envfile" ]; then if [ -r "$envfile" ]; then
. "$envfile" . "$envfile"
echo "Sourced environment file for project" echo "Sourced environment file for project"

View File

@@ -1,124 +0,0 @@
#! /bin/bash
#
# %FILE%
# Copyright (C) %YEAR% %USER% <%MAIL%>
#
# Distributed under terms of the %LICENSE% license.
#
set -e
# Read-only set-once variables
declare -r _name="$(basename -- "$0")"
# Options
declare -i _opthelp
declare -i _optverbose
# Working variables
declare -a _args
declare _return
# Helper functions
log() {
# Print a line to the terminal if _optverbose is greater than $2
# $2 defaults to 0
# loglevel 0: Daily-use messages
# loglevel 1: Detailed but not quite debugging
# loglevel 2: Definitely debugging
[ -z "$1" ] && return 1
if (( _optverbose >= ${2:-0} )); then
printf "%s\\n" "$1"
fi
}
warn() {
# Print a yellow line to the terminal, respecting _optverbose
[ -z "$1" ] && return 1
if (( _optverbose >= ${2:-0} )); then
if [ -t 1 ]; then
printf "\\e[33m%s\\e[0m\\n" "$1"
else
printf "WARN: %s\\n" "$1"
fi
fi
}
error() {
# Print a red line to the terminal, exit if $2 is specified
[ -z "$1" ] && return 1
if [ -t 2 ]; then
printf "\\e[31m%s\\e[0m\\n" "$1" 1>&2
else
printf "ERROR: %s\\n" "$1" 1>&2
fi
[ -z "$2" ] && return
exit "${2:-1}"
}
has() {
# Parse out all arguments and try to find them in path
# If an argument cannot be found, set _return and fail
for prog in "$@"; do
if ! command -v "$prog" > /dev/null 2>&1; then
_return="$prog"
return 1
fi
done
return 0
}
# Core program functions
printhelp() {
cat << EOF
Usage: $_name [OPTION]...
-h Print this help text
-v Print more status messages. Stacks
Copyright (c) %YEAR% %MAIL%
Licensed under the %LICENSE% license
EOF
}
# Main
main() {
# Parse out arguments
while [ -n "$1" ]; do
# Parse out flags
while getopts ":hv" opt; do
case $opt in
h)
_opthelp=1
;;
v)
_optverbose+=1
;;
:)
error "Option requires argument: -$OPTARG" 2
;;
*)
error "Invalid option: -$OPTARG" 2
;;
esac
done
# Store arguments
shift $((OPTIND - 1))
if [ -n "$1" ]; then
_args+=("$1")
shift
fi
unset OPTIND
done
# Early hook for help
[ -n "$_opthelp" ] && printhelp && exit 0
# Validate critical options
# TODO: That
# Validate core program dependencies
log "Validating dependencies" 2
if ! has basename; then
error "Failed to find program: $_return" 1
fi
# Do the do
# TODO: The do%HERE%
warn "Nothing to do"
exit 0
}
main "$@"

View File

@@ -1,9 +0,0 @@
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#
# Copyright © %YEAR% %USER% <%MAIL%>
#
# Distributed under terms of the %LICENSE% license.
%HERE%

View File

@@ -13,7 +13,6 @@ endif
set autoread " Automatically read when a file is changed outside of Vim set autoread " Automatically read when a file is changed outside of Vim
set clipboard=unnamedplus " Use XA_PRIMARY clipboard by default set clipboard=unnamedplus " Use XA_PRIMARY clipboard by default
set encoding=utf-8 set encoding=utf-8
set foldmethod=syntax
set hidden " Allow buffer switching without saving set hidden " Allow buffer switching without saving
set incsearch " Search while you type set incsearch " Search while you type
set laststatus=2 " Always show statusbar set laststatus=2 " Always show statusbar
@@ -21,16 +20,14 @@ set list
set listchars=tab:>·,trail set listchars=tab:>·,trail
set modeline set modeline
set modelines=5 set modelines=5
set nofoldenable " Fuck autofolding set number
set number relativenumber " Relative line numbering
set t_Co=256 set t_Co=256
set viminfo='20,<1000,s1000 " Increase buffer size set viminfo='20,<1000,s1000 " Increase buffer size
" Folding
set foldmethod=syntax
"nnoremap <space> za
set nofoldenable " Fuck autofolding
" Templates
let g:email = 'jacob@babor.tech'
let g:user = 'Jacob Babor'
let g:license = 'MIT'
let g:templates_directory = [ '~/.vim/templates' ]
" Lightline " Lightline
set noshowmode set noshowmode
let g:lightline = { let g:lightline = {

View File

@@ -34,15 +34,16 @@ decoration {
animations { animations {
# https://wiki.hyprland.org/Configuring/Animations/ # https://wiki.hyprland.org/Configuring/Animations/
enabled = yes enabled = yes
bezier = snappy, 0.05, 0.9, 0.1, 1.05 bezier = snappy, 0.05, 0.9, 0.1, 1.05 # This is apparently kinda an ease-out-back sorta deal
animation = windows, 1, 2, snappy bezier = ease-out-expo, 0.16, 1, 0.30, 1
animation = windows, 1, 2, ease-out-expo
animation = windowsIn, 1, 1, default animation = windowsIn, 1, 1, default
animation = windowsOut, 1, 2, default, popin 80% animation = windowsOut, 1, 2, default, popin 80%
animation = layers, 1, 1, default animation = layers, 1, 1, default
animation = border, 1, 3, default animation = border, 1, 3, default
animation = borderangle, 1, 8, default animation = borderangle, 1, 8, default
animation = fade, 1, 3, default animation = fade, 1, 3, default
animation = workspaces, 1, 1.5, snappy animation = workspaces, 1, 1.5, ease-out-expo
} }
dwindle { dwindle {
@@ -50,6 +51,7 @@ dwindle {
pseudotile = yes # Enables pseudotile functionality pseudotile = yes # Enables pseudotile functionality
preserve_split = yes # Remember splits preserve_split = yes # Remember splits
force_split = 2 # Force splits to put the child on the right/down force_split = 2 # Force splits to put the child on the right/down
default_split_ratio = 1.1
} }
master { master {
@@ -72,6 +74,7 @@ misc {
# fullscreen/maximized state. # fullscreen/maximized state.
# 0 - behind, 1 - takes over, 2 - unfullscreen/unmaxize [0/1/2] # 0 - behind, 1 - takes over, 2 - unfullscreen/unmaxize [0/1/2]
new_window_takes_over_fullscreen = 2 new_window_takes_over_fullscreen = 2
vfr = 1
} }
xwayland { xwayland {

View File

@@ -8,10 +8,11 @@ bind = $mainMod, Return, exec, foot
bind = $mainMod, Q, killactive bind = $mainMod, Q, killactive
bind = $mainMod, Space, exec, pgrep wofi || wofi --show drun bind = $mainMod, Space, exec, pgrep wofi || wofi --show drun
#bind = $mainMod, M, exit, #bind = $mainMod, M, exit,
bind = $mainMod, T, pseudo, # dwindle bind = $mainMod, T, pseudo
bind = $mainMod, F, togglefloating, bind = $mainMod, F, togglefloating
bind = $mainMod Shift, F, fullscreen bind = $mainMod Shift, F, fullscreen
bind = $mainMod, R, togglesplit, # dwindle bind = $mainMod, R, togglesplit
bind = $mainMod, G, swapsplit
# Dunst management # Dunst management
bind = $mainMod Shift, Space, exec, dunstctl close bind = $mainMod Shift, Space, exec, dunstctl close
@@ -44,10 +45,10 @@ bind = $mainMod, k, movefocus, u
bind = $mainMod, l, movefocus, r bind = $mainMod, l, movefocus, r
# Move the focused window around # Move the focused window around
bind = $mainMod Shift, h, movewindow, l bind = $mainMod Shift, h, swapwindow, l
bind = $mainMod Shift, j, movewindow, d bind = $mainMod Shift, j, swapwindow, d
bind = $mainMod Shift, k, movewindow, u bind = $mainMod Shift, k, swapwindow, u
bind = $mainMod Shift, l, movewindow, r bind = $mainMod Shift, l, swapwindow, r
# Switch workspaces with mainMod + [0-9] # Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1 bind = $mainMod, 1, workspace, 1
@@ -79,6 +80,23 @@ bind = $mainMod SHIFT, MINUS, movetoworkspace, 11
bind = $mainMod, Period, workspace, e+1 bind = $mainMod, Period, workspace, e+1
bind = $mainMod, Comma, workspace, e-1 bind = $mainMod, Comma, workspace, e-1
# Resize # Move windows around
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow
# Resize mouse binding and submap
bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, mouse:273, resizewindow
bind = $mainMod SHIFT, R, submap, resize
submap = resize
$resizeFactor = 50
bind = , l, resizeactive, $resizeFactor 0
bind = , h, resizeactive, -$resizeFactor 0
bind = , k, resizeactive, 0 -$resizeFactor
bind = , j, resizeactive, 0 $resizeFactor
bind = SHIFT, h, moveactive, -$resizeFactor 0
bind = SHIFT, j, moveactive, 0 $resizeFactor
bind = SHIFT, k, moveactive, 0 -$resizeFactor
bind = SHIFT, l, moveactive, $resizeFactor 0
bind = , Return, submap, reset
bind = , Escape, submap, reset
bind = $mainMod SHIFT, R, submap, reset
submap = reset

View File

@@ -1,2 +1,2 @@
# vim: set ft=hyprlang: # vim: set ft=hyprlang:
exec-once = pgrep -U $USER swww-daemon || { rm /run/user/$UID/swww.socket; swww-daemon --format xrgb; } exec-once = pgrep -U $USER swww-daemon || { rm /run/user/$UID/swww-wayland-1.sock; swww-daemon --format xrgb; }

View File

@@ -6,7 +6,7 @@
"margin-top": 16, "margin-top": 16,
"margin-left": 16, "margin-left": 16,
"margin-right": 16, "margin-right": 16,
"modules-left": ["hyprland/workspaces", "hyprland/window", "sway/mode"], "modules-left": ["hyprland/workspaces", "hyprland/window", "hyprland/submap", "sway/mode"],
"modules-right": ["tray"], "modules-right": ["tray"],
"hyprland/workspaces": { "hyprland/workspaces": {
"all-outputs": false, "all-outputs": false,
@@ -21,6 +21,9 @@
"separate-outputs": true, "separate-outputs": true,
"format": "{}" "format": "{}"
}, },
"hyprland/submap": {
"on-click": "hyprctl dispatch submap reset"
},
"tray": { "tray": {
"icon-size": 16, "icon-size": 16,
"spacing": 10 "spacing": 10

View File

@@ -89,6 +89,16 @@ window#waybar.fullscreen #window {
color: rgba(40, 40, 40, 0.8); color: rgba(40, 40, 40, 0.8);
background: #d3869b; background: #d3869b;
} }
/* Submap display */
#submap {
color: rgba(235, 219, 178, 0.4);
padding: 0 1em;
border-radius: 8px;
}
#submap.resize {
color: rgba(40, 40, 40, 0.8);
background: #d3869b;
}
/* widgets */ /* widgets */
#pulseaudio { #pulseaudio {