From 811660e30a3e287c60a4406eacbb2bc7cda8742f Mon Sep 17 00:00:00 2001
From: Matei Adriel <rafaeladriel11@gmail.com>
Date: Mon, 5 Dec 2022 01:18:31 +0100
Subject: [PATCH] Backup

---
 dotfiles/neovim/lua/my/helpers/env.lua       |  9 +++++----
 dotfiles/neovim/lua/my/paq.lua               |  2 +-
 dotfiles/neovim/lua/my/plugins/init.lua      |  7 +++++++
 dotfiles/neovim/lua/my/plugins/lspconfig.lua |  4 ++++
 dotfiles/neovim/lua/my/plugins/neovide.lua   |  9 +++++++++
 dotfiles/tmux/tmux.conf                      |  3 +++
 flake.nix                                    |  1 +
 modules/applications/misc.nix                |  5 +++--
 modules/applications/shells/aliases.nix      |  4 ++++
 modules/applications/shells/fish.nix         |  3 +++
 modules/nix.nix                              | 10 +++++++++-
 11 files changed, 49 insertions(+), 8 deletions(-)
 create mode 100644 dotfiles/neovim/lua/my/plugins/neovide.lua

diff --git a/dotfiles/neovim/lua/my/helpers/env.lua b/dotfiles/neovim/lua/my/helpers/env.lua
index fa53492..e30e6cc 100644
--- a/dotfiles/neovim/lua/my/helpers/env.lua
+++ b/dotfiles/neovim/lua/my/helpers/env.lua
@@ -2,12 +2,10 @@ local function makeEnv(cond)
   return {
     active = cond,
     unless = function(f)
-      if not cond() then f()
-      end
+      if not cond() then f() end
     end,
     when = function(f)
-      if cond() then f()
-      end
+      if cond() then f() end
     end
   }
 end
@@ -16,6 +14,9 @@ return {
   vscode = makeEnv(function()
     return vim.g.vscode ~= nil
   end),
+  neovide = makeEnv(function()
+    return vim.g.neovide ~= nil
+  end),
   firevim = makeEnv(function()
     return vim.g.started_by_firenvim ~= nil
   end)
diff --git a/dotfiles/neovim/lua/my/paq.lua b/dotfiles/neovim/lua/my/paq.lua
index 645aab2..9950dc4 100644
--- a/dotfiles/neovim/lua/my/paq.lua
+++ b/dotfiles/neovim/lua/my/paq.lua
@@ -39,7 +39,7 @@ function M.setup()
     "wakatime/vim-wakatime", -- track time usage
     "vmchale/dhall-vim", -- dhall syntax highlighting
     -- "folke/which-key.nvim", -- shows what other keys I can press to finish a command
-    "psliwka/vim-smoothie", -- smooth scrolling
+    { "psliwka/vim-smoothie", opt = true }, -- smooth scrolling
     "easymotion/vim-easymotion", -- removes the need for spamming w or e
     "tpope/vim-surround", -- work with brackets, quotes, tags, etc
     "MunifTanjim/nui.nvim", -- ui stuff required by idris2
diff --git a/dotfiles/neovim/lua/my/plugins/init.lua b/dotfiles/neovim/lua/my/plugins/init.lua
index 7ad750c..66abd22 100644
--- a/dotfiles/neovim/lua/my/plugins/init.lua
+++ b/dotfiles/neovim/lua/my/plugins/init.lua
@@ -35,6 +35,13 @@ function M.setup()
     -- require("my.plugins.notify").setup()
   end)
 
+  if env.neovide.active() then
+    require("my.plugins.neovide").setup()
+  else
+    -- Neovide already provides this functionality!
+    vim.cmd [[packadd! vim-smoothie]]
+  end
+
   if env.firevim.active() then
     require("my.plugins.firevim").setup()
   else
diff --git a/dotfiles/neovim/lua/my/plugins/lspconfig.lua b/dotfiles/neovim/lua/my/plugins/lspconfig.lua
index 4a218fe..5a7c6ce 100644
--- a/dotfiles/neovim/lua/my/plugins/lspconfig.lua
+++ b/dotfiles/neovim/lua/my/plugins/lspconfig.lua
@@ -105,6 +105,10 @@ local servers = {
 M.capabilities = require('cmp_nvim_lsp').default_capabilities()
 
 function M.setup()
+  vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover,
+                                                        { border = "single" })
+  vim.lsp.handlers["textDocument/signatureHelp"] =
+      vim.lsp.with(vim.lsp.handlers.signature_help, { border = "single" })
 
   -- Setup basic language servers
   for lsp, details in pairs(servers) do
