aboutsummaryrefslogtreecommitdiffstats
path: root/home
diff options
context:
space:
mode:
Diffstat (limited to 'home')
-rw-r--r--home/don/common/core/bash.nix10
-rw-r--r--home/don/common/core/default.nix33
-rw-r--r--home/don/common/core/vim/default.nix6
-rw-r--r--home/don/common/core/vim/vimrc47
-rw-r--r--home/don/common/core/zsh/default.nix55
-rw-r--r--home/don/common/core/zsh/zshrc125
-rw-r--r--home/don/fangorn.nix6
-rw-r--r--home/nipsy/fangorn.nix6
-rw-r--r--home/root/fangorn.nix6
9 files changed, 294 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
+ ];
+}
diff --git a/home/nipsy/fangorn.nix b/home/nipsy/fangorn.nix
new file mode 100644
index 0000000..83c92cd
--- /dev/null
+++ b/home/nipsy/fangorn.nix
@@ -0,0 +1,6 @@
+{ inputs, lib, pkgs, config, outputs, ... }:
+{
+ imports = [
+ common/core
+ ];
+}
diff --git a/home/root/fangorn.nix b/home/root/fangorn.nix
new file mode 100644
index 0000000..83c92cd
--- /dev/null
+++ b/home/root/fangorn.nix
@@ -0,0 +1,6 @@
+{ inputs, lib, pkgs, config, outputs, ... }:
+{
+ imports = [
+ common/core
+ ];
+}