diff --git a/flake.lock b/flake.lock index a158800..6b223da 100644 --- a/flake.lock +++ b/flake.lock @@ -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": { diff --git a/hosts/thegeneralist-central/acme/default.nix b/hosts/thegeneralist-central/acme/default.nix index 461b078..eca4206 100644 --- a/hosts/thegeneralist-central/acme/default.nix +++ b/hosts/thegeneralist-central/acme/default.nix @@ -17,9 +17,6 @@ in { extraDomainNames = [ "*.${domain}" ]; group = "acme"; }; - "git.${domain}" = { - group = "acme"; - }; "internal.${domain}" = { group = "acme"; }; diff --git a/hosts/thegeneralist-central/archive/archivebox.nix b/hosts/thegeneralist-central/archive/archivebox.nix index bd5edb1..85859ff 100644 --- a/hosts/thegeneralist-central/archive/archivebox.nix +++ b/hosts/thegeneralist-central/archive/archivebox.nix @@ -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 ]; diff --git a/hosts/thegeneralist-central/archive/default.nix b/hosts/thegeneralist-central/archive/default.nix index 0e8594a..a19a6b0 100644 --- a/hosts/thegeneralist-central/archive/default.nix +++ b/hosts/thegeneralist-central/archive/default.nix @@ -5,7 +5,7 @@ let ssl = { forceSSL = true; quic = true; - useACMEHost = acmeDomain; + useACMEHost = domain; }; in { diff --git a/hosts/thegeneralist-central/cert.pem.age b/hosts/thegeneralist-central/cert.pem.age index 29686e8..ee2225e 100644 Binary files a/hosts/thegeneralist-central/cert.pem.age and b/hosts/thegeneralist-central/cert.pem.age differ diff --git a/hosts/thegeneralist-central/configuration.nix b/hosts/thegeneralist-central/configuration.nix index 1e5ec17..38e0e08 100644 --- a/hosts/thegeneralist-central/configuration.nix +++ b/hosts/thegeneralist-central/configuration.nix @@ -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 = { diff --git a/hosts/thegeneralist-central/credentials_personal.age b/hosts/thegeneralist-central/credentials_personal.age deleted file mode 100644 index aaa7573..0000000 --- a/hosts/thegeneralist-central/credentials_personal.age +++ /dev/null @@ -1,5 +0,0 @@ -age-encryption.org/v1 --> ssh-ed25519 pp9qdQ Dd/XjOu+4aSiGxiCRcFOD+Hv25SqRqoqb0fk+tHSfSo -wihtf9gMmLhRfr8Lx5NISOn9Y96Au1DWg6xMLx3XAtA ---- HS8dzuvW6BKH9tASzN6Mc90lU3i13aidVzJYcpTTfrU -k$-rjmR'휈8_?/9z"q^2>)yC*NVehi<LF|1%Ĝ:OG[OX F4aHl63jB}6 bkPTm[Y|ę7fwT*yzxT?Ye_% \ No newline at end of file diff --git a/hosts/thegeneralist-central/dns.nix b/hosts/thegeneralist-central/dns.nix index 73c537e..e58bda0 100644 --- a/hosts/thegeneralist-central/dns.nix +++ b/hosts/thegeneralist-central/dns.nix @@ -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 + } ''; }; diff --git a/hosts/thegeneralist-central/forgejo/default.nix b/hosts/thegeneralist-central/forgejo/default.nix deleted file mode 100644 index 30ca4cf..0000000 --- a/hosts/thegeneralist-central/forgejo/default.nix +++ /dev/null @@ -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 ]; -} diff --git a/hosts/thegeneralist-central/site.nix b/hosts/thegeneralist-central/site.nix index afc83f5..6d9ebd4 100644 --- a/hosts/thegeneralist-central/site.nix +++ b/hosts/thegeneralist-central/site.nix @@ -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; }; }; } diff --git a/lib/default.nix b/lib/default.nix index 25618e8..c7e9336 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -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 diff --git a/lib/option.nix b/lib/option.nix deleted file mode 100644 index 9a8fc34..0000000 --- a/lib/option.nix +++ /dev/null @@ -1,12 +0,0 @@ -_: _: super: let - inherit (super) mkOption; -in { - mkConst = value: mkOption { - default = value; - readOnly = true; - }; - - mkValue = default: mkOption { - inherit default; - }; -} diff --git a/modules/common/ghostty.nix b/modules/common/ghostty.nix index dc2276d..95fb7d8 100644 --- a/modules/common/ghostty.nix +++ b/modules/common/ghostty.nix @@ -11,7 +11,7 @@ clearDefaultKeybinds = false; settings = { # theme = "tokyonight"; - theme = "Gruvbox Dark Hard"; + theme = "GruvboxDarkHard"; font-family = "Berkeley Mono"; font-size = 16; diff --git a/modules/common/neovim.nix b/modules/common/neovim.nix index 020eac5..f753c06 100644 --- a/modules/common/neovim.nix +++ b/modules/common/neovim.nix @@ -19,10 +19,7 @@ in { python313 python313Packages.pip - uv python313Packages.virtualenv - basedpyright - black nodejs nodePackages."sass" diff --git a/modules/common/nix.nix b/modules/common/nix.nix index dd01d84..b2e5528 100644 --- a/modules/common/nix.nix +++ b/modules/common/nix.nix @@ -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; }; diff --git a/modules/common/nushell/config.nu b/modules/common/nushell/config.nu index 164cd5f..9c9c02f 100644 --- a/modules/common/nushell/config.nu +++ b/modules/common/nushell/config.nu @@ -22,7 +22,7 @@ $env.config.completions = { enable: true max_results: 100 completer: {|tokens: list| - 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 diff --git a/modules/common/nushell/default.nix b/modules/common/nushell/default.nix index 0f76b41..1690b10 100644 --- a/modules/common/nushell/default.nix +++ b/modules/common/nushell/default.nix @@ -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" ]; }) ]; } diff --git a/modules/common/rust.nix b/modules/common/rust.nix index 354345b..134b8ae 100644 --- a/modules/common/rust.nix +++ b/modules/common/rust.nix @@ -26,9 +26,6 @@ nixfmt-rfc-style libiconv - - clang - clang-analyzer ]; }; } diff --git a/modules/common/tailscale.nix b/modules/common/tailscale.nix index 3de9873..9b0cd4a 100644 --- a/modules/common/tailscale.nix +++ b/modules/common/tailscale.nix @@ -1,7 +1,7 @@ { - # services.tailscale = { - # enable = true; - # }; - # - # networking.search = [ "shorthair-wall.ts.net" ]; + services.tailscale = { + enable = true; + }; + + networking.search = [ "shorthair-wall.ts.net" ]; } diff --git a/modules/darwin/karabiner.nix b/modules/darwin/karabiner.nix index 5ae9ed1..c86c75c 100644 --- a/modules/darwin/karabiner.nix +++ b/modules/darwin/karabiner.nix @@ -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; + }; + }]; } diff --git a/modules/darwin/packages.nix b/modules/darwin/packages.nix index 5be9f24..72b4f87 100644 --- a/modules/darwin/packages.nix +++ b/modules/darwin/packages.nix @@ -1,5 +1,5 @@ { pkgs, ... }: { homebrew.enable = true; - homebrew.casks = [ "google-chrome" ]; + homebrew.casks = [ "ungoogled-chromium" ]; environment.systemPackages = [ pkgs.iina ]; } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/autopairs.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/autopairs.lua deleted file mode 100644 index 674b6a2..0000000 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/autopairs.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - "windwp/nvim-autopairs", - event = "InsertEnter", - config = true, - -- use opts = {} for passing setup options - -- this is equivalent to setup({}) function -} diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua index e080021..3fc3e92 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua @@ -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 + -- }, } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/init.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/init.lua index 6cc7027..fb7a1a6 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/init.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/init.lua @@ -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 = "", - -- refresh = "gr", - -- open = "", - -- }, - -- }, - -- suggestion = { - -- auto_trigger = true, - -- keymap = { - -- accept = "", - -- }, - -- }, - -- }) - -- -- vim.keymap.set("n", "cpe", "Copilot enable") - -- -- vim.keymap.set("n", "cpd", "Copilot disable") - -- end, - -- }, - { - "github/copilot.vim", - config = function() - -- set cpd and cpe to disable/enable copilot - vim.keymap.set("n", "cpe", "Copilot enable") - vim.keymap.set("n", "cpd", "Copilot disable") - vim.keymap.set("i", "", 'copilot#Accept("\\")', { - 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 = "", + -- refresh = "gr", + -- open = "", + -- }, + -- }, + -- suggestion = { + -- auto_trigger = true, + -- keymap = { + -- accept = "", + -- }, + -- }, + -- }) + -- -- vim.keymap.set("n", "cpe", "Copilot enable") + -- -- vim.keymap.set("n", "cpd", "Copilot disable") + -- end, + -- }, + { + "github/copilot.vim", + config = function() + -- set cpd and cpe to disable/enable copilot + vim.keymap.set("n", "cpe", "Copilot enable") + vim.keymap.set("n", "cpd", "Copilot disable") + 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 }, + }, } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua index 3c6d309..c094741 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua @@ -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({ - -- [""] = select_item_smart("prev", cmp_select), - -- [""] = select_item_smart("next", cmp_select), - -- [""] = cmp.mapping.close(), - -- [""] = cmp.mapping.confirm({ select = true }), - -- [""] = cmp.mapping.confirm({ select = true }), - -- [""] = cmp.mapping.complete(), - -- [""] = cmp.mapping.scroll_docs(-3), - -- [""] = cmp.mapping.scroll_docs(3), - -- [""] = 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({ + -- [""] = select_item_smart("prev", cmp_select), + -- [""] = select_item_smart("next", cmp_select), + -- [""] = cmp.mapping.close(), + -- [""] = cmp.mapping.confirm({ select = true }), + -- [""] = cmp.mapping.confirm({ select = true }), + -- [""] = cmp.mapping.complete(), + -- [""] = cmp.mapping.scroll_docs(-3), + -- [""] = cmp.mapping.scroll_docs(3), + -- [""] = 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, + }, } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/markdown.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/markdown.lua index bb96fbc..e9d7525 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/markdown.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/markdown.lua @@ -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" }, } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/nullls.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/nullls.lua index 76b9b9c..7c30498 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/nullls.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/nullls.lua @@ -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, } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/remap.lua b/modules/dotfiles/nvim/lua/thegeneralist/remap.lua index 41b94c0..8766e4d 100755 --- a/modules/dotfiles/nvim/lua/thegeneralist/remap.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/remap.lua @@ -16,10 +16,10 @@ vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "N", "Nzzzv") vim.keymap.set("n", "vwm", function() - require("vim-with-me").StartVimWithMe() + require("vim-with-me").StartVimWithMe() end) vim.keymap.set("n", "svwm", function() - require("vim-with-me").StopVimWithMe() + require("vim-with-me").StopVimWithMe() end) vim.keymap.set("n", "vs", "v") @@ -54,19 +54,19 @@ vim.keymap.set("n", "vpp", "e ~/.dotfiles/nvim/.config/nvim/lua/the vim.keymap.set("n", "mr", "CellularAutomaton make_it_rain") vim.keymap.set("n", "", 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", "EasyAlign") @@ -77,7 +77,6 @@ vim.keymap.set("v", "<", "", ">gv") -- Indent with tab -vim.keymap.set("i", "", "") vim.keymap.set("v", "", ">gv") vim.keymap.set("v", "", "", "e", "jq") vim.keymap.set("n", "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", "tc", function() -- -- local file_number = tonumber(vim.fn.input("File number > "), 10) diff --git a/modules/postgresql.nix b/modules/postgresql.nix deleted file mode 100644 index 071069a..0000000 --- a/modules/postgresql.nix +++ /dev/null @@ -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"; - }; - }); - }; -} - diff --git a/secrets.nix b/secrets.nix index 8ea2f3f..ad9a0d8 100644 --- a/secrets.nix +++ b/secrets.nix @@ -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 ];