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