{ config, pkgs, ... }: { users.users.don.isNormalUser = true; home-manager.users.don = { home.username = "don"; home.homeDirectory = "/home/don"; home.stateVersion = "22.11"; home.shellAliases = { x = "myX"; mroe = "more"; moer = "more"; ls = "ls -hCF"; l = "ls -l"; df = "df -h -x squashfs"; du = "du -h" ; dotdrop = "\$\{HOME\}/.local/bin/dotdrop -c ~/.dotfiles/config.yaml"; t = "task"; ttoday = "task +TODAY or +OVERDUE -BLOCKED"; ttom = "task +OVERDUE or +TOMORROW -BLOCKED"; to = "task list +OVERDUE"; turl = "task nnext | urlview"; tfollow = "task list +followup"; tnext = "task list +nextactions"; open = "xdg-open"; tt = "timew"; }; programs.neovim = { enable = true; viAlias = true; vimAlias = true; vimdiffAlias = true; extraConfig = '' colorscheme dracula set backspace="indent,eol,start" set autoindent set expandtab set tabstop=2 set shiftwidth=2 set history=50 set ruler set showcmd set incsearch set hlsearch set nospell set modeline set wildmode=longest:full set wildmenu set scrolloff=2 set number set list "set listchars="eol:⏎,tab:␉·,trail:␠,nbsp:⎵" set background=dark set laststatus=2 set t_Co=256 let g:ale_linters = { 'nix': ['statix']} ''; #filetype plugin on #let g:netrw_silent = 1 #let g:spchkdialect = "usa" #let g:BASH_AuthorName = 'Don Harper' #let g:BASH_Email = 'don@donharper.org' #let g:BASH_Company = 'Don Harper' #filetype indent on #"filetype off " required #filetype plugin indent on " required #let g:airline#extensions#tabline#enabled = 1 #let g:airline#theme = 'wombat' #highlight GitGutterAdd guifg = #009900 ctermfg=Green #highlight GitGutterChange guifg = #bbbb00 ctermfg=Yellow #highlight GitGutterDelete guifg = #ff2222 ctermfg=Red #let g:gitgutter_enabled = 1 #let g:gitgutter_map_keys = 0 #let g:gitgutter_highlight_lines = 0 #if &t_Co > 2 || has("gui_running") #mouse = a #syntax on #guioptions- = T #gfn = Monospace\ Regular\ 10 #endif #let g:vim_markdown_folding_level = 6 plugins = with pkgs.vimPlugins; [ #bash-support #git #lightline #vc.vim #vim-taskwarrior #winresizer CheckAttach Recover-vim Shade-nvim # color SpaceCamp # color YouCompleteMe ale ansible-vim aurora # color dracula-nvim gitv tabular vim-airline vim-airline-themes vim-bufferline vim-fugitive vim-gitgutter vim-github-dashboard vim-markdown vim-misc vim-nix vim-tmux vim-tmux-navigator ]; }; programs.bash = { enable = true; enableCompletion = true; enableVteIntegration = false; historyFile = "\$\{HOME\}/.bash_history.\${USER}.\$(hostname -s).\$(tty | cut -c10-)"; bashrcExtra = '' export GOPATH="~/go" export PROMPT_COMMAND='history -a' export EDITOR="nvim" set bell-style visible set nobeep set -o noclobber ulimit -c 0 umask 0007 export PAGER=less export LESS="-s" . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh" if [ -d ~/.bash_completion.d ]; then for i in $(ls -1 ~/.bash_completion.d/*.sh); do . $i; done fi export HOSTNAME_SHORT=$(hostname -s) test -f "~/.bash_$(hostname -s)" && . ~/.bash_$(hostname -s) test -f ~/.liquidprompt/liquidprompt && . ~/.liquidprompt/liquidprompt test -f "~/.bash_functions" && . "~/.bash_functions" ''; profileExtra = '' # From me . ~/.bash_motd && bash_motd --banner --processor --memory --diskspace --podman --docker ''; shellOptions = [ "autocd" "cdspell" "checkjobs" "checkwinsize" "dotglob" "extglob" "histappend" "histreedit" "histverify" ]; }; programs.go.enable = true; programs.keychain = { enable = true; enableBashIntegration = true; agents = [ "ssh" ]; keys = [ "~/.ssh/id_ed25519" "~/.ssh/git" "~/.ssh/id_dsa.2022" "~/.ssh/id_rsa.2020" "~/.ssh/id_rsa.2022" ]; inheritType = "any"; }; programs.mpv = { enable = true; # config = { # cache-dir = "\${HOME}/.cache"; # cache-on-disk = "yes"; # cache = "yes"; # demuxer-max-back-bytes = "100M"; # demuxer-max-bytes = "500M"; # demuxer-readahead-secs = "20"; # pause = "no"; # save-position-on-quit = "yes"; # slang = "en"; # user-agent = "Mozilla/5.0"; # ytdl-format = "bestvideo+bestaudio"; # ytdl-raw-options = "no-playlist="; # ytdl = "yes"; # script-opts = "ytdl_hook-ytdl_path=yt-dlp"; # }; scripts = [ pkgs.mpvScripts.autoload ]; #scripts = [ pkgs.mpvScripts.autoload pkgs.mpvScripts.sponsorblock ]; }; services = { gpg-agent = { enable = true; defaultCacheTtl = 1800; enableSshSupport = true; }; kanshi = { enable = true; profiles = { undocked = { outputs = [ { criteria = "Sharp Corporation 0x14F9 0x00000000"; status = "enable"; scale = 1.2; } ]; }; docked = { outputs = [ { criteria = "eDP-1"; status = "disable"; } { criteria = "Samsung Electric Company C24F390 H4ZN519488"; status = "enable"; position = "0,0"; } { criteria = "Stargate Technology HDMI Unknown"; status = "enable"; position = "0,1080"; } ]; exec = [ "swaymsg workspace 1, move workspace to output \"'Samsung Electric Company C24F390 H4ZN519488'\"" "swaymsg workspace 5, move workspace to output \"'Stargate Technology HDMI Unknown'\"" "swaymsg workspace 6, move workspace to output \"'Samsung Electric Company C24F390 H4ZN519488'\"" "swaymsg workspace 9, move workspace to output \"'Stargate Technology HDMI Unknown'\"" ]; }; }; }; }; }; }