Final commit (hopefully)
- I'll be switching over to a more organized tree ASAP
- This will fix several problems this config has
- I'll keep you posted :wave:
diff --git a/src/apps/personal/element.nix b/src/apps/personal/element.nix
index 9278df0..ced87ce 100644
--- a/src/apps/personal/element.nix
+++ b/src/apps/personal/element.nix
@@ -1,5 +1,6 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
element-desktop-wayland
+ cinny
];
}
diff --git a/src/apps/personal/email.nix b/src/apps/personal/email.nix
new file mode 100644
index 0000000..45c2d5f
--- /dev/null
+++ b/src/apps/personal/email.nix
@@ -0,0 +1,66 @@
+{ pkgs, ... }: {
+ accounts.email.accounts = {
+ collabora = {
+ astroid = {
+ enable = true;
+ sendMailCommand = "${pkgs.msmtp}/bin/msmtpq --read-envelope-from --read-recipients";
+ };
+ msmtp.enable = true;
+ himalaya.enable = true;
+ neomutt.enable = true;
+ mbsync = {
+ enable = true;
+ create = "maildir";
+ };
+ notmuch.enable = true;
+ address = "skyler.grey@collabora.com";
+ imap = {
+ host = "mail.collabora.com";
+ port = 143;
+ tls.useStartTls = true;
+ };
+ smtp = {
+ host = "mail.collabora.com";
+ port = 587;
+ tls.useStartTls = true;
+ };
+ userName = "skyler";
+ realName = "Skyler Grey";
+ primary = true;
+ signature = {
+ showSignature = "append";
+ text = ''
+ Miss Skyler Grey
+ Intern
+
+ Collabora Ltd.
+ Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
+ Registered in England & Wales, no. 5513718'';
+ };
+ passwordCommand = "${pkgs.coreutils}/bin/cat /run/secrets/collabora-password";
+ };
+ };
+ programs.astroid.enable = true;
+ programs.msmtp.enable = true;
+ services.mbsync = {
+ enable = true;
+ postExec = "${pkgs.notmuch}/bin/notmuch new";
+ };
+ programs.mbsync.enable = true;
+ programs.himalaya.enable = true;
+ programs.neomutt = {
+ enable = true;
+ sidebar.enable = true;
+ settings = {
+ preferred_languages = "en";
+ };
+ extraConfig = ''
+ auto_view text/html
+ '';
+ };
+ programs.notmuch.enable = true;
+ home.packages = [ pkgs.lynx ];
+ home.file.".mailcap".text = ''
+ text/html; ${pkgs.lynx}/bin/lynx -force_html -dump %s; copiousoutput
+ '';
+}
diff --git a/src/apps/personal/gpg.nix b/src/apps/personal/gpg.nix
index 58d57ca..9c8f74f 100644
--- a/src/apps/personal/gpg.nix
+++ b/src/apps/personal/gpg.nix
@@ -1,6 +1,6 @@
{ pkgs, ... }: let
pinentry-multiplexed = pkgs.writeScriptBin "pinentry-multiplexed" ''
- case $PINENTRY_USER_DATA in
+ case "$${PINENTRY_USER_DATA-}" in
tty)
exec ${pkgs.pinentry.tty}/bin/pinentry "$@"
;;
diff --git a/src/apps/personal/grep.nix b/src/apps/personal/grep.nix
index 4fc02a1..fe29812 100644
--- a/src/apps/personal/grep.nix
+++ b/src/apps/personal/grep.nix
@@ -1,11 +1,12 @@
{ pkgs, ... }: {
- home.packages = [
- pkgs.ripgrep
- pkgs.gnugrep
- ];
+ home.packages = [
+ pkgs.ripgrep
+ pkgs.gnugrep
+ ];
- home.shellAliases = {
- "git-todo" = "${pkgs.git}/bin/git log | ${pkgs.gnugrep}/bin/grep 'TODO\|DONE'";
- todo = "${pkgs.ripgrep}/bin/rg TODO:";
- };
+ home.shellAliases = {
+ "git-todo" = "${pkgs.git}/bin/git log | ${pkgs.gnugrep}/bin/grep 'TODO\|DONE'";
+ todo = "${pkgs.ripgrep}/bin/rg TODO:";
+ rg = "${pkgs.ripgrep}/bin/rg -S";
+ };
}
diff --git a/src/apps/personal/ssh.nix b/src/apps/personal/ssh.nix
index 3ab03fc..a912f0f 100644
--- a/src/apps/personal/ssh.nix
+++ b/src/apps/personal/ssh.nix
@@ -8,6 +8,10 @@
port = 29418;
user = "Minion3665";
};
+ transplace = {
+ hostname = "95.217.87.112";
+ identityFile = "~/.ssh/id_transplace";
+ };
};
};
diff --git a/src/apps/personal/timetracking.nix b/src/apps/personal/timetracking.nix
index b7d0f2f..52220e3 100644
--- a/src/apps/personal/timetracking.nix
+++ b/src/apps/personal/timetracking.nix
@@ -1,6 +1,11 @@
{ pkgs, ... }: {
home.packages = [
pkgs.gtimelog
+# pkgs.gtimelog.overrideAttrs(prev: {
+ # src = fetchGit {
+ # url = "git@gitlab.collabora.com:
+ # };
+ # })
pkgs.haskellPackages.arbtt
];
}
diff --git a/src/apps/personal/vim.nix b/src/apps/personal/vim.nix
index ccd3434..145b8c7 100644
--- a/src/apps/personal/vim.nix
+++ b/src/apps/personal/vim.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, vim-ctrlspace, ... }: {
home.file.".config/nvim/autoload/airline/themes/onehalf.vim".text = ''
let g:airline#themes#onehalf#palette = {}
function! airline#themes#onehalf#refresh()
@@ -31,21 +31,24 @@
let g:airline#themes#onehalf#palette.visual = s:generateAirlinePalette(s:purple)
let g:airline#themes#onehalf#palette.select = s:generateAirlinePalette(s:purple)
let g:airline#themes#onehalf#palette.multi = s:generateAirlinePalette(s:purple)
- let g:airline#themes#onehalf#palette.insert = s:generateAirlinePalette(s:blue)
+ let g:airline#themes#onehalf#palette.insert = s:generateAirlinePalette(s:yellow)
let g:airline#themes#onehalf#palette.commandline = s:generateAirlinePalette(s:red)
let g:airline#themes#onehalf#palette.terminal = s:generateAirlinePalette(s:cyan)
- let g:airline#themes#onehalf#palette.replace = s:generateAirlinePalette(s:yellow)
- let g:airline#themes#onehalf#palette.ctrlp = s:generateAirlinePalette(s:white)
- let g:airline#themes#onehalf#palette.inactive = s:generateAirlinePalette(s:lightgrey)
+ let g:airline#themes#onehalf#palette.replace = s:generateAirlinePalette(s:blue)
+ let g:airline#themes#onehalf#palette.inactive = s:generateAirlinePalette(s:white)
let g:airline#themes#onehalf#palette.normal_modified = s:generateAirlinePalette(s:green)
let g:airline#themes#onehalf#palette.visual_modified = s:generateAirlinePalette(s:purple)
let g:airline#themes#onehalf#palette.select_modified = s:generateAirlinePalette(s:purple)
let g:airline#themes#onehalf#palette.multi_modified = s:generateAirlinePalette(s:purple)
- let g:airline#themes#onehalf#palette.insert_modified = s:generateAirlinePalette(s:blue)
+ let g:airline#themes#onehalf#palette.insert_modified = s:generateAirlinePalette(s:yellow)
let g:airline#themes#onehalf#palette.commandline_modified = s:generateAirlinePalette(s:red)
let g:airline#themes#onehalf#palette.terminal_modified = s:generateAirlinePalette(s:cyan)
- let g:airline#themes#onehalf#palette.replace_modified = s:generateAirlinePalette(s:yellow)
- let g:airline#themes#onehalf#palette.ctrlp_modified = s:generateAirlinePalette(s:white)
+ let g:airline#themes#onehalf#palette.replace_modified = s:generateAirlinePalette(s:blue)
+
+
+ let g:airline#themes#onehalf#palette.tabline = {
+ \ 'airline_tabtype' : [s:white.gui, s:lightgrey.gui, s:white.cterm, s:lightgrey.cterm]}
+
endfunction
call airline#themes#onehalf#refresh()
@@ -57,7 +60,9 @@
settings = {
"suggest.noselect" = false;
"cSpell.checkOnlyEnabledFileTypes" = false;
+ "rust-analyzer.serverPath" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
};
+
};
viAlias = true;
vimAlias = true;
@@ -80,10 +85,14 @@
set nocompatible
set hidden
set encoding=utf-8
- set scrolloff=5
+ set scrolloff=3
set signcolumn=yes
+ set guicursor=v-r-cr:hor50,i:ver50
colorscheme onehalfdark
+ hi clear SpellBad
+ hi SpellBad cterm=undercurl gui=undercurl
+
command W w
command Wq wq
@@ -138,8 +147,12 @@
nmap <leader>+ <Plug>AirlineSelectNextTab
let g:airline_skip_empty_sections = 1
- let g:ctrlp_map = '<c-p>'
- let g:ctrlp_cmd = 'CtrlP'
+ let g:CtrlSpaceDefaultMappingKey = "<C-space> "
+ let g:CtrlSpaceGlobCommand = 'rg --color=never --files'
+ let g:CtrlSpaceSearchTiming = 500
+ let g:CtrlSpaceLoadLastWorkspaceOnStart = 1
+ let g:CtrlSpaceSaveWorkspaceOnSwitch = 1
+ let g:CtrlSpaceSaveWorkspaceOnExit = 1
nmap <silent> ]c :call CocAction('diagnosticNext')<cr>
nmap <silent> [c :call CocAction('diagnosticPrevious')<cr>
@@ -179,7 +192,25 @@
nnoremap <silent> K :call <SID>show_documentation()<CR>
- autocmd BufWritePre * Neoformat
+ function FormatChangedHunks()
+ let formattedLines = 0
+ let formattedHunks = 0
+
+ for hunk in gitgutter#hunk#hunks(bufnr(""))
+ let line1 = hunk[2] - 1
+ let line2 = hunk[2] + hunk[3]
+ let formattedLines = formattedLines + line2 - line1
+ let formattedHunks = formattedHunks + 1
+ silent call neoformat#Neoformat(0, "", line1, line2)
+ endfor
+
+ echomsg "Reformatted " . string(formattedLines) . " changed lines in " . string(formattedHunks) . " hunks"
+ endfunction
+
+ autocmd BufWritePre * undojoin | try | undojoin | Neoformat | catch /^Vim\%((\a\+)\)\=:E790/ | finally | silent Neoformat | endtry
+ " call FormatChangedHunks()
+ autocmd CursorHoldI,CursorHold,BufLeave ?* silent! update
+ let g:cursorhold_updatetime = 1000
let g:neoformat_try_node_exe = 1
@@ -191,7 +222,42 @@
endif
endfunction
+ let s:darkred = { "gui": "#844C55", "cterm": "167" }
+ let s:darkyellow = { "gui": "#877658", "cterm": "136" }
+ let s:darkgreen = { "gui": "#607857", "cterm": "71" }
+ let s:darkcyan = { "gui": "#3F717B", "cterm": "31" }
+ let s:darkblue = { "gui": "#456E92", "cterm": "31" }
+ let s:darkpurple = { "gui": "#775289", "cterm": "127" }
+ let s:white = { "gui": "#dcdfe4", "cterm": "188" }
+
+ exec "highlight IndentBlanklineContextChar ctermfg=" . s:white.cterm . " guifg=" . s:white.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineContextStart ctermfg=NONE guifg=NONE guisp=white ctermbg=NONE guibg=NONE gui=underline term=underline"
+ exec "highlight IndentBlanklineIndent1 ctermfg=" . s:darkred.cterm . " guifg=" . s:darkred.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent2 ctermfg=" . s:darkyellow.cterm . " guifg=" . s:darkyellow.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent3 ctermfg=" . s:darkgreen.cterm . " guifg=" . s:darkgreen.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent4 ctermfg=" . s:darkcyan.cterm . " guifg=" . s:darkcyan.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent5 ctermfg=" . s:darkblue.cterm . " guifg=" . s:darkblue.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent6 ctermfg=" . s:darkpurple.cterm . " guifg=" . s:darkpurple.gui . " ctermbg=NONE guibg=NONE"
+
lua << EOF
+ vim.opt.list = true
+ vim.opt.listchars:append "space:⋅"
+ vim.opt.listchars:append "eol:↴"
+
+ require("indent_blankline").setup {
+ space_char_blankline = " ",
+ show_current_context = true,
+ show_current_context_start = true,
+ char_highlight_list = {
+ "IndentBlanklineIndent1",
+ "IndentBlanklineIndent2",
+ "IndentBlanklineIndent3",
+ "IndentBlanklineIndent4",
+ "IndentBlanklineIndent5",
+ "IndentBlanklineIndent6",
+ },
+ }
+
require('neorg').setup {
load = {
["core.defaults"] = {}
@@ -209,6 +275,23 @@
enable = true,
extended_mode = true,
max_file_lines = nil,
+ colors = {
+ "#e06c75",
+ "#e5c07b",
+ "#98c379",
+ "#56b6c2",
+ "#61afef",
+ "#c678dd",
+
+ },
+ termcolors = {
+ "168",
+ "180",
+ "114",
+ "73",
+ "75",
+ "176",
+ },
},
incremental_selection = {
enable = true,
@@ -231,8 +314,7 @@
set foldexpr=nvim_treesitter#foldexpr()
set viewoptions-=options
- autocmd BufWinLeave ?* mkview!
- autocmd BufWinEnter ?* normal zR
+ autocmd BufWinLeave ?* silent! mkview!
function! s:loadViewOrUnfold()
try
@@ -244,10 +326,41 @@
autocmd BufWinEnter ?* call s:loadViewOrUnfold()
-
let g:airline_highlighting_cache = 1
let g:airline_theme = "onehalf"
autocmd VimEnter * call vista#RunForNearestMethodOrFunction()
+
+ let g:list_of_disabled_keys = ["<UP>", "<DOWN>", "<LEFT>", "<RIGHT>"]
+
+ let g:hardtime_default_on = 1
+ let g:hardtime_allow_different_key = 1
+ let g:hardtime_motion_with_count_resets = 1
+
+ let g:himalaya_mailbox_picker = 'telescope'
+
+ nnoremap <leader>tf <cmd>Telescope find_files<cr>
+ nnoremap <leader>tc <cmd>Telescope coc<cr>
+ nnoremap <leader>ts <cmd>Telescope ultisnips<cr>
+ nnoremap <leader>tg <cmd>Telescope live_grep<cr>
+ nnoremap <leader>tb <cmd>Telescope buffers<cr>
+ nnoremap <leader>th <cmd>Telescope help_tags<cr>
+
+ lua << EOF
+ require("telescope").setup({
+
+ });
+
+ require("telescope").load_extension("coc");
+ require("telescope").load_extension("ui-select");
+ require("telescope").load_extension("ultisnips");
+ require("telescope").load_extension("zoxide");
+ require("telescope").load_extension("fzf");
+ require("telescope").load_extension("file_browser");
+ EOF
+
+ lua << EOF
+ require("colorizer").setup();
+ EOF
'';
plugins = with pkgs.vimPlugins; [
@@ -257,7 +370,7 @@
coc-tsserver
coc-eslint
coc-rust-analyzer
- coc-spell-checker
+ # pkgs-minion.coc-spell-checker
coc-json
coc-jest
coc-css
@@ -279,16 +392,41 @@
airline
vista-vim
vim-gitgutter
- ctrlp-vim
vim-airline-clock
lazygit-nvim
+ FixCursorHold-nvim
+ indent-blankline-nvim
+ vim-hardtime
+ vim-commentary
+ coc-snippets
+ ultisnips
+ vim-surround
+ himalaya-vim
+ telescope-ui-select-nvim
+ telescope-ultisnips-nvim
+ telescope-symbols-nvim
+ telescope-zoxide
+ telescope-fzf-native-nvim
+ telescope-coc-nvim
+ telescope-file-browser-nvim
+ telescope-nvim
+ nvim-colorizer-lua
+ (pkgs.vimUtils.buildVimPlugin {
+ name = "vim-ctrlspace";
+ src = vim-ctrlspace;
+ })
(nvim-treesitter.withPlugins (plugins: pkgs.tree-sitter.allGrammars))
];
+
+ extraPackages = with pkgs; [
+ rust-analyzer
+ ];
};
home.packages = with pkgs; [
universal-ctags
nodePackages.cspell
+ fd
];
home.sessionVariables.EDITOR = "${pkgs.neovim}/bin/nvim";
diff --git a/src/apps/personal/waybar.nix b/src/apps/personal/waybar.nix
index c67beea..db1d7f2 100644
--- a/src/apps/personal/waybar.nix
+++ b/src/apps/personal/waybar.nix
@@ -22,9 +22,9 @@
tooltip = false;
format = "{icon}";
format-icons = {
- notification = "<span foreground='red'><sup></sup></span>";
+ notification = "<span foreground='red'><sup>*</sup></span>";
none = "";
- dnd-notification = "<span foreground='red'><sup></sup></span>";
+ dnd-notification = "<span foreground='red'><sup>*</sup></span>";
dnd-none = "";
};
"return-type" = "json";
diff --git a/src/apps/personal/zsh.nix b/src/apps/personal/zsh.nix
index ad970ab..ef2eaaa 100644
--- a/src/apps/personal/zsh.nix
+++ b/src/apps/personal/zsh.nix
@@ -14,40 +14,74 @@
extended = true;
};
initExtra = ''
- bindkey -v
- bindkey "\'\'$\{key[Up]}" up-line-or-search
+ bindkey -v
+ bindkey "\'\'$\{key[Up]}" up-line-or-search
- command_not_found_handler ()
- {
- local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
- if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
- "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
- if [ $? = 126 ]; then
- "$@";
- else
- return 127;
- fi;
- else
- echo "$1: command not found" 1>&2;
- return 127;
- fi
- }
+ command_not_found_handler ()
+ {
+ local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
+ if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
+ "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
+ if [ $? = 126 ]; then
+ "$@";
+ else
+ return 127;
+ fi;
+ else
+ echo "$1: command not found" 1>&2;
+ return 127;
+ fi
+ }
- ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
- ZSH_HIGHLIGHT_STYLES[comment]='fg=248';
+ ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
+ ZSH_HIGHLIGHT_STYLES[comment]='fg=248';
- if [[ $SHLVL != "1" ]]; then
- export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%}'
- fi
- function TRAPINT {
- print -n "$fg_bold[red]^C$fg_no_bold[default]"
- return $(( 128 + $1 ))
- }
+ function task_indicator {
+ if [ `task +READY +OVERDUE count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[magenta]%%}$(task +READY +OVERDUE count) OVERDUE%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ elif [ `task +READY +DUETODAY count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[red]%%}$(task +READY +DUETODAY count) DUE TODAY%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ elif [ `task +READY +DUETomorrow count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[yellow]%%}$(task +READY +DUETomorrow count) DUE TOMORROW%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ elif [ `task +READY urgency \> 10 count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[red]%%}$(task +READY urgency \\\> 10 count) URGENT%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ elif [ `task +READY count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[cyan]%%}$(task +READY count) TASKS%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ else
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[green]%%}NO TASKS%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ fi
+ }
- function tempd {
- cd "$(mktemp -d)"
- }
+ if [[ $SHLVL != "1" ]]; then
+ export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%} '
+ fi
+
+ RPS1+='$(task_indicator)'
+
+ function TRAPINT {
+ print -n "$fg_bold[red]^C$fg_no_bold[default]"
+ return $(( 128 + $1 ))
+ }
+
+ # function zle-line-init {
+ # if [[ -n $ZLE_LINE_ABORTED ]]; then
+ # MY_LINE_ABORTED="$ZLE_LINE_ABORTED"
+ # fi
+
+ # if [[ -n $MY_LINE_ABORTED ]]; then
+ # local savebuf="$BUFFER" savecur="$CURSOR"
+ # BUFFER="$MY_LINE_ABORTED"
+ # CURSOR="$#BUFFER"
+ # zle split-undo
+ # BUFFER="$savebuf" CURSOR="$savecur"
+ # fi
+ # }
+ # zle -N zle-line-init
+
+ function tempd {
+ cd "$(mktemp -d)"
+ }
# disable sort when completing `git checkout`
zstyle ':completion:*:git-checkout:*' sort false
@@ -63,14 +97,18 @@
alias compinit="true"
source ${./zsh/completions}/*
- '';
- enableSyntaxHighlighting = true;
- enableAutosuggestions = true;
- autocd = true;
- dotDir = ".local/share/zsh";
- };
+ '';
+ enableSyntaxHighlighting = true;
+ enableAutosuggestions = true;
+ autocd = true;
+ dotDir = ".local/share/zsh";
+ };
- home.packages = [
- pkgs.fzf
- ];
-}
+ home.packages = [
+ pkgs.fzf
+ ];
+
+ home.shellAliases = {
+ ":q" = "exit";
+ };
+ }
diff --git a/src/apps/system/grocy.nix b/src/apps/system/grocy.nix
index 44c92a2..e705967 100644
--- a/src/apps/system/grocy.nix
+++ b/src/apps/system/grocy.nix
@@ -17,4 +17,7 @@
};
networking.firewall.allowedTCPPorts = [ 80 ];
+ networking.hosts = {
+ "127.0.0.1" = [ "grocy.services.local" ];
+ };
}