From d9c523cd5330794f18f6a662e4366ce4da5d2d57 Mon Sep 17 00:00:00 2001 From: Ethan Simmons Date: Sat, 31 Aug 2024 13:43:06 -0500 Subject: [PATCH] Add nvim plugin and update vpn --- .sops.yaml | 2 +- flake.lock | 36 ++++++------- flake.nix | 6 ++- hosts/alpheratz/incommon-rsa-ca2.pem | 36 +++++++++++++ hosts/alpheratz/system.nix | 8 +-- hosts/ankaa/system.nix | 2 - hosts/shared/dotfiles/nvim/init.lua | 1 + .../dotfiles/nvim/lua/config/plugins/init.lua | 2 + .../dotfiles/nvim/lua/config/plugins/iron.lua | 53 +++++++++++++++++++ modules/home/sway.nix | 5 ++ modules/nix/common.nix | 1 + modules/nix/default.nix | 1 + modules/nix/school/default.nix | 19 +++++++ modules/nix/school/incommon-rsa-ca2.pem | 36 +++++++++++++ modules/options/default.nix | 1 + modules/options/school.nix | 23 ++++++++ 16 files changed, 207 insertions(+), 25 deletions(-) create mode 100644 hosts/alpheratz/incommon-rsa-ca2.pem create mode 100644 hosts/shared/dotfiles/nvim/lua/config/plugins/iron.lua create mode 100644 modules/nix/school/default.nix create mode 100644 modules/nix/school/incommon-rsa-ca2.pem create mode 100644 modules/options/school.nix diff --git a/.sops.yaml b/.sops.yaml index 90571bd..bf81976 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -9,7 +9,7 @@ creation_rules: - *admin_ankaa - *admin_alpheratz - path_regex: secrets/ankaa/[^/]+\.yaml$ - kye_groups: + key_groups: - age: - *admin_ankaa - path_regex: secrets/alpheratz/[^/]+\.yaml$ diff --git a/flake.lock b/flake.lock index b8b5df8..c165bc4 100644 --- a/flake.lock +++ b/flake.lock @@ -64,11 +64,11 @@ ] }, "locked": { - "lastModified": 1722462338, - "narHash": "sha256-ss0G8t8RJVDewA3MyqgAlV951cWRK6EtVhVKEZ7J5LU=", + "lastModified": 1723986931, + "narHash": "sha256-Fy+KEvDQ+Hc8lJAV3t6leXhZJ2ncU5/esxkgt3b8DEY=", "owner": "nix-community", "repo": "home-manager", - "rev": "6e090576c4824b16e8759ebca3958c5b09659ee8", + "rev": "2598861031b78aadb4da7269df7ca9ddfc3e1671", "type": "github" }, "original": { @@ -83,11 +83,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1722588653, - "narHash": "sha256-ecdFExRGQchpYG2T4A53GCcCJ+2xIEklcYGIBhpuI+s=", + "lastModified": 1724057198, + "narHash": "sha256-BOy1jTnahO71dKa0cokWa4VGUPYPyzo8tPUCc+ztZsQ=", "owner": "ggerganov", "repo": "llama.cpp", - "rev": "e09a800f9a9b19c73aa78e03b4c4be8ed988f3e6", + "rev": "cfac111e2b3953cdb6b0126e67a2487687646971", "type": "github" }, "original": { @@ -98,11 +98,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1722062969, - "narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=", + "lastModified": 1723637854, + "narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b73c2221a46c13557b1b3be9c2070cc42cf01eb3", + "rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9", "type": "github" }, "original": { @@ -126,11 +126,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1722372011, - "narHash": "sha256-B2xRiC3NEJy/82ugtareBkRqEkPGpMyjaLxaR8LBxNs=", + "lastModified": 1723938990, + "narHash": "sha256-9tUadhnZQbWIiYVXH8ncfGXGvkNq3Hag4RCBEMUk7MI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "cf05eeada35e122770c5c14add958790fcfcbef5", + "rev": "c42fcfbdfeae23e68fc520f9182dde9f38ad1890", "type": "github" }, "original": { @@ -158,11 +158,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1722421184, - "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=", + "lastModified": 1723991338, + "narHash": "sha256-Grh5PF0+gootJfOJFenTTxDTYPidA3V28dqJ/WV7iis=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58", + "rev": "8a3354191c0d7144db9756a74755672387b702ba", "type": "github" }, "original": { @@ -205,11 +205,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1722114803, - "narHash": "sha256-s6YhI8UHwQvO4cIFLwl1wZ1eS5Cuuw7ld2VzUchdFP0=", + "lastModified": 1723501126, + "narHash": "sha256-N9IcHgj/p1+2Pvk8P4Zc1bfrMwld5PcosVA0nL6IGdE=", "owner": "Mic92", "repo": "sops-nix", - "rev": "eb34eb588132d653e4c4925d862f1e5a227cc2ab", + "rev": "be0eec2d27563590194a9206f551a6f73d52fa34", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 015af09..c4cc12b 100644 --- a/flake.nix +++ b/flake.nix @@ -133,7 +133,6 @@ gui = { enable = true; protonmail = true; - matrix = true; sway = { enable = true; @@ -148,6 +147,11 @@ }; + school = { + enable = true; + citrix = true; + }; + common.nil.enable = true; networking = { diff --git a/hosts/alpheratz/incommon-rsa-ca2.pem b/hosts/alpheratz/incommon-rsa-ca2.pem new file mode 100644 index 0000000..1cefa07 --- /dev/null +++ b/hosts/alpheratz/incommon-rsa-ca2.pem @@ -0,0 +1,36 @@ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- diff --git a/hosts/alpheratz/system.nix b/hosts/alpheratz/system.nix index 6e375a2..1ea1406 100644 --- a/hosts/alpheratz/system.nix +++ b/hosts/alpheratz/system.nix @@ -31,7 +31,9 @@ secrets."wireguard/preshared" = {}; }; - environment.systemPackages = [ localPackages.x86_64-linux.jhelioviewer ]; + environment.systemPackages = [ + localPackages.x86_64-linux.jhelioviewer + ]; services.printing.enable = true; services.avahi = { @@ -68,7 +70,7 @@ publicKey = "sWdXHlBqH+tAgSl0Tqr46sfKvgFN/vMDiuN08HjzaSg="; presharedKeyFile = "/run/secrets/wireguard/preshared"; allowedIPs = [ "0.0.0.0/0" "::/0" ]; - endpoint = "simmer505.com:51820"; + endpoint = "jellyfin.simmer505.com:51820"; } ]; }; @@ -83,7 +85,7 @@ # Define a user account. users.users.eesim = { isNormalUser = true; - extraGroups = [ "wheel" "video" "audo" "networkmanager" ]; + extraGroups = [ "wheel" "video" "audio" "networkmanager" ]; shell = pkgs.fish; }; diff --git a/hosts/ankaa/system.nix b/hosts/ankaa/system.nix index f2113e5..eb07a45 100644 --- a/hosts/ankaa/system.nix +++ b/hosts/ankaa/system.nix @@ -18,8 +18,6 @@ environment.systemPackages = with pkgs; [ localPackages.x86_64-linux.jhelioviewer - lemurs - pciutils ]; services.hardware.openrgb.enable = true; diff --git a/hosts/shared/dotfiles/nvim/init.lua b/hosts/shared/dotfiles/nvim/init.lua index c6978cf..e0166ee 100644 --- a/hosts/shared/dotfiles/nvim/init.lua +++ b/hosts/shared/dotfiles/nvim/init.lua @@ -3,6 +3,7 @@ require('config/settings') require('config/plugins') require('config/plugins/lualine') require('config/plugins/lspconfig') +require('config/plugins/iron') local vimscriptpath = vim.fn.stdpath("config") .. "/lua/config/vimscript/" diff --git a/hosts/shared/dotfiles/nvim/lua/config/plugins/init.lua b/hosts/shared/dotfiles/nvim/lua/config/plugins/init.lua index f82d17d..fd36fae 100644 --- a/hosts/shared/dotfiles/nvim/lua/config/plugins/init.lua +++ b/hosts/shared/dotfiles/nvim/lua/config/plugins/init.lua @@ -35,6 +35,8 @@ local plugins = { end }, + 'Vigemus/iron.nvim', + } local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" diff --git a/hosts/shared/dotfiles/nvim/lua/config/plugins/iron.lua b/hosts/shared/dotfiles/nvim/lua/config/plugins/iron.lua new file mode 100644 index 0000000..d9eaebe --- /dev/null +++ b/hosts/shared/dotfiles/nvim/lua/config/plugins/iron.lua @@ -0,0 +1,53 @@ +local iron = require("iron.core") + +iron.setup { + config = { + -- Whether a repl should be discarded or not + scratch_repl = true, + -- Your repl definitions come here + repl_definition = { + sh = { + -- Can be a table or a function that + -- returns a table (see below) + command = {"fish"} + }, + python = { + command = { "python3" }, -- or { "ipython", "--no-autoindent" } + format = require("iron.fts.common").bracketed_paste_python + } + }, + -- How the repl window will be displayed + -- See below for more information + repl_open_cmd = require('iron.view').bottom(40), + }, + -- Iron doesn't set keymaps by default anymore. + -- You can set them here or manually add keymaps to the functions in iron.core + keymaps = { + send_motion = "sc", + visual_send = "sc", + send_file = "sf", + send_line = "sl", + send_paragraph = "sp", + send_until_cursor = "su", + send_mark = "sm", + mark_motion = "mc", + mark_visual = "mc", + remove_mark = "md", + cr = "s", + interrupt = "s", + exit = "sq", + clear = "cl", + }, + -- If the highlight is on, you can change how it looks + -- For the available options, check nvim_set_hl + highlight = { + italic = true + }, + ignore_blank_lines = true, -- ignore blank lines when sending visual select lines +} + +-- iron also has a list of commands, see :h iron-commands for all available commands +vim.keymap.set('n', 'rs', 'IronRepl') +vim.keymap.set('n', 'rr', 'IronRestart') +vim.keymap.set('n', 'rf', 'IronFocus') +vim.keymap.set('n', 'rh', 'IronHide') diff --git a/modules/home/sway.nix b/modules/home/sway.nix index c82824f..8ff573f 100644 --- a/modules/home/sway.nix +++ b/modules/home/sway.nix @@ -247,6 +247,11 @@ in smart_gaps inverse_outer ''; + + extraSessionCommands = mkIf gui.secrets '' + eval $(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh); + export SSH_AUTH_SOCK; + ''; }; }; } diff --git a/modules/nix/common.nix b/modules/nix/common.nix index f11e620..898d9c0 100644 --- a/modules/nix/common.nix +++ b/modules/nix/common.nix @@ -23,6 +23,7 @@ in yazi ncdu btop + pciutils ] ++ optional cfg.nil.enable nil; diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 6ee0a29..7778108 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -14,5 +14,6 @@ ./networking.nix ./games.nix ./laptop.nix + ./school ]; } diff --git a/modules/nix/school/default.nix b/modules/nix/school/default.nix new file mode 100644 index 0000000..ccca6b0 --- /dev/null +++ b/modules/nix/school/default.nix @@ -0,0 +1,19 @@ +{ lib +, pkgs +, config +, ... +}: + +with lib; let + cfg = config.simmer.school; + extraCerts = [ ./incommon-rsa-ca2.pem ]; + citrix = pkgs.citrix_workspace_23_09_0.override { inherit extraCerts; }; +in +{ + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + xournalpp + libreoffice + ] ++ optional cfg.citrix citrix; + }; +} diff --git a/modules/nix/school/incommon-rsa-ca2.pem b/modules/nix/school/incommon-rsa-ca2.pem new file mode 100644 index 0000000..1cefa07 --- /dev/null +++ b/modules/nix/school/incommon-rsa-ca2.pem @@ -0,0 +1,36 @@ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- diff --git a/modules/options/default.nix b/modules/options/default.nix index f4a68ce..051555f 100644 --- a/modules/options/default.nix +++ b/modules/options/default.nix @@ -15,5 +15,6 @@ ./openssh.nix ./system.nix ./laptop.nix + ./school.nix ]; } diff --git a/modules/options/school.nix b/modules/options/school.nix new file mode 100644 index 0000000..b4ff2f2 --- /dev/null +++ b/modules/options/school.nix @@ -0,0 +1,23 @@ +{ lib +, pkgs +, ... +}: + +with lib; +let + cfg = config.simmer.school; +in +{ + options.simmer.school = { + enable = mkOption { + description = "Whether to install default software for school"; + type = types.bool; + default = false; + }; + citrix = mkOption { + description = "Whether to install and setup citrix"; + type = types.bool; + default = false; + }; + }; +}