configs
The relevant configs
The dotfiles live in the machine flake and deploy on rebuild; there are exactly two, which is the point. Plus the Factorio server compose file and the CS2 configs. Hover a block for the copy button and take what you need.
# The live file from the machine flake, symlinked into $HOME.
export PATH="$HOME/.local/bin:$HOME/.bun/bin:$HOME/go/bin:$PATH"
# History: shared across sessions, duplicates dropped, a leading space
# keeps a command out of the file.
HISTSIZE=100000
SAVEHIST=100000
setopt share_history hist_ignore_all_dups hist_ignore_space hist_reduce_blanks
# Native build deps for Rust crates with C dependencies (openssl-sys, etc.).
export OPENSSL_NO_VENDOR=1
export PKG_CONFIG_PATH="/run/current-system/sw/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
# LD_LIBRARY_PATH for unpatched binaries that dlopen shared libs at
# runtime. /etc/runtime-libs is a curated two-library directory; do NOT
# point this at the whole system profile. LD_LIBRARY_PATH outranks
# RPATH, so the system profile would shadow whatever a nix binary was
# actually built against.
export LD_LIBRARY_PATH="/etc/runtime-libs${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
# Catppuccin zsh-syntax-highlighting theme (deployed by the rebuild)
[ -f "$HOME/.config/zsh/catppuccin_mocha-zsh-syntax-highlighting.zsh" ] && \
source "$HOME/.config/zsh/catppuccin_mocha-zsh-syntax-highlighting.zsh"
# FZF catppuccin mocha colors
export FZF_DEFAULT_OPTS=" \
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
--color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \
--color=selected-bg:#45475a \
--multi"
# Tools
eval "$(zoxide init zsh --cmd cd)"
# fzf keybindings: ctrl-r history search, ctrl-t file picker, alt-c cd.
source <(fzf --zsh)
# devenv auto-activation: cd into a project with devenv.nix and drop
# into its shell. Guarded: dotfiles deploy by symlink on save, but the
# devenv binary only lands on PATH after a rebuild.
command -v devenv >/dev/null && eval "$(devenv hook zsh)"
# ESP32 Xtensa toolchain, generated by espup install.
[ -f "$HOME/export-esp.sh" ] && . "$HOME/export-esp.sh"
# Aliases
alias ls="eza --tree --level 1 --icons=always"
alias vim="nvim"
alias cat="bat"
alias fbranch='git branch | cut -c 3- | gum filter | xargs -I {} git switch {}'
alias ccbranch='git branch | grep "*" | cut -c 3- | tr -d "\n" | wl-copy'
alias dbranch='git branch | cut -c 3- | gum choose --no-limit | xargs -I {} git branch -D {}'
alias fuckit="git reset --hard HEAD"
alias ngrok="op plugin run -- ngrok"
# Fun (only tools that are actually installed)
alias aquarium="asciiquarium"
alias wisdom="fortune | cowsay"
# Functions
intj() { idea "${1:-.}" &>/dev/null &disown; }
use-java() { nix shell "nixpkgs#temurin-bin-${1}" -c "$SHELL"; }
# Prompt (must be last)
eval "$(starship init zsh)"""" Map leader to space ---------------------
let mapleader=" "
""" Plugins --------------------------------
set surround
set multiple-cursors
set commentary
set argtextobj
set easymotion
set textobj-entire
set ReplaceWithRegister
" Highlight copied text (no `set` shorthand for this one)
Plug 'machakann/vim-highlightedyank'
""" Plugin settings -------------------------
let g:argtextobj_pairs="[:],(:),<:>"
""" Common settings -------------------------
set showmode
set scrolloff=5
set incsearch
set nu
""" Idea specific settings ------------------
set ideajoin
set ideastatusicon=gray
set idearefactormode=keep
set visualbell
set noerrorbells
""" Mappings --------------------------------
map <leader>f <Plug>(easymotion-s)
map <leader>e <Plug>(easymotion-f)
""" Toggle relative line numbers
map <leader>rn :set relativenumber!<CR>
map <leader>R <Action>(RenameElement)
map <leader>c <Action>(Stop)
map <leader>z <Action>(ToggleDistractionFreeMode)
map <leader>s <Action>(SelectInProjectView)
map <leader>a <Action>(Annotate)
map <leader>h <Action>(Vcs.ShowTabbedFileHistory)
map <S-Space> <Action>(GotoNextError)
map <leader>b <Action>(ToggleLineBreakpoint)# Factorio game server, run and managed by Factorio Server Manager
# (the maintained Tricade fork). One container holds the manager UI
# and the Factorio headless server it downloads and controls.
#
# - The UI listens on 80/tcp; Dokploy routes HTTPS to it via Traefik.
# - The game speaks UDP on 34197. Traefik cannot route it; Docker
# publishes the port directly, so the DNS record stays DNS-only.
# - RCON stays inside the container with a generated password.
services:
manager:
# Pin an exact manager release. Releases are immutable SemVer tags.
image: ghcr.io/tricade/factorio-server-manager:0.17.5
restart: unless-stopped
# The manager asks Factorio for a clean save-and-stop on SIGTERM
# and needs up to 165 s for it.
stop_grace_period: 3m
environment:
# First-install game version. The UI switches versions after,
# and the server must match the players' client version.
FACTORIO_VERSION: stable
FSM_MAX_UPLOAD: "512"
# Every login goes through Traefik over HTTPS.
FSM_COOKIE_SECURE: "true"
RCON_PASS: ""
ports:
- "34197:34197/udp"
volumes:
- fsm-data:/opt/fsm-data
- factorio-data:/opt/factorio
volumes:
# Explicit names, so the volumes do not carry the compose project
# prefix and a backup job can address them by name.
fsm-data:
name: factorio-fsm-data
factorio-data:
name: factorio-data// =============================================================
// CS2 autoexec.cfg
// Place in: ...\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\
// Launch option: +exec autoexec.cfg
// Lines marked <-- SET THIS are personal; change them.
// =============================================================
// ------------------------- NETWORK ---------------------------
rate "786432" // Max bandwidth = "unrestricted" in settings
cl_net_buffer_ticks "0" // 0 = no packet-loss buffering (lowest latency).
// ---------------------- FPS / PERFORMANCE --------------------
fps_max "0" // Uncapped
fps_max_ui "120" // Stops the menu chewing your GPU
engine_no_focus_sleep "0" // Keeps FPS up when alt-tabbed
snd_mixahead "0.05" // Audio buffer. Lower = less latency, more crackle risk.
cl_autohelp "0" // CS:GO leftover -- may no-op in CS2, harmless either way
// ----------------------- MOUSE / AIM -------------------------
zoom_sensitivity_ratio "1.0"
m_yaw "0.022" // Default. Don't touch unless you know why.
// ------------------------ VIEWMODEL --------------------------
viewmodel_fov "68" // 68 is the max
viewmodel_offset_x "2.5"
viewmodel_offset_y "2"
viewmodel_offset_z "-1.5"
cl_righthand "1"
r_drawtracers_firstperson "1" // Show your own tracers (this is already the default)
// -------------------------- RADAR ----------------------------
cl_radar_always_centered "0"
cl_radar_scale "0.4"
cl_radar_icon_scale_min "0.6"
cl_radar_rotate "1"
cl_hud_radar_scale "1.15"
// --------------------------- HUD -----------------------------
hud_scaling "0.85"
cl_hud_color "0" // 0 = team colour
cl_showloadout "1"
cl_teammate_colors_show "1" // 2 = colours + letters
gameinstructor_enable "0"
cl_use_opens_buy_menu "0" // Stops E opening the buy menu
// -------------------------- AUDIO ----------------------------
volume "0.5" // <-- SET THIS
snd_menumusic_volume "0"
snd_roundstart_volume "0"
snd_roundend_volume "0"
snd_mapobjective_volume "0"
snd_deathcamera_volume "0"
snd_mvp_volume "0"
snd_tensecondwarning_volume "0.6" // Keep this one, it's real info
// ------------------------- ALIASES ---------------------------
// Knife <-> Zeus toggle on key 3.
// Uses slot3 rather than "use weapon_knife" so it still works with a skinned knife.
alias "knifezeus" "kz_knife"
alias "kz_knife" "slot3; alias knifezeus kz_zeus"
alias "kz_zeus" "use weapon_taser; alias knifezeus kz_knife"
// Quickswitch on Q -- HOLD for knife, RELEASE to snap back to your gun.
alias "+quickswitch" "slot3"
alias "-quickswitch" "lastinv"
// -------------------------- BINDS ----------------------------
// Weapons
bind "1" "slot1" // Primary
bind "2" "slot2" // Secondary
bind "3" "knifezeus" // Knife / Zeus toggle
bind "q" "+quickswitch" // Quickswitch
// Utility
bind "4" "slot8" // Smoke
bind "mouse4" "slot7" // Flashbang
bind "5" "slot6" // HE
bind "x" "slot10" // Molotov / Incendiary (auto-picks by side)
bind "z" "slot5" // C4
// Misc
bind "g" "drop"
bind "mouse5" "+voicerecord" // Needs voice set to push-to-talk in settings
// ------------------------ CONFIRMATION -----------------------
echo ""
echo "==============================="
echo " autoexec.cfg loaded OK"
echo "==============================="
echo ""sv_cheats 1
mp_limitteams 0;
mp_autoteambalance 0;
mp_maxmoney 60000;
mp_startmoney 60000;
mp_buytime 9999;
mp_buy_anywhere 1;
mp_freezetime 0;
mp_roundtime 60;
mp_roundtime_defuse 60;
mp_respawn_on_death_ct 1;
mp_respawn_on_death_t 1;
sv_infinite_ammo 1;
bind "lalt" noclip
sv_grenade_trajectory 1
sv_grenade_trajectory_prac_pipreview true
sv_grenade_trajectory_prac_trailtime 15
sv_grenade_trajectory_time_spectator 15
sv_grenade_trajectory_time 15;
sv_showimpacts 1;
sv_showimpacts_time 10;
ammo_grenade_limit_total 5;
bot_kick
god //doesn't work for now, maybe they will enable it in the future
mp_warmup_end;
mp_restartgame 1
buddha 1
sv_regeneration_force_on 1