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" ];
+  };
 }
