From 41f54c0fa334bae9d0d5b56a3d97b027eeed0bde Mon Sep 17 00:00:00 2001 From: Don Harper Date: Tue, 4 Apr 2023 07:18:52 -0500 Subject: [PATCH] loki | move home-directory to module --- loki/configuration.nix | 2 + workstation/home.nix | 231 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 233 insertions(+) create mode 100644 workstation/home.nix diff --git a/loki/configuration.nix b/loki/configuration.nix index 6af2ddb..25c09fa 100644 --- a/loki/configuration.nix +++ b/loki/configuration.nix @@ -4,9 +4,11 @@ imports = [ + /etc/nixos/hardware-configuration.nix /home/don/nixos/workstation/configuration.nix /home/don/nixos/loki/kernel.nix + /home/don/nixos/workstation/home.nix /home/don/nixos/workstation/sway.nix /home/don/nixos/workstation/detect-reboot-needed.nix ]; diff --git a/workstation/home.nix b/workstation/home.nix new file mode 100644 index 0000000..e2bb74f --- /dev/null +++ b/workstation/home.nix @@ -0,0 +1,231 @@ +{ 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 | sed 's?/dev/pts/??')"; + bashrcExtra = + '' + export GOPATH="/home/don/go" + export PROMPT_COMMAND='history -a' + set bell-style visible + set nobeep + set -o noclobber + ulimit -c 0 + umask 0007 + export PAGER=less + export LESS="-s" + #if [ -d /home/don/.bash_completion.d ]; then + #for i in $(ls -1 /home/don/.bash_completion.d/*.sh); do source $i; done + #fi + test -f "/home/don/.bash_$(hostname -s)" && source /home/don/.bash_$(hostname -s) + test -f /home/don/.liquidprompt/liquidprompt && source /home/don/.liquidprompt/liquidprompt + test -f "/home/don/.bash_functions" && source "/home/don/.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 = [ "\${HOME}/.ssh/id_ed25519" ]; + 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'\"" + ]; + }; + }; + }; + }; + }; +}