diff --git a/dotfiles/neovim/lua/my/plugins/neovide.lua b/dotfiles/neovim/lua/my/plugins/neovide.lua
new file mode 100644
index 0000000..f605aab
--- /dev/null
+++ b/dotfiles/neovim/lua/my/plugins/neovide.lua
@@ -0,0 +1,9 @@
+local M = {}
+
+function M.setup()
+  vim.g.neovide_floating_blur_amount_x = 2.0
+  vim.g.neovide_floating_blur_amount_y = 2.0
+  -- vim.g.neovide_transparency = 0.8
+end
+
+return M
diff --git a/dotfiles/tmux/tmux.conf b/dotfiles/tmux/tmux.conf
index 2516c4b..00d25bd 100644
--- a/dotfiles/tmux/tmux.conf
+++ b/dotfiles/tmux/tmux.conf
@@ -3,6 +3,9 @@ set -g prefix C-a
 unbind C-b
 bind C-a send-prefix
 
+# Hide status bar
+set -g status off
+
 # don't rename windows automatically
 set-option -g allow-rename off
 
diff --git a/flake.nix b/flake.nix
index 86416a1..6e27af6 100644
--- a/flake.nix
+++ b/flake.nix
@@ -56,6 +56,7 @@
 
         specialArgs = {
           paths = import ./paths.nix;
+          inherit inputs;
         };
 
         modules = [
diff --git a/modules/applications/misc.nix b/modules/applications/misc.nix
index 082a192..f364181 100644
--- a/modules/applications/misc.nix
+++ b/modules/applications/misc.nix
@@ -5,14 +5,14 @@
     exa # ls replacement
     mkpasswd # hash passwords
     gnupg # forgot what this was
-    acpi # show remaining battery
+    # acpi # show remaining battery
     # typespeed # speed typing game
     # unixtools.xxd # to dump binary stuff into a text file (used it for a ctf)
     # youtube-dl # download from youtube
     neofetch # display system information
     xclip # copy paste stuff
     # feh # image viewer
-    speedtest-cli # test the internet speed and stuff
+    # speedtest-cli # test the internet speed and stuff
     # openssl
     # pkgconfig
     # ngrok
@@ -40,6 +40,7 @@
     # vim
     # emacs
     vimclip # use neovim anywhere
+    neovide # neovim ui!
 
     # chat apps
     # slack
diff --git a/modules/applications/shells/aliases.nix b/modules/applications/shells/aliases.nix
index 05a155d..a9f7b17 100644
--- a/modules/applications/shells/aliases.nix
+++ b/modules/applications/shells/aliases.nix
@@ -28,4 +28,8 @@
 
   # Render git repo using gource
   "git-render" = "gource -f -s 1 -c 4 --key";
+
+  # Neovide multigrid by default
+  neovide = "neovide --multigrid";
 }
+
diff --git a/modules/applications/shells/fish.nix b/modules/applications/shells/fish.nix
index 1de9193..24a9e90 100644
--- a/modules/applications/shells/fish.nix
+++ b/modules/applications/shells/fish.nix
@@ -13,6 +13,9 @@ in
 {
   users.defaultUserShell = pkgs.fish;
   home-manager.users.adrielus = {
+    programs.command-not-found.enable = false;
+    programs.nix-index.enable = true;
+
     # Source every file in the theme 
     xdg.configFile."fish/conf.d/plugin-${theme}.fish".text = lib.mkAfter ''
       for f in $plugin_dir/*.fish
diff --git a/modules/nix.nix b/modules/nix.nix
index a51e3a3..abe91b7 100644
--- a/modules/nix.nix
+++ b/modules/nix.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, inputs, lib, config, ... }: {
   nix = {
     gc.automatic = true;
     optimise.automatic = true;
@@ -11,6 +11,14 @@
       experimental-features = nix-command flakes
     '';
 
+    # This will add each flake input as a registry
+    # To make nix3 commands consistent with your flake
+    registry = lib.mapAttrs (_: value: { flake = value; }) inputs;
+
+    # This will additionally add your inputs to the system's legacy channels
+    # Making legacy nix commands consistent as well, awesome!
+    # nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
+
     settings = {
       trusted-users = [ "root" "adrielus" "@wheel" ];