This commit is contained in:
Jana Dönszelmann 2025-05-28 11:27:06 +02:00
parent f289c537d8
commit ddb92ea0c5
No known key found for this signature in database
12 changed files with 918 additions and 643 deletions

511
flake.lock generated
View file

@ -3,20 +3,20 @@
"agenix": { "agenix": {
"inputs": { "inputs": {
"darwin": "darwin", "darwin": "darwin",
"home-manager": "home-manager_4", "home-manager": "home-manager_3",
"nixpkgs": [ "nixpkgs": [
"p1n3appl3", "p1n3appl3",
"ragenix", "ragenix",
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_7" "systems": "systems_9"
}, },
"locked": { "locked": {
"lastModified": 1723293904, "lastModified": 1736955230,
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -67,11 +67,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737579274, "lastModified": 1748080874,
"narHash": "sha256-8kBIYfn8TI9jbffhDNS12SdbQHb9ITXflwcgIJBeGqw=", "narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "06f0ea19334bcc8112e6d671fd53e61f9e3ad63a", "rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -80,13 +80,28 @@
"type": "github" "type": "github"
} }
}, },
"cl-nix-lite": {
"locked": {
"lastModified": 1728174978,
"narHash": "sha256-Grqqg+xuicANB85j0gNEXxi9SBKY7bzGeTuyi95eGcY=",
"owner": "hraban",
"repo": "cl-nix-lite",
"rev": "31cfe6275c341eb3120a99f4b1c8516c49a29d87",
"type": "github"
},
"original": {
"owner": "hraban",
"repo": "cl-nix-lite",
"type": "github"
}
},
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1725409566, "lastModified": 1741481578,
"narHash": "sha256-PrtLmqhM6UtJP7v7IGyzjBFhbG4eOAHT6LPYOFmYfbk=", "narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "7e4586bad4e3f8f97a9271def747cf58c4b68f3c", "rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -163,27 +178,6 @@
"type": "github" "type": "github"
} }
}, },
"devshell": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1735644329,
"narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
"owner": "numtide",
"repo": "devshell",
"rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"dumpasm": { "dumpasm": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
@ -204,17 +198,20 @@
} }
}, },
"flake-compat": { "flake-compat": {
"flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1730663653,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-kFCUWettiFHDIqxCWWQ9qY8pVh+Lj+XL0Giyy/kdomg=",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "owner": "hraban",
"revCount": 69, "repo": "flake-compat",
"type": "tarball", "rev": "e5b16676185cb7548581c852f51ce7f3a49bba5e",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" "type": "github"
}, },
"original": { "original": {
"type": "tarball", "owner": "hraban",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" "ref": "fixed-output",
"repo": "flake-compat",
"type": "github"
} }
}, },
"flake-parts": { "flake-parts": {
@ -225,11 +222,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738453229, "lastModified": 1743550720,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -293,6 +290,21 @@
} }
}, },
"flake-utils_4": { "flake-utils_4": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_5": {
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_4"
}, },
@ -310,9 +322,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_5": { "flake-utils_6": {
"inputs": { "inputs": {
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -328,27 +340,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_6": {
"inputs": {
"systems": "systems_8"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_7": { "flake-utils_7": {
"inputs": { "inputs": {
"systems": "systems_9" "systems": "systems_10"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1710146030,
@ -364,51 +358,21 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": { "flake-utils_8": {
"inputs": { "inputs": {
"flake-compat": [ "systems": "systems_11"
"nixvim",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1737465171, "lastModified": 1710146030,
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "cachix", "owner": "numtide",
"repo": "git-hooks.nix", "repo": "flake-utils",
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "numtide",
"repo": "git-hooks.nix", "repo": "flake-utils",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github" "type": "github"
} }
}, },
@ -419,16 +383,15 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1736373539, "lastModified": 1749526396,
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", "narHash": "sha256-UL9F76abAk87llXOrcQRjhd5OaOclUd6MIltsqcUZmo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56", "rev": "427c96044f11a5da50faf6adaf38c9fa47e6d044",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@ -436,16 +399,16 @@
"home-manager_2": { "home-manager_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixvim", "p1n3appl3",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1738878603, "lastModified": 1748830238,
"narHash": "sha256-fmhq8B3MvQLawLbMO+LWLcdC2ftLMmwSk+P29icJ3tE=", "narHash": "sha256-EB+LzYHK0D5aqxZiYoPeoZoOzSAs8eqBDxm3R+6wMKU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "433799271274c9f2ab520a49527ebfe2992dcfbd", "rev": "c7fdb7e90bff1a51b79c1eed458fb39e6649a82a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -455,27 +418,6 @@
} }
}, },
"home-manager_3": { "home-manager_3": {
"inputs": {
"nixpkgs": [
"p1n3appl3",
"nixpkgs"
]
},
"locked": {
"lastModified": 1738789832,
"narHash": "sha256-HdlMPfObPu5y7oDfH/w3vvlU3UTQ/bQjSULChZARm5M=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "30ea6fed4e4b41693cebc2263373dd810de4de49",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_4": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"p1n3appl3", "p1n3appl3",
@ -498,7 +440,7 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_5": { "home-manager_4": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"rahul-config", "rahul-config",
@ -550,16 +492,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1729958008, "lastModified": 1748294338,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "ixx", "repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NuschtOS", "owner": "NuschtOS",
"ref": "v0.0.6", "ref": "v0.0.8",
"repo": "ixx", "repo": "ixx",
"type": "github" "type": "github"
} }
@ -573,11 +515,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1739043245, "lastModified": 1749530384,
"narHash": "sha256-WmlACEj2OB7XpBYEyvUZiEcSoCXLtRVqJ2UYLBtICGw=", "narHash": "sha256-8tyNH+gXWVKuKIvaPxZTB3pfBanZLvdAKr5lhrf7KY0=",
"owner": "martinvonz", "owner": "martinvonz",
"repo": "jj", "repo": "jj",
"rev": "07c63ed182bb1cbd9b52fe8e4f41638bdb5aafb6", "rev": "82705600759deb825b53e4544ed270fcba419cca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -589,11 +531,11 @@
"kitty-search": { "kitty-search": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1675366825, "lastModified": 1749065041,
"narHash": "sha256-egisza7V5dWplRYHIYt4bEQdqXa4E7UhibyWJAup8as=", "narHash": "sha256-Xy4dH2fzEQmKfqhmotVDEszuTqoISONGNfC1yfcdevs=",
"owner": "trygveaa", "owner": "trygveaa",
"repo": "kitty-kitten-search", "repo": "kitty-kitten-search",
"rev": "0760138fad617c5e4159403cbfce8421ccdfe571", "rev": "992c1f3d220dc3e1ae18a24b15fcaf47f4e61ff8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -602,23 +544,52 @@
"type": "github" "type": "github"
} }
}, },
"mac-app-util": {
"inputs": {
"cl-nix-lite": "cl-nix-lite",
"flake-compat": "flake-compat",
"flake-utils": [
"p1n3appl3",
"flake-utils"
],
"nixpkgs": [
"p1n3appl3",
"nixpkgs"
],
"systems": "systems_7"
},
"locked": {
"lastModified": 1742156590,
"narHash": "sha256-aTM/2CrNN5utdVEQGsOA+kl4UozgH7VPLBQL5OXtBrg=",
"owner": "hraban",
"repo": "mac-app-util",
"rev": "341ede93f290df7957047682482c298e47291b4d",
"type": "github"
},
"original": {
"owner": "hraban",
"repo": "mac-app-util",
"type": "github"
}
},
"nix-darwin": { "nix-darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixvim", "p1n3appl3",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1738743987, "lastModified": 1748352827,
"narHash": "sha256-O3bnAfsObto6l2tQOmQlrO6Z2kD6yKwOWfs7pA0CpOc=", "narHash": "sha256-sNUUP6qxGkK9hXgJ+p362dtWLgnIWwOCmiq72LAWtYo=",
"owner": "lnl7", "owner": "LnL7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "ae406c04577ff9a64087018c79b4fdc02468c87c", "rev": "44a7d0e687a87b73facfe94fba78d323a6686a90",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "lnl7", "owner": "LnL7",
"ref": "master",
"repo": "nix-darwin", "repo": "nix-darwin",
"type": "github" "type": "github"
} }
@ -631,11 +602,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738466368, "lastModified": 1748751003,
"narHash": "sha256-PZhUjtvQZOH3PO0EYdTpQvcqkgkq1NkP2A6w9SPHYsk=", "narHash": "sha256-i4GZdKAK97S0ZMU3w4fqgEJr0cVywzqjugt2qZPrScs=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "46a8f5fc9552b776bfc5c5c96ea3bede33f68f52", "rev": "2860bee699248d828c2ed9097a1cd82c2f991b43",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -667,6 +638,25 @@
} }
}, },
"nixgl": { "nixgl": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1713543440,
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
"owner": "nix-community",
"repo": "nixGL",
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixGL",
"type": "github"
}
},
"nixgl_2": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
"p1n3appl3", "p1n3appl3",
@ -693,11 +683,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1738816619, "lastModified": 1748634340,
"narHash": "sha256-5yRlg48XmpcX5b5HesdGMOte+YuCy9rzQkJz+imcu6I=", "narHash": "sha256-pZH4bqbOd8S+si6UcfjHovWDiWKiIGRNRMpmRWaDIms=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "2eccff41bab80839b1d25b303b53d339fbb07087", "rev": "daa628a725ab4948e0e2b795e8fb6f4c3e289a7a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -740,11 +730,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1738702386, "lastModified": 1748421225,
"narHash": "sha256-nJj8f78AYAxl/zqLiFGXn5Im1qjFKU8yBPKoWEeZN5M=", "narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "030ba1976b7c0e1a67d9716b17308ccdab5b381e", "rev": "78add7b7abb61689e34fc23070a8f55e1d26185b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -756,27 +746,26 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1739101192, "lastModified": 1660551188,
"narHash": "sha256-KFt/4jHEm2sMe2febmnTYrq91G7IV4sVlXVNiPiU8k4=", "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a35866ed8d4e6512c64918324ba3af38219b67a9", "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "release-24.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1738680400, "lastModified": 1749285348,
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=", "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "799ba5bffed04ced7067a91798353d360788b30d", "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -787,6 +776,22 @@
} }
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": {
"lastModified": 1748693115,
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1722062969, "lastModified": 1722062969,
"narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=", "narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=",
@ -802,7 +807,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1710377395, "lastModified": 1710377395,
"narHash": "sha256-KMubsUWtVr7L55pXMBibBDBdmk3xrjbBPduc0E8z28c=", "narHash": "sha256-KMubsUWtVr7L55pXMBibBDBdmk3xrjbBPduc0E8z28c=",
@ -818,24 +823,19 @@
}, },
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nuschtosSearch": "nuschtosSearch", "nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1738966895, "lastModified": 1749496904,
"narHash": "sha256-OXOh35rTEnFSO4vj/SDMIlDvFPGW0ba1XhZkfx+AlL0=", "narHash": "sha256-eNDMzrcDBOprdJs7DpMOJfCEcxribxDJP2OjozSC3Wo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "e7f20a602f6e08a70045f36c531bc44ba1baed07", "rev": "e0b3d8bc3a0ab5a7cc0792c7705e92f9c5c598f3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -846,7 +846,7 @@
}, },
"nuschtosSearch": { "nuschtosSearch": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_4", "flake-utils": "flake-utils_5",
"ixx": "ixx", "ixx": "ixx",
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
@ -854,11 +854,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738508923, "lastModified": 1748298102,
"narHash": "sha256-4DaDrQDAIxlWhTjH6h/+xfG05jt3qDZrZE/7zDLQaS4=", "narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "search", "repo": "search",
"rev": "86e2038290859006e05ca7201425ea5b5de4aecb", "rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -876,11 +876,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1731441000, "lastModified": 1744483413,
"narHash": "sha256-P0u/UAS1OqKJfzbWMf1vDHKcld0LE2kEU04ENvCCk6k=", "narHash": "sha256-/Ty3KAon/NlSS3wFPGUSkSBlyt1Ao1dg5LvTFsgK4/U=",
"owner": "p1n3appl3", "owner": "p1n3appl3",
"repo": "obs-gamepad", "repo": "obs-gamepad",
"rev": "fe326f233c03cfb7f55938b3ad4baf61f1d9869e", "rev": "6552453336d4c8c83e977268365ed6c2ffde764e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -892,27 +892,28 @@
"p1n3appl3": { "p1n3appl3": {
"inputs": { "inputs": {
"catppuccin": "catppuccin", "catppuccin": "catppuccin",
"flake-utils": "flake-utils_5", "flake-utils": "flake-utils_6",
"home-manager": "home-manager_3", "home-manager": "home-manager_2",
"mac-app-util": "mac-app-util",
"nix-darwin": "nix-darwin",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixgl": "nixgl", "nixgl": "nixgl_2",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"obs-gamepad": "obs-gamepad", "obs-gamepad": "obs-gamepad",
"ragenix": "ragenix", "ragenix": "ragenix",
"rahul-config": [ "rahul-config": [
"rahul-config" "rahul-config"
], ],
"slippi": "slippi", "slippi": "slippi"
"zed": "zed"
}, },
"locked": { "locked": {
"lastModified": 1738892328, "lastModified": 1749071656,
"narHash": "sha256-XQp+iIdyq1Jp266Ij2QhwXtdryRG6Z72gp3utHLlwTg=", "narHash": "sha256-LaOapF5/WHh5QlhrY64j7ZCSe7Sdfx8qFB1d0dLxamY=",
"owner": "p1n3appl3", "owner": "p1n3appl3",
"repo": "config", "repo": "config",
"rev": "affc2d239f470b35ee15393d1d44ccfd06730d87", "rev": "eb7780dfe956775c0ae9ea844fe9a01445283426",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -931,16 +932,16 @@
], ],
"nixpkgs": [ "nixpkgs": [
"p1n3appl3", "p1n3appl3",
"nixpkgs" "nixpkgs-stable"
], ],
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1726755133, "lastModified": 1744897914,
"narHash": "sha256-03XIEjHeZEjHXctsXYUB+ZLQmM0WuhR6qWQjwekFk/M=", "narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=",
"owner": "yaxitech", "owner": "yaxitech",
"repo": "ragenix", "repo": "ragenix",
"rev": "687ee92114bce9c4724376cf6b21235abe880bfa", "rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -984,12 +985,12 @@
"inputs": { "inputs": {
"agenix": "agenix_2", "agenix": "agenix_2",
"darwin": "darwin_2", "darwin": "darwin_2",
"flake-utils": "flake-utils_6", "flake-utils": "flake-utils_7",
"home-manager": "home-manager_5", "home-manager": "home-manager_4",
"impermanence": "impermanence", "impermanence": "impermanence",
"nix-index-database": "nix-index-database_2", "nix-index-database": "nix-index-database_2",
"nixos-hardware": "nixos-hardware_2", "nixos-hardware": "nixos-hardware_2",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"ragenix": "ragenix_2" "ragenix": "ragenix_2"
}, },
"locked": { "locked": {
@ -1013,7 +1014,8 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"jujutsu": "jujutsu", "jujutsu": "jujutsu",
"kitty-search": "kitty-search", "kitty-search": "kitty-search",
"nixpkgs": "nixpkgs_2", "nixgl": "nixgl",
"nixpkgs": "nixpkgs_3",
"nixvim": "nixvim", "nixvim": "nixvim",
"p1n3appl3": "p1n3appl3", "p1n3appl3": "p1n3appl3",
"rahul-config": "rahul-config", "rahul-config": "rahul-config",
@ -1028,11 +1030,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737685583, "lastModified": 1747967795,
"narHash": "sha256-p+NVABRpGi+pT+xxf9HcLcFVxG6L+vEEy+NwzB9T0f8=", "narHash": "sha256-76s4jDRbQzxRO+5y8ilMp5V30qVgY9R6n8U7aOap8ig=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "eb64cbcc8eee0fa87ebded92805280d2ec97415a", "rev": "f1d5bfa8c692cacd798a3e1fb93d54c1b9ac701a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1050,11 +1052,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1725675754, "lastModified": 1741400194,
"narHash": "sha256-hXW3csqePOcF2e/PYnpXj72KEYyNj2HzTrVNmS/F7Ug=", "narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "8cc45e678e914a16c8e224c3237fb07cf21e5e54", "rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1105,11 +1107,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738254766, "lastModified": 1747878710,
"narHash": "sha256-HgwiOEieKj9F7JIPR5X9YoDBb2eOwainKZqAJM/3OWU=", "narHash": "sha256-uSRpAVZ7u0/6ixVFrW8MWZaMw58SJCZXUNbVV54OQ0w=",
"owner": "lytedev", "owner": "lytedev",
"repo": "slippi-nix", "repo": "slippi-nix",
"rev": "3b06734c76497732e4d347f376c085a4e5d7d17d", "rev": "700c62cc18acbe3a4accdd73e11a3752e234fd6e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1133,6 +1135,36 @@
"type": "github" "type": "github"
} }
}, },
"systems_10": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_11": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": { "systems_2": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -1210,16 +1242,16 @@
}, },
"systems_7": { "systems_7": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1689347925,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-ozenz5bFe1UUqOn7f60HRmgc01BgTGIKZ4Xl+HbocGQ=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-darwin",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "2235d7e6cc29ae99878133c95e9fe5e157661ffb",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-darwin",
"type": "github" "type": "github"
} }
}, },
@ -1255,8 +1287,8 @@
}, },
"t": { "t": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_7", "flake-utils": "flake-utils_8",
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1710410762, "lastModified": 1710410762,
@ -1272,37 +1304,16 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1738680491,
"narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "64dbb922d51a42c0ced6a7668ca008dded61c483",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems_6" "systems": "systems_8"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1310,22 +1321,6 @@
"repo": "flake-utils", "repo": "flake-utils",
"type": "github" "type": "github"
} }
},
"zed": {
"flake": false,
"locked": {
"lastModified": 1738824383,
"narHash": "sha256-9HoLYYnYr0sd8KKc7gQSUUmkzomtoZA+bv1tU2zuEVc=",
"owner": "zed-industries",
"repo": "zed",
"rev": "10792ee0ad3b58c24f9977c903d2b8a84dfbdd15",
"type": "github"
},
"original": {
"owner": "zed-industries",
"repo": "zed",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -1,9 +1,11 @@
{ {
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/release-24.11"; # nixpkgs.url = "github:NixOS/nixpkgs/release-24.11";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-24.11"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -30,18 +32,20 @@
inputs.rahul-config.follows = "rahul-config"; inputs.rahul-config.follows = "rahul-config";
}; };
rahul-config.url = "github:jdonszelmann/nix-config"; rahul-config.url = "github:jdonszelmann/nix-config";
nixgl.url = "github:nix-community/nixGL";
}; };
outputs = outputs =
{ { home-manager
home-manager, , nixpkgs
nixpkgs, , flake-utils
flake-utils, , nixvim
nixvim, , t
t, , dumpasm
dumpasm, , jujutsu
jujutsu, , nixgl
... , ...
}@inputs: }@inputs:
let let
homeManagerModules = [ nixvim.homeManagerModules.nixvim ]; homeManagerModules = [ nixvim.homeManagerModules.nixvim ];
@ -52,6 +56,7 @@
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
overlays = [ overlays = [
nixgl.overlay
(_: _: { (_: _: {
custom = { custom = {
t = t.packages.${system}.default; t = t.packages.${system}.default;
@ -74,28 +79,29 @@
} }
); );
in in
flake-utils.lib.eachDefaultSystem (system: rec { flake-utils.lib.eachDefaultSystem
formatter = legacyPackages.nixfmt-classic; (system: rec {
legacyPackages = pkgsForSystem system; formatter = legacyPackages.nixfmt-classic;
pkgs = legacyPackages; legacyPackages = pkgsForSystem system;
devShells.default = pkgs.mkShell { pkgs = legacyPackages;
buildInputs = with pkgs; [ devShells.default = pkgs.mkShell {
(pkgs.writeShellScriptBin "fast-repl" '' buildInputs = with pkgs; [
source /etc/set-environment (pkgs.writeShellScriptBin "fast-repl" ''
nix repl --file "${./.}/repl.nix" $@ source /etc/set-environment
'') nix repl --file "${./.}/repl.nix" $@
'')
(pkgs.writeShellScriptBin "apply-home" '' (pkgs.writeShellScriptBin "apply-home" ''
export NIX_BUILD_CORES=$(($(nproc) * 2)) export NIX_BUILD_CORES=$(($(nproc) * 2))
nix run .#home-manager -- switch --flake .#$@ -j $(nproc) --cores $(nproc) nix run .#home-manager -- switch --flake .#$@ -j $(nproc) --cores $(nproc)
'') '')
(pkgs.writeShellScriptBin "apply" '' (pkgs.writeShellScriptBin "apply" ''
apply-home $(hostname -f) apply-home $(hostname -f)
'') '')
]; ];
}; };
}) })
// { // {
homeConfigurations = { homeConfigurations = {

View file

@ -7,7 +7,11 @@
packages = with pkgs; [ packages = with pkgs; [
p1n3appl3.tab p1n3appl3.tab
(pkgs.writeShellScriptBin "gg" ''
${pkgs.nixgl.nixGLIntel}/bin/nixGLIntel ${gg-jj}/bin/gg
'')
]; ];
}; };
imports = [ imports = [
@ -30,4 +34,25 @@
echo "#!/usr/bin/env bash\nexec /usr/bin/kitty" > $out/bin/kitty; echo "#!/usr/bin/env bash\nexec /usr/bin/kitty" > $out/bin/kitty;
''; '';
}; };
home.file = {
"dl".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.userDirs.download}";
"doc".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.userDirs.documents}";
};
xdg = {
enable = true;
configHome = "${config.home.homeDirectory}/.config";
userDirs = {
enable = true;
documents = "${config.home.homeDirectory}/Documents";
desktop = "${config.home.homeDirectory}/Documents";
download = "${config.home.homeDirectory}/Downloads";
music = "${config.home.homeDirectory}/Documents/personal/music";
pictures = "${config.home.homeDirectory}/Documents/personal/pictures";
};
mime.enable = true;
};
} }

