Compare commits
70 Commits
8ee8558de3
...
c019a99074
| Author | SHA1 | Date | |
|---|---|---|---|
| c019a99074 | |||
| 93af3f799b | |||
| 56bb4e7d90 | |||
| b25d2f1ea2 | |||
| 1253c10a75 | |||
| 892d0a6e92 | |||
| b1f66684fd | |||
| 17285a0ed2 | |||
| f162d5afe5 | |||
| ee325d0516 | |||
| 1c00ebb628 | |||
| fd871adc4a | |||
| ada6f01d93 | |||
| f10e2e3118 | |||
| 9ad4beb93c | |||
| f9db766f84 | |||
| 9626bc36dc | |||
| 3f473a28fd | |||
| 5c6b47eff9 | |||
| 1bd149bed0 | |||
| c54026de6a | |||
| 33367964ae | |||
| 34e02f6956 | |||
| c7fa94171a | |||
| 13663050db | |||
| 01db8438e6 | |||
| c80e822182 | |||
| 765cac2f24 | |||
| dbb20935a7 | |||
| 9503699ee2 | |||
| 562dbdf811 | |||
| 452aca4ef1 | |||
| de5724d57d | |||
| a783a5fd0e | |||
| d1005ecf6b | |||
| dab0daedc0 | |||
| 88b9f21b82 | |||
| c4642e7964 | |||
| ecc0fac063 | |||
| d817c58690 | |||
| 2e9ff0040c | |||
| 78f257ed0b | |||
| f08ca5c72d | |||
| db006a7d4c | |||
| 97e691d6f8 | |||
| c2af7a50d9 | |||
| 3d1574e39c | |||
| ff209ee7af | |||
| fffd3b9913 | |||
| ae1f6b1852 | |||
| 8d607e2398 | |||
| b1ef642372 | |||
| 5732133254 | |||
| 1dcaf0757b | |||
| 04a741544d | |||
| de4b27eceb | |||
| 5a8a50f513 | |||
| 46ccbcc8f6 | |||
| 45e067bf44 | |||
| c66efaf9c2 | |||
| 478feb06d9 | |||
| f21424e91e | |||
| 2422553840 | |||
| d50209b3b5 | |||
| d69c886ff5 | |||
| 321cf81b1b | |||
| 8824821213 | |||
| 27eec5cf2c | |||
| 5894b8dda8 | |||
| 5725b22280 |
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,8 +1,10 @@
|
|||||||
.owncloudsync.log
|
.owncloudsync.log
|
||||||
|
.nextcloudsync.log
|
||||||
.sync_*
|
.sync_*
|
||||||
result
|
.directory
|
||||||
.direnv
|
.direnv
|
||||||
.idea
|
.idea
|
||||||
/.directory
|
|
||||||
.nextcloudsync.log
|
|
||||||
.docs
|
.docs
|
||||||
|
result
|
||||||
|
|
||||||
|
config/neovim/store
|
||||||
|
|||||||
BIN
NixVim.png
Normal file
BIN
NixVim.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 MiB |
40
README.md
40
README.md
@ -1,44 +1,42 @@
|
|||||||
# NixOS Configuration
|
# NixOS Configuration
|
||||||
|
|
||||||
This is my modular NixOS configuration, using Hyprland for a lightweight desktop.
|
Modular NixOS configuration, using Hyprland for a lightweight desktop.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
To install, run ``nixos-rebuild`` with the ``--flake`` parameter from the ``NixFlake`` directory: ``nixos-rebuild switch --flake .#nixinator``.
|

