Compare commits
142 Commits
main
...
Developmen
Author | SHA1 | Date | |
---|---|---|---|
ae19ffc0d4 | |||
d8024f6e2d | |||
5e48843bba | |||
d5caed38ce | |||
91d70ade01 | |||
2ed3dc3085 | |||
67a833913d | |||
5d1d8aeaa6 | |||
82378445b0 | |||
09cf72df32 | |||
37e945a552 | |||
7f8081ff24 | |||
09acbb87c8 | |||
8d7bd2821a | |||
93b6ecdd50 | |||
29cd1e771b | |||
7ca043bf5f | |||
4403c8c140 | |||
8f354c69ea | |||
5d710fda97 | |||
dc52352e78 | |||
a8a2dc60bc | |||
65aa3acf16 | |||
39cee21df1 | |||
a09deea6bf | |||
cbbbac67b0 | |||
31cc10fe03 | |||
eecf89d736 | |||
bcd4398321 | |||
4f6d5d49e8 | |||
c540d91464 | |||
a06491ea40 | |||
6ecd914a18 | |||
7369d1bc61 | |||
5befa8a7b0 | |||
42ed0c978b | |||
160be0e25e | |||
6d2eb95039 | |||
aa6e7447a0 | |||
707d5c65bc | |||
eb404d2884 | |||
0a981f63d8 | |||
7355c4fbea | |||
43aa64e281 | |||
e82cafa7f5 | |||
900e6763aa | |||
96dedca052 | |||
ee6b7844a7 | |||
a460be461d | |||
2b5e3e20e3 | |||
374b01bfc6 | |||
b18e27fa36 | |||
baf22ac8c8 | |||
eb5c348e4a | |||
2f70f5ac83 | |||
201624c51a | |||
6d207e98c7 | |||
0792690518 | |||
3e48185577 | |||
645ad29b7c | |||
6ca917b7c5 | |||
0912f8f656 | |||
0e4e094ad1 | |||
14a67ac37b | |||
f361d5d638 | |||
7f028d5cf9 | |||
1570c3f223 | |||
4c6234419e | |||
d7fd11906f | |||
2d1e677157 | |||
d5087774c2 | |||
cace006465 | |||
811169f9c9 | |||
75ba42519c | |||
83b2a10daa | |||
4e7d8cd536 | |||
2e69205abc | |||
88d64a5f73 | |||
f7bc9f393b | |||
fe757ad6b1 | |||
3fb82ca44e | |||
420147c5ca | |||
c671f70423 | |||
d54cd8782c | |||
62f92944dc | |||
cddedfdfbb | |||
e8384118a8 | |||
7f34bb6dc7 | |||
11ad7c3991 | |||
b975022f17 | |||
f4024113ad | |||
db641bb6b5 | |||
1b728560f0 | |||
0bc693241a | |||
fc77e1046a | |||
b613ff478b | |||
994d39c564 | |||
895b7caaaf | |||
ef7fc52937 | |||
2e3d8e1a85 | |||
11c4cbd722 | |||
40356fcebd | |||
012caa5c90 | |||
692912782d | |||
530351d083 | |||
88d4b13f91 | |||
331d5cae6d | |||
1fe15bca3b | |||
0474f5d527 | |||
3f8a92ddc8 | |||
720ea2d89f | |||
854d57e006 | |||
05b355c8b9 | |||
d98986006b | |||
2769e54b4e | |||
f77814bfd1 | |||
104afbaf63 | |||
10dd9d65b6 | |||
06f2309e9f | |||
d839ea4993 | |||
89925ecbcb | |||
1eae026059 | |||
e0bba1c327 | |||
6baa1dfa13 | |||
0d1af36cd1 | |||
82615d124d | |||
9c6714e49a | |||
cd150e1dbf | |||
b500cc8400 | |||
b2d92e001e | |||
4573951a45 | |||
44272ee8f2 | |||
08c12df043 | |||
d2571db980 | |||
5cff3c434e | |||
7c0415b911 | |||
8988caf18f | |||
1ebe3e50b4 | |||
0697e45854 | |||
1b3926bf91 | |||
ec4f4caf17 | |||
88f61f437b |
4
.envrc
4
.envrc
@ -1,6 +1,6 @@
|
||||
# vim: ft=bash
|
||||
if ! has nix_direnv_version || ! nix_direnv_version 2.5.1; then
|
||||
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.5.1/direnvrc" "sha256-puRzug17Ed4JFS2wbpqa3k764QV6xPP6O3A/ez/JpOM="
|
||||
if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then
|
||||
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.6/direnvrc" "sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM="
|
||||
fi
|
||||
use flake
|
||||
|
||||
|
839
flake.lock
839
flake.lock
File diff suppressed because it is too large
Load Diff
95
flake.nix
95
flake.nix
@ -6,27 +6,25 @@
|
||||
deploy-rs.url = "github:serokell/deploy-rs";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs-master.url = "github:nixos/nixpkgs";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
fenix = {
|
||||
url = "github:nix-community/fenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
bob = {
|
||||
flake = false;
|
||||
url = "github:MordechaiHadad/bob";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
wezterm.url = "github:wez/wezterm?dir=nix";
|
||||
agenix = {
|
||||
url = "github:yaxitech/ragenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
impermanence = {
|
||||
url = "github:nix-community/impermanence";
|
||||
};
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
disko = {
|
||||
url = "github:nix-community/disko";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@ -38,7 +36,17 @@
|
||||
emacs-overlay = {
|
||||
url = "github:nix-community/emacs-overlay";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-utils.follows = "flake-utils";
|
||||
};
|
||||
neovim-src = {
|
||||
url = "github:neovim/neovim";
|
||||
flake = false;
|
||||
};
|
||||
neovim-nightly-overlay = {
|
||||
url = "github:nix-community/neovim-nightly-overlay";
|
||||
inputs = {
|
||||
neovim-src.follows = "neovim-src";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
secrets = {
|
||||
url = "git+file:secrets?submodules=1";
|
||||
@ -73,39 +81,10 @@
|
||||
}
|
||||
)
|
||||
);
|
||||
mkHomeCfg =
|
||||
user: home-config:
|
||||
let
|
||||
username = "${builtins.head (builtins.match "(.+)(@.+)?" user)}";
|
||||
in
|
||||
inputs.home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
clib = (import ./lib { lib = nixpkgs.lib; });
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [
|
||||
{
|
||||
imports = [ inputs.agenix.homeManagerModules.default ];
|
||||
nixpkgs.overlays = [
|
||||
inputs.emacs-overlay.overlays.default
|
||||
self.overlays.modifications
|
||||
self.overlays.additions
|
||||
];
|
||||
home = {
|
||||
stateVersion = "24.05";
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
};
|
||||
}
|
||||
home-config
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style);
|
||||
packages = forAllSystems (pkgs: import ./pkgs pkgs);
|
||||
homeConfigurations = builtins.mapAttrs mkHomeCfg { "price" = ./users/price/home.nix; };
|
||||
overlays = import ./overlays { inherit inputs; };
|
||||
devShells = forAllSystems (pkgs: {
|
||||
default = pkgs.mkShell {
|
||||
@ -138,23 +117,6 @@
|
||||
'';
|
||||
});
|
||||
apps = forAllSystems (pkgs: {
|
||||
home-manager-init = {
|
||||
type = "app";
|
||||
program = "${
|
||||
pkgs.writeShellApplication {
|
||||
name = "home-manager-init";
|
||||
runtimeInputs = with pkgs; [
|
||||
git
|
||||
nix
|
||||
];
|
||||
text = ''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
cd "$(git rev-parse --show-toplevel)"
|
||||
nix run --extra-experimental-features 'nix-command flakes' github:nix-community/home-manager -- switch --extra-experimental-features 'nix-command flakes' --flake "git+file://$(pwd)?submodules=1" "$@"
|
||||
'';
|
||||
}
|
||||
}/bin/home-manager-init";
|
||||
};
|
||||
install-host = {
|
||||
type = "app";
|
||||
program = "${
|
||||
@ -200,10 +162,33 @@
|
||||
};
|
||||
modules = [
|
||||
./modules/btrfs-rollback.nix
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
extraSpecialArgs = {
|
||||
clib = (import ./lib { lib = nixpkgs.lib; });
|
||||
inherit inputs;
|
||||
};
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users.price = import ./users/price/home.nix;
|
||||
};
|
||||
}
|
||||
inputs.lanzaboote.nixosModules.lanzaboote
|
||||
inputs.impermanence.nixosModules.impermanence
|
||||
inputs.agenix.nixosModules.default
|
||||
inputs.disko.nixosModules.disko
|
||||
{
|
||||
config = {
|
||||
nixpkgs.overlays = [
|
||||
inputs.emacs-overlay.overlays.default
|
||||
inputs.neovim-nightly-overlay.overlays.default
|
||||
inputs.fenix.overlays.default
|
||||
self.overlays.modifications
|
||||
self.overlays.additions
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
config =
|
||||
(import "${inputs.secrets}" {
|
||||
|
@ -6,5 +6,5 @@
|
||||
./modules
|
||||
] ".nix"
|
||||
);
|
||||
system.stateVersion = "24.05";
|
||||
}
|
||||
system.stateVersion = "24.11";
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
{ hostname, config, ... }:
|
||||
{ hostname, ... }:
|
||||
|
||||
{
|
||||
services.resolved = {
|
||||
@ -10,7 +10,6 @@
|
||||
networking = {
|
||||
hostName = hostname;
|
||||
domain = "price-hiller.com";
|
||||
fqdn = "${config.networking.hostname}.hosts.${config.networking.domain}";
|
||||
nameservers = [
|
||||
"194.242.2.2#dns.mullvad.net"
|
||||
"2a07:e340::2#dns.mullvad.net"
|
||||
|
@ -3,6 +3,7 @@
|
||||
nix = {
|
||||
settings = {
|
||||
experimental-features = [
|
||||
"pipe-operators"
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
@ -15,4 +16,4 @@
|
||||
dates = "daily";
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
@ -31,6 +31,7 @@ let
|
||||
];
|
||||
# allow using the new flake commands in our workflows
|
||||
experimental-features = [
|
||||
"pipe-operators"
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
@ -1,14 +1,17 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
pg_dataDir_base = "/var/lib/postgresql";
|
||||
in
|
||||
{
|
||||
services.postgresqlBackup = {
|
||||
enable = true;
|
||||
location = "/var/backup/postgresql";
|
||||
backupAll = true;
|
||||
};
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
# Explicitly setting the data dir so upgrades (changing version from 15 -> 16) don't end up
|
||||
# getting lost on system reboots
|
||||
dataDir = "/var/lib/postgresql";
|
||||
dataDir = "${pg_dataDir_base}/${config.services.postgresql.package.psqlSchema}";
|
||||
settings = {
|
||||
log_connections = true;
|
||||
log_disconnections = true;
|
||||
@ -27,7 +30,7 @@
|
||||
|
||||
environment.persistence.save.directories = [
|
||||
{
|
||||
directory = config.services.postgresql.dataDir;
|
||||
directory = "${pg_dataDir_base}";
|
||||
user = "postgres";
|
||||
group = "postgres";
|
||||
}
|
||||
|
@ -14,7 +14,6 @@ in
|
||||
hideMounts = true;
|
||||
directories = [
|
||||
"/var/lib"
|
||||
"/etc/nixos"
|
||||
];
|
||||
};
|
||||
services = {
|
||||
|
@ -6,10 +6,10 @@
|
||||
./modules
|
||||
] ".nix"
|
||||
);
|
||||
system.stateVersion = "24.05";
|
||||
system.stateVersion = "24.11";
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
vim
|
||||
];
|
||||
time.timeZone = "America/Chicago";
|
||||
}
|
||||
}
|
@ -1,12 +1,13 @@
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
services.blueman.enable = true;
|
||||
environment.systemPackages = with pkgs; [ bluez ];
|
||||
|
||||
|
4
hosts/orion/modules/fonts.nix
Normal file
4
hosts/orion/modules/fonts.nix
Normal file
@ -0,0 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
fonts.enableDefaultPackages = true;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
# Allow Chromium & Electron apps run natively in wayland
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
@ -16,12 +16,13 @@
|
||||
};
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
xdg = {
|
||||
autostart.enable = true;
|
||||
portal.enable = true;
|
||||
# set the flake package
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
# make sure to also set the portal package, so that they are in sync
|
||||
portalPackage =
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
xdg.autostart.enable = true;
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
@ -30,5 +31,6 @@
|
||||
libvdpau
|
||||
];
|
||||
};
|
||||
services.qemuGuest.enable = true;
|
||||
services.spice-vdagentd.enable = true;
|
||||
}
|
||||
|
@ -1,18 +1,26 @@
|
||||
{ inputs, pkgs, ... }:
|
||||
{ inputs, ... }:
|
||||
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nix = {
|
||||
package = pkgs.nixVersions.latest;
|
||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
||||
settings = {
|
||||
experimental-features = [
|
||||
"pipe-operators"
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
auto-optimise-store = true;
|
||||
use-xdg-base-directories = true;
|
||||
trusted-users = [ "@wheel" ];
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.nixos.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
];
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
|
@ -8,12 +8,7 @@
|
||||
enableGlobalCompInit = false;
|
||||
enableBashCompletion = true;
|
||||
};
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [
|
||||
stdenv.cc.cc
|
||||
];
|
||||
};
|
||||
nix-ld.enable = true;
|
||||
wireshark = {
|
||||
enable = true;
|
||||
package = pkgs.wireshark;
|
||||
@ -24,4 +19,4 @@
|
||||
binfmt = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
7
hosts/orion/modules/services/memcached.nix
Normal file
7
hosts/orion/modules/services/memcached.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
services.memcached = {
|
||||
enable = true;
|
||||
maxMemory = 512;
|
||||
};
|
||||
}
|
@ -15,6 +15,7 @@
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"keyd"
|
||||
"systemd-journal"
|
||||
(lib.mkIf config.virtualisation.docker.enable "docker")
|
||||
(lib.mkIf config.virtualisation.libvirtd.enable "libvirtd")
|
||||
(lib.mkIf config.programs.wireshark.enable "wireshark")
|
||||
@ -42,4 +43,4 @@
|
||||
files = [ ".bash_history" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
@ -4,7 +4,12 @@
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
virtualisation = {
|
||||
libvirtd.enable = true;
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
runAsRoot = false;
|
||||
};
|
||||
};
|
||||
containers.enable = true;
|
||||
podman = {
|
||||
enable = true;
|
||||
@ -13,4 +18,4 @@
|
||||
autoPrune.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
@ -26,7 +26,6 @@ in
|
||||
hideMounts = true;
|
||||
directories = [
|
||||
"/var/lib"
|
||||
"/etc/nixos"
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -3,28 +3,18 @@
|
||||
lib ? (import <nixpkgs> { }).lib,
|
||||
}:
|
||||
rec {
|
||||
hasSuffix =
|
||||
suffix: string:
|
||||
let
|
||||
lenSuffix = builtins.stringLength suffix;
|
||||
lenString = builtins.stringLength string;
|
||||
in
|
||||
(lenString >= lenSuffix && (builtins.substring (lenString - lenSuffix) lenString string) == suffix);
|
||||
recurseDir =
|
||||
dir:
|
||||
let
|
||||
dirContents = builtins.readDir dir;
|
||||
in
|
||||
(builtins.concatMap (
|
||||
dirItem:
|
||||
let
|
||||
itemType = builtins.getAttr dirItem dirContents;
|
||||
itemPath = dir + "/${dirItem}";
|
||||
in
|
||||
if itemType == "directory" then (recurseDir itemPath) else [ itemPath ]
|
||||
) (builtins.attrNames dirContents));
|
||||
builtins.readDir dir
|
||||
|> lib.attrsets.mapAttrs' (
|
||||
fEntry: fType: lib.attrsets.nameValuePair (builtins.toString (dir + "/${fEntry}")) fType
|
||||
)
|
||||
|> lib.attrsets.mapAttrsToList (
|
||||
fEntry: fType: if fType == "directory" then (recurseDir "${fEntry}") else "${fEntry}"
|
||||
)
|
||||
|> lib.lists.flatten;
|
||||
recurseFilesInDir =
|
||||
dir: suffix: (builtins.filter (file: hasSuffix "${suffix}" file) (recurseDir dir));
|
||||
dir: suffix: (builtins.filter (file: lib.strings.hasSuffix "${suffix}" file) (recurseDir dir));
|
||||
recurseFilesInDirs =
|
||||
dirs: suffix: (builtins.concatMap (dir: (recurseFilesInDir dir "${suffix}")) dirs);
|
||||
# Full credit to https://stackoverflow.com/questions/54504685/nix-function-to-merge-attributes-records-recursively-and-concatenate-arrays/54505212#54505212
|
||||
|
@ -1,27 +0,0 @@
|
||||
{
|
||||
installShellFiles,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "bob";
|
||||
version = "3.0.1";
|
||||
|
||||
buildInputs = [ installShellFiles ];
|
||||
src = fetchFromGitHub {
|
||||
owner = "MordechaiHadad";
|
||||
repo = "bob";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Op/NXWssylgAOb1BccSOz7JqXFranzAsGICFMF3o/K8=";
|
||||
};
|
||||
cargoLock.lockFile = "${src}/Cargo.lock";
|
||||
|
||||
postInstall = # bash
|
||||
''
|
||||
installShellCompletion --cmd bob \
|
||||
--bash <($out/bin/bob complete bash) \
|
||||
--zsh <($out/bin/bob complete zsh) \
|
||||
--fish <($out/bin/bob complete fish)
|
||||
'';
|
||||
}
|
@ -1,9 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
bob-nvim = pkgs.callPackage ./bob-nvim.nix {
|
||||
rustPlatform = pkgs.rustPlatform;
|
||||
fetchFromGitHub = pkgs.fetchFromGitHub;
|
||||
};
|
||||
screen-cap = pkgs.callPackage ./screen-cap/default.nix { };
|
||||
Fmt = pkgs.writeShellApplication {
|
||||
name = "Fmt";
|
||||
|
2
secrets
2
secrets
@ -1 +1 @@
|
||||
Subproject commit 26a7346d97b19d44e3f07d912e64cc4e8fd38ec9
|
||||
Subproject commit f39f9c879ae7d9227f843a82155900234aa263a6
|
@ -2,25 +2,31 @@
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
fontconfig
|
||||
nerdfonts
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.symbols-only
|
||||
fira-code
|
||||
ibm-plex
|
||||
open-sans
|
||||
noto-fonts
|
||||
twitter-color-emoji
|
||||
vistafonts
|
||||
roboto
|
||||
];
|
||||
fonts = {
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
sansSerif = [ "Noto Sans" ];
|
||||
serif = [ "Noto Serif" ];
|
||||
sansSerif = [ "Noto Sans" "Symbols Nerd Font" ];
|
||||
serif = [ "Noto Serif" "Symbols Nerd Font" ];
|
||||
monospace = [
|
||||
"Fira Code"
|
||||
"FiraCode Nerd Font"
|
||||
"Noto Sans Mono"
|
||||
"Symbols Nerd Font Mono"
|
||||
];
|
||||
emoji = [
|
||||
"Twemoji"
|
||||
"Noto Color Emoji"
|
||||
"Symbols Nerd Font Mono"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -1,18 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
nix = {
|
||||
package = pkgs.nix;
|
||||
gc = {
|
||||
automatic = true;
|
||||
};
|
||||
settings = {
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
auto-optimise-store = true;
|
||||
use-xdg-base-directories = true;
|
||||
trusted-users = [ "@wheel" ];
|
||||
};
|
||||
};
|
||||
}
|
39
users/price/conf/nvim/default.nix
Normal file
39
users/price/conf/nvim/default.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
package = pkgs.neovim;
|
||||
extraWrapperArgs = [
|
||||
"--suffix"
|
||||
"LD_LIBRARY_PATH"
|
||||
":"
|
||||
"${lib.makeLibraryPath [
|
||||
pkgs.sqlite
|
||||
]}"
|
||||
"--suffix"
|
||||
"LIBRARY_PATH"
|
||||
":"
|
||||
"${lib.makeLibraryPath [
|
||||
pkgs.stdenv.cc.cc
|
||||
pkgs.zlib
|
||||
]}"
|
||||
"--suffix"
|
||||
"PKG_CONFIG_PATH"
|
||||
":"
|
||||
"${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
|
||||
pkgs.stdenv.cc.cc
|
||||
pkgs.zlib
|
||||
]}"
|
||||
];
|
||||
};
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
neovide
|
||||
bun
|
||||
];
|
||||
};
|
||||
}
|
66
users/price/conf/rust/default.nix
Normal file
66
users/price/conf/rust/default.nix
Normal file
@ -0,0 +1,66 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
osConfig,
|
||||
...
|
||||
}:
|
||||
let
|
||||
sccacheWrapped =
|
||||
if osConfig.services.memcached.enable then
|
||||
pkgs.symlinkJoin {
|
||||
name = "sccache";
|
||||
paths = [ pkgs.sccache ];
|
||||
buildInputs = [ pkgs.makeWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/sccache \
|
||||
--set SCCACHE_MEMCACHED_KEY_PREFIX "SCCACHE" \
|
||||
--set SCCACHE_MEMCACHED_ENDPOINT "tcp://${builtins.toString osConfig.services.memcached.listen}:${builtins.toString osConfig.services.memcached.port}"
|
||||
'';
|
||||
}
|
||||
else
|
||||
# Symlinking this ensures that sccache can properly create temporary directories.
|
||||
# This is because Nix wants to cause every sccache invocation to sandbox the build, by
|
||||
# symlinking sccache instead, we can avoid the sandbox to some degree.
|
||||
pkgs.symlinkJoin {
|
||||
name = "sccache";
|
||||
paths = [ pkgs.sccache ];
|
||||
};
|
||||
in
|
||||
{
|
||||
home = {
|
||||
sessionVariables = {
|
||||
CARGO_HOME = "${config.xdg.dataHome}/cargo";
|
||||
RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
|
||||
RUST_SRC_PATH = "${pkgs.fenix.complete.rust-src}/lib/rustlib/src/rust/library";
|
||||
# HACK: Specify openssl info for rust, this is really not a good idea, but it saves me from
|
||||
# writing per-project shell.nix or `nix-shell -p` nonsense. I'm willing to compromise for my
|
||||
# laziness.
|
||||
OPENSSL_DIR = "${pkgs.openssl.dev}";
|
||||
OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib";
|
||||
};
|
||||
packages = with pkgs; [
|
||||
(pkgs.fenix.complete.withComponents [
|
||||
"cargo"
|
||||
"clippy"
|
||||
"rust-src"
|
||||
"rustc"
|
||||
"rustfmt"
|
||||
])
|
||||
rust-analyzer-nightly
|
||||
cargo-watch
|
||||
cargo-nextest
|
||||
sccacheWrapped
|
||||
];
|
||||
file = {
|
||||
# NOTE: This improves the rust edit-build-run cycle. See https://davidlattimore.github.io/posts/2024/02/04/speeding-up-the-rust-edit-build-run-cycle.html
|
||||
"${config.home.sessionVariables.CARGO_HOME}/config.toml".text = ''
|
||||
[build]
|
||||
rustc-wrapper = "${sccacheWrapped}/bin/sccache"
|
||||
rustflags = [ "-C", "linker=${pkgs.clang}/bin/clang", "-C", "link-arg=--ld-path=${pkgs.mold-wrapped}/bin/mold" ]
|
||||
|
||||
[profile.dev]
|
||||
split-debuginfo = "unpacked"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
@ -8,10 +8,13 @@ decoration {
|
||||
new_optimizations = true
|
||||
}
|
||||
|
||||
drop_shadow = true
|
||||
shadow_ignore_window = true
|
||||
shadow_range = 4
|
||||
shadow_render_power = 2
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
ignore_window = true
|
||||
render_power = 2
|
||||
}
|
||||
|
||||
dim_special = 0.05
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,5 @@ exec = systemd-run --user --unit=clight-gui clight-gui --tray || systemctl --use
|
||||
exec = systemd-run --user --unit=monitor-ssid ~/.config/hypr/scripts/monitor-ssid.bash || systemctl --user restart monitor-ssid
|
||||
exec = systemd-run --user --unit=xwaylandvideobridge xwaylandvideobridge || systemctl --user restart xwaylandvideobridge
|
||||
exec = systemd-run --user --unit=polkit-agent /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 || systemctl --user restart polkit-agent
|
||||
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP PATH
|
||||
exec = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP PATH
|
||||
exec = sleep 1 && systemctl --user restart compositor.target
|
||||
exec-once = swaylock
|
||||
|
@ -16,3 +16,9 @@ scrollback_pager nvim -c "set signcolumn=no showtabline=0" -c "silent write! /tm
|
||||
# Bell
|
||||
enable_audio_bell no
|
||||
visual_bell_duration 0.2
|
||||
|
||||
# cusor animations
|
||||
cursor_shape block
|
||||
cursor_trail 1
|
||||
cursor_trail_start_threshold 0
|
||||
shell_integration no-cursor
|
||||
|
@ -1,24 +0,0 @@
|
||||
vim.keymap.set("n", "<leader>fr", "<Cmd>Hurl<CR>", {
|
||||
buffer = true,
|
||||
})
|
||||
|
||||
vim.opt_local.commentstring = "# %s"
|
||||
|
||||
vim.keymap.set("n", "<leader>fr", "<cmd>HurlRunner<CR>", {
|
||||
desc = "Hurl: Runner",
|
||||
})
|
||||
vim.keymap.set("n", "<leader>fa", "<cmd>HurlRunnerAt<CR>", {
|
||||
desc = "Hurl: Run Api request",
|
||||
})
|
||||
vim.keymap.set("n", "<leader>fe", "<cmd>HurlRunnerToEntry<CR>", {
|
||||
desc = "Hurl: Run Api request to entry",
|
||||
})
|
||||
vim.keymap.set("n", "<leader>fm", "<cmd>HurlToggleMode<CR>", {
|
||||
desc = "Hurl: Toggle Mode",
|
||||
})
|
||||
vim.keymap.set("n", "<leader>rv", "<cmd>HurlVerbose<CR>", {
|
||||
desc = "Hurl: Run Api in verbose mode",
|
||||
})
|
||||
vim.keymap.set("v", "<leader>fr", ":HurlRunner<CR>", {
|
||||
desc = "Hurl: Runner",
|
||||
})
|
@ -2,8 +2,28 @@ vim.opt_local.tabstop = 2
|
||||
vim.opt_local.shiftwidth = 2
|
||||
vim.opt_local.textwidth = 0
|
||||
|
||||
vim.keymap.set("n", "<leader>fr", "<cmd>MarkdownPreview<CR>", {
|
||||
vim.keymap.set("n", "<leader>fr", "<cmd>GithubPreviewToggle<CR>", {
|
||||
buffer = true,
|
||||
desc = "Preview Markdown in Browser",
|
||||
})
|
||||
|
||||
local markview = require("markview")
|
||||
vim.keymap.set("n", "<leader>ff", function()
|
||||
markview.state.hybrid_mode = not markview.state.hybrid_mode
|
||||
local hybrid_state = markview.state.hybrid_mode and "Enabled" or "Disabled"
|
||||
vim.notify(("%s Markview Hybrid Mode"):format(hybrid_state), vim.log.levels.INFO, { title = "Markview" })
|
||||
end, {
|
||||
buffer = true,
|
||||
desc = "Toggle Markview Hybrid Mode",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>ft", function()
|
||||
vim.cmd("Markview toggle")
|
||||
local mview_state = markview.state.enable and "Enabled" or "Disabled"
|
||||
vim.notify(("Markview %s"):format(mview_state), vim.log.levels.INFO, { title = "Markview" })
|
||||
end, {
|
||||
buffer = true,
|
||||
desc = "Toggle Markview",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<C-Space>", function()
|
||||
|
@ -1,2 +1,8 @@
|
||||
vim.opt_local.shiftwidth = 2
|
||||
vim.opt_local.modeline = true
|
||||
vim.keymap.set("n", "<leader>ff", function()
|
||||
vim.b.org_indent_mode = not vim.b.org_indent_mode
|
||||
end, {
|
||||
buffer = true,
|
||||
desc = "Org: Toggle Indent Mode",
|
||||
})
|
||||
|
@ -18,17 +18,6 @@
|
||||
@org-checkbox-content (#any-of? @org-checkbox-content "-")) @markup.list.indeterminate
|
||||
(#set! @markup.list.indeterminate conceal ""))
|
||||
|
||||
; Table highlights
|
||||
(row
|
||||
"|" @punctuation.special)
|
||||
(cell
|
||||
"|" @punctuation.special)
|
||||
(table
|
||||
(row
|
||||
(cell (contents) @markup.heading))
|
||||
(hr) @punctuation.special)
|
||||
|
||||
|
||||
; Quote highlights
|
||||
(block
|
||||
name: (expr) @org-block-start-name (#any-of? @org-block-start-name "quote" "QUOTE")
|
||||
@ -55,4 +44,4 @@
|
||||
|
||||
; Improved list delimiter highlights
|
||||
(tag_list ":" @org.tag.delimiter)
|
||||
(tag) @org.tag.body
|
||||
(tag) @org.tag.body
|
||||
|
@ -1,144 +1,131 @@
|
||||
{
|
||||
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
|
||||
"LuaSnip": { "branch": "master", "commit": "e808bee352d1a6fcf902ca1a71cee76e60e24071" },
|
||||
"LuaSnip": { "branch": "master", "commit": "33b06d72d220aa56a7ce80a0dd6f06c70cd82b9d" },
|
||||
"actions-preview.nvim": { "branch": "master", "commit": "9f52a01c374318e91337697ebed51c6fae57f8a4" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "bf3c8bb8c02ed3d9644cc5bbc48e2bdc39349cd7" },
|
||||
"bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" },
|
||||
"bufdelete.nvim": { "branch": "master", "commit": "f6bcea78afb3060b198125256f897040538bcb81" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
||||
"blink-emoji.nvim": { "branch": "master", "commit": "699493775b61b94ead76841c981a51d3df350ea0" },
|
||||
"blink-ripgrep.nvim": { "branch": "main", "commit": "8a47d404a359c70c796cb0979ddde4c788fd44e5" },
|
||||
"blink.cmp": { "branch": "main", "commit": "434ea2b05c2bae0cff6249893c8324fa3a56d865" },
|
||||
"blink.compat": { "branch": "main", "commit": "5ca8848c8cc32abdc980e5db4f0eb7bb8fbf84dc" },
|
||||
"busted": { "branch": "main", "commit": "5ed85d0e016a5eb5eca097aa52905eedf1b180f1" },
|
||||
"ccc.nvim": { "branch": "main", "commit": "7c639042583c7bdc7ce2e37e5a0e0aa6d0659c6a" },
|
||||
"cmdbuf.nvim": { "branch": "main", "commit": "8a62db348e95ad49d97a99faeb592e71bba652ee" },
|
||||
"cmp-async-path": { "branch": "main", "commit": "9d581eec5acf812316913565c135b0d1ee2c9a71" },
|
||||
"cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
||||
"cmp-cmdline-history": { "branch": "master", "commit": "003573b72d4635ce636234a826fa8c4ba2895ffe" },
|
||||
"cmp-conventionalcommits": { "branch": "master", "commit": "a4dfacf0601130b7f8afa7c948d735c27802fb7f" },
|
||||
"cmp-emoji": { "branch": "main", "commit": "e8398e2adf512a03bb4e1728ca017ffeac670a9f" },
|
||||
"cmp-fuzzy-buffer": { "branch": "main", "commit": "ada6352bc7e3c32471ab6c08f954001870329de1" },
|
||||
"cmp-git": { "branch": "main", "commit": "50d526dff0f6bc441b51fc269d9fdc99a50c76af" },
|
||||
"cmp-npm": { "branch": "main", "commit": "2337f109f51a09297596dd6b538b70ccba92b4e4" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
|
||||
"cmp-rg": { "branch": "master", "commit": "677a7874ee8f1afc648c2e7d63a97bc21a7663c5" },
|
||||
"cmp-zsh": { "branch": "main", "commit": "c24db8e58fac9006ec23d93f236749288d00dec9" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"cmdbuf.nvim": { "branch": "main", "commit": "a5c668512446f6e68ef7ac31ab32d85027af50dc" },
|
||||
"crates.nvim": { "branch": "main", "commit": "8bf8358ee326d5d8c11dcd7ac0bcc9ff97dbc785" },
|
||||
"csharpls-extended-lsp.nvim": { "branch": "master", "commit": "b647e1bd1f9c0410f5ef4a1517a331cbac322d9a" },
|
||||
"csharpls-extended-lsp.nvim": { "branch": "master", "commit": "4f56c06215d10c4fcfee8a7f04ba766c114aece0" },
|
||||
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
|
||||
"direnv.nvim": { "branch": "main", "commit": "eec36a38285457c4e5dea2c6856329a9a20bd3a4" },
|
||||
"exrc.nvim": { "branch": "master", "commit": "4346164895f432f361e453d837b612e6c7cbe3e6" },
|
||||
"flatten.nvim": { "branch": "main", "commit": "e420e531d2ab24aebcf7b3c9fca28e6c5c34964d" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" },
|
||||
"fuzzy.nvim": { "branch": "master", "commit": "68608f6a232f7e73ccf81437bf12108128f15bd4" },
|
||||
"gitlinker.nvim": { "branch": "master", "commit": "a221c13fc3c7f5b8799933f4966ee8e618287292" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "863903631e676b33e8be2acb17512fdc1b80b4fb" },
|
||||
"go.nvim": { "branch": "master", "commit": "0d099822d56db4f611f0b9b7c74c75dbedcf8318" },
|
||||
"guihua.lua": { "branch": "master", "commit": "225db770e36aae6a1e9e3a65578095c8eb4038d3" },
|
||||
"gx.nvim": { "branch": "main", "commit": "cc70d112b14d18dd7b123a5d5288266a60e8189e" },
|
||||
"flatten.nvim": { "branch": "main", "commit": "ab2e1085c731dd296a56e9670218083726337df6" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
||||
"github-preview.nvim": { "branch": "main", "commit": "b78d1af90fd521eaa8c73d1ac5fe5dbc9f9c1296" },
|
||||
"gitlinker.nvim": { "branch": "master", "commit": "df0c4e342742812186f87e32caf82b3e5e288a84" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
|
||||
"go.nvim": { "branch": "master", "commit": "c6d5ca26377d01c4de1f7bff1cd62c8b43baa6bc" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "c88435b825a35bfa468b47159709b3221976ecd1" },
|
||||
"guihua.lua": { "branch": "master", "commit": "d783191eaa75215beae0c80319fcce5e6b3beeda" },
|
||||
"gx.nvim": { "branch": "main", "commit": "b01db725a001e4215f363159fc04727f6fde0a1c" },
|
||||
"headlines.nvim": { "branch": "master", "commit": "bf17c96a836ea27c0a7a2650ba385a7783ed322e" },
|
||||
"heirline.nvim": { "branch": "master", "commit": "7a79753c1a42c3f52e89a6c42429e7f871e560cd" },
|
||||
"highlight-undo.nvim": { "branch": "main", "commit": "ee2f6355e08719fea902e7c478aa7351934f2bb6" },
|
||||
"heirline.nvim": { "branch": "master", "commit": "cc359b628266cb9a84b2d71c883f2b99e16473a0" },
|
||||
"highlight-undo.nvim": { "branch": "main", "commit": "5f588b420179a31d7073854bfd07ed9d5f364645" },
|
||||
"hlargs.nvim": { "branch": "main", "commit": "53ec5d8ca6ed012de5545ba83ea1eb3d636b09fb" },
|
||||
"hop.nvim": { "branch": "master", "commit": "8f51ef02700bb3cdcce94e92eff16170a6343c4f" },
|
||||
"hurl.nvim": { "branch": "main", "commit": "807b6ff480626d91ec46ca86092b530082c7400c" },
|
||||
"hydra.nvim": { "branch": "main", "commit": "7f5341643107d05a8d7d4fdea00b29af28517380" },
|
||||
"img-clip.nvim": { "branch": "main", "commit": "28a32d811d69042f4fa5c3d5fa35571df2bc1623" },
|
||||
"inc-rename.nvim": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "e7a4442e055ec953311e77791546238d1eaae507" },
|
||||
"kanagawa.nvim": { "branch": "master", "commit": "f491b0fe68fffbece7030181073dfe51f45cda81" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "1159bdccd8910a0fd0914b24d6c3d186689023d9" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
|
||||
"hop.nvim": { "branch": "master", "commit": "efe58182f71fbe592f82fb211ab026f2819e855d" },
|
||||
"hydra.nvim": { "branch": "main", "commit": "68ae20eb732f4f722dd7158adecf55de431ff26d" },
|
||||
"img-clip.nvim": { "branch": "main", "commit": "5ff183655ad98b5fc50c55c66540375bbd62438c" },
|
||||
"inc-rename.nvim": { "branch": "main", "commit": "f4e13df6e2d0b3177a7305dbc1cc7f7ea44b94f1" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" },
|
||||
"kanagawa.nvim": { "branch": "master", "commit": "2d54b56242a6f03c74864d118d61afa1acb5918e" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "8620f82ee3f59ff2187647167b6b47387a13a018" },
|
||||
"live-command.nvim": { "branch": "main", "commit": "b0723697bf60d89ede953c4a5fedce3157784c15" },
|
||||
"lsp_lines.nvim": { "branch": "main", "commit": "7d9e2748b61bff6ebba6e30adbc7173ccf21c055" },
|
||||
"lspkind.nvim": { "branch": "master", "commit": "59c3f419af48a2ffb2320cea85e44e5a95f71664" },
|
||||
"lsp_lines.nvim": { "branch": "main", "commit": "a92c755f182b89ea91bd8a6a2227208026f27b4d" },
|
||||
"lua-async-await": { "branch": "main", "commit": "652d94df34e97abe2d4a689edbc4270e7ead1a98" },
|
||||
"luassert": { "branch": "main", "commit": "d3528bb679302cbfdedefabb37064515ab95f7b9" },
|
||||
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" },
|
||||
"markview.nvim": { "branch": "main", "commit": "72cd34279e94ee96ee33bdf30a87b00e6d45319d" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "c6c686781f9841d855bf1b926e10aa5e19430a38" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"mini.nvim": { "branch": "main", "commit": "a535342b6105a684f16114f598d44318e6a1d20f" },
|
||||
"mini.nvim": { "branch": "main", "commit": "2faada1cffce5609d78ac5e81eaf3754e0476758" },
|
||||
"mkdir.nvim": { "branch": "main", "commit": "c55d1dee4f099528a1853b28bb28caa802eba217" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "a9f8943b4c31f8460d25c71e0f463d65e9775f1c" },
|
||||
"neoformat": { "branch": "master", "commit": "d9d3311097eacdba9bd7a425b267d304b509e7ea" },
|
||||
"neogen": { "branch": "main", "commit": "e932ba918b56723436b77aa3efb844a11b2851ab" },
|
||||
"neogit": { "branch": "master", "commit": "a8dd1509a7fc6bf92ca60f21e33393f685ab70aa" },
|
||||
"neotest": { "branch": "master", "commit": "6d3d22cdad49999ef774ebe1bc250a4994038964" },
|
||||
"neogen": { "branch": "main", "commit": "dd0301bfba1f83a3bc009b5430fce7aa3cee6941" },
|
||||
"neogit": { "branch": "master", "commit": "9ea60f79e370d8f4847efc145e53afe4b0613fc1" },
|
||||
"neotest": { "branch": "master", "commit": "5da58782edb137e75d8ffa149bea48eaa13532f5" },
|
||||
"neotest-go": { "branch": "main", "commit": "92950ad7be2ca02a41abca5c6600ff6ffaf5b5d6" },
|
||||
"neotest-plenary": { "branch": "master", "commit": "3523adcf9ffaad1911960c5813b0136c1b63a2ec" },
|
||||
"netman.nvim": { "branch": "main", "commit": "68eecb29d913d4f35efa9bd0e8636046f70f998f" },
|
||||
"nibbler": { "branch": "main", "commit": "a69331d6af60dda6ae6459522134a5e365fb43b1" },
|
||||
"noice.nvim": { "branch": "main", "commit": "df448c649ef6bc5a6a633a44f2ad0ed8d4442499" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "0e0a940477cc08fa7b1799384a1d668058ed4e61" },
|
||||
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "4aec249cdcef9b269e962bf73ef976181ee7fdd9" },
|
||||
"netman.nvim": { "branch": "main", "commit": "99c2e1e4e98b5d0b05eeea89f54f801b63f4cbfe" },
|
||||
"nibbler": { "branch": "main", "commit": "9ca67e731f4bd99e1877c9255b3957d5ced6ce04" },
|
||||
"noice.nvim": { "branch": "main", "commit": "eaed6cc9c06aa2013b5255349e4f26a6b17ab70f" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "6f5473ae9e7feb0b40ca95b8ed92e85b42a3c71b" },
|
||||
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
|
||||
"nvim-cmp-lua-latex-symbols": { "branch": "master", "commit": "89345d6e333c700d13748e8a7ee6fe57279b7f88" },
|
||||
"nvim-dap": { "branch": "master", "commit": "7ff6936010b7222fea2caea0f67ed77f1b7c60dd" },
|
||||
"nvim-dap-python": { "branch": "master", "commit": "db72bf6ab9f75fe841e8e11e772ee7fef6f484f1" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
|
||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "52638640ae309cacdaff785fdbb854437bd1ee5c" },
|
||||
"nvim-dap": { "branch": "master", "commit": "665d3569a86395fe0dab85efbdb26d7d2ee57e49" },
|
||||
"nvim-dap-python": { "branch": "master", "commit": "34282820bb713b9a5fdb120ae8dd85c2b3f49b51" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "055be38c3653923d1d3e0f155a50871545740798" },
|
||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "df66808cd78b5a97576bbaeee95ed5ca385a9750" },
|
||||
"nvim-fundo": { "branch": "main", "commit": "ac9c9372c4bf677721e24f144ef29d3a05c2b589" },
|
||||
"nvim-java": { "branch": "main", "commit": "b3174e41ab51867123d8663eced53b33f1548522" },
|
||||
"nvim-java-core": { "branch": "main", "commit": "5b03dca22fee76524a89e1c2dc1d73a9f0b1a3bb" },
|
||||
"nvim-java": { "branch": "main", "commit": "e8e84413ca03e7d0541921e795b2e6bf8801f186" },
|
||||
"nvim-java-core": { "branch": "main", "commit": "22eca6b90b7e209299d99cbf60421f0ffdae5629" },
|
||||
"nvim-java-dap": { "branch": "main", "commit": "55f239532f7a3789d21ea68d1e795abc77484974" },
|
||||
"nvim-java-refactor": { "branch": "main", "commit": "ea1420fed5463c9cc976c2b4175f434b3646f0f7" },
|
||||
"nvim-java-test": { "branch": "main", "commit": "7f0f40e9c5b7eab5096d8bec6ac04251c6e81468" },
|
||||
"nvim-lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" },
|
||||
"nvim-lightbulb": { "branch": "master", "commit": "1cae7b7153ae98dcf1b11173a443ac1b6d8e3d49" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "d3f169f436e1b44538bfe7e13b4721eec48dbc59" },
|
||||
"nvim-neoclip.lua": { "branch": "main", "commit": "32e05f2d23dc5b6a284a688c0535a83d1bfc633f" },
|
||||
"nvim-lightbulb": { "branch": "master", "commit": "3ac0791be37ba9cc7939f1ad90ebc5e75abf4eea" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "ff2b85abaa810f6611233dbe6d31c07510ebf43d" },
|
||||
"nvim-neoclip.lua": { "branch": "main", "commit": "5e5e010251281f4aea69cfc1d4976ffe6065cf0f" },
|
||||
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
||||
"nvim-notify": { "branch": "master", "commit": "fbef5d32be8466dd76544a257d3f3dce20082a07" },
|
||||
"nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "9d2acd49976e2a9da72949008df03436f781fd23" },
|
||||
"nvim-surround": { "branch": "main", "commit": "9f0cb495f25bff32c936062d85046fbda0c43517" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "eb3e850acff4d9f2f2dd8dacd75353043c899753" },
|
||||
"nvim-treesitter-endwise": { "branch": "fix/iter-matches", "commit": "a210e4c96e7b4b872be6026293a8f6e6bea05175" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "b91c98afa6c42819aea6cbc1ba38272f5456a5cf" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" },
|
||||
"nvim-ufo": { "branch": "main", "commit": "203c9f434feec57909ab4b1e028abeb3349b7847" },
|
||||
"nvim-various-textobjs": { "branch": "main", "commit": "cc33e0a6681bbe913de515ac1a68492d50cbf949" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "56f17def81478e406e3a8ec4aa727558e79786f3" },
|
||||
"octo.nvim": { "branch": "master", "commit": "0adcc6d37a3cd2dae014fa5e48bee6147100c357" },
|
||||
"omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "aad7bf06b4ca0de816b919d475a75b30f5f62b61" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "1cca23c9da708047922d3895a71032bc0449c52d" },
|
||||
"nvim-ufo": { "branch": "main", "commit": "32cb247b893a384f1888b9cd737264159ecf183c" },
|
||||
"nvim-various-textobjs": { "branch": "main", "commit": "d122145ae2b71aa7d7e1402ae5bd4a234a9e2f92" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "63f552a7f59badc6e6b6d22e603150f0d5abebb7" },
|
||||
"octo.nvim": { "branch": "master", "commit": "aa3cb8e27a708d137d2540509928a3e7736f8eba" },
|
||||
"omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "4916fa12e5b28d21a1f031f0bdd10aa15a75d85d" },
|
||||
"open-browser.vim": { "branch": "master", "commit": "7d4c1d8198e889d513a030b5a83faa07606bac27" },
|
||||
"orgmode": { "branch": "master", "commit": "a5aeb14663ef08e0bb4bb847f8d79f9c253094a0" },
|
||||
"overseer.nvim": { "branch": "master", "commit": "965f8159408cee5970421ad36c4523333b798502" },
|
||||
"plantuml-previewer.vim": { "branch": "master", "commit": "555347700382c97b347bace57b7a9f764ed556b1" },
|
||||
"orgmode": { "branch": "master", "commit": "bf657742f7cb56211f99946ff64f5f87d7d7f0d0" },
|
||||
"overseer.nvim": { "branch": "master", "commit": "10ee48ff96c8d1049efb278ea4c8cf9f3b0e4326" },
|
||||
"plantuml-previewer.vim": { "branch": "master", "commit": "368a1f331c1ff29f6a3ee76facfca39a7f374b13" },
|
||||
"plantuml-syntax": { "branch": "master", "commit": "9d4900aa16674bf5bb8296a72b975317d573b547" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
|
||||
"ppd.nvim": { "branch": "main", "commit": "05f62c79fa81501691411ac368962eac1d197d1b" },
|
||||
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "d227e6c9879bb50af35cd733461198666981d482" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "77e5bad54227dcfe3878ffbda88ab1efdaacb475" },
|
||||
"rainbow_csv.nvim": { "branch": "main", "commit": "7f3fddfe813641035fac2cdf94c2ff69bb0bf0b9" },
|
||||
"rustaceanvim": { "branch": "master", "commit": "d1f56672638508a7bc971cde31a29df4018579a9" },
|
||||
"schemastore.nvim": { "branch": "main", "commit": "dd374887d6e1de38e9d7041da824a8dc10cae401" },
|
||||
"rustaceanvim": { "branch": "master", "commit": "6db1fe9e3f005b2e0921c7302d2c195eeb90a451" },
|
||||
"schemastore.nvim": { "branch": "main", "commit": "562681847dd904485caddd42395db2bb9d6e694a" },
|
||||
"smart-open.nvim": { "branch": "main", "commit": "7770b01ce4d551c143d7ec8589879320796621b9" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "98df370703b3c47a297988f3e55ce99628639590" },
|
||||
"spring-boot.nvim": { "branch": "main", "commit": "218c0c26c14d99feca778e4d13f5ec3e8b1b60f0" },
|
||||
"sqlite.lua": { "branch": "master", "commit": "d0ffd703b56d090d213b497ed4eb840495f14a11" },
|
||||
"statuscol.nvim": { "branch": "main", "commit": "ecc04176e364dd7f614edfc4325e3a8521905ad6" },
|
||||
"sqlite.lua": { "branch": "master", "commit": "cf482586c4f24e197375235a6e310b9b9e80ba83" },
|
||||
"statuscol.nvim": { "branch": "main", "commit": "81d1cfb47e91780f72a8d9a3529f146731864313" },
|
||||
"symbol-usage.nvim": { "branch": "main", "commit": "0f9b3da014b7e41559b643e7461fcabb2a7dc83a" },
|
||||
"telescope-frecency.nvim": { "branch": "master", "commit": "f67baca08423a6fd00167801a54db38e0b878063" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
|
||||
"telescope-frecency.nvim": { "branch": "master", "commit": "77829eda3451ef81200b9c61696af0d64372ea85" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
|
||||
"telescope-orgmode.nvim": { "branch": "main", "commit": "2cd2ea778726c6e44429fef82f23b63197dbce1b" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope-undo.nvim": { "branch": "main", "commit": "51be9ae7c42fc27c0b05505e3a0162e0f05fbb6a" },
|
||||
"telescope-undo.nvim": { "branch": "main", "commit": "2971cc9f193ec09e0c5de3563f99cbea16b63f10" },
|
||||
"telescope-z.nvim": { "branch": "main", "commit": "3a31d9741fe4353e5c8b59cfc4eda5420dc7f938" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "dc6fc321a5ba076697cca89c9d7ea43153276d81" },
|
||||
"tint.nvim": { "branch": "master", "commit": "02bd0527a315a80e4e25bb2dd7b6994fb0daae01" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "2eca9ba22002184ac05eddbe47a7fe2d5a384dfc" },
|
||||
"tint.nvim": { "branch": "master", "commit": "586e87f00c8b0f5e857cefe10839e41f3e8c6d01" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
|
||||
"toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "254145ffd528b98eb20be894338e2d5c93fa02c2" },
|
||||
"toggleterm.nvim": { "branch": "main", "commit": "87b2d6a3cab8e2bd9a0255427074285f0365398d" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "46cf952fc115f4c2b98d4e208ed1e2dce08c9bf6" },
|
||||
"venn.nvim": { "branch": "main", "commit": "b09c2f36ddf70b498281845109bedcf08a7e0de0" },
|
||||
"venv-selector.nvim": { "branch": "regexp", "commit": "e82594274bf7b54387f9a2abe65f74909ac66e97" },
|
||||
"vim-dadbod": { "branch": "master", "commit": "7888cb7164d69783d3dce4e0283decd26b82538b" },
|
||||
"vim-dadbod-completion": { "branch": "master", "commit": "880f7e9f2959e567c718d52550f9fae1aa07aa81" },
|
||||
"vim-dadbod-ui": { "branch": "master", "commit": "f29c85ab42861c6ef683289b0c6a51e0d436dcf6" },
|
||||
"vim-dadbod": { "branch": "master", "commit": "f740950d0703099e0f172016f10e0e39f50fd0ba" },
|
||||
"vim-dadbod-completion": { "branch": "master", "commit": "9e354e86fcc67a5ec2c104f312e374ea2f89c799" },
|
||||
"vim-dadbod-ui": { "branch": "master", "commit": "0fec59e3e1e619e302198cd491b7d27f8d398b7c" },
|
||||
"vim-move": { "branch": "master", "commit": "3c4195de0748da9bba25c54d78d959d349e93c55" },
|
||||
"vim-nftables": { "branch": "master", "commit": "26f8a506c6f3e41f1e4a8d6aa94c9a79a666bbff" },
|
||||
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
||||
"vim-table-mode": { "branch": "master", "commit": "e4365bde024f73e205eefa2fb78e3029ddb92ea9" },
|
||||
"vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" },
|
||||
"vimtex": { "branch": "master", "commit": "fcbaf66887bd19f5d973406848cf2a5ac46bd65e" },
|
||||
"visual-whitespace.nvim": { "branch": "main", "commit": "e22d8508a0236f274dde39775ee127c85d30c0c0" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" },
|
||||
"vimtex": { "branch": "master", "commit": "b8bb79b5fb27e9030ade92e75cd9375416f2c666" },
|
||||
"visual-whitespace.nvim": { "branch": "main", "commit": "31d0ed71ad7e376879d7e0df0c8cc4f1467702d4" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "8ab96b38a2530eacba5be717f52e04601eb59326" },
|
||||
"window-picker": { "branch": "main", "commit": "41cfaa428577c53552200a404ae9b3a0b5719706" },
|
||||
"z.nvim": { "branch": "main", "commit": "3e3a83e544925d938779366a11c65d11febf3f72" }
|
||||
}
|
||||
|
@ -106,6 +106,7 @@ M.setup = function()
|
||||
|
||||
local extensions = {
|
||||
"pdf",
|
||||
"epub",
|
||||
"djvu",
|
||||
"wav",
|
||||
"png",
|
||||
|
@ -1,6 +1,7 @@
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
vim.lsp.log.set_format_func(vim.inspect)
|
||||
vim.diagnostic.config({
|
||||
severity_sort = true,
|
||||
underline = true,
|
||||
|
@ -49,10 +49,15 @@ M.setup = function()
|
||||
end, { silent = true, desc = "Remove Highlighted Searches" })
|
||||
|
||||
-- Spell Checking
|
||||
vim.keymap.set("n", "<leader>st", function()
|
||||
vim.keymap.set("n", "<leader>ss", function()
|
||||
vim.opt.spell = not vim.opt.spell:get()
|
||||
end, { silent = true, desc = "Toggle Spell" })
|
||||
|
||||
-- Toggling wrap
|
||||
vim.keymap.set("n", "<leader>sw", function()
|
||||
vim.opt.wrap = not vim.opt.wrap:get()
|
||||
end, { silent = true, desc = "Toggle Wrap" })
|
||||
|
||||
-- Set current focused file as cwd
|
||||
vim.keymap.set("n", "<leader>cd", ":cd %:p:h<CR>", { silent = true, desc = "Change CWD to Current File" })
|
||||
|
||||
|
@ -42,7 +42,7 @@ M.setup = function()
|
||||
opt.formatlistpat = [[^\s*\(-\|\d\.\|+\)\s*]]
|
||||
opt.formatoptions = "jcroqnp"
|
||||
opt.breakindent = true
|
||||
opt.breakindentopt = "list:2"
|
||||
opt.breakindentopt = "list:-1"
|
||||
|
||||
-- Search settings
|
||||
opt.hlsearch = true
|
||||
@ -71,15 +71,20 @@ M.setup = function()
|
||||
opt.undofile = true
|
||||
|
||||
-- Better folding
|
||||
opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
|
||||
opt.foldmethod = "expr"
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
callback = function()
|
||||
if not (pcall(vim.treesitter.start)) then
|
||||
return
|
||||
end
|
||||
vim.opt_local.foldexpr = "v:lua.vim.treesitter.foldexpr()"
|
||||
vim.opt_local.foldmethod = "expr"
|
||||
end,
|
||||
})
|
||||
opt.fillchars = { eob = " ", fold = " ", foldopen = "", foldsep = " ", foldclose = "" }
|
||||
vim.o.foldcolumn = "1"
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
vim.wo.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
vim.wo.foldmethod = "expr"
|
||||
|
||||
-- Concealment for nicer rendering
|
||||
opt.conceallevel = 2
|
||||
@ -137,15 +142,10 @@ M.setup = function()
|
||||
opt.fillchars:append("diff:╱")
|
||||
|
||||
-- Limit default menu height for completions
|
||||
opt.pumheight = 20
|
||||
opt.pumheight = 10
|
||||
|
||||
-- Allow per project configuration via exrc
|
||||
opt.exrc = true
|
||||
|
||||
-- Backups
|
||||
opt.backupdir = vim.fn.stdpath("state") .. "/backup//"
|
||||
opt.backupskip = opt.backupskip + "*/*passage.*" + "/dev/shm/*"
|
||||
opt.backup = true
|
||||
end
|
||||
|
||||
return M
|
||||
|
@ -1,6 +1,7 @@
|
||||
-- Floating and Popupmenu Transparency
|
||||
vim.opt.winblend = 20
|
||||
vim.opt.pumblend = 10
|
||||
vim.opt.winblend = 10
|
||||
vim.opt.pumblend = 70
|
||||
|
||||
|
||||
-- Float blur amount
|
||||
vim.g.neovide_floating_blur_amount_x = 10.0
|
||||
@ -102,3 +103,6 @@ end, { noremap = true, silent = true, desc = "Neovide: Reset Zoom" })
|
||||
|
||||
-- Set Neovide specific vars for use elsewhere (e.g. terminal sessions)
|
||||
vim.env.NEOVIDE_SESSION = 1
|
||||
|
||||
-- Group layers for shadows & blurring across entire group
|
||||
vim.g.experimental_layer_grouping = true
|
||||
|
@ -16,35 +16,91 @@ return {
|
||||
end,
|
||||
lazy = true,
|
||||
opts = function()
|
||||
-- Set header
|
||||
local header = {
|
||||
type = "text",
|
||||
val = {
|
||||
" ",
|
||||
" ",
|
||||
" -╲ '- ",
|
||||
" -' :╲ │ '- ",
|
||||
" -' : ╲ │ '- ",
|
||||
" -'· : ╲ │ '- ",
|
||||
" '.-.· : ╲ │ │ ",
|
||||
" │. .-· : ╲ │ │ ",
|
||||
" │ . .-· : ╲ │ │ ",
|
||||
" │. . .-·; ╲ │ │ ",
|
||||
" │ . . .-│ ╲ │ │ ",
|
||||
" │. . . .│╲ ╲│ │ ",
|
||||
" │ . . . │ ╲ ;- │ ",
|
||||
" │. . . .│ ╲ :·- │ ",
|
||||
" │ . . . │ ╲ : .- │ ",
|
||||
" │. . . .│ ╲ :. .- │ ",
|
||||
" `- . . .│ ╲ : . .- -' ",
|
||||
" `- . .│ ╲ :. ..-' ",
|
||||
" `-. │ ╲ :..-' ",
|
||||
" `│ ╲;-' ",
|
||||
" ",
|
||||
" ",
|
||||
},
|
||||
opts = { position = "center", hl = "@boolean" },
|
||||
}
|
||||
-- helper function for utf8 chars
|
||||
local function getCharLen(s, pos)
|
||||
local byte = string.byte(s, pos)
|
||||
if not byte then
|
||||
return nil
|
||||
end
|
||||
return (byte < 0x80 and 1) or (byte < 0xE0 and 2) or (byte < 0xF0 and 3) or (byte < 0xF8 and 4) or 1
|
||||
end
|
||||
|
||||
local function applyColors(logo, colors, logoColors)
|
||||
local header = {
|
||||
val = logo,
|
||||
opts = {
|
||||
hl = {},
|
||||
},
|
||||
}
|
||||
|
||||
for key, color in pairs(colors) do
|
||||
local name = "Alpha" .. key
|
||||
vim.api.nvim_set_hl(0, name, color)
|
||||
colors[key] = name
|
||||
end
|
||||
|
||||
for i, line in ipairs(logoColors) do
|
||||
local highlights = {}
|
||||
local pos = 0
|
||||
|
||||
for j = 1, #line do
|
||||
local opos = pos
|
||||
pos = pos + getCharLen(logo[i], opos + 1)
|
||||
|
||||
local color_name = colors[line:sub(j, j)]
|
||||
if color_name then
|
||||
table.insert(highlights, { color_name, opos, pos })
|
||||
end
|
||||
end
|
||||
|
||||
table.insert(header.opts.hl, highlights)
|
||||
end
|
||||
return header
|
||||
end
|
||||
-- Thanks to https://github.com/goolord/alpha-nvim/discussions/16#discussioncomment-10062303
|
||||
local header = applyColors({
|
||||
[[ ███ ███ ]],
|
||||
[[ ████ ████ ]],
|
||||
[[ ████ █████ ]],
|
||||
[[ █ ████ █████ ]],
|
||||
[[ ██ ████ █████ ]],
|
||||
[[ ███ ████ █████ ]],
|
||||
[[ ████ ████ ████ ]],
|
||||
[[ █████ ████████ ]],
|
||||
[[ █████ ███████ ]],
|
||||
[[ █████ ██████ ]],
|
||||
[[ █████ █████ ]],
|
||||
[[ ████ ████ ]],
|
||||
[[ ███ ███ ]],
|
||||
[[ ]],
|
||||
[[ N E O V I M ]],
|
||||
}, {
|
||||
["b"] = { fg = "#3399ff", ctermfg = 33 },
|
||||
["a"] = { fg = "#53C670", ctermfg = 35 },
|
||||
["g"] = { fg = "#39ac56", ctermfg = 29 },
|
||||
["h"] = { fg = "#33994d", ctermfg = 23 },
|
||||
["i"] = { fg = "#33994d", bg = "#39ac56", ctermfg = 23, ctermbg = 29 },
|
||||
["j"] = { fg = "#53C670", bg = "#33994d", ctermfg = 35, ctermbg = 23 },
|
||||
["k"] = { fg = "#30A572", ctermfg = 36 },
|
||||
}, {
|
||||
[[ kkkka gggg ]],
|
||||
[[ kkkkaa ggggg ]],
|
||||
[[ b kkkaaa ggggg ]],
|
||||
[[ bb kkaaaa ggggg ]],
|
||||
[[ bbb kaaaaa ggggg ]],
|
||||
[[ bbbb aaaaaa ggggg ]],
|
||||
[[ bbbbb aaaaaa igggg ]],
|
||||
[[ bbbbb aaaaaahiggg ]],
|
||||
[[ bbbbb aaaaajhigg ]],
|
||||
[[ bbbbb aaaaajhig ]],
|
||||
[[ bbbbb aaaaajhi ]],
|
||||
[[ bbbbb aaaaajh ]],
|
||||
[[ bbbb aaaaa ]],
|
||||
[[ ]],
|
||||
[[ a a a b b b ]],
|
||||
})
|
||||
header.type = "text"
|
||||
header.opts.position = "center"
|
||||
|
||||
local vim_version = {
|
||||
type = "text",
|
||||
@ -92,10 +148,10 @@ return {
|
||||
type = "text",
|
||||
val = function()
|
||||
if lstatus.has_updates() and lstatus.updates() then
|
||||
vim.api.nvim_set_hl(0, "AlphaPluginUpdate", { link = "@keyword.return" })
|
||||
vim.api.nvim_set_hl(0, "AlphaPluginUpdate", { link = "@keyword.return", force = true })
|
||||
return "Plugin updates available!"
|
||||
else
|
||||
vim.api.nvim_set_hl(0, "AlphaPluginUpdate", { link = "@string" })
|
||||
vim.api.nvim_set_hl(0, "AlphaPluginUpdate", { link = "@string", force = true })
|
||||
return "All plugins up to date"
|
||||
end
|
||||
end,
|
||||
@ -149,7 +205,7 @@ return {
|
||||
val = {
|
||||
button("e", " New File", ":ene <BAR> startinsert <CR>"),
|
||||
button("f", " Find File", ":Telescope find_files<CR>"),
|
||||
button("r", " Recent", ":Telescope oldfiles<CR>"),
|
||||
button("r", " Recent", ":Telescope smart_open<CR>"),
|
||||
button("s", " Settings", "<cmd>e ~/.config/nvim/<CR>"),
|
||||
button("u", " Update Plugins", ":Lazy sync<CR>"),
|
||||
button("q", " Quit", ":qa<CR>"),
|
||||
@ -169,18 +225,19 @@ return {
|
||||
end
|
||||
local opts = {
|
||||
layout = {
|
||||
padding(8),
|
||||
padding(10),
|
||||
header,
|
||||
padding(1),
|
||||
vim_version,
|
||||
padding(2),
|
||||
padding(1),
|
||||
datetime,
|
||||
padding(1),
|
||||
plugin_info,
|
||||
padding(1),
|
||||
plugins_loaded,
|
||||
padding(2),
|
||||
padding(1),
|
||||
buttons,
|
||||
padding(2),
|
||||
padding(1),
|
||||
fortune,
|
||||
},
|
||||
opts = { margin = 5 },
|
||||
|
@ -1,8 +0,0 @@
|
||||
return {
|
||||
{
|
||||
"LunarVim/bigfile.nvim",
|
||||
opts = {
|
||||
filesize = 100,
|
||||
},
|
||||
},
|
||||
}
|
220
users/price/dots/.config/nvim/lua/plugins/configs/blink.lua
Normal file
220
users/price/dots/.config/nvim/lua/plugins/configs/blink.lua
Normal file
@ -0,0 +1,220 @@
|
||||
return {
|
||||
{
|
||||
"folke/lazydev.nvim",
|
||||
cmd = "LazyDev",
|
||||
ft = "lua",
|
||||
opts = {
|
||||
library = {
|
||||
{ path = "luassert-types/library", words = { "assert" } },
|
||||
{ path = "busted-types/library", words = { "describe" } },
|
||||
{ path = "${3rd}/luv/library", words = { "vim%.uv", "vim%.loop" } },
|
||||
},
|
||||
},
|
||||
dependencies = {
|
||||
{ "LuaCATS/luassert", lazy = true },
|
||||
{ "LuaCATS/busted", lazy = true },
|
||||
},
|
||||
},
|
||||
{
|
||||
"saghen/blink.compat",
|
||||
-- lazy.nvim will automatically load the plugin when it's required by blink.cmp
|
||||
lazy = true,
|
||||
-- make sure to set opts so that lazy.nvim calls blink.compat's setup
|
||||
config = function()
|
||||
require("blink.compat").setup({})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
lazy = false, -- lazy loading handled internally
|
||||
dependencies = {
|
||||
"rafamadriz/friendly-snippets",
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
build = "make install_jsregexp",
|
||||
},
|
||||
"amarakon/nvim-cmp-lua-latex-symbols",
|
||||
"mikavilpas/blink-ripgrep.nvim",
|
||||
"moyiz/blink-emoji.nvim",
|
||||
},
|
||||
build = "nix run .#build-plugin",
|
||||
config = function()
|
||||
---@class CustomKindMapItem
|
||||
---@field icon string
|
||||
---@field hlgroup string
|
||||
|
||||
---@type table<string, CustomKindMapItem>
|
||||
local custom_kind_map = {
|
||||
Dadbod = { icon = "", hlgroup = "Dadbod" },
|
||||
Emoji = { icon = "", hlgroup = "Emoji" },
|
||||
Ripgrep = { icon = "", hlgroup = "Ripgrep" },
|
||||
["lua-latex-symbols"] = { icon = "", hlgroup = "LatexSymbol" },
|
||||
cmdline = { icon = "", hlgroup = "CommandLine" },
|
||||
Orgmode = { icon = "", hlgroup = "Orgmode" },
|
||||
Buffer = { icon = "", hlgroup = "Buffer" },
|
||||
}
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
require("blink.cmp").setup({
|
||||
-- 'default' for mappings similar to built-in completion
|
||||
-- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate)
|
||||
-- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept
|
||||
-- see the "default configuration" section below for full documentation on how to define
|
||||
-- your own keymap.
|
||||
keymap = {
|
||||
preset = "default",
|
||||
["<C-space>"] = { "show", "show_documentation", "hide_documentation" },
|
||||
["<C-e>"] = { "hide", "fallback" },
|
||||
["<CR>"] = {
|
||||
function(cmp)
|
||||
if vim.api.nvim_get_mode().mode:lower() == "c" then
|
||||
return cmp.accept({
|
||||
callback = function()
|
||||
vim.api.nvim_feedkeys(
|
||||
vim.api.nvim_replace_termcodes("<CR>", true, true, true),
|
||||
"n",
|
||||
true
|
||||
)
|
||||
end,
|
||||
})
|
||||
else
|
||||
return cmp.accept()
|
||||
end
|
||||
end,
|
||||
"fallback",
|
||||
},
|
||||
["<C-Tab>"] = {
|
||||
function(cmp)
|
||||
if cmp.snippet_active() then
|
||||
return cmp.accept()
|
||||
else
|
||||
return cmp.select_and_accept()
|
||||
end
|
||||
end,
|
||||
"snippet_forward",
|
||||
"fallback",
|
||||
},
|
||||
["<C-S-Tab>"] = { "snippet_backward", "fallback" },
|
||||
["<Up>"] = { "select_prev", "fallback" },
|
||||
["<Down>"] = { "select_next", "fallback" },
|
||||
["<Tab>"] = { "select_next", "fallback" },
|
||||
["<S-Tab>"] = { "select_prev", "fallback" },
|
||||
["<C-p>"] = { "select_prev", "fallback" },
|
||||
["<C-n>"] = { "select_next", "fallback" },
|
||||
["\\"] = {
|
||||
function(cmp)
|
||||
cmp.show({ providers = { "lua-latex-symbols" } })
|
||||
end,
|
||||
"fallback",
|
||||
},
|
||||
["<C-s>"] = { "scroll_documentation_up", "fallback" },
|
||||
["<C-d>"] = { "scroll_documentation_down", "fallback" },
|
||||
},
|
||||
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
appearance = {
|
||||
use_nvim_cmp_as_default = false,
|
||||
-- Set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
|
||||
-- Adjusts spacing to ensure icons are aligned
|
||||
nerd_font_variant = "normal",
|
||||
},
|
||||
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
sources = {
|
||||
default = {
|
||||
"lazydev",
|
||||
"lsp",
|
||||
"path",
|
||||
"snippets",
|
||||
"buffer",
|
||||
"ripgrep",
|
||||
"emoji",
|
||||
"orgmode",
|
||||
"dadbod",
|
||||
},
|
||||
providers = {
|
||||
lazydev = {
|
||||
name = "LazyDev",
|
||||
module = "lazydev.integrations.blink",
|
||||
score_offset = 100,
|
||||
},
|
||||
ripgrep = {
|
||||
module = "blink-ripgrep",
|
||||
score_offset = -5,
|
||||
max_items = 5,
|
||||
name = "Ripgrep",
|
||||
--- @module "blink-ripgrep"
|
||||
--- @type blink-ripgrep.Options
|
||||
opts = {
|
||||
prefix_min_len = 3,
|
||||
search_casing = "--smart-case",
|
||||
additional_rg_options = {
|
||||
"--hidden",
|
||||
"--word-regexp",
|
||||
"--glob=!.git/*",
|
||||
},
|
||||
},
|
||||
},
|
||||
["lua-latex-symbols"] = {
|
||||
name = "lua-latex-symbols",
|
||||
module = "blink.compat.source",
|
||||
opts = {
|
||||
cache = true,
|
||||
},
|
||||
},
|
||||
emoji = {
|
||||
module = "blink-emoji",
|
||||
name = "Emoji",
|
||||
},
|
||||
dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" },
|
||||
orgmode = {
|
||||
name = "Orgmode",
|
||||
module = "orgmode.org.autocompletion.blink",
|
||||
score_offset = 5,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
completion = {
|
||||
documentation = {
|
||||
auto_show = true,
|
||||
auto_show_delay_ms = 50,
|
||||
},
|
||||
list = {
|
||||
selection = "auto_insert",
|
||||
},
|
||||
ghost_text = {
|
||||
enabled = true,
|
||||
},
|
||||
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
menu = {
|
||||
winblend = 50,
|
||||
draw = {
|
||||
padding = { 0, 1 },
|
||||
components = {
|
||||
kind_icon = {
|
||||
text = function(ctx)
|
||||
local cust_kind_item = custom_kind_map[ctx.source_name]
|
||||
if cust_kind_item then
|
||||
ctx.kind_icon = cust_kind_item.icon
|
||||
end
|
||||
return ctx.icon_gap .. ctx.kind_icon .. ctx.icon_gap
|
||||
end,
|
||||
highlight = function(ctx)
|
||||
local cust_kind_item = custom_kind_map[ctx.source_name]
|
||||
if cust_kind_item then
|
||||
return "BlinkCmpKindCustom" .. cust_kind_item.hlgroup
|
||||
end
|
||||
return require("blink.cmp.completion.windows.render.tailwind").get_hl(ctx)
|
||||
or ("BlinkCmpKind" .. ctx.kind)
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
vim.api.nvim_create_autocmd("TermOpen", {
|
||||
callback = function(args)
|
||||
vim.keymap.set("n", "q", function()
|
||||
require("bufdelete").bufdelete(0, true)
|
||||
end, { silent = true, buffer = args.buf, remap = true, desc = "Close Terminal Buffer" })
|
||||
end,
|
||||
})
|
||||
|
||||
return {
|
||||
{
|
||||
"famiu/bufdelete.nvim",
|
||||
cmd = "Bdelete",
|
||||
keys = {
|
||||
{ "<A-x>", "<cmd>Bdelete<cr>", desc = "Close Buffer", mode = { "", "!", "v" } },
|
||||
{
|
||||
"<A-x>",
|
||||
function()
|
||||
require("bufdelete").bufdelete(0, true)
|
||||
end,
|
||||
desc = "Close Buffer",
|
||||
mode = { "t" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
@ -1,366 +0,0 @@
|
||||
---@diagnostic disable: missing-fields
|
||||
return {
|
||||
{
|
||||
"folke/lazydev.nvim",
|
||||
cmd = "LazyDev",
|
||||
ft = "lua",
|
||||
opts = {
|
||||
library = {
|
||||
{ path = "luassert-types/library", words = { "assert" } },
|
||||
{ path = "busted-types/library", words = { "describe" } },
|
||||
{ path = "luvit-meta/library", words = { "vim%.uv", "vim%.loop" } },
|
||||
},
|
||||
},
|
||||
dependencies = {
|
||||
{ "Bilal2453/luvit-meta", lazy = true },
|
||||
{ "LuaCATS/luassert", lazy = true },
|
||||
{ "LuaCATS/busted", lazy = true },
|
||||
},
|
||||
},
|
||||
{
|
||||
"iguanacucumber/magazine.nvim",
|
||||
name = "nvim-cmp", -- Otherwise highlighting gets messed up
|
||||
event = { "InsertEnter", "ModeChanged" },
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-cmdline",
|
||||
"hrsh7th/cmp-emoji",
|
||||
"amarakon/nvim-cmp-lua-latex-symbols",
|
||||
{
|
||||
"petertriho/cmp-git",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
opts = {},
|
||||
},
|
||||
"hrsh7th/cmp-nvim-lsp-signature-help",
|
||||
"hrsh7th/cmp-calc",
|
||||
"davidsierradz/cmp-conventionalcommits",
|
||||
{
|
||||
"tamago324/cmp-zsh",
|
||||
opts = {
|
||||
zshrc = true,
|
||||
filetypes = { "*" },
|
||||
},
|
||||
},
|
||||
"dmitmel/cmp-cmdline-history",
|
||||
"David-Kunz/cmp-npm",
|
||||
"lukas-reineke/cmp-rg",
|
||||
"onsails/lspkind.nvim",
|
||||
"FelipeLema/cmp-async-path",
|
||||
{
|
||||
"tzachar/cmp-fuzzy-buffer",
|
||||
dependencies = {
|
||||
"tzachar/fuzzy.nvim",
|
||||
},
|
||||
},
|
||||
-- Snippets
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
build = "make install_jsregexp",
|
||||
dependencies = {
|
||||
"rafamadriz/friendly-snippets",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local cmp = require("cmp")
|
||||
local str = require("cmp.utils.str")
|
||||
local compare = cmp.config.compare
|
||||
local luasnip = require("luasnip")
|
||||
|
||||
-- Load Snippets
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
require("luasnip.loaders.from_lua").load({
|
||||
paths = { vim.fn.stdpath("config") .. "/lua/plugins/snippets" },
|
||||
})
|
||||
|
||||
---@param sources table?
|
||||
local standard_sources = function(sources)
|
||||
sources = sources or {}
|
||||
local default_sources = {
|
||||
{ name = "async_path" },
|
||||
{ name = "lazydev", group_index = 0 },
|
||||
{ name = "nvim_lsp" },
|
||||
{ "nvim_lsp_signature_help" },
|
||||
{ name = "luasnip", max_item_count = 5 }, -- For luasnip users.
|
||||
{ name = "calc" },
|
||||
{ name = "emoji", keyword_length = 2, max_item_count = 10 },
|
||||
{
|
||||
name = "lua-latex-symbols",
|
||||
option = { cache = true },
|
||||
max_item_count = 5,
|
||||
trigger_characters = { "\\" },
|
||||
},
|
||||
{
|
||||
name = "fuzzy_buffer",
|
||||
max_item_count = 5,
|
||||
},
|
||||
{
|
||||
name = "rg",
|
||||
keyword_length = 3,
|
||||
max_item_count = 5,
|
||||
option = {
|
||||
"--smart-case",
|
||||
"--hidden",
|
||||
"--max-depth 4",
|
||||
},
|
||||
},
|
||||
{ name = "zsh", max_item_count = 5 },
|
||||
{ name = "npm", keyword_length = 2 },
|
||||
}
|
||||
|
||||
vim.tbl_map(function(source)
|
||||
table.insert(default_sources, 1, source)
|
||||
end, sources)
|
||||
return cmp.config.sources(default_sources)
|
||||
end
|
||||
cmp.setup({
|
||||
formatting = {
|
||||
fields = { cmp.ItemField.Kind, cmp.ItemField.Abbr, cmp.ItemField.Menu },
|
||||
---@param entry cmp.Entry
|
||||
---@param vim_item vim.CompletedItem
|
||||
format = function(entry, vim_item)
|
||||
local selections = {
|
||||
["vim-dadbod-completion"] = { symbol = " ", name = "DB", hl_group = "DadbodCompletion" },
|
||||
calc = { symbol = " ", name = "Calculator", hl_group = "Calculator" },
|
||||
orgmode = { symbol = " ", name = "Org", hl_group = "Orgmode" },
|
||||
emoji = { symbol = " ", name = "Emoji", hl_group = "Emoji" },
|
||||
zsh = { symbol = " ", name = "Zsh", hl_group = "Zsh" },
|
||||
["crates.nvim"] = { symbol = " ", name = "Crates", hl_group = "Crates" },
|
||||
cmdline_history = { symbol = " ", name = "Cmd History", hl_group = "CmdHistory" },
|
||||
rg = { symbol = " ", name = "Ripgrep", hl_group = "Ripgrep" },
|
||||
fuzzy_buffer = { symbol = " ", name = "Buffer", hl_group = "Buffer" },
|
||||
npm = { symbol = " ", name = "Npm", hl_group = "Npm" },
|
||||
conventionalcommits = { symbol = " ", name = "Commit", hl_group = "Commit" },
|
||||
git = { symbol = " ", name = "Git", hl_group = "Git" },
|
||||
docker_compose_language_service = { symbol = " ", name = "Docker", hl_group = "Docker" },
|
||||
luasnip = { symbol = " ", name = "Snippet" },
|
||||
["lua-latex-symbols"] = { symbol = " ", name = "Math", hl_group = "LuaLatexSymbol" },
|
||||
}
|
||||
|
||||
local extra_kind_icons = {
|
||||
TypeParameter = "",
|
||||
}
|
||||
|
||||
local selection
|
||||
local lsp_name
|
||||
-- vim.notify(vim.inspect(entry.source))
|
||||
if entry.source.name == "nvim_lsp" then
|
||||
lsp_name = entry.source.source.client.name
|
||||
selection = selections[lsp_name]
|
||||
else
|
||||
selection = selections[entry.source.name]
|
||||
end
|
||||
local completion_item = vim_item
|
||||
local abbr_max_width = 72
|
||||
if not selection then
|
||||
local kind = require("lspkind").cmp_format({
|
||||
mode = "symbol_text",
|
||||
maxwidth = abbr_max_width,
|
||||
})(entry, vim_item)
|
||||
|
||||
local strings = vim.split(kind.kind, "%s", { trimempty = true })
|
||||
if not strings[2] then
|
||||
strings[2] = strings[1]
|
||||
strings[1] = extra_kind_icons[strings[1]] or ""
|
||||
end
|
||||
kind.kind = " " .. strings[1] .. " "
|
||||
if not kind.menu and lsp_name then
|
||||
kind.menu = " " .. lsp_name
|
||||
end
|
||||
|
||||
completion_item = kind
|
||||
else
|
||||
completion_item.kind = " " .. selection.symbol
|
||||
completion_item.menu = selection.symbol .. selection.name
|
||||
if selection.hl_group then
|
||||
completion_item.kind_hl_group = "CmpCustomSelection" .. selection.hl_group
|
||||
end
|
||||
end
|
||||
|
||||
if not completion_item.abbr then
|
||||
local word = entry:get_insert_text()
|
||||
word = str.oneline(word)
|
||||
completion_item.abbr = word
|
||||
end
|
||||
|
||||
--- If the completion item looks like a file path and exists, go ahead and
|
||||
--- abbreviate it relative to the home directory
|
||||
if
|
||||
vim.fn.isdirectory(completion_item.abbr) == 1
|
||||
or vim.fn.filereadable(completion_item.abbr) == 1
|
||||
then
|
||||
completion_item.abbr = vim.fn.fnamemodify(completion_item.abbr, ":~")
|
||||
end
|
||||
|
||||
if string.len(completion_item.abbr) >= abbr_max_width then
|
||||
local before = string.sub(completion_item.abbr, 1, math.floor((abbr_max_width - 3) / 2))
|
||||
completion_item.abbr = before .. "..."
|
||||
end
|
||||
|
||||
-- concatenates the string
|
||||
return completion_item
|
||||
end,
|
||||
},
|
||||
performance = {
|
||||
debounce = 0,
|
||||
fetching_timeout = 100,
|
||||
},
|
||||
view = {
|
||||
entries = {
|
||||
name = "custom",
|
||||
follow_cursor = true,
|
||||
selection_order = "near_cursor",
|
||||
},
|
||||
},
|
||||
matching = {
|
||||
disallow_partial_fuzzy_matching = false,
|
||||
disallow_fullfuzzy_matching = false,
|
||||
disallow_partial_matching = false,
|
||||
disallow_fuzzy_matching = false,
|
||||
disallow_prefix_unmatching = false,
|
||||
},
|
||||
window = {
|
||||
documentation = {
|
||||
side_padding = 0,
|
||||
},
|
||||
completion = {
|
||||
winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None",
|
||||
col_offset = -3,
|
||||
side_padding = 0,
|
||||
},
|
||||
},
|
||||
experimental = { ghost_text = { hl_group = "CmpGhostText" } },
|
||||
snippet = {
|
||||
-- REQUIRED - you must specify a snippet engine
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body) -- For `luasnip` users.
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
["<C-k>"] = cmp.mapping(cmp.mapping.scroll_docs(-4), { "i", "c" }),
|
||||
["<C-j>"] = cmp.mapping(cmp.mapping.scroll_docs(4), { "i", "c" }),
|
||||
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
|
||||
["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
||||
["<C-e>"] = cmp.mapping({
|
||||
i = cmp.mapping.abort(),
|
||||
c = cmp.mapping.close(),
|
||||
}),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
["<C-Tab>"] = cmp.mapping(function(fallback)
|
||||
if luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<C-S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
sources = standard_sources(),
|
||||
sorting = {
|
||||
priority_weight = 2,
|
||||
comparators = {
|
||||
compare.locality,
|
||||
compare.recently_used,
|
||||
compare.score,
|
||||
require("cmp_fuzzy_buffer.compare"),
|
||||
compare.offset,
|
||||
compare.exact,
|
||||
-- Copied from cmp-under-comparator
|
||||
function(entry1, entry2)
|
||||
local _, entry1_under = entry1.completion_item.label:find("^_+")
|
||||
local _, entry2_under = entry2.completion_item.label:find("^_+")
|
||||
entry1_under = entry1_under or 0
|
||||
entry2_under = entry2_under or 0
|
||||
if entry1_under > entry2_under then
|
||||
return false
|
||||
elseif entry1_under < entry2_under then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Git Commit Completions
|
||||
cmp.setup.filetype("gitcommit", {
|
||||
sources = standard_sources({
|
||||
{ name = "git", priority = 20 },
|
||||
{ name = "conventionalcommits", priority = 19 },
|
||||
}),
|
||||
})
|
||||
|
||||
cmp.setup.filetype("octo", {
|
||||
sources = standard_sources({
|
||||
{ name = "git", priority = 20 },
|
||||
}),
|
||||
})
|
||||
|
||||
cmp.setup.filetype(
|
||||
"sql",
|
||||
{ sources = standard_sources({ { name = "vim-dadbod-completion", priority = 20 } }) }
|
||||
)
|
||||
cmp.setup.filetype(
|
||||
"mysql",
|
||||
{ sources = standard_sources({ { name = "vim-dadbod-completion", priority = 20 } }) }
|
||||
)
|
||||
cmp.setup.filetype(
|
||||
"plsql",
|
||||
{ sources = standard_sources({ { name = "vim-dadbod-completion", priority = 20 } }) }
|
||||
)
|
||||
cmp.setup.filetype("org", { sources = standard_sources({ { name = "orgmode", priority = 20 } }) })
|
||||
|
||||
-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline("/", {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({ { name = "fuzzy_buffer" } }),
|
||||
})
|
||||
|
||||
cmp.setup.cmdline("?", {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({ { name = "fuzzy_buffer" } }),
|
||||
})
|
||||
|
||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline(":", {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = "cmdline_history", max_item_count = 3 },
|
||||
{
|
||||
name = "cmdline",
|
||||
option = {
|
||||
ignore_cmds = {
|
||||
"!",
|
||||
},
|
||||
},
|
||||
priority = 100,
|
||||
},
|
||||
}),
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
13
users/price/dots/.config/nvim/lua/plugins/configs/direnv.lua
Normal file
13
users/price/dots/.config/nvim/lua/plugins/configs/direnv.lua
Normal file
@ -0,0 +1,13 @@
|
||||
return {
|
||||
{
|
||||
"actionshrimp/direnv.nvim",
|
||||
lazy = false,
|
||||
config = function()
|
||||
local direnv = require("direnv-nvim")
|
||||
-- TODO: Make this properly restart LSP clients as necessary
|
||||
direnv.setup({
|
||||
async = true,
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
return {
|
||||
{
|
||||
"MagicDuck/grug-far.nvim",
|
||||
cmd = { "GrugFar" },
|
||||
keys = {
|
||||
{ ",,", "<cmd>GrugFar<CR>", desc = "GrugFar: Open" },
|
||||
},
|
||||
config = function()
|
||||
require("grug-far").setup({})
|
||||
end,
|
||||
},
|
||||
}
|
@ -24,32 +24,8 @@ return {
|
||||
local headlines = require("headlines")
|
||||
headlines.setup({
|
||||
markdown = {
|
||||
bullets = bullets,
|
||||
bullet_highlights = bullet_highlights,
|
||||
fat_headline_lower_string = "▀",
|
||||
query = vim.treesitter.query.parse(
|
||||
"markdown",
|
||||
[[
|
||||
(atx_heading [
|
||||
(atx_h1_marker)
|
||||
(atx_h2_marker)
|
||||
(atx_h3_marker)
|
||||
(atx_h4_marker)
|
||||
(atx_h5_marker)
|
||||
(atx_h6_marker)
|
||||
] @headline)
|
||||
|
||||
(thematic_break) @dash
|
||||
|
||||
(fenced_code_block) @codeblock
|
||||
|
||||
(block_quote_marker) @quote
|
||||
(block_quote (paragraph (inline (block_continuation) @quote)))
|
||||
(block_quote (paragraph (block_continuation) @quote))
|
||||
(block_quote (list (list_item (paragraph (inline (block_continuation) @quote)))))
|
||||
(block_quote (block_continuation) @quote)
|
||||
]]
|
||||
),
|
||||
bullets = false,
|
||||
query = false,
|
||||
},
|
||||
rmd = {
|
||||
bullets = bullets,
|
||||
@ -72,6 +48,6 @@ return {
|
||||
callback = headlines.refresh,
|
||||
})
|
||||
end,
|
||||
ft = { "markdown", "norg", "rmd", "org" },
|
||||
ft = { "norg", "rmd", "org" },
|
||||
},
|
||||
}
|
||||
|
@ -208,7 +208,7 @@ return {
|
||||
else
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
filename = vim.fn.fnamemodify(self.filename, ":~:.")
|
||||
if not conditions.width_percent_below(#filename, 0.5, true) then
|
||||
if not conditions.width_percent_below(#filename, 0.3, true) then
|
||||
filename = vim.fn.pathshorten(filename)
|
||||
end
|
||||
end
|
||||
@ -458,6 +458,7 @@ return {
|
||||
},
|
||||
{
|
||||
condition = conditions.lsp_attached,
|
||||
update = { "LspAttach", "LspDetach" },
|
||||
{
|
||||
provider = function()
|
||||
local names = {}
|
||||
@ -715,8 +716,13 @@ return {
|
||||
if not headline then
|
||||
return
|
||||
end
|
||||
headline = headline:refresh()
|
||||
local logbook = headline:get_logbook()
|
||||
if not logbook then
|
||||
return
|
||||
end
|
||||
|
||||
local clocked_time = headline:get_logbook():get_total_with_active():to_string()
|
||||
local clocked_time = logbook:get_total_with_active():to_string()
|
||||
local effort = headline:get_property("effort")
|
||||
local time_elapsed = ""
|
||||
if effort then
|
||||
|
@ -1,19 +0,0 @@
|
||||
return {
|
||||
{
|
||||
"jellydn/hurl.nvim",
|
||||
dependencies = { "MunifTanjim/nui.nvim" },
|
||||
ft = "hurl",
|
||||
opts = {
|
||||
debug = false,
|
||||
mode = "split",
|
||||
formatters = {
|
||||
json = { "jq" },
|
||||
html = {
|
||||
"prettier",
|
||||
"--parser",
|
||||
"html",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
return {
|
||||
{
|
||||
"nvimtools/hydra.nvim",
|
||||
-- "nvimtools/hydra.nvim",
|
||||
-- TODO: Point this back to `nvimtools` once they decide to update to support nightly
|
||||
"Cathyprime/hydra.nvim",
|
||||
dependencies = {
|
||||
"lewis6991/gitsigns.nvim",
|
||||
"jbyuki/venn.nvim",
|
||||
|
@ -1,7 +1,6 @@
|
||||
return {
|
||||
{
|
||||
"HakonHarnes/img-clip.nvim",
|
||||
opts = {},
|
||||
cmd = {
|
||||
"PasteImage",
|
||||
"ImgClipDebug",
|
||||
@ -10,5 +9,10 @@ return {
|
||||
keys = {
|
||||
{ "<leader>p", "<cmd>PasteImage<cr>", desc = "Paste Image" },
|
||||
},
|
||||
config = function()
|
||||
require("img-clip").setup({
|
||||
relative_to_current_file = true,
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ return {
|
||||
},
|
||||
},
|
||||
indent = {
|
||||
repeat_linebreak = true,
|
||||
char = "▏",
|
||||
tab_char = "▏",
|
||||
smart_indent_cap = true,
|
||||
|
@ -46,8 +46,8 @@ return {
|
||||
|
||||
-- Built-ins
|
||||
{ "StatusLineNC", { bg = nil } },
|
||||
{ "menuSel", { bg = colors.sumiInk0, fg = "NONE" } },
|
||||
{ "Pmenu", { fg = colors.fujiWhite, bg = colors.sumiInk2 } },
|
||||
{ "PmenuSel", get_hl("PmenuSel", { blend = 25 }) },
|
||||
{ "WinBarNC", { bg = nil } },
|
||||
{ "Visual", { bg = colors.sumiInk5 } },
|
||||
{ "CursorLine", { bg = colors.sumiInk4 } },
|
||||
@ -108,64 +108,64 @@ return {
|
||||
{ "NeogitNotificationError", { fg = colors.samuraiRed, bold = true } },
|
||||
|
||||
-- Cmp
|
||||
{ "CmpGhostText", { fg = colors.boatYellow1, italic = true } },
|
||||
{ "CmpItemAbbrDeprecated", { fg = colors.fujiGray, bg = "NONE" } },
|
||||
{ "CmpItemAbbrMatch", { fg = colors.crystalBlue, bg = "NONE" } },
|
||||
{ "CmpItemAbbrMatchFuzzy", { fg = colors.crystalBlue, bg = "NONE" } },
|
||||
{ "CmpItemMenu", { fg = colors.roninYellow, bg = "NONE" } },
|
||||
{ "CmpItemKindField", { fg = colors.fujiWhite, bg = colors.sakuraPink } },
|
||||
{ "CmpItemKindProperty", { fg = colors.fujiWhite, bg = colors.sakuraPink } },
|
||||
{ "CmpItemKindEvent", { fg = colors.fujiWhite, bg = colors.sakuraPink } },
|
||||
{ "CmpItemKindText", { fg = colors.fujiWhite, bg = colors.dragonBlue } },
|
||||
{ "CmpItemKindEnum", { fg = colors.fujiWhite, bg = colors.crystalBlue } },
|
||||
{ "CmpItemKindKeyword", { fg = colors.fujiWhite, bg = colors.springBlue } },
|
||||
{ "CmpItemKindConstant", { fg = colors.fujiWhite, bg = colors.crystalBlue } },
|
||||
{ "CmpItemKindConstructor", { fg = colors.fujiWhite, bg = colors.crystalBlue } },
|
||||
{ "CmpItemKindReference", { fg = colors.fujiWhite, bg = colors.crystalBlue } },
|
||||
{ "CmpItemKindFunction", { fg = colors.fujiWhite, bg = colors.oniViolet } },
|
||||
{ "CmpItemKindStruct", { fg = colors.fujiWhite, bg = colors.oniViolet } },
|
||||
{ "CmpItemKindClass", { fg = colors.fujiWhite, bg = colors.oniViolet } },
|
||||
{ "CmpItemKindModule", { fg = colors.fujiWhite, bg = colors.oniViolet } },
|
||||
{ "CmpItemKindOperator", { fg = colors.fujiWhite, bg = colors.oniViolet } },
|
||||
{ "CmpItemKindVariable", { fg = colors.fujiWhite, bg = colors.roninYellow } },
|
||||
{ "CmpItemKindFile", { fg = colors.fujiWhite, bg = colors.autumnYellow } },
|
||||
{ "CmpItemKindUnit", { fg = colors.fujiWhite, bg = colors.autumnYellow } },
|
||||
{ "CmpItemKindSnippet", { fg = colors.fujiWhite, bg = colors.autumnYellow } },
|
||||
{ "CmpItemKindFolder", { fg = colors.fujiWhite, bg = colors.autumnYellow } },
|
||||
{ "CmpItemKindMethod", { fg = colors.fujiWhite, bg = colors.autumnGreen } },
|
||||
{ "CmpItemKindValue", { fg = colors.fujiWhite, bg = colors.autumnGreen } },
|
||||
{ "CmpItemKindEnumMember", { fg = colors.fujiWhite, bg = colors.autumnGreen } },
|
||||
{ "CmpItemKindInterface", { fg = colors.fujiWhite, bg = colors.waveRed } },
|
||||
{ "CmpItemKindColor", { fg = colors.fujiWhite, bg = colors.waveAqua2 } },
|
||||
{ "CmpItemKindTypeParameter", { fg = colors.fujiWhite, bg = colors.waveAqua2 } },
|
||||
{ "CmpCustomSelectionColor", { bg = colors.sumiInk5 } },
|
||||
{ "CmpCustomSelectionDadbodCompletion", { fg = colors.fujiWhite, bg = colors.oniViolet } },
|
||||
{ "CmpCustomSelectionGit", { fg = colors.fujiWhite, bg = colors.roninYellow } },
|
||||
{ "CmpCustomSelectionBuffer", { fg = colors.fujiWhite, bg = colors.springBlue } },
|
||||
{ "CmpCustomSelectionPath", { fg = colors.fujiWhite, bg = colors.autumnYellow } },
|
||||
{ "CmpCustomSelectionCalculator", { fg = colors.fujiWhite, bg = colors.waveBlue2 } },
|
||||
{ "CmpCustomSelectionOrgmode", { fg = colors.fujiWhite, bg = colors.waveAqua1 } },
|
||||
{ "CmpCustomSelectionEmoji", { fg = colors.fujiWhite, bg = colors.carpYellow } },
|
||||
{ "CmpCustomSelectionZsh", { fg = colors.fujiWhite, bg = colors.springGreen } },
|
||||
{ "CmpCustomSelectionCrates", { fg = colors.fujiWhite, bg = colors.roninYellow } },
|
||||
{ "CmpCustomSelectionDocker", { fg = colors.fujiWhite, bg = colors.springBlue } },
|
||||
{ "CmpCustomSelectionCmdHistory", { fg = colors.fujiWhite, bg = colors.waveBlue2 } },
|
||||
{ "CmpCustomSelectionRipgrep", { fg = colors.fujiWhite, bg = colors.crystalBlue } },
|
||||
{ "CmpCustomSelectionNpm", { fg = colors.fujiWhite, bg = colors.peachRed } },
|
||||
{ "CmpCustomSelectionCommit", { fg = colors.fujiWhite, bg = colors.peachRed } },
|
||||
{ "CmpCustomSelectionSnippet", { fg = colors.fujiWhite, bg = colors.peachRed } },
|
||||
{ "CmpCustomSelectionLuaLatexSymbol", { fg = colors.fujiWhite, bg = colors.surimiOrange } },
|
||||
{ "BlinkCmpAbbrDeprecated", { fg = colors.fujiGray, bg = "NONE" } },
|
||||
{ "BlinkCmpAbbrMatch", { fg = colors.crystalBlue, bg = "NONE" } },
|
||||
{ "BlinkCmpAbbrMatchFuzzy", { fg = colors.crystalBlue, bg = "NONE" } },
|
||||
{ "BlinkCmpMenu", { fg = colors.roninYellow, bg = "NONE" } },
|
||||
{ "BlinkCmpKindField", { fg = colors.fujiWhite, bg = colors.sakuraPink, blend = 0 } },
|
||||
{ "BlinkCmpKindProperty", { fg = colors.fujiWhite, bg = colors.sakuraPink, blend = 0 } },
|
||||
{ "BlinkCmpKindEvent", { fg = colors.fujiWhite, bg = colors.sakuraPink, blend = 0 } },
|
||||
{ "BlinkCmpKindText", { fg = colors.fujiWhite, bg = colors.dragonBlue, blend = 0 } },
|
||||
{ "BlinkCmpKindEnum", { fg = colors.fujiWhite, bg = colors.crystalBlue, blend = 0 } },
|
||||
{ "BlinkCmpKindKeyword", { fg = colors.fujiWhite, bg = colors.surimiOrange, blend = 0 } },
|
||||
{ "BlinkCmpKindConstant", { fg = colors.fujiWhite, bg = colors.crystalBlue, blend = 0 } },
|
||||
{ "BlinkCmpKindConstructor", { fg = colors.fujiWhite, bg = colors.crystalBlue, blend = 0 } },
|
||||
{ "BlinkCmpKindReference", { fg = colors.fujiWhite, bg = colors.crystalBlue, blend = 0 } },
|
||||
{ "BlinkCmpKindFunction", { fg = colors.fujiWhite, bg = colors.oniViolet, blend = 0 } },
|
||||
{ "BlinkCmpKindStruct", { fg = colors.fujiWhite, bg = colors.oniViolet, blend = 0 } },
|
||||
{ "BlinkCmpKindClass", { fg = colors.fujiWhite, bg = colors.oniViolet, blend = 0 } },
|
||||
{ "BlinkCmpKindModule", { fg = colors.fujiWhite, bg = colors.oniViolet, blend = 0 } },
|
||||
{ "BlinkCmpKindOperator", { fg = colors.fujiWhite, bg = colors.oniViolet, blend = 0 } },
|
||||
{ "BlinkCmpKindVariable", { fg = colors.fujiWhite, bg = colors.peachRed, blend = 0 } },
|
||||
{ "BlinkCmpKindFile", { fg = colors.fujiWhite, bg = colors.autumnYellow, blend = 0 } },
|
||||
{ "BlinkCmpKindUnit", { fg = colors.fujiWhite, bg = colors.autumnYellow, blend = 0 } },
|
||||
{ "BlinkCmpKindSnippet", { fg = colors.fujiWhite, bg = colors.autumnYellow, blend = 0 } },
|
||||
{ "BlinkCmpKindFolder", { fg = colors.fujiWhite, bg = colors.autumnYellow, blend = 0 } },
|
||||
{ "BlinkCmpKindMethod", { fg = colors.fujiWhite, bg = colors.autumnGreen, blend = 0 } },
|
||||
{ "BlinkCmpKindValue", { fg = colors.fujiWhite, bg = colors.autumnGreen, blend = 0 } },
|
||||
{ "BlinkCmpKindEnumMember", { fg = colors.fujiWhite, bg = colors.autumnGreen, blend = 0 } },
|
||||
{ "BlinkCmpKindInterface", { fg = colors.fujiWhite, bg = colors.waveRed, blend = 0 } },
|
||||
{ "BlinkCmpKindColor", { fg = colors.fujiWhite, bg = colors.waveAqua2, blend = 0 } },
|
||||
{ "BlinkCmpKindTypeParameter", { fg = colors.fujiWhite, bg = colors.waveAqua2, blend = 0 } },
|
||||
{ "BlinkCmpKindCustomEmoji", { fg = colors.fujiWhite, bg = colors.boatYellow2, blend = 0 } },
|
||||
{ "BlinkCmpKindCustomRipgrep", { fg = colors.fujiWhite, bg = colors.crystalBlue, blend = 0 } },
|
||||
{ "BlinkCmpKindCustomDadbod", { fg = colors.fujiWhite, bg = colors.oniViolet, blend = 0 } },
|
||||
{ "BlinkCmpKindCustomLatexSymbol", { fg = colors.fujiWhite, bg = colors.surimiOrange, blend = 0 } },
|
||||
{ "BlinkCmpKindCustomCommandLine", { fg = colors.fujiWhite, bg = colors.springViolet1, blend = 0 } },
|
||||
{ "BlinkCmpKindCustomOrgmode", { fg = colors.fujiWhite, bg = colors.waveAqua1, blend = 0 } },
|
||||
{ "BlinkCmpKindCustomBuffer", { fg = colors.fujiWhite, bg = colors.springBlue, blend = 0 } },
|
||||
{ "CmpCustomSelectionColor", { bg = colors.sumiInk5, blend = 0 } },
|
||||
{ "CmpCustomSelectionGit", { fg = colors.fujiWhite, bg = colors.roninYellow, blend = 0 } },
|
||||
{ "CmpCustomSelectionPath", { fg = colors.fujiWhite, bg = colors.autumnYellow, blend = 0 } },
|
||||
{ "CmpCustomSelectionCalculator", { fg = colors.fujiWhite, bg = colors.waveBlue2, blend = 0 } },
|
||||
{ "CmpCustomSelectionCrates", { fg = colors.fujiWhite, bg = colors.roninYellow, blend = 0 } },
|
||||
{ "CmpCustomSelectionDocker", { fg = colors.fujiWhite, bg = colors.springBlue, blend = 0 } },
|
||||
{ "CmpCustomSelectionCmdHistory", { fg = colors.fujiWhite, bg = colors.waveBlue2, blend = 0 } },
|
||||
{ "CmpCustomSelectionNpm", { fg = colors.fujiWhite, bg = colors.peachRed, blend = 0 } },
|
||||
{ "CmpCustomSelectionCommit", { fg = colors.fujiWhite, bg = colors.peachRed, blend = 0 } },
|
||||
{ "CmpCustomSelectionSnippet", { fg = colors.fujiWhite, bg = colors.peachRed, blend = 0 } },
|
||||
|
||||
-- Telescope
|
||||
{ "TelescopeNormal", { bg = colors.sumiInk2 } },
|
||||
{ "TelescopeBorder", { bg = colors.sumiInk2, fg = colors.sumiInk1 } },
|
||||
{ "TelescopeSelection", { bg = colors.sumiInk4, blend = 0 } },
|
||||
{ "TelescopePromptBorder", { bg = colors.sumiInk0, fg = colors.sumiInk0 } },
|
||||
{ "TelescopePromptNormal", { bg = colors.sumiInk0, fg = colors.fujiWhite } },
|
||||
{ "TelescopePromptTitle", { fg = colors.sumiInk0, bg = colors.oniViolet } },
|
||||
{ "TelescopePreviewTitle", { fg = colors.sumiInk0, bg = colors.sakuraPink } },
|
||||
{ "TelescopePromptTitle", { fg = colors.sumiInk0, bg = colors.oniViolet, blend = 0 } },
|
||||
{ "TelescopePreviewTitle", { fg = colors.sumiInk0, bg = colors.sakuraPink, blend = 0 } },
|
||||
{ "TelescopePreviewNormal", { bg = colors.sumiInk4 } },
|
||||
{ "TelescopePreviewBorder", { link = "TelescopePreviewNormal" } },
|
||||
{ "TelescopeResultsTitle", { fg = "NONE", bg = "NONE" } },
|
||||
{ "TelescopeResultsTitle", { fg = "NONE", bg = "NONE", blend = 0 } },
|
||||
|
||||
{ "IlluminatedWordText", { bg = colors.waveBlue2 } },
|
||||
{ "IlluminatedWordRead", { bg = colors.waveBlue2 } },
|
||||
@ -364,7 +364,7 @@ return {
|
||||
{ "@markup.heading.6.marker", { link = "@markup.heading.6" } },
|
||||
{ "@markup.heading.7.marker", { link = "@markup.heading.7" } },
|
||||
{ "@markup.heading.8.marker", { link = "@markup.heading.8" } },
|
||||
{ "@markup.quote", { fg = colors.oldWhite }},
|
||||
{ "@markup.quote", { fg = colors.oldWhite } },
|
||||
|
||||
-- For Visual Whitespace plugin
|
||||
{ "visual-whitespace", get_hl("Visual", { fg = colors.fujiGray }) },
|
||||
|
@ -11,16 +11,25 @@ return {
|
||||
commands = {
|
||||
GG = { cmd = "g" },
|
||||
Norm = { cmd = "norm" },
|
||||
Reg = {
|
||||
cmd = "norm",
|
||||
-- This will transform ":5Reg a" into ":norm 5@a"
|
||||
args = function(opts)
|
||||
return (opts.count == -1 and "" or opts.count) .. "@" .. opts.args
|
||||
end,
|
||||
range = "",
|
||||
},
|
||||
},
|
||||
})
|
||||
-- Transforms ":5Reg a" into ":norm 5@a"
|
||||
local function get_command_string(cmd)
|
||||
local get_range_string = require("live-command").get_range_string
|
||||
local args = (cmd.count == -1 and "" or cmd.count) .. "@" .. cmd.args
|
||||
return get_range_string(cmd) .. "norm " .. args
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("Reg", function(cmd)
|
||||
vim.cmd(get_command_string(cmd))
|
||||
end, {
|
||||
nargs = "?",
|
||||
range = true,
|
||||
preview = function(cmd, preview_ns, preview_buf)
|
||||
local cmd_to_preview = get_command_string(cmd)
|
||||
return require("live-command").preview_callback(cmd_to_preview, preview_ns, preview_buf)
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
@ -93,47 +93,7 @@ return {
|
||||
},
|
||||
{
|
||||
"mrcjkb/rustaceanvim",
|
||||
ft = { "rust" },
|
||||
init = function()
|
||||
vim.g.rustaceanvim = {
|
||||
dap = {
|
||||
adapter = {
|
||||
type = "server",
|
||||
port = "${port}",
|
||||
executable = {
|
||||
command = "codelldb",
|
||||
args = { "--port", "${port}" },
|
||||
},
|
||||
},
|
||||
},
|
||||
server = {
|
||||
default_settings = {
|
||||
["rust-analyzer"] = {
|
||||
cargo = {
|
||||
allFeatures = true,
|
||||
loadOutDirsFromCheck = true,
|
||||
runBuildScripts = true,
|
||||
},
|
||||
checkOnSave = {
|
||||
allFeatures = true,
|
||||
allTargets = true,
|
||||
command = "clippy",
|
||||
},
|
||||
procMacro = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
tools = {
|
||||
enable_clippy = true,
|
||||
executor = require("rustaceanvim.executors").termopen,
|
||||
hover_actions = {
|
||||
replace_builtin_hover = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
lazy = false,
|
||||
config = false,
|
||||
},
|
||||
{
|
||||
@ -161,6 +121,7 @@ return {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"actionshrimp/direnv.nvim", -- This ensures that direnv is loaded first
|
||||
"williamboman/mason.nvim",
|
||||
"Decodetalkers/csharpls-extended-lsp.nvim",
|
||||
{
|
||||
@ -232,8 +193,6 @@ return {
|
||||
end,
|
||||
desc = "LSP: Toggle Diagnostics in Current Buffer",
|
||||
},
|
||||
{ "<leader>k", vim.lsp.buf.hover, desc = "LSP: Hover" },
|
||||
{ "<leader>K", vim.lsp.buf.signature_help, desc = "LSP: Sig Help" },
|
||||
{ "<leader>lR", ":LspRestart<CR>", desc = "LSP: Restart" },
|
||||
{
|
||||
"<leader>ls",
|
||||
@ -279,8 +238,7 @@ return {
|
||||
},
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
config = function()
|
||||
local lsp_capabilities =
|
||||
require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
local lsp_capabilities = require("blink.cmp").get_lsp_capabilities()
|
||||
local db_timer = vim.uv.new_timer()
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(args)
|
||||
@ -302,7 +260,10 @@ return {
|
||||
end
|
||||
local messages = {}
|
||||
for _, cur_client in ipairs(cur_clients) do
|
||||
table.insert(messages, "- `" .. cur_client.name .. "`")
|
||||
local client_name = vim.trim(cur_client.name)
|
||||
if client_name ~= "" then
|
||||
table.insert(messages, "- `" .. cur_client.name .. "`")
|
||||
end
|
||||
end
|
||||
|
||||
vim.notify(table.concat(messages, "\n"), vim.log.levels.INFO, {
|
||||
@ -522,9 +483,10 @@ return {
|
||||
},
|
||||
})
|
||||
|
||||
lspconfig.typst_lsp.setup({
|
||||
lspconfig.tinymist.setup({
|
||||
settings = {
|
||||
exportPdf = "onType",
|
||||
formatterMode = "typstyle",
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -1,10 +1,39 @@
|
||||
return {
|
||||
{
|
||||
"iamcco/markdown-preview.nvim",
|
||||
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||
ft = { "markdown" },
|
||||
build = function()
|
||||
vim.fn["mkdp#util#install"]()
|
||||
"wallpants/github-preview.nvim",
|
||||
ft = "markdown",
|
||||
cmd = {
|
||||
"GithubPreviewToggle",
|
||||
"GithubPreviewStart",
|
||||
"GithubPreviewStop",
|
||||
},
|
||||
config = function()
|
||||
local gpreview = require("github-preview")
|
||||
gpreview.setup({
|
||||
-- theme = {
|
||||
-- "dark"
|
||||
-- }
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"OXY2DEV/markview.nvim",
|
||||
ft = "markdown",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
config = function()
|
||||
require("markview").setup({
|
||||
hybrid_modes = { "n" },
|
||||
checkboxes = {
|
||||
enable = false,
|
||||
},
|
||||
list_items = {
|
||||
enable = false,
|
||||
},
|
||||
})
|
||||
vim.cmd("Markview hybridDisable")
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ return {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"MunifTanjim/nui.nvim",
|
||||
"miversen33/netman.nvim",
|
||||
"folke/snacks.nvim",
|
||||
},
|
||||
cmd = "Neotree",
|
||||
keys = {
|
||||
@ -27,8 +28,8 @@ return {
|
||||
end,
|
||||
})
|
||||
end,
|
||||
opts = function()
|
||||
return {
|
||||
config = function()
|
||||
require("neo-tree").setup({
|
||||
sources = {
|
||||
"filesystem",
|
||||
"git_status",
|
||||
@ -71,7 +72,19 @@ return {
|
||||
["F"] = "fuzzy_finder",
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
end,
|
||||
opts = function(_, opts)
|
||||
local snacks = require("snacks")
|
||||
local function on_move(data)
|
||||
snacks.rename.on_rename_file(data.source, data.destination)
|
||||
end
|
||||
local events = require("neo-tree.events")
|
||||
opts.event_handlers = opts.event_handlers or {}
|
||||
vim.list_extend(opts.event_handlers, {
|
||||
{ event = events.FILE_MOVED, handler = on_move },
|
||||
{ event = events.FILE_RENAMED, handler = on_move },
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ return {
|
||||
"AckslD/nvim-neoclip.lua",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
{ "tami5/sqlite.lua" },
|
||||
{ "kkharji/sqlite.lua", module = "sqlite" },
|
||||
{ "nvim-telescope/telescope.nvim" },
|
||||
},
|
||||
opts = {
|
||||
|
@ -10,26 +10,44 @@ return {
|
||||
"nvim-neotest/neotest-plenary",
|
||||
},
|
||||
keys = {
|
||||
{ "<localleader>n", desc = "> Neotest" },
|
||||
{ "<localleader>nr", "<cmd>Neotest run<CR>", desc = "Neotest: Run Test" },
|
||||
{ "<localleader>nf", "<cmd>Neotest run file<CR>", desc = "Neotest: Run Test(s) in File" },
|
||||
{ "<localleader>nl", "<cmd>Neotest run last<CR>", desc = "Neotest: Run Last Test(s)" },
|
||||
{ "<localleader>np", "<cmd>Neotest output-panel<CR>", desc = "Neotest: Output Panel" },
|
||||
{ "<localleader>no", "<cmd>Neotest output<CR>", desc = "Neotest: Output" },
|
||||
{ "<localleader>nn", "<cmd>Neotest summary toggle<CR>", desc = "Neotest: Summary Toggle" },
|
||||
{ "<localleader>nk", "<cmd>Neotest jump prev<CR>", desc = "Neotest: Jump Prev" },
|
||||
{ "<localleader>nj", "<cmd>Neotest jump next<CR>", desc = "Neotest: Jump Next" },
|
||||
{ "<localleader>na", "<cmd>Neotest attach<CR>", desc = "Neotest: Attach" },
|
||||
{ "<leader>k", desc = "> Neotest" },
|
||||
{ "<leader>kr", "<cmd>Neotest run<CR>", desc = "Neotest: Run Test" },
|
||||
{ "<leader>kf", "<cmd>Neotest run file<CR>", desc = "Neotest: Run Test(s) in File" },
|
||||
{ "<leader>kl", "<cmd>Neotest run last<CR>", desc = "Neotest: Run Last Test(s)" },
|
||||
{ "<leader>kp", "<cmd>Neotest output-panel<CR>", desc = "Neotest: Output Panel" },
|
||||
{
|
||||
"<leader>ko",
|
||||
function()
|
||||
local neotest = require("neotest")
|
||||
neotest.output.open({ enter = true })
|
||||
end,
|
||||
desc = "Neotest: Output",
|
||||
},
|
||||
{ "<leader>kk", "<cmd>Neotest summary toggle<CR>", desc = "Neotest: Summary Toggle" },
|
||||
{ "<leader>kn", "<cmd>Neotest jump prev<CR>", desc = "Neotest: Jump Prev" },
|
||||
{ "<leader>kN", "<cmd>Neotest jump next<CR>", desc = "Neotest: Jump Next" },
|
||||
{ "<leader>ka", "<cmd>Neotest attach<CR>", desc = "Neotest: Attach" },
|
||||
},
|
||||
opts = function()
|
||||
return {
|
||||
config = function()
|
||||
vim.api.nvim_create_autocmd("BufWinEnter", {
|
||||
pattern = "*Neotest Summary*",
|
||||
callback = function(args)
|
||||
local buf = args.buf
|
||||
for _, winnr in ipairs(vim.fn.win_findbuf(buf)) do
|
||||
local wo = vim.wo[winnr]
|
||||
wo.wrap = false
|
||||
wo.statuscolumn = ""
|
||||
wo.foldcolumn = "0"
|
||||
wo.number = false
|
||||
wo.signcolumn = "no"
|
||||
end
|
||||
end,
|
||||
})
|
||||
require("neotest").setup({
|
||||
diagnostic = {
|
||||
enable = true,
|
||||
severity = 1,
|
||||
},
|
||||
discovery = {
|
||||
concurrent = 4,
|
||||
},
|
||||
status = {
|
||||
virtual_text = true,
|
||||
},
|
||||
@ -38,7 +56,7 @@ return {
|
||||
require("neotest-go"),
|
||||
require("rustaceanvim.neotest"),
|
||||
},
|
||||
}
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
@ -63,96 +63,5 @@ return {
|
||||
|
||||
vim.opt.cmdheight = 0
|
||||
end,
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
{
|
||||
"rcarriga/nvim-notify",
|
||||
keys = {
|
||||
{
|
||||
"<leader>nd",
|
||||
function()
|
||||
vim.cmd.noh()
|
||||
require("notify").dismiss({
|
||||
pending = true,
|
||||
silent = true,
|
||||
})
|
||||
end,
|
||||
desc = "Notifications: Dismiss",
|
||||
},
|
||||
{
|
||||
"<leader>nv",
|
||||
function()
|
||||
if not vim.g.nvim_notify_telescope_loaded then
|
||||
require("telescope").load_extension("notify")
|
||||
vim.g.nvim_notify_telescope_loaded = true
|
||||
end
|
||||
require("telescope").extensions.notify.notify()
|
||||
end,
|
||||
desc = "Notifications: Search",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local base = require("notify.render.base")
|
||||
|
||||
local opts = {
|
||||
stages = "slide",
|
||||
fps = 60,
|
||||
render = function(bufnr, notif, highlights, _)
|
||||
local left_icon = notif.icon .. " "
|
||||
local max_message_width = math.max(math.max(unpack(vim.tbl_map(function(line)
|
||||
return vim.fn.strchars(line)
|
||||
end, notif.message))))
|
||||
local right_title = notif.title[2]
|
||||
local left_title = notif.title[1]
|
||||
local title_accum = vim.str_utfindex(left_icon)
|
||||
+ vim.str_utfindex(right_title)
|
||||
+ vim.str_utfindex(left_title)
|
||||
|
||||
local left_buffer = string.rep(" ", math.max(0, max_message_width - title_accum))
|
||||
|
||||
local namespace = base.namespace()
|
||||
vim.api.nvim_buf_set_lines(bufnr, 0, 1, false, { "", "" })
|
||||
vim.api.nvim_buf_set_extmark(bufnr, namespace, 0, 0, {
|
||||
virt_text = {
|
||||
{ left_icon, highlights.icon },
|
||||
{ left_title .. left_buffer, highlights.title },
|
||||
},
|
||||
virt_text_win_col = 0,
|
||||
priority = 10,
|
||||
})
|
||||
vim.api.nvim_buf_set_extmark(bufnr, namespace, 0, 0, {
|
||||
virt_text = { { right_title, highlights.title } },
|
||||
virt_text_pos = "right_align",
|
||||
priority = 10,
|
||||
})
|
||||
vim.api.nvim_buf_set_lines(bufnr, 1, -1, false, notif.message)
|
||||
|
||||
vim.api.nvim_buf_set_extmark(bufnr, namespace, 1, 0, {
|
||||
hl_group = highlights.body,
|
||||
end_line = #notif.message,
|
||||
end_col = #notif.message[#notif.message],
|
||||
priority = 50, -- Allow treesitter to override
|
||||
})
|
||||
end,
|
||||
|
||||
timeout = 5000,
|
||||
-- For stages that change opacity this is treated as the highlight behind the window
|
||||
-- Set this to either a highlight group, an RGB hex value e.g. "#000000" or a function returning an RGB code for dynamic values
|
||||
background_colour = "#000000",
|
||||
-- Minimum width for notification windows
|
||||
minimum_width = 50,
|
||||
-- Icons for the different levels
|
||||
icons = {
|
||||
ERROR = "",
|
||||
WARN = "",
|
||||
INFO = "",
|
||||
DEBUG = "",
|
||||
TRACE = "✎",
|
||||
},
|
||||
}
|
||||
require("notify").setup(opts)
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -18,8 +18,8 @@ return {
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>r", desc = "Overseer" },
|
||||
{ "<leader>rr", "<cmd>OverseerRun<CR>", desc = "Overseer: Run" },
|
||||
{ "<leader>rt", "<cmd>OverseerToggle<CR>", desc = "Overseer: Toggle" },
|
||||
{ "<leader>rs", "<cmd>OverseerRun<CR>", desc = "Overseer: Run" },
|
||||
{ "<leader>rr", "<cmd>OverseerToggle<CR>", desc = "Overseer: Toggle" },
|
||||
},
|
||||
config = function()
|
||||
local overseer = require("overseer")
|
||||
|
120
users/price/dots/.config/nvim/lua/plugins/configs/snacks.lua
Normal file
120
users/price/dots/.config/nvim/lua/plugins/configs/snacks.lua
Normal file
@ -0,0 +1,120 @@
|
||||
--- Fancy wrapper for deleting the current buffer based on the window type, tab statuses, etc.
|
||||
---
|
||||
--- Kinda cursed... definitely better ways of doing this, but by god its my trash! Mfers ask "You
|
||||
--- really live like this?" and the answer is YES! Yes I do.
|
||||
---@param opts number|snacks.bufdelete.Opts?
|
||||
local bwdelete = function(opts)
|
||||
opts = opts or {}
|
||||
opts.buf = opts.buf or vim.api.nvim_get_current_buf()
|
||||
|
||||
local nuke = false
|
||||
|
||||
if vim.fn.win_gettype() ~= "" and not vim.bo[opts.buf].modified then
|
||||
opts.force = true
|
||||
nuke = true
|
||||
end
|
||||
|
||||
if
|
||||
nuke
|
||||
or (
|
||||
#vim.api.nvim_list_tabpages() > 1
|
||||
and #vim.api.nvim_tabpage_list_wins(vim.api.nvim_get_current_tabpage()) == 1
|
||||
)
|
||||
then
|
||||
local cmd = opts.wipe and vim.cmd.bwipeout or vim.cmd.bdelete
|
||||
cmd({ args = { opts.buf }, bang = opts.force })
|
||||
else
|
||||
require("snacks").bufdelete.delete(opts)
|
||||
end
|
||||
end
|
||||
|
||||
--- Set a mapping to quickly close the current buffer
|
||||
---@param bufnr integer A buffer id
|
||||
local map_quick_close = function(bufnr)
|
||||
vim.iter({
|
||||
"q/",
|
||||
"q?",
|
||||
"q:",
|
||||
}):each(function(lhs)
|
||||
pcall(vim.keymap.del, "n", lhs)
|
||||
end)
|
||||
vim.keymap.set("n", "q", function()
|
||||
vim.cmd.bdelete({ args = { bufnr }, bang = true })
|
||||
end, { silent = true, buffer = bufnr, desc = "Quick Close Buffer" })
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "TermOpen" }, {
|
||||
callback = function(args)
|
||||
if args.event == "TermOpen" then
|
||||
map_quick_close(args.buf)
|
||||
return
|
||||
end
|
||||
local bo = vim.bo[args.buf]
|
||||
if vim.list_contains({ "nofile", "terminal", "nowrite", "help" }, bo.buftype) then
|
||||
map_quick_close(args.buf)
|
||||
return
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
return {
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
keys = {
|
||||
{
|
||||
"<A-x>",
|
||||
bwdelete,
|
||||
desc = "Close Buffer",
|
||||
mode = { "", "!", "v" },
|
||||
},
|
||||
|
||||
{
|
||||
"<A-x>",
|
||||
function()
|
||||
bwdelete({ force = true })
|
||||
end,
|
||||
desc = "Close Buffer",
|
||||
mode = { "t" },
|
||||
},
|
||||
{
|
||||
"<leader>nd",
|
||||
function()
|
||||
require("snacks").notifier.hide()
|
||||
end,
|
||||
desc = "Notifications: Dismiss",
|
||||
},
|
||||
{
|
||||
"<leader>nv",
|
||||
function()
|
||||
require("snacks").notifier.show_history({
|
||||
sort = { "added" },
|
||||
})
|
||||
end,
|
||||
desc = "Notifications: Search",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local snacks = require("snacks")
|
||||
snacks.setup({
|
||||
bigfile = { enabled = true },
|
||||
debug = { enabled = true },
|
||||
notifier = {
|
||||
enabled = true,
|
||||
style = "compact",
|
||||
margin = { top = 1 },
|
||||
},
|
||||
words = { enabled = true },
|
||||
statuscolumn = { enabled = false },
|
||||
})
|
||||
snacks.config.styles["notification.history"] = {
|
||||
title = { { "Notification History", "@markup.heading.4" } },
|
||||
border = { { " ", "INVALIDHIGHLIGHTHERE" } },
|
||||
}
|
||||
_G.bt = snacks.debug.backtrace
|
||||
_G.dd = snacks.debug.inspect
|
||||
vim.print = snacks.debug.inspect
|
||||
end,
|
||||
},
|
||||
}
|
@ -9,7 +9,7 @@ return {
|
||||
|
||||
-- hl-groups can have any name
|
||||
vim.api.nvim_set_hl(0, "SymbolUsageRounding", { fg = h("CursorLine").bg })
|
||||
vim.api.nvim_set_hl(0, "SymbolUsageContent", { bg = h("CursorLine").bg, fg = h("Comment").fg })
|
||||
vim.api.nvim_set_hl(0, "SymbolUsageContent", { bg = h("CursorLine").bg, fg = h("Delimiter").fg })
|
||||
vim.api.nvim_set_hl(0, "SymbolUsageRef", { fg = h("Function").fg, bg = h("CursorLine").bg })
|
||||
vim.api.nvim_set_hl(0, "SymbolUsageDef", { fg = h("Type").fg, bg = h("CursorLine").bg })
|
||||
vim.api.nvim_set_hl(0, "SymbolUsageImpl", { fg = h("@keyword").fg, bg = h("CursorLine").bg })
|
||||
|
@ -39,7 +39,7 @@ return {
|
||||
{ "<leader>j", ":Telescope buffers<CR>", desc = "Telescope: Buffers", silent = true },
|
||||
{ "<leader>tb", ":Telescope buffers<CR>", desc = "Telescope: Buffers", silent = true },
|
||||
{ "<leader>th", ":Telescope help_tags<CR>", desc = "Telescope: Help Tags", silent = true },
|
||||
{ "<leader>to", ":Telescope oldfiles<CR>", desc = "Telescope: Recent Files", silent = true },
|
||||
{ "<leader>to", ":Telescope smart_open<CR>", desc = "Telescope: Smart Open", silent = true },
|
||||
{
|
||||
"<leader>tO",
|
||||
":Telescope oldfiles only_cwd=true<CR>",
|
||||
@ -108,6 +108,13 @@ return {
|
||||
},
|
||||
"debugloop/telescope-undo.nvim",
|
||||
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
|
||||
{
|
||||
"danielfalk/smart-open.nvim",
|
||||
dependences = {
|
||||
"kkharji/sqlite.lua",
|
||||
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local telescope = require("telescope")
|
||||
@ -128,6 +135,8 @@ return {
|
||||
},
|
||||
},
|
||||
defaults = {
|
||||
---@diagnostic disable-next-line: undefined-field
|
||||
winblend = vim.opt.winblend:get(),
|
||||
vimgrep_arguments = {
|
||||
"rg",
|
||||
"--color=never",
|
||||
@ -153,7 +162,7 @@ return {
|
||||
["<C-h>"] = actions.preview_scrolling_left,
|
||||
["<C-l>"] = actions.preview_scrolling_right,
|
||||
["<C-d>"] = actions.cycle_history_next,
|
||||
["<A-x>"] = actions.delete_buffer + actions.move_to_top,
|
||||
["<A-x>"] = actions.delete_buffer,
|
||||
["<C-s>"] = actions.cycle_history_prev,
|
||||
["<C-q>"] = actions.smart_send_to_qflist,
|
||||
},
|
||||
@ -188,7 +197,6 @@ return {
|
||||
file_sorter = require("telescope.sorters").get_fuzzy_file,
|
||||
generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter,
|
||||
path_display = { "truncate" },
|
||||
winblend = 0,
|
||||
border = {},
|
||||
borderchars = { " ", "", "", "", "", "", "", "" },
|
||||
results_title = false,
|
||||
@ -224,6 +232,9 @@ return {
|
||||
auto_validate = true,
|
||||
db_safe_mode = false,
|
||||
},
|
||||
smart_open = {
|
||||
match_algorithm = "fzf",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -64,9 +64,7 @@ return {
|
||||
},
|
||||
highlight = {
|
||||
"RainbowDelimiterRed",
|
||||
"RainbowDelimiterYellow",
|
||||
"RainbowDelimiterBlue",
|
||||
"RainbowDelimiterOrange",
|
||||
"RainbowDelimiterGreen",
|
||||
"RainbowDelimiterViolet",
|
||||
"RainbowDelimiterCyan",
|
||||
|
@ -2,8 +2,10 @@ return {
|
||||
{
|
||||
"chrisgrieser/nvim-various-textobjs",
|
||||
opts = {
|
||||
useDefaultKeymaps = true,
|
||||
disabledKeymaps = { "r", "R", "Q", "gc" },
|
||||
keymap = {
|
||||
useDefaults = true,
|
||||
disabledDefaults = { "r", "R", "Q", "gc" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
return {
|
||||
{
|
||||
"mcauley-penney/visual-whitespace.nvim",
|
||||
event = "ModeChanged",
|
||||
event = "ModeChanged *:[vV]",
|
||||
opts = {
|
||||
highlight = { link = "visual-whitespace" },
|
||||
},
|
||||
|
@ -359,3 +359,16 @@ factorizations
|
||||
formulae
|
||||
untagged
|
||||
laggy
|
||||
pts/?
|
||||
pts
|
||||
Typst
|
||||
Golang
|
||||
AWS
|
||||
USAA
|
||||
are
|
||||
are
|
||||
Eigen
|
||||
chasseurs
|
||||
callee
|
||||
endian
|
||||
Steganography
|
||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
{
|
||||
"autoUpdate": false,
|
||||
"autoUpdate": true,
|
||||
"autoUpdateNotification": true,
|
||||
"useQuickCss": true,
|
||||
"themeLinks": [
|
||||
@ -50,7 +50,7 @@
|
||||
},
|
||||
"AnonymiseFileNames": {
|
||||
"enabled": true,
|
||||
"anonymiseByDefault": true,
|
||||
"anonymiseByDefault": false,
|
||||
"method": 0,
|
||||
"randomisedLength": 7,
|
||||
"consistent": "image"
|
||||
@ -65,7 +65,8 @@
|
||||
"enabled": false
|
||||
},
|
||||
"BANger": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"source": "https://i.imgur.com/wp5q52C.mp4"
|
||||
},
|
||||
"BetterFolders": {
|
||||
"enabled": false,
|
||||
@ -75,7 +76,8 @@
|
||||
"keepIcons": false,
|
||||
"closeAllFolders": false,
|
||||
"forceOpen": false,
|
||||
"sidebarAnim": true
|
||||
"sidebarAnim": true,
|
||||
"closeOthers": false
|
||||
},
|
||||
"BetterGifAltText": {
|
||||
"enabled": true
|
||||
@ -90,7 +92,9 @@
|
||||
"enabled": false
|
||||
},
|
||||
"BetterRoleDot": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"bothStyles": false,
|
||||
"copyRoleColorInProfilePopout": false
|
||||
},
|
||||
"BetterSessions": {
|
||||
"enabled": false,
|
||||
@ -117,7 +121,7 @@
|
||||
"format": "stopwatch"
|
||||
},
|
||||
"ClearURLs": {
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
"ClientTheme": {
|
||||
"enabled": false
|
||||
@ -168,7 +172,8 @@
|
||||
"enabled": false
|
||||
},
|
||||
"Experiments": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"toolbarDevMenu": false
|
||||
},
|
||||
"F8Break": {
|
||||
"enabled": false
|
||||
@ -241,7 +246,7 @@
|
||||
"invertScroll": true,
|
||||
"nearestNeighbour": false,
|
||||
"square": false,
|
||||
"zoom": 2,
|
||||
"zoom": 1,
|
||||
"size": 100,
|
||||
"zoomSpeed": 0.5
|
||||
},
|
||||
@ -347,7 +352,12 @@
|
||||
}
|
||||
},
|
||||
"Moyai": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"volume": 0.5,
|
||||
"quality": "Normal",
|
||||
"triggerWhenUnfocused": true,
|
||||
"ignoreBots": true,
|
||||
"ignoreBlocked": true
|
||||
},
|
||||
"MutualGroupDMs": {
|
||||
"enabled": false
|
||||
@ -356,7 +366,8 @@
|
||||
"enabled": true
|
||||
},
|
||||
"NoBlockedMessages": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"ignoreBlockedMessages": false
|
||||
},
|
||||
"NoDefaultHangStatus": {
|
||||
"enabled": false
|
||||
@ -374,16 +385,22 @@
|
||||
"enabled": false
|
||||
},
|
||||
"NoPendingCount": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"hideFriendRequestsCount": true,
|
||||
"hideMessageRequestsCount": true,
|
||||
"hidePremiumOffersCount": true
|
||||
},
|
||||
"NoProfileThemes": {
|
||||
"enabled": true
|
||||
},
|
||||
"NoReplyMention": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"userList": "1234567890123445,1234567890123445",
|
||||
"shouldPingListed": true,
|
||||
"inverseShiftReply": false
|
||||
},
|
||||
"NoScreensharePreview": {
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
"NoServerEmojis": {
|
||||
"enabled": false
|
||||
@ -395,7 +412,7 @@
|
||||
"enabled": false
|
||||
},
|
||||
"NormalizeMessageLinks": {
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
"NotificationVolume": {
|
||||
"enabled": false
|
||||
@ -413,7 +430,12 @@
|
||||
"enabled": false
|
||||
},
|
||||
"OpenInApp": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"spotify": true,
|
||||
"steam": true,
|
||||
"epic": true,
|
||||
"tidal": true,
|
||||
"itunes": true
|
||||
},
|
||||
"OverrideForumDefaults": {
|
||||
"enabled": false
|
||||
@ -438,7 +460,8 @@
|
||||
"enabled": false
|
||||
},
|
||||
"PictureInPicture": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"loop": true
|
||||
},
|
||||
"PinDMs": {
|
||||
"enabled": false,
|
||||
@ -458,9 +481,6 @@
|
||||
"PreviewMessage": {
|
||||
"enabled": true
|
||||
},
|
||||
"PronounDB": {
|
||||
"enabled": false
|
||||
},
|
||||
"QuickMention": {
|
||||
"enabled": false
|
||||
},
|
||||
@ -481,7 +501,7 @@
|
||||
"enabled": false
|
||||
},
|
||||
"ReplyTimestamp": {
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
"RevealAllSpoilers": {
|
||||
"enabled": true
|
||||
@ -513,14 +533,16 @@
|
||||
"enabled": false
|
||||
},
|
||||
"ServerListIndicators": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"mode": 2
|
||||
},
|
||||
"ShikiCodeblocks": {
|
||||
"enabled": false,
|
||||
"theme": "https://raw.githubusercontent.com/shikijs/shiki/0b28ad8ccfbf2615f2d9d38ea8255416b8ac3043/packages/shiki/themes/dark-plus.json",
|
||||
"tryHljs": "SECONDARY",
|
||||
"useDevIcon": "GREYSCALE",
|
||||
"bgOpacity": 100
|
||||
"enabled": true,
|
||||
"theme": "https://raw.githubusercontent.com/shikijs/shiki/0b28ad8ccfbf2615f2d9d38ea8255416b8ac3043/packages/shiki/themes/vitesse-dark.json",
|
||||
"tryHljs": "ALWAYS",
|
||||
"useDevIcon": "COLOR",
|
||||
"bgOpacity": 59.91322032238434,
|
||||
"customTheme": "https://raw.githubusercontent.com/shikijs/textmate-grammars-themes/refs/heads/main/packages/tm-themes/themes/catppuccin-mocha.json"
|
||||
},
|
||||
"ShowAllMessageButtons": {
|
||||
"enabled": false
|
||||
@ -532,7 +554,12 @@
|
||||
"enabled": false
|
||||
},
|
||||
"ShowHiddenThings": {
|
||||
"enabled": false
|
||||
"enabled": true,
|
||||
"showTimeouts": true,
|
||||
"showInvitesPaused": true,
|
||||
"showModView": true,
|
||||
"disableDiscoveryFilters": true,
|
||||
"disableDisallowedDiscoveryFilters": true
|
||||
},
|
||||
"ShowMeYourName": {
|
||||
"enabled": false
|
||||
@ -570,7 +597,10 @@
|
||||
"enabled": false
|
||||
},
|
||||
"SuperReactionTweaks": {
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"superReactByDefault": true,
|
||||
"unlimitedSuperReactionPlaying": false,
|
||||
"superReactionPlayingLimit": 20
|
||||
},
|
||||
"TextReplace": {
|
||||
"enabled": false
|
||||
@ -587,9 +617,9 @@
|
||||
"TypingIndicator": {
|
||||
"enabled": true,
|
||||
"includeCurrentChannel": true,
|
||||
"includeMutedChannels": false,
|
||||
"includeBlockedUsers": false,
|
||||
"indicatorMode": 1
|
||||
"includeMutedChannels": true,
|
||||
"includeBlockedUsers": true,
|
||||
"indicatorMode": 3
|
||||
},
|
||||
"TypingTweaks": {
|
||||
"enabled": true,
|
||||
@ -610,7 +640,10 @@
|
||||
"enabled": false
|
||||
},
|
||||
"UserVoiceShow": {
|
||||
"enabled": false
|
||||
"enabled": true,
|
||||
"showInUserProfileModal": true,
|
||||
"showInMemberList": true,
|
||||
"showInMessages": true
|
||||
},
|
||||
"USRBG": {
|
||||
"enabled": false
|
||||
@ -693,7 +726,8 @@
|
||||
"enabled": false
|
||||
},
|
||||
"MentionAvatars": {
|
||||
"enabled": false
|
||||
"enabled": true,
|
||||
"showAtSymbol": true
|
||||
},
|
||||
"NoMaskedUrlPaste": {
|
||||
"enabled": false
|
||||
@ -706,6 +740,19 @@
|
||||
},
|
||||
"FullSearchContext": {
|
||||
"enabled": false
|
||||
},
|
||||
"AccountPanelServerProfile": {
|
||||
"enabled": false,
|
||||
"prioritizeServerProfile": false
|
||||
},
|
||||
"UserMessagesPronouns": {
|
||||
"enabled": false
|
||||
},
|
||||
"DynamicImageModalAPI": {
|
||||
"enabled": false
|
||||
},
|
||||
"FixImagesQuality": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
@ -718,6 +765,6 @@
|
||||
"authenticated": false,
|
||||
"url": "https://api.vencord.dev/",
|
||||
"settingsSync": false,
|
||||
"settingsSyncVersion": 1727811480516
|
||||
"settingsSyncVersion": 1730930193420
|
||||
}
|
||||
}
|
@ -122,9 +122,9 @@
|
||||
"format-disabled": " Wireless Networking Disabled",
|
||||
"tooltip-format": "{ifname}: {ipaddr}/{cidr} {gwaddr}",
|
||||
"format-icons": {
|
||||
"ethernet": "",
|
||||
"disconnected": "",
|
||||
"wifi": ""
|
||||
"ethernet": " ",
|
||||
"disconnected": " ",
|
||||
"wifi": " "
|
||||
},
|
||||
"tooltip": true,
|
||||
"max-length": 60,
|
||||
@ -237,4 +237,4 @@
|
||||
"icon-size": 14
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
|
@ -38,7 +38,7 @@
|
||||
/* Global Styling */
|
||||
* {
|
||||
border: none;
|
||||
font-family: "Fira Code", monospace;
|
||||
font-family: "FiraCode Nerd Font", monospace;
|
||||
font-size: 13px;
|
||||
border-radius: 0px;
|
||||
margin-top: 0.1rem;
|
||||
|
@ -27,10 +27,10 @@ return {
|
||||
family = "MesloLGS Nerd Font",
|
||||
},
|
||||
{
|
||||
family = "Twemoji",
|
||||
family = "Twitter Color Emoji",
|
||||
},
|
||||
{
|
||||
family = "Noto Fonts Emoji",
|
||||
family = "Noto Color Emoji",
|
||||
},
|
||||
{ family = "Nerd Font Symbols" },
|
||||
}),
|
||||
|
@ -3,12 +3,12 @@ set notification-error-fg "#FF5D62"
|
||||
set notification-warning-bg "#1F1F28"
|
||||
set notification-warning-fg "#FFA066"
|
||||
set notification-bg "#1F1F28"
|
||||
set notification-fg "#DCD7BA"
|
||||
set notification-fg "#FFF9D8"
|
||||
|
||||
set completion-bg "#1F1F28"
|
||||
set completion-fg "#DCD7BA"
|
||||
set completion-fg "#FFF9D8"
|
||||
set completion-group-bg "#2A2A37"
|
||||
set completion-group-fg "#DCD7BA"
|
||||
set completion-group-fg "#FFF9D8"
|
||||
set completion-highlight-bg "#957FB8"
|
||||
set completion-highlight-fg "#1F1F28"
|
||||
|
||||
@ -18,23 +18,23 @@ set index-active-bg "#957FB8"
|
||||
set index-active-fg "#1F1F28"
|
||||
|
||||
set inputbar-bg "#252535"
|
||||
set inputbar-fg "#DCD7BA"
|
||||
set inputbar-fg "#FFF9D8"
|
||||
|
||||
set statusbar-bg "#181820"
|
||||
set statusbar-fg "#DCD7BA"
|
||||
set statusbar-fg "#FFF9D8"
|
||||
|
||||
set highlight "#000000"
|
||||
set highlight-color "rgba(255, 160, 102, 0.5)"
|
||||
set highlight-active-color "rgba(255, 93, 98, 0.7)"
|
||||
|
||||
set default-bg "#16161D"
|
||||
set default-fg "#DCD7BA"
|
||||
set default-fg "#FFF9D8"
|
||||
set render-loading "true"
|
||||
set render-loading-bg "#1F1F28"
|
||||
set render-loading-fg "#DCD7BA"
|
||||
set render-loading-fg "#FFF9D8"
|
||||
|
||||
set recolor-lightcolor "#1F1F28"
|
||||
set recolor-darkcolor "#DCD7BA"
|
||||
set recolor-lightcolor "#1A1C2B"
|
||||
set recolor-darkcolor "#FFF9D8"
|
||||
set recolor "true"
|
||||
set recolor-keephue "true"
|
||||
|
||||
@ -49,3 +49,4 @@ set scroll-step "120"
|
||||
|
||||
set selection-clipboard "clipboard"
|
||||
set statusbar-home-tilde "true"
|
||||
set page-padding 10
|
||||
|
@ -22,12 +22,8 @@ in
|
||||
{
|
||||
imports = (clib.recurseFilesInDirs [ ./conf ] ".nix");
|
||||
programs.home-manager.enable = true;
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
home = {
|
||||
stateVersion = "24.11";
|
||||
language.base = "en_US.UTF-8";
|
||||
packages =
|
||||
with pkgs;
|
||||
@ -68,14 +64,8 @@ in
|
||||
Fmt
|
||||
screen-cap
|
||||
nodePackages.prettier
|
||||
cargo
|
||||
clippy
|
||||
rustc
|
||||
rustfmt
|
||||
python3
|
||||
shfmt
|
||||
bob-nvim
|
||||
neovide
|
||||
wezterm
|
||||
kitty
|
||||
sqlite
|
||||
@ -123,6 +113,7 @@ in
|
||||
brightnessctl
|
||||
keyd
|
||||
tidal-hifi
|
||||
spotify
|
||||
nix-output-monitor
|
||||
sops
|
||||
chromium
|
||||
@ -148,30 +139,19 @@ in
|
||||
clang
|
||||
nasm
|
||||
asm-lsp
|
||||
asmfmt
|
||||
ninja
|
||||
ccache
|
||||
llvm
|
||||
llvmPackages.libcxxStdenv
|
||||
pkg-config
|
||||
openssl.dev
|
||||
curl.dev
|
||||
]
|
||||
++ [ rust-analyzer ];
|
||||
];
|
||||
|
||||
file = softLinkDots ".config";
|
||||
|
||||
sessionVariables = {
|
||||
_ZL_DATA = "${config.xdg.cacheHome}/zlua";
|
||||
RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
|
||||
CARGO_HOME = "${config.xdg.dataHome}/cargo";
|
||||
OMNISHARPHOME = "${config.xdg.configHome}/omnisharp";
|
||||
NPM_CONFIG_USERCONFIG = "${config.xdg.configHome}/npm/npmrc";
|
||||
TERMINFO_DIRS = "${config.home.profileDirectory}/share/terminfo";
|
||||
WSLENV = "TERMINFO_DIRS";
|
||||
LD_LIBRARY_PATH = lib.strings.makeLibraryPath [
|
||||
"${config.home.profileDirectory}"
|
||||
"${pkgs.sqlite.out}"
|
||||
];
|
||||
PKG_CONFIG_PATH = "${config.home.profileDirectory}/lib/pkgconfig";
|
||||
GTK_PATH = "${pkgs.gtk-engine-murrine}/lib/gtk-2.0";
|
||||
ANDROID_USER_HOME = "${config.xdg.dataHome}/android";
|
||||
@ -181,7 +161,9 @@ in
|
||||
GRADLE_USER_HOME = "${config.xdg.dataHome}/gradle";
|
||||
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot='${config.xdg.configHome}/java'";
|
||||
};
|
||||
sessionPath = [ "${config.xdg.dataHome}/bin" ];
|
||||
sessionPath = [
|
||||
"${config.home.homeDirectory}/.local/bin"
|
||||
];
|
||||
};
|
||||
|
||||
xdg = {
|
||||
@ -329,19 +311,6 @@ in
|
||||
};
|
||||
};
|
||||
services = {
|
||||
xwaylandvideobridge = {
|
||||
Install.WantedBy = [ "compositor.target" ];
|
||||
Service = {
|
||||
ExecStart = "${pkgs.xwaylandvideobridge}/bin/xwaylandvideobridge";
|
||||
Restart = "always";
|
||||
};
|
||||
Unit = {
|
||||
Description = "Bridge X11 Clients to XDG Portal";
|
||||
Documentation = "https://invent.kde.org/system/xwaylandvideobridge";
|
||||
PartOf = [ "compositor.target" ];
|
||||
After = [ "compositor.target" ];
|
||||
};
|
||||
};
|
||||
keyd-application-mapper = {
|
||||
Unit = {
|
||||
Description = "Keyd - Linux Keyboard Remapper";
|
||||
@ -372,17 +341,18 @@ in
|
||||
After = [ "compositor.target" ];
|
||||
};
|
||||
};
|
||||
polkit-gnome-authentication-agent-1 = {
|
||||
polkit-hyprpolkitagent = {
|
||||
Unit = {
|
||||
Description = "Gnome Polkit authentication agent";
|
||||
Documentation = "https://gitlab.freedesktop.org/polkit/polkit/";
|
||||
After = [ "graphical-session-pre.target" ];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
Description = "Hyprland Polkit authentication agent";
|
||||
Documentation = "https://wiki.hyprland.org/Hypr-Ecosystem/hyprpolkitagent/";
|
||||
After = [ "graphical-session.target" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
ExecStart = "${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
|
||||
Restart = "always";
|
||||
RestartSec = 2;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
|
||||
Install.WantedBy = [ "graphical-session.target" ];
|
||||
|
Loading…
Reference in New Issue
Block a user