View file

@ -1,8 +1,7 @@
{ { config
config, , pkgs
pkgs, , lib
lib, , ...
...
}: }:
with builtins; with builtins;
with lib.attrsets; with lib.attrsets;
@ -25,17 +24,30 @@ let
"cb" = "${pkgs.wl-clipboard-rs}/bin/wl-copy"; "cb" = "${pkgs.wl-clipboard-rs}/bin/wl-copy";
"cat" = "${pkgs.bat}/bin/bat"; "cat" = "${pkgs.bat}/bin/bat";
"pull" = "${pkgs.git}/bin/git pull"; # "pull" = "${pkgs.git}/bin/git pull";
"push" = "${pkgs.git}/bin/git push"; # "push" = "${pkgs.git}/bin/git push";
"commit" = "${pkgs.git}/bin/git commit"; # "commit" = "${pkgs.git}/bin/git commit";
"add" = "${pkgs.git}/bin/git add"; # "add" = "${pkgs.git}/bin/git add";
"patch" = "${pkgs.git}/bin/git add -p"; # "patch" = "${pkgs.git}/bin/git add -p";
"amend" = "${pkgs.git}/bin/git commit --amend"; # "amend" = "${pkgs.git}/bin/git commit --amend";
"log" = "${pkgs.git}/bin/git log --all --graph --decorate"; # "log" = "${pkgs.git}/bin/git log --all --graph --decorate";
"st" = "${pkgs.git}/bin/git status"; # "st" = "${pkgs.git}/bin/git status";
"checkout" = "${pkgs.git}/bin/git checkout"; # "checkout" = "${pkgs.git}/bin/git checkout";
"rebase" = "${pkgs.git}/bin/git rebase"; # "rebase" = "${pkgs.git}/bin/git rebase";
"stash" = "${pkgs.git}/bin/git stash"; # "stash" = "${pkgs.git}/bin/git stash";
"edit" = "jj edit";
"old" = "jj edit @-";
"new" = "jj edit @+";
"rebase" = "jj rebase";
"pull" = "jj git fetch; jj catchup";
"msg" = "jj describe -m";
"branch" = "jj bookmark set";
"stat" = "jj status";
"push" = "jj git push";
"tidy" = "x test tidy --bless";
"ui" = "x test tests/ui/";
"f" = "nautilus --no-desktop . &"; "f" = "nautilus --no-desktop . &";
}; };
@ -165,15 +177,15 @@ in
${config.programs.jujutsu.package}/bin/jj util completion fish | source ${config.programs.jujutsu.package}/bin/jj util completion fish | source
if set -q tide_left_prompt_items; and not contains "jj" $tide_left_prompt_items # if set -q tide_left_prompt_items; and not contains "jj" $tide_left_prompt_items
set -l tide_item_jj_idx (contains -i "pwd" $tide_left_prompt_items) # set -l tide_item_jj_idx (contains -i "pwd" $tide_left_prompt_items)
if test $tide_item_jj_idx # if test $tide_item_jj_idx
set tide_left_prompt_items \ # set tide_left_prompt_items \
$tide_left_prompt_items[1..$tide_item_jj_idx] \ # $tide_left_prompt_items[1..$tide_item_jj_idx] \
jj \ # jj \
$tide_left_prompt_items[(math $tide_item_jj_idx + 1)..-1] # $tide_left_prompt_items[(math $tide_item_jj_idx + 1)..-1]
end # end
end # end
function t function t
cd "$(${pkgs.custom.t}/bin/t-rs $argv | tail -n 1)" cd "$(${pkgs.custom.t}/bin/t-rs $argv | tail -n 1)"

View file

@ -1,8 +1,8 @@
{ pkgs, ... }: { config, pkgs, ... }:
{ {
programs.jujutsu = { programs.jujutsu = {
enable = true; enable = true;
package = pkgs.custom.jujutsu; # package = pkgs.custom.jujutsu;
settings = { settings = {
user = { user = {
@ -11,9 +11,10 @@
}; };
ui = { ui = {
paginate = "never";
pager = "${pkgs.delta}/bin/delta"; pager = "${pkgs.delta}/bin/delta";
# for delta # for delta
diff.format = "git"; diff-formatter = ":git";
default-command = [ default-command = [
"log" "log"
@ -32,10 +33,86 @@
# diff-editor = "${pkgs.meld}/bin/meld"; # diff-editor = "${pkgs.meld}/bin/meld";
}; };
revsets.log = "@ | ancestors(trunk()..(visible_heads() & mine()), 2) | trunk()"; # core.fsmonitor = "${pkgs.watchman}/bin/watchman";
core.fsmonitor = "watchman";
core.watchman.register-snapshot-trigger = true;
revsets.log = "@ | ancestors(tronk()..(visible_heads() & mine()), 2) | tronk()";
# revsets.log = "trunk()..@ | @..trunk() | trunk() | @:: | fork_point(trunk() | @)";
# revsets.log = "trunk() | ancestors(trunk()..heads(((trunk()..visible_heads()) & my() | @)::), 2)";
revset-aliases = {
"tronk()" = ''latest((present(main) | present(master)) & remote_bookmarks())'';
"my()" = "user(\"${config.programs.jujutsu.settings.user.email}\")";
"user(x)" = "author(x) | committer(x)";
current = ''bookmarks() & my() & ~immutable()'';
"closest_bookmark(to)" = "heads(::to & bookmarks())";
};
template-aliases = {
"format_timestamp(timestamp)" = "timestamp.ago()";
};
aliases = {
tug = [
"bookmark"
"move"
"--from"
"closest_bookmark(@-)"
"--to"
"@-"
];
catchup = [
"rebase"
"-b"
"all:current"
"-d"
"tronk()"
"--skip-emptied"
];
};
templates = {
log_node = ''
label("node",
coalesce(
if(!self, label("elided", "~")),
if(current_working_copy, label("working_copy", "@")),
if(conflict, label("conflict", "×")),
if(immutable, label("immutable", "*")),
label("normal", "·")
)
)
'';
log = ''
if(root,
format_root_commit(self),
label(if(current_working_copy, "working_copy"),
concat(
separate(" ",
format_short_change_id_with_hidden_and_divergent_info(self),
if(empty, label("empty", "(empty)")),
if(description,
description.first_line(),
label(if(empty, "empty"), description_placeholder),
),
bookmarks,
tags,
working_copies,
if(git_head, label("git_head", "HEAD")),
if(conflict, label("conflict", "conflict")),
if(config("ui.show-cryptographic-signatures").as_boolean(),
format_short_cryptographic_signature(signature)),
) ++ "\n",
),
)
)
'';
};
signing = { signing = {
sign-all = true; # sign-all = true;
behavior = "own";
backend = "ssh"; backend = "ssh";
key = "~/.ssh/id_ed25519.pub"; key = "~/.ssh/id_ed25519.pub";
}; };
@ -43,6 +120,14 @@
git = { git = {
push-bookmark-prefix = "jdonszelmann/"; push-bookmark-prefix = "jdonszelmann/";
private-commits = "description(glob:'wip:*')"; private-commits = "description(glob:'wip:*')";
write-change-id-header = true;
fetch = [
"upstream"
"origin"
];
push = "origin";
auto-local-bookmark = true;
}; };
}; };
}; };

View file

@ -16,7 +16,7 @@
grv 1 2 3 4 5 6 7 8 9 0 - = bspc grv 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \ tab q w e r t y u i o p [ ] \
@cap a s d f g h j k l ; ' ret @cap a s d f g h j k l ; ' ret
@lst z x c v b n m , . / rsft lsft z x c v b n m , . / rsft
lctl lmet lalt spc ralt rctl lctl lmet lalt spc ralt rctl
) )
@ -25,7 +25,7 @@
grv 1 2 3 4 5 6 7 8 9 0 - = bspc grv 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e @replay t y u i o p @wup @wdown \ tab q w e @replay t y u i o p @wup @wdown \
@cap a s d f g left down up right ; ' bspc @cap a s d f g left down up right ; ' bspc
@lst z x C-c v bspc n @macro , . C-f rsft lsft z x C-c v bspc n @macro , . C-f rsft
lctl lmet lalt spc ralt rctl lctl lmet lalt spc ralt rctl
) )