|
||||||
|
|
||||||
|
To install, run `nixos-rebuild` with the `--flake` parameter from the `NixFlake` directory: `nixos-rebuild switch --flake .#nixinator`.
|
||||||
|
|
||||||
## NixFlake/system
|
## NixFlake/system
|
||||||
|
|
||||||
This folder contains all the system configurations.
|
Contains all the system configurations.
|
||||||
|
|
||||||
- There is a common configuration used for all systems: ``NixFlake/system/default.nix``
|
- There is a common configuration used for all systems: `NixFlake/system/default.nix`
|
||||||
- Every system has its own special configuration: ``NixFlake/system/<hostname>/default.nix``
|
- Every system has its own special configuration: `NixFlake/system/<hostname>/default.nix`
|
||||||
- System modules are located in ``NixFlake/system/modules``
|
- System modules are located in `NixFlake/system/modules`
|
||||||
|
|
||||||
When creating a NixOS configuration inside the ``NixFlake/flake.nix`` the common configuration is imported.
|
When creating a NixOS configuration inside the `NixFlake/flake.nix` the common configuration is imported.
|
||||||
Because the hostname is propagated to the common configuration, it can import the host-specific config by itself.
|
Because the hostname is propagated to the common configuration, it can import the host-specific config by itself.
|
||||||
|
|
||||||
## NixFlake/home
|
## NixFlake/home
|
||||||
|
|
||||||
This folder contains all the home-manager configurations.
|
Contains all the home-manager configurations.
|
||||||
|
|
||||||
- There is a common configuration for each user: ``NixFlake/home/<username>/default.nix``
|
- There is a common configuration for each user: `NixFlake/home/<username>/default.nix`
|
||||||
- There is a configuration for a single system of this user: ``NixFlake/home/<username>/<hostname>/default.nix``
|
- There is a configuration for a single system of this user: `NixFlake/home/<username>/<hostname>/default.nix`
|
||||||
- Home-Manager modules are located in ``NixFlake/home/modules``
|
- Home-Manager modules are located in `NixFlake/home/modules`
|
||||||
|
|
||||||
When creating a NixOS configuration inside the ``NixFlake/flake.nix`` the common configuration is imported.
|
When creating a NixOS configuration inside the `NixFlake/flake.nix` the common configuration is imported.
|
||||||
Because the hostname is propagated to the common configuration, it can import the host-specific config by itself.
|
Because the hostname is propagated to the common configuration, it can import the host-specific config by itself.
|
||||||
|
|
||||||
## NixFlake/derivations
|
## NixFlake/derivations
|
||||||
|
|
||||||
This folder contains all the stuff I packaged.
|
Contains all the stuff I packaged.
|
||||||
Each derivation is loaded into ``NixFlake/derivations/default.nix``.
|
Each derivation is loaded into `NixFlake/derivations/default.nix`.
|
||||||
|
|
||||||
## NixFlake/overlays
|
## NixFlake/overlays
|
||||||
|
|
||||||
This folder contains (not at the moment) all overlays.
|
Contains (not at the moment) all overlays.
|
||||||
The ``NixFlake/overlays/default.nix`` imports all of the overlays and all of the derivations.
|
The `NixFlake/overlays/default.nix` imports all of the overlays and all of the derivations.
|
||||||
It is then imported by the toplevel ``NixFlake/flake.nix``, to make everything available to the system/home configurations.
|
It is then imported by the toplevel `NixFlake/flake.nix`, to make everything available to the system/home configurations.
|
||||||
|
|
||||||
## NixFlake/docs
|
|
||||||
|
|
||||||
This folder contains automatically generated static documentation sites for my Home-Manager modules.
|
|
||||||
|
|||||||
@ -77,7 +77,7 @@ dwindle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
master {
|
master {
|
||||||
new_is_master = true
|
new_status = master
|
||||||
}
|
}
|
||||||
|
|
||||||
gestures {
|
gestures {
|
||||||
|
|||||||
@ -5,13 +5,13 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
# vital-synth = pkgs.callPackage ./vital-synth {}; # Kept as an example, don't know if I will fix this or keep using distrho
|
# vital-synth = pkgs.callPackage ./vital-synth {}; # Kept as an example, don't know if I will fix this or keep using distrho
|
||||||
adwaita-for-steam = pkgs.callPackage ./adwaita-for-steam {src = inputs.adwaita-for-steam;};
|
# adwaita-for-steam = pkgs.callPackage ./adwaita-for-steam {src = inputs.adwaita-for-steam;};
|
||||||
dconf-editor-wrapped = pkgs.callPackage ./dconf-editor-wrapped {};
|
# dconf-editor-wrapped = pkgs.callPackage ./dconf-editor-wrapped {};
|
||||||
dell-b1160w = pkgs.callPackage ./dell-b1160w {};
|
dell-b1160w = pkgs.callPackage ./dell-b1160w {};
|
||||||
firefox-gnome-theme = pkgs.callPackage ./firefox-gnome-theme {src = inputs.firefox-gnome-theme;};
|
firefox-gnome-theme = pkgs.callPackage ./firefox-gnome-theme {src = inputs.firefox-gnome-theme;};
|
||||||
# modules-options-doc = pkgs.callPackage ./modules-options-doc {mylib = mylib;}; # TODO: Borked
|
# modules-options-doc = pkgs.callPackage ./modules-options-doc {mylib = mylib;}; # TODO: Borked
|
||||||
# spotdl-4_1_6 = pkgs.callPackage ./spotdl-4_1_6 {}; # TODO: Old
|
# spotdl-4_1_6 = pkgs.callPackage ./spotdl-4_1_6 {}; # TODO: Old
|
||||||
xdg-desktop-portal-termfilechooser = pkgs.callPackage ./xdg-desktop-portal-termfilechooser {};
|
xdg-desktop-portal-termfilechooser = pkgs.callPackage ./xdg-desktop-portal-termfilechooser {};
|
||||||
wiiu-downloader = pkgs.callPackage ./wiiu-downloader {};
|
# wiiu-downloader = pkgs.callPackage ./wiiu-downloader {};
|
||||||
decker = pkgs.callPackage ./decker {};
|
decker = pkgs.callPackage ./decker {};
|
||||||
}
|
}
|
||||||
|
|||||||
33
env/flake_java.nix
vendored
Normal file
33
env/flake_java.nix
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
description = "Java Environment";
|
||||||
|
|
||||||
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
inputs.devshell.url = "github:numtide/devshell";
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
devshell,
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
config.allowUnfree = true; # For clion
|
||||||
|
overlays = [devshell.overlays.default];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
devShell = pkgs.devshell.mkShell {
|
||||||
|
name = "Java Environment";
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
jdk22
|
||||||
|
jdt-language-server
|
||||||
|
gradle
|
||||||
|
];
|
||||||
|
|
||||||
|
commands = [];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
276
flake.lock
generated
276
flake.lock
generated
@ -2,15 +2,14 @@
|
|||||||
"nodes": {
|
"nodes": {
|
||||||
"devshell": {
|
"devshell": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713532798,
|
"lastModified": 1722113426,
|
||||||
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
|
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
|
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -21,18 +20,17 @@
|
|||||||
},
|
},
|
||||||
"devshell_2": {
|
"devshell_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_3",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713532798,
|
"lastModified": 1722113426,
|
||||||
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
|
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
|
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -43,16 +41,16 @@
|
|||||||
},
|
},
|
||||||
"emacs-overlay": {
|
"emacs-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717033835,
|
"lastModified": 1728205869,
|
||||||
"narHash": "sha256-m+5EQOjc7AKKrPYD+GkAn2W52z92+9IBdIVtTu0WJTY=",
|
"narHash": "sha256-nUoDO1cB/9G26aSWECRU/UhMp7tKX7oE3jK9MgZlK+0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "441ed86922224973b0853255785d3ce88b683b1a",
|
"rev": "705b1d0be622b52a8b40d64a701e56b8924d8fb8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -64,11 +62,11 @@
|
|||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716813977,
|
"lastModified": 1727973442,
|
||||||
"narHash": "sha256-8fabA8OY1n2OcJFbbE03+bMydVANSBrNGo8hkzhXxxU=",
|
"narHash": "sha256-nf+0/UR5TZArp3Dn3NS3nB+ZGqecTOTOZRCFM3a1veM=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "firefox-gnome-theme",
|
"repo": "firefox-gnome-theme",
|
||||||
"rev": "8171c0578feb835ce66d49edba7429f46b7ac3f6",
|
"rev": "59eee4080aa79a0671e98358f91ae1ef0c0806e1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -78,6 +76,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
@ -91,22 +104,6 @@
|
|||||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1696426674,
|
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
@ -115,11 +112,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715865404,
|
"lastModified": 1727826117,
|
||||||
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
|
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
|
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -128,31 +125,16 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-root": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1713493429,
|
|
||||||
"narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=",
|
|
||||||
"owner": "srid",
|
|
||||||
"repo": "flake-root",
|
|
||||||
"rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "srid",
|
|
||||||
"repo": "flake-root",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1726560853,
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -184,11 +166,11 @@
|
|||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1726560853,
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -199,7 +181,10 @@
|
|||||||
},
|
},
|
||||||
"git-hooks": {
|
"git-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": [
|
||||||
|
"nixvim",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
"gitignore": "gitignore",
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
@ -211,11 +196,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716213921,
|
"lastModified": 1728092656,
|
||||||
"narHash": "sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA=",
|
"narHash": "sha256-eMeCTJZ5xBeQ0f9Os7K8DThNVSo9gy4umZLDfF5q6OM=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "0e8fcc54b842ad8428c9e705cb5994eaf05c26a0",
|
"rev": "1211305a5b237771e13fcca0c51e60ad47326a9a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -248,11 +233,11 @@
|
|||||||
},
|
},
|
||||||
"hardware": {
|
"hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716987116,
|
"lastModified": 1728056216,
|
||||||
"narHash": "sha256-uuEkErFVsFdg2K0cKbNQ9JlFSAm/xYqPr4rbPLI91Y8=",
|
"narHash": "sha256-IrO06gFUDTrTlIP3Sz+mRB6WUoO2YsgMtOD3zi0VEt0=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "8251761f93d6f5b91cee45ac09edb6e382641009",
|
"rev": "b7ca02c7565fbf6d27ff20dd6dbd49c5b82eef28",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -268,11 +253,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717052710,
|
"lastModified": 1728041527,
|
||||||
"narHash": "sha256-LRhOxzXmOza5SymhOgnEzA8EAQp+94kkeUYWKKpLJ/U=",
|
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "29c69d9a466e41d46fd3a7a9d0591ef9c113c2ae",
|
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -289,11 +274,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716457508,
|
"lastModified": 1728041527,
|
||||||
"narHash": "sha256-ZxzffLuWRyuMrkVVq7wastNUqeO0HJL9xqfY1QsYaqo=",
|
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "850cb322046ef1a268449cf1ceda5fd24d930b05",
|
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -302,6 +287,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-alien": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nix-filter": "nix-filter",
|
||||||
|
"nix-index-database": "nix-index-database",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726398642,
|
||||||
|
"narHash": "sha256-tBM92BUtvY3vawqzl50VLY/EFhxw9LjuB/QN6QUC4ls=",
|
||||||
|
"owner": "thiagokokada",
|
||||||
|
"repo": "nix-alien",
|
||||||
|
"rev": "399c8e50f10d9bace3a024496e5f4dee28bdfdcd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "thiagokokada",
|
||||||
|
"repo": "nix-alien",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-darwin": {
|
"nix-darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -310,11 +317,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716511055,
|
"lastModified": 1727999297,
|
||||||
"narHash": "sha256-5Fe/DGgvMhPEMl9VdVxv3zvwRcwNDmW5eRJ0gk72w7U=",
|
"narHash": "sha256-LTJuQPCsSItZ/8TieFeP30iY+uaLoD0mT0tAj1gLeyQ=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "0bea8222f6e83247dd13b055d83e64bce02ee532",
|
"rev": "8c8388ade72e58efdeae71b4cbb79e872c23a56b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -323,6 +330,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-filter": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710156097,
|
||||||
|
"narHash": "sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj+rL8sRQsSM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "nix-filter",
|
||||||
|
"rev": "3342559a24e85fc164b295c3444e8a139924675b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "nix-filter",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711997201,
|
"lastModified": 1711997201,
|
||||||
@ -339,13 +361,34 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-index-database": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-alien",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726370017,
|
||||||
|
"narHash": "sha256-CJOV4JiLhd++w9K+h2z00DiB4R1CCuElWzhldrXSq5w=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"rev": "0a2fba621b6bbf06be0b4edd974236e3d2fcc1a9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704161960,
|
"lastModified": 1722073938,
|
||||||
"narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=",
|
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "63143ac2c9186be6d9da6035fa22620018c85932",
|
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -357,27 +400,27 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716633019,
|
"lastModified": 1728067476,
|
||||||
"narHash": "sha256-xim1b5/HZYbWaZKyI7cn9TJCM6ewNVZnesRr00mXeS4=",
|
"narHash": "sha256-/uJcVXuBt+VFCPQIX+4YnYrHaubJSx4HoNsJVNRgANM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9d29cd266cebf80234c98dd0b87256b6be0af44e",
|
"rev": "6e6b3dd395c3b1eb9be9f2d096383a8d05add030",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-23.11",
|
"ref": "nixos-24.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716769173,
|
"lastModified": 1728018373,
|
||||||
"narHash": "sha256-7EXDb5WBw+d004Agt+JHC/Oyh/KTUglOaQ4MNjBbo5w=",
|
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9ca3f649614213b2aaf5f1e16ec06952fe4c2632",
|
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -389,15 +432,15 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716769173,
|
"lastModified": 1726062873,
|
||||||
"narHash": "sha256-7EXDb5WBw+d004Agt+JHC/Oyh/KTUglOaQ4MNjBbo5w=",
|
"narHash": "sha256-IiA3jfbR7K/B5+9byVi9BZGWTD4VSbWe8VLpp9B/iYk=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9ca3f649614213b2aaf5f1e16ec06952fe4c2632",
|
"rev": "4f807e8940284ad7925ebd0a0993d2a1791acb2f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
@ -405,15 +448,15 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716509168,
|
"lastModified": 1728018373,
|
||||||
"narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=",
|
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bfb7a882678e518398ce9a31a881538679f6f092",
|
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
@ -422,21 +465,23 @@
|
|||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell_2",
|
"devshell": "devshell_2",
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"flake-root": "flake-root",
|
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717012327,
|
"lastModified": 1728176751,
|
||||||
"narHash": "sha256-hmm9DA0+7RSbxudrscrjKJ3EGSwxvrkpjpCEAa+GtT8=",
|
"narHash": "sha256-hVmdzrZMFC/5q3dSjbKX9qocWN9coPBhs8muLsL3738=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "2031a09b36c19526aa82d27167942edf62915b66",
|
"rev": "d42c804ad515f45f8addaf5a4bb0b8ce405ea140",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -447,11 +492,11 @@
|
|||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717054761,
|
"lastModified": 1728215254,
|
||||||
"narHash": "sha256-LBrHEBC0S7C6zjQTsjahAvxxlDH3cbZmEgHiri9o4SM=",
|
"narHash": "sha256-z/fDpgmuRI/X3h74cGph7DU0VEBC8VWcrKY8AdTVABw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "a4eff07f9bbcf74522c642c72047ed03c3831501",
|
"rev": "e6ad3593324e2a96526177ec7c3041ea97bf6946",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -460,6 +505,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nuschtosSearch": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728017046,
|
||||||
|
"narHash": "sha256-ofWYux/uUAv8wq7sWw8XWke0sh8p4qYxSOn8d+EaJ8c=",
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"rev": "ba81d9c1eae20fc3a1cd066062a05ac2e799e629",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell",
|
"devshell": "devshell",
|
||||||
@ -467,8 +534,9 @@
|
|||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"hardware": "hardware",
|
"hardware": "hardware",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"nix-alien": "nix-alien",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
"nur": "nur"
|
"nur": "nur"
|
||||||
}
|
}
|
||||||
@ -526,11 +594,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715940852,
|
"lastModified": 1727984844,
|
||||||
"narHash": "sha256-wJqHMg/K6X3JGAE9YLM0LsuKrKb4XiBeVaoeMNlReZg=",
|
"narHash": "sha256-xpRqITAoD8rHlXQafYZOLvUXCF6cnZkPfoq67ThN0Hc=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "2fba33a182602b9d49f0b2440513e5ee091d838b",
|
"rev": "4446c7a6fc0775df028c5a3f6727945ba8400e64",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
31
flake.nix
31
flake.nix
@ -11,30 +11,31 @@
|
|||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
hardware.url = "github:nixos/nixos-hardware";
|
hardware.url = "github:nixos/nixos-hardware";
|
||||||
|
|
||||||
# Home manager
|
# Home Manager
|
||||||
home-manager.url = "github:nix-community/home-manager";
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# Other Flakes
|
# Other
|
||||||
emacs-overlay.url = "github:nix-community/emacs-overlay";
|
|
||||||
nur.url = "github:nix-community/NUR";
|
|
||||||
devshell.url = "github:numtide/devshell";
|
|
||||||
nixvim.url = "github:nix-community/nixvim";
|
nixvim.url = "github:nix-community/nixvim";
|
||||||
|
nixvim.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
emacs-overlay.url = "github:nix-community/emacs-overlay";
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
||||||
|
nix-alien.url = "github:thiagokokada/nix-alien";
|
||||||
|
devshell.url = "github:numtide/devshell";
|
||||||
|
nur.url = "github:nix-community/NUR"; # Nix User Repository
|
||||||
|
firefox-gnome-theme.url = "github:rafaelmardojai/firefox-gnome-theme";
|
||||||
|
firefox-gnome-theme.flake = false;
|
||||||
|
|
||||||
|
# Disabled
|
||||||
|
# adwaita-for-steam.url = "github:tkashkin/Adwaita-for-Steam";
|
||||||
|
# adwaita-for-steam.flake = false;
|
||||||
|
# plasma-manager.url = "github:pjones/plasma-manager";
|
||||||
|
# plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
# plasma-manager.inputs.home-manager.follows = "home-manager";
|
||||||
# musnix.url = "github:musnix/musnix";
|
# musnix.url = "github:musnix/musnix";
|
||||||
# nixified-ai.url = "github:nixified-ai/flake";
|
# nixified-ai.url = "github:nixified-ai/flake";
|
||||||
# nixos-conf-editor.url = "github:vlinkz/nixos-conf-editor";
|
# nixos-conf-editor.url = "github:vlinkz/nixos-conf-editor";
|
||||||
# nix-matlab.url = "gitlab:doronbehar/nix-matlab";
|
# nix-matlab.url = "gitlab:doronbehar/nix-matlab";
|
||||||
|
|
||||||
# plasma-manager.url = "github:pjones/plasma-manager";
|
|
||||||
# plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
# plasma-manager.inputs.home-manager.follows = "home-manager";
|
|
||||||
|
|
||||||
firefox-gnome-theme.url = "github:rafaelmardojai/firefox-gnome-theme";
|
|
||||||
firefox-gnome-theme.flake = false;
|
|
||||||
|
|
||||||
# adwaita-for-steam.url = "github:tkashkin/Adwaita-for-Steam";
|
|
||||||
# adwaita-for-steam.flake = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Outputs is a function that takes the inputs as arguments.
|
# Outputs is a function that takes the inputs as arguments.
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
# This is a module
|
# This is a module
|
||||||
# Because no imports/options/config is defined explicitly, everything is treated as config
|
# Because no imports/options/config is defined explicitly, everything is treated as config
|
||||||
# { inputs, lib, ... }: { ... } gets turned into { inputs, lib, ... }: { config = { ... }; } implicitly
|
# { inputs, lib, ... }: { ... } gets turned into { inputs, lib, ... }: { config = { ... }; } implicitly
|
||||||
|
# TODO: Add nixified.ai module
|
||||||
rec {
|
rec {
|
||||||
# Every module is a nix expression, specifically a function { inputs, lib, ... }: { ... }
|
# Every module is a nix expression, specifically a function { inputs, lib, ... }: { ... }
|
||||||
# Every module (/function) is called with the same arguments as this module (home.nix)
|
# Every module (/function) is called with the same arguments as this module (home.nix)
|
||||||
@ -63,7 +64,7 @@ rec {
|
|||||||
firefox = {
|
firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wayland = true;
|
wayland = true;
|
||||||
vaapi = true; # NOTE: Crashes AMDGPU driver fairly often (don't know why exactly)
|
vaapi = true;
|
||||||
disableTabBar = true;
|
disableTabBar = true;
|
||||||
defaultBookmarks = true;
|
defaultBookmarks = true;
|
||||||
gnomeTheme = true;
|
gnomeTheme = true;
|
||||||
@ -113,12 +114,11 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
autostart = {
|
autostart = {
|
||||||
immediate = [
|
# immediate = [];
|
||||||
"kitty"
|
|
||||||
];
|
|
||||||
|
|
||||||
delayed = [
|
delayed = [
|
||||||
# "kdeconnect-indicator"
|
# "kdeconnect-indicator"
|
||||||
|
"kitty"
|
||||||
"nextcloud --background"
|
"nextcloud --background"
|
||||||
"keepassxc"
|
"keepassxc"
|
||||||
];
|
];
|
||||||
@ -131,14 +131,17 @@ rec {
|
|||||||
"jetbrains-idea"
|
"jetbrains-idea"
|
||||||
"jetbrains-pycharm"
|
"jetbrains-pycharm"
|
||||||
"jetbrains-rustrover"
|
"jetbrains-rustrover"
|
||||||
|
"jetbrains-rider"
|
||||||
"code-url-handler"
|
"code-url-handler"
|
||||||
];
|
];
|
||||||
"3" = [
|
"3" = [
|
||||||
"obsidian"
|
"obsidian"
|
||||||
|
"unityhub"
|
||||||
|
"Unity"
|
||||||
|
"chromium-browser"
|
||||||
];
|
];
|
||||||
"4" = [
|
"4" = [
|
||||||
"firefox"
|
"firefox"
|
||||||
"chromium-browser"
|
|
||||||
"Google-chrome"
|
"Google-chrome"
|
||||||
];
|
];
|
||||||
"7" = [
|
"7" = [
|
||||||
@ -149,6 +152,7 @@ rec {
|
|||||||
];
|
];
|
||||||
"9" = [
|
"9" = [
|
||||||
"discord"
|
"discord"
|
||||||
|
"vesktop"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -166,12 +170,15 @@ rec {
|
|||||||
"kitty"
|
"kitty"
|
||||||
"Alacritty"
|
"Alacritty"
|
||||||
"discord"
|
"discord"
|
||||||
|
"signal"
|
||||||
|
"vesktop"
|
||||||
"Spotify"
|
"Spotify"
|
||||||
"obsidian"
|
"obsidian"
|
||||||
"jetbrains-clion"
|
"jetbrains-clion"
|
||||||
"jetbrains-idea"
|
"jetbrains-idea"
|
||||||
"jetbrains-pycharm"
|
"jetbrains-pycharm"
|
||||||
"jetbrains-rustrover"
|
"jetbrains-rustrover"
|
||||||
|
"jetbrains-rider"
|
||||||
"code-url-handler"
|
"code-url-handler"
|
||||||
"neovide"
|
"neovide"
|
||||||
];
|
];
|
||||||
@ -179,37 +186,12 @@ rec {
|
|||||||
|
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
|
|
||||||
misc = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
keepass = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false; # TODO: This option should use hyprland module
|
|
||||||
};
|
|
||||||
|
|
||||||
protonmail = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false; # TODO: This option should use hyprland module
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
neovim = {
|
neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alias = true;
|
alias = true;
|
||||||
neovide = true;
|
neovide = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# lazyvim = {
|
|
||||||
# enable = true;
|
|
||||||
# alias = true;
|
|
||||||
# neovide = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
nextcloud = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false; # TODO: This option should use hyprland module
|
|
||||||
};
|
|
||||||
|
|
||||||
nnn.enable = true;
|
nnn.enable = true;
|
||||||
|
|
||||||
# ranger = {
|
# ranger = {
|
||||||
@ -223,58 +205,30 @@ rec {
|
|||||||
theme = "Foggy-Lake";
|
theme = "Foggy-Lake";
|
||||||
};
|
};
|
||||||
|
|
||||||
vscode.enable = true;
|
vscode.enable = false; # TODO: Had broken package ms-vscode-cpptools
|
||||||
|
|
||||||
waybar = {
|
waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
manual.manpages.enable = true;
|
manual = {
|
||||||
manual.html.enable = true;
|
manpages.enable = true;
|
||||||
|
html.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
# Make fonts installed through user packages available to applications
|
# Make fonts installed through user packages available to applications
|
||||||
# NOTE: I don't think I need this anymore as all fonts are installed through the system config but let's keep this just in case
|
# NOTE: I don't think I need this anymore as all fonts are installed through the system config but let's keep this just in case
|
||||||
fonts.fontconfig.enable = true; # Also updates the font-cache
|
fonts.fontconfig.enable = true; # Also updates the font-cache
|
||||||
|
|
||||||
# Generate a list of installed user packages in ~/.local/share/current-user-packages
|
xdg = {
|
||||||
home.file.".local/share/current-user-packages".text = let
|
mime.enable = true;
|
||||||
packages = builtins.map (p: "${p.name}") home.packages;
|
mimeApps = {
|
||||||
sortedUnique = builtins.sort builtins.lessThan (lib.unique packages);
|
enable = true;
|
||||||
formatted = builtins.concatStringsSep "\n" sortedUnique;
|
associations.added = nixosConfig.xdg.mime.addedAssociations;
|
||||||
in
|
associations.removed = nixosConfig.xdg.mime.removedAssociations;
|
||||||
formatted;
|
inherit (nixosConfig.xdg.mime) defaultApplications; # Equal to "defaultApplications = nixosConfig.xdg.mime.defaultApplications"
|
||||||
|
};
|
||||||
home.file.".config/mpv" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ../../config/mpv;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Latex module
|
|
||||||
home.file."texmf/tex/latex/custom/christex.sty".source = ../../config/latex/christex.sty;
|
|
||||||
home.file."Notes/Obsidian/Chriphost/christex.sty".source = ../../config/latex/christex.sty; # For obsidian notes
|
|
||||||
home.file.".indentconfig.yaml".source = ../../config/latex/.indentconfig.yaml;
|
|
||||||
home.file.".indentsettings.yaml".source = ../../config/latex/.indentsettings.yaml;
|
|
||||||
# TODO: Use mkLink
|
|
||||||
# home.file."Notes/Obsidian/Chriphost/latex_snippets.json".source = ../../config/obsidian/latex_snippets.json;
|
|
||||||
home.file."Notes/Obsidian/Chriphost/.obsidian/snippets/latex_preview.css".source = ../../config/obsidian/css_snippets/latex_preview.css;
|
|
||||||
|
|
||||||
# TODO: If navi enabled
|
|
||||||
# TODO: Symlink this, so the config doesn't have to be rebuilt every time
|
|
||||||
home.file.".local/share/navi/cheats/christoph.cheat".source = ../../config/navi/christoph.cheat;
|
|
||||||
|
|
||||||
home.activation = {
|
|
||||||
linkObsidianLatexSnippets =
|
|
||||||
lib.hm.dag.entryAfter ["writeBoundary"]
|
|
||||||
(mylib.modules.mkLink "~/NixFlake/config/obsidian/latex_snippets.json" "~/Notes/Obsidian/Chriphost/latex_snippets.json");
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mime.enable = true;
|
|
||||||
xdg.mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
associations.added = nixosConfig.xdg.mime.addedAssociations;
|
|
||||||
associations.removed = nixosConfig.xdg.mime.removedAssociations;
|
|
||||||
inherit (nixosConfig.xdg.mime) defaultApplications; # Equal to "defaultApplications = nixosConfig.xdg.mime.defaultApplications"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
@ -306,147 +260,160 @@ rec {
|
|||||||
# WINEFSYNC = 1;
|
# WINEFSYNC = 1;
|
||||||
# WINEPREFIX = "/home/christoph/.wine";
|
# WINEPREFIX = "/home/christoph/.wine";
|
||||||
|
|
||||||
# NOTE: GTK_IM_MODULE, QT_IM_MODULE, XMODIFIERS are set by HomeManager fcitx5 module
|
# GTK_IM_MODULE, QT_IM_MODULE, XMODIFIERS are set by HomeManager fcitx5 module
|
||||||
};
|
};
|
||||||
|
|
||||||
|
file = {
|
||||||
|
# Generate a list of installed user packages in ~/.local/share/current-user-packages
|
||||||
|
".local/share/current-user-packages".text = let
|
||||||
|
packages = builtins.map (p: "${p.name}") home.packages;
|
||||||
|
sortedUnique = builtins.sort builtins.lessThan (lib.unique packages);
|
||||||
|
formatted = builtins.concatStringsSep "\n" sortedUnique;
|
||||||
|
in
|
||||||
|
formatted;
|
||||||
|
|
||||||
|
".config/mpv" = {
|
||||||
|
recursive = true;
|
||||||
|
source = ../../config/mpv;
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: Latex module
|
||||||
|
"texmf/tex/latex/custom/christex.sty".source = ../../config/latex/christex.sty;
|
||||||
|
"Notes/Obsidian/Chriphost/christex.sty".source = ../../config/latex/christex.sty; # For obsidian notes
|
||||||
|
".indentconfig.yaml".source = ../../config/latex/.indentconfig.yaml;
|
||||||
|
".indentsettings.yaml".source = ../../config/latex/.indentsettings.yaml;
|
||||||
|
# TODO: Use mkLink
|
||||||
|
# "Notes/Obsidian/Chriphost/latex_snippets.json".source = ../../config/obsidian/latex_snippets.json;
|
||||||
|
"Notes/Obsidian/Chriphost/.obsidian/snippets/latex_preview.css".source = ../../config/obsidian/css_snippets/latex_preview.css;
|
||||||
|
|
||||||
|
# TODO: If navi enabled
|
||||||
|
# TODO: Symlink this, so the config doesn't have to be rebuilt every time
|
||||||
|
".local/share/navi/cheats/christoph.cheat".source = ../../config/navi/christoph.cheat;
|
||||||
|
};
|
||||||
|
|
||||||
|
activation = {
|
||||||
|
linkObsidianLatexSnippets =
|
||||||
|
lib.hm.dag.entryAfter ["writeBoundary"]
|
||||||
|
(mylib.modules.mkLink "~/NixFlake/config/obsidian/latex_snippets.json" "~/Notes/Obsidian/Chriphost/latex_snippets.json");
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: Make a module for standard UNIX replacements
|
||||||
|
# Add stuff for your user as you see fit:
|
||||||
|
packages = with pkgs; [
|
||||||
|
# Shell utils
|
||||||
|
(ripgrep.override {withPCRE2 = true;}) # fast as fuck
|
||||||
|
gdu # Alternative to du-dust (I like it better)
|
||||||
|
duf # Disk usage analyzer (for all disk overview)
|
||||||
|
sd # sed alternative
|
||||||
|
fclones # duplicate file finder
|
||||||
|
tealdeer # very fast tldr (so readable man)
|
||||||
|
atool # Archive preview
|
||||||
|
ffmpegthumbnailer # Video thumbnails
|
||||||
|
mediainfo
|
||||||
|
tree # Folder preview
|
||||||
|
unrar
|
||||||
|
p7zip
|
||||||
|
unzip
|
||||||
|
progress
|
||||||
|
tokei # Text file statistics in a project
|
||||||
|
appimage-run
|
||||||
|
nvd # nix rebuild diff
|
||||||
|
file
|
||||||
|
# spotdl # TODO: Borked
|
||||||
|
|
||||||
|
# Hardware/Software info
|
||||||
|
pciutils # lspci
|
||||||
|
glxinfo # opengl info
|
||||||
|
wayland-utils # wayland-info
|
||||||
|
aha # ansi html adapter? TODO: Why did I install this?
|
||||||
|
clinfo # OpenCL info
|
||||||
|
vulkan-tools # vulkaninfo
|
||||||
|
libva-utils # vainfo
|
||||||
|
vdpauinfo
|
||||||
|
hwloc
|
||||||
|
lm_sensors
|
||||||
|
acpica-tools # Dump ACPI tables etc.
|
||||||
|
|
||||||
|
# Video/Image utils
|
||||||
|
ffmpeg_7-full # I love ffmpeg (including ffplay)
|
||||||
|
ffmpeg-normalize
|
||||||
|
imagemagick # Convert image (magic)
|
||||||
|
# ueberzugpp # Display images in terminal (alacritty) # TODO: Build failure
|
||||||
|
|
||||||
|
# Document utils
|
||||||
|
# TODO: Latex module with individual packages or HomeManager
|
||||||
|
texlive.combined.scheme-full
|
||||||
|
poppler_utils # pdfunite
|
||||||
|
graphviz # generate graphs from code
|
||||||
|
plantuml
|
||||||
|
gnuplot # generate function plots
|
||||||
|
pdf2svg
|
||||||
|
pandoc # document converting madness
|
||||||
|
inkscape # for latex
|
||||||
|
|
||||||
|
# Networking
|
||||||
|
dig
|
||||||
|
tcpdump
|
||||||
|
traceroute
|
||||||
|
wireshark
|
||||||
|
gping # ping with graph
|
||||||
|
curlie # curl a'la httpie
|
||||||
|
wget # download that shit
|
||||||
|
dogdns # dns client
|
||||||
|
rsync # cp on steroids
|
||||||
|
rclone # Rsync for cloud
|
||||||
|
httpie # Cool http client
|
||||||
|
# suricata
|
||||||
|
cifs-utils # Mount samba shares
|
||||||
|
nfs-utils
|
||||||
|
sshfs
|
||||||
|
protonvpn-cli
|
||||||
|
# protonvpn-gui # NOTE: Doesn't work
|
||||||
|
|
||||||
|
# GUI apps
|
||||||
|
vlc
|
||||||
|
cool-retro-term
|
||||||
|
ventoy-full # Bootable USB for many ISOs
|
||||||
|
sqlitebrowser # To modify tables
|
||||||
|
dbeaver-bin # To import/export data + diagrams
|
||||||
|
hoppscotch # Test APIs
|
||||||
|
# decker # TODO: Build failure
|
||||||
|
signal-desktop
|
||||||
|
filezilla
|
||||||
|
anki
|
||||||
|
# octave # GNU matlab basically
|
||||||
|
font-manager
|
||||||
|
nextcloud-client
|
||||||
|
keepassxc
|
||||||
|
protonmail-bridge
|
||||||
|
thunderbird # TODO: Email module
|
||||||
|
# xwaylandvideobridge # NOTE: Doesn't work
|
||||||
|
AusweisApp2
|
||||||
|
|
||||||
|
# Office
|
||||||
|
wacomtablet # For xournalpp/krita
|
||||||
|
xournalpp # Write with a pen, like old people
|
||||||
|
# libreoffice-qt
|
||||||
|
hunspell # I cna't type
|
||||||
|
hunspellDicts.en_US
|
||||||
|
hunspellDicts.de_DE
|
||||||
|
# obsidian # knowledge-base # NOTE: Use flatpak
|
||||||
|
# logseq # knowledge-base
|
||||||
|
|
||||||
|
# TODO: Module, I need to add python packages from multiple modules to the same interpreter
|
||||||
|
python312
|
||||||
|
|
||||||
|
# Use NixCommunity binary cache
|
||||||
|
cachix
|
||||||
|
|
||||||
|
# Generate documentation
|
||||||
|
# modules-options-doc
|
||||||
|
];
|
||||||
|
|
||||||
# Do not change
|
# Do not change
|
||||||
stateVersion = "22.05";
|
stateVersion = "22.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Split this more between laptop and desktop...
|
|
||||||
# TODO: Make a module for standard UNIX replacements
|
|
||||||
# Add stuff for your user as you see fit:
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# Shell utils
|
|
||||||
(ripgrep.override {withPCRE2 = true;}) # fast as fuck
|
|
||||||
gdu # Alternative to du-dust (I like it better)
|
|
||||||
duf # Disk usage analyzer (for all disk overview)
|
|
||||||
sd # sed alternative
|
|
||||||
fclones # duplicate file finder
|
|
||||||
tealdeer # very fast tldr (so readable man)
|
|
||||||
atool # Archive preview
|
|
||||||
ffmpegthumbnailer # Video thumbnails
|
|
||||||
mediainfo
|
|
||||||
tree # Folder preview
|
|
||||||
unrar
|
|
||||||
p7zip
|
|
||||||
unzip
|
|
||||||
progress
|
|
||||||
tokei # Text file statistics in a project
|
|
||||||
appimage-run
|
|
||||||
nvd # nix rebuild diff
|
|
||||||
file
|
|
||||||
# spotdl # TODO: Borked
|
|
||||||
|
|
||||||
# Hardware/Software info
|
|
||||||
pciutils # lspci
|
|
||||||
glxinfo # opengl info
|
|
||||||
wayland-utils # wayland-info
|
|
||||||
aha # ansi html adapter? TODO: Why did I install this?
|
|
||||||
clinfo # OpenCL info
|
|
||||||
vulkan-tools # vulkaninfo
|
|
||||||
libva-utils # vainfo
|
|
||||||
vdpauinfo
|
|
||||||
hwloc
|
|
||||||
lm_sensors
|
|
||||||
acpica-tools # Dump ACPI tables etc.
|
|
||||||
|
|
||||||
# Video/Image utils
|
|
||||||
ffmpeg_5-full # I love ffmpeg (v5, including ffplay)
|
|
||||||
ffmpeg-normalize
|
|
||||||
x265
|
|
||||||
imagemagick # Convert image (magic)
|
|
||||||
ueberzugpp # Display images in terminal (alacritty)
|
|
||||||
|
|
||||||
# Document utils
|
|
||||||
# TODO: Latex module with individual packages or HomeManager
|
|
||||||
texlive.combined.scheme-full
|
|
||||||
poppler_utils # pdfunite
|
|
||||||
graphviz # generate graphs from code
|
|
||||||
plantuml
|
|
||||||
gnuplot # generate function plots
|
|
||||||
pdf2svg
|
|
||||||
pandoc # document converting madness
|
|
||||||
|
|
||||||
# Networking
|
|
||||||
dig
|
|
||||||
tcpdump
|
|
||||||
traceroute
|
|
||||||
wireshark
|
|
||||||
gping # ping with graph
|
|
||||||
curlie # curl a'la httpie
|
|
||||||
wget # download that shit
|
|
||||||
dogdns # dns client
|
|
||||||
rsync # cp on steroids
|
|
||||||
rclone # Rsync for cloud
|
|
||||||
httpie # Cool http client
|
|
||||||
# suricata
|
|
||||||
cifs-utils # Mount samba shares
|
|
||||||
nfs-utils
|
|
||||||
sshfs
|
|
||||||
protonvpn-cli
|
|
||||||
|
|
||||||
# GUI apps
|
|
||||||
vlc
|
|
||||||
cool-retro-term
|
|
||||||
ventoy-full # Bootable USB for many ISOs
|
|
||||||
# spotify # Uses flatpak
|
|
||||||
sqlitebrowser # To modify tables
|
|
||||||
dbeaver-bin # To import/export data + diagrams
|
|
||||||
hoppscotch # Test APIs
|
|
||||||
# decker # TODO: Build failure
|
|
||||||
signal-desktop
|
|
||||||
filezilla
|
|
||||||
# calibre # Do I even read
|
|
||||||
# virt-manager
|
|
||||||
# gource # Visualize git commit log, completely useless
|
|
||||||
# anki-bin # Use anki-bin as anki is some versions behind NOTE: anki-bin doesn't support fcitx5 :(
|
|
||||||
anki
|
|
||||||
# inputs.nixos-conf-editor.packages."x86_64-linux".nixos-conf-editor
|
|
||||||
# octave # GNU matlab basically
|
|
||||||
# logisim-evolution # Digital circuit simulator
|
|
||||||
# digital # Digital circuit simulator
|
|
||||||
# okteta # hex editor
|
|
||||||
# kdiff3 # diff/patch tool
|
|
||||||
font-manager
|
|
||||||
|
|
||||||
# Office
|
|
||||||
# sioyek # Scientific pdf reader # HM program
|
|
||||||
xournalpp # Write with a pen, like old people
|
|
||||||
# libreoffice-qt
|
|
||||||
hunspell # I cna't type
|
|
||||||
hunspellDicts.en_US
|
|
||||||
hunspellDicts.de_DE
|
|
||||||
obsidian # knowledge-base
|
|
||||||
# logseq # knowledge-base
|
|
||||||
|
|
||||||
# TODO: Module, I need to add python packages from multiple modules to the same interpreter
|
|
||||||
python312
|
|
||||||
jetbrains.clion
|
|
||||||
jetbrains.rust-rover
|
|
||||||
jetbrains.pycharm-professional
|
|
||||||
jetbrains.idea-ultimate
|
|
||||||
|
|
||||||
# Media
|
|
||||||
wacomtablet
|
|
||||||
# blender
|
|
||||||
# godot_4
|
|
||||||
obs-studio
|
|
||||||
# vlc # Addition to mpv without any shaders etc
|
|
||||||
kdenlive
|
|
||||||
krita
|
|
||||||
inkscape
|
|
||||||
# handbrake
|
|
||||||
# makemkv
|
|
||||||
AusweisApp2
|
|
||||||
|
|
||||||
# Use NixCommunity binary cache
|
|
||||||
cachix
|
|
||||||
|
|
||||||
# Generate documentation
|
|
||||||
# modules-options-doc
|
|
||||||
];
|
|
||||||
|
|
||||||
# home.file.".options-doc".source = "${pkgs.modules-options-doc}";
|
# home.file.".options-doc".source = "${pkgs.modules-options-doc}";
|
||||||
|
|
||||||
# Packages with extra options managed by HomeManager natively
|
# Packages with extra options managed by HomeManager natively
|
||||||
@ -627,7 +594,7 @@ rec {
|
|||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
delta.enable = true;
|
delta.enable = false; # TODO: Build failure
|
||||||
|
|
||||||
userEmail = "christoph.urlacher@protonmail.com";
|
userEmail = "christoph.urlacher@protonmail.com";
|
||||||
userName = "Christoph Urlacher";
|
userName = "Christoph Urlacher";
|
||||||
@ -662,18 +629,20 @@ rec {
|
|||||||
# Realtime Motion Interpolation: https://gist.github.com/phiresky/4bfcfbbd05b3c2ed8645
|
# Realtime Motion Interpolation: https://gist.github.com/phiresky/4bfcfbbd05b3c2ed8645
|
||||||
mpv = {
|
mpv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# NOTE: wrapMpv explained here: https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/applications/video/mpv/wrapper.nix#L84
|
|
||||||
|
# TODO: wrapMpv was removed
|
||||||
|
# Explained here: https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/applications/video/mpv/wrapper.nix#L84
|
||||||
# wrapMpv gets two args: the mpv derivation and some options
|
# wrapMpv gets two args: the mpv derivation and some options
|
||||||
# Possible overrides for derivation: https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/applications/video/mpv/default.nix#L222
|
# Possible overrides for derivation: https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/applications/video/mpv/default.nix#L222
|
||||||
package = pkgs.wrapMpv (pkgs.mpv-unwrapped.override {vapoursynthSupport = true;}) {
|
# package = pkgs.wrapMpv (pkgs.mpv-unwrapped.override {vapoursynthSupport = true;}) {
|
||||||
youtubeSupport = true;
|
# youtubeSupport = true;
|
||||||
extraMakeWrapperArgs = [
|
# extraMakeWrapperArgs = [
|
||||||
"--prefix"
|
# "--prefix"
|
||||||
"LD_LIBRARY_PATH"
|
# "LD_LIBRARY_PATH"
|
||||||
":"
|
# ":"
|
||||||
"${pkgs.vapoursynth-mvtools}/lib"
|
# "${pkgs.vapoursynth-mvtools}/lib"
|
||||||
];
|
# ];
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
# Interactive Cheatsheets
|
# Interactive Cheatsheets
|
||||||
@ -815,6 +784,8 @@ rec {
|
|||||||
"com.discordapp.Discord"
|
"com.discordapp.Discord"
|
||||||
"com.spotify.Client"
|
"com.spotify.Client"
|
||||||
"com.google.Chrome"
|
"com.google.Chrome"
|
||||||
|
"md.obsidian.Obsidian"
|
||||||
|
"dev.vencord.Vesktop"
|
||||||
];
|
];
|
||||||
|
|
||||||
uninstallUnmanaged = true;
|
uninstallUnmanaged = true;
|
||||||
@ -826,9 +797,8 @@ rec {
|
|||||||
|
|
||||||
overrides = {
|
overrides = {
|
||||||
global = {
|
global = {
|
||||||
# NOTE: Makes discord crash
|
|
||||||
# Force Wayland by default
|
# Force Wayland by default
|
||||||
# Context.sockets = ["wayland" "!x11" "!fallback-x11"];
|
# Context.sockets = ["wayland" "!x11" "!fallback-x11"]; # NOTE: Makes discord crash
|
||||||
|
|
||||||
Context.filesystems = ["/nix/store:ro"];
|
Context.filesystems = ["/nix/store:ro"];
|
||||||
|
|
||||||
@ -844,6 +814,11 @@ rec {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Fix Discord rich presence for Flatpak
|
||||||
|
systemd.user.tmpfiles.rules = [
|
||||||
|
"L %t/discord-ipc-0 - - - - app/com.discordapp.Discord/discord-ipc-0"
|
||||||
|
];
|
||||||
|
|
||||||
# Nicely reload system units when changing configs
|
# Nicely reload system units when changing configs
|
||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
# Here goes the stuff that will only be enabled on the desktop
|
# Here goes the stuff that will only be enabled on the desktop
|
||||||
{...}: {
|
{pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
../../modules
|
../../modules
|
||||||
];
|
];
|
||||||
@ -48,53 +48,35 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# audio = {
|
# TODO: Also set the dunst monitor
|
||||||
# enable = false;
|
|
||||||
|
|
||||||
# carla.enable = false;
|
|
||||||
# bitwig.enable = true; # TODO: Check what happens when upgrade plan ends, do I need to pin the version then?
|
|
||||||
# tenacity.enable = true;
|
|
||||||
|
|
||||||
# faust.enable = true;
|
|
||||||
# bottles.enable = false;
|
|
||||||
# yabridge.enable = true;
|
|
||||||
# yabridge.autoSync = true;
|
|
||||||
|
|
||||||
# noisesuppression = {
|
|
||||||
# noisetorch.enable = false;
|
|
||||||
# noisetorch.autostart = false;
|
|
||||||
# easyeffects.enable = false;
|
|
||||||
# easyeffects.autostart = false;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# cardinal.enable = true;
|
|
||||||
# distrho.enable = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# gaming = {
|
|
||||||
# enable = false;
|
|
||||||
|
|
||||||
# prism.enable = true;
|
|
||||||
# bottles.enable = false;
|
|
||||||
# cemu.enable = true;
|
|
||||||
# # TODO: Webcord
|
|
||||||
# # discordChromium.enable = false;
|
|
||||||
# # discordElectron.enable = false; # This is the nixpkgs version, prefer the one from flatpak module
|
|
||||||
# # dwarffortress.enable = false;
|
|
||||||
|
|
||||||
# steam = {
|
|
||||||
# enable = true;
|
|
||||||
# gamescope = true;
|
|
||||||
# adwaita = false;
|
|
||||||
# protonup = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
waybar.monitor = "HDMI-A-1";
|
waybar.monitor = "HDMI-A-1";
|
||||||
};
|
};
|
||||||
|
|
||||||
# home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# quartus-prime-lite # Intel FPGA design software
|
# quartus-prime-lite # Intel FPGA design software
|
||||||
# ];
|
|
||||||
|
# Don't want heavy IDE's on the laptop
|
||||||
|
jetbrains.clion
|
||||||
|
jetbrains.rust-rover
|
||||||
|
jetbrains.pycharm-professional
|
||||||
|
jetbrains.idea-ultimate
|
||||||
|
|
||||||
|
# unityhub
|
||||||
|
# jetbrains.rider
|
||||||
|
# (with dotnetCorePackages;
|
||||||
|
# combinePackages [
|
||||||
|
# sdk_6_0_1xx
|
||||||
|
# sdk_7_0_3xx
|
||||||
|
# sdk_8_0_2xx
|
||||||
|
# ]) # For Rider/Unity
|
||||||
|
# mono # For Rider/Unity
|
||||||
|
|
||||||
|
blender
|
||||||
|
# godot_4
|
||||||
|
obs-studio
|
||||||
|
kdenlive
|
||||||
|
krita
|
||||||
|
# makemkv
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,20 +1,19 @@
|
|||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./audio
|
# ./audio
|
||||||
./chromium
|
./chromium
|
||||||
./emacs
|
./emacs
|
||||||
./email
|
./email
|
||||||
./firefox
|
./firefox
|
||||||
./fish
|
./fish
|
||||||
./flatpak
|
# ./flatpak
|
||||||
./gaming
|
# ./gaming
|
||||||
./helix
|
./helix
|
||||||
./hyprland
|
./hyprland
|
||||||
./kitty
|
./kitty
|
||||||
./lazyvim
|
# ./misc
|
||||||
./misc
|
|
||||||
./neovim
|
./neovim
|
||||||
./nextcloud
|
# ./nextcloud
|
||||||
./nnn
|
./nnn
|
||||||
./ranger
|
./ranger
|
||||||
./rofi
|
./rofi
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
# Example: https://beb.ninja/post/email/
|
# Example: https://beb.ninja/post/email/
|
||||||
# Example: https://sbr.pm/configurations/mails.html
|
# Example: https://sbr.pm/configurations/mails.html
|
||||||
|
# TODO: Protonmail-bridge
|
||||||
|
# TODO: Change to use thunderbird only
|
||||||
# NOTE: The passwords must exist in kwallet
|
# NOTE: The passwords must exist in kwallet
|
||||||
# TODO: Emacs mail config
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
nixosConfig,
|
nixosConfig,
|
||||||
|
|||||||
@ -159,19 +159,21 @@ in {
|
|||||||
# TODO: Disable and check if it works by default
|
# TODO: Disable and check if it works by default
|
||||||
# "gfx.canvas.accelerated" = true; # Default value
|
# "gfx.canvas.accelerated" = true; # Default value
|
||||||
# "gfx.webrender.enabled" = true; # Does not exist?
|
# "gfx.webrender.enabled" = true; # Does not exist?
|
||||||
"gfx.x11-egl.force-enabled" = true;
|
|
||||||
"layers.acceleration.force-enabled" = true;
|
|
||||||
"media.av1.enabled" = true;
|
|
||||||
"media.ffmpeg.vaapi.enabled" = true;
|
"media.ffmpeg.vaapi.enabled" = true;
|
||||||
"media.hardware-video-decoding.force-enabled" = true;
|
|
||||||
"media.rdd-ffmpeg.enabled" = true; # Default value
|
"media.rdd-ffmpeg.enabled" = true; # Default value
|
||||||
|
"media.av1.enabled" = true;
|
||||||
|
"gfx.x11-egl.force-enabled" = true;
|
||||||
"widget.dmabuf.force-enabled" = true;
|
"widget.dmabuf.force-enabled" = true;
|
||||||
|
|
||||||
|
# "layers.acceleration.force-enabled" = true;
|
||||||
|
# "media.hardware-video-decoding.force-enabled" = true;
|
||||||
# "widget.wayland-dmabuf-vaapi.enabled" = true; # Does not exist?
|
# "widget.wayland-dmabuf-vaapi.enabled" = true; # Does not exist?
|
||||||
})
|
})
|
||||||
|
|
||||||
(let
|
(let
|
||||||
# NOTE: This has to be updated when something is changed inside firefox...
|
# NOTE: This has to be updated when something is changed inside firefox...
|
||||||
customizationState = ''{"placements":{"widget-overflow-fixed-list":["jid1-mnnxcxisbpnsxq_jetpack-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action","cookieautodelete_kennydo_com-browser-action","skipredirect_sblask-browser-action","_ublacklist-browser-action","umatrix_raymondhill_net-browser-action","_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action","_287dcf75-bec6-4eec-b4f6-71948a2eea29_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","dontfuckwithpaste_raim_ist-browser-action","sponsorblocker_ajay_app-browser-action","mogultv_mogultv_org-browser-action","jid1-tsgsxbhncspbwq_jetpack-browser-action","sourcegraph-for-firefox_sourcegraph_com-browser-action","_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_34daeb50-c2d2-4f14-886a-7160b24d66a4_-browser-action","smart-referer_meh_paranoid_pk-browser-action","jid1-ckhysaadh4nl6q_jetpack-browser-action","_e737d9cb-82de-4f23-83c6-76f70a82229c_-browser-action","_a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad_-browser-action","github-forks-addon_musicallyut_in-browser-action"],"nav-bar":["back-button","forward-button","downloads-button","urlbar-container","save-to-pocket-button","fxa-toolbar-menu-button","treestyletab_piro_sakura_ne_jp-browser-action","ublock0_raymondhill_net-browser-action","_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action","display-anchors_robwu_nl-browser-action","tab-session-manager_sienori-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","keepassxc-browser_keepassxc_org-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["personal-bookmarks"]},"seen":["developer-button","ublock0_raymondhill_net-browser-action","_287dcf75-bec6-4eec-b4f6-71948a2eea29_-browser-action","_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action","_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","_ublacklist-browser-action","cookieautodelete_kennydo_com-browser-action","dontfuckwithpaste_raim_ist-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action","keepassxc-browser_keepassxc_org-browser-action","skipredirect_sblask-browser-action","sponsorblocker_ajay_app-browser-action","tab-session-manager_sienori-browser-action","treestyletab_piro_sakura_ne_jp-browser-action","umatrix_raymondhill_net-browser-action","mogultv_mogultv_org-browser-action","jid1-tsgsxbhncspbwq_jetpack-browser-action","display-anchors_robwu_nl-browser-action","github-forks-addon_musicallyut_in-browser-action","_a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad_-browser-action","_e737d9cb-82de-4f23-83c6-76f70a82229c_-browser-action","jid1-ckhysaadh4nl6q_jetpack-browser-action","smart-referer_meh_paranoid_pk-browser-action","_34daeb50-c2d2-4f14-886a-7160b24d66a4_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action","sourcegraph-for-firefox_sourcegraph_com-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","widget-overflow-fixed-list"],"currentVersion":18,"newElementCount":6}'';
|
customizationState = ''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["jid1-mnnxcxisbpnsxq_jetpack-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action","cookieautodelete_kennydo_com-browser-action","skipredirect_sblask-browser-action","_ublacklist-browser-action","umatrix_raymondhill_net-browser-action","_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action","_287dcf75-bec6-4eec-b4f6-71948a2eea29_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","dontfuckwithpaste_raim_ist-browser-action","sponsorblocker_ajay_app-browser-action","mogultv_mogultv_org-browser-action","jid1-tsgsxbhncspbwq_jetpack-browser-action","sourcegraph-for-firefox_sourcegraph_com-browser-action","_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_34daeb50-c2d2-4f14-886a-7160b24d66a4_-browser-action","smart-referer_meh_paranoid_pk-browser-action","jid1-ckhysaadh4nl6q_jetpack-browser-action","_e737d9cb-82de-4f23-83c6-76f70a82229c_-browser-action","_a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad_-browser-action","github-forks-addon_musicallyut_in-browser-action","_36bdf805-c6f2-4f41-94d2-9b646342c1dc_-browser-action","_605a075b-09d9-4443-bed6-4baa743f7d79_-browser-action","enhancerforyoutube_maximerf_addons_mozilla_org-browser-action"],"nav-bar":["back-button","forward-button","downloads-button","urlbar-container","save-to-pocket-button","fxa-toolbar-menu-button","treestyletab_piro_sakura_ne_jp-browser-action","ublock0_raymondhill_net-browser-action","_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action","display-anchors_robwu_nl-browser-action","tab-session-manager_sienori-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","keepassxc-browser_keepassxc_org-browser-action","reset-pbm-toolbar-button","unified-extensions-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["personal-bookmarks"]},"seen":["developer-button","ublock0_raymondhill_net-browser-action","_287dcf75-bec6-4eec-b4f6-71948a2eea29_-browser-action","_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action","_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","_ublacklist-browser-action","cookieautodelete_kennydo_com-browser-action","dontfuckwithpaste_raim_ist-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action","keepassxc-browser_keepassxc_org-browser-action","skipredirect_sblask-browser-action","sponsorblocker_ajay_app-browser-action","tab-session-manager_sienori-browser-action","treestyletab_piro_sakura_ne_jp-browser-action","umatrix_raymondhill_net-browser-action","mogultv_mogultv_org-browser-action","jid1-tsgsxbhncspbwq_jetpack-browser-action","display-anchors_robwu_nl-browser-action","github-forks-addon_musicallyut_in-browser-action","_a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad_-browser-action","_e737d9cb-82de-4f23-83c6-76f70a82229c_-browser-action","jid1-ckhysaadh4nl6q_jetpack-browser-action","smart-referer_meh_paranoid_pk-browser-action","_34daeb50-c2d2-4f14-886a-7160b24d66a4_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action","sourcegraph-for-firefox_sourcegraph_com-browser-action","_36bdf805-c6f2-4f41-94d2-9b646342c1dc_-browser-action","_605a075b-09d9-4443-bed6-4baa743f7d79_-browser-action","enhancerforyoutube_maximerf_addons_mozilla_org-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","widget-overflow-fixed-list","unified-extensions-area"],"currentVersion":20,"newElementCount":6}'';
|
||||||
in {
|
in {
|
||||||
"accessibility.force_disabled" = 1;
|
"accessibility.force_disabled" = 1;
|
||||||
"app.normandy.enabled" = false; # https://mozilla.github.io/normandy/
|
"app.normandy.enabled" = false; # https://mozilla.github.io/normandy/
|
||||||
|
|||||||
@ -153,8 +153,10 @@ in {
|
|||||||
msusenet = "sudo mount.nfs4 192.168.86.20:/mnt/WD\\ Blue\\ Stripe\\ 2T/Usenet /media/Stash-Usenet";
|
msusenet = "sudo mount.nfs4 192.168.86.20:/mnt/WD\\ Blue\\ Stripe\\ 2T/Usenet /media/Stash-Usenet";
|
||||||
mspicture = "sudo mount.nfs4 192.168.86.20:/mnt/WD\\ Blue\\ Stripe\\ 2T/Picture /media/Stash-Picture";
|
mspicture = "sudo mount.nfs4 192.168.86.20:/mnt/WD\\ Blue\\ Stripe\\ 2T/Picture /media/Stash-Picture";
|
||||||
msvideo = "sudo mount.nfs4 192.168.86.20:/mnt/WD\\ Blue\\ Stripe\\ 2T/Video /media/Stash-Video";
|
msvideo = "sudo mount.nfs4 192.168.86.20:/mnt/WD\\ Blue\\ Stripe\\ 2T/Video /media/Stash-Video";
|
||||||
|
msclips = "sudo mount.nfs4 192.168.86.20:/mnt/WD\\ Blue\\ Stripe\\ 2T/Clips /media/Stash-Clips";
|
||||||
mmovie = "sudo mount.nfs4 192.168.86.20:/mnt/SG\\ Exos\\ Mirror\\ 18TB/Movie /media/Movie";
|
mmovie = "sudo mount.nfs4 192.168.86.20:/mnt/SG\\ Exos\\ Mirror\\ 18TB/Movie /media/Movie";
|
||||||
mshow = "sudo mount.nfs4 192.168.86.20:/mnt/SG\\ Exos\\ Mirror\\ 18TB/Show /media/Show";
|
mshow = "sudo mount.nfs4 192.168.86.20:/mnt/SG\\ Exos\\ Mirror\\ 18TB/Show /media/Show";
|
||||||
|
mmusic = "sudo mount.nfs4 192.168.86.20:/mnt/SG\\ Exos\\ Mirror\\ 18TB/Music /media/Music";
|
||||||
musenet = "sudo mount.nfs4 192.168.86.20:/mnt/SG\\ Exos\\ Mirror\\ 18TB/Usenet /media/Usenet";
|
musenet = "sudo mount.nfs4 192.168.86.20:/mnt/SG\\ Exos\\ Mirror\\ 18TB/Usenet /media/Usenet";
|
||||||
|
|
||||||
# disassemble
|
# disassemble
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
# TODO: The keys to reset the workspaces need to depend on actual workspace config
|
# TODO: The keys to reset the workspaces need to depend on actual workspace config
|
||||||
# TODO: Many of the text file generations can be made simpler with pipe and concatLines functions...
|
# TODO: Many of the text file generations can be made simpler with pipe and concatLines functions...
|
||||||
|
# TODO: The border color does not fit the current theme
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
nixosConfig,
|
nixosConfig,
|
||||||
@ -103,6 +104,8 @@ in {
|
|||||||
# xfce.thunar
|
# xfce.thunar
|
||||||
# xfce.tumbler # Thunar thumbnails
|
# xfce.tumbler # Thunar thumbnails
|
||||||
libsForQt5.polkit-kde-agent
|
libsForQt5.polkit-kde-agent
|
||||||
|
libsForQt5.qtwayland
|
||||||
|
kdePackages.qtwayland
|
||||||
];
|
];
|
||||||
|
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
|
|||||||
@ -1,238 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
nixosConfig,
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; let
|
|
||||||
cfg = config.modules.lazyvim;
|
|
||||||
in {
|
|
||||||
options.modules.lazyvim = import ./options.nix {inherit lib mylib;};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
VISUAL = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs;
|
|
||||||
builtins.concatLists [
|
|
||||||
(optionals cfg.neovide [neovide])
|
|
||||||
|
|
||||||
[
|
|
||||||
(pkgs.ripgrep.override {withPCRE2 = true;})
|
|
||||||
|
|
||||||
# Dependencies
|
|
||||||
lua51Packages.lua-curl # For rest
|
|
||||||
lua51Packages.xml2lua # For rest
|
|
||||||
lua51Packages.mimetypes # For rest
|
|
||||||
lua51Packages.jsregexp # For tree-sitter
|
|
||||||
|
|
||||||
# Language servers
|
|
||||||
clang-tools_18
|
|
||||||
clojure-lsp
|
|
||||||
cmake-language-server
|
|
||||||
haskell-language-server
|
|
||||||
lua-language-server
|
|
||||||
nil
|
|
||||||
pyright
|
|
||||||
rust-analyzer
|
|
||||||
texlab
|
|
||||||
|
|
||||||
# Linters
|
|
||||||
checkstyle # java
|
|
||||||
clippy # rust
|
|
||||||
clj-kondo # clojure
|
|
||||||
eslint_d # javascript
|
|
||||||
python311Packages.flake8
|
|
||||||
lua51Packages.luacheck
|
|
||||||
vale # text
|
|
||||||
statix # nix
|
|
||||||
|
|
||||||
# Formatters
|
|
||||||
alejandra # nix
|
|
||||||
python311Packages.black
|
|
||||||
google-java-format
|
|
||||||
html-tidy
|
|
||||||
jq # json
|
|
||||||
prettierd # html/css/js
|
|
||||||
rustfmt
|
|
||||||
stylua
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file.".config/nvim/parser".source = let
|
|
||||||
parsers = pkgs.symlinkJoin {
|
|
||||||
name = "treesitter-parsers";
|
|
||||||
paths = pkgs.vimPlugins.nvim-treesitter.withAllGrammars.dependencies;
|
|
||||||
};
|
|
||||||
in "${parsers}/parser";
|
|
||||||
|
|
||||||
home.file.".config/neovide/config.toml".text = ''
|
|
||||||
fork = true # Start neovide detached
|
|
||||||
frame = "none" # full, buttonless, none
|
|
||||||
idle = true # Don't render frames without changes
|
|
||||||
# maximized = true
|
|
||||||
title-hidden = true
|
|
||||||
# vsync = true
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.file.".config/vale/.vale.ini".text = ''
|
|
||||||
# Core settings appear at the top
|
|
||||||
# (the "global" section).
|
|
||||||
|
|
||||||
[formats]
|
|
||||||
# Format associations appear under
|
|
||||||
# the optional "formats" section.
|
|
||||||
|
|
||||||
[*]
|
|
||||||
# Format-specific settings appear
|
|
||||||
# under a user-provided "glob"
|
|
||||||
# pattern.
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.nixvim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
enableMan = true;
|
|
||||||
luaLoader.enable = true;
|
|
||||||
# colorschemes.catppuccin.enable = true;
|
|
||||||
viAlias = cfg.alias;
|
|
||||||
vimAlias = cfg.alias;
|
|
||||||
|
|
||||||
globals = {
|
|
||||||
mapleader = " ";
|
|
||||||
mallocalleader = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
opts = import ./vim_opts.nix {inherit lib mylib;};
|
|
||||||
extraConfigLuaPost = builtins.readFile ./extraConfigLuaPost.lua;
|
|
||||||
|
|
||||||
# extraLuaPackages = with pkgs.lua51Packages; [];
|
|
||||||
|
|
||||||
# extraPython3Packages = p: [
|
|
||||||
# # For CHADtree
|
|
||||||
# p.pyyaml
|
|
||||||
# p.pynvim-pp
|
|
||||||
# p.std2
|
|
||||||
# ];
|
|
||||||
|
|
||||||
extraPlugins = with pkgs.vimPlugins; [
|
|
||||||
lazy-nvim
|
|
||||||
];
|
|
||||||
|
|
||||||
autoCmd = [
|
|
||||||
{
|
|
||||||
event = ["BufWritePost"];
|
|
||||||
# pattern = "*";
|
|
||||||
callback = {__raw = "function() require('lint').try_lint() end";};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
event = ["BufWritePre"];
|
|
||||||
callback = {__raw = "function() require('conform').format() end";};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# TODO: Toggle wrapping
|
|
||||||
# TODO: Toggle format on save
|
|
||||||
# TODO: Toggle format on paste
|
|
||||||
keymaps = import ./keybinds.nix {inherit lib mylib;};
|
|
||||||
|
|
||||||
extraConfigLua = let
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
|
||||||
LazyVim # Sets many vim options
|
|
||||||
|
|
||||||
bufferline-nvim
|
|
||||||
cmp-buffer
|
|
||||||
cmp-nvim-lsp
|
|
||||||
cmp-path
|
|
||||||
cmp_luasnip
|
|
||||||
conform-nvim
|
|
||||||
dashboard-nvim
|
|
||||||
dressing-nvim
|
|
||||||
flash-nvim
|
|
||||||
friendly-snippets
|
|
||||||
gitsigns-nvim
|
|
||||||
indent-blankline-nvim
|
|
||||||
lualine-nvim
|
|
||||||
neo-tree-nvim
|
|
||||||
neoconf-nvim
|
|
||||||
neodev-nvim
|
|
||||||
noice-nvim
|
|
||||||
nui-nvim
|
|
||||||
nvim-cmp
|
|
||||||
nvim-lint
|
|
||||||
nvim-lspconfig
|
|
||||||
nvim-notify
|
|
||||||
nvim-spectre
|
|
||||||
nvim-treesitter
|
|
||||||
nvim-treesitter-context
|
|
||||||
nvim-treesitter-textobjects
|
|
||||||
nvim-ts-autotag
|
|
||||||
nvim-ts-context-commentstring
|
|
||||||
nvim-web-devicons
|
|
||||||
persistence-nvim
|
|
||||||
plenary-nvim
|
|
||||||
telescope-fzf-native-nvim
|
|
||||||
telescope-nvim
|
|
||||||
todo-comments-nvim
|
|
||||||
tokyonight-nvim
|
|
||||||
trouble-nvim
|
|
||||||
vim-illuminate
|
|
||||||
vim-startuptime
|
|
||||||
which-key-nvim
|
|
||||||
{
|
|
||||||
name = "LuaSnip";
|
|
||||||
path = luasnip;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "catppuccin";
|
|
||||||
path = catppuccin-nvim;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "mini.ai";
|
|
||||||
path = mini-nvim;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "mini.bufremove";
|
|
||||||
path = mini-nvim;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "mini.comment";
|
|
||||||
path = mini-nvim;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "mini.indentscope";
|
|
||||||
path = mini-nvim;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "mini.pairs";
|
|
||||||
path = mini-nvim;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "mini.surround";
|
|
||||||
path = mini-nvim;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
mkEntryFromDrv = drv:
|
|
||||||
if lib.isDerivation drv
|
|
||||||
then {
|
|
||||||
name = "${lib.getName drv}";
|
|
||||||
path = drv;
|
|
||||||
}
|
|
||||||
else drv;
|
|
||||||
|
|
||||||
lazyPath = pkgs.linkFarm "lazy-plugins" (builtins.map mkEntryFromDrv plugins);
|
|
||||||
in (
|
|
||||||
builtins.replaceStrings
|
|
||||||
["@lazyPath@"]
|
|
||||||
["${lazyPath}"]
|
|
||||||
(builtins.readFile ./extraConfigLua.lua)
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
-- Skip loading LazyVim options
|
|
||||||
package.loaded["lazyvim.config.options"] = true
|
|
||||||
|
|
||||||
-- Hide inline diagnostics and show border
|
|
||||||
vim.diagnostic.config({
|
|
||||||
virtual_text = false,
|
|
||||||
float = { border = "rounded" },
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Allow navigating popupmenu completion with Up/Down
|
|
||||||
vim.api.nvim_set_keymap("c", "<Down>", 'v:lua.get_wildmenu_key("<right>", "<down>")', { expr = true })
|
|
||||||
vim.api.nvim_set_keymap("c", "<Up>", 'v:lua.get_wildmenu_key("<left>", "<up>")', { expr = true })
|
|
||||||
function _G.get_wildmenu_key(key_wildmenu, key_regular)
|
|
||||||
return vim.fn.wildmenumode() ~= 0 and key_wildmenu or key_regular
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Package manager setup
|
|
||||||
require("lazy").setup({
|
|
||||||
defaults = {
|
|
||||||
lazy = true,
|
|
||||||
},
|
|
||||||
|
|
||||||
dev = {
|
|
||||||
-- reuse files from pkgs.vimPlugins.*
|
|
||||||
path = "@lazyPath@", -- NOTE: Will be replaced by the nix path
|
|
||||||
|
|
||||||
patterns = { "." },
|
|
||||||
|
|
||||||
-- fallback to download
|
|
||||||
fallback = true,
|
|
||||||
},
|
|
||||||
|
|
||||||
spec = {
|
|
||||||
{
|
|
||||||
"LazyVim/LazyVim",
|
|
||||||
import = "lazyvim.plugins",
|
|
||||||
opts = {
|
|
||||||
defaults = {
|
|
||||||
autocmds = false, -- Skip loading LazyVim cmds
|
|
||||||
keymaps = false, -- Skip loading LazyVim keymaps
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- force enable telescope-fzf-native.nvim on nix
|
|
||||||
{ "nvim-telescope/telescope-fzf-native.nvim", enabled = true },
|
|
||||||
|
|
||||||
-- disable mason.nvim, use config.extraPackages on nix
|
|
||||||
{ "williamboman/mason-lspconfig.nvim", enabled = false },
|
|
||||||
{ "williamboman/mason.nvim", enabled = false },
|
|
||||||
|
|
||||||
-- uncomment to import/override with your plugins
|
|
||||||
-- { import = "plugins" },
|
|
||||||
|
|
||||||
-- put this line at the end of spec to clear ensure_installed on nix
|
|
||||||
{ "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = {} } },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
local opt = vim.opt
|
|
||||||
local g = vim.g
|
|
||||||
local o = vim.o
|
|
||||||
|
|
||||||
-- Neovide
|
|
||||||
if g.neovide then
|
|
||||||
-- require("notify").notify("Running in NeoVide")
|
|
||||||
|
|
||||||
g.neovide_cursor_animate_command_line = true
|
|
||||||
g.neovide_cursor_animate_in_insert_mode = true
|
|
||||||
-- g.neovide_fullscreen = false
|
|
||||||
g.neovide_hide_mouse_when_typing = true
|
|
||||||
g.neovide_padding_top = 0
|
|
||||||
g.neovide_padding_bottom = 0
|
|
||||||
g.neovide_padding_right = 0
|
|
||||||
g.neovide_padding_left = 0
|
|
||||||
g.neovide_refresh_rate = 144
|
|
||||||
-- g.neovide_theme = "light"
|
|
||||||
|
|
||||||
-- Neovide Fonts
|
|
||||||
o.guifont = "JetBrainsMono Nerd Font:h13:Medium"
|
|
||||||
else
|
|
||||||
-- require("notify").notify("Not running in NeoVide")
|
|
||||||
end
|
|
||||||
@ -1,493 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}: [
|
|
||||||
# No Leader
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-s>";
|
|
||||||
action = "<cmd>w<CR>";
|
|
||||||
options.desc = "Save current buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-S-s>";
|
|
||||||
action = "<cmd>wa<CR>";
|
|
||||||
options.desc = "Save all buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "v";
|
|
||||||
key = "<";
|
|
||||||
action = "<gv";
|
|
||||||
options.desc = "Outdent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "v";
|
|
||||||
key = ">";
|
|
||||||
action = ">gv";
|
|
||||||
options.desc = "Indent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<";
|
|
||||||
action = "v<<Esc>";
|
|
||||||
options.desc = "Outdent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = ">";
|
|
||||||
action = "v><Esc>";
|
|
||||||
options.desc = "Indent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-d>";
|
|
||||||
action = "<C-d>zz";
|
|
||||||
options.desc = "Jump down";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-u>";
|
|
||||||
action = "<C-u>zz";
|
|
||||||
options.desc = "Jump up";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "n";
|
|
||||||
action = "nzzzv";
|
|
||||||
options.desc = "Next match";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "N";
|
|
||||||
action = "Nzzzv";
|
|
||||||
options.desc = "Previous match";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<Tab>";
|
|
||||||
action = "<cmd>lua require('intellitab').indent()<CR>";
|
|
||||||
options.desc = "Indent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<C-BS>";
|
|
||||||
action = "<C-w>";
|
|
||||||
options.desc = "Delete previous word";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<M-BS>";
|
|
||||||
action = "<C-w>";
|
|
||||||
options.desc = "Delete previous word";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<C-S-v>";
|
|
||||||
action = "<Esc>\"+pi";
|
|
||||||
options.desc = "Paste from clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<C-v>";
|
|
||||||
action = "<Esc>\"+pi";
|
|
||||||
options.desc = "Paste from clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "v";
|
|
||||||
key = "<C-S-c>";
|
|
||||||
action = "\"+y";
|
|
||||||
options.desc = "Copy to clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-h>";
|
|
||||||
action = "<cmd>nohlsearch<CR>";
|
|
||||||
options.desc = "Clear search highlights";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "K";
|
|
||||||
action = "<cmd>lua vim.lsp.buf.hover()<CR>";
|
|
||||||
options.desc = "Show LSP hover";
|
|
||||||
}
|
|
||||||
|
|
||||||
# General <leader>
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>qq";
|
|
||||||
action = "<cmd>quitall<CR>";
|
|
||||||
options.desc = "Quit";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>q!";
|
|
||||||
action = "<cmd>quitall!<CR>";
|
|
||||||
options.desc = "Forceful quit";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>L";
|
|
||||||
action = "<cmd>Lazy<CR>";
|
|
||||||
options.desc = "Show Lazy";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader><Space>";
|
|
||||||
action = "<cmd>Telescope buffers<CR>";
|
|
||||||
options.desc = "Show open buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>S";
|
|
||||||
action = "<cmd>wa<CR>";
|
|
||||||
options.desc = "Save all buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>f";
|
|
||||||
action = "<cmd>Telescope find_files<CR>";
|
|
||||||
options.desc = "Find file";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>o";
|
|
||||||
action = "<cmd>Telescope vim_options<CR>";
|
|
||||||
options.desc = "Show Vim options";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>u";
|
|
||||||
action = "<cmd>Telescope undo<CR>";
|
|
||||||
options.desc = "Show undo history";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>/";
|
|
||||||
action = "<cmd>Telescope current_buffer_fuzzy_find<CR>";
|
|
||||||
options.desc = "Find in current buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>n";
|
|
||||||
action = "<cmd>Telescope notify<CR>";
|
|
||||||
options.desc = "Show notify history";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>s";
|
|
||||||
action = "<cmd>Telescope live_grep<CR>";
|
|
||||||
options.desc = "Find in working directory";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>r";
|
|
||||||
action = "<cmd>Telescope resume<CR>";
|
|
||||||
options.desc = "Show last telescope picker";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>?";
|
|
||||||
action = "<cmd>Telescope keymaps<CR>";
|
|
||||||
options.desc = "Show keymaps";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>:";
|
|
||||||
action = "<cmd>Telescope commands<CR>";
|
|
||||||
options.desc = "Execute command";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>M";
|
|
||||||
action = "<cmd>Telescope marks<CR>";
|
|
||||||
options.desc = "Show marks";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>J";
|
|
||||||
action = "<cmd>Telescope jumplist<CR>";
|
|
||||||
options.desc = "Show jumplist";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>m";
|
|
||||||
action = "<cmd>Telescope man_pages<CR>";
|
|
||||||
options.desc = "Show manpages";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>h";
|
|
||||||
action = "<cmd>Telescope help_tags<CR>";
|
|
||||||
options.desc = "Show help tags";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Quit <leader>q
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>q";
|
|
||||||
action = "+quit";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Buffers <leader>b
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>b";
|
|
||||||
action = "+buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bb";
|
|
||||||
action = "<cmd>Telescope buffers<CR>";
|
|
||||||
options.desc = "Show open buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bn";
|
|
||||||
action = "<cmd>bnext<CR>";
|
|
||||||
options.desc = "Goto next buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bp";
|
|
||||||
action = "<cmd>bprevious<CR>";
|
|
||||||
options.desc = "Goto previous buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bd";
|
|
||||||
action = "<cmd>Bdelete<CR>";
|
|
||||||
options.desc = "Close current buffer";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Windows <leader>w
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>w";
|
|
||||||
action = "+windows";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ws";
|
|
||||||
action = "<C-w>s";
|
|
||||||
options.desc = "Split window horizontally";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wv";
|
|
||||||
action = "<C-w>v";
|
|
||||||
options.desc = "Split window vertically";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wd";
|
|
||||||
action = "<C-w>c";
|
|
||||||
options.desc = "Close current window";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>wh";
|
|
||||||
# action = "<C-W>s";
|
|
||||||
# options.desc = "Split window horizontally";
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wh";
|
|
||||||
action = "<C-w>h";
|
|
||||||
options.desc = "Goto left window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wl";
|
|
||||||
action = "<C-w>l";
|
|
||||||
options.desc = "Goto right window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wj";
|
|
||||||
action = "<C-w>j";
|
|
||||||
options.desc = "Goto bottom window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wk";
|
|
||||||
action = "<C-w>k";
|
|
||||||
options.desc = "Goto top window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ww";
|
|
||||||
action = "<C-w>p";
|
|
||||||
options.desc = "Goto other window";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Toggles <leader>t
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>t";
|
|
||||||
action = "+toggle";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>tt";
|
|
||||||
# action = "<cmd>Neotree action=show toggle=true<CR>";
|
|
||||||
# options.desc = "Toggle NeoTree";
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>tt";
|
|
||||||
action = "<cmd>CHADopen --nofocus<CR>";
|
|
||||||
options.desc = "Toggle CHADtree";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>tn";
|
|
||||||
action = "<cmd>Navbuddy<CR>";
|
|
||||||
options.desc = "Toggle NavBuddy";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>td";
|
|
||||||
action = "<cmd>TroubleToggle focus=false<CR>";
|
|
||||||
options.desc = "Toggle Trouble";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>tg";
|
|
||||||
# action = "<cmd>LazyGit<CR>";
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>tp";
|
|
||||||
# action = "<cmd>TroubleToggle<CR>";
|
|
||||||
# }
|
|
||||||
|
|
||||||
# Git <leader>g
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>g";
|
|
||||||
action = "+git";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gg";
|
|
||||||
action = "<cmd>LazyGit<CR>";
|
|
||||||
options.desc = "Show LazyGit";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gm";
|
|
||||||
action = "<cmd>GitMessenger<CR>";
|
|
||||||
options.desc = "Show GitMessenger";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>gs";
|
|
||||||
# action = "<cmd>Git status<CR>";
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gs";
|
|
||||||
action = "<cmd>Telescope git_status<CR>";
|
|
||||||
options.desc = "Show Git status";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gc";
|
|
||||||
action = "<cmd>Telescope git_commits<CR>";
|
|
||||||
options.desc = "Show Git log";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gb";
|
|
||||||
action = "<cmd>Telescope git_branches<CR>";
|
|
||||||
options.desc = "Show Git branches";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gf";
|
|
||||||
action = "<cmd>Telescope git_bcommits<CR>";
|
|
||||||
options.desc = "Show Git log for current file";
|
|
||||||
}
|
|
||||||
|
|
||||||
# LSP <leader>l
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>l";
|
|
||||||
action = "+lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>lr";
|
|
||||||
action = "<cmd>Telescope lsp_references<CR>";
|
|
||||||
options.desc = "Goto references";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ld";
|
|
||||||
action = "<cmd>Telescope lsp_definitions<CR>";
|
|
||||||
options.desc = "Goto definition";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>li";
|
|
||||||
action = "<cmd>Telescope lsp_implementations<CR>";
|
|
||||||
options.desc = "Goto implementation";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>lt";
|
|
||||||
action = "<cmd>Telescope lsp_type_definitions<CR>";
|
|
||||||
options.desc = "Goto type definition";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>lI";
|
|
||||||
action = "<cmd>Telescope lsp_incoming_calls<CR>";
|
|
||||||
options.desc = "Show incoming calls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>lO";
|
|
||||||
action = "<cmd>Telescope lsp_outgoing_calls<CR>";
|
|
||||||
options.desc = "Show outgoing calls";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Code <leader>c
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>c";
|
|
||||||
action = "+code";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>cf";
|
|
||||||
action = "<cmd>lua require('conform').format()<CR>";
|
|
||||||
options.desc = "Format current buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>cd";
|
|
||||||
action = "<cmd>Telescope diagnostics<CR>";
|
|
||||||
options.desc = "Show diagnostics";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>cr";
|
|
||||||
action = "<cmd>lua vim.lsp.buf.rename()<CR>";
|
|
||||||
options.desc = "Rename LSP symbol";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ca";
|
|
||||||
action = "<cmd>lua vim.lsp.buf.code_action()<CR>";
|
|
||||||
options.desc = "Show LSP code actions";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>cD";
|
|
||||||
action = "<cmd>lua vim.diagnostic.open_float()<CR>";
|
|
||||||
options.desc = "Show LSP line diagnostics";
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; {
|
|
||||||
enable = mkEnableOpt "LazyVim";
|
|
||||||
alias = mkBoolOpt false "Link nvim to vim/vi";
|
|
||||||
neovide = mkEnableOpt "NeoVide";
|
|
||||||
}
|
|
||||||
@ -1,64 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
showmode = false; # Status line already shows this
|
|
||||||
backspace = ["indent" "eol" "start"];
|
|
||||||
termguicolors = true; # Required by multiple plugins
|
|
||||||
hidden = true; # Don't unload buffers immediately
|
|
||||||
mouse = "a";
|
|
||||||
completeopt = ["menuone" "noselect" "noinsert"];
|
|
||||||
timeoutlen = 50;
|
|
||||||
pumheight = 0;
|
|
||||||
formatexpr = "v:lua.require('conform').formatexpr()";
|
|
||||||
laststatus = 3;
|
|
||||||
# winblend = 30;
|
|
||||||
|
|
||||||
# Cursor
|
|
||||||
ruler = true; # Show cursor position in status line
|
|
||||||
number = true;
|
|
||||||
relativenumber = true;
|
|
||||||
signcolumn = "yes";
|
|
||||||
cursorline = true;
|
|
||||||
scrolloff = 10;
|
|
||||||
|
|
||||||
# Folding
|
|
||||||
foldcolumn = "0";
|
|
||||||
foldlevel = 99;
|
|
||||||
foldlevelstart = 99;
|
|
||||||
foldenable = true;
|
|
||||||
# foldmethod = "expr";
|
|
||||||
# foldexpr = "nvim_treesitter#foldexpr()";
|
|
||||||
|
|
||||||
# Files
|
|
||||||
encoding = "utf-8";
|
|
||||||
fileencoding = "utf-8";
|
|
||||||
# swapfile = true;
|
|
||||||
# backup = false;
|
|
||||||
undofile = true;
|
|
||||||
undodir = "/home/christoph/.vim/undo";
|
|
||||||
# autochdir = true;
|
|
||||||
|
|
||||||
# Search
|
|
||||||
incsearch = true; # Already highlight results while typing
|
|
||||||
hlsearch = true;
|
|
||||||
ignorecase = true;
|
|
||||||
smartcase = true;
|
|
||||||
grepprg = "rg --vimgrep";
|
|
||||||
grepformat = "%f:%l:%c:%m";
|
|
||||||
|
|
||||||
# Indentation
|
|
||||||
autoindent = false; # Use previous line indentation level - Might mess up comment indentation
|
|
||||||
smartindent = false; # Like autoindent but recognizes some C syntax - Might mess up comment indentation
|
|
||||||
cindent = true;
|
|
||||||
cinkeys = "0{,0},0),0],:,!^F,o,O,e"; # Fix comment (#) indentation and intellitab (somehow)
|
|
||||||
smarttab = true;
|
|
||||||
expandtab = true;
|
|
||||||
shiftwidth = 4;
|
|
||||||
tabstop = 4;
|
|
||||||
softtabstop = 4;
|
|
||||||
|
|
||||||
splitbelow = true;
|
|
||||||
splitright = true;
|
|
||||||
}
|
|
||||||
@ -6,6 +6,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
# TODO: Remove this module, put protonmail into the email module
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.misc;
|
cfg = config.modules.misc;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,56 @@
|
|||||||
-- Hide inline diagnostics and show border
|
-- Make Lazy window border rounded
|
||||||
|
require("lazy.core.config").options.ui.border = "rounded"
|
||||||
|
require("lazy.core.config").options.rocks.enabled = false
|
||||||
|
|
||||||
|
-- Default filetype to tex instead of plaintex
|
||||||
|
vim.g.tex_flavor = "latex"
|
||||||
|
|
||||||
|
-- Toggle inline diagnostics and show border
|
||||||
|
vim.g.enable_inline_diagnostics = false
|
||||||
vim.diagnostic.config({
|
vim.diagnostic.config({
|
||||||
virtual_text = false,
|
virtual_text = vim.g.enable_inline_diagnostics,
|
||||||
float = { border = "rounded" },
|
float = { border = "rounded" },
|
||||||
})
|
})
|
||||||
|
vim.api.nvim_create_user_command("ToggleInlineDiagnostics", function()
|
||||||
|
vim.g.enable_inline_diagnostics = not vim.g.enable_inline_diagnostics
|
||||||
|
vim.diagnostic.config({ virtual_text = vim.g.enable_inline_diagnostics, float = { border = "rounded" } })
|
||||||
|
require("notify")((vim.g.enable_inline_diagnostics and "Enabled" or "Disabled") .. " inline diagnostics")
|
||||||
|
end, {
|
||||||
|
desc = "Toggle inline diagnostics",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Toggle conform format_on_save
|
||||||
|
vim.g.disable_autoformat = false
|
||||||
|
vim.api.nvim_create_user_command("ToggleAutoformat", function()
|
||||||
|
vim.g.disable_autoformat = not vim.g.disable_autoformat
|
||||||
|
require("notify")((vim.g.disable_autoformat and "Disabled" or "Enabled") .. " autoformat-on-save")
|
||||||
|
end, {
|
||||||
|
desc = "Toggle autoformat-on-save",
|
||||||
|
})
|
||||||
|
|
||||||
-- Allow navigating popupmenu completion with Up/Down
|
-- Allow navigating popupmenu completion with Up/Down
|
||||||
vim.api.nvim_set_keymap("c", "<Down>", 'v:lua.get_wildmenu_key("<right>", "<down>")', { expr = true })
|
vim.api.nvim_set_keymap("c", "<Down>", 'v:lua.get_wildmenu_key("<right>", "<down>")', { expr = true })
|
||||||
vim.api.nvim_set_keymap("c", "<Up>", 'v:lua.get_wildmenu_key("<left>", "<up>")', { expr = true })
|
vim.api.nvim_set_keymap("c", "<Up>", 'v:lua.get_wildmenu_key("<left>", "<up>")', { expr = true })
|
||||||
|
|
||||||
function _G.get_wildmenu_key(key_wildmenu, key_regular)
|
function _G.get_wildmenu_key(key_wildmenu, key_regular)
|
||||||
return vim.fn.wildmenumode() ~= 0 and key_wildmenu or key_regular
|
return vim.fn.wildmenumode() ~= 0 and key_wildmenu or key_regular
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Check LSP server config
|
||||||
|
vim.api.nvim_create_user_command("LspInspect", function()
|
||||||
|
require("notify")(vim.inspect(vim.lsp.get_active_clients()))
|
||||||
|
end, {
|
||||||
|
desc = "Print LSP server configuration",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Toggle linting
|
||||||
|
vim.g.disable_autolint = false
|
||||||
|
vim.api.nvim_create_user_command("ToggleAutoLint", function()
|
||||||
|
vim.g.disable_autolint = not vim.g.disable_autolint
|
||||||
|
if vim.g.disable_autolint then
|
||||||
|
-- vim.diagnostic.reset(vim.api.nvim_get_current_buf())
|
||||||
|
vim.diagnostic.reset() -- Reset for all buffers
|
||||||
|
end
|
||||||
|
require("notify")((vim.g.disable_autolint and "Disabled" or "Enabled") .. " autolint-on-save")
|
||||||
|
end, {
|
||||||
|
desc = "Toggle autolint-on-save",
|
||||||
|
})
|
||||||
|
|||||||
@ -18,7 +18,7 @@ if g.neovide then
|
|||||||
-- g.neovide_theme = "light"
|
-- g.neovide_theme = "light"
|
||||||
|
|
||||||
-- Neovide Fonts
|
-- Neovide Fonts
|
||||||
o.guifont = "JetBrainsMono Nerd Font:h13:Medium"
|
o.guifont = "JetBrainsMono Nerd Font Mono:h12:Medium"
|
||||||
else
|
else
|
||||||
-- require("notify").notify("Not running in NeoVide")
|
-- require("notify").notify("Not running in NeoVide")
|
||||||
end
|
end
|
||||||
|
|||||||
38
home/modules/neovim/inclineNavic.lua
Normal file
38
home/modules/neovim/inclineNavic.lua
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
function(props)
|
||||||
|
|
||||||
|
-- local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ":t")
|
||||||
|
-- if filename == "" then
|
||||||
|
-- filename = "[No Name]"
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- local helpers = require("incline.helpers")
|
||||||
|
-- local devicons = require("nvim-web-devicons")
|
||||||
|
|
||||||
|
-- local ft_icon, ft_color = devicons.get_icon_color(filename)
|
||||||
|
-- local modified = vim.bo[props.buf].modified
|
||||||
|
-- local result = {
|
||||||
|
-- ft_icon and { " ", ft_icon, " ", guibg = ft_color, guifg = helpers.contrast_color(ft_color) } or "",
|
||||||
|
-- " ",
|
||||||
|
-- { filename, gui = modified and "bold,italic" or "bold" },
|
||||||
|
-- guibg = "#44406e",
|
||||||
|
-- }
|
||||||
|
|
||||||
|
-- Just print the breadcrumbs, skip the filename for now
|
||||||
|
local result = {}
|
||||||
|
|
||||||
|
-- TODO: This code doesn't respect navic's max_depth, because get_data is used
|
||||||
|
if props.focused then
|
||||||
|
local navic = require("nvim-navic")
|
||||||
|
local bgColor = "Black"
|
||||||
|
for _, item in ipairs(navic.get_data(props.buf) or {}) do
|
||||||
|
table.insert(result, {
|
||||||
|
{ " > ", group = "NavicSeparator", guibg = bgColor },
|
||||||
|
{ item.icon, group = "NavicIcons" .. item.type, guibg = bgColor },
|
||||||
|
{ item.name, group = "NavicText", guibg = bgColor },
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(result, " ")
|
||||||
|
return result
|
||||||
|
end
|
||||||
@ -1,493 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}: [
|
|
||||||
# No Leader
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-s>";
|
|
||||||
action = "<cmd>w<CR>";
|
|
||||||
options.desc = "Save current buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-S-s>";
|
|
||||||
action = "<cmd>wa<CR>";
|
|
||||||
options.desc = "Save all buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "v";
|
|
||||||
key = "<";
|
|
||||||
action = "<gv";
|
|
||||||
options.desc = "Outdent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "v";
|
|
||||||
key = ">";
|
|
||||||
action = ">gv";
|
|
||||||
options.desc = "Indent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<";
|
|
||||||
action = "v<<Esc>";
|
|
||||||
options.desc = "Outdent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = ">";
|
|
||||||
action = "v><Esc>";
|
|
||||||
options.desc = "Indent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-d>";
|
|
||||||
action = "<C-d>zz";
|
|
||||||
options.desc = "Jump down";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-u>";
|
|
||||||
action = "<C-u>zz";
|
|
||||||
options.desc = "Jump up";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "n";
|
|
||||||
action = "nzzzv";
|
|
||||||
options.desc = "Next match";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "N";
|
|
||||||
action = "Nzzzv";
|
|
||||||
options.desc = "Previous match";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<Tab>";
|
|
||||||
action = "<cmd>lua require('intellitab').indent()<CR>";
|
|
||||||
options.desc = "Indent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<C-BS>";
|
|
||||||
action = "<C-w>";
|
|
||||||
options.desc = "Delete previous word";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<M-BS>";
|
|
||||||
action = "<C-w>";
|
|
||||||
options.desc = "Delete previous word";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<C-S-v>";
|
|
||||||
action = "<Esc>\"+pi";
|
|
||||||
options.desc = "Paste from clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "i";
|
|
||||||
key = "<C-v>";
|
|
||||||
action = "<Esc>\"+pi";
|
|
||||||
options.desc = "Paste from clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "v";
|
|
||||||
key = "<C-S-c>";
|
|
||||||
action = "\"+y";
|
|
||||||
options.desc = "Copy to clipboard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<C-h>";
|
|
||||||
action = "<cmd>nohlsearch<CR>";
|
|
||||||
options.desc = "Clear search highlights";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "K";
|
|
||||||
action = "<cmd>lua vim.lsp.buf.hover()<CR>";
|
|
||||||
options.desc = "Show LSP hover";
|
|
||||||
}
|
|
||||||
|
|
||||||
# General <leader>
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>qq";
|
|
||||||
action = "<cmd>quitall<CR>";
|
|
||||||
options.desc = "Quit";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>q!";
|
|
||||||
action = "<cmd>quitall!<CR>";
|
|
||||||
options.desc = "Forceful quit";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>L";
|
|
||||||
action = "<cmd>Lazy<CR>";
|
|
||||||
options.desc = "Show Lazy";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader><Space>";
|
|
||||||
action = "<cmd>Telescope buffers<CR>";
|
|
||||||
options.desc = "Show open buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>S";
|
|
||||||
action = "<cmd>wa<CR>";
|
|
||||||
options.desc = "Save all buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>f";
|
|
||||||
action = "<cmd>Telescope find_files<CR>";
|
|
||||||
options.desc = "Find file";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>o";
|
|
||||||
action = "<cmd>Telescope vim_options<CR>";
|
|
||||||
options.desc = "Show Vim options";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>u";
|
|
||||||
action = "<cmd>Telescope undo<CR>";
|
|
||||||
options.desc = "Show undo history";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>/";
|
|
||||||
action = "<cmd>Telescope current_buffer_fuzzy_find<CR>";
|
|
||||||
options.desc = "Find in current buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>n";
|
|
||||||
action = "<cmd>Telescope notify<CR>";
|
|
||||||
options.desc = "Show notify history";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>s";
|
|
||||||
action = "<cmd>Telescope live_grep<CR>";
|
|
||||||
options.desc = "Find in working directory";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>r";
|
|
||||||
action = "<cmd>Telescope resume<CR>";
|
|
||||||
options.desc = "Show last telescope picker";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>?";
|
|
||||||
action = "<cmd>Telescope keymaps<CR>";
|
|
||||||
options.desc = "Show keymaps";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>:";
|
|
||||||
action = "<cmd>Telescope commands<CR>";
|
|
||||||
options.desc = "Execute command";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>M";
|
|
||||||
action = "<cmd>Telescope marks<CR>";
|
|
||||||
options.desc = "Show marks";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>J";
|
|
||||||
action = "<cmd>Telescope jumplist<CR>";
|
|
||||||
options.desc = "Show jumplist";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>m";
|
|
||||||
action = "<cmd>Telescope man_pages<CR>";
|
|
||||||
options.desc = "Show manpages";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>h";
|
|
||||||
action = "<cmd>Telescope help_tags<CR>";
|
|
||||||
options.desc = "Show help tags";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Quit <leader>q
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>q";
|
|
||||||
action = "+quit";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Buffers <leader>b
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>b";
|
|
||||||
action = "+buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bb";
|
|
||||||
action = "<cmd>Telescope buffers<CR>";
|
|
||||||
options.desc = "Show open buffers";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bn";
|
|
||||||
action = "<cmd>bnext<CR>";
|
|
||||||
options.desc = "Goto next buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bp";
|
|
||||||
action = "<cmd>bprevious<CR>";
|
|
||||||
options.desc = "Goto previous buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>bd";
|
|
||||||
action = "<cmd>Bdelete<CR>";
|
|
||||||
options.desc = "Close current buffer";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Windows <leader>w
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>w";
|
|
||||||
action = "+windows";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ws";
|
|
||||||
action = "<C-w>s";
|
|
||||||
options.desc = "Split window horizontally";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wv";
|
|
||||||
action = "<C-w>v";
|
|
||||||
options.desc = "Split window vertically";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wd";
|
|
||||||
action = "<C-w>c";
|
|
||||||
options.desc = "Close current window";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>wh";
|
|
||||||
# action = "<C-W>s";
|
|
||||||
# options.desc = "Split window horizontally";
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wh";
|
|
||||||
action = "<C-w>h";
|
|
||||||
options.desc = "Goto left window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wl";
|
|
||||||
action = "<C-w>l";
|
|
||||||
options.desc = "Goto right window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wj";
|
|
||||||
action = "<C-w>j";
|
|
||||||
options.desc = "Goto bottom window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>wk";
|
|
||||||
action = "<C-w>k";
|
|
||||||
options.desc = "Goto top window";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ww";
|
|
||||||
action = "<C-w>p";
|
|
||||||
options.desc = "Goto other window";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Toggles <leader>t
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>t";
|
|
||||||
action = "+toggle";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>tt";
|
|
||||||
# action = "<cmd>Neotree action=show toggle=true<CR>";
|
|
||||||
# options.desc = "Toggle NeoTree";
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>tt";
|
|
||||||
action = "<cmd>CHADopen --nofocus<CR>";
|
|
||||||
options.desc = "Toggle CHADtree";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>tn";
|
|
||||||
action = "<cmd>Navbuddy<CR>";
|
|
||||||
options.desc = "Toggle NavBuddy";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>td";
|
|
||||||
action = "<cmd>TroubleToggle focus=false<CR>";
|
|
||||||
options.desc = "Toggle Trouble";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>tg";
|
|
||||||
# action = "<cmd>LazyGit<CR>";
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>tp";
|
|
||||||
# action = "<cmd>TroubleToggle<CR>";
|
|
||||||
# }
|
|
||||||
|
|
||||||
# Git <leader>g
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>g";
|
|
||||||
action = "+git";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gg";
|
|
||||||
action = "<cmd>LazyGit<CR>";
|
|
||||||
options.desc = "Show LazyGit";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gm";
|
|
||||||
action = "<cmd>GitMessenger<CR>";
|
|
||||||
options.desc = "Show GitMessenger";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>gs";
|
|
||||||
# action = "<cmd>Git status<CR>";
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gs";
|
|
||||||
action = "<cmd>Telescope git_status<CR>";
|
|
||||||
options.desc = "Show Git status";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gc";
|
|
||||||
action = "<cmd>Telescope git_commits<CR>";
|
|
||||||
options.desc = "Show Git log";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gb";
|
|
||||||
action = "<cmd>Telescope git_branches<CR>";
|
|
||||||
options.desc = "Show Git branches";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>gf";
|
|
||||||
action = "<cmd>Telescope git_bcommits<CR>";
|
|
||||||
options.desc = "Show Git log for current file";
|
|
||||||
}
|
|
||||||
|
|
||||||
# LSP <leader>l
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>l";
|
|
||||||
action = "+lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>lr";
|
|
||||||
action = "<cmd>Telescope lsp_references<CR>";
|
|
||||||
options.desc = "Goto references";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ld";
|
|
||||||
action = "<cmd>Telescope lsp_definitions<CR>";
|
|
||||||
options.desc = "Goto definition";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>li";
|
|
||||||
action = "<cmd>Telescope lsp_implementations<CR>";
|
|
||||||
options.desc = "Goto implementation";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>lt";
|
|
||||||
action = "<cmd>Telescope lsp_type_definitions<CR>";
|
|
||||||
options.desc = "Goto type definition";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>lI";
|
|
||||||
action = "<cmd>Telescope lsp_incoming_calls<CR>";
|
|
||||||
options.desc = "Show incoming calls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>lO";
|
|
||||||
action = "<cmd>Telescope lsp_outgoing_calls<CR>";
|
|
||||||
options.desc = "Show outgoing calls";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Code <leader>c
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>c";
|
|
||||||
action = "+code";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>cf";
|
|
||||||
action = "<cmd>lua require('conform').format()<CR>";
|
|
||||||
options.desc = "Format current buffer";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>cd";
|
|
||||||
action = "<cmd>Telescope diagnostics<CR>";
|
|
||||||
options.desc = "Show diagnostics";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>cr";
|
|
||||||
action = "<cmd>lua vim.lsp.buf.rename()<CR>";
|
|
||||||
options.desc = "Rename LSP symbol";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>ca";
|
|
||||||
action = "<cmd>lua vim.lsp.buf.code_action()<CR>";
|
|
||||||
options.desc = "Show LSP code actions";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>cD";
|
|
||||||
action = "<cmd>lua vim.diagnostic.open_float()<CR>";
|
|
||||||
options.desc = "Show LSP line diagnostics";
|
|
||||||
}
|
|
||||||
]
|
|
||||||
803
home/modules/neovim/mappings.nix
Normal file
803
home/modules/neovim/mappings.nix
Normal file
@ -0,0 +1,803 @@
|
|||||||
|
{...}: let
|
||||||
|
# TODO: Doesn't work reliably. I think they are rebound by plugins after? Try setting in extraConfigLuaPost...
|
||||||
|
disabled-mappings = let
|
||||||
|
mkDisabledMapping = mapping: {
|
||||||
|
mode = ["n" "v"];
|
||||||
|
key = mapping;
|
||||||
|
action = "<Nop>";
|
||||||
|
};
|
||||||
|
|
||||||
|
disableMappings = [
|
||||||
|
# I only use f/F with flash
|
||||||
|
"s"
|
||||||
|
"S"
|
||||||
|
"t"
|
||||||
|
"T"
|
||||||
|
|
||||||
|
# Use flash to repeat f/F instead of ;/,
|
||||||
|
# ;/, are now free for localleader and exiting visual mode like helix
|
||||||
|
","
|
||||||
|
";"
|
||||||
|
|
||||||
|
# Use Telescope on "/", I don't want backwards search
|
||||||
|
"?"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
builtins.map mkDisabledMapping disableMappings;
|
||||||
|
|
||||||
|
no-leader = [
|
||||||
|
# Cursor movement
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "j";
|
||||||
|
action = "v:count == 0 ? 'gj' : 'j'";
|
||||||
|
options.desc = "Move Cursor Down";
|
||||||
|
options.expr = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<Down>";
|
||||||
|
action = "v:count == 0 ? 'gj' : 'j'";
|
||||||
|
options.desc = "Move Cursor Down";
|
||||||
|
options.expr = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "k";
|
||||||
|
action = "v:count == 0 ? 'gk' : 'k'";
|
||||||
|
options.desc = "Move Cursor Up";
|
||||||
|
options.expr = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<Up>";
|
||||||
|
action = "v:count == 0 ? 'gk' : 'k'";
|
||||||
|
options.desc = "Move Cursor Up";
|
||||||
|
options.expr = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Window resize
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-h>";
|
||||||
|
action = "<cmd>vertical resize -2<cr>";
|
||||||
|
options.desc = "Decrease Window Width";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-l>";
|
||||||
|
action = "<cmd>vertical resize +2<cr>";
|
||||||
|
options.desc = "Increase Window Width";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-j>";
|
||||||
|
action = "<cmd>resize -2<cr>";
|
||||||
|
options.desc = "Decrease Window Height";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-k>";
|
||||||
|
action = "<cmd>resize +2<cr>";
|
||||||
|
options.desc = "Increase Window Height";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Move lines
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<M-j>";
|
||||||
|
action = "<cmd>m .+1<cr>==";
|
||||||
|
options.desc = "Move Line Down";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "i";
|
||||||
|
key = "<M-j>";
|
||||||
|
action = "<Esc><cmd>m .+1<cr>==gi";
|
||||||
|
options.desc = "Move Line Down";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<M-j>";
|
||||||
|
action = ":m '>+1<cr>gv=gv";
|
||||||
|
options.desc = "Move Line Down";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<M-k>";
|
||||||
|
action = "<cmd>m .-2<cr>==";
|
||||||
|
options.desc = "Move Line Up";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "i";
|
||||||
|
key = "<M-k>";
|
||||||
|
action = "<Esc><cmd>m .-2<cr>==gi";
|
||||||
|
options.desc = "Move Line Up";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<M-k>";
|
||||||
|
action = ":m '<-2<cr>gv=gv";
|
||||||
|
options.desc = "Move Line Up";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Save buffers
|
||||||
|
{
|
||||||
|
mode = ["n" "i" "v"];
|
||||||
|
key = "<C-s>";
|
||||||
|
action = "<cmd>w<cr>";
|
||||||
|
options.desc = "Save Buffer";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = ["n" "i" "v"];
|
||||||
|
key = "<C-S-s>";
|
||||||
|
action = "<cmd>wa<cr>";
|
||||||
|
options.desc = "Save All Buffers";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Indentation
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<";
|
||||||
|
action = "<gv";
|
||||||
|
options.desc = "Outdent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<";
|
||||||
|
action = "v<<Esc>";
|
||||||
|
options.desc = "Outdent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = ">";
|
||||||
|
action = ">gv";
|
||||||
|
options.desc = "Indent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = ">";
|
||||||
|
action = "v><Esc>";
|
||||||
|
options.desc = "Indent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "i";
|
||||||
|
key = "<Tab>";
|
||||||
|
action = "<cmd>lua require('intellitab').indent()<cr>";
|
||||||
|
options.desc = "Indent (IntelliTab)";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Centered jumping
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-d>";
|
||||||
|
action = "<C-d>zz";
|
||||||
|
options.desc = "Jump Down (Centered)";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-u>";
|
||||||
|
action = "<C-u>zz";
|
||||||
|
options.desc = "Jump Up (Centered)";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "n";
|
||||||
|
action = "nzzzv";
|
||||||
|
options.desc = "Next Match (Centered)";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "N";
|
||||||
|
action = "Nzzzv";
|
||||||
|
options.desc = "Previous Match (Centered)";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Delete word
|
||||||
|
{
|
||||||
|
mode = "i";
|
||||||
|
key = "<C-BS>";
|
||||||
|
action = "<C-w>";
|
||||||
|
options.desc = "Delete Previous Word"; # TODO: Breaks backspace <C-v><S-i> multiline cursor?
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "i";
|
||||||
|
key = "<M-BS>";
|
||||||
|
action = "<C-w>";
|
||||||
|
options.desc = "Delete Previous Word"; # TODO: Breaks backspace <C-v><S-i> multiline cursor?
|
||||||
|
}
|
||||||
|
|
||||||
|
# Clipboard
|
||||||
|
{
|
||||||
|
mode = "i";
|
||||||
|
key = "<C-S-v>";
|
||||||
|
action = "<Esc>\"+pi";
|
||||||
|
options.desc = "Paste";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "i";
|
||||||
|
key = "<C-v>";
|
||||||
|
action = "<Esc>\"+pi";
|
||||||
|
options.desc = "Paste";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<C-S-c>";
|
||||||
|
action = "\"+y";
|
||||||
|
options.desc = "Copy";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-p>";
|
||||||
|
action = "<cmd>YankyRingHistory<cr>";
|
||||||
|
options.desc = "Paste (Yanky)";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-S-p>";
|
||||||
|
action = "<cmd>YankyClearHistory<cr>";
|
||||||
|
options.desc = "Clear Yanky History";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Various
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-S-h>";
|
||||||
|
action = "<cmd>nohlsearch<cr>";
|
||||||
|
options.desc = "Clear Search Highlights";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "K";
|
||||||
|
action = "<cmd>lua vim.lsp.buf.hover()<cr>";
|
||||||
|
options.desc = "LSP Hover";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "/";
|
||||||
|
action = "<cmd>Telescope current_buffer_fuzzy_find<cr>";
|
||||||
|
options.desc = "Grep Buffer";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = ";";
|
||||||
|
action = "<Esc>";
|
||||||
|
options.desc = "Exit Visual Mode";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
leader = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>L";
|
||||||
|
action = "<cmd>Lazy<cr>";
|
||||||
|
options.desc = "Lazy";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>f";
|
||||||
|
action = "<cmd>Telescope find_files<cr>";
|
||||||
|
options.desc = "Find File";
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# mode = "v";
|
||||||
|
# key = "<leader>n";
|
||||||
|
# action = ":NR!<cr>";
|
||||||
|
# options.desc = "Narrow region";
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>N";
|
||||||
|
action = "<cmd>Telescope notify<cr>";
|
||||||
|
options.desc = "Notication History";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>r";
|
||||||
|
action = "<cmd>Telescope resume<cr>";
|
||||||
|
options.desc = "Last Telescope Picker";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>:";
|
||||||
|
action = "<cmd>Telescope commands<cr>";
|
||||||
|
options.desc = "Find Command";
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# mode = "n";
|
||||||
|
# key = "<leader>M";
|
||||||
|
# action = "<cmd>Telescope marks<cr>";
|
||||||
|
# options.desc = "Show marks";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# mode = "n";
|
||||||
|
# key = "<leader>J";
|
||||||
|
# action = "<cmd>Telescope jumplist<cr>";
|
||||||
|
# options.desc = "Show jumplist";
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>T";
|
||||||
|
action = "<cmd>TodoTelescope<cr>";
|
||||||
|
options.desc = "List TODOs";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>u";
|
||||||
|
action = "<cmd>Telescope undo<cr>";
|
||||||
|
options.desc = "Undo History";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>/";
|
||||||
|
action = "<cmd>Telescope live_grep<cr>";
|
||||||
|
options.desc = "Grep Directory";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>o";
|
||||||
|
action = "<cmd>ObsidianSearch<cr>";
|
||||||
|
options.desc = "Obsidian Note";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
leader-help = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>h";
|
||||||
|
action = "+help";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>hv";
|
||||||
|
action = "<cmd>Telescope vim_options<cr>";
|
||||||
|
options.desc = "Vim Options";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>hk";
|
||||||
|
action = "<cmd>Telescope keymaps<cr>";
|
||||||
|
options.desc = "Keymaps";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>hm";
|
||||||
|
action = "<cmd>Telescope man_pages<cr>";
|
||||||
|
options.desc = "Manpages";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>hh";
|
||||||
|
action = "<cmd>Telescope help_tags<cr>";
|
||||||
|
options.desc = "Vim Help";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
leader-quit = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>q";
|
||||||
|
action = "+quit";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>qq";
|
||||||
|
action = "<cmd>quitall<cr>";
|
||||||
|
options.desc = "Quit";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>q!";
|
||||||
|
action = "<cmd>quitall!<cr>";
|
||||||
|
options.desc = "Force Quit";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
leader-session = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>s";
|
||||||
|
action = "+session";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>sl";
|
||||||
|
action = "<cmd>Telescope persisted<cr>";
|
||||||
|
options.desc = "Restore";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ss";
|
||||||
|
action = "<cmd>SessionSave<cr>";
|
||||||
|
options.desc = "Save";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>sd";
|
||||||
|
action = "<cmd>SessionDelete<cr>";
|
||||||
|
options.desc = "Delete";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
leader-buffers = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>b";
|
||||||
|
action = "+buffers";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bb";
|
||||||
|
action = "<cmd>Telescope buffers sort_lastused=true<cr>"; # There is also sort_mru=true
|
||||||
|
options.desc = "List Buffers";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader><Space>";
|
||||||
|
action = "<cmd>Telescope buffers sort_lastused=true<cr>";
|
||||||
|
options.desc = "List Buffers";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>R";
|
||||||
|
action = "<cmd>edit!<cr>";
|
||||||
|
options.desc = "Reload Buffer";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bn";
|
||||||
|
action = "<cmd>bnext<cr>";
|
||||||
|
options.desc = "Next Buffer";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bp";
|
||||||
|
action = "<cmd>bprevious<cr>";
|
||||||
|
options.desc = "Previous Buffer";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>bd";
|
||||||
|
action = "<cmd>Bdelete<cr>";
|
||||||
|
options.desc = "Close Buffer";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
leader-windows = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>w";
|
||||||
|
action = "+windows";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wd";
|
||||||
|
action = "<C-w>c";
|
||||||
|
options.desc = "Close Window";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ws";
|
||||||
|
action = "<C-w>s";
|
||||||
|
options.desc = "Split Horizontally";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wv";
|
||||||
|
action = "<C-w>v";
|
||||||
|
options.desc = "Split Vertically";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>w=";
|
||||||
|
action = "<C-w>=";
|
||||||
|
options.desc = "Balance Windows";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wh";
|
||||||
|
action = "<C-w>h";
|
||||||
|
options.desc = "Goto Left Window";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wl";
|
||||||
|
action = "<C-w>l";
|
||||||
|
options.desc = "Goto Wight Window";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wj";
|
||||||
|
action = "<C-w>j";
|
||||||
|
options.desc = "Goto Bottom Window";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wk";
|
||||||
|
action = "<C-w>k";
|
||||||
|
options.desc = "Goto Top Window";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ww";
|
||||||
|
action = "<C-w>p";
|
||||||
|
options.desc = "Goto Other Window";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wm";
|
||||||
|
action = "<cmd>WinShift<cr>";
|
||||||
|
options.desc = "Move Window";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
leader-toggles = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>t";
|
||||||
|
action = "+toggle";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tt";
|
||||||
|
action = "<cmd>Neotree action=show toggle=true<cr><C-w>=";
|
||||||
|
options.desc = "NeoTree";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>to";
|
||||||
|
action = "<cmd>Oil<cr>";
|
||||||
|
options.desc = "Oil";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tn";
|
||||||
|
action = "<cmd>Navbuddy<cr>";
|
||||||
|
options.desc = "NavBuddy";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>td";
|
||||||
|
action = "<cmd>Trouble diagnostics toggle focus=false win.position=bottom<cr>";
|
||||||
|
options.desc = "Trouble Diagnostics";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tT";
|
||||||
|
action = "<cmd>Trouble todo toggle focus=false win.position=right<cr>";
|
||||||
|
options.desc = "Trouble TODOs";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ts";
|
||||||
|
action = "<cmd>Trouble symbols toggle focus=false win.position=right<cr>";
|
||||||
|
options.desc = "Trouble Symbols";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tf";
|
||||||
|
action = "<cmd>ToggleAutoformat<cr>";
|
||||||
|
options.desc = "Format on Save";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tl";
|
||||||
|
action = "<cmd>ToggleAutoLint<cr>";
|
||||||
|
options.desc = "Lint on Save";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tD";
|
||||||
|
action = "<cmd>ToggleInlineDiagnostics<cr>";
|
||||||
|
options.desc = "Inline Diagnostics";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tw";
|
||||||
|
action = "<cmd>:set wrap!<cr>";
|
||||||
|
options.desc = "Word Wrapping";
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# mode = "n";
|
||||||
|
# key = "<leader>tv";
|
||||||
|
# action = "<cmd>VimtexTocToggle<cr>";
|
||||||
|
# options.desc = "VimTex ToC";
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
|
||||||
|
leader-git = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>g";
|
||||||
|
action = "+git";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gg";
|
||||||
|
action = "<cmd>LazyGit<cr>";
|
||||||
|
options.desc = "LazyGit";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gm";
|
||||||
|
action = "<cmd>GitMessenger<cr>";
|
||||||
|
options.desc = "GitMessenger";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gs";
|
||||||
|
action = "<cmd>Telescope git_status<cr>";
|
||||||
|
options.desc = "Status";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gl";
|
||||||
|
action = "<cmd>Telescope git_commits<cr>";
|
||||||
|
options.desc = "Log";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gb";
|
||||||
|
action = "<cmd>Telescope git_branches<cr>";
|
||||||
|
options.desc = "Branches";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gf";
|
||||||
|
action = "<cmd>Telescope git_bcommits<cr>";
|
||||||
|
options.desc = "File History";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gd";
|
||||||
|
action = "<cmd>DiffviewOpen<cr>";
|
||||||
|
options.desc = "DiffView";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
leader-code = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>c";
|
||||||
|
action = "+code";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cf";
|
||||||
|
action = "<cmd>lua require('conform').format()<cr>";
|
||||||
|
options.desc = "Format Buffer";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cd";
|
||||||
|
action = "<cmd>lua vim.diagnostic.open_float()<cr>";
|
||||||
|
options.desc = "Line Diagnostics";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cD";
|
||||||
|
action = "<cmd>Telescope diagnostics<cr>";
|
||||||
|
options.desc = "List Diagnostics";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cr";
|
||||||
|
action = "<cmd>lua vim.lsp.buf.rename()<cr>";
|
||||||
|
options.desc = "Rename Symbol";
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# mode = "n";
|
||||||
|
# key = "<leader>cr";
|
||||||
|
# action = ":IncRename ";
|
||||||
|
# options.desc = "Rename LSP symbol";
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ca";
|
||||||
|
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
|
||||||
|
options.desc = "Code Actions";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cI";
|
||||||
|
action = "<cmd>Telescope lsp_incoming_calls<cr>";
|
||||||
|
options.desc = "Incoming Calls";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cO";
|
||||||
|
action = "<cmd>Telescope lsp_outgoing_calls<cr>";
|
||||||
|
options.desc = "Outgoing Calls";
|
||||||
|
}
|
||||||
|
|
||||||
|
# GoTo
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cg";
|
||||||
|
action = "+goto";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cgh";
|
||||||
|
action = "<cmd>ClangdSwitchSourceHeader<cr>";
|
||||||
|
options.desc = "Switch C/C++ Source/Header";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cgr";
|
||||||
|
action = "<cmd>Telescope lsp_references<cr>";
|
||||||
|
options.desc = "Symbol References";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cgd";
|
||||||
|
action = "<cmd>Telescope lsp_definitions<cr>";
|
||||||
|
options.desc = "Symbol Definition";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cgi";
|
||||||
|
action = "<cmd>Telescope lsp_implementations<cr>";
|
||||||
|
options.desc = "Symbol Implementation";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cgt";
|
||||||
|
action = "<cmd>Telescope lsp_type_definitions<cr>";
|
||||||
|
options.desc = "Type Definition";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cge";
|
||||||
|
action = "<cmd>lua vim.diagnostic.goto_next()<cr>";
|
||||||
|
options.desc = "Next Error";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-e>";
|
||||||
|
action = "<cmd>lua vim.diagnostic.goto_next()<cr>";
|
||||||
|
options.desc = "Next Error";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cgE";
|
||||||
|
action = "<cmd>lua vim.diagnostic.goto_prev()<cr>";
|
||||||
|
options.desc = "Previous Error";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-S-e>";
|
||||||
|
action = "<cmd>lua vim.diagnostic.goto_prev()<cr>";
|
||||||
|
options.desc = "Previous Error";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
localleader-latex = [
|
||||||
|
];
|
||||||
|
in
|
||||||
|
builtins.concatLists [
|
||||||
|
disabled-mappings
|
||||||
|
no-leader
|
||||||
|
|
||||||
|
leader
|
||||||
|
leader-help
|
||||||
|
leader-quit
|
||||||
|
leader-session
|
||||||
|
leader-buffers
|
||||||
|
leader-windows
|
||||||
|
leader-toggles
|
||||||
|
leader-git
|
||||||
|
leader-code
|
||||||
|
|
||||||
|
localleader-latex
|
||||||
|
]
|
||||||
50
home/modules/neovim/mappings_latex.nix
Normal file
50
home/modules/neovim/mappings_latex.nix
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{...}: [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<localleader>t";
|
||||||
|
action = "<cmd>VimtexTocToggle<cr>";
|
||||||
|
options.desc = "Vimtex ToC";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<localleader>c";
|
||||||
|
action = "<cmd>VimtexCompile<cr>";
|
||||||
|
options.desc = "Vimtex Compile";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<localleader>C";
|
||||||
|
action = "<cmd>VimtexClean!<cr>";
|
||||||
|
options.desc = "Vimtex Clean";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<localleader>v";
|
||||||
|
action = "<cmd>VimtexView<cr>";
|
||||||
|
options.desc = "Vimtex View";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<localleader>I";
|
||||||
|
action = "<cmd>VimtexInfo<cr>";
|
||||||
|
options.desc = "Vimtex Info";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<localleader>,";
|
||||||
|
action = "<cmd>VimtexContextMenu<cr>";
|
||||||
|
options.desc = "Vimtex Context Menu";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<localleader>e";
|
||||||
|
action = "<cmd>VimtexErrors<cr>";
|
||||||
|
options.desc = "Vimtex Errors";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<localleader>p";
|
||||||
|
action = "<cmd>VimtexDocPackage<cr>";
|
||||||
|
options.desc = "Vimtex Package Docs";
|
||||||
|
}
|
||||||
|
]
|
||||||
@ -1,6 +1,7 @@
|
|||||||
fork = true # Start neovide detached
|
fork = true # Start neovide detached
|
||||||
frame = "none" # full, buttonless, none
|
frame = "none" # full, buttonless, none
|
||||||
idle = true # Don't render frames without changes
|
idle = true # Don't render frames without changes
|
||||||
# maximized = true
|
|
||||||
title-hidden = true
|
title-hidden = true
|
||||||
|
tabs = false
|
||||||
|
# maximized = true
|
||||||
# vsync = true
|
# vsync = true
|
||||||
|
|||||||
@ -6,20 +6,22 @@
|
|||||||
showmode = false; # Status line already shows this
|
showmode = false; # Status line already shows this
|
||||||
backspace = ["indent" "eol" "start"];
|
backspace = ["indent" "eol" "start"];
|
||||||
termguicolors = true; # Required by multiple plugins
|
termguicolors = true; # Required by multiple plugins
|
||||||
hidden = true; # Don't unload buffers immediately
|
hidden = true; # Don't unload buffers immediately (required for terminal persistence)
|
||||||
mouse = "a";
|
mouse = "a";
|
||||||
completeopt = ["menuone" "noselect" "noinsert"];
|
completeopt = ["menuone" "noselect" "noinsert"];
|
||||||
timeoutlen = 50;
|
timeoutlen = 50; # Controls which-key delay
|
||||||
pumheight = 0;
|
pumheight = 0;
|
||||||
formatexpr = "v:lua.require('conform').formatexpr()";
|
formatexpr = "v:lua.require('conform').formatexpr()";
|
||||||
laststatus = 3;
|
laststatus = 3; # Global statusline
|
||||||
# winblend = 30;
|
winblend = 30; # Floating popup transparency
|
||||||
|
sessionoptions = ["buffers" "curdir" "tabpages" "winsize" "help" "globals" "skiprtp" "folds"];
|
||||||
|
showtabline = 0; # Disable tabline
|
||||||
|
|
||||||
# Cursor
|
# Cursor
|
||||||
ruler = true; # Show cursor position in status line
|
ruler = true; # Show cursor position in status line
|
||||||
number = true;
|
number = true;
|
||||||
relativenumber = true;
|
relativenumber = true;
|
||||||
signcolumn = "yes";
|
signcolumn = "yes"; # Always show to reduce window jumping
|
||||||
cursorline = true;
|
cursorline = true;
|
||||||
scrolloff = 10;
|
scrolloff = 10;
|
||||||
|
|
||||||
@ -38,7 +40,9 @@
|
|||||||
# backup = false;
|
# backup = false;
|
||||||
undofile = true;
|
undofile = true;
|
||||||
undodir = "/home/christoph/.vim/undo";
|
undodir = "/home/christoph/.vim/undo";
|
||||||
|
undolevels = 10000;
|
||||||
# autochdir = true;
|
# autochdir = true;
|
||||||
|
confirm = true;
|
||||||
|
|
||||||
# Search
|
# Search
|
||||||
incsearch = true; # Already highlight results while typing
|
incsearch = true; # Already highlight results while typing
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
# Changed from https://github.com/nix-community/home-manager/blob/master/modules/services/nextcloud-client.nix
|
# Changed from https://github.com/nix-community/home-manager/blob/master/modules/services/nextcloud-client.nix
|
||||||
# I use this instead of the HM module as the autostart wasn't working there
|
# I use this instead of the HM module as the autostart wasn't working there
|
||||||
|
# TODO: Remove this module
|
||||||
# TODO: Check the HM module again if anything changed, as this has also stopped working
|
# TODO: Check the HM module again if anything changed, as this has also stopped working
|
||||||
# Nextcloud immediately crashes on start, autostart isn't working either...
|
# Nextcloud immediately crashes on start, autostart isn't working either...
|
||||||
{
|
{
|
||||||
|
|||||||
@ -46,4 +46,17 @@
|
|||||||
else if (args == null)
|
else if (args == null)
|
||||||
then "nil"
|
then "nil"
|
||||||
else "";
|
else "";
|
||||||
|
|
||||||
|
toLuaKeymap = args: let
|
||||||
|
removeDeprecatedMapAttrs = v: builtins.removeAttrs v ["lua"];
|
||||||
|
in ''
|
||||||
|
-- Set up keybinds using mylib.generators.toLuaKeymap {{{
|
||||||
|
do
|
||||||
|
local __nixvim_binds = ${toLuaObject (map removeDeprecatedMapAttrs args)}
|
||||||
|
for i, map in ipairs(__nixvim_binds) do
|
||||||
|
vim.keymap.set(map.mode, map.key, map.action, map.options)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- }}}
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,7 @@ in {
|
|||||||
|
|
||||||
# Make our inputs available to the configuration.nix (for importing modules)
|
# Make our inputs available to the configuration.nix (for importing modules)
|
||||||
# specialArgs are propagated to all modules
|
# specialArgs are propagated to all modules
|
||||||
specialArgs = {inherit inputs hostname username mylib;};
|
specialArgs = {inherit inputs hostname username mylib system;};
|
||||||
|
|
||||||
modules = builtins.concatLists [
|
modules = builtins.concatLists [
|
||||||
[
|
[
|
||||||
|
|||||||
12
shell.nix
12
shell.nix
@ -62,12 +62,12 @@ pkgs.devshell.mkShell {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Nix Store
|
# Nix Store
|
||||||
{
|
# {
|
||||||
name = "store-gc";
|
# name = "store-gc";
|
||||||
help = "Run NixOS garbage collector";
|
# help = "Run NixOS garbage collector";
|
||||||
# command = "nix-store --gc && sudo nix-collect-garbage -d && flatpak uninstall --unused";
|
# # command = "nix-store --gc && sudo nix-collect-garbage -d && flatpak uninstall --unused";
|
||||||
command = "nh clean all";
|
# command = "nh clean all";
|
||||||
}
|
# }
|
||||||
{
|
{
|
||||||
name = "store-optimise";
|
name = "store-optimise";
|
||||||
help = "Run NixOS store optimization (slow)";
|
help = "Run NixOS store optimization (slow)";
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
mylib,
|
mylib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with mylib.networking; {
|
with mylib.networking; {
|
||||||
@ -79,11 +80,15 @@ with mylib.networking; {
|
|||||||
# as nix shell nixpkgs#name) consistent with your flake inputs.
|
# as nix shell nixpkgs#name) consistent with your flake inputs.
|
||||||
# (Registry contains flakes)
|
# (Registry contains flakes)
|
||||||
registry = lib.mapAttrs' (n: v: lib.nameValuePair n {flake = v;}) inputs;
|
registry = lib.mapAttrs' (n: v: lib.nameValuePair n {flake = v;}) inputs;
|
||||||
|
|
||||||
|
# Set NIX_PATH to find nixpgks
|
||||||
|
nixPath = ["nixpkgs=${inputs.nixpkgs.outPath}" "home-manager=${inputs.home-manager.outPath}"];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Bootloader/Kernel stuff
|
# Bootloader/Kernel stuff
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_zen;
|
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||||
|
# kernelPackages = pkgs.linuxPackages_zen; # NOTE: Only set for nixinator
|
||||||
# kernelPackages = pkgs.linuxPackages_latest; # The package set that includes the kernel and modules
|
# kernelPackages = pkgs.linuxPackages_latest; # The package set that includes the kernel and modules
|
||||||
kernelParams = ["mitigations=off"]; # I don't care about security regarding spectre/meltdown
|
kernelParams = ["mitigations=off"]; # I don't care about security regarding spectre/meltdown
|
||||||
|
|
||||||
@ -307,6 +312,7 @@ with mylib.networking; {
|
|||||||
# iPhone tethering + mounting
|
# iPhone tethering + mounting
|
||||||
libimobiledevice
|
libimobiledevice
|
||||||
ifuse
|
ifuse
|
||||||
|
usbmuxd
|
||||||
|
|
||||||
mprocs # run multiple processes in single terminal window, screen alternative
|
mprocs # run multiple processes in single terminal window, screen alternative
|
||||||
parted # partition manager
|
parted # partition manager
|
||||||
@ -317,6 +323,10 @@ with mylib.networking; {
|
|||||||
man-pages
|
man-pages
|
||||||
man-pages-posix
|
man-pages-posix
|
||||||
|
|
||||||
|
# Sets NIX_LD_LIBRARY_PATH and NIX_LD variables for nix-ld
|
||||||
|
# Start dynamically linked executable using "nix-alien-ld -- <Executable>"
|
||||||
|
inputs.nix-alien.packages.${system}.nix-alien
|
||||||
|
|
||||||
# egl-wayland
|
# egl-wayland
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -342,18 +352,13 @@ with mylib.networking; {
|
|||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
|
firejail.enable = true; # Use to run app in network namespace (e.g. through vpn)
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
kdeconnect.enable = true; # Use this instead of HM for firewall setup
|
kdeconnect.enable = false; # Use this instead of HM for firewall setup
|
||||||
neovim.enable = true;
|
neovim.enable = true;
|
||||||
starship.enable = true;
|
starship.enable = true;
|
||||||
thefuck.enable = true;
|
thefuck.enable = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
|
nix-ld.enable = true; # Load dynamically linked executables
|
||||||
fuse.userAllowOther = true; # Allow users to mount e.g. samba shares (cifs)
|
hyprland.enable = true;
|
||||||
|
|
||||||
hyprland = {
|
|
||||||
enable = true;
|
|
||||||
# enableNvidiaPatches = false; # NOTE: Enabled only in nixinator config
|
|
||||||
};
|
|
||||||
|
|
||||||
nh = {
|
nh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -362,10 +367,11 @@ with mylib.networking; {
|
|||||||
flake = "/home/christoph/NixFlake";
|
flake = "/home/christoph/NixFlake";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fuse.userAllowOther = true; # Allow users to mount e.g. samba shares (cifs)
|
||||||
# ausweisapp.openFirewall = true; # Directly set port in firewall
|
# ausweisapp.openFirewall = true; # Directly set port in firewall
|
||||||
};
|
};
|
||||||
|
|
||||||
sound.enable = false; # Alsa, seems to conflict with PipeWire
|
# sound.enable = false; # Alsa, seems to conflict with PipeWire # NOTE: Deprecated
|
||||||
hardware.pulseaudio.enable = false; # Get off my lawn
|
hardware.pulseaudio.enable = false; # Get off my lawn
|
||||||
|
|
||||||
# List services that you want to enable:
|
# List services that you want to enable:
|
||||||
@ -379,7 +385,7 @@ with mylib.networking; {
|
|||||||
jack.enable = false;
|
jack.enable = false;
|
||||||
|
|
||||||
wireplumber.enable = true; # Probably the default
|
wireplumber.enable = true; # Probably the default
|
||||||
# media-session.enable = false; # Removed upstream
|
# media-session.enable = false; # NOTE: Deprecated
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
|
|||||||
@ -88,6 +88,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Open Ports
|
# Open Ports
|
||||||
|
nftables.enable = true;
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# networking.firewall.checkReversePath = "loose";
|
# networking.firewall.checkReversePath = "loose";
|
||||||
|
|||||||
@ -38,6 +38,18 @@
|
|||||||
# "10-ether-1G" = mylib.networking.mkStaticSystemdNetwork {...};
|
# "10-ether-1G" = mylib.networking.mkStaticSystemdNetwork {...};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
allowedTCPPorts = [
|
||||||
|
# AvaTalk ports
|
||||||
|
7777
|
||||||
|
12777
|
||||||
|
];
|
||||||
|
|
||||||
|
allowedUDPPorts = [
|
||||||
|
# AvaTalk ports
|
||||||
|
7777
|
||||||
|
12777
|
||||||
|
];
|
||||||
|
|
||||||
wireguard-tunnels = {
|
wireguard-tunnels = {
|
||||||
wg0-de-115 =
|
wg0-de-115 =
|
||||||
mylib.networking.mkWireguardService
|
mylib.networking.mkWireguardService
|
||||||
@ -70,16 +82,16 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.hyprland = {
|
|
||||||
# enableNvidiaPatches = true; # NOTE: Deprecated
|
|
||||||
};
|
|
||||||
|
|
||||||
# Low latency audio
|
# Low latency audio
|
||||||
# musnix = {
|
# musnix = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# # musnix.soundcardPciId = ;
|
# # musnix.soundcardPciId = ;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
kernelPackages = pkgs.linuxPackages_zen;
|
||||||
|
};
|
||||||
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
xkb.layout = "us";
|
xkb.layout = "us";
|
||||||
@ -89,18 +101,23 @@
|
|||||||
# videoDrivers = ["amdgpu"];
|
# videoDrivers = ["amdgpu"];
|
||||||
};
|
};
|
||||||
|
|
||||||
# NOTE: This has been relocated here from the default config, because it forces en-US keyboard layout
|
# NOTE: This has been relocated here from the default config, because it forces en-US keyboard layout.
|
||||||
# The laptop needs de-DE...
|
# The laptop needs de-DE...
|
||||||
# Chinese Input
|
# Chinese Input
|
||||||
i18n.inputMethod.enabled = "fcitx5";
|
i18n.inputMethod = {
|
||||||
i18n.inputMethod.fcitx5 = {
|
enable = true;
|
||||||
waylandFrontend = true;
|
type = "fcitx5";
|
||||||
|
|
||||||
addons = with pkgs; [
|
fcitx5 = {
|
||||||
fcitx5-gtk
|
waylandFrontend = true;
|
||||||
libsForQt5.fcitx5-qt
|
|
||||||
fcitx5-chinese-addons
|
addons = with pkgs; [
|
||||||
fcitx5-configtool # TODO: Remove this and set config through HomeManager
|
fcitx5-gtk
|
||||||
];
|
libsForQt5.fcitx5-qt # QT5
|
||||||
|
kdePackages.fcitx5-qt # QT6
|
||||||
|
fcitx5-chinese-addons
|
||||||
|
fcitx5-configtool # TODO: Remove this and set config through HomeManager
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,8 +73,8 @@
|
|||||||
cpu.amd.updateMicrocode = true;
|
cpu.amd.updateMicrocode = true;
|
||||||
|
|
||||||
nvidia = {
|
nvidia = {
|
||||||
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
# package = config.boot.kernelPackages.nvidiaPackages.beta; # NOTE: Beta, might (?) prevent discord screen-share
|
||||||
|
|
||||||
modesetting.enable = true; # Not officially supported by NVidia but needed for wayland
|
modesetting.enable = true; # Not officially supported by NVidia but needed for wayland
|
||||||
open = false; # TODO: Build failure on 2024-18-01
|
open = false; # TODO: Build failure on 2024-18-01
|
||||||
@ -82,12 +82,12 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# video.hidpi.enable = lib.mkDefault true; # No longer has any effect
|
# video.hidpi.enable = lib.mkDefault true; # No longer has any effect
|
||||||
opengl = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
# Vulkan
|
# Vulkan
|
||||||
driSupport = true;
|
# driSupport = true; # NOTE: Deprecated
|
||||||
driSupport32Bit = true;
|
enable32Bit = true;
|
||||||
|
|
||||||
# AMD: https://nixos.wiki/wiki/AMD_GPU
|
# AMD: https://nixos.wiki/wiki/AMD_GPU
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
@ -97,8 +97,8 @@
|
|||||||
vaapiVdpau # Taken from wiki, this is also part of nixos-hardware/common/gpu/nvidia
|
vaapiVdpau # Taken from wiki, this is also part of nixos-hardware/common/gpu/nvidia
|
||||||
libvdpau-va-gl # Taken from wiki
|
libvdpau-va-gl # Taken from wiki
|
||||||
|
|
||||||
# libvdpau # NOTE: Don't know if needed/where it belongs...
|
libvdpau # NOTE: Don't know if needed/where it belongs...
|
||||||
# libva # NOTE: Don't know if needed/where it belongs...
|
libva # NOTE: Don't know if needed/where it belongs...
|
||||||
|
|
||||||
nvidia-vaapi-driver # Experimental, doesn't work with chromium
|
nvidia-vaapi-driver # Experimental, doesn't work with chromium
|
||||||
];
|
];
|
||||||
@ -110,8 +110,11 @@
|
|||||||
|
|
||||||
# environment.variables.AMD_VULKAN_ICD = "RADV"; # Choose mesa driver by default
|
# environment.variables.AMD_VULKAN_ICD = "RADV"; # Choose mesa driver by default
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
LIBVA_DRIVER_NAME = "nvidia";
|
|
||||||
GBM_BACKEND = "nvidia-drm";
|
GBM_BACKEND = "nvidia-drm";
|
||||||
|
|
||||||
|
# https://github.com/elFarto/nvidia-vaapi-driver?tab=readme-ov-file#environment-variables
|
||||||
|
LIBVA_DRIVER_NAME = "nvidia";
|
||||||
|
NVD_BACKEND = "egl";
|
||||||
};
|
};
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
|||||||
@ -27,10 +27,6 @@
|
|||||||
|
|
||||||
programs.light.enable = true;
|
programs.light.enable = true;
|
||||||
|
|
||||||
programs.hyprland = {
|
|
||||||
# enableNvidiaPatches = false; # NOTE: Deprecated
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
xkb.layout = "de";
|
xkb.layout = "de";
|
||||||
|
|||||||
@ -16,8 +16,17 @@
|
|||||||
initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
||||||
initrd.kernelModules = [];
|
initrd.kernelModules = [];
|
||||||
kernelModules = ["kvm-intel"];
|
kernelModules = ["kvm-intel"];
|
||||||
extraModulePackages = with config.boot.kernelPackages; [
|
extraModulePackages = with config.boot.kernelPackages; [];
|
||||||
];
|
# NOTE: Didn't work with Zen, switched to regular kernel instead
|
||||||
|
# kernelPatches = [
|
||||||
|
# {
|
||||||
|
# name = "ipeth";
|
||||||
|
# patch = null;
|
||||||
|
# extraConfig = ''
|
||||||
|
# USB_IPHETH y
|
||||||
|
# '';
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
@ -45,9 +54,9 @@
|
|||||||
enableRedistributableFirmware = true;
|
enableRedistributableFirmware = true;
|
||||||
cpu.intel.updateMicrocode = true;
|
cpu.intel.updateMicrocode = true;
|
||||||
|
|
||||||
opengl = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
# driSupport = true; # NOTE: Deprecated
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
intel-media-driver
|
intel-media-driver
|
||||||
vaapiIntel
|
vaapiIntel
|
||||||
|
|||||||
Reference in New Issue
Block a user