nix-config

My personal nixos and home-manager configuration
Log | Files | Refs | README

commit 8fe3fe26fe7f20572b61a37dae1c774116a8ec5e
parent 2645dfced03467e32b440888abef9c28150a4c66
Author: benjamin paul <bpaul@bpaul.xyz>
Date:   Sun, 20 Jun 2021 16:50:37 +1000

i did some stuff oh wait i forgot to do profiles ill do that later

Diffstat:
Mflake.lock | 1069++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Mflake.nix | 17+++++++++++++----
Mhome/home.nix | 18++++++++++++++++--
Mhome/modules/default.nix | 15+++++----------
Ahome/modules/dunst.nix | 19+++++++++++++++++++
Ahome/modules/latex.nix | 17+++++++++++++++++
Ahome/modules/neovim/compe.lua | 11+++++++++++
Mhome/modules/neovim/default.nix | 32+++++++++++++++++++++++++++-----
Mhome/modules/neovim/init.lua | 67++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Ahome/modules/neovim/syntax.vim | 21+++++++++++++++++++++
Mhome/modules/neovim/tex.lua | 11+++++++++++
Ahome/modules/xbindkeys.nix | 62++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mhome/modules/zsh.nix | 29++++++++++++++++-------------
Ahome/profiles/laptop.nix | 45+++++++++++++++++++++++++++++++++++++++++++++
Ahome/scripts/hello | 2++
Alib/default.nix | 16++++++++++++++++
Alib/dirs.nix | 16++++++++++++++++
Alib/scripts.nix | 11+++++++++++
Mnixos/laptop/configuration.nix | 1+
19 files changed, 1431 insertions(+), 48 deletions(-)

