From ea63d5e273bf96da32d79de9bbea6fbc443c9755 Mon Sep 17 00:00:00 2001 From: Paul-Henri Froidmont Date: Tue, 29 Oct 2024 22:31:09 +0100 Subject: [PATCH] wip --- flake.lock | 112 ++++++++++++++++++++++- flake.nix | 2 + hosts/wsl/certs/Foyer-Group-Root-CA.crt | 31 +++++++ hosts/wsl/certs/Foyer-Sub-CA.crt | 39 ++++++++ hosts/wsl/default.nix | 114 ++++++++++++++++++++++++ modules/desktop/zsh.nix | 5 ++ modules/editor/vim/vim.nix | 6 ++ modules/options.nix | 2 +- 8 files changed, 306 insertions(+), 5 deletions(-) create mode 100755 hosts/wsl/certs/Foyer-Group-Root-CA.crt create mode 100755 hosts/wsl/certs/Foyer-Sub-CA.crt create mode 100644 hosts/wsl/default.nix diff --git a/flake.lock b/flake.lock index f29b09e..db3c13b 100644 --- a/flake.lock +++ b/flake.lock @@ -42,6 +42,22 @@ } }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", @@ -55,7 +71,7 @@ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" } }, - "flake-compat_2": { + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1696426674, @@ -110,6 +126,24 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flameshot-git": { "flake": false, "locked": { @@ -128,7 +162,7 @@ }, "git-hooks": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "gitignore": "gitignore", "nixpkgs": [ "nixvim", @@ -239,6 +273,27 @@ "type": "github" } }, + "nixos-wsl": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1730120924, + "narHash": "sha256-I6hwd+YlgefioLfmsM04MxzbEAES1N328/T+VqhcWnQ=", + "owner": "nix-community", + "repo": "NixOS-WSL", + "rev": "b124084667fb4c912fda68fdd9d05f59e18b6ef7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "main", + "repo": "NixOS-WSL", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1728492678, @@ -255,6 +310,22 @@ "type": "github" } }, + "nixpkgs-master": { + "locked": { + "lastModified": 1731682847, + "narHash": "sha256-6O0APLMLj/Zp2iDQVUVDiVTMWC1XC3TcVHuufzZ0dS0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a8eb04832bed6c5cee8cd2d148a77644c5a4197f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { "lastModified": 1728740863, @@ -272,6 +343,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1729973466, + "narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cd3e8833d70618c4eea8df06f95b364b016d4950", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1728492678, "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", @@ -290,7 +377,7 @@ "nixvim": { "inputs": { "devshell": "devshell", - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "flake-parts": "flake-parts", "git-hooks": "git-hooks", "home-manager": "home-manager_2", @@ -320,7 +407,9 @@ "emacs-overlay": "emacs-overlay", "flameshot-git": "flameshot-git", "home-manager": "home-manager", - "nixpkgs": "nixpkgs_2", + "nixos-wsl": "nixos-wsl", + "nixpkgs": "nixpkgs_3", + "nixpkgs-master": "nixpkgs-master", "nixvim": "nixvim", "vim-org-roam": "vim-org-roam", "vim-yazi": "vim-yazi" @@ -341,6 +430,21 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index a37f37b..5ae1b9f 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,7 @@ { inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs-master.url = "github:nixos/nixpkgs/master"; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; @@ -22,6 +23,7 @@ url = "github:flameshot-org/flameshot"; flake = false; }; + nixos-wsl.url = "github:nix-community/NixOS-WSL/main"; }; outputs = diff --git a/hosts/wsl/certs/Foyer-Group-Root-CA.crt b/hosts/wsl/certs/Foyer-Group-Root-CA.crt new file mode 100755 index 0000000..abaacb4 --- /dev/null +++ b/hosts/wsl/certs/Foyer-Group-Root-CA.crt @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFYzCCA0ugAwIBAgIQGdeAPz782qlMfDK9Mp+7DjANBgkqhkiG9w0BAQsFADAe +MRwwGgYDVQQDExNGb3llci1Hcm91cC1Sb290LUNBMB4XDTE5MDIxMjEyNDAzN1oX +DTM5MDIxMjEyNTAzMlowHjEcMBoGA1UEAxMTRm95ZXItR3JvdXAtUm9vdC1DQTCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1B7QRo9beAqb8aFGqGBlya +veWDPu/0ZdF4v+GCspw2AvQx9EQW373QLxa9bdnbHmij8tah/hvLaYUksRl/0kbZ +Gik6O8caY+06a3dYwpQkOCjV2tHoPiTsZUyg5hdsQYIvZXmtXlA+qcDc+N5WjPjU +4/KY/kgJNCQBh7DM2OziE6SQMn+i+iKiIuJlCT8Q03Y3FZR0n4aOW90YGYKoISh8 +VKuacw0D22MvxhZX8X6zIuMpH8vEXsMwIcCBENEowi0bCye5Aj1Jeyw0mLRUaDfE +aKxFZedrAC3pZKvX9SKLqMPM/NZLgK9WTbTG1c4KrRa1S/OKrUp36y4fgdgEjvPU +WtDaGBSDOqVqylLC5FnJjYEJESQcuOzhiJyYqZY9Cme/9QoiAmPxAVjTFZVBVyJ/ +0r6JVygBYS5l3BbV7hJ76aVHrwy4f/CuHlnaIpax99wljvgf0QFEyXHGgzOu8tmc +g08OhlwfydSttMrsrj1wLrOTYbGLek4l4G7hJrtbqV3M0U4lforXhEFl/PWTeh7u +ytgW7RAqC/kCUVFPgZzcgAsFXJHPAhEGjMN8//eY13tn9D9dy8kxGYt+PMHWaPdH +ZYEOrPXogQB8iU0Z7g9pjzX/GPjcsJG6wr2D8yhFmfkanKE3Q7x5xJoeATswpnT5 +gYBYJ8EMnQnSydjR/0pbAgMBAAGjgZwwgZkwDgYDVR0PAQH/BAQDAgEGMBIGA1Ud +EwEB/wQIMAYBAf8CAQIwHQYDVR0OBBYEFNZ6BPnRJmRv4hzKAOWlKzYBvH8cMFQG +A1UdIARNMEswSQYJKwYBBAGCnDkBMDwwOgYIKwYBBQUHAgIwLh4sAEwAZQBnAGEA +bAAgAFAAbwBsAGkAYwB5ACAAUwB0AGEAdABlAG0AZQBuAHQwDQYJKoZIhvcNAQEL +BQADggIBAEwuHKngSP8SxCQ0qCWM1uLCdLdpdHnn4WftOczJTotXA8RZvdKQn5N2 +BNR8PI3tQ7aauPB/0YNfaGDaDdg2g1is/1Oh0PFaN4mYcbZIJr6El+IDdcPcGngQ +YZYHtXqJ3y82uVM1A8cWPfx44MT5eMoK9sqpaZJaQM12BkhYkUYiAn2qaIRHrj4d +xa3mmuxUqNmxiVcFPv357TvmuGsbmgbtLE+zRzhNStoE3VNd0Efl7wYD84UpKB2x +hC/V5AD+FXwleDdCz2o+U1IjBnBos+cksqsJiLvYg2Fn4C4rRD/bYanOSP3Lh4ll +eHnXOuRDgJLyZj3MRTZl9LD5czxU+pk/luNgJyGiAuykVhcr52PKybxXYCnQmiXw +uCS8DYNjth4uSWIQqPGiNsTerdDsGUFQznTblT5e9ZArXwsa+iGno0AIUPmg08EW +/twNdm0NSVM2tzVoKsUJxNO0GwE+j4NLGdZgxs5NlpmlKqCVK+YX4XHkbfFMu5Z3 +Tl+QnLP+XbKej08mO6r8IEmJmnjKvpXOYxme9XCyAeArzrhvIwMfA0Qvy2qpTaBW +WdCWCiVe2F3L3e0afsfIZ/QOApjgU0tT2iz+2cPfVYHMve0RES3CGjdMCN8WHOKt +w654Qw7ZrChUoLsPfjyhlHUB7UipQtIDT79QFxtqdi+HWTO/59Wl +-----END CERTIFICATE----- diff --git a/hosts/wsl/certs/Foyer-Sub-CA.crt b/hosts/wsl/certs/Foyer-Sub-CA.crt new file mode 100755 index 0000000..e0c6ec8 --- /dev/null +++ b/hosts/wsl/certs/Foyer-Sub-CA.crt @@ -0,0 +1,39 @@ +-----BEGIN CERTIFICATE----- +MIIG5zCCBM+gAwIBAgITZQAAAAgE68Dg5FuAUQAAAAAACDANBgkqhkiG9w0BAQsF +ADAeMRwwGgYDVQQDExNGb3llci1Hcm91cC1Sb290LUNBMB4XDTE5MDIxMjE1MjYx +N1oXDTI5MDIxMjE1MzYxN1owRDESMBAGCgmSJomT8ixkARkWAmx1MRcwFQYKCZIm +iZPyLGQBGRYHbGVmb3llcjEVMBMGA1UEAxMMRm95ZXItU3ViLUNBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2lTHYcFx1SjtRKaKKYUwlZBd2PCt9D+D +qdn7qwgL8sEFSvydfIWTyq8fI4VLvjCg93G7hdK/+IKvBMuExNaUXAwquyJ7Xfez +sWPXSpCS9k8LbNpBcTQrjY6vi7ldtaveZlngzwTQ2DMj2jBcEecZCtSYjpF4Tvqd +up9U0wmzJP447cxWg+9PvU8dnt2oipeZLGjh2CjQfm26yrKse/1hEtaBkmeDo9ko +zWEiuJUjoYZ8Zi82iDftW2nwBK/4QBDPYXEcWcL2O+Y4lY5ccgQupqTIrKNuDlU0 +lUBaLWeiHH+arMACi8V2PtXssFaG/FOL5IiQrqDOwQTpxUPy5AGF7wIDAQABo4IC +9jCCAvIwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFKkHvhdxLAGlvxPEzggz +LfoVCNLRMFQGA1UdIARNMEswSQYJKwYBBAGCnDkBMDwwOgYIKwYBBQUHAgIwLh4s +AEwAZQBnAGEAbAAgAFAAbwBsAGkAYwB5ACAAUwB0AGEAdABlAG0AZQBuAHQwGQYJ +KwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHwYDVR0jBBgwFoAU1noE+dEmZG/iHMoA5aUrNgG8fxwwggEKBgNV +HR8EggEBMIH+MIH7oIH4oIH1hoHFbGRhcDovLy9DTj1Gb3llci1Hcm91cC1Sb290 +LUNBLENOPUZveWVyLUdyb3VwLVJvb3QtQ0EsQ049Q0RQLENOPVB1YmxpYyUyMEtl +eSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9bGVm +b3llcixEQz1sdT9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0 +Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnSGK2h0dHA6Ly9jcmwuZm95ZXIubHUv +Rm95ZXItR3JvdXAtUm9vdC1DQS5jcmwwgf0GCCsGAQUFBwEBBIHwMIHtMIGxBggr +BgEFBQcwAoaBpGxkYXA6Ly8vQ049Rm95ZXItR3JvdXAtUm9vdC1DQSxDTj1BSUEs +Q049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmln +dXJhdGlvbixEQz1sZWZveWVyLERDPWx1P2NBQ2VydGlmaWNhdGU/YmFzZT9vYmpl +Y3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MDcGCCsGAQUFBzAChitodHRw +Oi8vYWlhLmZveWVyLmx1L0ZveWVyLUdyb3VwLVJvb3QtQ0EuY3J0MA0GCSqGSIb3 +DQEBCwUAA4ICAQC0RdvBmQkEjTpP0VzBYojCnYBytzU/1eDtOS3t7vB7dRA6oo65 +nqjUXvf5jKUD3WA7bZoBL5WO9TFlzyKgPyfGaDks20vS4Xl/bdsq9Cv9wjoenrfa +lTExbZ9u5+UgzY0dnjkJV6cUEx0v6dujviTgwyLPOL3/5JulkwmKb8tcuUedS0GP +MbshL7J73IJ7t5ZwZkJMZ2fAQEsmGjWYupe9vdKCs4WDPiNrw9zU3seuWH5dWqfS +0bO6QROc8Zqrd/+ZE7quxNFw8j/DtTrq+5Xg+uCOV6nGN6ANLbcF1DO6S8mmzXlF +2cPO3UffxCKpM+3zg+NFfOS5S7H71lxm+SgD7Qf0SPxxDOUC3p3urmAKHWvvihfc +Ttd9MOTcF5hi2Edl2NGrORxksnLAyOkPg/9H+JdL0J1h8RrkPhhl87fmQd1VONdP +D8n4/r0hD4RuhWQtih/b/Ode3b2NjW77rHd+5/kHdFAQKoJwXZ2kulJ7ANtT2DkW +hpzdvkhxOchnh39E2PEH6WiMAeKHXHgqGXqiGAWoLvIvk/ciP5VG3m/Nly9J2A7f +C8OhpoJcExnxrL1rHH+QWO3wVvbYrtKSsKqMqS7Bu8gWsAbEw8HpXgdO5TyJ3RHM +yql2gDHKnbshIff/7tjPNwk5mttAPHtignx/MvOnRmnJvpug31v0UVEcig== +-----END CERTIFICATE----- diff --git a/hosts/wsl/default.nix b/hosts/wsl/default.nix new file mode 100644 index 0000000..8872060 --- /dev/null +++ b/hosts/wsl/default.nix @@ -0,0 +1,114 @@ +{ + inputs, + pkgs, + config, + ... +}: +{ + + imports = [ + inputs.nixos-wsl.nixosModules.default + ]; + + wsl = { + enable = true; + wslConf = { + network.generateResolvConf = false; + }; + }; + + networking = { + nameservers = [ + "10.33.0.100" + "10.33.1.30" + "1.1.1.1" + ]; + proxy = { + httpProxy = "http://127.0.0.1:3128"; + httpsProxy = "http://127.0.0.1:3128"; + noProxy = ".lefoyer.lu,.foyer.lu,.foyer.cloud,localhost,127.0.0.1"; + }; + }; + + modules = { + editor = { + vim.enable = true; + }; + desktop.file-manager.enable = true; + desktop.zsh.enable = true; + }; + + environment.systemPackages = with pkgs; [ + scala-cli + jdk17 + httpie + zsh-syntax-highlighting + tldr + nil + coursier + nodejs + imagemagick + (sbt.override { jre = jdk17; }) + mill + kafkactl + ]; + + security.pki.certificateFiles = [ + "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" + ./certs/Foyer-Group-Root-CA.crt + ./certs/Foyer-Sub-CA.crt + ]; + + environment.variables = { + JAVAX_NET_SSL_TRUSTSTORE = "/mnt/c/Users/RDO/scoop/apps/java21/current/lib/security/cacerts"; + JAVA_OPTS = "-Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128 -Djavax.net.ssl.trustStore=/mnt/c/Users/RDO/scoop/apps/java21/current/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit"; + }; + + home-manager.users.${config.user.name} = { + home.file.".sbt/repositories".text = '' + [repositories] + local + maven-local + nexus-maven: https://nexus.foyer.lu/repository/mvn-all/ + nexus-ivy: https://nexus.foyer.lu/repository/ivy-all/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext] + nexus-ivy-sbt: https://nexus.foyer.lu/repository/ivy-all/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[artifact](-[classifier])-[type].[ext] + + ''; + programs = { + git = { + enable = true; + userName = "Paul-Henri Froidmont"; + userEmail = "rdo@foyer.lu"; + extraConfig = { + init.defaultBranch = "master"; + http.sslVerify = false; + }; + }; + bat.enable = true; + jq.enable = true; + fzf.enable = true; + lesspipe.enable = true; + pazi.enable = true; + broot = { + enable = true; + enableZshIntegration = true; + }; + command-not-found.enable = true; + direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; + }; + }; + + services.openssh = { + enable = true; + settings = { + PasswordAuthentication = true; + # LogLevel = "DEBUG"; + }; + }; + + system.stateVersion = "24.05"; +} diff --git a/modules/desktop/zsh.nix b/modules/desktop/zsh.nix index 45ab473..77aa641 100644 --- a/modules/desktop/zsh.nix +++ b/modules/desktop/zsh.nix @@ -33,6 +33,11 @@ in enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; + sessionVariables = { + # COURSIER_CACHE = "/mnt/c/Users/RDO/scoop/persist/coursier/cache"; + # COURSIER_REPOSITORIES = "ivy2Local|https://nexus.foyer.lu/repository/mvn-all/"; + # JAVA_OPTS = "-Dsbt.ivy.home=/mnt/c/Users/RDO/.ivy2"; + }; initExtra = # bash '' autoload -Uz up-line-or-beginning-search down-line-or-beginning-search diff --git a/modules/editor/vim/vim.nix b/modules/editor/vim/vim.nix index 6e7b004..a8e6efe 100644 --- a/modules/editor/vim/vim.nix +++ b/modules/editor/vim/vim.nix @@ -206,12 +206,15 @@ in { import = "lazyvim.plugins.extras.editor.aerial" }, { import = "lazyvim.plugins.extras.editor.leap" }, { import = "lazyvim.plugins.extras.editor.navic" }, + { import = "lazyvim.plugins.extras.formatting.prettier" }, + { import = "lazyvim.plugins.extras.lang.angular" }, { import = "lazyvim.plugins.extras.lang.docker" }, { import = "lazyvim.plugins.extras.lang.json" }, { import = "lazyvim.plugins.extras.lang.markdown" }, { import = "lazyvim.plugins.extras.lang.sql" }, { import = "lazyvim.plugins.extras.lang.yaml" }, { import = "lazyvim.plugins.extras.lang.scala" }, + { import = "lazyvim.plugins.extras.lang.typescript" }, { import = "lazyvim.plugins.extras.test.core" }, -- import/override with your plugins { import = "plugins" }, @@ -496,6 +499,7 @@ in yaml-language-server typos-lsp nodePackages.typescript-language-server + nodePackages.prettier terraform-ls sqls nixd @@ -503,6 +507,8 @@ in lua-language-server docker-compose-language-service bash-language-server + inputs.nixpkgs-master.legacyPackages.x86_64-linux.angular-language-server + inputs.nixpkgs-master.legacyPackages.x86_64-linux.vtsls ]; }; }; diff --git a/modules/options.nix b/modules/options.nix index 7682492..2febcfc 100644 --- a/modules/options.nix +++ b/modules/options.nix @@ -13,7 +13,7 @@ config = { user = { - name = "froidmpa"; + name = "nixos"; description = "The primary user account"; extraGroups = [ "wheel"