View file

@ -1,12 +1,6 @@
vim.o.sessionoptions="blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions" vim.o.sessionoptions="blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions"
local otter = require'otter'
otter.setup{}
vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, {
pattern = {"*.md"},
callback = function() otter.activate({'python', 'rust', 'c', 'lua', 'bash' }, true, true, nil) end,
})
vim.filetype.add({ vim.filetype.add({
extension = { extension = {
mdx = "markdown", mdx = "markdown",
@ -14,57 +8,6 @@ vim.filetype.add({
}) })
local cmp = require("cmp")
cmp.setup {
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
view = {
docs = {
auto_open = false
}
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
-- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
['<CR>'] = cmp.mapping.confirm({ select = true }),
['<C-g>'] = function()
if cmp.visible_docs() then
cmp.close_docs()
else
cmp.open_docs()
end
end
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = "otter" },
{ name = 'path' },
{ name = 'vsnip' },
{ name = 'spell' },
}, {
{ name = 'buffer' },
}),
comparators = {
-- compare.score_offset, -- not good at all
cmp.config.compare.locality,
cmp.config.compare.recently_used,
cmp.config.compare.score,
cmp.config.compare.offset,
cmp.config.compare.order,
},
}
-- key mapping -- key mapping
local keymap = vim.api.nvim_set_keymap local keymap = vim.api.nvim_set_keymap
local opts = { noremap = true, silent = true } local opts = { noremap = true, silent = true }
@ -194,47 +137,19 @@ vim.api.nvim_create_user_command('CloseBuffer', function (opts)
end end
end, { desc = "Close Current Buffer", bang = true, }) end, { desc = "Close Current Buffer", bang = true, })
vim.keymap.set("ca", "W", "w") local function close_floating()
vim.keymap.set("ca", "X", "x") for _, win in ipairs(vim.api.nvim_list_wins()) do
vim.keymap.set("ca", "Q", "q") local config = vim.api.nvim_win_get_config(win)
if config.relative ~= "" then
vim.api.nvim_win_close(win, false)
end
end
end
vim.keymap.set("ca", "q", "CloseBuffer") vim.keymap.set("n", "<Esc>", close_floating, { desc = "Close floats, clear highlights" })
vim.keymap.set("ca", "qw", "quit")
-- format on wq and x and replace X, W and Q with x, w and q
-- vim.cmd [[cnoreabbrev w execute "Format sync" <bar> w]]
-- vim.cmd [[cnoreabbrev x execute "Format sync" <bar> w <bar> CustomCloseBuffer <cr>]]
-- vim.cmd [[cabbrev W w]]
-- vim.cmd [[cabbrev X execute "Format sync" <bar> x]]
-- vim.cmd [[cabbrev Q CustomCloseBuffer]]
-- vim.cmd [[cnoreabbrev q CustomCloseBuffer <cr>]]
-- vim.cmd [[cnoreabbrev qa q]]
-- vim.cmd [[nnoremap ; :]]
local builtin = require('telescope.builtin') local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>s', "<cmd>vertical sb<cr>", {})
vim.keymap.set('n', '<leader><leader>', builtin.find_files, {})
vim.keymap.set('n', '<leader>f', builtin.live_grep, {})
vim.keymap.set('n', '<leader>h', builtin.pickers, {})
-- vim.keymap.set('n', '<leader>h', builtin.search_history, {})
vim.keymap.set('n', '<leader>b', function() builtin.buffers({sort_mru = true}) end, {})
vim.keymap.set('n', '<leader>d', function() require('telescope.builtin').diagnostics({ severity_bound = 0, bufnr = 0 }) end, {})
vim.keymap.set('n', '<leader>ad', function() require('telescope.builtin').diagnostics({ severity_bound = 0 }) end, {})
vim.keymap.set('n', '<leader>em', "<cmd>RustLsp expandMacro<cr>")
vim.keymap.set("n", "]d", vim.diagnostic.goto_next)
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev)
vim.keymap.set('n', '<leader>ct', "<cmd>CustomCloseBuffer<cr>")
vim.keymap.set('n', '<leader>co', "<cmd>silent! BufferCloseAllButCurrent<cr>")
vim.keymap.set('n', '<leader>cl', "<cmd>silent! BufferCloseBuffersLeft<cr>")
vim.keymap.set('n', '<leader>cr', "<cmd>silent! BufferCloseBuffersRight<cr>")
-- like quit but for a single tab
vim.keymap.set('n', '<leader>q', "<cmd>BufferClose<cr>", {})
vim.keymap.set('n', '<leader>oq', "<cmd>BufOnly<cr>", {})
vim.keymap.set("n", "<leader>x", require("telescope.builtin").resume, { vim.keymap.set("n", "<leader>x", require("telescope.builtin").resume, {
noremap = true, noremap = true,
silent = true, silent = true,
@ -298,3 +213,36 @@ vim.g.VM_reselect_first = 1
vim.g.VM_notify_previously_selected = 1 vim.g.VM_notify_previously_selected = 1
vim.g.VM_theme = "iceblue" vim.g.VM_theme = "iceblue"
-- workaround for rust-analyzer server cancelled request
for _, method in ipairs { 'textDocument/diagnostic', 'workspace/diagnostic' } do
local default_diagnostic_handler = vim.lsp.handlers[method]
vim.lsp.handlers[method] = function(err, result, context, config)
if err ~= nil and err.code == -32802 then
return
end
return default_diagnostic_handler(err, result, context, config)
end
end
require("hover").setup {
init = function()
require("hover.providers.lsp")
require('hover.providers.gh')
require('hover.providers.diagnostic')
end,
preview_opts = {
border = 'rounded'
},
-- Whether the contents of a currently open hover window should be moved
-- to a :h preview-window when pressing the hover keymap.
preview_window = false,
title = true,
}
-- Setup keymaps
vim.keymap.set("n", "K", require("hover").hover, {desc = "hover.nvim"})
vim.keymap.set("n", "gK", require("hover").hover_select, {desc = "hover.nvim (select)"})
-- vim.keymap.set("n", "<C-p>", function() require("hover").hover_switch("previous") end, {desc = "hover.nvim (previous source)"})
-- vim.keymap.set("n", "<C-n>", function() require("hover").hover_switch("next") end, {desc = "hover.nvim (next source)"})

View file

@ -1,9 +1,4 @@
{ pkgs, ... }: { pkgs, inputs, ... }:
let
map = mode: key: action: {
inherit mode key action;
};
in
{ {
home = { home = {
sessionVariables = { sessionVariables = {
@ -14,6 +9,7 @@ in
imports = [ imports = [
./options.nix ./options.nix
./plugins.nix ./plugins.nix
./keys.nix
]; ];
programs.nixvim = { programs.nixvim = {
@ -47,64 +43,8 @@ in
extraLuaPackages = ps: [ ps.magick ]; extraLuaPackages = ps: [ ps.magick ];
extraPackages = [ pkgs.imagemagick ]; extraPackages = [ pkgs.imagemagick ];
# package = pkgs.neovim-unwrapped; # package = (import inputs.unstable { inherit (pkgs) system; }).neovim-unwrapped;
package = (pkgs.neovim-unwrapped.override { lua = pkgs.luajit; }).overrideAttrs (_: { package = pkgs.neovim-unwrapped;
version = "git";
src = pkgs.fetchFromGitHub {
owner = "neovim";
repo = "neovim";
rev = "76dcc7029b200e1d85024d7ba4a34c602e730dbe";
hash = "sha256-y3LmGebXuQhLz9w1IzkDU8b464WvMvPCbIImpVvxmcI=";
};
buildInputs =
[
(pkgs.utf8proc.overrideAttrs (_: {
version = "git";
src = pkgs.fetchFromGitHub {
owner = "JuliaStrings";
repo = "utf8proc";
rev = "3de4596fbe28956855df2ecb3c11c0bbc3535838";
hash = "sha256-DNnrKLwks3hP83K56Yjh9P3cVbivzssblKIx4M/RKqw=";
};
}))
]
++ pkgs.neovim-unwrapped.buildInputs
++ pkgs.neovim-unwrapped.nativeBuildInputs;
});
keymaps = [
{
key = "<f2>";
action = "<cmd>Lspsaga rename<cr>";
}
{
key = "<leader>o";
action = "<cmd>Lspsaga outline<cr>";
}
{
key = "<leader>.";
action = "<cmd>Lspsaga code_action<cr>";
}
# {
# key = "/";
# action = "<cmd>lua require('spectre').open_file_search({select_word=true})<CR>";
# }
(map "n" "t" "<cmd>Neotree toggle<cr>")
# tab for indent/dedent
(map "n" "<tab>" ">>_")
(map "n" "<S-tab>" "<<_")
(map "i" "<S-tab>" "<c-d>")
(map "v" "<tab>" ">gv")
(map "v" "<S-tab>" "<gv")
# to avoid many typos
(map "n" ";" ":")
];
colorschemes.onedark = { colorschemes.onedark = {
enable = true; enable = true;
@ -117,6 +57,8 @@ in
"@comment.documentation.rust".fg = "#77B767"; "@comment.documentation.rust".fg = "#77B767";
"@comment.documentation".fg = "#77B767"; "@comment.documentation".fg = "#77B767";
"@comment".fg = "#426639"; "@comment".fg = "#426639";
# "Visual".bg = "#2a2e36";
# "Cursorline".bg = "#2a2e36";
}; };
}; };

103
programs/nvim/keys.nix Normal file
View file

@ -0,0 +1,103 @@
_:
let
map = mode: key: action: {
inherit mode key action;
};
luamap =
mode: key: action:
map mode key "<cmd>lua ${action}<cr>";
telescope = "require('telescope.builtin')";
in
{
programs.nixvim.keymaps = [
(map "" "<f2>" "<cmd>Lspsaga rename<cr>")
(map "" "<leader>o" "<cmd>Lspsaga outline<cr>")
(map "" "<leader>." "<cmd>Lspsaga code_action<cr>")
# splitting
(map "n" "<leader>s" "<cmd>vertical sb<cr>")
# closing
(map "n" "<leader>w" "<cmd>BufferClose<cr>") # single buffer
(map "n" "<leader>cb" "<cmd>BufferClose<cr>") # single buffer
(map "n" "<leader>ct" "<cmd>CloseBuffer<cr>") # buffer or extra tab
(map "n" "<leader>q" "<cmd>CloseBuffer<cr>") # buffer or extra tab
(map "n" "<leader>co" "<cmd>silent! BufferCloseAllButVisible<cr>") # other buffers
(map "n" "<leader>cl" "<cmd>silent! BufferCloseBuffersLeft<cr>") # other buffers (left)
(map "n" "<leader>cr" "<cmd>silent! BufferCloseBuffersRight<cr>") # other buffers (right)
# moving
(map "n" "mL" "<cmd>BufferMovePrevious<cr>") # left
(map "n" "mr" "<cmd>BufferMoveNext<cr>") # right
(map "n" "m0" "<cmd>BufferMoveStart<cr>") # start
(map "n" "m$" "<cmd>BufferMoveEnd<cr>") # end
(map "n" "<leader>jb" "<cmd>BufferPick<cr>") # jump to tab
# jumplist
# (map "n" "<leader><Tab>" "<C-o>")
# (map "n" "<leader><S-Tab>" "<C-i>")
(luamap "n" "<leader>r" "${telescope}.jumplist()")
# pickers
(luamap "n" "<leader><leader>" "${telescope}.find_files()")
(luamap "n" "<leader>f" "${telescope}.live_grep()")
(luamap "n" "<leader>t" "${telescope}.lsp_document_symbols()")
(luamap "n" "<leader>T" "${telescope}.lsp_dynamic_workspace_symbols()")
# last used pickers/searches
(luamap "n" "<leader>h" "${telescope}.pickers()")
# open buffers
(luamap "n" "<leader>b" "${telescope}.buffers({sort_mru = true})")
# diagnostics
(map "n" "<leader>d" "<cmd>Trouble diagnostics toggle filter.buf=0<cr>")
(map "n" "<leader>ad" "<cmd>Trouble diagnostics toggle<cr>")
(luamap "n" "]d"
"vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.ERROR, wrap=true })"
)
(luamap "n" "[d"
"vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.ERROR, wrap=true })"
)
(luamap "n" "]w" "vim.diagnostic.goto_next({ wrap=true })")
(luamap "n" "[w" "vim.diagnostic.goto_prev({ wrap=true })")
# docs with control-d just like in autocomplete
(map "n" "<C-d>" "K")
# expand macro
(map "n" "<leader>em" "<cmd>RustLsp expandMacro<cr>")
# easier quitting etc
(map "ca" "W" "w")
(map "ca" "X" "x")
(map "ca" "Q" "CloseBuffer")
(map "ca" "q" "CloseBuffer")
# navigation
(map "" "<leader><Left>" "<C-w><Left>")
(map "" "<leader><Right>" "<C-w><Right>")
(map "" "<leader><Up>" "<C-w><Up>")
(map "" "<leader><Down>" "<C-w><Down>")
(map "" "<leader><Down>" "<C-w><Down>")
# {
# key = "/";
# action = "<cmd>lua require('spectre').open_file_search({select_word=true})<CR>";
# }
(map "n" "t" "<cmd>Neotree toggle<cr>")
# tab for indent/dedent
(map "n" "<tab>" ">>_")
(map "n" "<S-tab>" "<<_")
(map "i" "<S-tab>" "<c-d>")
(map "v" "<tab>" ">gv")
(map "v" "<S-tab>" "<gv")
# to avoid many typos
(map "n" ";" ":")
];
}

View file

@ -1,6 +1,28 @@
_: { _: {
programs.nixvim.diagnostics = {
# virtual_lines.enable = false;
# # virtual_lines = {
# # current_line = true;
# # format = ''
# # function(d)
# # if d.severity == vim.diagnostic.severity.ERROR then
# # return d
# # else
# # return ""
# # end
# # end
# # '';
# # };
# virtual_text = false;
update_in_insert = false; # annoying with virtual_lines which keep updating
severity_sort = true;
float = {
border = "rounded";
};
};
programs.nixvim.opts = { programs.nixvim.opts = {
lazyredraw = true; # lazyredraw = true;
startofline = true; startofline = true;
showmatch = true; showmatch = true;
@ -26,6 +48,10 @@ _: {
]; ];
list = true; list = true;
swapfile = false;
backup = false;
autoread = true;
undofile = true; undofile = true;
undodir = "/home/jana/.vimdid"; undodir = "/home/jana/.vimdid";
@ -36,7 +62,7 @@ _: {
# relative line numbers except the current line # relative line numbers except the current line
number = true; number = true;
relativenumber = true; # relativenumber = true;
# show (usually) hidden characters # show (usually) hidden characters
listchars = { listchars = {
@ -52,5 +78,11 @@ _: {
# clipboard == system clipboard # clipboard == system clipboard
clipboard = "unnamedplus"; clipboard = "unnamedplus";
completeopt = [
"menuone"
"noselect"
"noinsert"
];
}; };
} }

View file

@ -9,26 +9,16 @@ let
hash = "sha256-mddnBvIrekHh60Ix6qIYAnv10Mu40LamGI47EXk9wSo="; hash = "sha256-mddnBvIrekHh60Ix6qIYAnv10Mu40LamGI47EXk9wSo=";
}; };
}; };
# for lsp/cmp inside markdown code blocks
otter = pkgs.vimUtils.buildVimPlugin {
name = "otter";
src = pkgs.fetchFromGitHub {
owner = "jmbuhr";
repo = "otter.nvim";
rev = "cbb1be0586eae18cbea38ada46af428d2bebf81a";
hash = "sha256-eya/8rG3O8UFeeBRDa5U8v3qay+q3iFwPnYtdX7ptCA=";
};
};
fzy-lua-native = pkgs.vimUtils.buildVimPlugin {
name = "fzy-lua-native";
src = pkgs.fetchFromGitHub {
owner = "romgrk";
repo = "fzy-lua-native";
rev = "9d720745d5c2fb563c0d86c17d77612a3519c506";
hash = "sha256-pBV5iGa1+5gtM9BcDk8I5SKoQ9sydOJHsmyoBcxAct0=";
};
};
in in
# fzy-lua-native = pkgs.vimUtils.buildVimPlugin {
# name = "fzy-lua-native";
# src = pkgs.fetchFromGitHub {
# owner = "romgrk";
# repo = "fzy-lua-native";
# rev = "9d720745d5c2fb563c0d86c17d77612a3519c506";
# hash = "sha256-pBV5iGa1+5gtM9BcDk8I5SKoQ9sydOJHsmyoBcxAct0=";
# };
# };
{ {
programs.nixvim = { programs.nixvim = {
plugins = { plugins = {
@ -130,6 +120,16 @@ in
}; };
}; };
treesitter-context = {
enable = true;
settings = {
multiwindow = true;
separator = "";
max_lines = 4;
trim_scopes = "outer";
};
};
treesitter = { treesitter = {
enable = true; enable = true;
@ -142,6 +142,7 @@ in
ensure_installed = "all"; ensure_installed = "all";
ignore_install = [ ignore_install = [
"wing" "wing"
"brightscript"
]; ];
highlight.enable = true; highlight.enable = true;
@ -149,32 +150,114 @@ in
incremental_selection = { incremental_selection = {
enable = true; enable = true;
keymaps = { keymaps = {
# init_selection = "<CR>"; scope_incremental = "s";
scope_incremental = "ss"; node_incremental = "+";
node_incremental = "si"; node_decremental = "-";
node_decremental = "sd";
}; };
}; };
}; };
}; };
rainbow-delimiters.enable = true; rainbow-delimiters.enable = true;
vim-surround.enable = true; vim-surround.enable = true;
cmp-nvim-lsp.enable = true;
lsp-format.enable = true; lsp-format.enable = true;
fugitive.enable = false; fugitive.enable = true;
lspkind.enable = true; lspkind.enable = true;
crates.enable = true; crates.enable = true;
fidget.enable = true; fidget.enable = true;
cmp.enable = true;
nvim-autopairs.enable = true; nvim-autopairs.enable = true;
# nvim-highlight-colors.enable = true;
cmp = {
enable = true;
autoEnableSources = true;
settings = {
completion.completeopt = "noselect";
preselect = "None";
sources =
let
s = name: { inherit name; };
in
[
{
name = "nvim_lsp";
priority = 8;
}
# (s "nvim_lsp_signature_help")
# (s "treesitter")
(s "path")
(s "luasnip")
# (s "crates")
# (s "git")
# (s "calc")
# (s "buffer")
];
mapping =
let
next = ''
function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
fallback()
end
end
'';
prev = ''
function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
end
'';
in
{
"<C-Space>" = "cmp.mapping.complete()";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<C-d>" = ''
function()
if cmp.visible_docs() then
cmp.close_docs()
else
cmp.open_docs()
end
end
'';
"<Tab>" = next;
"<S-Tab>" = prev;
"<Down>" = next;
"<Up>" = prev;
};
snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
sorting.comparators = [
"offset"
"exact"
"score"
"recently_used"
"locality"
"kind"
"length"
"order"
];
window =
let
common_border = {
border = "rounded";
winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None";
};
in
{
completion = common_border;
documentation = common_border;
};
};
};
image = { image = {
enable = true; enable = true;
integrations.markdown = {
enabled = true;
clearInInsertMode = true;
downloadRemoteImages = true;
};
}; };
# dial.nvim # dial.nvim
@ -294,6 +377,7 @@ in
codeAction.keys = { codeAction.keys = {
quit = "<Esc>"; quit = "<Esc>";
}; };
symbolInWinbar.enable = false;
}; };
typst-vim = { typst-vim = {
@ -312,9 +396,9 @@ in
rustaceanvim = { rustaceanvim = {
enable = true; enable = true;
rustAnalyzerPackage = pkgs.rust-analyzer;
settings = { settings = {
rustAnalyzerPackage = null;
auto_attach = true; auto_attach = true;
server = { server = {
standalone = false; standalone = false;
@ -331,7 +415,7 @@ in
# check = { # check = {
# command = "+nightly clippy"; # command = "+nightly clippy";
# }; # };
cachePriming.enable = false; cachePriming.enable = true;
diagnostic = { diagnostic = {
refreshSupport = true; refreshSupport = true;
@ -468,6 +552,10 @@ in
}; };
}; };
# leap = {
# enable = true;
# };
wilder = { wilder = {
enable = true; enable = true;
modes = [ modes = [
@ -520,7 +608,7 @@ in
(function() (function()
local highlighters = { local highlighters = {
wilder.pcre2_highlighter(), wilder.pcre2_highlighter(),
wilder.lua_fzy_highlighter(), -- wilder.lua_fzy_highlighter(),
} }
local popupmenu_renderer = wilder.popupmenu_renderer( local popupmenu_renderer = wilder.popupmenu_renderer(
@ -576,10 +664,21 @@ in
telescope = { telescope = {
enable = true; enable = true;
extensions.ui-select.enable = true; extensions = {
extensions.fzf-native.enable = true; ui-select.enable = true;
fzf-native.enable = true;
frecency.enable = true;
};
settings = { settings = {
file_ignore_patterns = [
"^.git/"
"^.jj/"
"^.vscode/"
"^.idea/"
"^build/"
"^target/"
];
defaults = { defaults = {
path_display = [ "smart" ]; path_display = [ "smart" ];
layout_strategy = "horizontal"; layout_strategy = "horizontal";
@ -591,6 +690,11 @@ in
}; };
}; };
# diagnostics
trouble = {
enable = true;
};
# tabs # tabs
barbar = { barbar = {
enable = true; enable = true;
@ -600,6 +704,11 @@ in
}; };
}; };
# for lsp/cmp inside markdown code blocks
otter = {
enable = true;
};
none-ls = { none-ls = {
enable = true; enable = true;
sources = { sources = {
@ -616,32 +725,27 @@ in
web-devicons.enable = true; web-devicons.enable = true;
}; };
extraPlugins = with pkgs.vimPlugins; [ extraPlugins = with pkgs.vimPlugins; [
vim-vsnip
cmp-vsnip
cmp-path
cmp-spell
telescope-ui-select-nvim telescope-ui-select-nvim
telescope-fzf-native-nvim telescope-fzf-native-nvim
vim-suda vim-suda
render-markdown render-markdown
otter
vim-astro vim-astro
nvim-web-devicons nvim-web-devicons
vim-visual-multi vim-visual-multi
vim-gh-line vim-gh-line
BufOnly-vim
neoconf-nvim neoconf-nvim
vim-autoswap vim-autoswap
targets-vim targets-vim
fzy-lua-native # fzy-lua-native
cpsm cpsm
# jj # jj
vim-jjdescription vim-jjdescription
hover-nvim
]; ];
}; };

View file

@ -1,143 +1,166 @@
{ pkgs, ... }: { { pkgs, ... }:
programs.tmux = {
{ programs.tmux = {
enable = true; enable = true;
mouse = true; mouse = true;
clock24 = true; clock24 = true;
shortcut = "k"; shortcut = "k";
plugins = with pkgs; [
plugins = with pkgs; [ {
{ plugin = tmuxPlugins.mkTmuxPlugin {
plugin = tmuxPlugins.mkTmuxPlugin { pluginName = "suspend";
pluginName = "suspend"; version = "1a2f806";
version = "1a2f806"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "MunifTanjim";
owner = "MunifTanjim"; repo = "tmux-suspend";
repo = "tmux-suspend"; rev = "1a2f806666e0bfed37535372279fa00d27d50d14";
rev = "1a2f806666e0bfed37535372279fa00d27d50d14"; sha256 = "0j7vjrwc7gniwkv1076q3wc8ccwj42zph5wdmsm9ibz6029wlmzv";
sha256 = "0j7vjrwc7gniwkv1076q3wc8ccwj42zph5wdmsm9ibz6029wlmzv";
};
}; };
extraConfig = '' };
set -g @suspend_key 'F11' extraConfig = ''
''; set -g @suspend_key 'F11'
} '';
{ }
plugin = tmuxPlugins.mode-indicator; {
} plugin = tmuxPlugins.mode-indicator;
]; }
];
extraConfig = '' extraConfig = ''
# unbind every single normal keybinding # unbind every single normal keybinding
unbind-key -a unbind-key -a
# for special characters to work right # for special characters to work right
# like <C-_> # like <C-_>
# set-window-option -g xterm-keys on # set-window-option -g xterm-keys on
set -g default-terminal "screen-256color" set -g default-terminal "screen-256color"
set -g set-titles on set -g set-titles on
set -g allow-passthrough on set -g allow-passthrough on
set -s escape-time 0 set -s escape-time 0
set-option -g default-shell ${pkgs.fish}/bin/fish set-option -g default-shell ${pkgs.fish}/bin/fish
set -ga terminal-features "\*:hyperlinks" set -ga terminal-features "\*:hyperlinks"
set-window-option -g mode-keys vi set-window-option -g mode-keys vi
# clipboard stuff # clipboard stuff
bind -T copy-mode-vi v send-keys -X begin-selection bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel
bind v copy-mode bind v copy-mode
bind p paste-buffer -p bind p paste-buffer -p
set -s set-clipboard on set -s set-clipboard on
# get back normal terminal emulator bindings # get back normal terminal emulator bindings
bind-key -n S-PPage copy-mode -u bind-key -n S-PPage copy-mode -u
bind-key -T copy-mode -n S-NPage send-keys -X page-down bind-key -T copy-mode -n S-NPage send-keys -X page-down
# don't scroll to end when copying with mouse # don't scroll to end when copying with mouse
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe
bind-key -T copy-mode DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe bind-key -T copy-mode DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe
bind-key -T copy-mode TripleClick1Pane select-pane \; send-keys -X select-line \; run-shell -d 0.3 \; send-keys -X copy-pipe bind-key -T copy-mode TripleClick1Pane select-pane \; send-keys -X select-line \; run-shell -d 0.3 \; send-keys -X copy-pipe
bind-key -T copy-mode-vi DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe bind-key -T copy-mode-vi DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe
bind-key -T copy-mode-vi TripleClick1Pane select-pane \; send-keys -X select-line \; run-shell -d 0.3 \; send-keys -X copy-pipe bind-key -T copy-mode-vi TripleClick1Pane select-pane \; send-keys -X select-line \; run-shell -d 0.3 \; send-keys -X copy-pipe
# window control # window control
bind t new-window -c "#{pane_current_path}" bind t new-window -c "#{pane_current_path}"
bind-key Tab next-window bind-key Tab next-window
bind-key BTab previous-window bind-key BTab previous-window
set -g automatic-rename-format "#{?#{==:#{pane_current_path},$HOME},~,#{b:pane_current_path}} (#{pane_current_command})" set -g automatic-rename-format "#{?#{==:#{pane_current_path},$HOME},~,#{b:pane_current_path}} (#{pane_current_command})"
set -g renumber-windows on set -g renumber-windows on
bind-key Q confirm-before -p "kill-window #W? (y/n)" kill-window bind-key Q confirm-before -p "kill-window #W? (y/n)" kill-window
bind A last-window bind A last-window
bind-key 1 select-window -t :0 bind-key 1 select-window -t :0
bind-key 2 select-window -t :1 bind-key 2 select-window -t :1
bind-key 3 select-window -t :2 bind-key 3 select-window -t :2
bind-key 4 select-window -t :3 bind-key 4 select-window -t :3
bind-key 5 select-window -t :4 bind-key 5 select-window -t :4
bind-key 6 select-window -t :5 bind-key 6 select-window -t :5
bind-key 7 select-window -t :6 bind-key 7 select-window -t :6
bind-key 8 select-window -t :7 bind-key 8 select-window -t :7
bind-key 9 select-window -t :8 bind-key 9 select-window -t :8
bind-key 0 select-window -t :9 bind-key 0 select-window -t :9
# pane control # pane control
bind h select-pane -L bind h select-pane -L
bind j select-pane -D bind j select-pane -D
bind k select-pane -U bind k select-pane -U
bind l select-pane -R bind l select-pane -R
bind L split-window -h -c "#{pane_current_path}" bind L split-window -h -c "#{pane_current_path}"
bind J split-window -v -c "#{pane_current_path}" bind J split-window -v -c "#{pane_current_path}"
bind H split-window -h -b -c "#{pane_current_path}" bind H split-window -h -b -c "#{pane_current_path}"
bind K split-window -v -b -c "#{pane_current_path}" bind K split-window -v -b -c "#{pane_current_path}"
bind x swap-pane -D bind x swap-pane -D
bind -r a select-pane -l
bind-key q confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key o choose-tree -wZ # double-click ^k (or lshift with kanata) for previous pane like ^w in vim
bind-key O choose-tree -sZ bind -r ^k select-pane -l
bind-key q confirm-before -p "kill-pane #P? (y/n)" kill-pane
# get back command mode and some other basics... bind-key o choose-tree -wZ
bind : command-prompt bind-key O choose-tree -sZ
bind r source-file ~/.config/tmux/tmux.conf \; display "config reloaded"
bind-key ? list-keys
# Scroll oin man etc # get back command mode and some other basics...
tmux_commands_with_legacy_scroll="nano less more man git" bind : command-prompt
bind r source-file ~/.config/tmux/tmux.conf \; display "config reloaded"
bind-key ? list-keys
bind-key -T root WheelUpPane \ # Scroll oin man etc
if-shell -Ft= '#{?mouse_any_flag,1,#{pane_in_mode}}' \ tmux_commands_with_legacy_scroll="nano less more man git"
'send -Mt=' \
'if-shell -t= "#{?alternate_on,true,false} || echo \"#{tmux_commands_with_legacy_scroll}\" | grep -q \"#{pane_current_command}\"" \
"send -t= Up" "copy-mode -et="'
bind-key -T root WheelDownPane \ bind-key -T root WheelUpPane \
if-shell -Ft = '#{?pane_in_mode,1,#{mouse_any_flag}}' \ if-shell -Ft= '#{?mouse_any_flag,1,#{pane_in_mode}}' \
'send -Mt=' \ 'send -Mt=' \
'if-shell -t= "#{?alternate_on,true,false} || echo \"#{tmux_commands_with_legacy_scroll}\" | grep -q \"#{pane_current_command}\"" \ 'if-shell -t= "#{?alternate_on,true,false} || echo \"#{tmux_commands_with_legacy_scroll}\" | grep -q \"#{pane_current_command}\"" \
"send -t= Down" "send -Mt="' "send -t= Up" "copy-mode -et="'
bind-key -T root DoubleClick1Pane run-shell "cd '#{pane_current_path}'; echo '#{mouse_line}' | ${pkgs.writeScriptBin "open-file" '' bind-key -T root WheelDownPane \
open_file () { if-shell -Ft = '#{?pane_in_mode,1,#{mouse_any_flag}}' \
input=`cat` 'send -Mt=' \
link=$(echo "$input" | grep -Po '[^ \\]*/[^ \\]*\.[^ \\]*\:[0-9]+' | sed 's/\:/|/g') 'if-shell -t= "#{?alternate_on,true,false} || echo \"#{tmux_commands_with_legacy_scroll}\" | grep -q \"#{pane_current_command}\"" \
"send -t= Down" "send -Mt="'
if [ ! -z "$link" ]; then bind-key -T copy-mode-vi ] \
echo "LINK = $link" send-keys -X clear-selection \; \
vim_proc=$(pgrep vim | xargs pwdx | grep $(pwd -P) | awk '{print $1}' | sed 's/\:*$//g' | xargs -I{} find /run/user/1000 -depth -maxdepth 1 -name "nvim.{}.0") send-keys -X search-forward "--> " \; \
send-keys -X next-word \; \
send-keys -X begin-selection \; \
send-keys -X jump-forward ":" \; \
send-keys -X jump-to-forward ":" \;
nvim --server "$vim_proc" --remote-send "<C-\><C-N>:e $link<cr>" bind-key -T copy-mode-vi [ \
fi send-keys -X clear-selection \; \
} send-keys -X start-of-line \; \
send-keys -X search-backward "--> " \; \
send-keys -X next-word \; \
send-keys -X begin-selection \; \
send-keys -X jump-forward ":" \; \
send-keys -X jump-to-forward ":" \;
open_file 2>&1 >> ~/open-file.log bind-key [ copy-mode \; send-keys [
bind-key ] copy-mode \; send-keys ]
''}/bin/open-file" bind d select-pane -l \; send-keys [
'';
}; '';
};
# bind-key -T root DoubleClick1Pane run-shell "cd '#{pane_current_path}'; echo '#{mouse_line}' | ${pkgs.writeScriptBin "open-file" ''
# open_file () {
# input=`cat`
# link=$(echo "$input" | grep -Po '[^ \\]*/[^ \\]*\.[^ \\]*\:[0-9]+' | sed 's/\:/|/g')
#
# if [ ! -z "$link" ]; then
# echo "LINK = $link"
# vim_proc=$(pgrep vim | xargs pwdx | grep $(pwd -P) | awk '{print $1}' | sed 's/\:*$//g' | xargs -I{} find /run/user/1000 -depth -maxdepth 1 -name "nvim.{}.0")
#
# nvim --server "$vim_proc" --remote-send "<C-\><C-N>:e $link<cr>"
# fi
# }
#
# open_file 2>&1 >> ~/open-file.log
#
# ''}/bin/open-file"
} }