diff --git a/config/20-default-fonts.conf b/extra/20-default-fonts.conf similarity index 100% rename from config/20-default-fonts.conf rename to extra/20-default-fonts.conf diff --git a/flake.nix b/flake.nix index 7a92862..eaf212e 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + # nixvim = { + # url = "github:nix-community/nixvim"; + # inputs.nixpkgs.follows = "nixpkgs"; + # }; + # nur.url = "github:nix-community/NUR"; }; outputs = { self, nixpkgs, home-manager }: diff --git a/home.nix b/home.nix index 0ca4a26..b7ad09f 100644 --- a/home.nix +++ b/home.nix @@ -18,6 +18,7 @@ in # Install packages home.packages = with pkgs; + [ gcc tree-sitter ] ++ # Basic dev tools [ texliveFull ] ++ # TeX distribution (with ocamlPackages; [ ocaml opam dune_3 dune-release merlin ocaml-lsp odoc ocamlformat utop ]) ++ # OCaml [ grim slurp wl-clipboard jq (callPackage ./pkgs/xdg-terminal-exec/xdg-terminal-exec.nix {}) ] ++ # Basic utilities @@ -25,7 +26,7 @@ in [ wezterm ] ++ # Terminal emulator [ firefox cinnamon.nemo gnome.file-roller cinnamon.nemo-fileroller imv vlc pavucontrol ] ++ # Basic graphical apps [ libreoffice signal-desktop element-desktop prismlauncher mumble gimp inkscape ] ++ # Personalized selection of graphical apps - # [ factorio ] ++ # Games + [ (callPackage ./pkgs/mons/mons.nix {}) ] ++ # Games [ bemenu j4-dmenu-desktop fcitx5-with-addons ] ++ # Sway- and Wayland-related packages [ noto-fonts redhat-official-fonts overpass ibm-plex ] ++ # Fonts [ papirus-icon-theme ] ++ # Icons @@ -74,7 +75,7 @@ in # configure fonts correctly fonts.fontconfig.enable = true; - xdg.configFile."fontconfig/conf.d/20-default.fonts.conf".source = ./config/20-default-fonts.conf; + xdg.configFile."fontconfig/conf.d/20-default.fonts.conf".source = ./extra/20-default-fonts.conf; # fix nemo terminal integration dconf.settings."org/cinnamon/desktop/applications/terminal".exec = "wezterm"; diff --git a/pkgs/mons/mons.nix b/pkgs/mons/mons.nix new file mode 100644 index 0000000..a9a5272 --- /dev/null +++ b/pkgs/mons/mons.nix @@ -0,0 +1,40 @@ +{ + lib, + python311Packages, + fetchPypi, +}: +python311Packages.buildPythonPackage rec { + pname = "mons"; + version = "2.0.0"; + pyproject = true; + doCheck = false; + + src = fetchPypi { + inherit pname version; + sha256 = "E1yBTwZ4T2C3sXoLGz0kAcvas0q8tO6Aaiz3SHrT4ZE="; + }; + + nativeCheckInputs = []; + nativeBuildInputs = [python311Packages.setuptools-scm]; + + propagatedBuildInputs = with python311Packages; [ + dnfile + pefile + click + tqdm + xxhash + pyyaml + urllib3 + platformdirs + setuptools + # Only required for python 3.9 and below + # typing_extensions + # importlib-resources + ]; + + meta = { + description = "Command-Line Installer and Manager for Celeste Modding"; + homepage = "https://github.com/coloursofnoise/mons"; + license = lib.licenses.mit; + }; +} diff --git a/programs/neovim.nix b/programs/neovim.nix index b616124..59185ca 100644 --- a/programs/neovim.nix +++ b/programs/neovim.nix @@ -3,5 +3,9 @@ defaultEditor = true; viAlias = true; vimAlias = true; + withPython3 = true; + extraPython3Packages = pyPkgs: with pyPkgs; [ + virtualenv + ]; extraLuaConfig = builtins.readFile ./neovim/init.lua; } diff --git a/programs/neovim/init.lua b/programs/neovim/init.lua index 6ece94a..9dfcc6e 100644 --- a/programs/neovim/init.lua +++ b/programs/neovim/init.lua @@ -3,6 +3,8 @@ vim.opt.number = true vim.opt.syntax = 'on' vim.opt.smartcase = true +vim.opt.statusline = "%F %{wordcount().words} words" +vim.opt.wrap = false -- don't wrap text --- clipboard vim.opt.clipboard = 'unnamedplus' @@ -29,12 +31,40 @@ plugins = { "folke/neodev.nvim", { "neovim/nvim-lspconfig", - ["dependencies"] = { + ["dependencies"] = { -- Dependencies define which plugins are loaded before this one { "j-hui/fidget.nvim", ["opts"] = {} }, { "folke/neodev.nvim", ["opts"] = {} } }, ["name"] = "nvim-lspconfig" }, + { + "nvim-treesitter/nvim-treesitter", + ["config"] = function(_, _) + require("nvim-treesitter.configs").setup({ + ["auto-install"] = true, + ["highlight"] = { + ["enable"] = true, + }, + ["incremental-selection"] = { + ["enable"] = true, + }, + }) + end + }, + { + "ms-jpq/coq_nvim", + ["dependencies"] = { + "nvim-lspconfig", + { "ms-jpq/coq.artifacts" }, + { "ms-jpq/coq.thirdparty" }, + }, + ["config"] = function(_, _) + -- vim.g.coq_settings = { + -- ["xdg"] = true + -- } + -- coq.Now("--shut-up") + end + }, { 'AlexvZyl/nordic.nvim', lazy = false, @@ -44,26 +74,29 @@ plugins = { end }, "lervag/vimtex", - { - 'nvim-lualine/lualine.nvim', - dependencies = { 'nvim-tree/nvim-web-devicons' } - }, + -- { + -- 'nvim-lualine/lualine.nvim', + -- dependencies = { 'nvim-tree/nvim-web-devicons' } + -- }, } require("lazy").setup(plugins) --- Configure nvim-lspconfig to work with servers -require'lspconfig'.ocamllsp.setup{} +-- Configure nvim-lspconfig to work with servers; configure coq to work with lsps +-- TODO put this in coq config block in lazy so it doesn't load every time!!!!!!! +local lspconfig = require('lspconfig') +local coq = require('coq') +lspconfig.ocamllsp.setup(coq.lsp_ensure_capabilities({})) -- Configure vimtex vim.g.vimtex_view_method = "zathura" --- Configure lualine -require('lualine').setup { - options = { - icons_enabled = true, - theme = 'nord', - - }, -} + +-- Configure lualine +-- require('lualine').setup { +-- options = { +-- icons_enabled = true, +-- theme = 'nord', +-- }, +-- } diff --git a/todo b/todo index 0e51f88..4a6c591 100644 --- a/todo +++ b/todo @@ -5,3 +5,5 @@ i3status bar bluetooth setup media player daemon dmenu files +background (used feh on i3) +