From 36ade9a42d5d69cad9db1b9d13896d25444a98bd Mon Sep 17 00:00:00 2001 From: fwastring Date: Mon, 30 Mar 2026 09:33:05 +0200 Subject: [PATCH 1/8] updates --- maskiner/core/configuration.nix | 10 ++++ moduler/fish.nix | 66 ++++++++------------ moduler/home.nix | 93 +++++++++++++++++++++++++---- moduler/programs.nix | 19 +++--- moduler/programs/nixvim/default.nix | 16 +++++ secrets/sops.yaml | 8 ++- 6 files changed, 147 insertions(+), 65 deletions(-) diff --git a/maskiner/core/configuration.nix b/maskiner/core/configuration.nix index 62ae60d..579c701 100644 --- a/maskiner/core/configuration.nix +++ b/maskiner/core/configuration.nix @@ -71,6 +71,16 @@ in group = "users"; mode = "0400"; }; + sops.secrets.jira_token = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.opencode_atlassian_env = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; environment.systemPackages = [ pkgs.cifs-utils ]; diff --git a/moduler/fish.nix b/moduler/fish.nix index 286e943..e41662b 100644 --- a/moduler/fish.nix +++ b/moduler/fish.nix @@ -75,57 +75,39 @@ in ls = "eza -l"; lg = "lazygit"; ka = "kubectl apply -f"; - t = "timew"; - a = "nix develop; opencode"; - todo = "jira issue list -a 'Fredrik Wastring' -s ~Done -s ~Closed -s ~Released --plain"; - cam = "jira issue create && jira issue assign && jira issue move"; - e = "kubectx"; - s = { - setCursor = "%"; - expansion = "cha https://search.wastring.com/search?q=%"; - }; - tw = { - setCursor = "%"; - expansion = "typst watch % --open zathura /tmp/zathura.pdf"; - }; - c = { - setCursor = "%"; - expansion = "ssh 'fw:%@gateway.internalifacts.se' -p 2222"; - }; - dl = { - setCursor = "&"; - expansion = "yt-dlp -o \"~/videor/%(title)s - %(uploader)s\" \"&\""; - }; + e = "nvim"; }; interactiveShellInit = let fzfOpts = catppuccinFzfOptions.${config.fish.theme}; in '' - fish_vi_key_bindings - set fish_greeting - set FLAKE_DIR "/home/fw/nix" - set JIRA_API_TOKEN ATATT3xFfGF0_fkpGB1ne-QOSJzFVG0yH31j2CRtdNqbePCyEm9enpnA2uA3go75_GQwZPFX_IO9tf10ALJWvDLjsuHl8MSOUkNd703Vqr4uuGLAbHY73Z_b9fDJVrfodTrGAN9sZ5Sp75opCVkXB7MVXSAIvlWimRdwe-tqDPH4vhwY9Hqcs6M=0510D6CD - set -gx GITHUB_PERSONAL_ACCESS_TOKEN (cat /run/secrets/github_token) - set -gx GITHUB_HOST "https://github.com" - set -gx GRAFANA_SERVICE_ACCOUNT_TOKEN (cat /run/secrets/grafana_token) - set -gx GRAFANA_URL "https://monitoring.internalifacts.se" - set -Ux FZF_CTRL_R_OPTS "--reverse" - set -Ux FZF_TMUX_OPTS "-p" - set -e GOROOT - set -x -U GOPATH $HOME/.go - gh completion -s fish > ~/.config/fish/completions/gh.fish - set -gx PATH $PATH $HOME/scripts - set -gx PATH $PATH $HOME/.krew/bin + fish_vi_key_bindings + set fish_greeting + set FLAKE_DIR "/home/fw/nix" + if test -r /run/secrets/jira_token + set -gx JIRA_API_TOKEN (string trim (cat /run/secrets/jira_token)) + end + set -gx GITHUB_PERSONAL_ACCESS_TOKEN (cat /run/secrets/github_token) + set -gx GITHUB_HOST "https://github.com" + set -gx GRAFANA_SERVICE_ACCOUNT_TOKEN (cat /run/secrets/grafana_token) + set -gx GRAFANA_URL "https://monitoring.internalifacts.se" + set -Ux FZF_CTRL_R_OPTS "--reverse" + set -Ux FZF_TMUX_OPTS "-p" + set -e GOROOT + set -x -U GOPATH $HOME/.go + gh completion -s fish > ~/.config/fish/completions/gh.fish + set -gx PATH $PATH $HOME/scripts + set -gx PATH $PATH $HOME/.krew/bin - if not set -q SSH_AUTH_SOCK - eval (ssh-agent -c) - ssh-add ~/.ssh/id_ed25519 >/dev/null 2>&1 - set SSH_AUTH_SOCK /home/fw/.bitwarden-ssh-agent.sock - end + if not set -q SSH_AUTH_SOCK + eval (ssh-agent -c) + ssh-add ~/.ssh/id_ed25519 >/dev/null 2>&1 + set SSH_AUTH_SOCK /home/fw/.bitwarden-ssh-agent.sock + end - set -Ux FZF_DEFAULT_OPTS "${fzfOpts}" + set -Ux FZF_DEFAULT_OPTS "${fzfOpts}" ''; }; }; diff --git a/moduler/home.nix b/moduler/home.nix index a61dc9b..44b7467 100644 --- a/moduler/home.nix +++ b/moduler/home.nix @@ -25,18 +25,89 @@ programs.home-manager.enable = true; programs.fish.enable = true; + programs.opencode = { + enable = true; + enableMcpIntegration = false; + settings = { + "$schema" = "https://opencode.ai/config.json"; + theme = lib.mkForce "catppuccin"; + plugin = [ "@ex-machina/opencode-anthropic-auth" ]; + mcp = { + az = { + type = "local"; + command = [ + "docker" + "run" + "-i" + "--rm" + "--env-file" + "/home/fw/.azure/credentials" + "mcr.microsoft.com/azure-sdk/azure-mcp:latest" + ]; + }; + k8s = { + type = "local"; + command = [ + "docker" + "run" + "--rm" + "-i" + "--user" + "1000:100" + "-v" + "/home/fw/.kube:/kube:ro" + "ghcr.io/containers/kubernetes-mcp-server:latest" + "--kubeconfig" + "/kube/config" + ]; + }; + github = { + type = "local"; + command = [ + "docker" + "run" + "-i" + "--rm" + "-e" + "GITHUB_PERSONAL_ACCESS_TOKEN" + "ghcr.io/github/github-mcp-server" + ]; + }; + jira = { + type = "local"; + command = [ + "docker" + "run" + "-i" + "--rm" + "--env-file" + "/home/fw/.config/opencode/.env.local" + "ghcr.io/sooperset/mcp-atlassian:latest" + ]; + }; + }; + }; + }; + + home.activation.opencodeAtlassianEnv = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + mkdir -p "$HOME/.config/opencode" + if [ -r /run/secrets/opencode_atlassian_env ]; then + ln -sf /run/secrets/opencode_atlassian_env "$HOME/.config/opencode/.env.local" + fi + ''; + programs.alacritty = { - enable = true; - # theme = "catppuccin_${theme}"; - theme = "catppuccin_mocha"; - settings = { - font = { - normal = { - family = lib.mkForce "FiraCode Nerd Font Mono"; - }; - size = lib.mkForce 16; - }; - }; + enable = true; + # theme = "catppuccin_${theme}"; + theme = "catppuccin_mocha"; + settings = { + font = { + normal = { + family = lib.mkForce "FiraCode Nerd Font Mono"; + }; + size = lib.mkForce 16; + }; + }; }; home.username = "fw"; diff --git a/moduler/programs.nix b/moduler/programs.nix index 0cc8b58..0cc22f9 100644 --- a/moduler/programs.nix +++ b/moduler/programs.nix @@ -57,7 +57,7 @@ environment.systemPackages = with pkgs; [ # GUI feishin - vscode + vscode signal-desktop thunderbird discord @@ -71,18 +71,18 @@ remmina brightnessctl speedcrunch - opencode - quickemu - virt-viewer - go-passbolt-cli wf-recorder slurp - bitwarden-desktop - bitwarden-cli lagrange jujutsu rclone - + quickemu + virt-viewer + go-passbolt-cli + wf-recorder + slurp + bitwarden-desktop + jira-cli-go dbeaver-bin ( @@ -115,7 +115,8 @@ ) # TUI - codex + # nodejs + claude-code # Browsers librewolf diff --git a/moduler/programs/nixvim/default.nix b/moduler/programs/nixvim/default.nix index 389280d..6718819 100644 --- a/moduler/programs/nixvim/default.nix +++ b/moduler/programs/nixvim/default.nix @@ -37,6 +37,7 @@ with lib; telescope = true; treesitter = true; cmp = true; + lualine = true; }; }; }; @@ -251,6 +252,18 @@ with lib; }; }; }; + # avante = { + # enable = true; + # settings = { + # provider = "claude-code"; + # acp_providers = { + # claude-code = { + # command = "npx"; + # args = [ "@zed-industries/claude-code-acp" ]; + # }; + # }; + # }; + # }; treesitter = { enable = true; @@ -363,6 +376,9 @@ with lib; }; }; }; + extraPlugins = with pkgs.vimPlugins; [ + plenary-nvim + ]; enableMan = false; autoCmd = [ { diff --git a/secrets/sops.yaml b/secrets/sops.yaml index dca72c9..20b9762 100644 --- a/secrets/sops.yaml +++ b/secrets/sops.yaml @@ -15,6 +15,8 @@ fw-qemu: ENC[AES256_GCM,data:TxbilLf79+gieY3WbAGl175aTUVjIc6rlKfYTy8Usmw=,iv:WCv github_token: ENC[AES256_GCM,data:E8j5K2U8UvTpZtsWIm55dvvSxmZjDY15lYeXGuKnPuq1fRyb5HolEQ==,iv:tqODZ4Y247D4DhmC3z7XEq/2K2JsU76p1hxYkYiql9E=,tag:iYithxJyO/GKvKwwh4BDlA==,type:str] grafana_token: ENC[AES256_GCM,data:yAUqBV2/IF/wkyutHhf1Ui/xxRIt+SgsUk7QmdcnYa+x5KC8G1ifdcxJjPJvyQ==,iv:dGk6AfadwajDbFzTteCeyNIpwWRwdJbNwjGSlrmhaBU=,tag:svCcQo96PGFXu+MVsmn1HQ==,type:str] fleet-enroll-secret: ENC[AES256_GCM,data:2DEmgzsYvWZas65HLE4PaxZ3h7L4Gw8esVirZYrzCik=,iv:9t6ET8QnPLIl0Pnn9r24btF7VUQnRr3ukRH0oVsgIrg=,tag:mQ0yxEhx72L71DB36cfMew==,type:str] +jira_token: ENC[AES256_GCM,data:gPSgsNp4XlM6cTzLCpsJpdByTOHQ9vWfosurrd+yzo9MAkTcm5BDXwRWl1aNN2OFZu4+GXNqOho1gegDCQhZQnFRYNACASqmhGk6/GCpSNUlVAExOhvSs8tUu+YZoBUVufWHn5sIsxNHGgiJnX5ZtX7sVhUOo5u+qbb49iHsSZ6WBwP9SDMpfqXkhgZAURTk7iu7VgbHt6D1BxQH2yDCXR7OuICC5D6lSjdKo4Vbdudmz07vM1b4DHfvtP15SJfl,iv:oV3ACNPpz4Zb3bt0oWlx9On71LoXt3ZO5QosSr5XB2k=,tag:Xr0Y/ugZbQ2BaQtUJOwIng==,type:str] +opencode_atlassian_env: ENC[AES256_GCM,data:v7uz9p4/H2WNzZA+I5+qnBRw4cyB4DNt/adBn0TS1bm9Gqk+UhnpjlXuP3mpxElXrAPmqT/rIvRGZp/YGiDWODH+B/WjtAaA/R+hFfOoP+m2unx2UM/a+UwC2EO+6ci+lKtNpT8FfobQxjuCdKWCmz0U54ijtfmyh73+lIzZoffs35fvxHwvchzM3zfCy/EHkR1jDUiKykX2VR1JiBZNa6PFp+SXZGvBlcjf8WjaryEpzIGv1plFftTQSo74OHPuUAC4kXrV9eCH4OJQ6JLyfOH+8tGstyyVWO9BtG7/fO5j830bBgvbqTsjZX+NvmTiaP4caC/sy7vseKkbgRzdUuAASLM3Pbqs9QnP6lFzye/QNdnlcwOOoNniXMbwynmSwtrz6w==,iv:DrArPdRddjxqMqU+38jvc1zCy2xVRmXOD7D9UQHQfgs=,tag:ZGCBxg28k1FMKwvu2r2Aqg==,type:str] sops: age: - recipient: age1jeyw96795qu52swmtkjqgr2w3g4vxc43ckc5r4hlwpje23ptnfwsheah0s @@ -62,7 +64,7 @@ sops: dFZ3T3VUeHVnVThadHVQaVJCNkdZeDQK99L7CbBbklUUtanyFIOiCzO3hZP1mh3z ZZhhr6BCcHBbqzLaRLbT27BTCoNuGsXxyzW6tpXYacYuITkcFq9bOQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-03-17T09:44:56Z" - mac: ENC[AES256_GCM,data:MX3xARncq/j17K5gtmGRi9E4LEOFDeoinahJ0o0AxECjdQYUndtlIMe+0/BfL2GIemhNaiHsQydjE4TrORgl/RGMcHj/gYy9EvY/m0E7gtSoWpxN5FOdavCQ4jcgRRxYj1mDdTuaS7VksWd+9XZMJh7ScmHlMI8PWdnTessd6Mk=,iv:GxuMN1Vt2fEBs/WrD4BvJlUIiGiHppZfzHU8NRB/4DA=,tag:OnHU8MnyLtclBCWKwribAQ==,type:str] + lastmodified: "2026-03-26T15:52:43Z" + mac: ENC[AES256_GCM,data:s0Oc18zrDOQkyZHre1NbwMOKxS/4KGq7WGifmAi4xJsN2oeQXXAOXE5baMRBiC4q6ak7UvowSXWeuTx7+8P37ycVL2I9SpnIamkxGbzTLCNeqa+3ipcRRWMSYWrit+KwJXYS0F+hUv0/QgFssl8W7bKquwkkQy6Aqz8sGmx/WqU=,iv:JfUR8L/6arJenH21061U8T6ld3wU0BksWKkjiK+fLHc=,tag:iABB6x6zrFIVBSV6cHKMDA==,type:str] unencrypted_suffix: _unencrypted - version: 3.12.0 + version: 3.12.2 From d2985c8461d351849cf4ef43170605a289092ea7 Mon Sep 17 00:00:00 2001 From: fwastring Date: Mon, 30 Mar 2026 13:18:57 +0200 Subject: [PATCH 2/8] fixed lualine --- moduler/programs/nixvim/default.nix | 30 ++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/moduler/programs/nixvim/default.nix b/moduler/programs/nixvim/default.nix index 6718819..26c791c 100644 --- a/moduler/programs/nixvim/default.nix +++ b/moduler/programs/nixvim/default.nix @@ -37,7 +37,7 @@ with lib; telescope = true; treesitter = true; cmp = true; - lualine = true; + lualine = { }; }; }; }; @@ -56,10 +56,6 @@ with lib; }; clipboard.register = "unnamedplus"; - extraPlugins = with pkgs.vimPlugins; [ - plenary-nvim - ]; - globals.mapleader = " "; keymaps = [ @@ -240,7 +236,9 @@ with lib; lualine = { enable = true; settings = { - options.theme = "catppuccin"; + options.theme = { + __raw = "(function() local ok, cp = pcall(require, 'catppuccin.utils.lualine'); return ok and cp() or 'auto' end)()"; + }; tabline = { lualine_a = [ ]; lualine_b = [ ]; @@ -305,7 +303,25 @@ with lib; lazygit.enable = true; - telescope.enable = true; + telescope = { + enable = true; + settings = { + defaults = { + vimgrep_arguments = [ + "rg" + "--color=never" + "--no-heading" + "--with-filename" + "--line-number" + "--column" + "--smart-case" + "--hidden" + "--glob" + "!.git/*" + ]; + }; + }; + }; luasnip.enable = true; cmp = { From 755a563d5c671fabd740fca227baf0c038758654 Mon Sep 17 00:00:00 2001 From: fwastring Date: Sat, 4 Apr 2026 19:31:04 +0200 Subject: [PATCH 3/8] fixed nixvim --- moduler/dev.nix | 1 + moduler/programs/nixvim/default.nix | 95 ++++++++++++++++++++++++++++- 2 files changed, 95 insertions(+), 1 deletion(-) diff --git a/moduler/dev.nix b/moduler/dev.nix index 2eb48df..0d40a41 100644 --- a/moduler/dev.nix +++ b/moduler/dev.nix @@ -16,6 +16,7 @@ in minio-client opentofu python3 + dive (azPkgs.azure-cli.withExtensions ( with azPkgs.azure-cli.extensions; [ diff --git a/moduler/programs/nixvim/default.nix b/moduler/programs/nixvim/default.nix index 26c791c..a4c9bf5 100644 --- a/moduler/programs/nixvim/default.nix +++ b/moduler/programs/nixvim/default.nix @@ -63,7 +63,7 @@ with lib; { mode = "n"; key = "f"; - action = "Telescope find_files"; + action = "Telescope find_files hidden=true"; } { mode = "n"; @@ -287,6 +287,7 @@ with lib; settings = { default_file_explorer = true; columns = [ "icon" ]; + view_options.show_hidden = true; win_options = { wrap = false; signcolumn = "no"; @@ -307,6 +308,98 @@ with lib; enable = true; settings = { defaults = { + mappings = { + i = { + "" = { + __raw = '' + function(prompt_bufnr) + local actions = require("telescope.actions") + local action_state = require("telescope.actions.state") + local picker = action_state.get_current_picker(prompt_bufnr) + local selections = picker:get_multi_selection() + + if vim.tbl_isempty(selections) then + actions.select_default(prompt_bufnr) + return + end + + local current = action_state.get_selected_entry() + actions.close(prompt_bufnr) + + local seen = {} + local first = true + + local function open_entry(entry) + local path = entry and (entry.path or entry.filename or entry.value) + if not path or seen[path] then + return + end + + seen[path] = true + local escaped = vim.fn.fnameescape(path) + + if first then + vim.cmd("edit " .. escaped) + first = false + else + vim.cmd("tabedit " .. escaped) + end + end + + open_entry(current) + for _, entry in ipairs(selections) do + open_entry(entry) + end + end + ''; + }; + }; + n = { + "" = { + __raw = '' + function(prompt_bufnr) + local actions = require("telescope.actions") + local action_state = require("telescope.actions.state") + local picker = action_state.get_current_picker(prompt_bufnr) + local selections = picker:get_multi_selection() + + if vim.tbl_isempty(selections) then + actions.select_default(prompt_bufnr) + return + end + + local current = action_state.get_selected_entry() + actions.close(prompt_bufnr) + + local seen = {} + local first = true + + local function open_entry(entry) + local path = entry and (entry.path or entry.filename or entry.value) + if not path or seen[path] then + return + end + + seen[path] = true + local escaped = vim.fn.fnameescape(path) + + if first then + vim.cmd("edit " .. escaped) + first = false + else + vim.cmd("tabedit " .. escaped) + end + end + + open_entry(current) + for _, entry in ipairs(selections) do + open_entry(entry) + end + end + ''; + }; + }; + }; vimgrep_arguments = [ "rg" "--color=never" From 39a1b68c8fe5355ba9c6b51f4d870f0a5bc8539c Mon Sep 17 00:00:00 2001 From: fwastring Date: Sat, 4 Apr 2026 19:31:26 +0200 Subject: [PATCH 4/8] added beets --- maskiner/node/configuration.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/maskiner/node/configuration.nix b/maskiner/node/configuration.nix index 09723f2..0f44abc 100644 --- a/maskiner/node/configuration.nix +++ b/maskiner/node/configuration.nix @@ -140,9 +140,9 @@ in }; home-manager.users.fw = { - # imports = [ - # (modulesDirectory + /programs/beets) - # ]; + imports = [ + (modulesDirectory + /programs/beets) + ]; home.username = "fw"; home.homeDirectory = "/home/fw"; From c03fa07723d38e2ff5e8041cb28deb3738fefb40 Mon Sep 17 00:00:00 2001 From: fwastring Date: Mon, 6 Apr 2026 20:37:39 +0200 Subject: [PATCH 5/8] added some stuff --- .sops.yaml | 2 + maskiner/core/configuration.nix | 22 +++ maskiner/styrelsen/configuration.nix | 28 ++++ moduler/fish.nix | 9 ++ moduler/home.nix | 218 ++++++++++++++++----------- moduler/programs/neomd/default.nix | 50 ++++++ secrets/sops.yaml | 66 ++++---- 7 files changed, 284 insertions(+), 111 deletions(-) create mode 100644 moduler/programs/neomd/default.nix diff --git a/.sops.yaml b/.sops.yaml index 4df83fb..4674697 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -4,6 +4,7 @@ keys: - &server_macmini age1dql5lwetk39a9y8ummfgjx3aym02yn205lxk389k6q0tu9y3ff4s94l66t - &server_legacy age1kf93dpuqhu0a90s49sszgw64mn32hwgrm8suv799ca4ngrkecpqs8ljzk8 - &server_core age1p3uxpjku9fkyvav56fgmq2cem50wg2dh34hdpp5nzqs6cerandaqvkrgxr + - &styrelsen age1cf97rf4gq7qad0rd5dcdtel2qq7uqcxvd7dpk257e3e0e0krv9esd7sc0d creation_rules: - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ @@ -14,3 +15,4 @@ creation_rules: - *server_macmini - *server_legacy - *server_core + - *styrelsen diff --git a/maskiner/core/configuration.nix b/maskiner/core/configuration.nix index 579c701..048668d 100644 --- a/maskiner/core/configuration.nix +++ b/maskiner/core/configuration.nix @@ -81,6 +81,21 @@ in group = "users"; mode = "0400"; }; + sops.secrets.google_oauth_client_id = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.google_oauth_client_secret = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.user_google_email = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; environment.systemPackages = [ pkgs.cifs-utils ]; @@ -203,6 +218,13 @@ in home-manager.extraSpecialArgs = { inherit inputs pkgs; }; home-manager.users.fw = { + opencode.mcpEnabled = { + az = true; + k8s = true; + github = true; + jira = true; + google = true; + }; imports = [ ./../../moduler/home.nix ./../../moduler/programs/waybar diff --git a/maskiner/styrelsen/configuration.nix b/maskiner/styrelsen/configuration.nix index 2e6096d..9577802 100644 --- a/maskiner/styrelsen/configuration.nix +++ b/maskiner/styrelsen/configuration.nix @@ -30,6 +30,7 @@ in (modulesDirectory + /programs/hyprland) (modulesDirectory + /programs/kubernetes-tools.nix) (modulesDirectory + /programs/nixvim) + (modulesDirectory + /programs/neomd) ]; kubernetes-tools.enable = true; @@ -44,11 +45,31 @@ in base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${theme}.yaml"; }; + neomd.enable = true; + nixvim = { enable = true; theme = theme; }; + sops.defaultSopsFile = ../../secrets/sops.yaml; + sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; + sops.secrets.google_oauth_client_id = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.google_oauth_client_secret = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.user_google_email = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + hyprland = { enable = true; theme = theme; @@ -56,6 +77,13 @@ in home-manager.extraSpecialArgs = { inherit inputs pkgs; }; home-manager.users.fw = { + opencode.mcpEnabled = { + az = false; + k8s = false; + github = false; + jira = false; + google = true; + }; imports = [ ./../../moduler/home.nix ./../../moduler/programs/waybar diff --git a/moduler/fish.nix b/moduler/fish.nix index e41662b..759a9c1 100644 --- a/moduler/fish.nix +++ b/moduler/fish.nix @@ -88,6 +88,15 @@ in if test -r /run/secrets/jira_token set -gx JIRA_API_TOKEN (string trim (cat /run/secrets/jira_token)) end + if test -r /run/secrets/google_oauth_client_id + set -gx GOOGLE_OAUTH_CLIENT_ID (string trim (cat /run/secrets/google_oauth_client_id)) + end + if test -r /run/secrets/google_oauth_client_secret + set -gx GOOGLE_OAUTH_CLIENT_SECRET (string trim (cat /run/secrets/google_oauth_client_secret)) + end + if test -r /run/secrets/user_google_email + set -gx USER_GOOGLE_EMAIL (string trim (cat /run/secrets/user_google_email)) + end set -gx GITHUB_PERSONAL_ACCESS_TOKEN (cat /run/secrets/github_token) set -gx GITHUB_HOST "https://github.com" set -gx GRAFANA_SERVICE_ACCOUNT_TOKEN (cat /run/secrets/grafana_token) diff --git a/moduler/home.nix b/moduler/home.nix index 44b7467..fdb9fe2 100644 --- a/moduler/home.nix +++ b/moduler/home.nix @@ -6,7 +6,22 @@ myhostname, ... }: +let + inherit (lib) mkOption types; +in { + options.opencode.mcpEnabled = mkOption { + type = types.attrsOf types.bool; + default = { + az = false; + k8s = true; + github = true; + jira = true; + google = false; + }; + description = "Per-host MCP enablement flags for OpenCode servers."; + }; + imports = [ ../moduler/tmux.nix ../moduler/fish.nix @@ -23,97 +38,132 @@ ../moduler/programs/k9s ]; - programs.home-manager.enable = true; - programs.fish.enable = true; - programs.opencode = { - enable = true; - enableMcpIntegration = false; - settings = { - "$schema" = "https://opencode.ai/config.json"; - theme = lib.mkForce "catppuccin"; - plugin = [ "@ex-machina/opencode-anthropic-auth" ]; - mcp = { - az = { - type = "local"; - command = [ - "docker" - "run" - "-i" - "--rm" - "--env-file" - "/home/fw/.azure/credentials" - "mcr.microsoft.com/azure-sdk/azure-mcp:latest" - ]; - }; - k8s = { - type = "local"; - command = [ - "docker" - "run" - "--rm" - "-i" - "--user" - "1000:100" - "-v" - "/home/fw/.kube:/kube:ro" - "ghcr.io/containers/kubernetes-mcp-server:latest" - "--kubeconfig" - "/kube/config" - ]; - }; - github = { - type = "local"; - command = [ - "docker" - "run" - "-i" - "--rm" - "-e" - "GITHUB_PERSONAL_ACCESS_TOKEN" - "ghcr.io/github/github-mcp-server" - ]; - }; - jira = { - type = "local"; - command = [ - "docker" - "run" - "-i" - "--rm" - "--env-file" - "/home/fw/.config/opencode/.env.local" - "ghcr.io/sooperset/mcp-atlassian:latest" - ]; + config = { + programs.home-manager.enable = true; + programs.fish.enable = true; + programs.opencode = { + enable = true; + enableMcpIntegration = false; + settings = { + "$schema" = "https://opencode.ai/config.json"; + theme = lib.mkForce "catppuccin"; + plugin = [ "@ex-machina/opencode-anthropic-auth" ]; + mcp = { + az = { + type = "local"; + enabled = config.opencode.mcpEnabled.az or false; + command = [ + "docker" + "run" + "-i" + "--rm" + "--env-file" + "/home/fw/.azure/credentials" + "mcr.microsoft.com/azure-sdk/azure-mcp:latest" + ]; + }; + k8s = { + type = "local"; + enabled = config.opencode.mcpEnabled.k8s or false; + command = [ + "docker" + "run" + "--rm" + "-i" + "--user" + "1000:100" + "-v" + "/home/fw/.kube:/kube:ro" + "ghcr.io/containers/kubernetes-mcp-server:latest" + "--kubeconfig" + "/kube/config" + ]; + }; + github = { + type = "local"; + enabled = config.opencode.mcpEnabled.github or false; + command = [ + "docker" + "run" + "-i" + "--rm" + "-e" + "GITHUB_PERSONAL_ACCESS_TOKEN" + "ghcr.io/github/github-mcp-server" + ]; + }; + jira = { + type = "local"; + enabled = config.opencode.mcpEnabled.jira or false; + command = [ + "docker" + "run" + "-i" + "--rm" + "--env-file" + "/home/fw/.config/opencode/.env.local" + "ghcr.io/sooperset/mcp-atlassian:latest" + ]; + }; + google = { + type = "local"; + command = [ + "docker" + "run" + "-i" + "--rm" + "--network" + "host" + "--user" + "1000:100" + "-v" + "/home/fw/.local/share/google-workspace-mcp:/home/app/.google_workspace_mcp" + "-e" + "GOOGLE_OAUTH_CLIENT_ID" + "-e" + "GOOGLE_OAUTH_CLIENT_SECRET" + "-e" + "USER_GOOGLE_EMAIL" + "-e" + "OAUTHLIB_INSECURE_TRANSPORT=1" + "--entrypoint" + "/app/.venv/bin/python" + "ghcr.io/taylorwilsdon/google_workspace_mcp:latest" + "/app/main.py" + "--single-user" + ]; + enabled = config.opencode.mcpEnabled.google or false; + }; }; }; }; - }; - home.activation.opencodeAtlassianEnv = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - mkdir -p "$HOME/.config/opencode" - if [ -r /run/secrets/opencode_atlassian_env ]; then - ln -sf /run/secrets/opencode_atlassian_env "$HOME/.config/opencode/.env.local" - fi - ''; + home.activation.opencodeAtlassianEnv = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + mkdir -p "$HOME/.config/opencode" + if [ -r /run/secrets/opencode_atlassian_env ]; then + ln -sf /run/secrets/opencode_atlassian_env "$HOME/.config/opencode/.env.local" + fi + ''; - programs.alacritty = { - enable = true; - # theme = "catppuccin_${theme}"; - theme = "catppuccin_mocha"; - settings = { - font = { - normal = { - family = lib.mkForce "FiraCode Nerd Font Mono"; + programs.alacritty = { + enable = true; + # theme = "catppuccin_${theme}"; + theme = "catppuccin_mocha"; + settings = { + font = { + normal = { + family = lib.mkForce "FiraCode Nerd Font Mono"; + }; + size = lib.mkForce 16; }; - size = lib.mkForce 16; }; }; + + home.username = "fw"; + home.homeDirectory = "/home/fw"; + + home.stateVersion = "25.05"; + + systemd.user.startServices = "sd-switch"; }; - - home.username = "fw"; - home.homeDirectory = "/home/fw"; - - home.stateVersion = "25.05"; - - systemd.user.startServices = "sd-switch"; } diff --git a/moduler/programs/neomd/default.nix b/moduler/programs/neomd/default.nix new file mode 100644 index 0000000..5b98cf5 --- /dev/null +++ b/moduler/programs/neomd/default.nix @@ -0,0 +1,50 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.neomd; + + neomdPackage = pkgs.buildGoModule { + pname = "neomd"; + version = "unstable-2026-04-06"; + + src = pkgs.fetchFromGitHub { + owner = "ssp-data"; + repo = "neomd"; + rev = "671a9dd66bb367e21be7777a6765635a99b7ab09"; + hash = "sha256-9IVrp9GTwr5aFsBy7lPPRXYCaeYTkOuM+VEdK7Tf2+o="; + }; + + vendorHash = "sha256-cG5x23qA+AN5zwEjdx8uDBk9JjNpn/afzI0/aAJjqAU="; + subPackages = [ "cmd/neomd" ]; + ldflags = [ + "-s" + "-w" + ]; + + meta = { + description = "Terminal email client for markdown and Neovim workflows"; + homepage = "https://github.com/ssp-data/neomd"; + license = lib.licenses.mit; + mainProgram = "neomd"; + }; + }; +in +{ + options.neomd = { + enable = lib.mkEnableOption "neomd terminal email client"; + + package = lib.mkOption { + type = lib.types.package; + default = neomdPackage; + description = "Package to install when neomd is enabled."; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + }; +} diff --git a/secrets/sops.yaml b/secrets/sops.yaml index 20b9762..d38fdc5 100644 --- a/secrets/sops.yaml +++ b/secrets/sops.yaml @@ -17,54 +17,66 @@ grafana_token: ENC[AES256_GCM,data:yAUqBV2/IF/wkyutHhf1Ui/xxRIt+SgsUk7QmdcnYa+x5 fleet-enroll-secret: ENC[AES256_GCM,data:2DEmgzsYvWZas65HLE4PaxZ3h7L4Gw8esVirZYrzCik=,iv:9t6ET8QnPLIl0Pnn9r24btF7VUQnRr3ukRH0oVsgIrg=,tag:mQ0yxEhx72L71DB36cfMew==,type:str] jira_token: ENC[AES256_GCM,data:gPSgsNp4XlM6cTzLCpsJpdByTOHQ9vWfosurrd+yzo9MAkTcm5BDXwRWl1aNN2OFZu4+GXNqOho1gegDCQhZQnFRYNACASqmhGk6/GCpSNUlVAExOhvSs8tUu+YZoBUVufWHn5sIsxNHGgiJnX5ZtX7sVhUOo5u+qbb49iHsSZ6WBwP9SDMpfqXkhgZAURTk7iu7VgbHt6D1BxQH2yDCXR7OuICC5D6lSjdKo4Vbdudmz07vM1b4DHfvtP15SJfl,iv:oV3ACNPpz4Zb3bt0oWlx9On71LoXt3ZO5QosSr5XB2k=,tag:Xr0Y/ugZbQ2BaQtUJOwIng==,type:str] opencode_atlassian_env: ENC[AES256_GCM,data:v7uz9p4/H2WNzZA+I5+qnBRw4cyB4DNt/adBn0TS1bm9Gqk+UhnpjlXuP3mpxElXrAPmqT/rIvRGZp/YGiDWODH+B/WjtAaA/R+hFfOoP+m2unx2UM/a+UwC2EO+6ci+lKtNpT8FfobQxjuCdKWCmz0U54ijtfmyh73+lIzZoffs35fvxHwvchzM3zfCy/EHkR1jDUiKykX2VR1JiBZNa6PFp+SXZGvBlcjf8WjaryEpzIGv1plFftTQSo74OHPuUAC4kXrV9eCH4OJQ6JLyfOH+8tGstyyVWO9BtG7/fO5j830bBgvbqTsjZX+NvmTiaP4caC/sy7vseKkbgRzdUuAASLM3Pbqs9QnP6lFzye/QNdnlcwOOoNniXMbwynmSwtrz6w==,iv:DrArPdRddjxqMqU+38jvc1zCy2xVRmXOD7D9UQHQfgs=,tag:ZGCBxg28k1FMKwvu2r2Aqg==,type:str] +google_oauth_client_id: ENC[AES256_GCM,data:ql6A5TCFJvK4fjKESWfpD5hUTnL/P9BQRZ6o7hrjtHo58h0OUkw8CUdy8pwmbbkz2JGgLpJjmOjOEMEWHfWJ9Yb++JlNBRbj,iv:4cnbgEbSEp1mayoq2w9TdQbUnxKyRdjdOT9cE34BCSE=,tag:iN0EokN8eEz47Dd9XUIA1A==,type:str] +google_oauth_client_secret: ENC[AES256_GCM,data:xKC3Ky5QFU3XrIx/37HhEbZEmcJDTgwZp6gqnVXKShT9ebQ=,iv:ofpmvGy3+R8oLJP1Z8JzOzuopJYnW9fYzkVyqOXtL/k=,tag:ZVSLAKGe3zhCfIWhSgCH0A==,type:str] +user_google_email: ENC[AES256_GCM,data:TQn0Fh1BKa1NZMAm9aOaucL8RAGq/zvmD61i,iv:G6v5w7sLxbo2fOO470DUkCAixoVykCQ5RZCziEr6bbc=,tag:kreDA+JQqc4TZNJWNGovbA==,type:str] sops: age: - recipient: age1jeyw96795qu52swmtkjqgr2w3g4vxc43ckc5r4hlwpje23ptnfwsheah0s enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1Y0lCZzc0QVlmR0ZyV3pm - VnJPSW0zRkFmSmlwWW5Hbjg4NkJKb0pVTjBzClRmUW1XTS9GWGR0RWpXYVdUUDFk - a2VjS0VGSnVrQnpkU2RrQnZ4UmNDOFEKLS0tICtkY0xBeWt1ZFFhWEV4SlRmNXBr - OXljbkIxM21mYklubWxvcmI3eW5oWTAKNaDUBT+mX+G9HrqC9Od4vtFu3Irfuy1s - 7GszkEHf+/0IKO4VD26NdHnO6X0P1UOnEqcEHLessGiWBsVYjUw4Xg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLdzRUNHBGdmZtdldFNHQr + dFY3RGhwbWRoSDl5UVNJSU1Cb002YUJrcmh3Ck9CbVVSeVJxdVJRYkFLWHFpVW5P + TVRrb0NLMGZrY2xhRDdEZ1ZYU3NldFEKLS0tIFgyRGZ6aXlublo4NHRlbzhXeFhx + OEg2U1h0cTlWbFFyM0xpelIzdkRGQlUKVA+DDPt1vgHZTTHna7hb6gqUyaJqJM2P + KRzZqqzddcgR84PKb4kxstAvxDVKovg2rrCFPC7NM5bvnkVQi2cfqg== -----END AGE ENCRYPTED FILE----- - recipient: age106ml0ssx0p24dvfamp322myzka4wzeze9yhzyvtptp9c6fmmru6slswh2x enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMcDMzMVVmNHcrSGlNd1JW - RjZhNFlqWUVBM3QyVHJKWEZVTG5PbFRzRVQ0Ck0xMnl0U0pOUnVRM0ZCdXo1TFpU - SlZKTFo1Qm16UGZ5U2pWT2twbjU4RTgKLS0tIFU5VUQ5WEY4dGNwM1ErckZHVkNp - VUMwRFNsODFCZzZZQlBUWGhDYmZCZDgKFSDgrl1lppb4cx+baBwdVt3fKFia+DvS - AvMwzqQD7/OJu5Yhai8ekiLEN4Y2r+DcK3Nb526vM64Bevk5frmJsg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZTjA2VkM2SUN0SzIzamNK + TUZyN2pvMmxaMWt3TFJmNktJbkVJcGsyekU4Ck90TVFUTFd5S3JIWTB5YVd2NVcr + YjdUNzNrcDZLOFNyS3BSY2M2RFlkZTAKLS0tIDBmTFUxVjUxejFxbGlTR2lxRmx3 + R1d1eXZCa1FiNnBkcHRqYjd0S1h3OEEKNmB73xPvtK3K9SpUi9dtgLDyZZyj2Url + k7BePcC8tcUYeQyhYEUIaVl1JRCPbHtdoTSyKVqa8Mr3I6pvfrkWnw== -----END AGE ENCRYPTED FILE----- - recipient: age1dql5lwetk39a9y8ummfgjx3aym02yn205lxk389k6q0tu9y3ff4s94l66t enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMRldCMlVXTytpZVpoS2dL - eXZNRkpMRkFvRlJGSHZiOExlMTBHdllRVFRFCnc3RTBCY2hLbU90ZkpqMFQ0azQ4 - UGZzRlpsZnVDMS9PSlVrSFFiYlgvUEUKLS0tIEtYS1RZY203dXN4SlZ4UVEyZFR0 - TGROZTBhSXhJSm5VUit6UHpaU1JzZGsK/u8n7h445lJvzOLF7XXtAe0g5rTslRiw - +Gm/7/p0+QLlx3T+on9WfXVnxgSxVxur3xiSFjNp4fl/NqI0MSnbRg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0c3cxQkVmTGpWMlR0QnBD + clFNbktaTjg5UUFabDFyRUNOZlFNQUZiaDJzClJWM0hycDl3RmM3cjNGMm10SlJ1 + U3FKUmw0R3N5aHkzeXhkKzdySW5RZzgKLS0tIDh0RzNtNmRmU3FBNXRyeFdKaWJu + aGt5K1hoaEIwNXdJTW01TldSb2JFUjgKkyah1P6De1pBRLobnYB8lMj1sRaMsx5D + RIGn9Tws5Kj+VsgGenm24mMnLO48b4s+Y2XX8clydNaVB/Jf7B4d4A== -----END AGE ENCRYPTED FILE----- - recipient: age1kf93dpuqhu0a90s49sszgw64mn32hwgrm8suv799ca4ngrkecpqs8ljzk8 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhUHliOXhKcFBMY1ZyeHZa - MHJUblRhMlBabFlRSlVHZmgrd0hZYWFPcWhBCnRxa2lBQk81NG9DMkQySHdhUGZk - Skc2ZEZ0bVdUNlVBUEJ6SXIyaDJuV0UKLS0tIHpMRWY2ZURBbEs0WlVZV0ZkTnZC - NGFpK3RTZ0FEc05TVkJHNlVKbzZUbTgKM1kbK9d8apdQf80tREKBfv6Sm6q9Dv0N - WWtZJOyxEldsTyF0cBiK15e8dOu/195x2Z7gbr4gECRNZg/huKHFYg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvOTZQdyswVUt6Vi9yejlF + Z3I0VEcrdmVFbjFBSlJ5bHZWaVp0R2U5c0dnCkJFNVM5MVRrM3NXQ3JQTzFib3k4 + eTA2cTg2UFZGWkV6OVpSVWMxQ1IzNE0KLS0tIEc5SzlhRXVzQWlGd0l6ckJ4WmJO + L1QvTjhTWE1QNmswemRhVkczSnZEeFkKpeBTGWFl2rkNkR5tG3mo18WFkVZP/vwj + q/xKcMB/5lenIyYAfTlWWE84kWkt0Gx+spWFUqMqoE9805CyF6V/Ew== -----END AGE ENCRYPTED FILE----- - recipient: age1p3uxpjku9fkyvav56fgmq2cem50wg2dh34hdpp5nzqs6cerandaqvkrgxr enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwdkhUbnV4VFphSEFrdm8w - d1A0K0x2RGlKZVNHUllZQ1Z0UlFNOFhHTEdnClhkM2RVdE1hMDhSeG93WEs2MHRi - Vk5CcmZCOTFzYmdSdXNNZFZDT3RqaTgKLS0tIGlhdndIcXUzbUhxWEZVUVVxM0Rn - dFZ3T3VUeHVnVThadHVQaVJCNkdZeDQK99L7CbBbklUUtanyFIOiCzO3hZP1mh3z - ZZhhr6BCcHBbqzLaRLbT27BTCoNuGsXxyzW6tpXYacYuITkcFq9bOQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVmd3UlhXV3U2aGdlanVu + bVBtMWxSNlNZVCs3SkhUQjlydU1JaThhMHdFCmlSR1cyWVJ0dGFuRTBMSUxqRjU1 + cE90NkFlTVJ4TjFnK1J0dkR5ZEhxMGsKLS0tIGJ3akZNL2txVGFqVEZxM2wwNnNy + ODk5Rm43TmRJd3NQZUFrLzFZcyttNEUKYRsuDmk9u7GnJIM/8PphpyW0ydIud9JK + 7R5Rg5fuqN9NZxZHjv5qW2sWwsP3hBaCAT6RqlYEULj03b+5y+s4Hg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-03-26T15:52:43Z" - mac: ENC[AES256_GCM,data:s0Oc18zrDOQkyZHre1NbwMOKxS/4KGq7WGifmAi4xJsN2oeQXXAOXE5baMRBiC4q6ak7UvowSXWeuTx7+8P37ycVL2I9SpnIamkxGbzTLCNeqa+3ipcRRWMSYWrit+KwJXYS0F+hUv0/QgFssl8W7bKquwkkQy6Aqz8sGmx/WqU=,iv:JfUR8L/6arJenH21061U8T6ld3wU0BksWKkjiK+fLHc=,tag:iABB6x6zrFIVBSV6cHKMDA==,type:str] + - recipient: age1cf97rf4gq7qad0rd5dcdtel2qq7uqcxvd7dpk257e3e0e0krv9esd7sc0d + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2RnE5eng3aG1PY1ZNRnJJ + SUlpbDA1eXI3VTJoUEFVRnpPTGxjanh3M2pnClI0TzVmN3ZXTkxqb2piVDJjRjRP + V2lJeGVMVXFVd1lCVVdIQlpmOGRZbVUKLS0tIHhrODBOTlpuOFptbzB5YU9BSlV0 + WnpOSEZhNG1MZ2ZhelN5d2grSVl0L1kKt8fWIXZMeQMXaD3WT6joRa0YEmjHc4FU + IIge9bmr548WkDDq7uu0fbhgimiqRdjt0KxG0NnwlWm5MzpTOaYlQw== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2026-04-04T21:39:51Z" + mac: ENC[AES256_GCM,data:udqMJ5wLMgNypgbgHJtvCk6DuXMVE9InuitxrkPp4y5S8seEyH292zuzB7c7z8rGRntaxopZPNBkOgAPXZkD9uiS7B2iaQlQJslZJt5JxuDdJB+s/F9mNzvJVIDdw4fLdwrMqPHTS+2aVDJKMgByZFecUdx8M93EV6j1KJ6igvw=,iv:wYRy5/2o+yao6v2l7Wv4ea0FXjXt/mY591i4C4LpUQ4=,tag:iVsEQ83fPS3fNLfqu1AYRQ==,type:str] unencrypted_suffix: _unencrypted version: 3.12.2 From 14205e371f4aa777aa310ee14f1c8aaffb8e95cd Mon Sep 17 00:00:00 2001 From: fwastring Date: Sat, 25 Apr 2026 16:35:32 +0200 Subject: [PATCH 6/8] chagne hash --- moduler/wedding.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/moduler/wedding.nix b/moduler/wedding.nix index 8577659..638e3ea 100644 --- a/moduler/wedding.nix +++ b/moduler/wedding.nix @@ -16,7 +16,8 @@ let version = "source"; src = inputs.wedding; subPackages = [ "internal/cmd/app" ]; - vendorHash = "sha256-rxaikaR4UGXu2hIuR9ZbOnITBsCq5zEDAlwrhhRudoo="; + #vendorHash = "sha256-rxaikaR4UGXu2hIuR9ZbOnITBsCq5zEDAlwrhhRudoo="; + vendorHash = lib.fakeHash; env = { CGO_ENABLED = 0; }; From 1dd4440047c5d95910bfeebe8a13c271f11f7980 Mon Sep 17 00:00:00 2001 From: fwastring Date: Mon, 27 Apr 2026 14:46:44 +0200 Subject: [PATCH 7/8] added lots --- flake.lock | 345 ++++++++++++++------------ flake.nix | 4 +- maskiner/core/configuration.nix | 116 ++++++++- maskiner/gammal/configuration.nix | 4 +- maskiner/styrelsen/configuration.nix | 13 +- moduler/fish.nix | 97 ++++++-- moduler/home.nix | 84 ++++++- moduler/programs.nix | 5 +- moduler/programs/beets/default.nix | 8 +- moduler/programs/hyprland/default.nix | 2 + moduler/programs/nixvim/default.nix | 38 +-- moduler/programs/waybar/default.nix | 82 +++++- moduler/wedding.nix | 2 +- secrets/sops.yaml | 19 +- 14 files changed, 595 insertions(+), 224 deletions(-) diff --git a/flake.lock b/flake.lock index 4d15ec5..771d81a 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1774211390, - "narHash": "sha256-sTtAgCCaX8VNNZlQFACd3i1IQ+DB0Wf3COgiFS152ds=", + "lastModified": 1775558810, + "narHash": "sha256-fy95EdPnqQlpbP8+rk0yWKclWShCUS5VKs6P7/1MF2c=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "f62a4dbfa4e5584f14ad4c62afedf6e4b433cf70", + "rev": "7371b669b22aa2af980f913fc312a786d2f1abb2", "type": "github" }, "original": { @@ -126,11 +126,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1774616169, - "narHash": "sha256-fP4bU3SOH5sefSl6EagqULFs+bXoo3h3VLQCCyJplo4=", + "lastModified": 1775994227, + "narHash": "sha256-4VKeWtl9dEubrgpy9fSXkXbjBZlNXPNlQQM5l1ppHv4=", "owner": "catppuccin", "repo": "nix", - "rev": "e616c61cd9f7b05b32af266bc005fa266860dacf", + "rev": "d0a9a21ed8e235956a768fc624242ec9a3e15575", "type": "github" }, "original": { @@ -181,11 +181,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1764873433, - "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", + "lastModified": 1775176642, + "narHash": "sha256-2veEED0Fg7Fsh81tvVDNYR6SzjqQxa7hbi18Jv4LWpM=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", + "rev": "179704030c5286c729b5b0522037d1d51341022c", "type": "github" }, "original": { @@ -211,12 +211,54 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "hister", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "neovim-nightly-overlay", "nixpkgs" ] }, + "locked": { + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, "locked": { "lastModified": 1772408722, "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", @@ -231,28 +273,7 @@ "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -260,11 +281,11 @@ ] }, "locked": { - "lastModified": 1767609335, - "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "250481aafeb741edfe23d29195671c19b36b6dca", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "type": "github" }, "original": { @@ -273,7 +294,7 @@ "type": "github" } }, - "flake-parts_4": { + "flake-parts_5": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, @@ -350,20 +371,37 @@ "gnome-shell": { "flake": false, "locked": { - "host": "gitlab.gnome.org", "lastModified": 1767737596, "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", "owner": "GNOME", "repo": "gnome-shell", "rev": "ef02db02bf0ff342734d525b5767814770d85b49", - "type": "gitlab" + "type": "github" }, "original": { - "host": "gitlab.gnome.org", "owner": "GNOME", - "ref": "gnome-49", "repo": "gnome-shell", - "type": "gitlab" + "rev": "ef02db02bf0ff342734d525b5767814770d85b49", + "type": "github" + } + }, + "hister": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1777116211, + "narHash": "sha256-achnOU3FcehBOSsBKMtAUsu0Sw2+0QSdU3FpojewcR4=", + "owner": "asciimoo", + "repo": "hister", + "rev": "87a1acc07fb6ddba4c58050cf89179ac16653279", + "type": "github" + }, + "original": { + "owner": "asciimoo", + "repo": "hister", + "type": "github" } }, "home-manager": { @@ -373,11 +411,11 @@ ] }, "locked": { - "lastModified": 1774647770, - "narHash": "sha256-UNNi14XiqRWWjO8ykbFwA5wRwx7EscsC+GItOVpuGjc=", + "lastModified": 1776136611, + "narHash": "sha256-b2pu3Pb28W0bJzQVP3OJHZC5+dgOOeqjlli2WVakKEU=", "owner": "nix-community", "repo": "home-manager", - "rev": "02371c05a04a2876cf92e2d67a259e8f87399068", + "rev": "8a423e444b17dde406097328604a64fc7429e34e", "type": "github" }, "original": { @@ -431,11 +469,11 @@ ] }, "locked": { - "lastModified": 1772461523, - "narHash": "sha256-mI6A51do+hEUzeJKk9YSWfVHdI/SEEIBi2tp5Whq5mI=", + "lastModified": 1775496928, + "narHash": "sha256-Ds759WU03mGWtu3I43J+5GF5Ni8TvF+GYQUFD+fVeMo=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "7d63c04b4a2dd5e59ef943b4b143f46e713df804", + "rev": "cf95d93d17baa18f1d9b016b3afe27f820521a6e", "type": "github" }, "original": { @@ -455,17 +493,17 @@ "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_2", "xdph": "xdph" }, "locked": { - "lastModified": 1774635054, - "narHash": "sha256-NVjEJ5u0VHKTc/A17kWDfXgFnBAsP2BOMNj+fAv58mM=", + "lastModified": 1776115177, + "narHash": "sha256-WrJ+Lsb86tU/ZtBER2cw4r6l/lp1mclXhHZYnlMcyFU=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "5dfb1033a433789021ab9f94b9044e6f32496211", + "rev": "e539d21174211dad3fa5f8f5e8496bb7e5c7baf2", "type": "github" }, "original": { @@ -507,11 +545,11 @@ ] }, "locked": { - "lastModified": 1772467975, - "narHash": "sha256-kipyuDBxrZq+beYpZqWzGvFWm4QbayW9agAvi94vDXY=", + "lastModified": 1774710575, + "narHash": "sha256-p7Rcw13+gA4Z9EI3oGYe3neQ3FqyOOfZCleBTfhJ95Q=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "5e1c6b9025aaf4d578f3eff7c0eb1f0c197a9507", + "rev": "0703df899520001209646246bef63358c9881e36", "type": "github" }, "original": { @@ -638,11 +676,11 @@ ] }, "locked": { - "lastModified": 1774211405, - "narHash": "sha256-6KNwP4ojUzv3YBlZU5BqCpTrWHcix1Jo01BISsTT0xk=", + "lastModified": 1774911391, + "narHash": "sha256-c4YVwO33Mmw+FIV8E0u3atJZagHvGTJ9Jai6RtiB8rE=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "cb4e152dc72095a2af422956c6b689590572231a", + "rev": "e6caa3d4d1427eedbdf556cf4ceb70f2d9c0b56d", "type": "github" }, "original": { @@ -692,11 +730,11 @@ ] }, "locked": { - "lastModified": 1773074819, - "narHash": "sha256-qRqYnXiKoJLRTcfaRukn7EifmST2IVBUMZOeZMAc5UA=", + "lastModified": 1775414057, + "narHash": "sha256-mDpHnf+MkdOxEqIM1TnckYYh9p1SXR8B3KQfNZ12M8s=", "owner": "hyprwm", "repo": "hyprwire", - "rev": "f68afd0e73687598cc2774804fedad76693046f0", + "rev": "86012ee01b0fdd8bf3101ef38816f2efbee42490", "type": "github" }, "original": { @@ -712,11 +750,11 @@ ] }, "locked": { - "lastModified": 1767599588, - "narHash": "sha256-T5eoG861JJdGj6swp4+icjzwtSB5TY4efy5FeYbgHeg=", + "lastModified": 1775123884, + "narHash": "sha256-HjvJ2bD0YvbTdOLo+s+Iw7Sx7IwobC3KP9HXYd0KCIE=", "owner": "niksingh710", "repo": "minimal-tmux-status", - "rev": "67e2f5205de1b46f99af1d92013fb38fec5b05d9", + "rev": "f3096808cfca41007eacc76a686004ab6a394a0e", "type": "github" }, "original": { @@ -727,16 +765,16 @@ }, "neovim-nightly-overlay": { "inputs": { - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "neovim-src": "neovim-src", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1774656308, - "narHash": "sha256-k+L2Q5DtNGkPy+JgfhpTxpngdxy+FVz269iNfCYVy5E=", + "lastModified": 1776125101, + "narHash": "sha256-xD5YBoSyqDz+rTZzfs0r5Msa9AlJsgDweYOptLlx2AY=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "114911d841b928b2b147511bec7121af310d7a23", + "rev": "80b1f16dba171a70c44c2ee6ec9529876152a7f5", "type": "github" }, "original": { @@ -748,11 +786,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1774652330, - "narHash": "sha256-dqlsjRaLgD87D8YaC8842bhYziuRQ2qvTDgQDKL1ttQ=", + "lastModified": 1776118534, + "narHash": "sha256-1avpN21oJ+w1jQ0r1XtoAPMzhSzEvgBMxCk3dO8SihU=", "owner": "neovim", "repo": "neovim", - "rev": "f027f41e2cfba7be8c4841cb1a036827375bbd73", + "rev": "7bb8231577d11b31cbc85b563c6bc299b64957d4", "type": "github" }, "original": { @@ -763,11 +801,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1774386573, - "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", + "lastModified": 1775710090, + "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", + "rev": "4c1018dae018162ec878d42fec712642d214fdfa", "type": "github" }, "original": { @@ -810,11 +848,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1773821835, - "narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", + "lastModified": 1775423009, + "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0", + "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", "type": "github" }, "original": { @@ -842,27 +880,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1774106199, - "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=", + "lastModified": 1776329215, + "narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1774273680, - "narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed", + "rev": "b86751bc4085f48661017fa226dee99fab6c651b", "type": "github" }, "original": { @@ -872,13 +894,13 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_5": { "locked": { - "lastModified": 1774386573, - "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", + "lastModified": 1775423009, + "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", + "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", "type": "github" }, "original": { @@ -888,13 +910,45 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_6": { "locked": { - "lastModified": 1774386573, - "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", + "lastModified": 1775888245, + "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", + "rev": "13043924aaa7375ce482ebe2494338e058282925", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1775710090, + "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4c1018dae018162ec878d42fec712642d214fdfa", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1775710090, + "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4c1018dae018162ec878d42fec712642d214fdfa", "type": "github" }, "original": { @@ -906,18 +960,18 @@ }, "nixvim": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_3", "nixpkgs": [ "nixpkgs" ], "systems": "systems_3" }, "locked": { - "lastModified": 1774612943, - "narHash": "sha256-hRhq5cpDyBm/ZQyuzI+/YzQEVt35d/M6ko7ADfodw9s=", + "lastModified": 1776128025, + "narHash": "sha256-spZM5zll0cBPHHSZPioZREArzCsllurKQsJME08nnXY=", "owner": "nix-community", "repo": "nixvim", - "rev": "2b9f8e1d659d1c7664e1b85ab1620c219672696c", + "rev": "0a12693297d23f1b3af04ba6112b5936e2eba41b", "type": "github" }, "original": { @@ -938,11 +992,11 @@ ] }, "locked": { - "lastModified": 1767810917, - "narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=", + "lastModified": 1775228139, + "narHash": "sha256-ebbeHmg+V7w8050bwQOuhmQHoLOEOfqKzM1KgCTexK4=", "owner": "nix-community", "repo": "NUR", - "rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4", + "rev": "601971b9c89e0304561977f2c28fa25e73aa7132", "type": "github" }, "original": { @@ -953,7 +1007,7 @@ }, "powershell-es": { "inputs": { - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1771417904, @@ -980,11 +1034,11 @@ ] }, "locked": { - "lastModified": 1774104215, - "narHash": "sha256-EAtviqz0sEAxdHS4crqu7JGR5oI3BwaqG0mw7CmXkO8=", + "lastModified": 1775036584, + "narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "f799ae951fde0627157f40aec28dec27b22076d0", + "rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735", "type": "github" }, "original": { @@ -999,11 +1053,12 @@ "catppuccin": "catppuccin", "confetti": "confetti", "disko": "disko", + "hister": "hister", "home-manager": "home-manager", "hyprland": "hyprland", "minimal-tmux": "minimal-tmux", "neovim-nightly-overlay": "neovim-nightly-overlay", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "nixpkgs-azure-cli": "nixpkgs-azure-cli", "nixvim": "nixvim", "powershell-es": "powershell-es", @@ -1041,11 +1096,11 @@ ] }, "locked": { - "lastModified": 1774303811, - "narHash": "sha256-fhG4JAcLgjKwt+XHbjs8brpWnyKUfU4LikLm3s0Q/ic=", + "lastModified": 1776119890, + "narHash": "sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M=", "owner": "Mic92", "repo": "sops-nix", - "rev": "614e256310e0a4f8a9ccae3fa80c11844fba7042", + "rev": "d4971dd58c6627bfee52a1ad4237637c0a2fb0cd", "type": "github" }, "original": { @@ -1061,25 +1116,24 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_4", "gnome-shell": "gnome-shell", "nixpkgs": [ "nixpkgs" ], "nur": "nur", "systems": "systems_4", - "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", "tinted-tmux": "tinted-tmux", "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1774124764, - "narHash": "sha256-Poz9WTjiRlqZIf197CrMMJfTifZhrZpbHFv0eU1Nhtg=", + "lastModified": 1776128773, + "narHash": "sha256-aV7fNAdum23uirlIEgRNq+Tz0bn0+asbYqaA/pCV8No=", "owner": "nix-community", "repo": "stylix", - "rev": "e31c79f571c5595a155f84b9d77ce53a84745494", + "rev": "43e20cee100e5578eb8e709bec960e26ce653adf", "type": "github" }, "original": { @@ -1148,23 +1202,6 @@ "type": "github" } }, - "tinted-foot": { - "flake": false, - "locked": { - "lastModified": 1726913040, - "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", - "owner": "tinted-theming", - "repo": "tinted-foot", - "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-foot", - "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", - "type": "github" - } - }, "tinted-kitty": { "flake": false, "locked": { @@ -1184,11 +1221,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1767710407, - "narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=", + "lastModified": 1772661346, + "narHash": "sha256-4eu3LqB9tPqe0Vaqxd4wkZiBbthLbpb7llcoE/p5HT0=", "owner": "tinted-theming", "repo": "schemes", - "rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2", + "rev": "13b5b0c299982bb361039601e2d72587d6846294", "type": "github" }, "original": { @@ -1200,11 +1237,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1767489635, - "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", + "lastModified": 1772934010, + "narHash": "sha256-x+6+4UvaG+RBRQ6UaX+o6DjEg28u4eqhVRM9kpgJGjQ=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", + "rev": "c3529673a5ab6e1b6830f618c45d9ce1bcdd829d", "type": "github" }, "original": { @@ -1216,11 +1253,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1767488740, - "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", + "lastModified": 1772909925, + "narHash": "sha256-jx/5+pgYR0noHa3hk2esin18VMbnPSvWPL5bBjfTIAU=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", + "rev": "b4d3a1b3bcbd090937ef609a0a3b37237af974df", "type": "github" }, "original": { @@ -1231,7 +1268,7 @@ }, "typsite": { "inputs": { - "flake-parts": "flake-parts_4", + "flake-parts": "flake-parts_5", "nixpkgs": [ "nixpkgs" ], @@ -1258,11 +1295,11 @@ ] }, "locked": { - "lastModified": 1774688817, - "narHash": "sha256-Jmc51QARSI/Mpp4FH2sq2UAA+rag4XMwkr4c2IB4nvc=", + "lastModified": 1777128769, + "narHash": "sha256-DP+KayU1TFjUo9ZY0TNvalNP8HzZsOhxPKRTd34G0mk=", "ref": "simplify-static-html", - "rev": "4a05531e4478c6376146d6f5daffe5e3734fb1cb", - "revCount": 31, + "rev": "b168d315f718fa69d69630f2db741d12edb1ec2a", + "revCount": 36, "type": "git", "url": "ssh://git@github.com/fwastring/wedding.git" }, diff --git a/flake.nix b/flake.nix index d91806c..78228b0 100644 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,7 @@ inputs = { # Nixpkgs nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + hister.url = "github:asciimoo/hister"; nixpkgs-azure-cli.url = "github:NixOS/nixpkgs/nixos-24.11"; stylix = { url = "github:nix-community/stylix"; @@ -48,7 +49,7 @@ sops-nix, catppuccin, confetti, - powershell-es, + hister, bbk, nixvim, disko, @@ -133,6 +134,7 @@ sops-nix.nixosModules.sops catppuccin.nixosModules.catppuccin confetti.nixosModules.default + hister.nixosModules.default # bbk.nixosModules.default nixvim.nixosModules.default ]; diff --git a/maskiner/core/configuration.nix b/maskiner/core/configuration.nix index 048668d..020b23e 100644 --- a/maskiner/core/configuration.nix +++ b/maskiner/core/configuration.nix @@ -81,17 +81,47 @@ in group = "users"; mode = "0400"; }; - sops.secrets.google_oauth_client_id = { + sops.secrets.google_oauth_client_id_core = { owner = "fw"; group = "users"; mode = "0400"; }; - sops.secrets.google_oauth_client_secret = { + sops.secrets.google_oauth_client_secret_core = { owner = "fw"; group = "users"; mode = "0400"; }; - sops.secrets.user_google_email = { + sops.secrets.user_google_email_core = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.mssql_server_core = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.mssql_database_core = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.mssql_user_core = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.mssql_password_core = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.vault_addr_core = { + owner = "fw"; + group = "users"; + mode = "0400"; + }; + sops.secrets.vault_token_core = { owner = "fw"; group = "users"; mode = "0400"; @@ -99,6 +129,62 @@ in environment.systemPackages = [ pkgs.cifs-utils ]; + # Ollama service for running local LLMs + services.ollama = { + enable = true; + package = pkgs.ollama-rocm; # AMD GPU support + # Optional: specify host and port if you want to access from other machines + # host = "0.0.0.0"; + # port = 11434; + }; + + services.hister = { + enable = true; + + # Optional: Set via Nix options (takes precedence over config file) + # port = 4433; + dataDir = "/var/lib/hister"; # NixOS Recommend: "/var/lib/hister" + # Home-Manager Recommend: "~/.local/share/hister" + # Darwin Recommend: "~/Library/Application Support/hister" + + # Optional (NixOS only): open `port` in the system firewall. + # Setting `port` alone no longer mutates the firewall. + # openFirewall = true; + + # Optional: Use existing YAML config file + # configPath = /path/to/config.yml; + + # Optional: Inject secrets (e.g. HISTER__APP__ACCESS_TOKEN) via a + # systemd EnvironmentFile instead of placing them in the world-readable + # Nix store. Honored by the NixOS module and the Linux home-manager + # user service; ignored on launchd (Darwin). + # environmentFile = "/run/secrets/hister.env"; + + # Optional: Inline configuration (rendered to YAML and passed via HISTER_CONFIG) + # Note: Only one of configPath or settings can be used. + # Accepts any key the server accepts — see the upstream `app`, `server`, + # `indexer`, `crawler`, `hotkeys`, `extractors`, and + # `sensitive_content_patterns` blocks. + settings = { + app = { + search_url = "https://google.com/search?q={query}"; + log_level = "info"; + }; + server = { + address = "127.0.0.1:4433"; + database = "db.sqlite3"; + }; + hotkeys = { + "/" = "focus_search_input"; + "enter" = "open_result"; + "alt+enter" = "open_result_in_new_tab"; + "alt+j" = "select_next_result"; + "alt+k" = "select_previous_result"; + "alt+o" = "open_query_in_search_engine"; + }; + }; + }; + systemd.services.fleet-osquery = { description = "osquery enrolled to Fleet"; wantedBy = [ "multi-user.target" ]; @@ -146,6 +232,20 @@ in ]; }; + fileSystems."/mnt/testdb/C" = { + device = "//192.168.0.203/C$"; + fsType = "cifs"; + options = + let + automount_opts = + "x-systemd.automount,noauto,x-systemd.idle-timeout=60," + + "x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"; + in + [ + "${automount_opts},credentials=${toString config.sops.secrets.build-service.path},vers=3.0" + ]; + }; + fileSystems."/mnt/elastic-internal/C" = { device = "//192.168.0.204/C$"; fsType = "cifs"; @@ -216,14 +316,18 @@ in ]; }; - home-manager.extraSpecialArgs = { inherit inputs pkgs; }; + home-manager.extraSpecialArgs = { + inherit inputs pkgs myhostname; + }; home-manager.users.fw = { opencode.mcpEnabled = { - az = true; + az = false; k8s = true; github = true; - jira = true; + jira = false; google = true; + mssql = true; + vault = false; }; imports = [ ./../../moduler/home.nix diff --git a/maskiner/gammal/configuration.nix b/maskiner/gammal/configuration.nix index 7ec0f19..32dc8bd 100644 --- a/maskiner/gammal/configuration.nix +++ b/maskiner/gammal/configuration.nix @@ -52,7 +52,9 @@ in theme = theme; }; - home-manager.extraSpecialArgs = { inherit inputs pkgs; }; + home-manager.extraSpecialArgs = { + inherit inputs pkgs myhostname; + }; home-manager.users.fw = { imports = [ ./../../moduler/home.nix diff --git a/maskiner/styrelsen/configuration.nix b/maskiner/styrelsen/configuration.nix index 9577802..ed5e717 100644 --- a/maskiner/styrelsen/configuration.nix +++ b/maskiner/styrelsen/configuration.nix @@ -30,7 +30,7 @@ in (modulesDirectory + /programs/hyprland) (modulesDirectory + /programs/kubernetes-tools.nix) (modulesDirectory + /programs/nixvim) - (modulesDirectory + /programs/neomd) + (modulesDirectory + /programs/neomd) ]; kubernetes-tools.enable = true; @@ -54,17 +54,17 @@ in sops.defaultSopsFile = ../../secrets/sops.yaml; sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; - sops.secrets.google_oauth_client_id = { + sops.secrets.google_oauth_client_id_styrelsen = { owner = "fw"; group = "users"; mode = "0400"; }; - sops.secrets.google_oauth_client_secret = { + sops.secrets.google_oauth_client_secret_styrelsen = { owner = "fw"; group = "users"; mode = "0400"; }; - sops.secrets.user_google_email = { + sops.secrets.user_google_email_styrelsen = { owner = "fw"; group = "users"; mode = "0400"; @@ -75,7 +75,9 @@ in theme = theme; }; - home-manager.extraSpecialArgs = { inherit inputs pkgs; }; + home-manager.extraSpecialArgs = { + inherit inputs pkgs myhostname; + }; home-manager.users.fw = { opencode.mcpEnabled = { az = false; @@ -83,6 +85,7 @@ in github = false; jira = false; google = true; + mssql = false; }; imports = [ ./../../moduler/home.nix diff --git a/moduler/fish.nix b/moduler/fish.nix index 759a9c1..21f2be5 100644 --- a/moduler/fish.nix +++ b/moduler/fish.nix @@ -82,41 +82,90 @@ in fzfOpts = catppuccinFzfOptions.${config.fish.theme}; in '' - fish_vi_key_bindings - set fish_greeting - set FLAKE_DIR "/home/fw/nix" - if test -r /run/secrets/jira_token - set -gx JIRA_API_TOKEN (string trim (cat /run/secrets/jira_token)) - end - if test -r /run/secrets/google_oauth_client_id - set -gx GOOGLE_OAUTH_CLIENT_ID (string trim (cat /run/secrets/google_oauth_client_id)) - end - if test -r /run/secrets/google_oauth_client_secret - set -gx GOOGLE_OAUTH_CLIENT_SECRET (string trim (cat /run/secrets/google_oauth_client_secret)) - end - if test -r /run/secrets/user_google_email - set -gx USER_GOOGLE_EMAIL (string trim (cat /run/secrets/user_google_email)) - end - set -gx GITHUB_PERSONAL_ACCESS_TOKEN (cat /run/secrets/github_token) - set -gx GITHUB_HOST "https://github.com" - set -gx GRAFANA_SERVICE_ACCOUNT_TOKEN (cat /run/secrets/grafana_token) + fish_vi_key_bindings + set fish_greeting + set FLAKE_DIR "/home/fw/nix" + set -l host_name (hostname) + + function load_secret --argument-names env_name preferred_secret fallback_secret + if test -r "/run/secrets/$preferred_secret" + set -gx $env_name (string trim (cat "/run/secrets/$preferred_secret")) + else if test -r "/run/secrets/$fallback_secret" + set -gx $env_name (string trim (cat "/run/secrets/$fallback_secret")) + end + end + + if test -r /run/secrets/jira_token + set -gx JIRA_API_TOKEN (string trim (cat /run/secrets/jira_token)) + end + load_secret GOOGLE_OAUTH_CLIENT_ID "google_oauth_client_id_$host_name" google_oauth_client_id + load_secret GOOGLE_OAUTH_CLIENT_SECRET "google_oauth_client_secret_$host_name" google_oauth_client_secret + load_secret USER_GOOGLE_EMAIL "user_google_email_$host_name" user_google_email + load_secret MSSQL_SERVER "mssql_server_$host_name" mssql_server + load_secret MSSQL_DATABASE "mssql_database_$host_name" mssql_database + load_secret MSSQL_USER "mssql_user_$host_name" mssql_user + load_secret MSSQL_PASSWORD "mssql_password_$host_name" mssql_password + load_secret MSSQL_PORT "mssql_port_$host_name" mssql_port + load_secret MSSQL_ENCRYPT "mssql_encrypt_$host_name" mssql_encrypt + load_secret MSSQL_WINDOWS_AUTH "mssql_windows_auth_$host_name" mssql_windows_auth + load_secret VAULT_ADDR "vault_addr_$host_name" vault_addr + load_secret VAULT_TOKEN "vault_token_$host_name" vault_token + load_secret VAULT_NAMESPACE "vault_namespace_$host_name" vault_namespace + set -gx GITHUB_PERSONAL_ACCESS_TOKEN (cat /run/secrets/github_token) + set -gx GITHUB_HOST "https://github.com" + set -gx GRAFANA_SERVICE_ACCOUNT_TOKEN (cat /run/secrets/grafana_token) set -gx GRAFANA_URL "https://monitoring.internalifacts.se" set -Ux FZF_CTRL_R_OPTS "--reverse" set -Ux FZF_TMUX_OPTS "-p" set -e GOROOT set -x -U GOPATH $HOME/.go gh completion -s fish > ~/.config/fish/completions/gh.fish - set -gx PATH $PATH $HOME/scripts - set -gx PATH $PATH $HOME/.krew/bin + set -gx PATH $PATH $HOME/scripts + set -gx PATH $PATH $HOME/.krew/bin + set -gx OPENCODE_DEFAULT_PROMPT_FILE "$HOME/.config/opencode/session-prompt.txt" + + function oc + set -l passthrough_subcommands completion acp mcp attach debug providers auth agent upgrade uninstall serve web models stats export import github pr session plugin plug db + + if test (count $argv) -gt 0 + if string match -qr '^-' -- "$argv[1]" + command opencode $argv + return $status + end + + for arg in $argv + if test "$arg" = "--prompt" + command opencode $argv + return $status + end + end + + if contains -- "$argv[1]" $passthrough_subcommands + command opencode $argv + return $status + end + end + + if test -r "$OPENCODE_DEFAULT_PROMPT_FILE" + set -l session_prompt (string collect < "$OPENCODE_DEFAULT_PROMPT_FILE") + command opencode --prompt "$session_prompt" $argv + else + command opencode $argv + end + end + + complete -e -c oc + complete -c oc -w opencode - if not set -q SSH_AUTH_SOCK - eval (ssh-agent -c) - ssh-add ~/.ssh/id_ed25519 >/dev/null 2>&1 + if not set -q SSH_AUTH_SOCK + eval (ssh-agent -c) + ssh-add ~/.ssh/id_ed25519 >/dev/null 2>&1 set SSH_AUTH_SOCK /home/fw/.bitwarden-ssh-agent.sock end - set -Ux FZF_DEFAULT_OPTS "${fzfOpts}" + set -Ux FZF_DEFAULT_OPTS "${fzfOpts}" + functions -e load_secret ''; }; }; diff --git a/moduler/home.nix b/moduler/home.nix index fdb9fe2..522c881 100644 --- a/moduler/home.nix +++ b/moduler/home.nix @@ -8,6 +8,7 @@ }: let inherit (lib) mkOption types; + googleWorkspaceStateDir = "/home/fw/.local/share/google-workspace-mcp/${myhostname}"; in { options.opencode.mcpEnabled = mkOption { @@ -18,6 +19,8 @@ in github = true; jira = true; google = false; + mssql = false; + vault = false; }; description = "Per-host MCP enablement flags for OpenCode servers."; }; @@ -48,6 +51,22 @@ in "$schema" = "https://opencode.ai/config.json"; theme = lib.mkForce "catppuccin"; plugin = [ "@ex-machina/opencode-anthropic-auth" ]; + provider = { + ollama = { + npm = "@ai-sdk/openai-compatible"; + options = { + baseURL = "http://localhost:11434/v1"; + }; + models = { + # Only include models that support function calling (tools) + "gemma2:latest" = {}; + "llama3.1:8b" = {}; + "qwen2.5-coder:14b" = {}; + "qwen2.5-coder:32b" = {}; + # Note: deepseek-coder models and codellama:13b don't support tools + }; + }; + }; mcp = { az = { type = "local"; @@ -112,12 +131,12 @@ in "run" "-i" "--rm" - "--network" - "host" + "--network" + "host" "--user" "1000:100" "-v" - "/home/fw/.local/share/google-workspace-mcp:/home/app/.google_workspace_mcp" + "${googleWorkspaceStateDir}:/home/app/.google_workspace_mcp" "-e" "GOOGLE_OAUTH_CLIENT_ID" "-e" @@ -134,6 +153,38 @@ in ]; enabled = config.opencode.mcpEnabled.google or false; }; + mssql = { + type = "local"; + command = [ + "nix" + "shell" + "nixpkgs#uv" + "nixpkgs#freetds" + "-c" + "uvx" + "--from" + "git+https://github.com/RichardHan/mssql_mcp_server.git@77b0c6a9771e3f83a54c03dad42f1a53e0a20d0e" + "mssql_mcp_server" + ]; + enabled = config.opencode.mcpEnabled.mssql or false; + }; + vault = { + type = "local"; + command = [ + "docker" + "run" + "-i" + "--rm" + "-e" + "VAULT_ADDR" + "-e" + "VAULT_TOKEN" + "-e" + "VAULT_NAMESPACE" + "hashicorp/vault-mcp-server" + ]; + enabled = config.opencode.mcpEnabled.vault or false; + }; }; }; }; @@ -145,6 +196,33 @@ in fi ''; + home.activation.googleWorkspaceMcpState = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + mkdir -p "${googleWorkspaceStateDir}" + ''; + + home.file.".config/opencode/session-prompt.txt".text = '' + Session instructions for this entire chat: + + 1) Tooling / binaries + - Always use Nix for binaries and tool execution. + - Prefer `nix shell nixpkgs# -c ` (or `nix develop -c ` if the repo already defines a dev shell). + - Do not run tools directly from global/system installs unless I explicitly ask. + + 2) Daily note logging + - Track general work notes in: /home/fw/knowledge/notes/daily + - Use today's daily note file (create it if missing) and keep it updated as work progresses. + - Add short, timestamped entries for meaningful actions/decisions. + + 3) Schedule updates + - In today's daily note, maintain a "Schedule" section/tab and keep it current with what we are actively doing. + - When tasks change, update Schedule first, then continue implementation. + - Keep Schedule concise and action-oriented. + + 4) Working style + - Don't ask for confirmation on normal steps; proceed with sensible defaults. + - Only ask when blocked, destructive, or security-sensitive. + ''; + programs.alacritty = { enable = true; # theme = "catppuccin_${theme}"; diff --git a/moduler/programs.nix b/moduler/programs.nix index 0cc22f9..a132fe8 100644 --- a/moduler/programs.nix +++ b/moduler/programs.nix @@ -83,8 +83,9 @@ slurp bitwarden-desktop jira-cli-go - - dbeaver-bin + chromium + vault + dbeaver-bin ( let base = pkgs.appimageTools.defaultFhsEnvArgs; diff --git a/moduler/programs/beets/default.nix b/moduler/programs/beets/default.nix index 3b48a09..52ce1b7 100644 --- a/moduler/programs/beets/default.nix +++ b/moduler/programs/beets/default.nix @@ -15,6 +15,9 @@ let move: yes write: yes + paths: + default: $albumartist/$album ($year)/$track $title + fetchart: auto: yes @@ -60,7 +63,8 @@ in "BEETSCONFIG=${config.xdg.configHome}/beets/config.yaml" ]; }; - Install = { WantedBy = [ "default.target" ]; }; + Install = { + WantedBy = [ "default.target" ]; + }; }; } - diff --git a/moduler/programs/hyprland/default.nix b/moduler/programs/hyprland/default.nix index 1319d1b..43334ad 100644 --- a/moduler/programs/hyprland/default.nix +++ b/moduler/programs/hyprland/default.nix @@ -285,10 +285,12 @@ with lib; "$mod, l, movefocus, r" "$mod, k, movefocus, u" "$mod, j, movefocus, d" + "$mod, b, exec, pkill -INT .waybar-wrapped" # Applications "$mod, q, exec, ${pkgs.librewolf}/bin/librewolf" "$mod, d, exec, ${pkgs.rofi}/bin/rofi -show drun -p 'Run: '" + ", F19, exec, ${pkgs.rofi}/bin/rofi -show drun -p 'Run: '" # Screencapture "$mod SHIFT, s, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png" diff --git a/moduler/programs/nixvim/default.nix b/moduler/programs/nixvim/default.nix index a4c9bf5..d5425ca 100644 --- a/moduler/programs/nixvim/default.nix +++ b/moduler/programs/nixvim/default.nix @@ -263,25 +263,25 @@ with lib; # }; # }; - treesitter = { - enable = true; - - grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ - bash - json - lua - make - markdown - helm - nix - regex - toml - vim - vimdoc - xml - yaml - ]; - }; + # treesitter = { + # enable = true; + # + # grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ + # bash + # json + # lua + # make + # markdown + # helm + # nix + # regex + # toml + # vim + # vimdoc + # xml + # yaml + # ]; + # }; oil = { enable = true; settings = { diff --git a/moduler/programs/waybar/default.nix b/moduler/programs/waybar/default.nix index 389225c..e426072 100644 --- a/moduler/programs/waybar/default.nix +++ b/moduler/programs/waybar/default.nix @@ -59,6 +59,7 @@ let "upower" "custom/tailscale" "custom/netbird" + "custom/bitwarden" "network" "clock" ] @@ -69,6 +70,7 @@ let "bluetooth" "custom/tailscale" "custom/netbird" + "custom/bitwarden" "network" "clock" ]; @@ -189,6 +191,20 @@ let return-type = "json"; interval = 5; }; + + "custom/bitwarden" = { + exec = "/home/fw/.config/waybar/scripts/bitwarden.sh --status"; + on-click = "/home/fw/.config/waybar/scripts/bitwarden.sh --toggle"; + exec-on-event = true; + format = "BW {icon} {text}"; + format-icons = { + connected = ""; + stopped = ""; + }; + tooltip = true; + return-type = "json"; + interval = 5; + }; }; waybarStyle = '' @@ -238,7 +254,8 @@ let #upower, #network, #custom-tailscale, - #custom-netbird { + #custom-netbird, + #custom-bitwarden { background: @base; border: none; border-radius: 5px; @@ -305,6 +322,7 @@ let #upower, #custom-tailscale, #custom-netbird, + #custom-bitwarden, #network { background: @peach; color: @base; @@ -755,6 +773,68 @@ with lib; ''; executable = true; }; + xdg.configFile."waybar/scripts/bitwarden.sh" = { + text = '' + #!${pkgs.bash}/bin/bash + + PATH=${ + lib.makeBinPath [ + pkgs.coreutils + pkgs.procps + pkgs.bitwarden-desktop + ] + } + + BITWARDEN_SSH_SOCK="''${HOME}/.bitwarden-ssh-agent.sock" + + is_socket_active() { + [[ -S "$BITWARDEN_SSH_SOCK" ]] + } + + show_status() { + if is_socket_active; then + echo "{\"text\":\"\",\"class\":\"connected\",\"alt\":\"connected\",\"tooltip\":\"Bitwarden SSH agent socket is active: $BITWARDEN_SSH_SOCK\"}" + else + echo "{\"text\":\"\",\"class\":\"stopped\",\"alt\":\"stopped\",\"tooltip\":\"Bitwarden SSH agent socket is inactive: $BITWARDEN_SSH_SOCK\"}" + fi + } + + open_bitwarden() { + bitwarden >/dev/null 2>&1 & + show_status + } + + stop_bitwarden() { + pkill -x bitwarden >/dev/null 2>&1 || true + show_status + } + + toggle_bitwarden() { + if is_socket_active; then + stop_bitwarden + else + open_bitwarden + fi + } + + case "$1" in + --status) + show_status + ;; + --open) + open_bitwarden + ;; + --toggle) + toggle_bitwarden + ;; + *) + echo "Usage: $0 {--status|--open|--toggle}" + exit 1 + ;; + esac + ''; + executable = true; + }; }; # catppuccin.waybar = { # enable = true; diff --git a/moduler/wedding.nix b/moduler/wedding.nix index 638e3ea..4526cc8 100644 --- a/moduler/wedding.nix +++ b/moduler/wedding.nix @@ -17,7 +17,7 @@ let src = inputs.wedding; subPackages = [ "internal/cmd/app" ]; #vendorHash = "sha256-rxaikaR4UGXu2hIuR9ZbOnITBsCq5zEDAlwrhhRudoo="; - vendorHash = lib.fakeHash; + vendorHash = "sha256-9TAVoYShxqzeo2BUWEFmZ6PO4p9Q/BG4207ZEBmhq9I="; env = { CGO_ENABLED = 0; }; diff --git a/secrets/sops.yaml b/secrets/sops.yaml index d38fdc5..9895820 100644 --- a/secrets/sops.yaml +++ b/secrets/sops.yaml @@ -17,9 +17,18 @@ grafana_token: ENC[AES256_GCM,data:yAUqBV2/IF/wkyutHhf1Ui/xxRIt+SgsUk7QmdcnYa+x5 fleet-enroll-secret: ENC[AES256_GCM,data:2DEmgzsYvWZas65HLE4PaxZ3h7L4Gw8esVirZYrzCik=,iv:9t6ET8QnPLIl0Pnn9r24btF7VUQnRr3ukRH0oVsgIrg=,tag:mQ0yxEhx72L71DB36cfMew==,type:str] jira_token: ENC[AES256_GCM,data:gPSgsNp4XlM6cTzLCpsJpdByTOHQ9vWfosurrd+yzo9MAkTcm5BDXwRWl1aNN2OFZu4+GXNqOho1gegDCQhZQnFRYNACASqmhGk6/GCpSNUlVAExOhvSs8tUu+YZoBUVufWHn5sIsxNHGgiJnX5ZtX7sVhUOo5u+qbb49iHsSZ6WBwP9SDMpfqXkhgZAURTk7iu7VgbHt6D1BxQH2yDCXR7OuICC5D6lSjdKo4Vbdudmz07vM1b4DHfvtP15SJfl,iv:oV3ACNPpz4Zb3bt0oWlx9On71LoXt3ZO5QosSr5XB2k=,tag:Xr0Y/ugZbQ2BaQtUJOwIng==,type:str] opencode_atlassian_env: ENC[AES256_GCM,data:v7uz9p4/H2WNzZA+I5+qnBRw4cyB4DNt/adBn0TS1bm9Gqk+UhnpjlXuP3mpxElXrAPmqT/rIvRGZp/YGiDWODH+B/WjtAaA/R+hFfOoP+m2unx2UM/a+UwC2EO+6ci+lKtNpT8FfobQxjuCdKWCmz0U54ijtfmyh73+lIzZoffs35fvxHwvchzM3zfCy/EHkR1jDUiKykX2VR1JiBZNa6PFp+SXZGvBlcjf8WjaryEpzIGv1plFftTQSo74OHPuUAC4kXrV9eCH4OJQ6JLyfOH+8tGstyyVWO9BtG7/fO5j830bBgvbqTsjZX+NvmTiaP4caC/sy7vseKkbgRzdUuAASLM3Pbqs9QnP6lFzye/QNdnlcwOOoNniXMbwynmSwtrz6w==,iv:DrArPdRddjxqMqU+38jvc1zCy2xVRmXOD7D9UQHQfgs=,tag:ZGCBxg28k1FMKwvu2r2Aqg==,type:str] -google_oauth_client_id: ENC[AES256_GCM,data:ql6A5TCFJvK4fjKESWfpD5hUTnL/P9BQRZ6o7hrjtHo58h0OUkw8CUdy8pwmbbkz2JGgLpJjmOjOEMEWHfWJ9Yb++JlNBRbj,iv:4cnbgEbSEp1mayoq2w9TdQbUnxKyRdjdOT9cE34BCSE=,tag:iN0EokN8eEz47Dd9XUIA1A==,type:str] -google_oauth_client_secret: ENC[AES256_GCM,data:xKC3Ky5QFU3XrIx/37HhEbZEmcJDTgwZp6gqnVXKShT9ebQ=,iv:ofpmvGy3+R8oLJP1Z8JzOzuopJYnW9fYzkVyqOXtL/k=,tag:ZVSLAKGe3zhCfIWhSgCH0A==,type:str] -user_google_email: ENC[AES256_GCM,data:TQn0Fh1BKa1NZMAm9aOaucL8RAGq/zvmD61i,iv:G6v5w7sLxbo2fOO470DUkCAixoVykCQ5RZCziEr6bbc=,tag:kreDA+JQqc4TZNJWNGovbA==,type:str] +google_oauth_client_id_styrelsen: ENC[AES256_GCM,data:nSbWYSreyn5+Qbf3hOYrpIAC2Eilp/gukox/c0DmjRNBy0DVHY/sKhy60GIM6L98pypmBA00Prx0aq1q506l80l9tcAnUOOC,iv:SMiQafz+ifJU7fW31UMYSZv2gelm+ADxQoy2iJfms4g=,tag:/T/kZAfcu/Ve8BgEr9MnAg==,type:str] +google_oauth_client_secret_styrelsen: ENC[AES256_GCM,data:mMqnmusE6KPFH4lTqXg/mboslIiHrCTEnQuHGmMYZ0aN3sA=,iv:xVy1UFNfbuYimuqKza61GJdwkCZ/j3qiBCm8Esl7cPE=,tag:RmBgnRT5WmwL2YFbj+0tKQ==,type:str] +user_google_email_styrelsen: ENC[AES256_GCM,data:JRYtpeY2bGVu6gaAuMlZdlklW2UWIY9FXq2v,iv:BEtfCwloMEdJN2uTBwbq8ATRMW9XWtbR3DTtzH9/6Qw=,tag:shBSm2749ZnwLITAUMieWw==,type:str] +user_google_email_core: ENC[AES256_GCM,data:azALLFW243+0y46jHGMfMwjEBWbth2ufF2E=,iv:gX36/P4VG189/QwUUPhmtlali4Y7U3pU2mLtW5EZOTs=,tag:1LxA7QsqpVN8RnJvde3HiA==,type:str] +google_oauth_client_id_core: ENC[AES256_GCM,data:R0ZoHDm1McgIqYSilmujguQTwZAozESasbLK+VCz5xU4pogH78H0I/pLL900ZFNUFr3nwoRSv4bG/aFJbtSxwXkKfcMMIEG7,iv:3LA8fl6QJd3Jh9tqyphrddgqYTwLwqGL71bdipwMqhA=,tag:hNLEhlOsHi2VpQf1JI7wUg==,type:str] +google_oauth_client_secret_core: ENC[AES256_GCM,data:JcuMQqrSxRZKFhrZ5Y5JeUCFsOb8ralJ6Ult7fBIrDGNTCc=,iv:0KHy8+/q0V5hkGYgXdXlq6i/G8NuKvi/rNSV4ztoF+8=,tag:6ZHFUEQlLVIeY7gU13NpWQ==,type:str] +mssql_server_core: ENC[AES256_GCM,data:G4ozEwlBqTqx,iv:Glg+tr4yQoL5IXG4kAcVyvdz4bhyAaRamVO3BC5JERY=,tag:Srz3oCy3+3kB8QzytBjoyw==,type:str] +mssql_database_core: ENC[AES256_GCM,data:niPf8ne2,iv:7/c1HwaRAObJ1E83+Au4T1RyVh2U+IHLNjOo8sWlcds=,tag:0Yp+o1NQkZjIGTfoTXsCLw==,type:str] +mssql_user_core: ENC[AES256_GCM,data:EGo=,iv:dfRX5GJdnz24RIS4SRLCCcavQ8WttGJg32N8NPcN0Es=,tag:Zbu2LCm2EWEYfr3OKouYfA==,type:str] +mssql_password_core: ENC[AES256_GCM,data:72kkh7A02lt0Cf0X,iv:h6vZR2Kw7Md73vFqpMPxL+0XVLaymEHfRGMQb8lobmY=,tag:ynnd+YIeh5O5YuNcITqdgg==,type:str] +vault_addr_core: ENC[AES256_GCM,data:OQIGGCAJQknET1ARyMKn4ahy8f4ZlIljqhpNFFcpRA==,iv:kQI9VBHYrtaw1a6+diYmD4kncsMXRSW55yHY5K/waq0=,tag:zWsmzo2uSHsnJmzPvoZ8Gw==,type:str] +vault_token_core: ENC[AES256_GCM,data:3UPIIzCB6CKS1UN083NvOSMUlgiVvCh7nnxRcA==,iv:jxXYJbJJa3THKuynmPMv/quUSLn+VI8+sup4xfReEjQ=,tag:UTRBCpIqz5XHGSNBWl8I8g==,type:str] sops: age: - recipient: age1jeyw96795qu52swmtkjqgr2w3g4vxc43ckc5r4hlwpje23ptnfwsheah0s @@ -76,7 +85,7 @@ sops: WnpOSEZhNG1MZ2ZhelN5d2grSVl0L1kKt8fWIXZMeQMXaD3WT6joRa0YEmjHc4FU IIge9bmr548WkDDq7uu0fbhgimiqRdjt0KxG0NnwlWm5MzpTOaYlQw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-04-04T21:39:51Z" - mac: ENC[AES256_GCM,data:udqMJ5wLMgNypgbgHJtvCk6DuXMVE9InuitxrkPp4y5S8seEyH292zuzB7c7z8rGRntaxopZPNBkOgAPXZkD9uiS7B2iaQlQJslZJt5JxuDdJB+s/F9mNzvJVIDdw4fLdwrMqPHTS+2aVDJKMgByZFecUdx8M93EV6j1KJ6igvw=,iv:wYRy5/2o+yao6v2l7Wv4ea0FXjXt/mY591i4C4LpUQ4=,tag:iVsEQ83fPS3fNLfqu1AYRQ==,type:str] + lastmodified: "2026-04-20T09:24:02Z" + mac: ENC[AES256_GCM,data:7JvoexmSi2+yUxXMZljxwSoekxgPgEJtq21yVfkm5PO6+IvbrVD0fiKzcup7N8G9prgBUPYPvQV69eF6zxMz/zg58FdFKZ8HejNCUGrEeQ9lNXgqy6llSSDd7hj7b/e2OEo0zKLPA4s5ZmqXtE/G/Fa1V9kF0xMOwhkHWvHL++k=,iv:9tNusL5mmHrJC2Rif79JVf5V9TawXul02gLPl2IchMo=,tag:xfpzVqIKc+BVFGPKl8ickQ==,type:str] unencrypted_suffix: _unencrypted version: 3.12.2 From bba7fe79d87f291205153a5825ad7fbd3852bd0c Mon Sep 17 00:00:00 2001 From: fwastring Date: Sat, 2 May 2026 12:06:25 +0200 Subject: [PATCH 8/8] updated some stuff --- flake.lock | 321 +++++++++------------------ flake.nix | 53 +++-- maskiner/styrelsen/configuration.nix | 24 +- moduler/programs.nix | 11 +- 4 files changed, 160 insertions(+), 249 deletions(-) diff --git a/flake.lock b/flake.lock index 771d81a..ed1e77c 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1775558810, - "narHash": "sha256-fy95EdPnqQlpbP8+rk0yWKclWShCUS5VKs6P7/1MF2c=", + "lastModified": 1776876344, + "narHash": "sha256-Ubqb/agkuMJK+k19gjQgHux/eOYRc1sRGoOZOho8+VY=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "7371b669b22aa2af980f913fc312a786d2f1abb2", + "rev": "648a13d0ee1e03a843b3e145b8ece15393058701", "type": "github" }, "original": { @@ -104,7 +104,9 @@ "bbk": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1760346178, @@ -123,14 +125,16 @@ }, "catppuccin": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1775994227, - "narHash": "sha256-4VKeWtl9dEubrgpy9fSXkXbjBZlNXPNlQQM5l1ppHv4=", + "lastModified": 1777637913, + "narHash": "sha256-IV0MJUCncmFUpcRRoHR11gK6VR+hpN/Vtaz91+dsPPE=", "owner": "catppuccin", "repo": "nix", - "rev": "d0a9a21ed8e235956a768fc624242ec9a3e15575", + "rev": "a199649e9941490ab712aa891c144e305d165ef8", "type": "github" }, "original": { @@ -141,7 +145,9 @@ }, "confetti": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1759854845, @@ -165,11 +171,11 @@ ] }, "locked": { - "lastModified": 1773889306, - "narHash": "sha256-PAqwnsBSI9SVC2QugvQ3xeYCB0otOwCacB1ueQj2tgw=", + "lastModified": 1777713215, + "narHash": "sha256-8GzXDOXckDWwST8TY5DbwYFjdvQLlP7K9CLSVx6iTTo=", "owner": "nix-community", "repo": "disko", - "rev": "5ad85c82cc52264f4beddc934ba57f3789f28347", + "rev": "63b4e7e6cf75307c1d26ac3762b886b5b0247267", "type": "github" }, "original": { @@ -238,6 +244,27 @@ "nixpkgs" ] }, + "locked": { + "lastModified": 1777678872, + "narHash": "sha256-EPIFsulyon7Z1vLQq5Fk64GR8L7cQsT+IPhcsukVbgk=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "5250617bffd85403b14dbf43c3870e7f255d2c16", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, "locked": { "lastModified": 1775087534, "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", @@ -253,27 +280,6 @@ } }, "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -385,25 +391,6 @@ "type": "github" } }, - "hister": { - "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "lastModified": 1777116211, - "narHash": "sha256-achnOU3FcehBOSsBKMtAUsu0Sw2+0QSdU3FpojewcR4=", - "owner": "asciimoo", - "repo": "hister", - "rev": "87a1acc07fb6ddba4c58050cf89179ac16653279", - "type": "github" - }, - "original": { - "owner": "asciimoo", - "repo": "hister", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -411,11 +398,11 @@ ] }, "locked": { - "lastModified": 1776136611, - "narHash": "sha256-b2pu3Pb28W0bJzQVP3OJHZC5+dgOOeqjlli2WVakKEU=", + "lastModified": 1777679572, + "narHash": "sha256-egYNbRrkn+6SwTHinhdb6WUfzzdC3nXfCRqS321VylY=", "owner": "nix-community", "repo": "home-manager", - "rev": "8a423e444b17dde406097328604a64fc7429e34e", + "rev": "9cb587ade2aa1b4a7257f0238d41072690b0ca4f", "type": "github" }, "original": { @@ -440,11 +427,11 @@ ] }, "locked": { - "lastModified": 1772461003, - "narHash": "sha256-pVICsV7FtcEeVwg5y/LFh3XFUkVJninm/P1j/JHzEbM=", + "lastModified": 1776511930, + "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "b62396457b9cfe2ebf24fe05404b09d2a40f8ed7", + "rev": "39435900785d0c560c6ae8777d29f28617d031ef", "type": "github" }, "original": { @@ -469,11 +456,11 @@ ] }, "locked": { - "lastModified": 1775496928, - "narHash": "sha256-Ds759WU03mGWtu3I43J+5GF5Ni8TvF+GYQUFD+fVeMo=", + "lastModified": 1776426399, + "narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "cf95d93d17baa18f1d9b016b3afe27f820521a6e", + "rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84", "type": "github" }, "original": { @@ -493,17 +480,19 @@ "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs_5", + "nixpkgs": [ + "nixpkgs" + ], "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_2", "xdph": "xdph" }, "locked": { - "lastModified": 1776115177, - "narHash": "sha256-WrJ+Lsb86tU/ZtBER2cw4r6l/lp1mclXhHZYnlMcyFU=", + "lastModified": 1777677995, + "narHash": "sha256-Q1fYHq1Gn79sQAkUDALR6dEC6l2WLkFyaB0cZLZnMQM=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "e539d21174211dad3fa5f8f5e8496bb7e5c7baf2", + "rev": "c065e951d631a3aa3736b45f17b3556597f63c1a", "type": "github" }, "original": { @@ -545,11 +534,11 @@ ] }, "locked": { - "lastModified": 1774710575, - "narHash": "sha256-p7Rcw13+gA4Z9EI3oGYe3neQ3FqyOOfZCleBTfhJ95Q=", + "lastModified": 1776426575, + "narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "0703df899520001209646246bef63358c9881e36", + "rev": "a968d211048e3ed538e47b84cb3649299578f19d", "type": "github" }, "original": { @@ -599,11 +588,11 @@ ] }, "locked": { - "lastModified": 1772459629, - "narHash": "sha256-/iwvNUYShmmnwmz/czEUh6+0eF5vCMv0xtDW0STPIuM=", + "lastModified": 1776426736, + "narHash": "sha256-rl7i4aY+9p8LysJp7o8uRWahCkpFznCgGHXszlTw7b0=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "7615ee388de18239a4ab1400946f3d0e498a8186", + "rev": "7833ff33b2e82d3406337b5dcf0d1cec595d83e9", "type": "github" }, "original": { @@ -676,11 +665,11 @@ ] }, "locked": { - "lastModified": 1774911391, - "narHash": "sha256-c4YVwO33Mmw+FIV8E0u3atJZagHvGTJ9Jai6RtiB8rE=", + "lastModified": 1777492286, + "narHash": "sha256-PwuoEJQcjSKJNP5T55qhfDwIP0tw5zxEhfu8GDfKfeg=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "e6caa3d4d1427eedbdf556cf4ceb70f2d9c0b56d", + "rev": "ec5c0c709706bad5b82f667fd8758eae442577ce", "type": "github" }, "original": { @@ -701,11 +690,11 @@ ] }, "locked": { - "lastModified": 1772459835, - "narHash": "sha256-978jRz/y/9TKmZb/qD4lEYHCQGHpEXGqy+8X2lFZsak=", + "lastModified": 1777148232, + "narHash": "sha256-Uv0WZLhu89SafuSOmYDA7akrPt4wBRmsa1ucasO5aXg=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "0a692d4a645165eebd65f109146b8861e3a925e7", + "rev": "fec9cf1abcc1011e46f0a0986f46bf93c6bf8b92", "type": "github" }, "original": { @@ -730,11 +719,11 @@ ] }, "locked": { - "lastModified": 1775414057, - "narHash": "sha256-mDpHnf+MkdOxEqIM1TnckYYh9p1SXR8B3KQfNZ12M8s=", + "lastModified": 1776728575, + "narHash": "sha256-z9eGphrArEBpl1O/GCH0wlY6z4K9vA6yWh2gAS6qytU=", "owner": "hyprwm", "repo": "hyprwire", - "rev": "86012ee01b0fdd8bf3101ef38816f2efbee42490", + "rev": "f3a80888783702a39691b684d099e16b83ed4702", "type": "github" }, "original": { @@ -767,14 +756,16 @@ "inputs": { "flake-parts": "flake-parts_2", "neovim-src": "neovim-src", - "nixpkgs": "nixpkgs_6" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1776125101, - "narHash": "sha256-xD5YBoSyqDz+rTZzfs0r5Msa9AlJsgDweYOptLlx2AY=", + "lastModified": 1777681657, + "narHash": "sha256-LaHz8tExvJg1JT0RJubPjWffBWUmhX5uCQnIIbEp8SM=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "80b1f16dba171a70c44c2ee6ec9529876152a7f5", + "rev": "69942be4a5ffc37cd83f568ab5d1955721021eb5", "type": "github" }, "original": { @@ -786,11 +777,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1776118534, - "narHash": "sha256-1avpN21oJ+w1jQ0r1XtoAPMzhSzEvgBMxCk3dO8SihU=", + "lastModified": 1777655539, + "narHash": "sha256-csYI4zuLVyrebqsvJilUkHe7GC4KHpl5pNzO+CiOPLE=", "owner": "neovim", "repo": "neovim", - "rev": "7bb8231577d11b31cbc85b563c6bc299b64957d4", + "rev": "085bb518c894a6b03aaf23ba81242c2c6126bea8", "type": "github" }, "original": { @@ -801,16 +792,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1775710090, - "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", + "lastModified": 1777428379, + "narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4c1018dae018162ec878d42fec712642d214fdfa", + "rev": "755f5aa91337890c432639c60b6064bb7fe67769", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } @@ -846,118 +837,6 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1775423009, - "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1759733170, - "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8913c168d1c56dc49a7718685968f38752171c3b", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1776329215, - "narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b86751bc4085f48661017fa226dee99fab6c651b", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1775423009, - "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1775888245, - "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "13043924aaa7375ce482ebe2494338e058282925", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1775710090, - "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "4c1018dae018162ec878d42fec712642d214fdfa", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1775710090, - "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "4c1018dae018162ec878d42fec712642d214fdfa", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixvim": { "inputs": { "flake-parts": "flake-parts_3", @@ -967,11 +846,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1776128025, - "narHash": "sha256-spZM5zll0cBPHHSZPioZREArzCsllurKQsJME08nnXY=", + "lastModified": 1777236345, + "narHash": "sha256-ALOqlq7bE30lsX4rA76hXeQ2aLLEpb44hS+D1+jWS88=", "owner": "nix-community", "repo": "nixvim", - "rev": "0a12693297d23f1b3af04ba6112b5936e2eba41b", + "rev": "a67d9cd6ff725a763afe88727aac73208ded3bf4", "type": "github" }, "original": { @@ -1007,7 +886,9 @@ }, "powershell-es": { "inputs": { - "nixpkgs": "nixpkgs_8" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1771417904, @@ -1034,11 +915,11 @@ ] }, "locked": { - "lastModified": 1775036584, - "narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=", + "lastModified": 1776796298, + "narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735", + "rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad", "type": "github" }, "original": { @@ -1058,7 +939,7 @@ "hyprland": "hyprland", "minimal-tmux": "minimal-tmux", "neovim-nightly-overlay": "neovim-nightly-overlay", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs", "nixpkgs-azure-cli": "nixpkgs-azure-cli", "nixvim": "nixvim", "powershell-es": "powershell-es", @@ -1096,11 +977,11 @@ ] }, "locked": { - "lastModified": 1776119890, - "narHash": "sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M=", + "lastModified": 1777338324, + "narHash": "sha256-bc+ZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E=", "owner": "Mic92", "repo": "sops-nix", - "rev": "d4971dd58c6627bfee52a1ad4237637c0a2fb0cd", + "rev": "8eaee5c45428b28b8c47a83e4c09dccec5f279b5", "type": "github" }, "original": { @@ -1129,11 +1010,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1776128773, - "narHash": "sha256-aV7fNAdum23uirlIEgRNq+Tz0bn0+asbYqaA/pCV8No=", + "lastModified": 1777580129, + "narHash": "sha256-6buSTzDtHYCJP1JNAIZCmgNcOs76oN03j+21CxdijVo=", "owner": "nix-community", "repo": "stylix", - "rev": "43e20cee100e5578eb8e709bec960e26ce653adf", + "rev": "20ff51f523e2dd67e5f31a321719d30708c1b771", "type": "github" }, "original": { @@ -1337,11 +1218,11 @@ ] }, "locked": { - "lastModified": 1773601989, - "narHash": "sha256-2tJf/CQoHApoIudxHeJye+0Ii7scR0Yyi7pNiWk0Hn8=", + "lastModified": 1777035886, + "narHash": "sha256-m1TNuBoSXUBSKhD9UVMkU90M0wFTPTfvIOOltO8IM8A=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "a9b862d1aa000a676d310cc62d249f7ad726233d", + "rev": "ecfcdcc781f48821d83e1e2a0e30d7beca0eeb5e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 78228b0..fed121e 100644 --- a/flake.nix +++ b/flake.nix @@ -3,9 +3,11 @@ inputs = { # Nixpkgs - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - hister.url = "github:asciimoo/hister"; - nixpkgs-azure-cli.url = "github:NixOS/nixpkgs/nixos-24.11"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -18,16 +20,10 @@ url = "github:Glomzzz/typsite"; inputs.nixpkgs.follows = "nixpkgs"; }; - catppuccin.url = "github:catppuccin/nix"; - confetti.url = "git+https://git.wastring.com/fw/confetti?ref=main"; - powershell-es.url = "git+https://git.wastring.com/fw/powershell-es?ref=main"; - bbk.url = "git+https://git.wastring.com/fw/bbk?ref=main"; - wedding.url = "git+ssh://git@github.com/fwastring/wedding.git?ref=simplify-static-html"; - wedding.inputs.nixpkgs.follows = "nixpkgs"; - neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; - home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - hyprland.url = "github:hyprwm/Hyprland"; + catppuccin = { + url = "github:catppuccin/nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; minimal-tmux = { url = "github:niksingh710/minimal-tmux-status"; inputs.nixpkgs.follows = "nixpkgs"; @@ -36,8 +32,35 @@ url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; - disko.url = "github:nix-community/disko"; - disko.inputs.nixpkgs.follows = "nixpkgs"; + confetti = { + url = "git+https://git.wastring.com/fw/confetti?ref=main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + powershell-es = { + url = "git+https://git.wastring.com/fw/powershell-es?ref=main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + bbk = { + url = "git+https://git.wastring.com/fw/bbk?ref=main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + wedding = { + url = "git+ssh://git@github.com/fwastring/wedding.git?ref=simplify-static-html"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + neovim-nightly-overlay = { + url = "github:nix-community/neovim-nightly-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + hyprland = { + url = "github:hyprwm/Hyprland"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + disko = { + url = "github:nix-community/disko"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixpkgs-azure-cli.url = "github:NixOS/nixpkgs/nixos-24.11"; }; outputs = diff --git a/maskiner/styrelsen/configuration.nix b/maskiner/styrelsen/configuration.nix index ed5e717..e75adba 100644 --- a/maskiner/styrelsen/configuration.nix +++ b/maskiner/styrelsen/configuration.nix @@ -30,9 +30,16 @@ in (modulesDirectory + /programs/hyprland) (modulesDirectory + /programs/kubernetes-tools.nix) (modulesDirectory + /programs/nixvim) - (modulesDirectory + /programs/neomd) ]; + virtualisation.virtualbox = { + host = { + enable = true; + }; + }; + + users.extraGroups.vboxusers.members = [ "fw" ]; + kubernetes-tools.enable = true; networking.networkmanager = { enable = true; @@ -45,7 +52,6 @@ in base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${theme}.yaml"; }; - neomd.enable = true; nixvim = { enable = true; @@ -97,13 +103,13 @@ in profile = "laptop"; theme = theme; }; - gtk = { - enable = true; - iconTheme = { - name = "oomox-gruvbox-dark"; - package = pkgs.gruvbox-dark-icons-gtk; - }; - }; + # gtk = { + # enable = false; + # iconTheme = { + # name = "oomox-gruvbox-dark"; + # package = pkgs.gruvbox-dark-icons-gtk; + # }; + # }; kitty = { enable = true; theme = theme; diff --git a/moduler/programs.nix b/moduler/programs.nix index a132fe8..4203d32 100644 --- a/moduler/programs.nix +++ b/moduler/programs.nix @@ -6,6 +6,7 @@ ... }: { + services.autofs.enable = false; services.udev = { extraRules = '' KERNEL=="ttyACM0", MODE:="666" @@ -71,11 +72,11 @@ remmina brightnessctl speedcrunch - wf-recorder - slurp - lagrange - jujutsu - rclone + wf-recorder + slurp + lagrange + jujutsu + rclone quickemu virt-viewer go-passbolt-cli