neovim -> nixvim
This commit is contained in:
@@ -1,82 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.programs.flutter;
|
|
||||||
androidComposition = pkgs.androidenv.composeAndroidPackages {
|
|
||||||
toolsVersion = "26.1.1";
|
|
||||||
platformToolsVersion = "35.0.1";
|
|
||||||
buildToolsVersions = [
|
|
||||||
"30.0.3"
|
|
||||||
"33.0.1"
|
|
||||||
"34.0.0"
|
|
||||||
];
|
|
||||||
platformVersions = [
|
|
||||||
"31"
|
|
||||||
"33"
|
|
||||||
"34"
|
|
||||||
];
|
|
||||||
abiVersions = [ "x86_64" ];
|
|
||||||
includeEmulator = true;
|
|
||||||
emulatorVersion = "35.1.4";
|
|
||||||
includeSystemImages = true;
|
|
||||||
systemImageTypes = [ "google_apis_playstore" ];
|
|
||||||
includeSources = false;
|
|
||||||
extraLicenses = [
|
|
||||||
"android-googletv-license"
|
|
||||||
"android-sdk-arm-dbt-license"
|
|
||||||
"android-sdk-license"
|
|
||||||
"android-sdk-preview-license"
|
|
||||||
"google-gdk-license"
|
|
||||||
"intel-android-extra-license"
|
|
||||||
"intel-android-sysimage-license"
|
|
||||||
"mips-android-sysimage-license"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
androidSdk = androidComposition.androidsdk;
|
|
||||||
buildToolsVersion = "33.0.1";
|
|
||||||
in {
|
|
||||||
options.programs.flutter = {
|
|
||||||
enable = mkEnableOption "Flutter development environment";
|
|
||||||
addToKvmGroup = mkEnableOption "Add user to KVM group for hardware acceleration";
|
|
||||||
enableAdb = mkEnableOption "Enable ADB and add user to adbusers group";
|
|
||||||
user = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
description = "Username for Flutter development";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
flutter
|
|
||||||
androidSdk
|
|
||||||
# android-studio
|
|
||||||
jdk17
|
|
||||||
firebase-tools
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.variables = {
|
|
||||||
ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk";
|
|
||||||
ANDROID_HOME = "${androidSdk}/libexec/android-sdk";
|
|
||||||
JAVA_HOME = "${pkgs.jdk17}";
|
|
||||||
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidSdk}/libexec/android-sdk/build-tools/34.0.0/aapt2";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config = {
|
|
||||||
android_sdk.accept_license = true;
|
|
||||||
allowUnfree = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.shellInit = ''
|
|
||||||
export PATH=$PATH:${androidSdk}/libexec/android-sdk/platform-tools
|
|
||||||
export PATH=$PATH:${androidSdk}/libexec/android-sdk/cmdline-tools/latest/bin
|
|
||||||
export PATH=$PATH:${androidSdk}/libexec/android-sdk/emulator
|
|
||||||
export PATH="$PATH":"$HOME/.pub-cache/bin"
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.adb.enable = cfg.enableAdb;
|
|
||||||
|
|
||||||
users.users.${cfg.user}.extraGroups =
|
|
||||||
(optional cfg.addToKvmGroup "kvm") ++ (optional cfg.enableAdb "adbusers");
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -2,7 +2,10 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
# Importing necessary setup for Steam & Printing & Flutter.
|
# Importing necessary setup for Steam & Printing & Flutter.
|
||||||
imports = [ ./builds/steam/default.nix ./home/extras/printer.nix ./builds/flutter.nix ];
|
imports = [
|
||||||
|
./builds/steam/default.nix
|
||||||
|
./home/extras/printer.nix
|
||||||
|
];
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
@@ -33,7 +36,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Activate Flakes.
|
# Activate Flakes.
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
# Configuration of the Garbage collect.
|
# Configuration of the Garbage collect.
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
@@ -65,7 +71,6 @@
|
|||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
# Define a user account.
|
# Define a user account.
|
||||||
users = {
|
users = {
|
||||||
mutableUsers = false;
|
mutableUsers = false;
|
||||||
@@ -73,9 +78,14 @@
|
|||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
home = "/home/elias";
|
home = "/home/elias";
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
extraGroups = [ "wheel" "networkmanager" "audio" "video" "adbusers" ];
|
extraGroups = [
|
||||||
hashedPassword =
|
"wheel"
|
||||||
"$6$pdAJt1f0v7Zb13Ri$1WpKrErAp5JCb7eXs7EeeWYRMBLu5/WKDdMyGzJyYQDijG2NiywUXpAkl/8p1noxOOqYbb.MTw7JmTzhWGsT21";
|
"networkmanager"
|
||||||
|
"audio"
|
||||||
|
"video"
|
||||||
|
"adbusers"
|
||||||
|
];
|
||||||
|
hashedPassword = "$6$pdAJt1f0v7Zb13Ri$1WpKrErAp5JCb7eXs7EeeWYRMBLu5/WKDdMyGzJyYQDijG2NiywUXpAkl/8p1noxOOqYbb.MTw7JmTzhWGsT21";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -84,16 +94,13 @@
|
|||||||
(catppuccin-sddm.override {
|
(catppuccin-sddm.override {
|
||||||
flavor = "mocha";
|
flavor = "mocha";
|
||||||
accent = "mauve";
|
accent = "mauve";
|
||||||
font = "Fira Code";
|
font = "Fira Code";
|
||||||
fontSize = "9";
|
fontSize = "9";
|
||||||
# background = "${./wallpaper.png}";
|
# background = "${./wallpaper.png}";
|
||||||
loginBackground = true;
|
loginBackground = true;
|
||||||
})
|
})
|
||||||
exiftool
|
exiftool
|
||||||
|
|
||||||
flutter
|
|
||||||
dart
|
|
||||||
|
|
||||||
git
|
git
|
||||||
wget
|
wget
|
||||||
curl
|
curl
|
||||||
@@ -129,19 +136,8 @@
|
|||||||
XDG_STATE_HOME = "$HOME/.local/state";
|
XDG_STATE_HOME = "$HOME/.local/state";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Virtualbox
|
|
||||||
# boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
|
|
||||||
# boot.kernelModules = ["kvm-amd"];
|
|
||||||
# virtualisation.virtualbox.host.enable = true;
|
|
||||||
# users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" "kv" ];
|
|
||||||
# virtualisation.virtualbox.host.enableExtensionPack = true;
|
|
||||||
# virtualisation.virtualbox.guest.enable = true;
|
|
||||||
# virtualisation.virtualbox.guest.dragAndDrop = true;
|
|
||||||
# virtualisation.virtualbox.host.enableKvm = true;
|
|
||||||
# virtualisation.virtualbox.host.addNetworkInterface = false;
|
|
||||||
|
|
||||||
# Hyprlock
|
# Hyprlock
|
||||||
security.pam.services.hyprlock = {};
|
security.pam.services.hyprlock = { };
|
||||||
|
|
||||||
# Enabling the Keyring.
|
# Enabling the Keyring.
|
||||||
security.pam.services.lightdm.enableGnomeKeyring = true;
|
security.pam.services.lightdm.enableGnomeKeyring = true;
|
||||||
@@ -173,4 +169,3 @@
|
|||||||
};
|
};
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
114
flake.lock
generated
114
flake.lock
generated
@@ -22,6 +22,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_2": {
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769996383,
|
||||||
|
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nur",
|
"nur",
|
||||||
@@ -66,9 +87,7 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"neovim-src": "neovim-src",
|
"neovim-src": "neovim-src",
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs"
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764547590,
|
"lastModified": 1764547590,
|
||||||
@@ -100,23 +119,59 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-vscode-extensions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771555311,
|
||||||
|
"narHash": "sha256-aFjIc57eYBx5jgyLcHujraPf6b/p9RWxzvOGnHML5h0=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-vscode-extensions",
|
||||||
|
"rev": "88fc33a8a8868de1ac41362fb62341513904dc0f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-vscode-extensions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764517877,
|
"lastModified": 1771177547,
|
||||||
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
|
"narHash": "sha256-trTtk3WTOHz7hSw89xIIvahkgoFJYQ0G43IlqprFoMA=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
|
"rev": "ac055f38c798b0d87695240c7b761b82fc7e5bc2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1764517877,
|
||||||
|
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764517877,
|
"lastModified": 1764517877,
|
||||||
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
|
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
|
||||||
@@ -132,10 +187,32 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771135771,
|
||||||
|
"narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nur": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_3",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764594412,
|
"lastModified": 1764594412,
|
||||||
@@ -155,9 +232,26 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"neovim-nightly-overlay": "neovim-nightly-overlay",
|
"neovim-nightly-overlay": "neovim-nightly-overlay",
|
||||||
"nixpkgs": "nixpkgs",
|
"nix-vscode-extensions": "nix-vscode-extensions",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nixvim": "nixvim",
|
||||||
"nur": "nur"
|
"nur": "nur"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
111
flake.nix
111
flake.nix
@@ -9,57 +9,76 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nur = { url = "github:nix-community/NUR"; };
|
nur = {
|
||||||
|
url = "github:nix-community/NUR";
|
||||||
|
};
|
||||||
|
|
||||||
neovim-nightly-overlay = {
|
nixvim = {
|
||||||
url = "github:nix-community/neovim-nightly-overlay";
|
url = "github:nix-community/nixvim";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Nix expressions for VSCode and OpenVSX extensions
|
||||||
|
nix-vscode-extensions = {
|
||||||
|
url = "github:nix-community/nix-vscode-extensions";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { nixpkgs, home-manager, nur, ... }@inputs: {
|
outputs =
|
||||||
formatter.x86_64-linux =
|
{
|
||||||
nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
|
nixpkgs,
|
||||||
nixosConfigurations = {
|
home-manager,
|
||||||
eliasLaptop = nixpkgs.lib.nixosSystem {
|
nur,
|
||||||
system = "x86_64-linux";
|
nixvim,
|
||||||
modules = [
|
...
|
||||||
./machines/configuration-laptop.nix
|
}@inputs:
|
||||||
./home/services/pipewire.nix
|
{
|
||||||
nur.modules.nixos.default
|
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
|
||||||
home-manager.nixosModules.home-manager
|
nixosConfigurations = {
|
||||||
{
|
eliasLaptop = nixpkgs.lib.nixosSystem {
|
||||||
home-manager = {
|
system = "x86_64-linux";
|
||||||
useUserPackages = true;
|
modules = [
|
||||||
extraSpecialArgs = { inherit inputs; };
|
./machines/configuration-laptop.nix
|
||||||
users.elias = import ./home/default-laptop.nix;
|
./home/services/pipewire.nix
|
||||||
};
|
nur.modules.nixos.default
|
||||||
nixpkgs.overlays = [
|
home-manager.nixosModules.home-manager
|
||||||
# (import ./overlays/river-status.nix)
|
{
|
||||||
inputs.nur.overlays.default
|
home-manager = {
|
||||||
];
|
useUserPackages = true;
|
||||||
}
|
extraSpecialArgs = { inherit inputs; };
|
||||||
];
|
users.elias = import ./home/default-laptop.nix;
|
||||||
};
|
};
|
||||||
eliasDesktop = nixpkgs.lib.nixosSystem {
|
nixpkgs.overlays = [
|
||||||
system = "x86_64-linux";
|
# (import ./overlays/river-status.nix)
|
||||||
modules = [
|
inputs.nur.overlays.default
|
||||||
./machines/configuration-desktop.nix
|
inputs.nix-vscode-extensions.overlays.default
|
||||||
./home/services/pipewire.nix
|
];
|
||||||
nur.modules.nixos.default
|
}
|
||||||
home-manager.nixosModules.home-manager
|
];
|
||||||
{
|
};
|
||||||
home-manager = {
|
eliasDesktop = nixpkgs.lib.nixosSystem {
|
||||||
useUserPackages = true;
|
system = "x86_64-linux";
|
||||||
extraSpecialArgs = { inherit inputs; };
|
modules = [
|
||||||
users.elias = import ./home/default-desktop.nix;
|
./machines/configuration-desktop.nix
|
||||||
};
|
./home/services/pipewire.nix
|
||||||
nixpkgs.overlays = [
|
nur.modules.nixos.default
|
||||||
inputs.nur.overlays.default
|
home-manager.nixosModules.home-manager
|
||||||
];
|
{
|
||||||
}
|
home-manager = {
|
||||||
];
|
useUserPackages = true;
|
||||||
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
users.elias = import ./home/default-desktop.nix;
|
||||||
|
};
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
inputs.nur.overlays.default
|
||||||
|
inputs.nix-vscode-extensions.overlays.default
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,6 @@
|
|||||||
pavucontrol
|
pavucontrol
|
||||||
sshfs
|
sshfs
|
||||||
|
|
||||||
obsidian
|
|
||||||
lean4
|
|
||||||
gcc
|
|
||||||
|
|
||||||
cups
|
cups
|
||||||
firefox
|
firefox
|
||||||
bitwarden-desktop
|
bitwarden-desktop
|
||||||
|
|||||||
@@ -12,10 +12,9 @@
|
|||||||
./inkscape.nix
|
./inkscape.nix
|
||||||
./libreoffice.nix
|
./libreoffice.nix
|
||||||
./messenger.nix
|
./messenger.nix
|
||||||
./neovim
|
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
|
./nixvim
|
||||||
./picard.nix
|
./picard.nix
|
||||||
./planify.nix
|
|
||||||
./prismlauncher.nix
|
./prismlauncher.nix
|
||||||
./pulseaudio
|
./pulseaudio
|
||||||
./river
|
./river
|
||||||
|
|||||||
104
home/programs/nixvim/default.nix
Normal file
104
home/programs/nixvim/default.nix
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
{ inputs, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nixvim.homeModules.nixvim
|
||||||
|
./plugins
|
||||||
|
];
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
EDITOR = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
|
||||||
|
nixpkgs.useGlobalPackages = false;
|
||||||
|
|
||||||
|
clipboard = {
|
||||||
|
providers = {
|
||||||
|
wl-copy.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
|
||||||
|
lualoader.enable = true;
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
texliveFull
|
||||||
|
texlivePackages.standalone
|
||||||
|
# papis-nvim
|
||||||
|
]
|
||||||
|
;
|
||||||
|
extraConfigVim = ''
|
||||||
|
filetype plugin on
|
||||||
|
set nocompatible
|
||||||
|
syntax on
|
||||||
|
'';
|
||||||
|
|
||||||
|
colorscheme = "catppuccin";
|
||||||
|
colorschemes.catppuccin = {
|
||||||
|
#lazyLoad.enable = true;
|
||||||
|
enable = true;
|
||||||
|
flavour = "mocha";
|
||||||
|
settings = {
|
||||||
|
integrations = {
|
||||||
|
markdown = true;
|
||||||
|
leap = true;
|
||||||
|
dap = true;
|
||||||
|
dap_ui = true;
|
||||||
|
lsp_trouble = true;
|
||||||
|
blink_cmp = true;
|
||||||
|
gitsigns = true;
|
||||||
|
diffview = true;
|
||||||
|
treesitter = true;
|
||||||
|
barbar = true;
|
||||||
|
telescope = true;
|
||||||
|
native_lsp = {
|
||||||
|
enabled = true;
|
||||||
|
virtual_text = {
|
||||||
|
errors = [ "italic" ];
|
||||||
|
hints = [ "italic" ];
|
||||||
|
warnings = [ "italic" ];
|
||||||
|
information = [ "italic" ];
|
||||||
|
ok = [ "italic" ];
|
||||||
|
};
|
||||||
|
underlines = {
|
||||||
|
errors = [ "underline" ];
|
||||||
|
hints = [ "underline" ];
|
||||||
|
warnings = [ "underline" ];
|
||||||
|
information = [ "underline" ];
|
||||||
|
ok = [ "underline" ];
|
||||||
|
};
|
||||||
|
inlay_hints = {
|
||||||
|
background = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lsp_saga = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
globals = {
|
||||||
|
mapleader = " ";
|
||||||
|
maplocalleader = ",";
|
||||||
|
};
|
||||||
|
|
||||||
|
opts = {
|
||||||
|
cursorline = true; # Enable highlighting of the current line
|
||||||
|
expandtab = true; # Use spaces instead of tabs
|
||||||
|
list = true; # Show some invisible characters (tabs...)
|
||||||
|
mouse = "a"; # Enable mouse mode
|
||||||
|
number = true; # Print line number
|
||||||
|
relativenumber = true; # Relative line numbers
|
||||||
|
shiftround = true; # Round indent
|
||||||
|
shiftwidth = 2; # Size of an indent
|
||||||
|
smartindent = true; # Insert indents automatically
|
||||||
|
spelllang = [ "en" ];
|
||||||
|
tabstop = 2; # Number of spaces tabs count for
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
13
home/programs/nixvim/plugins/autopairs.nix
Normal file
13
home/programs/nixvim/plugins/autopairs.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
nvim-autopairs = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
check_ts = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
85
home/programs/nixvim/plugins/barbar.nix
Normal file
85
home/programs/nixvim/plugins/barbar.nix
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
barbar = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<leader>b";
|
||||||
|
group = "Buffers";
|
||||||
|
icon = " ";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<leader>,";
|
||||||
|
icon = " ";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<leader>.";
|
||||||
|
icon = " ";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<CMD>BufferPrevious<CR>";
|
||||||
|
key = "<leader>,";
|
||||||
|
mode = "n";
|
||||||
|
options = {
|
||||||
|
desc = "Tab ";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>BufferNext<CR>";
|
||||||
|
key = "<leader>.";
|
||||||
|
mode = "n";
|
||||||
|
options = {
|
||||||
|
desc = "Tab ";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>BufferMovePrevious<CR>";
|
||||||
|
key = "<leader>b<";
|
||||||
|
mode = "n";
|
||||||
|
options = {
|
||||||
|
desc = "Re-Order ";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>BufferMoveNext<CR>";
|
||||||
|
key = "<leader>b>";
|
||||||
|
mode = "n";
|
||||||
|
options = {
|
||||||
|
desc = "Re-Order ";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>BufferClose<CR>";
|
||||||
|
key = "<leader>bc";
|
||||||
|
mode = "n";
|
||||||
|
options = {
|
||||||
|
desc = "Close";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>tabnew +Telescope\\ file_browser<CR>";
|
||||||
|
key = "<leader>bn";
|
||||||
|
mode = "n";
|
||||||
|
options = {
|
||||||
|
desc = "Create";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>BufferPick<CR>";
|
||||||
|
key = "<leader>bp";
|
||||||
|
mode = "n";
|
||||||
|
options = {
|
||||||
|
desc = "Pick Tab";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
68
home/programs/nixvim/plugins/bullets.nix
Normal file
68
home/programs/nixvim/plugins/bullets.nix
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
bullets = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
enabled_file_types = [
|
||||||
|
"markdown"
|
||||||
|
"text"
|
||||||
|
"gitcommit"
|
||||||
|
];
|
||||||
|
set_mappings = 0;
|
||||||
|
checkbox_markers = " -X";
|
||||||
|
custom_mappings = [
|
||||||
|
[
|
||||||
|
"nmap"
|
||||||
|
"o"
|
||||||
|
"<Plug>(bullets-newline)"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"vmap"
|
||||||
|
"gN"
|
||||||
|
"<Plug>(bullets-renumber)"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"nmap"
|
||||||
|
"gN"
|
||||||
|
"<Plug>(bullets-renumber)"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"imap"
|
||||||
|
"<C-t>"
|
||||||
|
"<Plug>(bullets-demote)"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"nmap"
|
||||||
|
">>"
|
||||||
|
"<Plug>(bullets-demote)"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"vmap"
|
||||||
|
">"
|
||||||
|
"<Plug>(bullets-demote)"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"imap"
|
||||||
|
"<C-d>"
|
||||||
|
"<Plug>(bullets-promote)"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"nmap"
|
||||||
|
"<<"
|
||||||
|
"<Plug>(bullets-promote)"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"vmap"
|
||||||
|
"<"
|
||||||
|
"<Plug>(bullets-promote)"
|
||||||
|
]
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
73
home/programs/nixvim/plugins/cmp.nix
Normal file
73
home/programs/nixvim/plugins/cmp.nix
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
blink-cmp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
keymap = {
|
||||||
|
preset = "default";
|
||||||
|
};
|
||||||
|
snippets = {
|
||||||
|
preset = "luasnip";
|
||||||
|
};
|
||||||
|
completion = {
|
||||||
|
accept = {
|
||||||
|
auto_brackets = {
|
||||||
|
enabled = true;
|
||||||
|
kind_resolution = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
semantic_token_resolution = {
|
||||||
|
enabled = true;
|
||||||
|
timeout_ms = 400;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
sources = {
|
||||||
|
per_filetype = {
|
||||||
|
yaml = [ "papis" ];
|
||||||
|
};
|
||||||
|
providers = {
|
||||||
|
spell = {
|
||||||
|
module = "blink-cmp-spell";
|
||||||
|
name = "Spell";
|
||||||
|
score_offset = 100;
|
||||||
|
opts = { };
|
||||||
|
};
|
||||||
|
vimtex = {
|
||||||
|
name = "vimtex";
|
||||||
|
module = "blink.compat.source";
|
||||||
|
};
|
||||||
|
dap = {
|
||||||
|
name = "dap";
|
||||||
|
module = "blink.compat.source";
|
||||||
|
};
|
||||||
|
mkdnflow = {
|
||||||
|
name = "mkdnflow";
|
||||||
|
module = "blink.compat.source";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
default = [
|
||||||
|
"lsp"
|
||||||
|
"mkdnflow"
|
||||||
|
"path"
|
||||||
|
"snippets"
|
||||||
|
# "dap"
|
||||||
|
"vimtex"
|
||||||
|
"buffer"
|
||||||
|
"spell"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
blink-cmp-spell.enable = true;
|
||||||
|
blink-compat.enable = true;
|
||||||
|
cmp-vimtex.enable = true;
|
||||||
|
# cmp-dap.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
56
home/programs/nixvim/plugins/comment-box.nix
Normal file
56
home/programs/nixvim/plugins/comment-box.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
comment-box = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<leader>c";
|
||||||
|
group = "Boxes";
|
||||||
|
icon = "□ ";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "<leader>cb";
|
||||||
|
action = "<Cmd>CBccbox<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Box Title";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>ct";
|
||||||
|
action = "<Cmd>CBllline<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Titled Line";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>cl";
|
||||||
|
action = "<Cmd>CBline<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Simple Line";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>cm";
|
||||||
|
action = "<Cmd>CBllbox14<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Marked";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>cd";
|
||||||
|
action = "<Cmd>CBd<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Remove a Box";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
16
home/programs/nixvim/plugins/comment.nix
Normal file
16
home/programs/nixvim/plugins/comment.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
comment = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
mappings = {
|
||||||
|
basic = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
133
home/programs/nixvim/plugins/conform.nix
Normal file
133
home/programs/nixvim/plugins/conform.nix
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
stylua
|
||||||
|
rustfmt
|
||||||
|
fourmolu
|
||||||
|
shellcheck
|
||||||
|
shellharden
|
||||||
|
shfmt
|
||||||
|
black
|
||||||
|
beamMinimal28Packages.elixir
|
||||||
|
clang-tools
|
||||||
|
prettierd
|
||||||
|
nixfmt-rfc-style
|
||||||
|
tex-fmt
|
||||||
|
hclfmt
|
||||||
|
topiary # TODO: Install https://github.com/blindFS/topiary-nushell somehow, e.g. clone languages.ncl to ~/.config/topiary/languages.ncl & nu.scm to ~/.config/topiary/topiary-queries/queries/nu.scm
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
conform-nvim = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
formatters_by_ft = {
|
||||||
|
lua = [ "stylua" ];
|
||||||
|
rust = [ "rustfmt" ];
|
||||||
|
python = [
|
||||||
|
"black"
|
||||||
|
];
|
||||||
|
haskell = [ "fourmolu" ];
|
||||||
|
terraform = [ "hcl" ];
|
||||||
|
elixir = [ "mix" ];
|
||||||
|
bash = [
|
||||||
|
"shellcheck"
|
||||||
|
"shellharden"
|
||||||
|
"shfmt"
|
||||||
|
];
|
||||||
|
sh = [
|
||||||
|
"shellcheck"
|
||||||
|
"shfmt"
|
||||||
|
];
|
||||||
|
c = [ "clang-format" ];
|
||||||
|
cpp = [ "clang-format" ];
|
||||||
|
markdown = [ "prettierd" ];
|
||||||
|
json = [ "prettierd" ];
|
||||||
|
yaml = [ "prettierd" ];
|
||||||
|
nu = [ "topiary_nu" ];
|
||||||
|
nix = [ "nixfmt" ];
|
||||||
|
tex = [
|
||||||
|
"tex-fmt"
|
||||||
|
];
|
||||||
|
"_" = [
|
||||||
|
"squeeze_blanks"
|
||||||
|
"trim_whitespace"
|
||||||
|
"trim_newlines"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
format_on_save = # Lua
|
||||||
|
''
|
||||||
|
function(bufnr)
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
return { lsp_fallback = true }
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
format_after_save = # Lua
|
||||||
|
''
|
||||||
|
function(bufnr)
|
||||||
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
return { lsp_fallback = true }
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
formatters = {
|
||||||
|
topiary_nu = {
|
||||||
|
command = "topiary";
|
||||||
|
args = [
|
||||||
|
"format"
|
||||||
|
"--language"
|
||||||
|
"nu"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
stylua = {
|
||||||
|
"inherit" = true;
|
||||||
|
prepend_args = [
|
||||||
|
"--indent-type"
|
||||||
|
"Spaces"
|
||||||
|
"--indent-width"
|
||||||
|
"2"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
tex-fmt = {
|
||||||
|
command = "tex-fmt";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.nixvim.userCommands = {
|
||||||
|
FormatDisable = {
|
||||||
|
bang = true;
|
||||||
|
desc = "Disable autoformat-on-save";
|
||||||
|
command.__raw = # Lua
|
||||||
|
''
|
||||||
|
function(args)
|
||||||
|
if args.bang then
|
||||||
|
-- FormatDisable! will disable formatting just for this buffer
|
||||||
|
vim.b.disable_autoformat = true
|
||||||
|
else
|
||||||
|
vim.g.disable_autoformat = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
FormatEnable = {
|
||||||
|
desc = "Re-enable autoformat-on-save";
|
||||||
|
command.__raw = # Lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
vim.b.disable_autoformat = false
|
||||||
|
vim.g.disable_autoformat = false
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
298
home/programs/nixvim/plugins/dap.nix
Normal file
298
home/programs/nixvim/plugins/dap.nix
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
lldb_19
|
||||||
|
gdb
|
||||||
|
rustc
|
||||||
|
# python3.withPackages
|
||||||
|
# (ps: with ps; [ debugpy ])
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
dap-python = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dap = {
|
||||||
|
enable = true;
|
||||||
|
luaConfig.post = ''
|
||||||
|
local dap, dapui = require("dap"), require("dapui")
|
||||||
|
dap.listeners.before.attach.dapui_config = function()
|
||||||
|
dapui.open()
|
||||||
|
end
|
||||||
|
dap.listeners.before.launch.dapui_config = function()
|
||||||
|
dapui.open()
|
||||||
|
end
|
||||||
|
dap.listeners.before.event_terminated.dapui_config = function()
|
||||||
|
dapui.close()
|
||||||
|
end
|
||||||
|
dap.listeners.before.event_exited.dapui_config = function()
|
||||||
|
dapui.close()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
adapters = {
|
||||||
|
executables = {
|
||||||
|
lldb = {
|
||||||
|
command = "${pkgs.lldb_19}/bin/lldb-dap";
|
||||||
|
};
|
||||||
|
gdb = {
|
||||||
|
command = "${pkgs.gdb}/bin/gdb";
|
||||||
|
args = [
|
||||||
|
"--interpreter=dap"
|
||||||
|
"--eval-command"
|
||||||
|
"set print pretty on"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
rust-gdb = {
|
||||||
|
command = "${pkgs.rustc}/bin/rust-gdb";
|
||||||
|
args = [
|
||||||
|
"--interpreter=dap"
|
||||||
|
"--eval-command"
|
||||||
|
"set print pretty on"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
signs = {
|
||||||
|
dapBreakpoint.text = "";
|
||||||
|
};
|
||||||
|
configurations = {
|
||||||
|
cpp = [
|
||||||
|
{
|
||||||
|
name = "Launch";
|
||||||
|
type = "gdb";
|
||||||
|
request = "launch";
|
||||||
|
program.__raw = # lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
cwd = "\${workspaceFolder}";
|
||||||
|
stopAtBeginningOfMainSubprogram = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Select and attach to process";
|
||||||
|
type = "gdb";
|
||||||
|
request = "attach";
|
||||||
|
program._raw = # lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
pid.__raw = ''
|
||||||
|
function()
|
||||||
|
local name = vim.fn.input('Executable name (filter): ')
|
||||||
|
return require("dap.utils").pick_process({ filter = name })
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
cwd = "\${workspaceFolder}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Attach to gdbserver :1234";
|
||||||
|
type = "gdb";
|
||||||
|
request = "attach";
|
||||||
|
target = "localhost:1234";
|
||||||
|
program.__raw = ''
|
||||||
|
function()
|
||||||
|
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
cwd = "\${workspaceFolder}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
c = [
|
||||||
|
{
|
||||||
|
name = "Launch file";
|
||||||
|
type = "lldb";
|
||||||
|
request = "launch";
|
||||||
|
cwd = "\${workspaceFolder}";
|
||||||
|
stopOnEntry = false;
|
||||||
|
program.__raw = # lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
return coroutine.create(function(coro)
|
||||||
|
local opts = {}
|
||||||
|
require("telescope.pickers")
|
||||||
|
.new(opts, {
|
||||||
|
prompt_title = "Path to executable",
|
||||||
|
finder = require("telescope.finders").new_oneshot_job({ "fd", "--hidden", "--no-ignore", "--type", "x" }, {}),
|
||||||
|
sorter = require("telescope.config").values.generic_sorter(opts),
|
||||||
|
attach_mappings = function(buffer_number)
|
||||||
|
require("telescope.actions").select_default:replace(function()
|
||||||
|
require("telescope.actions").close(buffer_number)
|
||||||
|
coroutine.resume(coro, require("telescope.actions.state").get_selected_entry()[1])
|
||||||
|
end)
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
:find()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
args = { };
|
||||||
|
}
|
||||||
|
];
|
||||||
|
rust = [
|
||||||
|
{
|
||||||
|
name = "Launch";
|
||||||
|
type = "rust-gdb";
|
||||||
|
request = "launch";
|
||||||
|
program.__raw = ''
|
||||||
|
function()
|
||||||
|
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
args = { };
|
||||||
|
cwd = "\${workspaceFolder}";
|
||||||
|
stopAtBeginningOfMainSubprogram = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Select and attach to process";
|
||||||
|
type = "rust-gdb";
|
||||||
|
request = "attach";
|
||||||
|
program.__raw = ''
|
||||||
|
function()
|
||||||
|
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
pid.__raw = ''
|
||||||
|
function()
|
||||||
|
local name = vim.fn.input('Executable name (filter): ')
|
||||||
|
return require("dap.utils").pick_process({ filter = name })
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
cwd = "\${workspaceFolder}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Attach to gdbserver :1234";
|
||||||
|
type = "rust-gdb";
|
||||||
|
request = "attach";
|
||||||
|
target = "localhost:1234";
|
||||||
|
program.__raw = ''
|
||||||
|
function()
|
||||||
|
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
cwd = "\${workspaceFolder}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
dap-ui = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
dap-virtual-text = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<leader>d";
|
||||||
|
group = "Debugger";
|
||||||
|
icon = " ";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "<leader>dt";
|
||||||
|
action.__raw = "function() require('dap').toggle_breakpoint() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Toggle Breakpoint";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>dc";
|
||||||
|
action.__raw = "function() require('dap').continue() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Continue";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>dc";
|
||||||
|
action.__raw = "function() require('dap').continue() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Continue";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>di";
|
||||||
|
action.__raw = "function() require('dap').step_into() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Step Into";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>do";
|
||||||
|
action.__raw = "function() require('dap').step_over() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Step Over";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>du";
|
||||||
|
action.__raw = "function() require('dap').step_out() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Step Out";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>dr";
|
||||||
|
action.__raw = "function() require('dap').repl.open() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Open REPL";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>dl";
|
||||||
|
action.__raw = "function() require('dap').run_last() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Run Last";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>dq";
|
||||||
|
action.__raw = # lua
|
||||||
|
''
|
||||||
|
function()
|
||||||
|
require("dap").terminate()
|
||||||
|
require("dapui").close()
|
||||||
|
require("nvim-dap-virtual-text").toggle()
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Terminate";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>db";
|
||||||
|
action.__raw = "function() require('dap').list_breakpoints() end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "List Breakpoints";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>de";
|
||||||
|
action.__raw = "function() require('dap').set_exception_breakpoints({ ' all ' }) end";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Set Exception Breakpoints";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
52
home/programs/nixvim/plugins/default.nix
Normal file
52
home/programs/nixvim/plugins/default.nix
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./autopairs.nix
|
||||||
|
./barbar.nix
|
||||||
|
./bullets.nix
|
||||||
|
./cmp.nix
|
||||||
|
./comment-box.nix
|
||||||
|
./comment.nix
|
||||||
|
./conform.nix
|
||||||
|
./dap.nix
|
||||||
|
./diffview.nix
|
||||||
|
./dynomark.nix
|
||||||
|
./edgy.nix
|
||||||
|
./gitsigns.nix
|
||||||
|
./haskell-tools.nix
|
||||||
|
./knap.nix
|
||||||
|
./leap.nix
|
||||||
|
./lsp.nix
|
||||||
|
./ltex-extra.nix
|
||||||
|
./lualine.nix
|
||||||
|
./markdown-preview.nix
|
||||||
|
./mkdnflow.nix
|
||||||
|
./neoscroll.nix
|
||||||
|
./neotree.nix
|
||||||
|
./noice.nix
|
||||||
|
./notify.nix
|
||||||
|
./oil.nix
|
||||||
|
./otter.nix
|
||||||
|
./papis.nix
|
||||||
|
./peek.nix
|
||||||
|
./markdown-preview.nix
|
||||||
|
./smart-splits.nix
|
||||||
|
./sniprun.nix
|
||||||
|
./startup.nix
|
||||||
|
./surround.nix
|
||||||
|
./telescope.nix
|
||||||
|
./texpresso.nix
|
||||||
|
./todo-comments.nix
|
||||||
|
./toggleterm.nix
|
||||||
|
./treesitter.nix
|
||||||
|
./trouble.nix
|
||||||
|
./typst-preview.nix
|
||||||
|
./typst-vim.nix
|
||||||
|
./undotree.nix
|
||||||
|
./vimtex.nix
|
||||||
|
./which-key.nix
|
||||||
|
./yanky.nix
|
||||||
|
./zk.nix
|
||||||
|
|
||||||
|
./snippets.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
12
home/programs/nixvim/plugins/diffview.nix
Normal file
12
home/programs/nixvim/plugins/diffview.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
diffview = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
43
home/programs/nixvim/plugins/dynomark.nix
Normal file
43
home/programs/nixvim/plugins/dynomark.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
dynomark-nvim = pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "dynomark.nvim";
|
||||||
|
doCheck = false;
|
||||||
|
src = pkgs.pkgs.fetchFromGitHub {
|
||||||
|
owner = "k-lar";
|
||||||
|
repo = "dynomark.nvim";
|
||||||
|
rev = "a59f4e44a7619747552d869747d0f3fbb7be32b3";
|
||||||
|
hash = "sha256-zrPpFMLI2lbqm0W/I530519d7RQKDK9HRouMNAsXv+U=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
|
||||||
|
extraPlugins = [
|
||||||
|
dynomark-nvim
|
||||||
|
];
|
||||||
|
|
||||||
|
extraConfigLua = ''require('dynomark').setup({})'';
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "<leader>v";
|
||||||
|
action = "<Plug>(DynomarkToggle)";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Toggle Dynomark";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>V";
|
||||||
|
action = "<Plug>(DynomarkRun)";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Run dynomark query under cursor";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
80
home/programs/nixvim/plugins/edgy.nix
Normal file
80
home/programs/nixvim/plugins/edgy.nix
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
localOpts = {
|
||||||
|
# views can only be fully collapsed with the global statusline
|
||||||
|
laststatus = 3;
|
||||||
|
# Default splitting will cause your main splits to jump when opening an edgebar.
|
||||||
|
# To prevent this, set `splitkeep` to either `screen` or `topline`.
|
||||||
|
splitkeep = "screen";
|
||||||
|
};
|
||||||
|
plugins = {
|
||||||
|
edgy = {
|
||||||
|
enable = true;
|
||||||
|
autoLoad = true;
|
||||||
|
settings = {
|
||||||
|
bottom.__raw = ''
|
||||||
|
{
|
||||||
|
-- toggleterm / lazyterm at the bottom with a height of 40% of the screen
|
||||||
|
{
|
||||||
|
ft = "toggleterm",
|
||||||
|
size = { height = 0.2 },
|
||||||
|
-- exclude floating windows
|
||||||
|
filter = function(buf, win)
|
||||||
|
return vim.api.nvim_win_get_config(win).relative == ""
|
||||||
|
end
|
||||||
|
},
|
||||||
|
"Trouble",
|
||||||
|
{ ft = "qf", title = "QuickFix" },
|
||||||
|
{
|
||||||
|
ft = "help",
|
||||||
|
size = { height = 20 },
|
||||||
|
-- only show help buffers
|
||||||
|
filter = function(buf)
|
||||||
|
return vim.bo[buf].buftype == "help"
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
left.__raw = ''
|
||||||
|
{
|
||||||
|
-- Neo-tree filesystem always takes half the screen height
|
||||||
|
{
|
||||||
|
title = "Neo-Tree",
|
||||||
|
ft = "neo-tree",
|
||||||
|
filter = function(buf)
|
||||||
|
return vim.b[buf].neo_tree_source == "filesystem"
|
||||||
|
end,
|
||||||
|
size = { height = 0.2 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title = "Neo-Tree Git",
|
||||||
|
ft = "neo-tree",
|
||||||
|
filter = function(buf)
|
||||||
|
return vim.b[buf].neo_tree_source == "git_status"
|
||||||
|
end,
|
||||||
|
pinned = true,
|
||||||
|
collapsed = true, -- show window as closed/collapsed on start
|
||||||
|
open = "Neotree position=right git_status"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title = "Neo-Tree Buffers",
|
||||||
|
ft = "neo-tree",
|
||||||
|
filter = function(buf)
|
||||||
|
return vim.b[buf].neo_tree_source == "buffers"
|
||||||
|
end,
|
||||||
|
pinned = true,
|
||||||
|
collapsed = true, -- show window as closed/collapsed on start
|
||||||
|
open = "Neotree position=top buffers"
|
||||||
|
},
|
||||||
|
-- any other neo-tree windows
|
||||||
|
"neo-tree"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
11
home/programs/nixvim/plugins/gitsigns.nix
Normal file
11
home/programs/nixvim/plugins/gitsigns.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
gitsigns = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
home/programs/nixvim/plugins/haskell-tools.nix
Normal file
19
home/programs/nixvim/plugins/haskell-tools.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
haskell.compiler.native-bignum.ghc912
|
||||||
|
haskellPackages.haskell-language-server
|
||||||
|
haskellPackages.stack
|
||||||
|
haskellPackages.fast-tags
|
||||||
|
haskellPackages.hoogle
|
||||||
|
haskellPackages.haskell-debug-adapter
|
||||||
|
haskellPackages.ghci-dap
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPlugins = with pkgs.vimPlugins; [
|
||||||
|
haskell-tools-nvim
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
68
home/programs/nixvim/plugins/knap.nix
Normal file
68
home/programs/nixvim/plugins/knap.nix
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
# TODO: Make filetype keybindings work
|
||||||
|
let
|
||||||
|
keys = [
|
||||||
|
{
|
||||||
|
action.__raw = "function() require('knap').close_viewer() end";
|
||||||
|
key = "<C-k>c";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
options = {
|
||||||
|
desc = "Close Viewer (knap)";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "function() require('knap').toggle_autopreviewing() end";
|
||||||
|
key = "<C-k>k";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
options = {
|
||||||
|
desc = "Toggle Auto-Processing (knap)";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "function() require('knap').forward_jump() end";
|
||||||
|
key = "<C-k>s";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
options = {
|
||||||
|
desc = "SyncTeX Forward Search (Knap)";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
pandoc
|
||||||
|
texliveFull
|
||||||
|
rubber
|
||||||
|
];
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPlugins = with pkgs.vimPlugins; [ knap ];
|
||||||
|
globals = {
|
||||||
|
knap_settings = {
|
||||||
|
htmltohtmlviewerlaunch = "luakit %outputfile%";
|
||||||
|
mdtohtmlviewerlaunch = "luakit %outputfile%";
|
||||||
|
markdowntohtmlviewerlaunch = "luakit %outputfile%";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
files = {
|
||||||
|
"ftplugin/latex.lua" = {
|
||||||
|
keymaps = keys;
|
||||||
|
};
|
||||||
|
"ftplugin/markdown.lua" = {
|
||||||
|
keymaps = keys;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
30
home/programs/nixvim/plugins/leap.nix
Normal file
30
home/programs/nixvim/plugins/leap.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
leap = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
case_sensitive = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "s";
|
||||||
|
action = "<Plug>(leap)";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"x"
|
||||||
|
"o"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "S";
|
||||||
|
action = "<Plug>(leap-from-window)";
|
||||||
|
mode = [ "n" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
102
home/programs/nixvim/plugins/lsp.nix
Normal file
102
home/programs/nixvim/plugins/lsp.nix
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
tofu-ls
|
||||||
|
zuban
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins.lsp.enable = true;
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
luaConfig = {
|
||||||
|
post = ''
|
||||||
|
vim.lsp.enable('tofu_ls')
|
||||||
|
vim.lsp.enable('prolog_ls')
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
servers = {
|
||||||
|
nixd = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
rust_analyzer = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
leanls = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
nil_ls = {
|
||||||
|
enable = !config.programs.nixvim.plugins.lsp.servers.nixd.enable;
|
||||||
|
config = {
|
||||||
|
nil = {
|
||||||
|
formatting = {
|
||||||
|
command = [
|
||||||
|
"nixfmt"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
diagnostics = {
|
||||||
|
ignored = [ ];
|
||||||
|
};
|
||||||
|
nix = {
|
||||||
|
flake = {
|
||||||
|
autoArchive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nushell = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
pylsp = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
pylyzer = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
pyright = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
clangd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
zk = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
elixirls = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
marksman = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
texlab = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
lua_ls = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
ltex_plus = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.ltex-ls-plus;
|
||||||
|
config = {
|
||||||
|
ltex = {
|
||||||
|
language = "en-US";
|
||||||
|
enabled = [
|
||||||
|
"latex"
|
||||||
|
"tex"
|
||||||
|
"bibtex"
|
||||||
|
"markdown"
|
||||||
|
"typst"
|
||||||
|
"quarto"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tinymist = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
9
home/programs/nixvim/plugins/ltex-extra.nix
Normal file
9
home/programs/nixvim/plugins/ltex-extra.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
ltex-extra = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
49
home/programs/nixvim/plugins/lualine.nix
Normal file
49
home/programs/nixvim/plugins/lualine.nix
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
lualine = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
theme = "catppuccin";
|
||||||
|
# sections = {
|
||||||
|
# lualine_c = [
|
||||||
|
# {
|
||||||
|
# __unkeyed-1 = {
|
||||||
|
# __raw = ''
|
||||||
|
# function()
|
||||||
|
# require("trouble").statusline({
|
||||||
|
# mode = "lsp_document_symbols",
|
||||||
|
# groups = {},
|
||||||
|
# title = false,
|
||||||
|
# filter = { range = true },
|
||||||
|
# format = "{kind_icon}{symbol.name:Normal}",
|
||||||
|
# -- The following line is needed to fix the background color
|
||||||
|
# -- Set it to the lualine section you want to use
|
||||||
|
# hl_group = "lualine_c_normal",
|
||||||
|
# }
|
||||||
|
# ).get
|
||||||
|
# end
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
# cond = {
|
||||||
|
# __raw = ''
|
||||||
|
# require("trouble").statusline({
|
||||||
|
# mode = "lsp_document_symbols",
|
||||||
|
# groups = {},
|
||||||
|
# title = false,
|
||||||
|
# filter = { range = true },
|
||||||
|
# format = "{kind_icon}{symbol.name:Normal}",
|
||||||
|
# -- The following line is needed to fix the background color
|
||||||
|
# -- Set it to the lualine section you want to use
|
||||||
|
# hl_group = "lualine_c_normal",
|
||||||
|
# }).has
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
9
home/programs/nixvim/plugins/markdown-preview.nix
Normal file
9
home/programs/nixvim/plugins/markdown-preview.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
markdown-preview = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
191
home/programs/nixvim/plugins/mkdnflow.nix
Normal file
191
home/programs/nixvim/plugins/mkdnflow.nix
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraConfigLua = ''
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {pattern = "markdown", command = "set awa"})
|
||||||
|
'';
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
mkdnflow = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
links = {
|
||||||
|
style = "wiki";
|
||||||
|
create_on_follow_failure = true;
|
||||||
|
conceal = true;
|
||||||
|
name_is_source = false;
|
||||||
|
implicit_extension = "md";
|
||||||
|
context = 0;
|
||||||
|
transform_explicit.__raw = # Lua
|
||||||
|
''
|
||||||
|
function(input)
|
||||||
|
if input:match('%d%d%d%d%-%d%d%-%d%d') then
|
||||||
|
return('journals/'..input)
|
||||||
|
else
|
||||||
|
require("zk.api").new(vim.fn.expand('%:p:h'), { dryRun = true }, function(err, res)
|
||||||
|
file_name = res.path:match("[^/]*.md$"):match("(.+)%..+$")
|
||||||
|
end)
|
||||||
|
return(file_name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
modules = {
|
||||||
|
conceal = true;
|
||||||
|
cursor = true;
|
||||||
|
folds = true;
|
||||||
|
links = true;
|
||||||
|
lists = true;
|
||||||
|
maps = true;
|
||||||
|
paths = true;
|
||||||
|
tables = true;
|
||||||
|
yaml = true;
|
||||||
|
};
|
||||||
|
filetypes = {
|
||||||
|
md = true;
|
||||||
|
qmd = true;
|
||||||
|
};
|
||||||
|
to_do = {
|
||||||
|
symbols = [
|
||||||
|
" "
|
||||||
|
"-"
|
||||||
|
"X"
|
||||||
|
];
|
||||||
|
update_parents = true;
|
||||||
|
};
|
||||||
|
foldtext = {
|
||||||
|
title_transformer.__raw = ''
|
||||||
|
function()
|
||||||
|
local function my_title_transformer(text)
|
||||||
|
local updated_title = text:gsub("%b{}", "")
|
||||||
|
updated_title = updated_title:gsub("^%s*", "")
|
||||||
|
updated_title = updated_title:gsub("%s*$", "")
|
||||||
|
updated_title = updated_title:gsub("^######", "░░░░░▓")
|
||||||
|
updated_title = updated_title:gsub("^#####", "░░░░▓▓")
|
||||||
|
updated_title = updated_title:gsub("^####", "░░░▓▓▓")
|
||||||
|
updated_title = updated_title:gsub("^###", "░░▓▓▓▓")
|
||||||
|
updated_title = updated_title:gsub("^##", "░▓▓▓▓▓")
|
||||||
|
updated_title = updated_title:gsub("^#", "▓▓▓▓▓▓")
|
||||||
|
return updated_title
|
||||||
|
end
|
||||||
|
return my_title_transformer
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
object_count_icon_set = "nerdfont";
|
||||||
|
object_count_opts.__raw = ''
|
||||||
|
function()
|
||||||
|
local opts = {
|
||||||
|
link = false, -- Prevent links from being counted
|
||||||
|
blockquote = { -- Count block quotes (these aren't counted by default)
|
||||||
|
icon = ' ',
|
||||||
|
count_method = {
|
||||||
|
pattern = { "^>.+$" },
|
||||||
|
tally = "blocks",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fncblk = {
|
||||||
|
-- Override the icon for fenced code blocks with
|
||||||
|
icon = " "
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return opts
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
line_count = false;
|
||||||
|
word_count = true;
|
||||||
|
fill_chars = {
|
||||||
|
left_edge = "╾─🖿 ─";
|
||||||
|
right_edge = "──╼";
|
||||||
|
item_separator = " · ";
|
||||||
|
section_separator = " // ";
|
||||||
|
left_inside = " ┝";
|
||||||
|
right_inside = "┥ ";
|
||||||
|
middle = "─";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mappings = {
|
||||||
|
MkdnEnter = {
|
||||||
|
key = "<CR>";
|
||||||
|
modes = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
MkdnGoBack = {
|
||||||
|
key = "<BS>";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnDecreaseHeading = {
|
||||||
|
key = "-";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnIncreaseHeading = {
|
||||||
|
key = "+";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnNewListItemAboveInsert = {
|
||||||
|
key = "O";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnNewListItemBelowInsert = {
|
||||||
|
key = "o";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnTableNewColAfter = {
|
||||||
|
key = "<leader>ic";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnTableNewColBefore = {
|
||||||
|
key = "<leader>iC";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnTableNewRowAbove = {
|
||||||
|
key = "<leader>iR";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnTableNewRowBelow = {
|
||||||
|
key = "<leader>ir";
|
||||||
|
modes = "n";
|
||||||
|
};
|
||||||
|
MkdnTableNextCell = {
|
||||||
|
key = "<Tab>";
|
||||||
|
modes = "i";
|
||||||
|
};
|
||||||
|
MkdnTablePrevCell = {
|
||||||
|
key = "<S-Tab>";
|
||||||
|
modes = "i";
|
||||||
|
};
|
||||||
|
MkdnToggleToDo = {
|
||||||
|
key = "<C-Space>";
|
||||||
|
modes = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
create_dirs = true;
|
||||||
|
new_file_template = {
|
||||||
|
use_template = true;
|
||||||
|
placeholders = {
|
||||||
|
before = {
|
||||||
|
title = "link_title";
|
||||||
|
date = "os_date";
|
||||||
|
};
|
||||||
|
after = { };
|
||||||
|
};
|
||||||
|
template = ''
|
||||||
|
---
|
||||||
|
title: {{ title }}
|
||||||
|
date: {{ date }}
|
||||||
|
tags: []
|
||||||
|
---
|
||||||
|
# {{ title }}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
28
home/programs/nixvim/plugins/neoscroll.nix
Normal file
28
home/programs/nixvim/plugins/neoscroll.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
neoscroll = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
cursor_scrolls_alone = true;
|
||||||
|
easing_function = "quadratic";
|
||||||
|
hide_cursor = true;
|
||||||
|
mappings = [
|
||||||
|
"<C-u>"
|
||||||
|
"<C-d>"
|
||||||
|
"<C-b>"
|
||||||
|
"<C-f>"
|
||||||
|
"<C-y>"
|
||||||
|
"<C-e>"
|
||||||
|
"zt"
|
||||||
|
"zz"
|
||||||
|
"zb"
|
||||||
|
];
|
||||||
|
respect_scrolloff = false;
|
||||||
|
stop_eof = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
14
home/programs/nixvim/plugins/neotree.nix
Normal file
14
home/programs/nixvim/plugins/neotree.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
neo-tree = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
enable_git_status = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
22
home/programs/nixvim/plugins/noice.nix
Normal file
22
home/programs/nixvim/plugins/noice.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
noice = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
lsp.override = {
|
||||||
|
"vim.lsp.util.convert_input_to_markdown_lines" = true;
|
||||||
|
"vim.lsp.util.stylize_markdown" = true;
|
||||||
|
};
|
||||||
|
prests = {
|
||||||
|
bottom_search = true;
|
||||||
|
command_palette = true;
|
||||||
|
inc_rename = false;
|
||||||
|
long_message_to_split = true;
|
||||||
|
lsp_doc_border = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
17
home/programs/nixvim/plugins/notify.nix
Normal file
17
home/programs/nixvim/plugins/notify.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
notify = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
render = "wrapped-compact";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
opts = {
|
||||||
|
termguicolors = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
9
home/programs/nixvim/plugins/oil.nix
Normal file
9
home/programs/nixvim/plugins/oil.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
oil = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
9
home/programs/nixvim/plugins/otter.nix
Normal file
9
home/programs/nixvim/plugins/otter.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
otter = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
28
home/programs/nixvim/plugins/papis.nix
Normal file
28
home/programs/nixvim/plugins/papis.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
papis = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
yq_bin = "${pkgs.yq-go}/bin/yq";
|
||||||
|
search = {
|
||||||
|
provider = "telescope";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "<leader>pp";
|
||||||
|
action = "<CMD>Papis search<CR>";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Papis";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
12
home/programs/nixvim/plugins/peek.nix
Normal file
12
home/programs/nixvim/plugins/peek.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
peek = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
app = "firefox";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
29
home/programs/nixvim/plugins/render-markdown.nix
Normal file
29
home/programs/nixvim/plugins/render-markdown.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [ python312Packages.pylatexenc ];
|
||||||
|
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
render-markdown = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
ft = [
|
||||||
|
"markdown"
|
||||||
|
"quarto"
|
||||||
|
];
|
||||||
|
latex = {
|
||||||
|
enabled = false;
|
||||||
|
};
|
||||||
|
completions = {
|
||||||
|
lsp = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
web-devicons = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
104
home/programs/nixvim/plugins/smart-splits.nix
Normal file
104
home/programs/nixvim/plugins/smart-splits.nix
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
smart-splits = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs.nixvim.keymaps = [
|
||||||
|
{
|
||||||
|
action.__raw = "require('smart-splits').move_cursor_left";
|
||||||
|
key = "<C-S-p>h";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "require('smart-splits').move_cursor_right";
|
||||||
|
key = "<C-S-p>l";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "require('smart-splits').move_cursor_down";
|
||||||
|
key = "<C-S-p>j";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "require('smart-splits').move_cursor_up";
|
||||||
|
key = "<C-S-p>k";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "require('smart-splits').resize_left";
|
||||||
|
key = "<C-S-r>h";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "require('smart-splits').resize_right";
|
||||||
|
key = "<C-S-r>l";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "require('smart-splits').resize_down";
|
||||||
|
key = "<C-S-r>j";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action.__raw = "require('smart-splits').resize_up";
|
||||||
|
key = "<C-S-r>k";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>silent !kitten @ launch --location=hsplit<CR>";
|
||||||
|
key = "<C-S-p>s";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>silent !kitten @ launch --location=vsplit<CR>";
|
||||||
|
key = "<C-S-p>v";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>silent !kitten @ launch --location=hsplit --cwd=current --bias=35<CR>";
|
||||||
|
key = "<C-S-p>p";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>silent !kitten @ close-window<CR>";
|
||||||
|
key = "<C-S-p>q";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>silent !kitten @ action layout_action rotate<CR>";
|
||||||
|
key = "<C-S-p>r";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>silent !kitten @ action toggle_layout stack<CR>";
|
||||||
|
key = "<C-S-p>f";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
15
home/programs/nixvim/plugins/snippets.nix
Normal file
15
home/programs/nixvim/plugins/snippets.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
luasnip = {
|
||||||
|
enable = true;
|
||||||
|
fromVscode = [ { } ];
|
||||||
|
};
|
||||||
|
|
||||||
|
friendly-snippets = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
28
home/programs/nixvim/plugins/sniprun.nix
Normal file
28
home/programs/nixvim/plugins/sniprun.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
sniprun = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
display = [ "VirtualLine" ];
|
||||||
|
snipruncolors = {
|
||||||
|
SniprunVirtualTextOk = {
|
||||||
|
bg = "#91d7e3";
|
||||||
|
fg = "#000000";
|
||||||
|
ctermbg = "Cyan";
|
||||||
|
ctermfg = "Black";
|
||||||
|
};
|
||||||
|
SniprunVirtualTextErr = {
|
||||||
|
bg = "#ee99a0";
|
||||||
|
fg = "#000000";
|
||||||
|
ctermbg = "DarkRed";
|
||||||
|
ctermfg = "Black";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
71
home/programs/nixvim/plugins/startup.nix
Normal file
71
home/programs/nixvim/plugins/startup.nix
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
startup = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
theme = "dashboard";
|
||||||
|
sections = {
|
||||||
|
body = {
|
||||||
|
align = "center";
|
||||||
|
content = [
|
||||||
|
[
|
||||||
|
" Find File"
|
||||||
|
"Telescope find_files"
|
||||||
|
"<leader>ff"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
" Find Word"
|
||||||
|
"Telescope live_grep"
|
||||||
|
"<leader>lg"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
" Recent Files"
|
||||||
|
"Telescope oldfiles"
|
||||||
|
"<leader>of"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
" File Browser"
|
||||||
|
"Telescope file_browser"
|
||||||
|
"<leader>fb"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
" Colorschemes"
|
||||||
|
"Telescope colorscheme"
|
||||||
|
"<leader>cs"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
" New File"
|
||||||
|
"lua require'startup'.new_file()"
|
||||||
|
"<leader>nf"
|
||||||
|
]
|
||||||
|
];
|
||||||
|
defaultColor = "";
|
||||||
|
foldSection = true;
|
||||||
|
highlight = "String";
|
||||||
|
margin = 5;
|
||||||
|
oldfilesAmount = 0;
|
||||||
|
title = "Basic Commands";
|
||||||
|
type = "mapping";
|
||||||
|
};
|
||||||
|
header = {
|
||||||
|
align = "center";
|
||||||
|
content = {
|
||||||
|
__raw = "require('startup.headers').hydra_header";
|
||||||
|
};
|
||||||
|
defaultColor = "";
|
||||||
|
foldSection = false;
|
||||||
|
highlight = "Statement";
|
||||||
|
margin = 5;
|
||||||
|
oldfilesAmount = 0;
|
||||||
|
title = "Header";
|
||||||
|
type = "text";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
162
home/programs/nixvim/plugins/surround.nix
Normal file
162
home/programs/nixvim/plugins/surround.nix
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
nvim-surround = {
|
||||||
|
enable = true;
|
||||||
|
luaConfig.post = # lua
|
||||||
|
''
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.get_input = function(prompt)
|
||||||
|
local input = require("nvim-surround.input")
|
||||||
|
return input.get_input(prompt)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.get_selection = function(args)
|
||||||
|
if args.char then
|
||||||
|
return M.get_find(args.char)(args.char)
|
||||||
|
elseif args.motion then
|
||||||
|
return require("nvim-surround.motions").get_selection(args.motion)
|
||||||
|
elseif args.node then
|
||||||
|
return require("nvim-surround.treesitter").get_selection(args.node)
|
||||||
|
elseif args.pattern then
|
||||||
|
return require("nvim-surround.patterns").get_selection(args.pattern)
|
||||||
|
elseif args.query then
|
||||||
|
return require("nvim-surround.queries").get_selection(args.query.capture, args.query.type)
|
||||||
|
else
|
||||||
|
vim.notify("Invalid key provided for `:h nvim-surround.config.get_selection()`.", vim.log.levels.ERROR)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
surrounds = {
|
||||||
|
["("] = {
|
||||||
|
add = { "( ", " )" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a(" })
|
||||||
|
end,
|
||||||
|
delete = "^(. ?)().-( ?.)()$",
|
||||||
|
},
|
||||||
|
[")"] = {
|
||||||
|
add = { "(", ")" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a)" })
|
||||||
|
end,
|
||||||
|
delete = "^(.)().-(.)()$",
|
||||||
|
},
|
||||||
|
["{"] = {
|
||||||
|
add = { "{ ", " }" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a{" })
|
||||||
|
end,
|
||||||
|
delete = "^(. ?)().-( ?.)()$",
|
||||||
|
},
|
||||||
|
["}"] = {
|
||||||
|
add = { "{", "}" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a}" })
|
||||||
|
end,
|
||||||
|
delete = "^(.)().-(.)()$",
|
||||||
|
},
|
||||||
|
["<"] = {
|
||||||
|
add = { "< ", " >" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a<" })
|
||||||
|
end,
|
||||||
|
delete = "^(. ?)().-( ?.)()$",
|
||||||
|
},
|
||||||
|
[">"] = {
|
||||||
|
add = { "<", ">" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a>" })
|
||||||
|
end,
|
||||||
|
delete = "^(.)().-(.)()$",
|
||||||
|
},
|
||||||
|
["["] = {
|
||||||
|
add = { "[ ", " ]" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a[" })
|
||||||
|
end,
|
||||||
|
delete = "^(. ?)().-( ?.)()$",
|
||||||
|
},
|
||||||
|
["]"] = {
|
||||||
|
add = { "[", "]" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a]" })
|
||||||
|
end,
|
||||||
|
delete = "^(.)().-(.)()$",
|
||||||
|
},
|
||||||
|
["'"] = {
|
||||||
|
add = { "'", "'" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a'" })
|
||||||
|
end,
|
||||||
|
delete = "^(.)().-(.)()$",
|
||||||
|
},
|
||||||
|
['"'] = {
|
||||||
|
add = { '"', '"' },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = 'a"' })
|
||||||
|
end,
|
||||||
|
delete = "^(.)().-(.)()$",
|
||||||
|
},
|
||||||
|
["`"] = {
|
||||||
|
add = { "`", "`" },
|
||||||
|
find = function()
|
||||||
|
return M.get_selection({ motion = "a`" })
|
||||||
|
end,
|
||||||
|
delete = "^(.)().-(.)()$",
|
||||||
|
},
|
||||||
|
["i"] = {
|
||||||
|
add = function()
|
||||||
|
local left_delimiter = M.get_input("Enter the left delimiter: ")
|
||||||
|
local right_delimiter = left_delimiter and M.get_input("Enter the right delimiter: ")
|
||||||
|
if right_delimiter then
|
||||||
|
return { { left_delimiter }, { right_delimiter } }
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
find = function() end,
|
||||||
|
delete = function() end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
settings = {
|
||||||
|
aliases = {
|
||||||
|
"a" = ">";
|
||||||
|
"b" = ")";
|
||||||
|
"B" = "}";
|
||||||
|
"r" = "]";
|
||||||
|
"q" = [
|
||||||
|
"\""
|
||||||
|
"'"
|
||||||
|
"`"
|
||||||
|
];
|
||||||
|
"Q" = "''";
|
||||||
|
"s" = [
|
||||||
|
"}"
|
||||||
|
"]"
|
||||||
|
")"
|
||||||
|
">"
|
||||||
|
"\""
|
||||||
|
"'"
|
||||||
|
"`"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
keymaps = {
|
||||||
|
insert = "<C-g>s";
|
||||||
|
insert_line = "<C-g>S";
|
||||||
|
normal = "ys";
|
||||||
|
normal_cur = "yss";
|
||||||
|
normal_line = "yS";
|
||||||
|
normal_cur_line = "ySS";
|
||||||
|
visual = "S";
|
||||||
|
visual_line = "gS";
|
||||||
|
delete = "ds";
|
||||||
|
# TODO: This keymap clashed with comment boxses
|
||||||
|
change = "cs";
|
||||||
|
change_line = "cS";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
49
home/programs/nixvim/plugins/telescope.nix
Normal file
49
home/programs/nixvim/plugins/telescope.nix
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
ripgrep
|
||||||
|
fd
|
||||||
|
];
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
telescope = {
|
||||||
|
enable = true;
|
||||||
|
extensions = {
|
||||||
|
fzf-native.enable = true;
|
||||||
|
ui-select.enable = true;
|
||||||
|
undo.enable = true;
|
||||||
|
file-browser = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
hijack_netrw = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keymaps = {
|
||||||
|
"<leader>ff" = {
|
||||||
|
action = "find_files";
|
||||||
|
options.desc = "List Files";
|
||||||
|
};
|
||||||
|
"<leader>fb" = {
|
||||||
|
action = "file_browser path=%:p:h select_buffer=true";
|
||||||
|
options.desc = "File Browser";
|
||||||
|
};
|
||||||
|
"<leader>fs" = {
|
||||||
|
action = "buffers";
|
||||||
|
options.desc = "List Open Buffers";
|
||||||
|
};
|
||||||
|
"<leader>fu" = {
|
||||||
|
action = "undo";
|
||||||
|
options.desc = "Undo Tree";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<leader>f";
|
||||||
|
group = "Telescope";
|
||||||
|
icon = " ";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
30
home/programs/nixvim/plugins/texpresso.nix
Normal file
30
home/programs/nixvim/plugins/texpresso.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
# TODO: Make filetype keybindings work
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
texpresso = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
files = {
|
||||||
|
"ftplugin/latex.lua" = {
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<CMD>Texpresso %<CR>";
|
||||||
|
key = "<C-k>t";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
options = {
|
||||||
|
desc = "Start Texpresso";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
94
home/programs/nixvim/plugins/todo-comments.nix
Normal file
94
home/programs/nixvim/plugins/todo-comments.nix
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
todo-comments = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
highlight = {
|
||||||
|
comments_only = false;
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
default = [
|
||||||
|
"Identifier"
|
||||||
|
"#7C3AED"
|
||||||
|
];
|
||||||
|
error = [
|
||||||
|
"DiagnosticError"
|
||||||
|
"ErrorMsg"
|
||||||
|
"#DC2626"
|
||||||
|
];
|
||||||
|
hint = [
|
||||||
|
"DiagnosticHint"
|
||||||
|
"#10B981"
|
||||||
|
];
|
||||||
|
info = [
|
||||||
|
"DiagnosticInfo"
|
||||||
|
"#2563EB"
|
||||||
|
];
|
||||||
|
test = [
|
||||||
|
"Identifier"
|
||||||
|
"#FF00FF"
|
||||||
|
];
|
||||||
|
warning = [
|
||||||
|
"DiagnosticWarn"
|
||||||
|
"WarningMsg"
|
||||||
|
"#FBBF24"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
keywords = {
|
||||||
|
FIX = {
|
||||||
|
alt = [
|
||||||
|
"FIXME"
|
||||||
|
"BUG"
|
||||||
|
"FIXIT"
|
||||||
|
"ISSUE"
|
||||||
|
];
|
||||||
|
color = "error";
|
||||||
|
icon = " ";
|
||||||
|
};
|
||||||
|
HACK = {
|
||||||
|
color = "warning";
|
||||||
|
icon = " ";
|
||||||
|
};
|
||||||
|
NOTE = {
|
||||||
|
alt = [
|
||||||
|
"INFO"
|
||||||
|
];
|
||||||
|
color = "hint";
|
||||||
|
icon = " ";
|
||||||
|
};
|
||||||
|
PERF = {
|
||||||
|
alt = [
|
||||||
|
"OPTIM"
|
||||||
|
"PERFORMANCE"
|
||||||
|
"OPTIMIZE"
|
||||||
|
];
|
||||||
|
icon = " ";
|
||||||
|
};
|
||||||
|
TEST = {
|
||||||
|
alt = [
|
||||||
|
"TESTING"
|
||||||
|
"PASSED"
|
||||||
|
"FAILED"
|
||||||
|
];
|
||||||
|
color = "test";
|
||||||
|
icon = "⏲ ";
|
||||||
|
};
|
||||||
|
TODO = {
|
||||||
|
color = "info";
|
||||||
|
icon = " ";
|
||||||
|
};
|
||||||
|
WARN = {
|
||||||
|
alt = [
|
||||||
|
"WARNING"
|
||||||
|
"XXX"
|
||||||
|
];
|
||||||
|
color = "warning";
|
||||||
|
icon = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
43
home/programs/nixvim/plugins/toggleterm.nix
Normal file
43
home/programs/nixvim/plugins/toggleterm.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
toggleterm = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
open_mapping.__raw = "[[<c-,>]]";
|
||||||
|
insert_mappings = true;
|
||||||
|
shade_terminals = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<CMD>ToggleTermSendCurrentLine<CR>";
|
||||||
|
key = "<leader>sts";
|
||||||
|
mode = "n";
|
||||||
|
options = {
|
||||||
|
desc = "Send Current Line";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>ToggleTermSendVisualLines<CR>";
|
||||||
|
key = "<leader>stv";
|
||||||
|
mode = "x";
|
||||||
|
options = {
|
||||||
|
desc = "Send all the (whole) lines in selection";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<CMD>ToggleTermSendVisualSelection<CR>";
|
||||||
|
key = "<leader>sts";
|
||||||
|
mode = "x";
|
||||||
|
options = {
|
||||||
|
desc = "Send selection";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
18
home/programs/nixvim/plugins/treesitter.nix
Normal file
18
home/programs/nixvim/plugins/treesitter.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
treesitter = {
|
||||||
|
enable = true;
|
||||||
|
folding.enable = false;
|
||||||
|
settings = {
|
||||||
|
auto_install = false;
|
||||||
|
highlight.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ts-context-commentstring = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
170
home/programs/nixvim/plugins/trouble.nix
Normal file
170
home/programs/nixvim/plugins/trouble.nix
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
trouble = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
modes = {
|
||||||
|
diagnostics = {
|
||||||
|
auto_close = true;
|
||||||
|
auto_open = false;
|
||||||
|
};
|
||||||
|
# Diagnostics for the current buffer only
|
||||||
|
diagnostics_buffer = {
|
||||||
|
mode = "diagnostics";
|
||||||
|
filter = {
|
||||||
|
buf = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
focus = false;
|
||||||
|
open_no_results = true;
|
||||||
|
# Plugin Default
|
||||||
|
keys = {
|
||||||
|
"<2-leftmouse>" = "jump";
|
||||||
|
"<c-s>" = "jump_split";
|
||||||
|
"<c-v>" = "jump_vsplit";
|
||||||
|
"<cr>" = "jump";
|
||||||
|
"<esc>" = "cancel";
|
||||||
|
"?" = "help";
|
||||||
|
P = "toggle_preview";
|
||||||
|
R = "toggle_refresh";
|
||||||
|
"[[" = "prev";
|
||||||
|
"]]" = "next";
|
||||||
|
d = {
|
||||||
|
action = "delete";
|
||||||
|
mode = "v";
|
||||||
|
};
|
||||||
|
dd = "delete";
|
||||||
|
gb = {
|
||||||
|
action = {
|
||||||
|
__raw = ''
|
||||||
|
function(view)
|
||||||
|
view:filter({ buf = 0 }, { toggle = true })
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
desc = "Toggle Current Buffer Filter";
|
||||||
|
};
|
||||||
|
i = "inspect";
|
||||||
|
o = "jump_close";
|
||||||
|
p = "preview";
|
||||||
|
q = "close";
|
||||||
|
r = "refresh";
|
||||||
|
s = {
|
||||||
|
action = {
|
||||||
|
__raw = ''
|
||||||
|
function(view)
|
||||||
|
local f = view:get_filter("severity")
|
||||||
|
local severity = ((f and f.filter.severity or 0) + 1) % 5
|
||||||
|
view:filter({ severity = severity }, {
|
||||||
|
id = "severity",
|
||||||
|
template = "{hl:Title}Filter:{hl} {severity}",
|
||||||
|
del = severity == 0,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
desc = "Toggle Severity Filter";
|
||||||
|
};
|
||||||
|
zA = "fold_toggle_recursive";
|
||||||
|
zC = "fold_close_recursive";
|
||||||
|
zM = "fold_close_all";
|
||||||
|
zN = "fold_enable";
|
||||||
|
zO = "fold_open_recursive";
|
||||||
|
zR = "fold_open_all";
|
||||||
|
zX = "fold_update_all";
|
||||||
|
za = "fold_toggle";
|
||||||
|
zc = "fold_close";
|
||||||
|
zi = "fold_toggle_enable";
|
||||||
|
zm = "fold_more";
|
||||||
|
zn = "fold_disable";
|
||||||
|
zo = "fold_open";
|
||||||
|
zr = "fold_reduce";
|
||||||
|
zx = "fold_update";
|
||||||
|
"{" = "prev";
|
||||||
|
"}" = "next";
|
||||||
|
};
|
||||||
|
# Plugin Default
|
||||||
|
icons = {
|
||||||
|
folder_closed = " ";
|
||||||
|
folder_open = " ";
|
||||||
|
indent = {
|
||||||
|
fold_closed = " ";
|
||||||
|
fold_open = " ";
|
||||||
|
last = "└╴";
|
||||||
|
middle = "├╴";
|
||||||
|
top = "│ ";
|
||||||
|
ws = " ";
|
||||||
|
};
|
||||||
|
kinds = {
|
||||||
|
Array = " ";
|
||||||
|
Boolean = " ";
|
||||||
|
Class = " ";
|
||||||
|
Constant = " ";
|
||||||
|
Constructor = " ";
|
||||||
|
Enum = " ";
|
||||||
|
EnumMember = " ";
|
||||||
|
Event = " ";
|
||||||
|
Field = " ";
|
||||||
|
File = " ";
|
||||||
|
Function = " ";
|
||||||
|
Interface = " ";
|
||||||
|
Key = " ";
|
||||||
|
Method = " ";
|
||||||
|
Module = " ";
|
||||||
|
Namespace = " ";
|
||||||
|
Null = " ";
|
||||||
|
Number = " ";
|
||||||
|
Object = " ";
|
||||||
|
Operator = " ";
|
||||||
|
Package = " ";
|
||||||
|
Property = " ";
|
||||||
|
String = " ";
|
||||||
|
Struct = " ";
|
||||||
|
TypeParameter = " ";
|
||||||
|
Variable = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<leader>x";
|
||||||
|
group = "Trouble";
|
||||||
|
icon = " ";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "<leader>xx";
|
||||||
|
action = "<CMD>Trouble diagnostics toggle<CR>";
|
||||||
|
options.desc = "Diagnostics";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>xt";
|
||||||
|
action = "<CMD>Trouble todo toggle<CR>";
|
||||||
|
options.desc = "Todos";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>xX";
|
||||||
|
action = "<CMD>Trouble diagnostics toggle filter.buf=0<CR>";
|
||||||
|
options.desc = "Buffer Diagnostics";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>xL";
|
||||||
|
action = "<CMD>Trouble loclist toggle<CR>";
|
||||||
|
options.desc = "Location List";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>xQ";
|
||||||
|
action = "<CMD>Trouble qflist toggle<CR>";
|
||||||
|
options.desc = "Quickfix List";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
38
home/programs/nixvim/plugins/typst-preview.nix
Normal file
38
home/programs/nixvim/plugins/typst-preview.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
typst-preview = {
|
||||||
|
enable = true;
|
||||||
|
lazyLoad = {
|
||||||
|
settings = {
|
||||||
|
ft = "typst";
|
||||||
|
cmd = "TypstPreview";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
open_command = "qutebrowser --target tab %s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
files = {
|
||||||
|
"ftplugin/typst.lua" = {
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<CMD>TypstPreview<CR>";
|
||||||
|
key = "<C-k>t";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
options = {
|
||||||
|
desc = "Typst Preview";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
17
home/programs/nixvim/plugins/typst-vim.nix
Normal file
17
home/programs/nixvim/plugins/typst-vim.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
# TODO: coneal does not work
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
typst-vim = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
conceal = 1;
|
||||||
|
conceal_math = 1;
|
||||||
|
conceal_emoji = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
11
home/programs/nixvim/plugins/undotree.nix
Normal file
11
home/programs/nixvim/plugins/undotree.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
undotree = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
40
home/programs/nixvim/plugins/vimtex.nix
Normal file
40
home/programs/nixvim/plugins/vimtex.nix
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
vimtex = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
view_automatic = false;
|
||||||
|
mappings_disable = {
|
||||||
|
"n" = [ "K" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
autoGroups = {
|
||||||
|
"lazyvim_vimtex_conceal" = {
|
||||||
|
clear = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
autoCmd = [
|
||||||
|
{
|
||||||
|
event = [ "FileType" ];
|
||||||
|
group = "lazyvim_vimtex_conceal";
|
||||||
|
pattern = [
|
||||||
|
"bib"
|
||||||
|
"tex"
|
||||||
|
];
|
||||||
|
callback.__raw = # lua
|
||||||
|
''
|
||||||
|
function ()
|
||||||
|
vim.wo.conceallevel = 2
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
9
home/programs/nixvim/plugins/which-key.nix
Normal file
9
home/programs/nixvim/plugins/which-key.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
which-key = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
69
home/programs/nixvim/plugins/yanky.nix
Normal file
69
home/programs/nixvim/plugins/yanky.nix
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
yanky = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
ring = {
|
||||||
|
storage = "sqlite";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sqlite-lua = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "p";
|
||||||
|
action = "<Plug>(YankyPutAfter)";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"x"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "P";
|
||||||
|
action = "<Plug>(YankyPutBefore)";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"x"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "gp";
|
||||||
|
action = "<Plug>(YankyGPutAfter)";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"x"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "gP";
|
||||||
|
action = "<Plug>(YankyGPutBefore)";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"x"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<c-p>";
|
||||||
|
action = "<Plug>(YankyPreviousEntry)";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<c-n>";
|
||||||
|
action = "<Plug>(YankyNextEntry)";
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
95
home/programs/nixvim/plugins/zk.nix
Normal file
95
home/programs/nixvim/plugins/zk.nix
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
plugins = {
|
||||||
|
zk = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
picker = "telescope";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
which-key.settings.spec = [
|
||||||
|
{
|
||||||
|
__unkeyed-1 = "<leader>z";
|
||||||
|
group = "Zettelkasten";
|
||||||
|
icon = " ";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "<leader>zn";
|
||||||
|
action = "<Cmd>ZkNew { title = vim.fn.input('Title: ') }<CR>";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Create";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>zo";
|
||||||
|
action = "<Cmd>ZkNotes { sort = { 'modified' } }<CR>";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Open";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>zt";
|
||||||
|
action = "<Cmd>ZkTags<CR>";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Open Tags";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>zf";
|
||||||
|
action = "<Cmd>ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }<CR>";
|
||||||
|
mode = [ "n" ];
|
||||||
|
options = {
|
||||||
|
desc = "Search";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader>zf";
|
||||||
|
action = ":'<,'>ZkMatch<CR>";
|
||||||
|
mode = [ "v" ];
|
||||||
|
options = {
|
||||||
|
desc = "Search (Matching the Selection)";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
files = {
|
||||||
|
# TODO: Add descriptions
|
||||||
|
# TODO: Did the sytnax change?
|
||||||
|
"ftplugin/markdown.lua" = {
|
||||||
|
extraConfigLua = # lua
|
||||||
|
''
|
||||||
|
-- Add the key mappings only for Markdown files in a zk notebook.
|
||||||
|
if require("zk.util").notebook_root(vim.fn.expand('%:p')) ~= nil then
|
||||||
|
local function map(...) vim.api.nvim_buf_set_keymap(0, ...) end
|
||||||
|
local opts = { noremap=true, silent=false }
|
||||||
|
|
||||||
|
-- Create a new note after asking for its title.
|
||||||
|
-- This overrides the global `<leader>zn` mapping to create the note in the same directory as the current buffer.
|
||||||
|
map("n", "<leader>zn", "<Cmd>ZkNew { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
|
||||||
|
-- Create a new note in the same directory as the current buffer, using the current selection for title.
|
||||||
|
map("v", "<leader>znt", ":'<,'>ZkNewFromTitleSelection { dir = vim.fn.expand('%:p:h') }<CR>", opts)
|
||||||
|
-- Create a new note in the same directory as the current buffer, using the current selection for note content and asking for its title.
|
||||||
|
map("v", "<leader>znc", ":'<,'>ZkNewFromContentSelection { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
|
||||||
|
|
||||||
|
-- Open notes linking to the current buffer.
|
||||||
|
map("n", "<leader>zb", "<Cmd>ZkBacklinks<CR>", opts)
|
||||||
|
-- Open notes linked by the current buffer.
|
||||||
|
map("n", "<leader>zl", "<Cmd>ZkLinks<CR>", opts)
|
||||||
|
|
||||||
|
-- Preview a linked note.
|
||||||
|
map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
||||||
|
-- Open the code actions for a visual selection.
|
||||||
|
map("v", "<leader>za", ":'<,'>lua vim.lsp.buf.range_code_action()<CR>", opts)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [ planify ];
|
|
||||||
}
|
|
||||||
@@ -17,8 +17,8 @@ color.active=green
|
|||||||
color.recurring=blue
|
color.recurring=blue
|
||||||
color.scheduled=white on green
|
color.scheduled=white on green
|
||||||
color.until=yellow
|
color.until=yellow
|
||||||
color.blocked=black on white
|
color.blocked=green
|
||||||
color.blocking=black on bright white
|
color.blocking=yellow
|
||||||
|
|
||||||
# Project
|
# Project
|
||||||
color.project.none=red
|
color.project.none=red
|
||||||
|
|||||||
@@ -13,6 +13,41 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
colorTheme = ./catppuccin.theme;
|
colorTheme = ./catppuccin.theme;
|
||||||
package = pkgs.taskwarrior3;
|
package = pkgs.taskwarrior3;
|
||||||
|
dataLocation = "~/Nextcloud/tasks";
|
||||||
|
config = {
|
||||||
|
uda.parentName = {
|
||||||
|
type = "string";
|
||||||
|
label = "Parent";
|
||||||
|
};
|
||||||
|
report.projall = {
|
||||||
|
description = "All tasks grouped by projet";
|
||||||
|
columns = [
|
||||||
|
"id"
|
||||||
|
"project.indented"
|
||||||
|
"depends"
|
||||||
|
"tags"
|
||||||
|
"due"
|
||||||
|
"description"
|
||||||
|
"urgency"
|
||||||
|
"start.age"
|
||||||
|
];
|
||||||
|
labels = [
|
||||||
|
"ID"
|
||||||
|
"Project"
|
||||||
|
"Deps"
|
||||||
|
"Tag"
|
||||||
|
"Due"
|
||||||
|
"Description"
|
||||||
|
"Urgency"
|
||||||
|
"Age"
|
||||||
|
];
|
||||||
|
sort = [
|
||||||
|
"parentName+\\/"
|
||||||
|
"project+"
|
||||||
|
];
|
||||||
|
filter = "status:pending";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file.".local/share/task/hooks/on-modify.timewarrior" = {
|
home.file.".local/share/task/hooks/on-modify.timewarrior" = {
|
||||||
@@ -20,6 +55,11 @@
|
|||||||
source = "${pkgs.timewarrior}/share/doc/timew/ext/on-modify.timewarrior";
|
source = "${pkgs.timewarrior}/share/doc/timew/ext/on-modify.timewarrior";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.file."Nextcloud/tasks/hooks/on-add.sh" = {
|
||||||
|
executable = true;
|
||||||
|
source = ./hooks/on-add.sh;
|
||||||
|
};
|
||||||
|
|
||||||
# TODO: This need the python package timew-report, pyfzf and plumbum
|
# TODO: This need the python package timew-report, pyfzf and plumbum
|
||||||
# home.file.".config/timewarrior/extensions/twfzf.py" = {
|
# home.file.".config/timewarrior/extensions/twfzf.py" = {
|
||||||
# source = builtins.fetchurl {
|
# source = builtins.fetchurl {
|
||||||
|
|||||||
@@ -26,7 +26,9 @@
|
|||||||
size = 100000000000;
|
size = 100000000000;
|
||||||
path = "${config.xdg.dataHome}/zsh/zsh_history";
|
path = "${config.xdg.dataHome}/zsh/zsh_history";
|
||||||
};
|
};
|
||||||
syntaxHighlighting = { enable = true; };
|
syntaxHighlighting = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
initContent = ''
|
initContent = ''
|
||||||
export LD_LIBRARY_PATH="/nix/store/yjm4j9n85bcp42v5nkz2xifrp4a9s63k-sqlite-3.46.1/lib"o
|
export LD_LIBRARY_PATH="/nix/store/yjm4j9n85bcp42v5nkz2xifrp4a9s63k-sqlite-3.46.1/lib"o
|
||||||
export CHROME_EXECUTABLE="/run/current-system/sw/bin/google-chrome-stable"
|
export CHROME_EXECUTABLE="/run/current-system/sw/bin/google-chrome-stable"
|
||||||
@@ -36,6 +38,20 @@
|
|||||||
RPROMPT='[%F{yellow}%?%f]'
|
RPROMPT='[%F{yellow}%?%f]'
|
||||||
bindkey "^[[A" history-beginning-search-backward
|
bindkey "^[[A" history-beginning-search-backward
|
||||||
bindkey "^[[B" history-beginning-search-forward
|
bindkey "^[[B" history-beginning-search-forward
|
||||||
|
|
||||||
|
# trep: tree projall report - top-level projects with headers
|
||||||
|
trep() {
|
||||||
|
project() {
|
||||||
|
echo -e "\e[1;34m/----- Project $1 -----\e[0m"
|
||||||
|
task projall "project:$1"
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
while IFS= read -r proj; do
|
||||||
|
project "$proj"
|
||||||
|
done < <(task _projects | grep -v '\.')
|
||||||
|
}
|
||||||
|
|
||||||
|
alias trep='trep'
|
||||||
'';
|
'';
|
||||||
plugins = [
|
plugins = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ ./ssh-agent ./gpg-agent ./hypridle.nix ./nextcloud.nix ./nextcloud.nix ];
|
imports = [
|
||||||
|
./ssh-agent
|
||||||
|
./gpg-agent
|
||||||
|
./hypridle.nix
|
||||||
|
./nextcloud.nix
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user