Nixos update 29-04-2026, fix hyprland, fix jdtls

This commit is contained in:
Alexander
2026-04-30 12:02:22 +02:00
parent 0ee05eece9
commit fe1f941685
7 changed files with 186 additions and 91 deletions
@@ -0,0 +1,63 @@
-----BEGIN CERTIFICATE-----
MIIFejCCA2KgAwIBAgIUHLPCpX+l4oCWRvL4wNS7ZXogaQ0wDQYJKoZIhvcNAQEL
BQAwLDEQMA4GA1UECgwHSG9tZWxhYjEYMBYGA1UEAwwPSG9tZWxhYiBSb290IENB
MB4XDTI2MDQyNDE1MzAxMFoXDTMxMDQyNDE1MzAxMFowNDEQMA4GA1UECgwHSG9t
ZWxhYjEgMB4GA1UEAwwXSG9tZWxhYiBJbnRlcm1lZGlhdGUgQ0EwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQDGw7Tf176ZtPTKBziT/WlCVWydJK4OHHAM
BquF512ZibpJnoCFJBVgD158WAc8r2e8FW5ZbhDiVHXYsJmmIMKpNB2JH28dos67
CCQ8eJuVPB0RxvsTeilFX0Z6vcOrMDI/tbTc47PxexmnY2vn6EZ31LE1ob7po6sg
CXbymIPYw8MNRlirs0WCbXiRPWv7aX5YfC41e2INoxYIUGkwSQaTm9EMyFCMPQx/
50NEUG8XcwnIxYxczHO1uPq70Dh5h3PytYyO7nM6VfbhJv5TF6MgSPHRAHnJ1OcM
f9WEoe1sPwBB3SQq+EEc26mhzpWJ1NP8k69VvfQGT1RZGVCGjj2lEnztBvLSxRHt
UDjnWhcrM8an5BVw47Co0moOVgiGR29D0QbnqNhzx73geNYF7indVN+S0esvXmlF
dD8XFUrGBqEDCpVBCdiwnjilgmWTEE5L+geh5rf1Xf4lGqAJ/HG/gzh+0aMyhJRO
hhhqy/y0Bh4u9ndEHlefCb1+THPAkp3zD6AlvRTmen4lQCZmXbUdYy0Vzc3wGOdP
7rw0mkXajlgnIxnmVX24qoU7WZY957O2S5eTFkceCytWpzXsEJRkl+tRvtPXUAJy
fgCJcmYu6ysQ5vDNdzYX9PkuBpn7ONG5fAgK+aPukdcVb9igN26Ao6FKNLoq6XQN
QiwfFwcErQIDAQABo4GLMIGIMCIGA1UdEQQbMBmCF0hvbWVsYWIgSW50ZXJtZWRp
YXRlIENBMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1Ud
DgQWBBSKt8hpuCiRvMO9yVVMg5nxoMhc7jAfBgNVHSMEGDAWgBQE/W2BXGJEBEGW
bYJ1acZu9OpBgDANBgkqhkiG9w0BAQsFAAOCAgEAeh5a2mkimOiJiEkqdC9zMSEs
0qczDOImSjap+5jWcKSArlDhD3Ng8855G0mAcdUWqY5fzxuvbPqEgxCCltZpL1sy
5ULP/tVscJLXm6TNMu+txxdAqsqsif2b41rM1WrKthDJpYYygfJ+w7xV6wIucuIW
ZXWkhdF9ByNSK6a2Cvk+uChgVKup0Lkgmka4JnbJ2aOBhNfYN/M+O+0cKwgLmabS
H34Lz+XNfWcxikh8i0XZv+msdL//wIBXt7ij3MM8I82CpIrKmxUzGLf6kskyra8k
R3UL5GvRjP+/p4kPCukEe+38ehV4LubXnFm+EE1Lk2Ssdg5G/2t3D+AVeX3AsJaW
U4NKJNBnz5s5Bew5xpvvL6SYGo75xDh6ED2liNwPU0Qv/CsoLaVhAAMFrwabE9lH
wC91qrjWdd2CmzBwrlxF7OyDxKY9WslMvTvcgJbM0OaCDZtyk4zcF442DdPNoLaT
0zVqiJ4WQxkGA5airADbT7pZBeZjiQFZdwNN54akLQo5FsMfaqk/X++cbY1mlgqo
H1UCqvwT2bsIaO+fUkiR8YuewNPriIwfmE9cKXWndjTrDfmT5e3aXYjPReDBuRXY
67xBSV15UzxxNt2AX6DpLpgOXqOAFH/jNnYuYZNWZVMEjflzN2WjGQ6jAn+j8vA8
b3gaJQ8W9LbQV5Nkahs=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFRDCCAyygAwIBAgIUFwT5aSyhaiDHWGC6zoWdus62NG8wDQYJKoZIhvcNAQEL
BQAwLDEQMA4GA1UECgwHSG9tZWxhYjEYMBYGA1UEAwwPSG9tZWxhYiBSb290IENB
MB4XDTI2MDQyNTE1MzAwOFoXDTM2MDQyMjE1MzAwOFowLDEQMA4GA1UECgwHSG9t
ZWxhYjEYMBYGA1UEAwwPSG9tZWxhYiBSb290IENBMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAkWcMIXerDH0x6dochISzaQms6Ialb1V9cEGs+FIm9kNR
drtBAi3p35a+VSUl1bw4m+uczQgiY5unJSLALklGqYy7PBI0AyvAdCMRcnknn6JO
JXmad1fJLnyKmv4EH6Dq34Qqm/7Ka79rQYUOQhigLu+7+iquZX/UzsuYvVpdTQOz
M3yBt3a9wf3kX/aJTfriudW8gMpkYoW3DCDK0B16b1N0cyv2fvDsSR1Xfmi+YVu1
r8PQ5lvH3C4T6gBJQhTEHWkCkuxgOTQaqOS4zBe6MgyDuiAnEqGIljjkwY/uEzWP
a0vOGgeu5BbktC7iAU+fPbIARTq/RobFBkikxCbb1n4/FyDFHkBFXQU71AEWmkLt
wK1ekHGjw/iIgxkX3haV/UZwd0qlHAmUYMge5YmsXo/Kfl40t1Ma2LBP/NRuz8eP
gMPFE51ZgEf/TVH84G2gcrKxbsIRRcxrnrZ2o2aQk5Ylhg6j4cmiRR27GF5zJgbQ
jA4ZAcRE38YIzHDgS/95eMFz6LJYOEVxfj6zvEFcmV2NAH3rsIdCuNu2Wel7Zzzf
YusIfFyf543evYD9Mewi+46bSs848SzFsT8SynydC6u8cpK84BsquwuInlOQWUvM
smewvacLMENHtKNML0rJEpCCVI8IdYCqsMviuC0fzotP8DeSDBjjS9HUfSxWOIkC
AwEAAaNeMFwwGgYDVR0RBBMwEYIPSG9tZWxhYiBSb290IENBMA4GA1UdDwEB/wQE
AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQE/W2BXGJEBEGWbYJ1acZu
9OpBgDANBgkqhkiG9w0BAQsFAAOCAgEAA13poaND3jq4dMzGcn2XVz1a6g4B7mxF
GHWXSHe9/Q/kjF2qnEdea7VFLCCzZ0OqC2UpfKnTW4xbCZ/d4QZqcgGXJehfuuhE
oux1Nm0a3jBZQ+EYnJDuAgOb80q0S55Iwfh57l1613xdAh73x1yWtlGH5wlCRj27
C/ilyws1Yk26N1qzwfh6A42yEjv29Aos4hTn1jUMHJH63A5ke2tRnYDq2HR9x9PW
xhxHm8NsK0jMmvOSOW9n1X6X3UhTfzNyHY8PMCQeXG+9ppnkYgOda0fDWTD21iqq
l22MKqEuGfq84D3HaK/TlLP0vywao4Ug/K7jE/j/GWMkTmdxIjTSQ7VmRyzdXqsE
HsjpWAgRrY6JdoW2V0F90qk6Op1hVcGRdXznhCx0/TWG272d0dzetIqcHfgn5n7z
0DYSCS/4WaA25x4johdic58e6dCIDat88nbbZCwZaHDER6PBZprgm1J/6ek7jQaR
arWksZX/+PBg1IGAHSkRiVpx8kq2fFEUbbSDONxJmE8FEWDp6frq3a4pbleqJenK
1IOLVJg9D3RJAvBa14kOeocyb0upZ8Zc/oSm+ojyVt56PoBPQC28SJ+T9mAS1/uL
bWFMtkTU0oVuytOHTvekvBJbloX9HqTDtkjV/A/PSLrg7dXW09v3RhPjLGKj5Gf1
9HMKL6MV2is=
-----END CERTIFICATE-----
+4 -1
View File
@@ -13,7 +13,10 @@
(import ./overlays/zulu22.nix)
];
security.pki.certificateFiles = [ ./certs/homelab-com.pem ];
security.pki.certificateFiles = [
./certs/homelab-com.pem
./certs/homelab-lan-chain.crt
];
users.users.${username} = {
description = "NixOS Omen Laptop";
@@ -317,6 +317,13 @@ Must be called BEFORE jdtls starts. Sets global lsp-java-vmargs."
;; Prevent Semgrep from receiving Java-specific commands it can't handle
(lsp-disable-method-for-server "workspace/executeCommand" 'semgrep-ls)
;; Fix: boot-ls (Spring Boot LS) doesn't implement willSaveWaitUntil but lsp-mode
;; sends it anyway when multiple servers are connected (jdtls + boot-ls for Java).
;; boot-ls uses lsp4j's default which throws UnsupportedOperationException, causing hang.
;; See: https://github.com/spring-projects/spring-tools (SimpleLanguageServer.java:455)
;; Bug is in lsp-mode's multi-server capability checking, not boot-ls.
(lsp-disable-method-for-server "textDocument/willSaveWaitUntil" 'boot-ls)
;; Register nixd LSP client for Nix files
(lsp-register-client
(make-lsp-client :new-connection (lsp-stdio-connection "nixd")
@@ -325,18 +332,41 @@ Must be called BEFORE jdtls starts. Sets global lsp-java-vmargs."
:server-id 'nixd))
;; Nix LSP configuration
(setq lsp-nix-nil-formatter ["nixpkgs-fmt"]))
(setq lsp-nix-nil-formatter ["nixpkgs-fmt"])
;; Fix: Handle textEdit with only :newText and no range (jdtls lazy textEdit bug)
;; When jdtls returns textEdit with only :newText and no :range/:insert/:replace,
;; lsp-mode silently fails to insert. This uses markers as fallback.
(advice-add 'lsp-completion--exit-fn :around
(lambda (orig-fn candidate status &optional candidates)
(let* ((item (plist-get (text-properties-at 0 candidate) 'lsp-completion-item))
(text-edit (when item (lsp:completion-item-text-edit? item)))
(markers (plist-get (text-properties-at 0 candidate) 'lsp-completion-markers)))
;; If textEdit exists but has no range, fix it using markers
(if (and text-edit
(plist-get text-edit :newText)
(not (plist-get text-edit :range))
(not (plist-get text-edit :insert))
markers)
(let ((start (car markers))
(end (cadr markers)))
(when (and start end (markerp end))
(setq end (marker-position end)))
(when (and start end)
;; Delete the prefix and insert the new text manually
(delete-region start end)
(goto-char start)
(insert (plist-get text-edit :newText))))
;; Otherwise call original
(funcall orig-fn candidate status candidates))))
'((name . lsp-completion--exit-fn-advice)))
;; Use company-capf with yasnippet for completions
(setq +lsp-company-backends '(company-capf :with company-yasnippet)))
;; Enable LSP for nix-mode
(add-hook! 'nix-mode-hook #'lsp-deferred)
(after! claude-code-ide
(use-package claude-code-ide
:bind ("C-c C-'" . claude-code-ide-menu) ; Set your favorite keybinding
:config
(claude-code-ide-emacs-tools-setup))) ; Optionally enable Emacs MCP tools
(after! treemacs
(setq treemacs-collapse-dirs 3)
)
@@ -166,7 +166,7 @@
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
(ruby +lsp) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
+1 -1
View File
@@ -114,7 +114,7 @@
semgrep
devpod
tmux
bottles
#bottles
terraform
kubectl
kubectx