diff options
Diffstat (limited to '')
| -rw-r--r-- | home/don/common/core/bash.nix | 10 | ||||
| -rw-r--r-- | home/don/common/core/default.nix | 33 | ||||
| -rw-r--r-- | home/don/common/core/vim/default.nix | 6 | ||||
| -rw-r--r-- | home/don/common/core/vim/vimrc | 47 | ||||
| -rw-r--r-- | home/don/common/core/zsh/default.nix | 55 | ||||
| -rw-r--r-- | home/don/common/core/zsh/zshrc | 125 | ||||
| -rw-r--r-- | home/don/fangorn.nix | 6 | 
7 files changed, 282 insertions, 0 deletions
diff --git a/home/don/common/core/bash.nix b/home/don/common/core/bash.nix new file mode 100644 index 0000000..77f0cf4 --- /dev/null +++ b/home/don/common/core/bash.nix @@ -0,0 +1,10 @@ +{ +  programs.bash = { +    enable = true; +    enableCompletion = true; +    shellAliases = { +      ll = "ls -alF --color=auto"; +      la = "ls -aF --color=auto"; +    }; +  }; +} diff --git a/home/don/common/core/default.nix b/home/don/common/core/default.nix new file mode 100644 index 0000000..5983f42 --- /dev/null +++ b/home/don/common/core/default.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, outputs, ... }: +{ +  imports = [ +    ./bash.nix +    #./git.nix +    #./ssh.nix +    #./tmux +    ./vim +    ./zsh +  ]; + +  home = { +    username = lib.mkDefault "don"; +    homeDirectory = lib.mkDefault "/home/${config.home.username}"; +    stateVersion = lib.mkDefault "23.11"; +  }; + +  #home.packages = builtins.attrValues { +  #  inherit (pkgs) +  #    wget +  #    zip; +  #}; + +  nix = { +    package = lib.mkDefault pkgs.nix; +    settings = { +      experimental-features = [ "nix-command" "flakes" ]; +      warn-dirty = false; +    }; +  }; + +  programs.home-manager.enable = true; +} diff --git a/home/don/common/core/vim/default.nix b/home/don/common/core/vim/default.nix new file mode 100644 index 0000000..ea4ed5e --- /dev/null +++ b/home/don/common/core/vim/default.nix @@ -0,0 +1,6 @@ +{ +  programs.vim = { +    enable = true; +    extraConfig = (builtins.readFile ./vimrc); +  }; +} diff --git a/home/don/common/core/vim/vimrc b/home/don/common/core/vim/vimrc new file mode 100644 index 0000000..87de2a0 --- /dev/null +++ b/home/don/common/core/vim/vimrc @@ -0,0 +1,47 @@ +" Handling of big files - William Natter, Tony Mechelynck and others +" fairly certain that BufSizeThreshold is in bytes +let g:SaveUndoLevels = &undolevels +let g:BufSizeThreshold = 5242880 +if has("autocmd") +	au VimEnter * let g:SaveUndoLevels = &undolevels +	au BufReadPre * if getfsize(expand("%")) >= g:BufSizeThreshold | setlocal noswapfile | endif +	au BufEnter * if getfsize(expand("%")) < g:BufSizeThreshold | let &undolevels=g:SaveUndoLevels | else | setlocal undolevels=-1 | endif +	au BufEnter * if getfsize(expand("%")) < g:BufSizeThreshold | syntax on | else | syntax off | endif +endif + +set mouse& +set noautoindent	" always set autoindenting off + +" enable better 24-bit color support +"let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" +"let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum" +set termguicolors + +" If using a dark background within the editing area and syntax highlighting +" turn on this option as well +set background=dark + +if has("autocmd") +	" Enabled file type detection +	" Use the default filetype settings. If you also want to load indent files +	" to automatically do language-dependent indenting add 'indent' as well. +	filetype plugin on +	"filetype indent on +endif " has ("autocmd") + +" The following are commented out as they cause vim to behave a lot +" different from regular vi. They are highly recommended though. +set showcmd			" Show (partial) command in status line. +set showmatch			" Show matching brackets. +set ignorecase			" Do case insensitive matching +set incsearch			" Incremental search +"set expandtab			" replace tabs with spaces +set smarttab			" use shiftwidth instead of tabstop at start of line +set spell spelllang=en_us	" turn on the spell check +set hlsearch			" highlight all search matches + +set laststatus=2 +set statusline=%<%f%h%m%r%=%{&ff}\ %Y\ %b\ 0x%B\ \ %l,%c%V\ %P + +"map <F5> :w<CR><bar>:!clear;go run %<CR> +"map <F6> :w<CR><bar>:%! gofmt<CR> diff --git a/home/don/common/core/zsh/default.nix b/home/don/common/core/zsh/default.nix new file mode 100644 index 0000000..c78884f --- /dev/null +++ b/home/don/common/core/zsh/default.nix @@ -0,0 +1,55 @@ +{ lib, ... }: +{ +  programs.zsh = { +    enable = true; + +    history = { +      save = 100000; +      size = 100000; +    }; + +    initExtra = (builtins.readFile ./zshrc); + +    sessionVariables = let makePluginPath = format: +      (lib.strings.makeSearchPath format [ +        "$HOME/.nix-profile/lib" +        "/run/current-system/sw/lib" +        "/etc/profiles/per-user/$USER/lib" +      ]) + ":$HOME/.${format}"; +    in { +      _JAVA_AWT_WM_NONREPARENTING = 1; # fix stupid broken Java shit +      BROWSER = "firefox"; +      CLAP_PATH = makePluginPath "clap"; +      COLORFGBG = ";0"; +      #COLORFGBG = "green;blue"; +      #COLORTERM = "truecolor"; +      DSSI_PATH = makePluginPath "dssi"; +      EDITOR = "vim"; +      LADSPA_PATH = makePluginPath "ladspa"; +      LC_COLLATE = "C"; +      LV2_PATH = makePluginPath "lv2"; +      LXVST_PATH = makePluginPath "lxvst"; +      #NNTPSERVER = "news.giganews.com"; +      PAGER = "less"; +      #PASSWORD_STORE_ENABLE_EXTENSIONS = "true"; +      PATH = "$HOME/bin:$PATH"; +      #PS1 = "%B%n%b@%U%m%u/%l:%~> "; +      QUOTING_STYLE = "literal"; +      VST_PATH = makePluginPath "vst"; +      VST3_PATH = makePluginPath "vst3"; +    }; + +    shellAliases = { +      #fixkeyboard = "setxkbmap -layout us -option caps:super -option compose:ralt"; +      grep = "grep --color=auto"; +      ip = "ip -c=auto"; +      la = "ls -aF --color=auto"; +      ll = "ls -alFhs --color=auto"; +      lock = "xscreensaver-command -lock"; +      nix-list-derivations = "nix-store --query --requisites /run/current-system | cut -d- -f2- | sort | uniq"; +      nix-list-generations = "nixos-rebuild list-generations"; +      steam-no-beta = "steam -clearbeta"; +      zgrep = "zgrep --color=auto"; +    }; +  }; +} diff --git a/home/don/common/core/zsh/zshrc b/home/don/common/core/zsh/zshrc new file mode 100644 index 0000000..f724569 --- /dev/null +++ b/home/don/common/core/zsh/zshrc @@ -0,0 +1,125 @@ +umask 022 + +eval $(dircolors) + +# set SWAYSOCK correctly +#if pgrep -U don -x sway >/dev/null; then +#	export SWAYSOCK=/run/user/$(id -u)/sway-ipc.$(id -u).$(pgrep -x sway).sock +#fi + +# start sway by default if logging into tty1 +#if [[ -z "${DISPLAY}" ]] && [[ $(tty) == "/dev/tty1" ]]; then +# +#	export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) +# +#	# set some Wayland specific variables +#	export MOZ_ENABLE_WAYLAND=1 +#	export GDK_BACKEND=wayland +#	export QT_QPA_PLATFORM=wayland +#	export SDL_VIDEODRIVER=wayland +#	export XDG_SESSION_TYPE=wayland +# +#	exec sway > ~/.sway.log +# +#fi + +# if already in Wayland, update the GPG TTY so ssh-askpass will work correctly +#if [[ -n "${WAYLAND_DISPLAY}" ]]; then +#	gpg-connect-agent updatestartuptty /bye >/dev/null +#fi + +# completion options +setopt LIST_PACKED MENU_COMPLETE +# expansion and globbing options +setopt NO_NOMATCH +# history options +setopt SHARE_HISTORY EXTENDED_HISTORY HIST_FCNTL_LOCK HIST_IGNORE_ALL_DUPS HIST_REDUCE_BLANKS HIST_SAVE_NO_DUPS +# input/output options +setopt PRINT_EXIT_VALUE RM_STAR_SILENT +# job control options +setopt LONG_LIST_JOBS NO_HUP +# zle options +setopt NO_BEEP + +# menu completion +zstyle ':completion:*' menu select=5 + +# vi keybindings and settings +bindkey -v +export KEYTIMEOUT=1 +autoload -U edit-command-line +zle -N edit-command-line +bindkey -M vicmd v edit-command-line + +# always open tmux if interactive +[[ $- != *i* ]] && return +#[[ -z "$TMUX" ]] && (tmux -2 new-session -t default \; new-window || tmux -2 new-session -s default) +[[ -z "$TMUX" ]] && (tmux -2 attach -t default || tmux -2 new-session -s default) + +# useful helper functions +function nix-file-list { find $(nix build ${1} --print-out-paths --no-link) } + +function ntrace { + +	if [[ -z ${argv} ]]; then +		echo 'you must specify a command to strace!' >&2 +		return 1 +	fi + +	eval strace -f -e trace=network -s 10000 ${=argv[@]} + +} + +# prompt/theme shit +function precmd { + +	local RC=${?} +	#local RC=${(%)RC-%?} +	 +	print -nP '\n' +	 +	# current user +	if [[ ${EUID} -eq 0 ]]; then +		print -nP '%{%S%F{red}%}%n%{%f%s%}' +	else +		print -nP '%{%F{magenta}%}%n%{%f%}' +	fi +	 +	print -nP '@' +	 +	# current host +	if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then +		print -nP '%{%F{yellow}%}%m%{%f%}' +	else +		print -nP '%{%F{green}%}%m%{%f%}' +	fi +	 +	# connected terminal +	print -nP '/%{%U%}%l%{%u%} ' +	 +	# cwd +	print -nP '%{%F{cyan}%}%~%{%f%} ' +	 +	# job count +	JOBCOUNT='%j' +	if [[ ${(%)JOBCOUNT} -gt 0 ]]; then +		print -nP 'j=%{%F{yellow}%}%j%{%f%} ' +	fi +	 +	# previous return code +	if [[ ${RC} -ne 0 ]]; then +		print -nP 'rc=%{%F{red}%}' +		echo -n "${RC}" +		print -nP '%{%f%} ' +	else +		print -nP 'rc=%{%F{green}%}' +		echo -n "${RC}" +		print -nP '%{%f%} ' +	fi +	 +	# time stamp +	print -P '%{%F{cyan}%}%D{%FT%T%z}%{%f%}' + +} + +PS1='%# ' diff --git a/home/don/fangorn.nix b/home/don/fangorn.nix new file mode 100644 index 0000000..83c92cd --- /dev/null +++ b/home/don/fangorn.nix @@ -0,0 +1,6 @@ +{ inputs, lib, pkgs, config, outputs, ... }: +{ +  imports = [ +    common/core +  ]; +}  | 