diff --git a/flake.lock b/flake.lock @@ -1,12 +1,44 @@ { "nodes": { + "LuaSnip": { + "flake": false, + "locked": { + "lastModified": 1624036110, + "narHash": "sha256-LeM5FguQHglggAm7BNcxD8mRYBR+H8p7+/muF9VGFBc=", + "owner": "L3MON4D3", + "repo": "LuaSnip", + "rev": "6aed450e36b4f7d818097d048706ecd35cfa8ed3", + "type": "github" + }, + "original": { + "owner": "L3MON4D3", + "repo": "LuaSnip", + "type": "github" + } + }, + "barbar-nvim": { + "flake": false, + "locked": { + "lastModified": 1623539462, + "narHash": "sha256-KRt/gKibN9w0UcJqmTu2fZRJprBJlGMUugq2ZYEkDH8=", + "owner": "romgrk", + "repo": "barbar.nvim", + "rev": "33639e53d0bf69444275ed048c5bfd7e29396634", + "type": "github" + }, + "original": { + "owner": "romgrk", + "repo": "barbar.nvim", + "type": "github" + } + }, "flake-utils": { "locked": { - "lastModified": 1619345332, - "narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", "owner": "numtide", "repo": "flake-utils", - "rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", "type": "github" }, "original": { @@ -15,6 +47,119 @@ "type": "github" } }, + "focus-vim": { + "flake": false, + "locked": { + "lastModified": 1489833244, + "narHash": "sha256-Xg6Qq9QLmWDKQfY1k9cft8XXgyy9PkywoTJUYecTizc=", + "owner": "merlinrebrovic", + "repo": "focus.vim", + "rev": "7dd8f832e4e24d8b9f503af33287781fc57be404", + "type": "github" + }, + "original": { + "owner": "merlinrebrovic", + "repo": "focus.vim", + "type": "github" + } + }, + "formatter-nvim": { + "flake": false, + "locked": { + "lastModified": 1623101090, + "narHash": "sha256-1aDR1HsRHlwGWKNVg3Lecjb/IGiUMpRW7JN9jk9jFJw=", + "owner": "mhartington", + "repo": "formatter.nvim", + "rev": "fc5757d6c9099125edba64b86cb5c9afac9b833b", + "type": "github" + }, + "original": { + "owner": "mhartington", + "repo": "formatter.nvim", + "type": "github" + } + }, + "fzf-lsp-nvim": { + "flake": false, + "locked": { + "lastModified": 1621935170, + "narHash": "sha256-awBSkN1jSLUWDlamVdVnYkMiaqz+3C01Zufv3BuBz2c=", + "owner": "gfanto", + "repo": "fzf-lsp.nvim", + "rev": "fdbe8e8f447870c8693d81045031fc1d5812e38e", + "type": "github" + }, + "original": { + "owner": "gfanto", + "repo": "fzf-lsp.nvim", + "type": "github" + } + }, + "galaxyline-nvim": { + "flake": false, + "locked": { + "lastModified": 1619341455, + "narHash": "sha256-q4YgDomTkVrNp/sAf61D97QYasbFG/sTwkGyhjWmII0=", + "owner": "glepnir", + "repo": "galaxyline.nvim", + "rev": "d544cb9d0b56f6ef271db3b4c3cf19ef665940d5", + "type": "github" + }, + "original": { + "owner": "glepnir", + "ref": "main", + "repo": "galaxyline.nvim", + "type": "github" + } + }, + "gitsigns-nvim": { + "flake": false, + "locked": { + "lastModified": 1624004414, + "narHash": "sha256-zpt41euLuHovuIUPPCaapZjg/O+hcVR33dJAedILbXE=", + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "rev": "0ae26de8e74e3f783595d4a04b9ea140909ebdef", + "type": "github" + }, + "original": { + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "type": "github" + } + }, + "goyo-vim": { + "flake": false, + "locked": { + "lastModified": 1598665353, + "narHash": "sha256-FRJ4E0iwE0XJncyLvYG6EQgmCWJcXLBrYYy3dD6ruCY=", + "owner": "junegunn", + "repo": "goyo.vim", + "rev": "a865dec7ca7616dbbd69315ad1417b84d0c411f8", + "type": "github" + }, + "original": { + "owner": "junegunn", + "repo": "goyo.vim", + "type": "github" + } + }, + "gruvbox": { + "flake": false, + "locked": { + "lastModified": 1621265750, + "narHash": "sha256-EP83AqHUHyD9SlAmKtET6/++RPx23s3zse68fzFp+zU=", + "owner": "gruvbox-community", + "repo": "gruvbox", + "rev": "51ae4557e8941943d70da36320cc80a521e2d99e", + "type": "github" + }, + "original": { + "owner": "gruvbox-community", + "repo": "gruvbox", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -22,11 +167,11 @@ ] }, "locked": { - "lastModified": 1620337456, - "narHash": "sha256-w4Z6NYNYI3v++Pmqs4j1pPGdWJEyjGQat5rYxkhncMI=", + "lastModified": 1623967045, + "narHash": "sha256-D8tZULncqU2Drn4vmG1vgMdhnZ5ONV5aEuHIxaA/kyE=", "owner": "nix-community", "repo": "home-manager", - "rev": "86944b0fb15f89bc1173efabbce556260a410154", + "rev": "2f6d5c90f4497dc3cfc043c0fd1b77272ebaeeaa", "type": "github" }, "original": { @@ -35,6 +180,55 @@ "type": "github" } }, + "indent-blankline-nvim": { + "flake": false, + "locked": { + "lastModified": 1623902117, + "narHash": "sha256-wN4reeKfzbD82gFFlEDIshP58FWxC+vpnZ84xbSb0Dw=", + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "rev": "1b7a974ddf95fb88c3c450888369d492bdb99a53", + "type": "github" + }, + "original": { + "owner": "lukas-reineke", + "ref": "lua", + "repo": "indent-blankline.nvim", + "type": "github" + } + }, + "lsp_signature-nvim": { + "flake": false, + "locked": { + "lastModified": 1623972953, + "narHash": "sha256-Zc/SdfznE26a+h8cYkm/cEt2bA7ogx/eKtaDD2TdeM0=", + "owner": "ray-x", + "repo": "lsp_signature.nvim", + "rev": "9945aeec348b756c6f9bd1c97a8870ece8a72b7a", + "type": "github" + }, + "original": { + "owner": "ray-x", + "repo": "lsp_signature.nvim", + "type": "github" + } + }, + "lspkind-nvim": { + "flake": false, + "locked": { + "lastModified": 1621679905, + "narHash": "sha256-B9Csb3Pih31B3C9GEOpfi7XmzUsgMCKsGXbMmaqJwbk=", + "owner": "onsails", + "repo": "lspkind-nvim", + "rev": "3469f0c9a6767625d532a74a167f5d6ba2b8c5bf", + "type": "github" + }, + "original": { + "owner": "onsails", + "repo": "lspkind-nvim", + "type": "github" + } + }, "neovim": { "inputs": { "flake-utils": [ @@ -46,11 +240,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1620378427, - "narHash": "sha256-xjXUlGsbqI2fp5ZfYNCwUBD4DZtw2zI/Bi82A4AV+hs=", + "lastModified": 1624085315, + "narHash": "sha256-bjsZh9R/edLA8Cbuoda/1IrjvI/dVlbugAxJciftAfo=", "owner": "neovim", "repo": "neovim", - "rev": "17434b88b4892218386b49b400e7eb6d265000ff", + "rev": "7da86f55a7ab08fee8479b219b2fbaf2eb424724", "type": "github" }, "original": { @@ -62,11 +256,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1620278081, - "narHash": "sha256-KcCxMcUFIqpZArUqHcLTdBXKJ1bsHnFdPALyB9auV7M=", + "lastModified": 1623862044, + "narHash": "sha256-mY7nldu9Wl/Yb0qMPihZrWw0bRWXNsk6iyYztw/6F6Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "123db833485edf8df83f95ef2888113390768686", + "rev": "0747387223edf1aa5beaedf48983471315d95e16", "type": "github" }, "original": { @@ -75,12 +269,861 @@ "type": "indirect" } }, + "nvcode-color-schemes-vim": { + "flake": false, + "locked": { + "lastModified": 1623864081, + "narHash": "sha256-eJEOpmf/A42WSl1ZHkcKLNG02iVFYC6Rmo1AzRnn8Kk=", + "owner": "ChristianChiarulli", + "repo": "nvcode-color-schemes.vim", + "rev": "2afb852177a28e579c1348033dbc043a99ca6dc7", + "type": "github" + }, + "original": { + "owner": "ChristianChiarulli", + "repo": "nvcode-color-schemes.vim", + "type": "github" + } + }, + "nvim-blame-line": { + "flake": false, + "locked": { + "lastModified": 1608949849, + "narHash": "sha256-6a8Wptz3Sp4fP/7ouS9nP8KJwWE8MngGDpUEMDprbhs=", + "owner": "tveskag", + "repo": "nvim-blame-line", + "rev": "52258a958eee02194da5a1e59db7a4d8903754be", + "type": "github" + }, + "original": { + "owner": "tveskag", + "repo": "nvim-blame-line", + "type": "github" + } + }, + "nvim-bufferline-lua": { + "flake": false, + "locked": { + "lastModified": 1623779249, + "narHash": "sha256-BD1svb0e9xvGaQL97AwjN1J0FB1VmkJLyVkyA4mF4is=", + "owner": "akinsho", + "repo": "nvim-bufferline.lua", + "rev": "2db4a3c2c42816a31db391f30a708d976a8c679c", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "nvim-bufferline.lua", + "type": "github" + } + }, + "nvim-colorizer-lua": { + "flake": false, + "locked": { + "lastModified": 1591879145, + "narHash": "sha256-6YrnItxExL2C8pNIdLd+hXCjsB2MbZANwWkah6dreD8=", + "owner": "norcalli", + "repo": "nvim-colorizer.lua", + "rev": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6", + "type": "github" + }, + "original": { + "owner": "norcalli", + "repo": "nvim-colorizer.lua", + "type": "github" + } + }, + "nvim-compe": { + "flake": false, + "locked": { + "lastModified": 1623923075, + "narHash": "sha256-FPb74JB98kD+3r/oUZxulaEhQ3Pul1zqbsCZeD3tuCE=", + "owner": "hrsh7th", + "repo": "nvim-compe", + "rev": "d0934e7b335283879fd3e4ca68adaee6a92688b0", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "nvim-compe", + "type": "github" + } + }, + "nvim-dap": { + "flake": false, + "locked": { + "lastModified": 1623780040, + "narHash": "sha256-FseSsjaZrbQNj2Qfx8eZPWgLLiZzwxz3W50K9ha98gk=", + "owner": "mfussenegger", + "repo": "nvim-dap", + "rev": "d5e57dc263ab14ec5d99049f66f5a069b63837dc", + "type": "github" + }, + "original": { + "owner": "mfussenegger", + "repo": "nvim-dap", + "type": "github" + } + }, + "nvim-dap-virtual-text": { + "flake": false, + "locked": { + "lastModified": 1623534339, + "narHash": "sha256-P1ROpJS+zDAH1jP2pFxg/z7Qv8baIootPd4WaK7sQV0=", + "owner": "theHamsta", + "repo": "nvim-dap-virtual-text", + "rev": "c07c23f52e1019b237927f9520c691e57adb9e6a", + "type": "github" + }, + "original": { + "owner": "theHamsta", + "repo": "nvim-dap-virtual-text", + "type": "github" + } + }, + "nvim-jdtls": { + "flake": false, + "locked": { + "lastModified": 1623784260, + "narHash": "sha256-y0o2O6MzdZ+buEm7cPAlKACGnijgRb7dTLF/h2+ThgM=", + "owner": "mfussenegger", + "repo": "nvim-jdtls", + "rev": "a26e1818fa62cfbcbd9728ad11bc3fc312d6e50e", + "type": "github" + }, + "original": { + "owner": "mfussenegger", + "repo": "nvim-jdtls", + "type": "github" + } + }, + "nvim-lspconfig": { + "flake": false, + "locked": { + "lastModified": 1623824159, + "narHash": "sha256-D3gMx5bwD1Kx1GJB2IXw88z76sYCNXIjf2C/wHMoUpg=", + "owner": "neovim", + "repo": "nvim-lspconfig", + "rev": "f81570d1288fd974098e0f311f728469ca919155", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "nvim-lspconfig", + "type": "github" + } + }, + "nvim-tree-lua": { + "flake": false, + "locked": { + "lastModified": 1623786580, + "narHash": "sha256-ZyozHY3Zos85XwxqSIYUFGiWc/Jn6rNC4h9nybZsHms=", + "owner": "kyazdani42", + "repo": "nvim-tree.lua", + "rev": "bfeaf4c8ef5ff24e93005da2561407a13ba69d4d", + "type": "github" + }, + "original": { + "owner": "kyazdani42", + "repo": "nvim-tree.lua", + "type": "github" + } + }, + "nvim-treesitter": { + "flake": false, + "locked": { + "lastModified": 1623938000, + "narHash": "sha256-TEjRies4cwMYqT0VVHI2LzxJ/2TgwbbNWHHs4zeauI8=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "rev": "d1f6a2a3d8372725e777e96740bfdf0cde7eb2c8", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "type": "github" + } + }, + "nvim-ts-autotag": { + "flake": false, + "locked": { + "lastModified": 1623909121, + "narHash": "sha256-ADmtOPGzGhPaiGD7DBsWdswOaHix0hmYK7CYwTqQhvg=", + "owner": "windwp", + "repo": "nvim-ts-autotag", + "rev": "b88545a3b5109e1f75e99c2868c73a8bd5688308", + "type": "github" + }, + "original": { + "owner": "windwp", + "repo": "nvim-ts-autotag", + "type": "github" + } + }, + "nvim-ts-context-commentstring": { + "flake": false, + "locked": { + "lastModified": 1623674990, + "narHash": "sha256-13HXLWP6xedz6pS1TEnNOhyzg6z2Zc/yaS9/bPjOyLI=", + "owner": "JoosepAlviste", + "repo": "nvim-ts-context-commentstring", + "rev": "203935f2a37d5762945bf86f6c0660609da2336e", + "type": "github" + }, + "original": { + "owner": "JoosepAlviste", + "repo": "nvim-ts-context-commentstring", + "type": "github" + } + }, + "nvim-ts-rainbow": { + "flake": false, + "locked": { + "lastModified": 1623945160, + "narHash": "sha256-tDM/nPS8hSkaqQVSOx33Pk2dWwQ2cTHrmQi6mF77Gh8=", + "owner": "p00f", + "repo": "nvim-ts-rainbow", + "rev": "faecf6c5b848fc2b3ee51d29b4db609abe90f239", + "type": "github" + }, + "original": { + "owner": "p00f", + "repo": "nvim-ts-rainbow", + "type": "github" + } + }, + "nvim-web-devicons": { + "flake": false, + "locked": { + "lastModified": 1621457141, + "narHash": "sha256-3LLgix89Q+U2QwVhcrCLPBP0LJ4w1vY2B5C91teVe0s=", + "owner": "kyazdani42", + "repo": "nvim-web-devicons", + "rev": "da717e19678bd6ec33008cf92da05da1b8ceb87d", + "type": "github" + }, + "original": { + "owner": "kyazdani42", + "repo": "nvim-web-devicons", + "type": "github" + } + }, + "packer-nvim": { + "flake": false, + "locked": { + "lastModified": 1623613031, + "narHash": "sha256-kETm6r5K6eu2U3bzdTPog0/kJqMK19EBnO5Ufsqlb3A=", + "owner": "wbthomason", + "repo": "packer.nvim", + "rev": "4012bd40af350a38696a6ba92a5df9bd99b48527", + "type": "github" + }, + "original": { + "owner": "wbthomason", + "repo": "packer.nvim", + "type": "github" + } + }, + "plenary-nvim": { + "flake": false, + "locked": { + "lastModified": 1623955260, + "narHash": "sha256-vX6TiFZWmSccGEaT5v31/Qw1Hm/hMFkVsiyl08OCq5s=", + "owner": "nvim-lua", + "repo": "plenary.nvim", + "rev": "baf7f0f3bf32a3c7c16fb7ff27d3c4cb54b8f59b", + "type": "github" + }, + "original": { + "owner": "nvim-lua", + "repo": "plenary.nvim", + "type": "github" + } + }, + "popup-nvim": { + "flake": false, + "locked": { + "lastModified": 1620472364, + "narHash": "sha256-D/ZMou2fa0yUVyQDfGm26urotqEgS4qahH9KJ4r52cw=", + "owner": "nvim-lua", + "repo": "popup.nvim", + "rev": "5e3bece7b4b4905f4ec89bee74c09cfd8172a16a", + "type": "github" + }, + "original": { + "owner": "nvim-lua", + "repo": "popup.nvim", + "type": "github" + } + }, "root": { "inputs": { "flake-utils": "flake-utils", "home-manager": "home-manager", "neovim": "neovim", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "vim-plugins-overlay": "vim-plugins-overlay" + } + }, + "scrollbar-nvim": { + "flake": false, + "locked": { + "lastModified": 1622784548, + "narHash": "sha256-HGr7vb5ILEcH8q1gVnocG7xqlpQ3fk26gXCyh2Ruf/M=", + "owner": "Xuyuanp", + "repo": "scrollbar.nvim", + "rev": "c338467dd6ef141fa8ce3172097a1f5be6c43779", + "type": "github" + }, + "original": { + "owner": "Xuyuanp", + "repo": "scrollbar.nvim", + "type": "github" + } + }, + "snippets-nvim": { + "flake": false, + "locked": { + "lastModified": 1599694947, + "narHash": "sha256-APFz6zknNpBDLI1nM5B4BZEm40EDvhY5nRB6W9rpurk=", + "owner": "norcalli", + "repo": "snippets.nvim", + "rev": "7b5fd8071d4fb6fa981a899aae56b55897c079fd", + "type": "github" + }, + "original": { + "owner": "norcalli", + "repo": "snippets.nvim", + "type": "github" + } + }, + "telescope-bibtex-nvim": { + "flake": false, + "locked": { + "lastModified": 1614071010, + "narHash": "sha256-tu2OdlRVtpLMs4z3CfsNDt6F/gA1sOadV6zLqoK0w3c=", + "owner": "nvim-telescope", + "repo": "telescope-bibtex.nvim", + "rev": "f1ec374c2bd6e595327dc1b9b837c571e5182ed2", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-bibtex.nvim", + "type": "github" + } + }, + "telescope-cheat-nvim": { + "flake": false, + "locked": { + "lastModified": 1614013445, + "narHash": "sha256-v9bKibji5ICs2Qp6u6eBbas6HYVdldOafEo9JCC5lzc=", + "owner": "nvim-telescope", + "repo": "telescope-cheat.nvim", + "rev": "7322a732f7e950415c06d29c550309b54f314aa0", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-cheat.nvim", + "type": "github" + } + }, + "telescope-dap-nvim": { + "flake": false, + "locked": { + "lastModified": 1616786019, + "narHash": "sha256-aGiBknPDjYL4Vlp0DKbJpsKiEaA5dzgg87FQvgThl7k=", + "owner": "nvim-telescope", + "repo": "telescope-dap.nvim", + "rev": "b4134fff5cbaf3b876e6011212ed60646e56f060", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-dap.nvim", + "type": "github" + } + }, + "telescope-frecency-nvim": { + "flake": false, + "locked": { + "lastModified": 1618658215, + "narHash": "sha256-s5OcVztZrp0JFOUR9D8eOiweUVnZWlilcHuyfqajAaU=", + "owner": "nvim-telescope", + "repo": "telescope-frecency.nvim", + "rev": "721300e3d6f4a7157a781014d3d69bb1c7b702a3", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-frecency.nvim", + "type": "github" + } + }, + "telescope-fzf-writer-nvim": { + "flake": false, + "locked": { + "lastModified": 1618585879, + "narHash": "sha256-pyir3SyJmUsYhjY7nRj67mbd0M+Z7t+TqSzE8zqOs7A=", + "owner": "nvim-telescope", + "repo": "telescope-fzf-writer.nvim", + "rev": "00a1ab1b0aeaa4ad9da238861325ea1ee6d90a44", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-fzf-writer.nvim", + "type": "github" + } + }, + "telescope-fzy-native-nvim": { + "flake": false, + "locked": { + "lastModified": 1617877633, + "narHash": "sha256-ntSc/Z2KGwAPwBSgQ2m+Q9HgpGUwGbd+4fA/dtzOXY4=", + "owner": "nvim-telescope", + "repo": "telescope-fzy-native.nvim", + "rev": "7b3d2528102f858036627a68821ccf5fc1d78ce4", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-fzy-native.nvim", + "type": "github" + } + }, + "telescope-ghq-nvim": { + "flake": false, + "locked": { + "lastModified": 1614048768, + "narHash": "sha256-AikRQarQWpRr8NS1SpDvmO073tEQbI/bshQnfzYOLdo=", + "owner": "nvim-telescope", + "repo": "telescope-ghq.nvim", + "rev": "810a80e479ecf4a7a1fc0a8a1835ad75f465667e", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-ghq.nvim", + "type": "github" + } + }, + "telescope-github-nvim": { + "flake": false, + "locked": { + "lastModified": 1622809307, + "narHash": "sha256-3lp84Q6QOwFurYmNiNcDKger78HR36UwP+yylcW96Xg=", + "owner": "nvim-telescope", + "repo": "telescope-github.nvim", + "rev": "479ca5fdc5e2bceb2549808518995a68d9e5cc94", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-github.nvim", + "type": "github" + } + }, + "telescope-media-files-nvim": { + "flake": false, + "locked": { + "lastModified": 1615476531, + "narHash": "sha256-Kg0zpRgEWiAribesj6UxMG9nDlf1d2zDFb6DJZgPHpg=", + "owner": "nvim-telescope", + "repo": "telescope-media-files.nvim", + "rev": "85f6cf21ae49cc8291a07728498a64ae67fef503", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-media-files.nvim", + "type": "github" + } + }, + "telescope-menu-nvim": { + "flake": false, + "locked": { + "lastModified": 1612494467, + "narHash": "sha256-Q8mP9LPdwd3x/62BZFX5zVvZiYkLwlhEbXcrqanX5gY=", + "owner": "nvim-telescope", + "repo": "telescope-menu.nvim", + "rev": "945f907bc77853232ed76fb5ff06af8fdcd8a2ea", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-menu.nvim", + "type": "github" + } + }, + "telescope-node-modules-nvim": { + "flake": false, + "locked": { + "lastModified": 1614049843, + "narHash": "sha256-KNq7UUnY33IGXs1R/c+V0zcxMo++yCNpQ2qXLrIywoI=", + "owner": "nvim-telescope", + "repo": "telescope-node-modules.nvim", + "rev": "bbc7c8e0eb9df0c6d40e52ccff1598f5cb8a59ba", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-node-modules.nvim", + "type": "github" + } + }, + "telescope-nvim": { + "flake": false, + "locked": { + "lastModified": 1623700246, + "narHash": "sha256-N9S+zn/Wk+rg93zmLWbAbGPmkouu9O3+BAA0hpSnT8w=", + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "rev": "6ac5ee0854fe02d651cadf2fc97a2463ff92f322", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "type": "github" + } + }, + "telescope-packer-nvim": { + "flake": false, + "locked": { + "lastModified": 1621256006, + "narHash": "sha256-GsFWx9UjnoCnoGkXUjz+NOfP8rMYtzjJH+lhd9e/Df8=", + "owner": "nvim-telescope", + "repo": "telescope-packer.nvim", + "rev": "2c9a0ff6f285526af519b3f953473eca14badafa", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-packer.nvim", + "type": "github" + } + }, + "telescope-project-nvim": { + "flake": false, + "locked": { + "lastModified": 1623780342, + "narHash": "sha256-wNoV0A0V2GSfezbLf8tJ4FIW1xxg2TbmGq+eC8Z4G54=", + "owner": "nvim-telescope", + "repo": "telescope-project.nvim", + "rev": "d5bd0f016ce081e786164dce973fe6ca7aba7c60", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-project.nvim", + "type": "github" + } + }, + "telescope-snippets-nvim": { + "flake": false, + "locked": { + "lastModified": 1614011958, + "narHash": "sha256-MRP/iqAmNkwLuxjYeghmJPYnIqSD/gDLqtSTGjVCVpw=", + "owner": "nvim-telescope", + "repo": "telescope-snippets.nvim", + "rev": "e5c34379ea667b7f8d5d8fc999b5f4fbc4a997dd", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-snippets.nvim", + "type": "github" + } + }, + "telescope-symbols-nvim": { + "flake": false, + "locked": { + "lastModified": 1623776787, + "narHash": "sha256-fE/HPCi9TzQuMPuonY32cF3C/u0GRlzRtqzaAqcSoFk=", + "owner": "nvim-telescope", + "repo": "telescope-symbols.nvim", + "rev": "e211b6aeed1f94ca660c407f3052f83ab8f4b2a9", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-symbols.nvim", + "type": "github" + } + }, + "telescope-vimspector-nvim": { + "flake": false, + "locked": { + "lastModified": 1606172131, + "narHash": "sha256-nYtVrWwjx1KyrkWFnqEc4gMcnS4YBK7upkkxBCvUUqQ=", + "owner": "nvim-telescope", + "repo": "telescope-vimspector.nvim", + "rev": "f7cc44dcb0749dc8e0ffaf4f7ff283621ed62281", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-vimspector.nvim", + "type": "github" + } + }, + "telescope-z-nvim": { + "flake": false, + "locked": { + "lastModified": 1615333025, + "narHash": "sha256-8MhDiKPAiwar12kAKmFhLRTU7Dg+3xAeiRgA5wJZwwc=", + "owner": "nvim-telescope", + "repo": "telescope-z.nvim", + "rev": "c14b6335f42bdda5100f135f18632bf6421c5f0e", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-z.nvim", + "type": "github" + } + }, + "vim-closer": { + "flake": false, + "locked": { + "lastModified": 1578015863, + "narHash": "sha256-ciTud2dZaoT8D+KTQ6ycVTQNVhSQnkhFii2V4DSXGFQ=", + "owner": "9mm", + "repo": "vim-closer", + "rev": "0cb91a7a61c16247dee1eaa4b0a7c72b985311f1", + "type": "github" + }, + "original": { + "owner": "9mm", + "repo": "vim-closer", + "type": "github" + } + }, + "vim-dadbod-ui": { + "flake": false, + "locked": { + "lastModified": 1620826349, + "narHash": "sha256-XulANLV6EC9VEb+T1fp1aMTchT9GO2o6V7onRWlEXq8=", + "owner": "kristijanhusak", + "repo": "vim-dadbod-ui", + "rev": "09fb2f51dcd022a6be20b48a730df493f4b3ca2d", + "type": "github" + }, + "original": { + "owner": "kristijanhusak", + "repo": "vim-dadbod-ui", + "type": "github" + } + }, + "vim-devicons": { + "flake": false, + "locked": { + "lastModified": 1620920880, + "narHash": "sha256-UGyjvGZE/AiojmBT6oz9uA1A/fhvNJyc4MBHTgF1104=", + "owner": "ryanoasis", + "repo": "vim-devicons", + "rev": "4c2df59e37b6680e0ec17b543b11a405dc40262c", + "type": "github" + }, + "original": { + "owner": "ryanoasis", + "repo": "vim-devicons", + "type": "github" + } + }, + "vim-import-cost": { + "flake": false, + "locked": { + "lastModified": 1594311199, + "narHash": "sha256-b6fRvruxCYyAi6vwPO95LyZdEWCsS2VuqxQOco1o6iU=", + "owner": "yardnsm", + "repo": "vim-import-cost", + "rev": "5bd9f5104ab5960c6e1a7e502c024041aab154d8", + "type": "github" + }, + "original": { + "owner": "yardnsm", + "repo": "vim-import-cost", + "type": "github" + } + }, + "vim-plugins-overlay": { + "inputs": { + "LuaSnip": "LuaSnip", + "barbar-nvim": "barbar-nvim", + "focus-vim": "focus-vim", + "formatter-nvim": "formatter-nvim", + "fzf-lsp-nvim": "fzf-lsp-nvim", + "galaxyline-nvim": "galaxyline-nvim", + "gitsigns-nvim": "gitsigns-nvim", + "goyo-vim": "goyo-vim", + "gruvbox": "gruvbox", + "indent-blankline-nvim": "indent-blankline-nvim", + "lsp_signature-nvim": "lsp_signature-nvim", + "lspkind-nvim": "lspkind-nvim", + "nixpkgs": [ + "nixpkgs" + ], + "nvcode-color-schemes-vim": "nvcode-color-schemes-vim", + "nvim-blame-line": "nvim-blame-line", + "nvim-bufferline-lua": "nvim-bufferline-lua", + "nvim-colorizer-lua": "nvim-colorizer-lua", + "nvim-compe": "nvim-compe", + "nvim-dap": "nvim-dap", + "nvim-dap-virtual-text": "nvim-dap-virtual-text", + "nvim-jdtls": "nvim-jdtls", + "nvim-lspconfig": "nvim-lspconfig", + "nvim-tree-lua": "nvim-tree-lua", + "nvim-treesitter": "nvim-treesitter", + "nvim-ts-autotag": "nvim-ts-autotag", + "nvim-ts-context-commentstring": "nvim-ts-context-commentstring", + "nvim-ts-rainbow": "nvim-ts-rainbow", + "nvim-web-devicons": "nvim-web-devicons", + "packer-nvim": "packer-nvim", + "plenary-nvim": "plenary-nvim", + "popup-nvim": "popup-nvim", + "scrollbar-nvim": "scrollbar-nvim", + "snippets-nvim": "snippets-nvim", + "telescope-bibtex-nvim": "telescope-bibtex-nvim", + "telescope-cheat-nvim": "telescope-cheat-nvim", + "telescope-dap-nvim": "telescope-dap-nvim", + "telescope-frecency-nvim": "telescope-frecency-nvim", + "telescope-fzf-writer-nvim": "telescope-fzf-writer-nvim", + "telescope-fzy-native-nvim": "telescope-fzy-native-nvim", + "telescope-ghq-nvim": "telescope-ghq-nvim", + "telescope-github-nvim": "telescope-github-nvim", + "telescope-media-files-nvim": "telescope-media-files-nvim", + "telescope-menu-nvim": "telescope-menu-nvim", + "telescope-node-modules-nvim": "telescope-node-modules-nvim", + "telescope-nvim": "telescope-nvim", + "telescope-packer-nvim": "telescope-packer-nvim", + "telescope-project-nvim": "telescope-project-nvim", + "telescope-snippets-nvim": "telescope-snippets-nvim", + "telescope-symbols-nvim": "telescope-symbols-nvim", + "telescope-vimspector-nvim": "telescope-vimspector-nvim", + "telescope-z-nvim": "telescope-z-nvim", + "vim-closer": "vim-closer", + "vim-dadbod-ui": "vim-dadbod-ui", + "vim-devicons": "vim-devicons", + "vim-import-cost": "vim-import-cost", + "vim-prisma": "vim-prisma", + "vim-repl": "vim-repl", + "vim-vsnip": "vim-vsnip", + "vim-vsnip-integ": "vim-vsnip-integ", + "vim-which-key": "vim-which-key", + "which-key-nvim": "which-key-nvim" + }, + "locked": { + "lastModified": 1624063925, + "narHash": "sha256-+wlSpnl4vaqgfmTKS1P5Vcqt01Ggti2h20EkdCV6Q4Y=", + "owner": "vi-tality", + "repo": "vim-plugins-overlay", + "rev": "ac2a4225a4f3959f1f30c0b397b7a87b807ba6b4", + "type": "github" + }, + "original": { + "owner": "vi-tality", + "repo": "vim-plugins-overlay", + "type": "github" + } + }, + "vim-prisma": { + "flake": false, + "locked": { + "lastModified": 1586020114, + "narHash": "sha256-BsV+7Vwx137fpUmTI7j7KW/xui7R2bwdBis8cOwAgl0=", + "owner": "pantharshit00", + "repo": "vim-prisma", + "rev": "e91ac5011232e1bd8ea53204db8d01203d5d0f3c", + "type": "github" + }, + "original": { + "owner": "pantharshit00", + "repo": "vim-prisma", + "type": "github" + } + }, + "vim-repl": { + "flake": false, + "locked": { + "lastModified": 1622625970, + "narHash": "sha256-8Rt0zYcr7cmgyAR+KVpWcqtw1zt9yq3JJvFeZje3dm0=", + "owner": "sillybun", + "repo": "vim-repl", + "rev": "46a295d440ea2d705f168afd194d570e76161557", + "type": "github" + }, + "original": { + "owner": "sillybun", + "repo": "vim-repl", + "type": "github" + } + }, + "vim-vsnip": { + "flake": false, + "locked": { + "lastModified": 1622557096, + "narHash": "sha256-yh9K0q0PtNfAawM9/5oBUJvVGOuBjhGXqH/ZKrb2c94=", + "owner": "hrsh7th", + "repo": "vim-vsnip", + "rev": "552403842b992efde3816a89b20055f7d66d9a0d", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "vim-vsnip", + "type": "github" + } + }, + "vim-vsnip-integ": { + "flake": false, + "locked": { + "lastModified": 1609387265, + "narHash": "sha256-w7dxQQHhOrHr28jjKo11YQdGz6qFDSve/qXeT2mNaFs=", + "owner": "hrsh7th", + "repo": "vim-vsnip-integ", + "rev": "60dfbb0dc73cfc4828e9328251a46ccbd7e9b5fe", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "vim-vsnip-integ", + "type": "github" + } + }, + "vim-which-key": { + "flake": false, + "locked": { + "lastModified": 1620138021, + "narHash": "sha256-JOx0Oa56ldYMxnV7bN15TcGROGlEZPHkMU7L+TiuxaI=", + "owner": "liuchengxu", + "repo": "vim-which-key", + "rev": "da2934fcd36350b871ed8ccd54c8eae3a0dfc8ae", + "type": "github" + }, + "original": { + "owner": "liuchengxu", + "repo": "vim-which-key", + "type": "github" + } + }, + "which-key-nvim": { + "flake": false, + "locked": { + "lastModified": 1623929737, + "narHash": "sha256-JO+rGR/B8ajSYvaVROng6ub0RVkY4wSwpCYB8BE0j7U=", + "owner": "folke", + "repo": "which-key.nvim", + "rev": "78821de0b633275d6934660e67989639bc7a784c", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "which-key.nvim", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix @@ -15,13 +15,20 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; + + vim-plugins-overlay = { + url = github:vi-tality/vim-plugins-overlay; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { self, nixpkgs, home-manager, neovim, ... }@inputs: + outputs = { self, nixpkgs, home-manager, neovim, vim-plugins-overlay, ... }@inputs: let overlays = [ neovim.overlay + vim-plugins-overlay.overlay ]; + libExtra = import ./lib; in { nixosConfigurations.laptop = nixpkgs.lib.nixosSystem { @@ -38,9 +45,11 @@ ]; }; - packages.x86_64-linux.customize = - with import nixpkgs { system = "x86_64-linux"; }; - pkgs.callPackage ./customize.nix { }; + packages.x86_64-linux = { + customize = + with import nixpkgs { system = "x86_64-linux"; }; + pkgs.callPackage ./customize.nix { }; + }; defaultApp.x86_64-linux = { type = "app"; diff --git a/home/home.nix b/home/home.nix @@ -1,6 +1,12 @@ -{ pkgs, ... }: +{ pkgs, lib, ... }: -{ +with lib; +let + libExtra = import ../lib { inherit lib; }; + scripts = libExtra.mapOnDir ./scripts (name: a: + libExtra.createScriptFile name "${toString ./scripts}/${name}" + ); +in { home.stateVersion = "20.09"; imports = [ @@ -8,11 +14,15 @@ ./themes/gruvbox ]; + home.file = scripts; + alacritty.enable = true; + dunst.enable = true; neovim.enable = true; polybar.enable = true; starship.enable = true; zathura.enable = true; + xbindkeys.enable = true; xinit = { enable = true; config = '' @@ -30,10 +40,14 @@ home.packages = [ # packages + pkgs.bc pkgs.ccls pkgs.fzf pkgs.gcc + pkgs.haskell-language-server pkgs.i3lock-color + pkgs.manpages + pkgs.texlab pkgs.tree-sitter ]; } diff --git a/home/modules/default.nix b/home/modules/default.nix @@ -1,11 +1,6 @@ -{ - imports = [ - ./alacritty.nix - ./starship.nix - ./xinit.nix - ./zathura.nix - ./zsh.nix - ./neovim - ./polybar - ]; +{ lib, ... }: +let + libExtra = import ../../lib { inherit lib; }; +in { + imports = libExtra.importDir ./.; } diff --git a/home/modules/dunst.nix b/home/modules/dunst.nix @@ -0,0 +1,19 @@ +{ config, pkgs, lib, ... }: + +with lib; + +{ + options.dunst = { + enable = mkEnableOption "dunst"; + }; + + config = mkIf config.dunst.enable { + home.packages = [ pkgs.dunst pkgs.libnotify ]; + services.dunst = { + enable = true; + settings = { + global.font = "Hack"; + }; + }; + }; +} diff --git a/home/modules/latex.nix b/home/modules/latex.nix @@ -0,0 +1,17 @@ +{ config, pkgs, lib, ... }: + +with lib; + +{ + options.latex = { + enable = mkEnableOption "Latex"; + }; + + config = mkIf config.latex.enable { + home.packages = with pkgs; [ + pgfplots + texlab + texlive.combined.scheme-full + ] + }; +} diff --git a/home/modules/neovim/compe.lua b/home/modules/neovim/compe.lua @@ -0,0 +1,11 @@ +require'compe'.setup{ + enabled = true; + autocomplete = true; + preselect = 'enable'; + source = { + buffer = true; + luasnip = true; + nvim_lsp = true; + nvim_lua = true; + }; +} diff --git a/home/modules/neovim/default.nix b/home/modules/neovim/default.nix @@ -1,7 +1,15 @@ { config, pkgs, lib, ... }: +with builtins; with lib; +let + luaConfig = file: '' + lua << EOF + ${readFile file} + EOF + ''; +in { options.neovim = { enable = mkEnableOption "Neovim"; @@ -26,20 +34,22 @@ with lib; enable = true; package = pkgs.neovim; extraConfig = '' + ${readFile ./syntax.vim} + lua << EOF - ${builtins.readFile ./init.lua} + ${readFile ./init.lua} function c() - ${builtins.readFile ./c.lua} + ${readFile ./c.lua} end function cpp() - ${builtins.readFile ./cpp.lua} + ${readFile ./cpp.lua} end function lua() - ${builtins.readFile ./lua.lua} + ${readFile ./lua.lua} end function tex() - ${builtins.readFile ./tex.lua} + ${readFile ./tex.lua} end EOF au BufEnter *.c lua c() @@ -51,9 +61,21 @@ with lib; { plugin = pkgs.vimPlugins.vim-nix; } { plugin = pkgs.vimPlugins.fzfWrapper; } { plugin = pkgs.vimPlugins.idris2-vim; } + { plugin = pkgs.vimPlugins.haskell-vim; } + { plugin = pkgs.vitalityVimPlugins.LuaSnip; } { plugin = config.neovim.colourSchemePackage; config = "colorscheme ${config.neovim.colourScheme}"; } + #{ plugin = pkgs.vimPlugins.nvim-compe; config = "lua require'compe'.setup{ enabled=true; autocomplete=true; source={ path=true; nvim_lsp=true; }; }"; } + { plugin = pkgs.vimPlugins.nvim-compe; config = luaConfig ./compe.lua; } { plugin = pkgs.vimPlugins.nvim-lspconfig; } { plugin = pkgs.vimPlugins.nvim-treesitter; config = "lua require'nvim-treesitter.configs'.setup{highlight={enable=true}}"; } + { plugin = pkgs.vimPlugins.vimwiki; } + { plugin = pkgs.vimPlugins.vimtex; } + { plugin = pkgs.vimPlugins.fugitive; } + { plugin = pkgs.vimPlugins.vim-startify; } + { plugin = pkgs.vimPlugins.vim-dispatch; } + { plugin = pkgs.vimPlugins.vim-surround; } + { plugin = pkgs.vimPlugins.vim-polyglot; } + { plugin = pkgs.vimPlugins.mattn-calendar-vim; } ]; }; }; diff --git a/home/modules/neovim/init.lua b/home/modules/neovim/init.lua @@ -66,6 +66,7 @@ vim.wo.colorcolumn = vim.wo.colorcolumn .. '+' .. 1 for i = 2,255 do vim.wo.colorcolumn = vim.wo.colorcolumn .. ',+' .. i end -- Funky commands +vim.api.nvim_command('command! W w') -- Command that opens fzf for colour schemes function colourscheme() @@ -74,7 +75,71 @@ end -- LSP -require('lspconfig').ccls.setup{} +require'lspconfig'.ccls.setup{} +require'lspconfig'.hls.setup{} +require'lspconfig'.texlab.setup{} -- Always have the sign column so that code doesnt move around on error vim.wo.signcolumn = "yes" + +-- nvim-compe + +function t(str) + return vim.api.nvim_replace_termcodes(str, true, true, true) +end + +function check_back_space() + local col = vim.fn.col('.') - 1 + if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then + return true + else + return false + end +end + +_G.tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "<C-n>" + elseif require'luasnip'.expand_or_jumpable() then + return t "<Plug>luasnip-expand-or-jump" + elseif check_back_space() then + return t "<Tab>" + else + return vim.fn['compe#complete']() + end +end +_G.s_tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "<C-p>" + elseif require'luasnip'.expand_or_jumpable() then + return t "<Plug>luasnip-expand-or-jump" + else + return t "<S-Tab>" + end +end + +vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true}) + +-- Vimwiki +vim.g.vimwiki_list = {{ + path = "~/.local/share/vimwiki/", + path_html = "~/.local/share/vimwiki-html/", + auto_toc = 1, + index = "main" +}} + +vim.g.calendar_open = 0 + +_G.open_calendar = function() + if vim.g.calendar_open == 1 then + vim.g.calendar_open = 0 + return t "<Plug>CalendarVq" + end + vim.g.calendar_open = 1 + return t "<Plug>CalendarV" +end + +vim.api.nvim_set_keymap("n", "<leader>wc", "v:lua.open_calendar()", {expr = true}) diff --git a/home/modules/neovim/syntax.vim b/home/modules/neovim/syntax.vim @@ -0,0 +1,21 @@ +" https://en.wikipedia.org/wiki/Mathematical_operators_and_symbols_in_Unicode +syntax keyword Normal alpha conceal cchar=α +syntax keyword Normal beta conceal cchar=β +syntax keyword Normal delta conceal cchar=δ +syntax keyword Normal lambda conceal cchar=λ +syntax keyword Normal mu conceal cchar=μ +syntax keyword Normal pi conceal cchar=π +syntax keyword Normal theta conceal cchar=θ + +syntax keyword Normal sum conceal cchar=∑ +syntax keyword Normal product conceal cchar=∏ + +syntax keyword Normal Int conceal cchar=ℤ +syntax keyword Normal Nat conceal cchar=ℕ + +syntax match Normal "<=" conceal cchar=≤ +syntax match Normal ">=" conceal cchar=≥ +syntax match Normal "!=" conceal cchar=≠ + +set concealcursor=nv +set conceallevel=1 diff --git a/home/modules/neovim/tex.lua b/home/modules/neovim/tex.lua @@ -14,3 +14,14 @@ vim.api.nvim_set_keymap('n', '<leader>c', '$bci{', -- Bind <leader>+d to duplicate the current line down vim.api.nvim_set_keymap('n', '<leader>d', 'yyp', { noremap = true, silent = true }) + +--vim.api.nvim_eval("TexNewMathZone('E','align',1)") +--vim.api.nvim_eval("TexNewMathZone('E','multline',1)") + +-- Vimtex stuff +vim.g.vimtex_format_enabled = 1 +vim.g.vimtex_syntax_nospell_comments = 1 + +-- Get rid of calendar bindings so that <leader>c is usable +vim.api.nvim_del_keymap("n", "<leader>cal") +vim.api.nvim_del_keymap("n", "<leader>caL") diff --git a/home/modules/xbindkeys.nix b/home/modules/xbindkeys.nix @@ -0,0 +1,62 @@ +{ config, pkgs, lib, ... }: + +with lib; + +{ + options.xbindkeys = { + enable = mkEnableOption "xbindkeys"; + }; + + config = mkIf config.xbindkeys.enable { + home.packages = [ pkgs.xbindkeys ]; + + home.file.".xbindkeysrc".text = '' + # super + shift + Return + "alacritty" + m:0x41 + c:36 + + # super + shift + l + "xbindkeys" + m:0x41 + c:46 + + # super + ; + "dmenu_run" + m:0x40 + c:47 + + # super + shift + alt + q + "bspc quit" + m:0x49 + c:29 + + # super + alt + q + "bspc wm -r" + m:0x48 + c:29 + + "bspc node -c" + m:0x40 + c:54 + + "bspc node -k" + m:0x41 + c:54 + + "lock" + m:0x40 + c:53 + + "browser" + m:0x40 + c:56 + + "scratchpad" + m:0x40 + c:31 + + "calculate" + m:0x44 + c:54 + + "amixer set Master 5%+" + XF86AudioRaiseVolume + + "amixer set Master 5%-" + XF86AudioLowerVolume + + "amixer set Master toggle" + XF86AudioMute + ''; + }; +} diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix @@ -17,11 +17,12 @@ in }; config = mkIf config.zsh.enable { + home.packages = [ pkgs.any-nix-shell ]; programs.zsh = { enable = true; history = { - path = ".cache/zsh/history"; + path = "/home/benjamin/.cache/zsh/history"; }; # bind keys properly for backword or switch to vi mode?? @@ -50,6 +51,8 @@ in initExtra = '' #. ~/.nix-profile/etc/profile.d/nix.sh + any-nix-shell zsh --info-right | source /dev/stdin + # From the fzf wiki fd() { local dir @@ -77,18 +80,18 @@ in } ''; - plugins = [ - { - name = "zsh-nix-shell"; - file = "nix-shell.plugin.zsh"; - src = pkgs.fetchFromGitHub { - owner = "chisui"; - repo = "zsh-nix-shell"; - rev = "v0.1.0"; - sha256 = "0snhch9hfy83d4amkyxx33izvkhbwmindy0zjjk28hih1a9l2jmx"; - }; - } - ]; + # plugins = [ + # { + # name = "zsh-nix-shell"; + # file = "nix-shell.plugin.zsh"; + # src = pkgs.fetchFromGitHub { + # owner = "chisui"; + # repo = "zsh-nix-shell"; + # rev = "v0.1.0"; + # sha256 = "0snhch9hfy83d4amkyxx33izvkhbwmindy0zjjk28hih1a9l2jmx"; + # }; + # } + # ]; }; }; } diff --git a/home/profiles/laptop.nix b/home/profiles/laptop.nix @@ -0,0 +1,45 @@ +{ pkgs, ... }: + +{ + home.stateVersion = "20.09"; + + imports = [ + ../modules + ../themes/gruvbox + ]; + + alacritty.enable = true; + dunst.enable = true; + neovim.enable = true; + polybar.enable = true; + starship.enable = true; + zathura.enable = true; + xbindkeys.enable = true; + xinit = { + enable = true; + config = '' + [[ -f ~/.Xresources ]] && xrdb -merge -I$HOME .Xresources + + . ~/.xprofile + + exec bspwm + ''; + }; + zsh = { + enable = true; + editor = "nvim"; + }; + + home.packages = [ + # packages + pkgs.bc + pkgs.ccls + pkgs.fzf + pkgs.gcc + pkgs.haskell-language-server + pkgs.i3lock-color + pkgs.manpages + pkgs.texlab + pkgs.tree-sitter + ]; +} diff --git a/home/scripts/hello b/home/scripts/hello @@ -0,0 +1,2 @@ +#!/bin/sh +echo hello diff --git a/lib/default.nix b/lib/default.nix @@ -0,0 +1,16 @@ +{ lib, ... }: +# Directory library functions + +with lib; + +let + dirs = import ./dirs.nix { inherit lib; }; + + files = filterAttrs (name: value: name != "default.nix") (dirs.mapOnDir ./. + # a will be "regular" on a file and "directory" on a directory + (name: a: + let path = "${toString ./.}/${name}"; in + import path { inherit lib; } + )); +in +foldAttrs (n: a: n) [] (attrValues files) diff --git a/lib/dirs.nix b/lib/dirs.nix @@ -0,0 +1,16 @@ +{ lib, ... }: + +with lib; + +rec { + /* + * Map the function fn to every file in dir + */ + mapOnDir = dir: fn: + let d = builtins.readDir dir; in + builtins.mapAttrs (fn) d; + + importDir = dir: + map (file: "${toString dir}/${file}") (filter (f: f != "default.nix") (attrValues (mapOnDir dir (name: a: + name)))); +} diff --git a/lib/scripts.nix b/lib/scripts.nix @@ -0,0 +1,11 @@ +{ lib, ... }: + +# Library functions for writing scripts + +{ + createScriptFile = name: source: { + target = ".local/scripts/${name}"; + text = builtins.readFile source; + executable = true; + }; +} diff --git a/nixos/laptop/configuration.nix b/nixos/laptop/configuration.nix @@ -21,6 +21,7 @@ # Use the GRUB 2 boot loader. boot.loader.grub.enable = true; boot.loader.grub.version = 2; + boot.loader.grub.configurationLimit = 100; # boot.loader.grub.efiSupport = true; # boot.loader.grub.efiInstallAsRemovable = true; # boot.loader.efi.efiSysMountPoint = "/boot/efi";