Compare commits
No commits in common. "6014ad7d7a7167333cb0249c1dffd9edbf0bddc1" and "b048858c40d24c7d6f9dc89f4c1dddb7036ea576" have entirely different histories.
6014ad7d7a
...
b048858c40
30 changed files with 633 additions and 878 deletions
6
flake.lock
generated
6
flake.lock
generated
|
|
@ -318,11 +318,11 @@
|
|||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1755186698,
|
||||
"narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
|
||||
"lastModified": 1751271578,
|
||||
"narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
|
||||
"rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -17,9 +17,6 @@ in {
|
|||
extraDomainNames = [ "*.${domain}" ];
|
||||
group = "acme";
|
||||
};
|
||||
"git.${domain}" = {
|
||||
group = "acme";
|
||||
};
|
||||
"internal.${domain}" = {
|
||||
group = "acme";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -20,14 +20,14 @@
|
|||
};
|
||||
};
|
||||
|
||||
# pywb = {
|
||||
# image = "docker.io/webrecorder/pywb";
|
||||
# ports = [ "127.0.0.1:8001:8001" ];
|
||||
# volumes = [
|
||||
# "/mnt/usb/services/browsertrix/webrecorder/:/"
|
||||
# "/mnt/usb/services/browsertrix/webrecorder/webarchive:/webarchive"
|
||||
# ];
|
||||
# };
|
||||
pywb = {
|
||||
image = "docker.io/webrecorder/pywb";
|
||||
ports = [ "127.0.0.1:8001:8001" ];
|
||||
volumes = [
|
||||
"/mnt/usb/services/browsertrix/webrecorder/:/"
|
||||
"/mnt/usb/services/browsertrix/webrecorder/webarchive:/webarchive"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.docker ];
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ let
|
|||
ssl = {
|
||||
forceSSL = true;
|
||||
quic = true;
|
||||
useACMEHost = acmeDomain;
|
||||
useACMEHost = domain;
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -5,7 +5,7 @@
|
|||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ./site.nix ./cache ./archive ./forgejo ];
|
||||
imports = [ ./hardware-configuration.nix ./site.nix ./cache ./archive ];
|
||||
|
||||
age.secrets.password.file = ./password.age;
|
||||
users.users = {
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
<EFBFBD>
|
||||
<EFBFBD>
|
||||
<EFBFBD>
|
||||
<EFBFBD>
|
||||
<EFBFBD>
|
||||
|
|
@ -1,42 +1,75 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
subdomains = [ "internal" "archive" "crawler" "r" "b" "s" "p" "q" "cloud" ];
|
||||
|
||||
mainZoneFile = pkgs.writeText "thegeneralist01.zone" ''
|
||||
$ORIGIN thegeneralist01.com.
|
||||
@ IN SOA ns.thegeneralist01.com. thegeneralist01.proton.me. (
|
||||
2025081501 ; serial (yyyymmddXX)
|
||||
internalZoneFile = pkgs.writeText "internal.zone" ''
|
||||
$ORIGIN internal.thegeneralist01.com.
|
||||
@ IN SOA ns.internal.thegeneralist01.com. thegeneralist01.proton.me. (
|
||||
2025071801 ; serial (yyyymmddXX)
|
||||
3600 ; refresh
|
||||
600 ; retry
|
||||
86400 ; expire
|
||||
3600 ; minimum
|
||||
)
|
||||
IN NS ns.thegeneralist01.com.
|
||||
IN NS ns.internal.thegeneralist01.com.
|
||||
ns IN A 100.86.129.23
|
||||
@ IN A 100.86.129.23
|
||||
${lib.concatStringsSep "\n" (lib.map (sub: "${sub} IN A 100.86.129.23") subdomains)}
|
||||
'';
|
||||
|
||||
forwarderBlock = ''
|
||||
.:53 {
|
||||
forward . 100.100.100.100 45.90.28.181 45.90.30.181
|
||||
cache
|
||||
log
|
||||
errors
|
||||
}
|
||||
archiveZoneFile = pkgs.writeText "archive.zone" ''
|
||||
$ORIGIN archive.thegeneralist01.com.
|
||||
@ IN SOA ns.archive.thegeneralist01.com. thegeneralist01.proton.me. (
|
||||
2025073101 ; serial (yyyymmddXX)
|
||||
3600 ; refresh
|
||||
600 ; retry
|
||||
86400 ; expire
|
||||
3600 ; minimum
|
||||
)
|
||||
IN NS ns.archive.thegeneralist01.com.
|
||||
ns IN A 100.86.129.23
|
||||
@ IN A 100.86.129.23
|
||||
'';
|
||||
|
||||
crawlerZoneFile = pkgs.writeText "crawler.zone" ''
|
||||
$ORIGIN crawler.thegeneralist01.com.
|
||||
@ IN SOA ns.crawler.thegeneralist01.com. thegeneralist01.proton.me. (
|
||||
2025080801 ; serial (yyyymmddXX)
|
||||
3600 ; refresh
|
||||
600 ; retry
|
||||
86400 ; expire
|
||||
3600 ; minimum
|
||||
)
|
||||
IN NS ns.crawler.thegeneralist01.com.
|
||||
ns IN A 100.86.129.23
|
||||
@ IN A 100.86.129.23
|
||||
'';
|
||||
in
|
||||
{
|
||||
services.coredns = {
|
||||
enable = true;
|
||||
config = ''
|
||||
thegeneralist01.com:53 {
|
||||
file ${mainZoneFile}
|
||||
internal.thegeneralist01.com:53 {
|
||||
file ${internalZoneFile}
|
||||
log
|
||||
errors
|
||||
}
|
||||
|
||||
${forwarderBlock}
|
||||
archive.thegeneralist01.com:53 {
|
||||
file ${archiveZoneFile}
|
||||
log
|
||||
errors
|
||||
}
|
||||
|
||||
crawler.thegeneralist01.com:53 {
|
||||
file ${crawlerZoneFile}
|
||||
log
|
||||
errors
|
||||
}
|
||||
|
||||
.:53 {
|
||||
forward . 100.100.100.100 45.90.28.181 45.90.30.181
|
||||
cache
|
||||
log
|
||||
errors
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,94 +0,0 @@
|
|||
let
|
||||
forgejo_root_dir = "/var/lib/forgejo";
|
||||
domain = "git.thegeneralist01.com";
|
||||
|
||||
forgejo_folder = folder_name: "${forgejo_root_dir}/${folder_name}";
|
||||
in
|
||||
{
|
||||
imports = [ ../../../modules/postgresql.nix ];
|
||||
|
||||
services.forgejo = {
|
||||
enable = true;
|
||||
stateDir = forgejo_folder "state";
|
||||
|
||||
lfs.enable = true;
|
||||
|
||||
settings =
|
||||
let
|
||||
title = "thegeneralist01's forgejo";
|
||||
desc = "the attic of thegeneralist01's random repositories";
|
||||
in
|
||||
{
|
||||
default.APP_NAME = title;
|
||||
"ui.meta" = {
|
||||
AUTHOR = title;
|
||||
DESCRIPTION = desc;
|
||||
};
|
||||
|
||||
attachment.ALLOWED_TYPES = "*/*";
|
||||
cache.ENABLED = true;
|
||||
|
||||
"cron.archive_cleanup" =
|
||||
let
|
||||
interval = "4h";
|
||||
in
|
||||
{
|
||||
SCHEDULE = "@every ${interval}";
|
||||
OLDER_THAN = interval;
|
||||
};
|
||||
|
||||
packages.ENABLED = true;
|
||||
mailer = {
|
||||
ENABLED = false;
|
||||
|
||||
# PROTOCOL = "smtps";
|
||||
# SMTP_ADDR = self.disk.mailserver.fqdn;
|
||||
# USER = "git@${domain}";
|
||||
};
|
||||
|
||||
other = {
|
||||
SHOW_FOOTER_TEMPLATE_LOAD_TIME = false;
|
||||
SHOW_FOOTER_VERSION = false;
|
||||
};
|
||||
|
||||
repository = {
|
||||
DEFAULT_BRANCH = "master";
|
||||
DEFAULT_MERGE_STYLE = "rebase-merge";
|
||||
DEFAULT_REPO_UNITS = "repo.code, repo.issues, repo.pulls";
|
||||
|
||||
DEFAULT_PUSH_CREATE_PRIVATE = false;
|
||||
ENABLE_PUSH_CREATE_ORG = true;
|
||||
ENABLE_PUSH_CREATE_USER = true;
|
||||
|
||||
DISABLE_STARS = true;
|
||||
};
|
||||
|
||||
"repository.upload" = {
|
||||
FILE_MAX_SIZE = 100;
|
||||
MAX_FILES = 10;
|
||||
};
|
||||
|
||||
server = {
|
||||
ROOT_URL = "https://${domain}/";
|
||||
DOMAIN = domain;
|
||||
LANDING_PAGE = "/explore";
|
||||
|
||||
HTTP_ADDR = "127.0.0.1";
|
||||
HTTP_PORT = 3000;
|
||||
|
||||
SSH_LISTEN_HOST = "0.0.0.0";
|
||||
SSH_PORT = 2222;
|
||||
SSH_LISTEN_PORT = 2222;
|
||||
};
|
||||
|
||||
service.DISABLE_REGISTRATION = true;
|
||||
|
||||
session = {
|
||||
COOKIE_SECURE = true;
|
||||
SAME_SITE = "strict";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 2222 ];
|
||||
}
|
||||
|
|
@ -1,38 +1,31 @@
|
|||
{ config, pkgs, ... }:
|
||||
let
|
||||
{ config, pkgs, ... }: let
|
||||
domain = "thegeneralist01.com";
|
||||
family_domain = builtins.getEnv "FAMILY_DOMAIN";
|
||||
|
||||
ssl = {
|
||||
quic = true;
|
||||
quic = true;
|
||||
useACMEHost = domain;
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./acme
|
||||
./dns.nix
|
||||
./jellyfin
|
||||
];
|
||||
in {
|
||||
imports = [ ./acme ./dns.nix ./jellyfin ];
|
||||
|
||||
# Nginx
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
package = pkgs.nginxQuic;
|
||||
enableQuicBPF = true;
|
||||
enable = true;
|
||||
package = pkgs.nginxQuic;
|
||||
enableQuicBPF = true;
|
||||
|
||||
experimentalZstdSettings = true;
|
||||
recommendedUwsgiSettings = true;
|
||||
recommendedTlsSettings = true;
|
||||
recommendedProxySettings = true;
|
||||
recommendedOptimisation = true;
|
||||
recommendedGzipSettings = true;
|
||||
recommendedBrotliSettings = true;
|
||||
recommendedZstdSettings = true;
|
||||
recommendedUwsgiSettings = true;
|
||||
recommendedTlsSettings = true;
|
||||
recommendedProxySettings = true;
|
||||
recommendedOptimisation = true;
|
||||
recommendedGzipSettings = true;
|
||||
recommendedBrotliSettings = true;
|
||||
|
||||
statusPage = true;
|
||||
validateConfigFile = true;
|
||||
statusPage = true;
|
||||
validateConfigFile = true;
|
||||
|
||||
virtualHosts."${domain}" = ssl // {
|
||||
virtualHosts."${domain}" = ssl // {
|
||||
root = "/var/www/${domain}";
|
||||
locations."/".tryFiles = "$uri $uri.html $uri/ $uri/index.html =404";
|
||||
|
||||
|
|
@ -50,35 +43,13 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
virtualHosts."www.${domain}" = ssl // {
|
||||
virtualHosts."www.${domain}" = ssl // {
|
||||
locations."/".return = "306 https://${domain}$request_uri";
|
||||
};
|
||||
|
||||
virtualHosts."${family_domain}" = {
|
||||
root = "/var/www/${family_domain}";
|
||||
locations."/".tryFiles = "$uri $uri.html $uri/ $uri/index.html =404";
|
||||
|
||||
extraConfig = ''
|
||||
if ($http_x_forwarded_proto = "http") {
|
||||
return 301 https://${family_domain}$request_uri;
|
||||
}
|
||||
|
||||
location ~* \.(html|css|js|jpg|jpeg|png|gif|svg|ico|woff2?)$ {
|
||||
expires 1d;
|
||||
add_header Cache-Control "public";
|
||||
}
|
||||
|
||||
error_page 404 /404.html;
|
||||
'';
|
||||
virtualHosts._ = ssl // {
|
||||
locations."/".return = "307 https://${domain}/404";
|
||||
};
|
||||
|
||||
virtualHosts."www.${family_domain}" = {
|
||||
locations."/".return = "306 https://${family_domain}$request_uri";
|
||||
};
|
||||
|
||||
# virtualHosts._ = ssl // {
|
||||
# locations."/".return = "307 https://${domain}/404";
|
||||
# };
|
||||
};
|
||||
|
||||
# Cloudflare
|
||||
|
|
@ -86,35 +57,21 @@ in
|
|||
|
||||
age.secrets.cftcert.file = ./cert.pem.age;
|
||||
age.secrets.cftcredentials.file = ./credentials.age;
|
||||
age.secrets.cftcredentials_personal.file = ./credentials_personal.age;
|
||||
|
||||
services.cloudflared = {
|
||||
enable = true;
|
||||
certificateFile = config.age.secrets.cftcert.path;
|
||||
|
||||
tunnels = {
|
||||
"site" = {
|
||||
ingress = {
|
||||
"thegeneralist01.com" = "http://localhost:80";
|
||||
"www.thegeneralist01.com" = "http://localhost:80";
|
||||
"cache.thegeneralist01.com" = "http://localhost:80";
|
||||
"git.thegeneralist01.com" = "http://localhost:3000";
|
||||
};
|
||||
default = "http_status:404";
|
||||
|
||||
credentialsFile = config.age.secrets.cftcredentials.path;
|
||||
certificateFile = config.age.secrets.cftcert.path;
|
||||
tunnels."site" = {
|
||||
ingress = {
|
||||
"thegeneralist01.com" = "http://localhost:80";
|
||||
"www.thegeneralist01.com" = "http://localhost:80";
|
||||
"cache.thegeneralist01.com" = "http://localhost:80";
|
||||
};
|
||||
"personal" = {
|
||||
ingress = {
|
||||
"${family_domain}" = "http://localhost:80";
|
||||
"www.${family_domain}" = "http://localhost:80";
|
||||
};
|
||||
default = "http_status:404";
|
||||
default = "http_status:404";
|
||||
|
||||
credentialsFile = config.age.secrets.cftcredentials_personal.path;
|
||||
certificateFile = config.age.secrets.cftcert.path;
|
||||
};
|
||||
credentialsFile = config.age.secrets.cftcredentials.path;
|
||||
certificateFile = config.age.secrets.cftcert.path;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
inputs: self: super:
|
||||
let
|
||||
system = import ./system.nix inputs self super;
|
||||
option = import ./option.nix inputs self super;
|
||||
in
|
||||
system // option
|
||||
system
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
_: _: super: let
|
||||
inherit (super) mkOption;
|
||||
in {
|
||||
mkConst = value: mkOption {
|
||||
default = value;
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
mkValue = default: mkOption {
|
||||
inherit default;
|
||||
};
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
clearDefaultKeybinds = false;
|
||||
settings = {
|
||||
# theme = "tokyonight";
|
||||
theme = "Gruvbox Dark Hard";
|
||||
theme = "GruvboxDarkHard";
|
||||
font-family = "Berkeley Mono";
|
||||
font-size = 16;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,7 @@ in {
|
|||
|
||||
python313
|
||||
python313Packages.pip
|
||||
uv
|
||||
python313Packages.virtualenv
|
||||
basedpyright
|
||||
black
|
||||
|
||||
nodejs
|
||||
nodePackages."sass"
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ in {
|
|||
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
||||
];
|
||||
|
||||
trusted-users = [ "thegeneralist" "central" "root" "@build" "@wheel" "@admin" "jellyfin" "git" ];
|
||||
trusted-users = [ "thegeneralist" "central" "root" "@build" "@wheel" "@admin" ];
|
||||
|
||||
builders-use-substitutes = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ $env.config.completions = {
|
|||
enable: true
|
||||
max_results: 100
|
||||
completer: {|tokens: list<string>|
|
||||
let expanded = scope aliases | where name == $tokens.0 | get --optional expansion.0
|
||||
let expanded = scope aliases | where name == $tokens.0 | get --ignore-errors expansion.0
|
||||
|
||||
mut expanded_tokens = if $expanded != null and $tokens.0 != "cd" {
|
||||
$expanded | split row " " | append ($tokens | skip 1)
|
||||
|
|
@ -67,12 +67,3 @@ alias ah = cd ~/dotfiles/hosts/thegeneralist
|
|||
alias ai3 = nvim /home/thegeneralist/dotfiles/hosts/thegeneralist/dotfiles/i3/config
|
||||
# alias rb = sudo nixos-rebuild switch --flake ~/dotfiles#thegeneralist
|
||||
alias rb = nh os switch . -v -- --show-trace --verbose
|
||||
|
||||
def greeting [] {
|
||||
let quotes = [
|
||||
"What is impossible for you is not impossible for me."
|
||||
]
|
||||
echo ($quotes | get (random int 0..(($quotes | length) - 1)))
|
||||
}
|
||||
|
||||
greeting
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ in {
|
|||
fzf
|
||||
gh
|
||||
fastfetch
|
||||
carapace
|
||||
];
|
||||
|
||||
shellAliases = {
|
||||
|
|
@ -74,16 +73,10 @@ in {
|
|||
envFile.text = readFile ./env.nu;
|
||||
environmentVariables = config.environment.variables // homeArgs.config.home.sessionVariables;
|
||||
};
|
||||
programs.carapace = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
sessionVariables = config.environment.variables // homeArgs.config.home.sessionVariables;
|
||||
};
|
||||
home.sessionPath = [ "/Users/thegeneralist/.cargo/bin" ];
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,9 +26,6 @@
|
|||
nixfmt-rfc-style
|
||||
|
||||
libiconv
|
||||
|
||||
clang
|
||||
clang-analyzer
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
# services.tailscale = {
|
||||
# enable = true;
|
||||
# };
|
||||
#
|
||||
# networking.search = [ "shorthair-wall.ts.net" ];
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
networking.search = [ "shorthair-wall.ts.net" ];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,31 +1,18 @@
|
|||
let
|
||||
numbers = [
|
||||
"1"
|
||||
"2"
|
||||
"3"
|
||||
"4"
|
||||
"5"
|
||||
"6"
|
||||
"7"
|
||||
"8"
|
||||
"9"
|
||||
"0"
|
||||
"1" "2" "3" "4" "5" "6" "7" "8" "9" "0"
|
||||
];
|
||||
|
||||
number_to_symbol = num: {
|
||||
type = "basic";
|
||||
from = {
|
||||
key_code = num;
|
||||
modifiers = {
|
||||
optional = [ "caps_lock" ];
|
||||
};
|
||||
modifiers = { optional = [ "caps_lock" ]; };
|
||||
};
|
||||
to = [
|
||||
{
|
||||
key_code = num;
|
||||
modifiers = [ "left_shift" ];
|
||||
}
|
||||
];
|
||||
to = [{
|
||||
key_code = num;
|
||||
modifiers = ["left_shift"];
|
||||
}];
|
||||
};
|
||||
|
||||
symbol_to_number = num: {
|
||||
|
|
@ -37,80 +24,55 @@ let
|
|||
optional = [ "caps_lock" ];
|
||||
};
|
||||
};
|
||||
to = [
|
||||
{
|
||||
key_code = num;
|
||||
}
|
||||
];
|
||||
to = [{
|
||||
key_code = num;
|
||||
}];
|
||||
};
|
||||
|
||||
manipulators = builtins.concatLists (
|
||||
map (n: [
|
||||
(number_to_symbol n)
|
||||
(symbol_to_number n)
|
||||
]) numbers
|
||||
);
|
||||
manipulators = builtins.concatLists (map (n: [
|
||||
(number_to_symbol n)
|
||||
(symbol_to_number n)
|
||||
]) numbers);
|
||||
|
||||
simple_modifications = [
|
||||
{
|
||||
from.apple_vendor_top_case_key_code = "keyboard_fn";
|
||||
to = [ { key_code = "left_control"; } ];
|
||||
to = [{ key_code = "left_control"; }];
|
||||
}
|
||||
{
|
||||
from.key_code = "left_control";
|
||||
to = [ { apple_vendor_top_case_key_code = "keyboard_fn"; } ];
|
||||
to = [{ apple_vendor_top_case_key_code = "keyboard_fn"; }];
|
||||
}
|
||||
];
|
||||
|
||||
complex_modifications = {
|
||||
name = "Complex Modifications";
|
||||
rules = [
|
||||
# {
|
||||
# description = "Change numbers to symbols and vice versa";
|
||||
# manipulators = manipulators;
|
||||
# }
|
||||
{
|
||||
description = "Toggle Focus Mode with F6";
|
||||
manipulators = [
|
||||
{
|
||||
from = {
|
||||
"key_code" = "f6";
|
||||
};
|
||||
to = [ { "shell_command" = "shortcuts run 'Reduced Interruptions'"; } ];
|
||||
type = "basic";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
rules = [{
|
||||
description = "Change numbers to symbols and vice versa";
|
||||
manipulators = manipulators;
|
||||
}];
|
||||
};
|
||||
|
||||
config = builtins.toJSON {
|
||||
global.show_in_menu_bar = false;
|
||||
|
||||
profiles = [
|
||||
{
|
||||
name = "default";
|
||||
selected = true;
|
||||
virtual_hid_keyboard.keyboard_type_v2 = "ansi";
|
||||
inherit simple_modifications;
|
||||
inherit complex_modifications;
|
||||
profiles = [{
|
||||
name = "default";
|
||||
selected = true;
|
||||
virtual_hid_keyboard.keyboard_type_v2 = "ansi";
|
||||
inherit simple_modifications;
|
||||
inherit complex_modifications;
|
||||
|
||||
devices = [
|
||||
{
|
||||
identifiers.is_keyboard = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
devices = [{
|
||||
identifiers.is_keyboard = true;
|
||||
}];
|
||||
}];
|
||||
};
|
||||
in
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
{
|
||||
home.file.".config/karabiner/karabiner.json" = {
|
||||
force = true;
|
||||
text = config;
|
||||
};
|
||||
}
|
||||
];
|
||||
in {
|
||||
home-manager.sharedModules = [{
|
||||
home.file.".config/karabiner/karabiner.json" = {
|
||||
force = true;
|
||||
text = config;
|
||||
};
|
||||
}];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{ pkgs, ... }: {
|
||||
homebrew.enable = true;
|
||||
homebrew.casks = [ "google-chrome" ];
|
||||
homebrew.casks = [ "ungoogled-chromium" ];
|
||||
environment.systemPackages = [ pkgs.iina ];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
return {
|
||||
"windwp/nvim-autopairs",
|
||||
event = "InsertEnter",
|
||||
config = true,
|
||||
-- use opts = {} for passing setup options
|
||||
-- this is equivalent to setup({}) function
|
||||
}
|
||||
|
|
@ -1,86 +1,84 @@
|
|||
return {
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
dependencies = { "rafamadriz/friendly-snippets" },
|
||||
version = "1.*",
|
||||
opts = {
|
||||
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
|
||||
-- 'super-tab' for mappings similar to vscode (tab to accept)
|
||||
-- 'enter' for enter to accept
|
||||
-- 'none' for no mappings
|
||||
--
|
||||
-- All presets have the following mappings:
|
||||
-- C-space: Open menu or open docs if already open
|
||||
-- C-n/C-p or Up/Down: Select next/previous item
|
||||
-- C-e: Hide menu
|
||||
-- C-k: Toggle signature help (if signature.enabled = true)
|
||||
--
|
||||
-- See :h blink-cmp-config-keymap for defining your own keymap
|
||||
keymap = {
|
||||
preset = "default",
|
||||
},
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
dependencies = { "rafamadriz/friendly-snippets" },
|
||||
version = "1.*",
|
||||
opts = {
|
||||
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
|
||||
-- 'super-tab' for mappings similar to vscode (tab to accept)
|
||||
-- 'enter' for enter to accept
|
||||
-- 'none' for no mappings
|
||||
--
|
||||
-- All presets have the following mappings:
|
||||
-- C-space: Open menu or open docs if already open
|
||||
-- C-n/C-p or Up/Down: Select next/previous item
|
||||
-- C-e: Hide menu
|
||||
-- C-k: Toggle signature help (if signature.enabled = true)
|
||||
--
|
||||
-- See :h blink-cmp-config-keymap for defining your own keymap
|
||||
keymap = { preset = "default" },
|
||||
|
||||
appearance = {
|
||||
nerd_font_variant = "mono",
|
||||
},
|
||||
appearance = {
|
||||
nerd_font_variant = "mono",
|
||||
},
|
||||
|
||||
-- (Default) Only show the documentation popup when manually triggered
|
||||
completion = { documentation = { auto_show = false } },
|
||||
-- (Default) Only show the documentation popup when manually triggered
|
||||
completion = { documentation = { auto_show = false } },
|
||||
|
||||
-- Default list of enabled providers defined so that you can extend it
|
||||
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
||||
sources = {
|
||||
default = { "lsp", "path", "snippets", "buffer" },
|
||||
},
|
||||
-- Default list of enabled providers defined so that you can extend it
|
||||
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
||||
sources = {
|
||||
default = { "lsp", "path", "snippets", "buffer" },
|
||||
},
|
||||
|
||||
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
|
||||
-- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation,
|
||||
-- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
|
||||
--
|
||||
-- See the fuzzy documentation for more information
|
||||
fuzzy = { implementation = "prefer_rust_with_warning" },
|
||||
},
|
||||
opts_extend = { "sources.default" },
|
||||
},
|
||||
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
|
||||
-- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation,
|
||||
-- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
|
||||
--
|
||||
-- See the fuzzy documentation for more information
|
||||
fuzzy = { implementation = "prefer_rust_with_warning" },
|
||||
},
|
||||
opts_extend = { "sources.default" },
|
||||
},
|
||||
|
||||
-- {
|
||||
-- 'neovim/nvim-lspconfig',
|
||||
-- dependencies = {
|
||||
-- 'saghen/blink.cmp',
|
||||
-- 'williamboman/mason.nvim',
|
||||
-- 'mason-org/mason-registry',
|
||||
-- 'williamboman/mason-lspconfig.nvim',
|
||||
-- 'L3MON4D3/LuaSnip',
|
||||
-- 'saadparwaiz1/cmp_luasnip',
|
||||
-- 'j-hui/fidget.nvim',
|
||||
-- },
|
||||
--
|
||||
-- -- example using `opts` for defining servers
|
||||
-- opts = {
|
||||
-- servers = {
|
||||
-- lua_ls = {}
|
||||
-- }
|
||||
-- },
|
||||
-- config = function(_, opts)
|
||||
-- require("fidget").setup({})
|
||||
-- require("mason").setup()
|
||||
--
|
||||
-- local lspconfig = require('mason-lspconfig')
|
||||
-- for server, config in pairs(opts.servers) do
|
||||
-- -- passing config.capabilities to blink.cmp merges with the capabilities in your
|
||||
-- -- `opts[server].capabilities, if you've defined it
|
||||
-- print('configuring server:', server)
|
||||
-- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities)
|
||||
-- require("lspconfig")[server].setup(config)
|
||||
-- end
|
||||
-- end
|
||||
--
|
||||
-- example calling setup directly for each LSP
|
||||
-- config = function()
|
||||
-- local capabilities = require('blink.cmp').get_lsp_capabilities()
|
||||
-- local lspconfig = require('lspconfig')
|
||||
--
|
||||
-- lspconfig['lua_ls'].setup({ capabilities = capabilities })
|
||||
-- end
|
||||
-- },
|
||||
-- {
|
||||
-- 'neovim/nvim-lspconfig',
|
||||
-- dependencies = {
|
||||
-- 'saghen/blink.cmp',
|
||||
-- 'williamboman/mason.nvim',
|
||||
-- 'mason-org/mason-registry',
|
||||
-- 'williamboman/mason-lspconfig.nvim',
|
||||
-- 'L3MON4D3/LuaSnip',
|
||||
-- 'saadparwaiz1/cmp_luasnip',
|
||||
-- 'j-hui/fidget.nvim',
|
||||
-- },
|
||||
--
|
||||
-- -- example using `opts` for defining servers
|
||||
-- opts = {
|
||||
-- servers = {
|
||||
-- lua_ls = {}
|
||||
-- }
|
||||
-- },
|
||||
-- config = function(_, opts)
|
||||
-- require("fidget").setup({})
|
||||
-- require("mason").setup()
|
||||
--
|
||||
-- local lspconfig = require('mason-lspconfig')
|
||||
-- for server, config in pairs(opts.servers) do
|
||||
-- -- passing config.capabilities to blink.cmp merges with the capabilities in your
|
||||
-- -- `opts[server].capabilities, if you've defined it
|
||||
-- print('configuring server:', server)
|
||||
-- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities)
|
||||
-- require("lspconfig")[server].setup(config)
|
||||
-- end
|
||||
-- end
|
||||
--
|
||||
-- example calling setup directly for each LSP
|
||||
-- config = function()
|
||||
-- local capabilities = require('blink.cmp').get_lsp_capabilities()
|
||||
-- local lspconfig = require('lspconfig')
|
||||
--
|
||||
-- lspconfig['lua_ls'].setup({ capabilities = capabilities })
|
||||
-- end
|
||||
-- },
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,106 +1,101 @@
|
|||
return {
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
---@module "ibl"
|
||||
---@type ibl.config
|
||||
opts = {},
|
||||
},
|
||||
--[[ {
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
---@module "ibl"
|
||||
---@type ibl.config
|
||||
opts = {},
|
||||
},
|
||||
--[[ {
|
||||
'boganworld/crackboard.nvim',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
opts = {
|
||||
session_key = 'redacted',
|
||||
},
|
||||
}, ]]
|
||||
{
|
||||
"onsails/lspkind-nvim",
|
||||
},
|
||||
-- {
|
||||
-- "ziglang/zig.vim",
|
||||
-- },
|
||||
{
|
||||
"nvim-lua/plenary.nvim",
|
||||
name = "plenary",
|
||||
},
|
||||
{
|
||||
"stevearc/oil.nvim",
|
||||
config = function()
|
||||
require("oil").setup()
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- -- https://github.com/zbirenbaum/copilot.lua
|
||||
-- "zbirenbaum/copilot.lua",
|
||||
-- cmd = "Copilot",
|
||||
-- event = "InsertEnter",
|
||||
-- config = function()
|
||||
-- require("copilot").setup({
|
||||
-- panel = {
|
||||
-- keymap = {
|
||||
-- jump_prev = "]]",
|
||||
-- jump_next = "[[",
|
||||
-- accept = "<Tab>",
|
||||
-- refresh = "gr",
|
||||
-- open = "<M-]>",
|
||||
-- },
|
||||
-- },
|
||||
-- suggestion = {
|
||||
-- auto_trigger = true,
|
||||
-- keymap = {
|
||||
-- accept = "<M-Tab>",
|
||||
-- },
|
||||
-- },
|
||||
-- })
|
||||
-- -- vim.keymap.set("n", "<leader>cpe", "<cmd>Copilot enable<CR>")
|
||||
-- -- vim.keymap.set("n", "<leader>cpd", "<cmd>Copilot disable<CR>")
|
||||
-- end,
|
||||
-- },
|
||||
{
|
||||
"github/copilot.vim",
|
||||
config = function()
|
||||
-- set <leader>cpd and <leader>cpe to disable/enable copilot
|
||||
vim.keymap.set("n", "<leader>cpe", "<cmd>Copilot enable<CR>")
|
||||
vim.keymap.set("n", "<leader>cpd", "<cmd>Copilot disable<CR>")
|
||||
vim.keymap.set("i", "<C-J>", 'copilot#Accept("\\<CR>")', {
|
||||
expr = true,
|
||||
replace_keycodes = false,
|
||||
})
|
||||
vim.g.copilot_no_tab_map = true
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- "Exafunction/codeium.nvim",
|
||||
-- dependencies = {
|
||||
-- "nvim-lua/plenary.nvim",
|
||||
-- "hrsh7th/nvim-cmp",
|
||||
-- },
|
||||
-- config = function()
|
||||
-- require("codeium").setup({
|
||||
-- -- https://github.com/Exafunction/codeium.vim
|
||||
-- })
|
||||
-- end
|
||||
-- },
|
||||
{
|
||||
"ldelossa/gh.nvim",
|
||||
dependencies = {
|
||||
"ldelossa/litee.nvim",
|
||||
},
|
||||
},
|
||||
"eandrju/cellular-automaton.nvim",
|
||||
"gpanders/editorconfig.nvim",
|
||||
{
|
||||
"onsails/lspkind-nvim",
|
||||
},
|
||||
-- {
|
||||
-- "ziglang/zig.vim",
|
||||
-- },
|
||||
{
|
||||
"nvim-lua/plenary.nvim",
|
||||
name = "plenary",
|
||||
},
|
||||
{
|
||||
"stevearc/oil.nvim",
|
||||
config = function()
|
||||
require("oil").setup()
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- -- https://github.com/zbirenbaum/copilot.lua
|
||||
-- "zbirenbaum/copilot.lua",
|
||||
-- cmd = "Copilot",
|
||||
-- event = "InsertEnter",
|
||||
-- config = function()
|
||||
-- require("copilot").setup({
|
||||
-- panel = {
|
||||
-- keymap = {
|
||||
-- jump_prev = "]]",
|
||||
-- jump_next = "[[",
|
||||
-- accept = "<Tab>",
|
||||
-- refresh = "gr",
|
||||
-- open = "<M-]>",
|
||||
-- },
|
||||
-- },
|
||||
-- suggestion = {
|
||||
-- auto_trigger = true,
|
||||
-- keymap = {
|
||||
-- accept = "<M-Tab>",
|
||||
-- },
|
||||
-- },
|
||||
-- })
|
||||
-- -- vim.keymap.set("n", "<leader>cpe", "<cmd>Copilot enable<CR>")
|
||||
-- -- vim.keymap.set("n", "<leader>cpd", "<cmd>Copilot disable<CR>")
|
||||
-- end,
|
||||
-- },
|
||||
{
|
||||
"github/copilot.vim",
|
||||
config = function()
|
||||
-- set <leader>cpd and <leader>cpe to disable/enable copilot
|
||||
vim.keymap.set("n", "<leader>cpe", "<cmd>Copilot enable<CR>")
|
||||
vim.keymap.set("n", "<leader>cpd", "<cmd>Copilot disable<CR>")
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- "Exafunction/codeium.nvim",
|
||||
-- dependencies = {
|
||||
-- "nvim-lua/plenary.nvim",
|
||||
-- "hrsh7th/nvim-cmp",
|
||||
-- },
|
||||
-- config = function()
|
||||
-- require("codeium").setup({
|
||||
-- -- https://github.com/Exafunction/codeium.vim
|
||||
-- })
|
||||
-- end
|
||||
-- },
|
||||
{
|
||||
"ldelossa/gh.nvim",
|
||||
dependencies = {
|
||||
"ldelossa/litee.nvim",
|
||||
},
|
||||
},
|
||||
"eandrju/cellular-automaton.nvim",
|
||||
"gpanders/editorconfig.nvim",
|
||||
|
||||
-- Useful for getting pretty icons, but requires a Nerd Font.
|
||||
{ "nvim-tree/nvim-web-devicons", enabled = vim.g.have_nerd_font },
|
||||
"lambdalisue/nerdfont.vim",
|
||||
"junegunn/vim-easy-align",
|
||||
"rcarriga/nvim-notify",
|
||||
-- Useful for getting pretty icons, but requires a Nerd Font.
|
||||
{ "nvim-tree/nvim-web-devicons", enabled = vim.g.have_nerd_font },
|
||||
"lambdalisue/nerdfont.vim",
|
||||
"junegunn/vim-easy-align",
|
||||
"rcarriga/nvim-notify",
|
||||
|
||||
-- Highlight todo, notes, etc in comments
|
||||
{
|
||||
"folke/todo-comments.nvim",
|
||||
event = "VimEnter",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = { signs = false },
|
||||
},
|
||||
-- Highlight todo, notes, etc in comments
|
||||
{
|
||||
"folke/todo-comments.nvim",
|
||||
event = "VimEnter",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = { signs = false },
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,287 +1,286 @@
|
|||
return {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"saghen/blink.cmp",
|
||||
-- "folke/neodev.nvim",
|
||||
"williamboman/mason.nvim",
|
||||
"mason-org/mason-registry",
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-cmdline",
|
||||
-- "hrsh7th/nvim-cmp",
|
||||
"L3MON4D3/LuaSnip",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"j-hui/fidget.nvim",
|
||||
},
|
||||
config = function()
|
||||
local lspkind = require("lspkind")
|
||||
-- local cmp = require("cmp")
|
||||
-- local cmp_lsp = require("cmp_nvim_lsp")
|
||||
-- local capabilities = vim.tbl_deep_extend(
|
||||
-- "force",
|
||||
-- {},
|
||||
-- vim.lsp.protocol.make_client_capabilities(),
|
||||
-- cmp_lsp.default_capabilities()
|
||||
-- )
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"saghen/blink.cmp",
|
||||
-- "folke/neodev.nvim",
|
||||
"williamboman/mason.nvim",
|
||||
"mason-org/mason-registry",
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-cmdline",
|
||||
-- "hrsh7th/nvim-cmp",
|
||||
"L3MON4D3/LuaSnip",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"j-hui/fidget.nvim",
|
||||
},
|
||||
config = function()
|
||||
local lspkind = require("lspkind")
|
||||
-- local cmp = require("cmp")
|
||||
-- local cmp_lsp = require("cmp_nvim_lsp")
|
||||
-- local capabilities = vim.tbl_deep_extend(
|
||||
-- "force",
|
||||
-- {},
|
||||
-- vim.lsp.protocol.make_client_capabilities(),
|
||||
-- cmp_lsp.default_capabilities()
|
||||
-- )
|
||||
|
||||
require("fidget").setup({})
|
||||
require("mason").setup()
|
||||
require("fidget").setup({})
|
||||
require("mason").setup()
|
||||
|
||||
-- local vue_typescript_plugin = require("mason-registry")
|
||||
-- .get_package("vue-language-server")
|
||||
-- :get_install_path() .. "/node_modules/@vue/language-server" .. "/node_modules/@vue/typescript-plugin"
|
||||
-- local vue_typescript_plugin = require("mason-registry")
|
||||
-- .get_package("vue-language-server")
|
||||
-- :get_install_path() .. "/node_modules/@vue/language-server" .. "/node_modules/@vue/typescript-plugin"
|
||||
|
||||
local capabilities = require("blink.cmp").get_lsp_capabilities()
|
||||
vim.lsp.enable("nixd")
|
||||
vim.lsp.enable("clangd")
|
||||
vim.lsp.enable("basedpyright")
|
||||
require("mason-lspconfig").setup({
|
||||
automatic_enable = true,
|
||||
ensure_installed = {
|
||||
"lua_ls",
|
||||
"ts_ls",
|
||||
"cssls",
|
||||
"tailwindcss",
|
||||
},
|
||||
handlers = {
|
||||
function(server_name) -- default handler (optional)
|
||||
-- if server_name == "rust_analyzer" then
|
||||
-- return
|
||||
-- end
|
||||
require("lspconfig")[server_name].setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
end,
|
||||
local capabilities = require("blink.cmp").get_lsp_capabilities()
|
||||
vim.lsp.enable("nixd")
|
||||
require("mason-lspconfig").setup({
|
||||
automatic_enable = true,
|
||||
ensure_installed = {
|
||||
"lua_ls",
|
||||
"ts_ls",
|
||||
"cssls",
|
||||
"tailwindcss",
|
||||
"pyright",
|
||||
},
|
||||
handlers = {
|
||||
function(server_name) -- default handler (optional)
|
||||
-- if server_name == "rust_analyzer" then
|
||||
-- return
|
||||
-- end
|
||||
require("lspconfig")[server_name].setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
end,
|
||||
|
||||
["lua_ls"] = function()
|
||||
local lspconfig = require("lspconfig")
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { "vim", "it", "describe", "before_each", "after_each" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
["lua_ls"] = function()
|
||||
local lspconfig = require("lspconfig")
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { "vim", "it", "describe", "before_each", "after_each" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
|
||||
["ts_ls"] = function()
|
||||
local lspconfig = require("lspconfig")
|
||||
lspconfig.ts_ls.setup({
|
||||
capabilities = capabilities,
|
||||
-- settings = {
|
||||
-- },
|
||||
-- init_options = {
|
||||
-- plugins = {
|
||||
-- {
|
||||
-- name = "@vue/typescript-plugin",
|
||||
-- location = vue_typescript_plugin,
|
||||
-- languages = { "vue" },
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
filetypes = {
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"javascript.jsx",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"typescript.tsx",
|
||||
-- "vue",
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
})
|
||||
["ts_ls"] = function()
|
||||
local lspconfig = require("lspconfig")
|
||||
lspconfig.ts_ls.setup({
|
||||
capabilities = capabilities,
|
||||
-- settings = {
|
||||
-- },
|
||||
-- init_options = {
|
||||
-- plugins = {
|
||||
-- {
|
||||
-- name = "@vue/typescript-plugin",
|
||||
-- location = vue_typescript_plugin,
|
||||
-- languages = { "vue" },
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
filetypes = {
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"javascript.jsx",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"typescript.tsx",
|
||||
-- "vue",
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(args)
|
||||
local c = vim.lsp.get_client_by_id(args.data.client_id)
|
||||
if not c then
|
||||
return
|
||||
end
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(args)
|
||||
local c = vim.lsp.get_client_by_id(args.data.client_id)
|
||||
if not c then
|
||||
return
|
||||
end
|
||||
|
||||
if vim.bo.filetype == "lua" then
|
||||
-- Format the current buffer on save
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
buffer = args.buf,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ bufnr = args.buf, id = c.id })
|
||||
end,
|
||||
})
|
||||
end
|
||||
end,
|
||||
})
|
||||
if vim.bo.filetype == "lua" then
|
||||
-- Format the current buffer on save
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
buffer = args.buf,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ bufnr = args.buf, id = c.id })
|
||||
end,
|
||||
})
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- local cmp_select = { behavior = cmp.SelectBehavior.Select }
|
||||
-- local cmp_select = { behavior = cmp.SelectBehavior.Select }
|
||||
|
||||
--- Select item next/prev, taking into account whether the cmp window is
|
||||
--- top-down or bottoom-up so that the movement is always in the same direction.
|
||||
-- local select_item_smart = function(dir, opts)
|
||||
-- return function(fallback)
|
||||
-- if cmp.visible() then
|
||||
-- opts = opts or { behavior = cmp.SelectBehavior.Select }
|
||||
-- if cmp.core.view.custom_entries_view:is_direction_top_down() then
|
||||
-- ({ next = cmp.select_next_item, prev = cmp.select_prev_item })[dir](opts)
|
||||
-- else
|
||||
-- ({ prev = cmp.select_next_item, next = cmp.select_prev_item })[dir](opts)
|
||||
-- end
|
||||
-- else
|
||||
-- fallback()
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
--- Select item next/prev, taking into account whether the cmp window is
|
||||
--- top-down or bottoom-up so that the movement is always in the same direction.
|
||||
-- local select_item_smart = function(dir, opts)
|
||||
-- return function(fallback)
|
||||
-- if cmp.visible() then
|
||||
-- opts = opts or { behavior = cmp.SelectBehavior.Select }
|
||||
-- if cmp.core.view.custom_entries_view:is_direction_top_down() then
|
||||
-- ({ next = cmp.select_next_item, prev = cmp.select_prev_item })[dir](opts)
|
||||
-- else
|
||||
-- ({ prev = cmp.select_next_item, next = cmp.select_prev_item })[dir](opts)
|
||||
-- end
|
||||
-- else
|
||||
-- fallback()
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- cmp.setup({
|
||||
-- snippet = {
|
||||
-- expand = function(args)
|
||||
-- require("luasnip").lsp_expand(args.body) -- For `luasnip` users.
|
||||
-- end,
|
||||
-- },
|
||||
-- completion = {
|
||||
-- completeopt = "menu,menuone,noinsert",
|
||||
-- },
|
||||
-- -- No idea what this is
|
||||
-- matching = {
|
||||
-- disallow_fuzzy_matching = false,
|
||||
-- disallow_fullfuzzy_matching = false,
|
||||
-- disallow_partial_fuzzy_matching = false,
|
||||
-- },
|
||||
-- performance = {
|
||||
-- -- debounce = 50,
|
||||
-- debounce = 25,
|
||||
-- -- max_view_entries = 20,
|
||||
-- },
|
||||
-- That crazy window
|
||||
-- window = {
|
||||
-- completion = cmp.config.window.bordered({
|
||||
-- border = "single",
|
||||
-- side_padding = 2,
|
||||
-- col_offset = -3,
|
||||
-- max_width = 80,
|
||||
-- }),
|
||||
-- documentation = cmp.config.window.bordered({
|
||||
-- max_width = 50,
|
||||
-- }),
|
||||
-- },
|
||||
-- mapping = cmp.mapping.preset.insert({
|
||||
-- ["<C-p>"] = select_item_smart("prev", cmp_select),
|
||||
-- ["<C-n>"] = select_item_smart("next", cmp_select),
|
||||
-- ["<C-e>"] = cmp.mapping.close(),
|
||||
-- ["<C-y>"] = cmp.mapping.confirm({ select = true }),
|
||||
-- ["<Tab>"] = cmp.mapping.confirm({ select = true }),
|
||||
-- ["<C-B>"] = cmp.mapping.complete(),
|
||||
-- ["<C-u>"] = cmp.mapping.scroll_docs(-3),
|
||||
-- ["<C-d>"] = cmp.mapping.scroll_docs(3),
|
||||
-- ["<C-g>"] = cmp.mapping.abort(),
|
||||
-- }),
|
||||
-- sorting = {
|
||||
-- comparators = {
|
||||
-- cmp.config.compare.locality,
|
||||
-- cmp.config.compare.offset,
|
||||
-- cmp.config.compare.recently_used,
|
||||
-- cmp.config.compare.exact,
|
||||
-- cmp.config.compare.order,
|
||||
-- cmp.config.compare.length,
|
||||
-- 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,
|
||||
-- cmp.config.compare.kind,
|
||||
-- cmp.config.compare.sort_text,
|
||||
-- },
|
||||
-- },
|
||||
-- sources = cmp.config.sources({
|
||||
-- { name = "neopyter" },
|
||||
-- { name = "nvim_lsp" },
|
||||
-- { name = "codeium" },
|
||||
-- { name = "luasnip" }, -- For luasnip users.
|
||||
-- }, {
|
||||
-- { name = "buffer" },
|
||||
-- }),
|
||||
-- formatting = {
|
||||
-- fields = {
|
||||
-- "abbr",
|
||||
-- "kind",
|
||||
-- "menu",
|
||||
-- },
|
||||
-- expandable_indicator = true,
|
||||
-- format = lspkind.cmp_format({
|
||||
-- mode = "symbol_text",
|
||||
-- maxwidth = 50,
|
||||
-- ellipsis_char = "...",
|
||||
-- menu = {
|
||||
-- neopyter = "[Neopyter]",
|
||||
-- },
|
||||
-- symbol_map = {
|
||||
-- -- specific complete item kind icon
|
||||
-- ["Magic"] = "🪄",
|
||||
-- ["Path"] = "📁",
|
||||
-- ["Dict key"] = "🔑",
|
||||
-- ["Instance"] = "",
|
||||
-- ["Statement"] = "",
|
||||
-- },
|
||||
-- }),
|
||||
-- },
|
||||
-- })
|
||||
-- cmp.setup({
|
||||
-- snippet = {
|
||||
-- expand = function(args)
|
||||
-- require("luasnip").lsp_expand(args.body) -- For `luasnip` users.
|
||||
-- end,
|
||||
-- },
|
||||
-- completion = {
|
||||
-- completeopt = "menu,menuone,noinsert",
|
||||
-- },
|
||||
-- -- No idea what this is
|
||||
-- matching = {
|
||||
-- disallow_fuzzy_matching = false,
|
||||
-- disallow_fullfuzzy_matching = false,
|
||||
-- disallow_partial_fuzzy_matching = false,
|
||||
-- },
|
||||
-- performance = {
|
||||
-- -- debounce = 50,
|
||||
-- debounce = 25,
|
||||
-- -- max_view_entries = 20,
|
||||
-- },
|
||||
-- That crazy window
|
||||
-- window = {
|
||||
-- completion = cmp.config.window.bordered({
|
||||
-- border = "single",
|
||||
-- side_padding = 2,
|
||||
-- col_offset = -3,
|
||||
-- max_width = 80,
|
||||
-- }),
|
||||
-- documentation = cmp.config.window.bordered({
|
||||
-- max_width = 50,
|
||||
-- }),
|
||||
-- },
|
||||
-- mapping = cmp.mapping.preset.insert({
|
||||
-- ["<C-p>"] = select_item_smart("prev", cmp_select),
|
||||
-- ["<C-n>"] = select_item_smart("next", cmp_select),
|
||||
-- ["<C-e>"] = cmp.mapping.close(),
|
||||
-- ["<C-y>"] = cmp.mapping.confirm({ select = true }),
|
||||
-- ["<Tab>"] = cmp.mapping.confirm({ select = true }),
|
||||
-- ["<C-B>"] = cmp.mapping.complete(),
|
||||
-- ["<C-u>"] = cmp.mapping.scroll_docs(-3),
|
||||
-- ["<C-d>"] = cmp.mapping.scroll_docs(3),
|
||||
-- ["<C-g>"] = cmp.mapping.abort(),
|
||||
-- }),
|
||||
-- sorting = {
|
||||
-- comparators = {
|
||||
-- cmp.config.compare.locality,
|
||||
-- cmp.config.compare.offset,
|
||||
-- cmp.config.compare.recently_used,
|
||||
-- cmp.config.compare.exact,
|
||||
-- cmp.config.compare.order,
|
||||
-- cmp.config.compare.length,
|
||||
-- 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,
|
||||
-- cmp.config.compare.kind,
|
||||
-- cmp.config.compare.sort_text,
|
||||
-- },
|
||||
-- },
|
||||
-- sources = cmp.config.sources({
|
||||
-- { name = "neopyter" },
|
||||
-- { name = "nvim_lsp" },
|
||||
-- { name = "codeium" },
|
||||
-- { name = "luasnip" }, -- For luasnip users.
|
||||
-- }, {
|
||||
-- { name = "buffer" },
|
||||
-- }),
|
||||
-- formatting = {
|
||||
-- fields = {
|
||||
-- "abbr",
|
||||
-- "kind",
|
||||
-- "menu",
|
||||
-- },
|
||||
-- expandable_indicator = true,
|
||||
-- format = lspkind.cmp_format({
|
||||
-- mode = "symbol_text",
|
||||
-- maxwidth = 50,
|
||||
-- ellipsis_char = "...",
|
||||
-- menu = {
|
||||
-- neopyter = "[Neopyter]",
|
||||
-- },
|
||||
-- symbol_map = {
|
||||
-- -- specific complete item kind icon
|
||||
-- ["Magic"] = "🪄",
|
||||
-- ["Path"] = "📁",
|
||||
-- ["Dict key"] = "🔑",
|
||||
-- ["Instance"] = "",
|
||||
-- ["Statement"] = "",
|
||||
-- },
|
||||
-- }),
|
||||
-- },
|
||||
-- })
|
||||
|
||||
-- -- menu item highlight
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindMagic", { bg = "NONE", fg = "#D4D434" })
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindPath", { link = "CmpItemKindFolder" })
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindDictkey", { link = "CmpItemKindKeyword" })
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindInstance", { link = "CmpItemKindVariable" })
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindStatement", { link = "CmpItemKindVariable" })
|
||||
-- -- menu item highlight
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindMagic", { bg = "NONE", fg = "#D4D434" })
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindPath", { link = "CmpItemKindFolder" })
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindDictkey", { link = "CmpItemKindKeyword" })
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindInstance", { link = "CmpItemKindVariable" })
|
||||
-- vim.api.nvim_set_hl(0, "CmpItemKindStatement", { link = "CmpItemKindVariable" })
|
||||
|
||||
-- vim.diagnostic.config({
|
||||
-- -- update_in_insert = true, -- Update diagnostics in Insert mode
|
||||
-- -- ^ (if false, diagnostics are updated on InsertLeave)
|
||||
--
|
||||
-- underline = true,
|
||||
--
|
||||
-- virtual_text = true,
|
||||
--
|
||||
-- severity_sort = true, -- high -> low
|
||||
--
|
||||
-- -- float = {
|
||||
-- -- focusable = false,
|
||||
-- -- style = "minimal",
|
||||
-- -- border = "rounded",
|
||||
-- -- source = true,
|
||||
-- -- header = { " Diagnostics", "String" },
|
||||
-- -- prefix = function(_, _, _)
|
||||
-- -- return " ", "String"
|
||||
-- -- end,
|
||||
-- -- },
|
||||
-- })
|
||||
-- vim.diagnostic.config({
|
||||
-- -- update_in_insert = true, -- Update diagnostics in Insert mode
|
||||
-- -- ^ (if false, diagnostics are updated on InsertLeave)
|
||||
--
|
||||
-- underline = true,
|
||||
--
|
||||
-- virtual_text = true,
|
||||
--
|
||||
-- severity_sort = true, -- high -> low
|
||||
--
|
||||
-- -- float = {
|
||||
-- -- focusable = false,
|
||||
-- -- style = "minimal",
|
||||
-- -- border = "rounded",
|
||||
-- -- source = true,
|
||||
-- -- header = { " Diagnostics", "String" },
|
||||
-- -- prefix = function(_, _, _)
|
||||
-- -- return " ", "String"
|
||||
-- -- end,
|
||||
-- -- },
|
||||
-- })
|
||||
|
||||
-- treesitter jupyter notebook stuff
|
||||
-- require("nvim-treesitter.configs").setup({
|
||||
-- textobjects = {
|
||||
-- move = {
|
||||
-- enable = true,
|
||||
-- goto_next_start = {
|
||||
-- ["]j"] = "@cellseparator",
|
||||
-- ["]c"] = "@cellcontent",
|
||||
-- },
|
||||
-- goto_previous_start = {
|
||||
-- ["[j"] = "@cellseparator",
|
||||
-- ["[c"] = "@cellcontent",
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
-- })
|
||||
end,
|
||||
},
|
||||
-- treesitter jupyter notebook stuff
|
||||
-- require("nvim-treesitter.configs").setup({
|
||||
-- textobjects = {
|
||||
-- move = {
|
||||
-- enable = true,
|
||||
-- goto_next_start = {
|
||||
-- ["]j"] = "@cellseparator",
|
||||
-- ["]c"] = "@cellcontent",
|
||||
-- },
|
||||
-- goto_previous_start = {
|
||||
-- ["[j"] = "@cellseparator",
|
||||
-- ["[c"] = "@cellcontent",
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
-- })
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
return {
|
||||
"iamcco/markdown-preview.nvim",
|
||||
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||
build = "cd app && yarn install",
|
||||
init = function()
|
||||
vim.g.mkdp_filetypes = { "markdown" }
|
||||
end,
|
||||
ft = { "markdown" },
|
||||
-- "iamcco/markdown-preview.nvim",
|
||||
-- cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||
-- build = "cd app && yarn install",
|
||||
-- init = function()
|
||||
-- vim.g.mkdp_filetypes = { "markdown" }
|
||||
-- end,
|
||||
-- ft = { "markdown" },
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,46 +5,47 @@ These three tabs are necessary when dealing with this nonsense:
|
|||
- https://github.com/nvimtools/none-ls.nvim
|
||||
--]]
|
||||
return {
|
||||
"jay-babu/mason-null-ls.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"nvimtools/none-ls.nvim",
|
||||
"nvimtools/none-ls-extras.nvim",
|
||||
},
|
||||
config = function()
|
||||
local null_ls = require("null-ls")
|
||||
require("mason-null-ls").setup({
|
||||
ensure_installed = {
|
||||
"stylua",
|
||||
"jq",
|
||||
"basedpyright",
|
||||
"black",
|
||||
},
|
||||
handlers = {
|
||||
-- ["mypy"] = function(source_name, methods)
|
||||
-- local options = {
|
||||
-- extra_args = function()
|
||||
-- local command = "which python"
|
||||
-- local handle = io.popen(command)
|
||||
-- local python_path = ""
|
||||
-- if handle then
|
||||
-- python_path = handle:read("*a")
|
||||
-- python_path = string.gsub(python_path, "\n", "")
|
||||
-- handle:close()
|
||||
-- end
|
||||
-- return { "--python-executable", python_path }
|
||||
-- end,
|
||||
-- }
|
||||
-- null_ls.register(null_ls.builtins.diagnostics.mypy.with(options))
|
||||
-- end,
|
||||
--[[ ["ruff"] = function(source_name, methods)
|
||||
"jay-babu/mason-null-ls.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"nvimtools/none-ls.nvim",
|
||||
"nvimtools/none-ls-extras.nvim",
|
||||
},
|
||||
config = function()
|
||||
local null_ls = require("null-ls")
|
||||
require("mason-null-ls").setup({
|
||||
ensure_installed = {
|
||||
"stylua",
|
||||
"jq",
|
||||
"mypy",
|
||||
"ruff",
|
||||
"black",
|
||||
},
|
||||
handlers = {
|
||||
["mypy"] = function(source_name, methods)
|
||||
local options = {
|
||||
extra_args = function()
|
||||
local command = "which python"
|
||||
local handle = io.popen(command)
|
||||
local python_path = ""
|
||||
if handle then
|
||||
python_path = handle:read("*a")
|
||||
python_path = string.gsub(python_path, "\n", "")
|
||||
handle:close()
|
||||
end
|
||||
return { "--python-executable", python_path }
|
||||
end,
|
||||
}
|
||||
null_ls.register(null_ls.builtins.diagnostics.mypy.with(options))
|
||||
end,
|
||||
--[[ ["ruff"] = function(source_name, methods)
|
||||
null_ls.register(null_ls.builtins.diagnostics.ruff)
|
||||
--require('mason-null-ls').default_setup(source_name, methods) -- to maintain default behavior
|
||||
end, ]]
|
||||
},
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
null_ls.setup()
|
||||
end,
|
||||
null_ls.setup()
|
||||
end,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ vim.keymap.set("n", "n", "nzzzv")
|
|||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
vim.keymap.set("n", "<leader>vwm", function()
|
||||
require("vim-with-me").StartVimWithMe()
|
||||
require("vim-with-me").StartVimWithMe()
|
||||
end)
|
||||
vim.keymap.set("n", "<leader>svwm", function()
|
||||
require("vim-with-me").StopVimWithMe()
|
||||
require("vim-with-me").StopVimWithMe()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>vs", "<C-w>v")
|
||||
|
|
@ -54,19 +54,19 @@ vim.keymap.set("n", "<leader>vpp", "<cmd>e ~/.dotfiles/nvim/.config/nvim/lua/the
|
|||
vim.keymap.set("n", "<leader>mr", "<cmd>CellularAutomaton make_it_rain<CR>")
|
||||
|
||||
vim.keymap.set("n", "<leader><leader>", function()
|
||||
vim.cmd("so")
|
||||
vim.cmd("so")
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "zh", "$viBhzf", {
|
||||
desc = "Fold { block",
|
||||
desc = "Fold { block",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "zj", "$vi[hzf", {
|
||||
desc = "Fold [ block",
|
||||
desc = "Fold [ block",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "zk", "$vibhzf", {
|
||||
desc = "Fold ( block",
|
||||
desc = "Fold ( block",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "ga", "<cmd>EasyAlign<CR>")
|
||||
|
|
@ -77,7 +77,6 @@ vim.keymap.set("v", "<", "<gv")
|
|||
vim.keymap.set("v", ">", ">gv")
|
||||
|
||||
-- Indent with tab
|
||||
vim.keymap.set("i", "<Tab>", "<Tab>")
|
||||
vim.keymap.set("v", "<Tab>", ">gv")
|
||||
vim.keymap.set("v", "<S-Tab>", "<gv")
|
||||
|
||||
|
|
@ -85,9 +84,9 @@ vim.keymap.set("v", "<S-Tab>", "<gv")
|
|||
vim.keymap.set("n", "<C-w>e", "<C-w>j<C-w>q")
|
||||
|
||||
vim.keymap.set("n", "<leader>w", function()
|
||||
vim.ui.input({ prompt = "Enter value for shiftwidth: " }, function(input)
|
||||
vim.o.shiftwidth = tonumber(input)
|
||||
end)
|
||||
vim.ui.input({ prompt = "Enter value for shiftwidth: " }, function(input)
|
||||
vim.o.shiftwidth = tonumber(input)
|
||||
end)
|
||||
end)
|
||||
-- vim.keymap.set("n", "<leader>tc", function()
|
||||
-- -- local file_number = tonumber(vim.fn.input("File number > "), 10)
|
||||
|
|
|
|||
|
|
@ -1,44 +0,0 @@
|
|||
# stolen from https://github.com/RGBCube/ncc/blob/94c349aa767f04f40ff4165c70c15ed3c3996f82/modules/postgresql.nix
|
||||
{ config, lib, pkgs, ... }: let
|
||||
inherit (lib) flip mkForce mkOverride mkValue;
|
||||
in {
|
||||
config.environment.systemPackages = [
|
||||
config.services.postgresql.package
|
||||
];
|
||||
|
||||
options.services.postgresql.ensure = mkValue [];
|
||||
|
||||
config.services.postgresql = {
|
||||
enable = true;
|
||||
package = pkgs.postgresql_17;
|
||||
|
||||
enableJIT = true;
|
||||
enableTCPIP = true;
|
||||
|
||||
settings.listen_addresses = mkForce "::";
|
||||
authentication = mkOverride 10 /* ini */ ''
|
||||
# DATABASE USER AUTHENTICATION
|
||||
local all all peer
|
||||
|
||||
# DATABASE USER ADDRESS AUTHENTICATION
|
||||
host all all ::/0 md5
|
||||
'';
|
||||
|
||||
ensure = [ "postgres" "root" ];
|
||||
|
||||
initdbArgs = [ "--locale=C" "--encoding=UTF8" ];
|
||||
ensureDatabases = config.services.postgresql.ensure;
|
||||
|
||||
ensureUsers = flip map config.services.postgresql.ensure (name: {
|
||||
inherit name;
|
||||
|
||||
ensureDBOwnership = true;
|
||||
|
||||
ensureClauses = {
|
||||
login = true;
|
||||
superuser = name == "postgres" || name == "root";
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -7,7 +7,6 @@ in {
|
|||
"hosts/thegeneralist-central/acme/acmeEnvironment.age".publicKeys = [ thegeneralist ];
|
||||
"hosts/thegeneralist-central/cert.pem.age".publicKeys = [ thegeneralist ];
|
||||
"hosts/thegeneralist-central/credentials.age".publicKeys = [ thegeneralist ];
|
||||
"hosts/thegeneralist-central/credentials_personal.age".publicKeys = [ thegeneralist ];
|
||||
"hosts/thegeneralist-central/cache/key.age".publicKeys = [ thegeneralist ];
|
||||
"hosts/thegeneralist-central/password.age".publicKeys = [ thegeneralist ];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue