diff --git a/config/nix/common/home.nix b/config/nix/common/home.nix index afbbe7d4..33f403cc 100644 --- a/config/nix/common/home.nix +++ b/config/nix/common/home.nix @@ -3,14 +3,13 @@ let start-tmux = (import ../scripts/start-tmux.nix) pkgs; # https://mipmip.github.io/home-manager-option-search/ lazy = false; -in -{ +in { imports = [ # Include the results of the hardware scan. ./tmux.nix ./wezterm.nix ] ++ (if device.isLinux then [ ../linux ] else [ ]) - ++ (if !lazy then [ ./nvim ] else [ ]); + ++ (if !lazy then [ ./nvim ] else [ ]); home.packages = with pkgs; [ @@ -113,6 +112,10 @@ in ls = "exa"; t = "${start-tmux}"; }; + shellAliases = { + g = "git"; + + }; shellInit = '' set fish_greeting ''; @@ -141,19 +144,17 @@ in enable = true; enableFishIntegration = true; enableNushellIntegration = true; - settings = - let flavour = "mocha"; # Replace with your preferred palette - in { - # Other config here - format = "$all"; # Remove this line to disable the default prompt format - palette = "catppuccin_${flavour}"; - } // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "starship"; - rev = "main"; # Replace with the latest commit hash - sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0"; - } + /palettes/${flavour}.toml)); + settings = let flavour = "mocha"; # Replace with your preferred palette + in { + # Other config here + format = "$all"; # Remove this line to disable the default prompt format + palette = "catppuccin_${flavour}"; + } // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "starship"; + rev = "main"; # Replace with the latest commit hash + sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0"; + } + /palettes/${flavour}.toml)); }; eza = { enable = true; @@ -181,17 +182,16 @@ in enable = true; config = { theme = "catppuccin"; }; themes = { - catppuccin = - let flavor = "mocha"; - in { - src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "bat"; - rev = "main"; - sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw"; - }; - file = "Catppuccin-${flavor}.tmTheme"; + catppuccin = let flavor = "mocha"; + in { + src = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "bat"; + rev = "main"; + sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw"; }; + file = "Catppuccin-${flavor}.tmTheme"; + }; }; }; @@ -204,11 +204,10 @@ in # Home Manager needs a bit of information about you and the paths it should # manage. username = device.user; - homeDirectory = - if device.isMac then - lib.mkForce "/Users/${device.user}" - else - lib.mkForce "/home/${device.user}"; + homeDirectory = if device.isMac then + lib.mkForce "/Users/${device.user}" + else + lib.mkForce "/home/${device.user}"; stateVersion = "23.11"; diff --git a/config/nix/common/nvim/default.nix b/config/nix/common/nvim/default.nix index d760b319..bf946df2 100644 --- a/config/nix/common/nvim/default.nix +++ b/config/nix/common/nvim/default.nix @@ -69,6 +69,8 @@ commentary.enable = true; surround.enable = true; which-key.enable = true; + ufo.enable = true; + fugitive.enable = true; treesitter = { enable = true; @@ -80,6 +82,7 @@ ai.enable = true; pairs.enable = true; cursorword.enable = true; + starter.enable = true; }; }; @@ -95,6 +98,8 @@ "gg" = "require'telescope.builtin'.live_grep"; ";" = "require'telescope.builtin'.buffers"; "o" = "[[TroubleToggle]]"; + "ee" = "[[RestNvim]]"; + "ec" = "[[RestNvimPreview]]"; "\\\"" = ''[["+]]''; "" = "''"; "vff" = "'vertical Gdiffsplit'"; @@ -109,37 +114,41 @@ }; }; - extraPlugins = - [ - pkgs.vimPlugins.comfortable-motion - pkgs.vimPlugins.vim-abolish - pkgs.vimPlugins.telescope-nvim - pkgs.vimPlugins.telescope-ui-select-nvim - pkgs.vimPlugins.telescope-fzf-native-nvim - pkgs.vimPlugins.telescope-file-browser-nvim - pkgs.vimPlugins.telescope-dap-nvim - pkgs.vimPlugins.rustaceanvim + extraPlugins = with pkgs.vimPlugins; [ + comfortable-motion + vim-abolish + telescope-nvim + telescope-ui-select-nvim + telescope-fzf-native-nvim + telescope-file-browser-nvim + telescope-dap-nvim + rustaceanvim - # lsp stuff - pkgs.vimPlugins.nvim-cmp - pkgs.vimPlugins.cmp-buffer - pkgs.vimPlugins.cmp-path - pkgs.vimPlugins.cmp-cmdline - pkgs.vimPlugins.cmp-nvim-lsp - pkgs.vimPlugins.cmp-nvim-lua - pkgs.vimPlugins.cmp_luasnip - pkgs.vimPlugins.luasnip - pkgs.vimPlugins.fidget-nvim - pkgs.vimPlugins.copilot-lua - pkgs.vimPlugins.lsp-zero-nvim - pkgs.vimPlugins.trouble-nvim - pkgs.vimPlugins.nvim-web-devicons + # lsp stuff + nvim-cmp + cmp-buffer + cmp-path + cmp-cmdline + cmp-nvim-lsp + cmp-nvim-lua + cmp_luasnip + cmp-tmux + cmp-treesitter + luasnip + fidget-nvim + copilot-lua + lsp-zero-nvim + trouble-nvim + crates-nvim - pkgs.vimPlugins.rest-nvim + # No more postman + rest-nvim - pkgs.vimPlugins.noice-nvim + # UI + noice-nvim + nvim-web-devicons - ]; + ]; extraConfigLua = builtins.readFile ./extraConfig.lua; package = pkgs.neovim-nightly; }; diff --git a/config/nix/common/nvim/extraConfig.lua b/config/nix/common/nvim/extraConfig.lua index 4c28a4ce..9c5e8284 100644 --- a/config/nix/common/nvim/extraConfig.lua +++ b/config/nix/common/nvim/extraConfig.lua @@ -71,8 +71,10 @@ cmp.setup({ { name = 'buffer' }, { name = 'nvim_lsp' }, { name = 'luasnip' }, + { name = 'treesitter' }, { name = 'path' }, { name = 'git' }, + { name = 'tmux' } }), mapping = cmp.mapping.preset.insert({ [''] = cmp.mapping.confirm(), @@ -111,6 +113,7 @@ cmp.setup.filetype('gitcommit', { { name = 'buffer' }, }) }) +require('crates').setup() require("noice").setup({ lsp = { @@ -123,10 +126,10 @@ require("noice").setup({ }, -- you can enable a preset for easier configuration presets = { - bottom_search = true, -- use a classic bottom cmdline for search - command_palette = true, -- position the cmdline and popupmenu together + bottom_search = true, -- use a classic bottom cmdline for search + command_palette = true, -- position the cmdline and popupmenu together long_message_to_split = true, -- long messages will be sent to a split - inc_rename = false, -- enables an input dialog for inc-rename.nvim - lsp_doc_border = false, -- add a border to hover docs and signature help + inc_rename = false, -- enables an input dialog for inc-rename.nvim + lsp_doc_border = true, -- add a border to hover docs and signature help }, }) diff --git a/config/nix/common/tmux.nix b/config/nix/common/tmux.nix index 69e46c7f..70890e08 100644 --- a/config/nix/common/tmux.nix +++ b/config/nix/common/tmux.nix @@ -1,15 +1,5 @@ { pkgs, ... }: let - tmux-super-fingers = pkgs.tmuxPlugins.mkTmuxPlugin { - pluginName = "tmux-super-fingers"; - version = "v1-2024-02-14"; - src = pkgs.fetchFromGitHub { - owner = "artemave"; - repo = "tmux_super_fingers"; - rev = "518044ef78efa1cf3c64f2e693fef569ae570ddd"; - sha256 = "sha256-iKfx9Ytk2vSuINvQTB6Kww8Vv7i51cFEnEBHLje+IJw="; - }; - }; scratchpad = pkgs.writeShellScript "scratchpad" '' width=''${2:-95%} height=''${2:-95%} @@ -19,8 +9,7 @@ let tmux popup -d '#{pane_current_path}' -xC -yC -w$width -h$height -E "tmux attach -t scratch || tmux new -s scratch" fi ''; -in -{ +in { programs.tmux = { enable = true; shell = "${pkgs.nushellFull}/bin/nu"; @@ -30,8 +19,9 @@ in keyMode = "vi"; plugins = with pkgs; [ tmuxPlugins.better-mouse-mode + tmuxPlugins.tmux-fzf { - plugin = tmux-super-fingers; + plugin = tmuxPlugins.tmux-super-fingers; extraConfig = "set -g @super-fingers-key o"; } { diff --git a/config/nix/darwin/device.nix b/config/nix/darwin/device.nix index 04835f83..5d8575e6 100644 --- a/config/nix/darwin/device.nix +++ b/config/nix/darwin/device.nix @@ -1,29 +1,27 @@ { devices, inputs, overlays, home-manager, nix-darwin, ... }: -builtins.listToAttrs (builtins.map - (device: { - name = device.name; - value = nix-darwin.lib.darwinSystem { - system = device.system; - modules = [ - { - nixpkgs.overlays = overlays; - # nixpkgs.hostPlatform.config = device.system; - } - ./configuration.nix - home-manager.darwinModules.home-manager - { - nixpkgs.config.allowUnfree = true; - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { - inherit inputs; - inherit device; - }; - users.${device.user}.imports = [ ../common/home.nix ]; +builtins.listToAttrs (builtins.map (device: { + name = device.name; + value = nix-darwin.lib.darwinSystem { + system = device.system; + modules = [ + { + nixpkgs.overlays = overlays; + # nixpkgs.hostPlatform.config = device.system; + } + ./configuration.nix + home-manager.darwinModules.home-manager + { + nixpkgs.config.allowUnfree = true; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + inherit device; }; - } - ]; - }; - }) - devices) + users.${device.user}.imports = [ ../common/home.nix ]; + }; + } + ]; + }; +}) devices) diff --git a/config/nix/flake.nix b/config/nix/flake.nix index 4a7f0dae..e8a34f31 100644 --- a/config/nix/flake.nix +++ b/config/nix/flake.nix @@ -78,16 +78,8 @@ }; - outputs = - { nixpkgs - , home-manager - , nix-darwin - , flake-utils - , anyrun - , nur - , neovim-nightly-overlay - , ... - }@inputs: + outputs = { nixpkgs, home-manager, nix-darwin, flake-utils, anyrun, nur + , neovim-nightly-overlay, ... }@inputs: let config_devices = [ { @@ -144,48 +136,58 @@ }; vimPlugins = final: prev: { - vimPlugins = - prev.vimPlugins - // - { - comfortable-motion = final.pkgs.vimUtils.buildVimPlugin { - name = "comfortable-motion"; - src = final.pkgs.fetchFromGitHub { - owner = "yuttie"; - repo = "comfortable-motion.vim"; - rev = "master"; - sha256 = "sha256-S1LJXmShhpCJIg/FEPx3jFbmPpS/1U4MAQN2RY/nkI0"; - }; + vimPlugins = prev.vimPlugins // { + comfortable-motion = final.pkgs.vimUtils.buildVimPlugin { + name = "comfortable-motion"; + src = final.pkgs.fetchFromGitHub { + owner = "yuttie"; + repo = "comfortable-motion.vim"; + rev = "master"; + sha256 = "sha256-S1LJXmShhpCJIg/FEPx3jFbmPpS/1U4MAQN2RY/nkI0"; }; }; + }; + }; + + tmuxPlugins = final: prev: { + tmuxPlugins = prev.tmuxPlugins // { + + tmux-super-fingers = final.pkgs.tmuxPlugins.mkTmuxPlugin { + pluginName = "tmux-super-fingers"; + version = "v1-2024-02-14"; + src = final.pkgs.fetchFromGitHub { + owner = "artemave"; + repo = "tmux_super_fingers"; + rev = "518044ef78efa1cf3c64f2e693fef569ae570ddd"; + sha256 = "sha256-iKfx9Ytk2vSuINvQTB6Kww8Vv7i51cFEnEBHLje+IJw="; + }; + }; + }; }; overlays = [ + vimPlugins + tmuxPlugins inputs.neovim-nightly-overlay.overlay anyrun-overlay - vimPlugins inputs.nixneovim.overlays.default inputs.nixneovimplugins.overlays.default nur.overlay ]; - in - { - nixosConfigurations = - let devices = nixos_devices; - in import ./nixos/device.nix { - inherit devices inputs nixpkgs home-manager overlays nur; - }; + in { + nixosConfigurations = let devices = nixos_devices; + in import ./nixos/device.nix { + inherit devices inputs nixpkgs home-manager overlays nur; + }; - darwinConfigurations = - let devices = darwin_devices; - in import ./darwin/device.nix { - inherit devices inputs nixpkgs home-manager overlays nix-darwin; - }; + darwinConfigurations = let devices = darwin_devices; + in import ./darwin/device.nix { + inherit devices inputs nixpkgs home-manager overlays nix-darwin; + }; - homeConfigurations = - let devices = linux_devices; - in import ./linux/device.nix { - inherit devices inputs nixpkgs home-manager overlays; - }; + homeConfigurations = let devices = linux_devices; + in import ./linux/device.nix { + inherit devices inputs nixpkgs home-manager overlays; + }; }; } diff --git a/config/nix/nixos/configuration.nix b/config/nix/nixos/configuration.nix index 864cb7b4..1947040c 100644 --- a/config/nix/nixos/configuration.nix +++ b/config/nix/nixos/configuration.nix @@ -98,8 +98,7 @@ fish nushellFull (pkgs.wrapFirefox - (pkgs.firefox-unwrapped.override { pipewireSupport = true; }) - { }) + (pkgs.firefox-unwrapped.override { pipewireSupport = true; }) { }) gnumake python3 (nerdfonts.override { fonts = [ "FiraCode" "Hasklig" ]; }) diff --git a/mozilla/firefox-csshacks b/mozilla/firefox-csshacks deleted file mode 160000 index 1ff93839..00000000 --- a/mozilla/firefox-csshacks +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1ff9383984632fe91b8466730679e019de13c745 diff --git a/mozilla/userChrome.css b/mozilla/userChrome.css deleted file mode 100644 index 5cc2f8c3..00000000 --- a/mozilla/userChrome.css +++ /dev/null @@ -1,2 +0,0 @@ -@import url(firefox-csshacks/chrome/tabs_on_bottom.css); -@import url(firefox-csshacks/chrome/toolbars_below_content.css);