diff --git a/common/home/neovim/default.nix b/common/home/neovim/default.nix
index 7bea1353..6a8fa26b 100644
--- a/common/home/neovim/default.nix
+++ b/common/home/neovim/default.nix
@@ -61,42 +61,48 @@ in {
         enable = true;
         settings = {
           # General
-          "colors.enable" = true;
-          "coc.preferences.formatOnType" = true;
-          "diagnostic.checkCurrentLine" = true;
-          "inlayHint.enable" = false;
+          colors.enable = true;
+          coc.preferences.formatOnType = true;
+          diagnostic.checkCurrentLine = true;
+          inlayHint.enable = false;
 
-          # Eslint
-          "eslint.format.enable" = true;
-          "eslint.autoFixOnSave" = true;
+          # ESLint
+          eslint = {
+            format.enable = true;
+            autoFixOnSave = true;
+          };
 
           # Stylelint
-          "stylelintplus.enable" = true;
-          "stylelintplus.cssInJs" = true;
-          "stylelintplus.autoFixOnSave" = true;
-          "stylelintplus.autoFixOnFormat" = true;
-          "css.validate" = false;
-          "less.validate" = false;
-          "scss.validate" = false;
-          "wxss.validate" = false;
+          stylelintplus = {
+            enable = true;
+            cssInJs = true;
+            autoFixOnSave = true;
+            autoFixOnFormat = true;
+          };
+          css.validate = false;
+          less.validate = false;
+          scss.validate = false;
+          wxss.validate = false;
 
-          # Lua lsp
-          "Lua.misc.parameters" = [
-            "--metapath"
-            "~/.cache/sumneko_lua/meta"
-            "--logpath"
-            "~/.cache/sumneko_lua/log"
-          ];
-          "Lua.workspace.library" = [
-            "$\{3rd\}/luv/library"
-          ];
+          # Lua
+          Lua = {
+            misc.parameters = [
+              "--metapath"
+              "~/.cache/sumneko_lua/meta"
+              "--logpath"
+              "~/.cache/sumneko_lua/log"
+            ];
+            workspace.library = [
+              "$\{3rd\}/luv/library"
+            ];
+          };
           sumneko-lua = {
             serverDir = "${pkgs.lua-language-server}/share/lua-language-server";
             enableNvimLuaDev = true;
           };
 
-          # Nix
           languageserver = {
+            # Nix
             nix = {
               command = "nil";
               filetypes = ["nix"];
@@ -109,9 +115,19 @@ in {
             };
           };
 
-          # Misc
-          "java.jdt.ls.java.home" = "${pkgs.temurin-bin-17}";
-          "bashIde.shellcheckPath" = "${pkgs.shellcheck}/bin/shellcheck";
+          # Java
+          java.jdt.ls = {
+            java.home = "${pkgs.temurin-bin-17}";
+            statusIcons = {
+              "busy" = "Busy";
+              "ready" = "OK";
+              "warning" = "Warning";
+              "error" = "Error";
+            };
+          };
+
+          # Bash
+          bashIde.shellcheckPath = "${pkgs.shellcheck}/bin/shellcheck";
         };
       };
 
diff --git a/common/home/neovim/plugins/lualine.lua b/common/home/neovim/plugins/lualine.lua
index 9fbfa9ed..d9a4ad93 100644
--- a/common/home/neovim/plugins/lualine.lua
+++ b/common/home/neovim/plugins/lualine.lua
@@ -1,6 +1,9 @@
 require('lualine').setup({
   options = {
     theme = 'dracula',
-    globalstatus = true
+    globalstatus = true,
+  },
+  sections = {
+    lualine_x = {'g:coc_status', 'bo:filetype'},
   }
 })