diff --git a/flake.lock b/flake.lock index af5aabc..4142ffa 100644 --- a/flake.lock +++ b/flake.lock @@ -32,11 +32,11 @@ "nuscht-search": "nuscht-search" }, "locked": { - "lastModified": 1735569271, - "narHash": "sha256-4CIClg4LMcmcCRIXSTcHDe6ujPzlxMtbCjMH7ntV784=", + "lastModified": 1735634086, + "narHash": "sha256-DTcB/kBZULyJztXXnH3OVF5LHLl+O670DuLZZNUMnNo=", "owner": "catppuccin", "repo": "nix", - "rev": "7413a65b3ed37964c16e2fbe20145b55bcda8281", + "rev": "63290ea1d2a28e65195017ed78a81cfc242ef0df", "type": "github" }, "original": { @@ -156,11 +156,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1735550039, - "narHash": "sha256-hIyQM5hqBpOfvb6lMHl+707pg7iwBJKfbsANEZFhV+0=", + "lastModified": 1735635676, + "narHash": "sha256-mr3Slf2LDg6YMjQcrNdj/i8tQK4p7NIYVshVPBgtYBM=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "bc19dc80cd2987406a19b5c644e0400c4cf67e33", + "rev": "7dc139dffc4ad8301c639210a00d993e1c158069", "type": "github" }, "original": { @@ -688,16 +688,15 @@ "lix": { "flake": false, "locked": { - "lastModified": 1728951119, - "narHash": "sha256-vUBgL8zJBDyj2serxdEVbNqe6pBN4YgWwhtg3XP8mpQ=", + "lastModified": 1735572323, + "narHash": "sha256-Wjt+PK15IdaOUoI0sgsRzaNMxKQGSROLe9sOd44+fwM=", "ref": "refs/heads/main", - "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", - "revCount": 16344, + "rev": "5c7ea4f446de58aa64f78087bb4ec26b9c4111aa", + "revCount": 16600, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, "original": { - "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" } @@ -883,9 +882,7 @@ "inputs": { "flake-parts": "flake-parts_4", "hercules-ci-effects": "hercules-ci-effects", - "nixpkgs": [ - "nixpkgs" - ], + "nixpkgs": "nixpkgs_8", "osx-kvm": "osx-kvm" }, "locked": { @@ -1013,11 +1010,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1735412871, - "narHash": "sha256-Qoz0ow6jDGUIBHxduc7Y1cjYFS71tvEGJV5Src/mj98=", + "lastModified": 1735531152, + "narHash": "sha256-As8I+ebItDKtboWgDXYZSIjGlKeqiLBvjxsQHUmAf1Q=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9f94733f93e4fe6e82f516efae007096e4ab5a21", + "rev": "3ffbbdbac0566a0977da3d2657b89cbcfe9a173b", "type": "github" }, "original": { @@ -1059,6 +1056,20 @@ "type": "github" } }, + "nixpkgs_10": { + "locked": { + "lastModified": 1682134069, + "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1734424634, @@ -1153,6 +1164,22 @@ } }, "nixpkgs_8": { + "locked": { + "lastModified": 1703255338, + "narHash": "sha256-Z6wfYJQKmDN9xciTwU3cOiOk+NElxdZwy/FiHctCzjU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6df37dc6a77654682fe9f071c62b4242b5342e04", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { "locked": { "lastModified": 1735471104, "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", @@ -1168,20 +1195,6 @@ "type": "github" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1682134069, - "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, "nmd": { "inputs": { "nixpkgs": [ @@ -1348,7 +1361,7 @@ "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_9", "treefmt-nix": "treefmt-nix_3", "vscode-server": "vscode-server" } @@ -1521,11 +1534,11 @@ ] }, "locked": { - "lastModified": 1735135567, - "narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=", + "lastModified": 1735653038, + "narHash": "sha256-Q6xAmciTXDtZfUxf6c15QqtRR8BvX4edYPstF/uoqMk=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "9e09d30a644c57257715902efbb3adc56c79cf28", + "rev": "56c0ecd79f7ba01a0ec027da015df751d6ca3ae7", "type": "github" }, "original": { @@ -1537,7 +1550,7 @@ "vscode-server": { "inputs": { "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1729422940, diff --git a/flake.nix b/flake.nix index e42bff9..ff70299 100644 --- a/flake.nix +++ b/flake.nix @@ -28,16 +28,13 @@ inputs.nixpkgs.follows = "nixpkgs"; }; dream2nix.url = "github:nix-community/dream2nix"; - nixThePlanet = { - url = "github:MatthewCroughan/NixThePlanet/"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + nixThePlanet.url = "github:MatthewCroughan/NixThePlanet"; # not following nixpkgs on purpose nixDarwin = { url = "github:LnL7/nix-darwin"; }; nix-on-droid.url = "github:nix-community/nix-on-droid"; lix = { - url = "git+https://git@git.lix.systems/lix-project/lix?rev=f6077314fa6aff862758095bb55fe844e9162a1d"; # FIXME update + url = "git+https://git@git.lix.systems/lix-project/lix"; # FIXME update flake = false; }; lix-module = { diff --git a/hmModules/element/default.nix b/hmModules/element/default.nix index 34266c3..0246fe5 100644 --- a/hmModules/element/default.nix +++ b/hmModules/element/default.nix @@ -1,7 +1,6 @@ -{ pkgs, ... }: +{ pkgs, lib, ... }: { - # home.packages = [pkgs.schildichat-desktop]; - home.packages = [ pkgs.element-desktop-wayland ]; + home.packages = [ pkgs.element-desktop ]; systemd.user.services.element-desktop = { Install.WantedBy = [ "graphical-session.target" ]; @@ -12,8 +11,7 @@ }; Service = { - # ExecStart = "${pkgs.schildichat-desktop}/bin/schildichat-desktop"; # TODO I preferred SchildiChat but it was removed from nixpkgs becuase unsafe - ExecStart = "${pkgs.element-desktop-wayland}/bin/element-desktop"; + ExecStart = lib.getExe pkgs.element-desktop; Restart = "on-failure"; RestartSec = 3; }; diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index 5eba7b8..b1d061c 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -46,6 +46,7 @@ in nodejs_20 qadwaitadecorations kdePackages.qtwayland + copilot-node-server ] ++ (with hunspellDicts; [ en_US-large diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 450ebb5..f33aa1d 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -171,6 +171,13 @@ (indent-bars-prefer-character 't) ;; so it works also in terminal ) +(use-package copilot + :custom + (copilot-max-char -1) + (copilot-indent-offset-warning-disable 't) + :hook (prog-mode org-mode) + :bind (("C-" . copilot-accept-completion))) + (use-package diredfl :config (diredfl-global-mode)) @@ -508,6 +515,15 @@ (eglot-ensure)))) :mode "\\.py\\'") +(use-package solidity-mode + :hook ((solidity-mode . (lambda () + (require 'eglot) + (add-to-list 'eglot-server-programs + '(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio"))) + (eglot-ensure)))) + :mode "\\.sol\\'") + + (use-package typescript-ts-mode :hook ((typescript-ts-mode . (lambda () (require 'eglot) diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index 4f1cb71..424c4b9 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -41,7 +41,8 @@ in extraConfig.url = { "ssh://git@github.com/".insteadOf = "https://github.com/"; # Workaround for https://github.com/rust-lang/cargo/issues/3381#issuecomment-1193730972 - "https://github.com/rust-lang/crates.io-index".insteadOf = "https://github.com/rust-lang/crates.io-index"; + "https://github.com/rust-lang/crates.io-index".insteadOf = + "https://github.com/rust-lang/crates.io-index"; "https://github.com/RustSec/advisory-db".insteadOf = "https://github.com/RustSec/advisory-db"; }; diff --git a/hmModules/qutebrowser/default.nix b/hmModules/qutebrowser/default.nix index 6a77ff7..e09d76f 100644 --- a/hmModules/qutebrowser/default.nix +++ b/hmModules/qutebrowser/default.nix @@ -36,7 +36,8 @@ in ",l" = ''config-cycle spellcheck.languages [" it-IT "] [" en-US "]''; }; insert = { - "" = ''spawn --userscript qute-pass --dmenu-invocation '${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 -d' --password-only --unfiltered''; + "" = + ''spawn --userscript qute-pass --dmenu-invocation '${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 -d' --password-only --unfiltered''; }; }; settings = { diff --git a/hmModules/sway/default.nix b/hmModules/sway/default.nix index 95d5bf4..3369e92 100644 --- a/hmModules/sway/default.nix +++ b/hmModules/sway/default.nix @@ -110,7 +110,8 @@ in lib.mkOptionDefault { "${modifier}+x" = "exec emacsclient -c"; - "${modifier}+y" = "exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c"; + "${modifier}+y" = + "exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c"; "${modifier}+b" = "exec qutebrowser"; "${modifier}+s" = "exec ${screenshotScript}"; # "${modifier}+g" = "exec ${screenrecordingScript}"; # FIXME diff --git a/hmModules/tremotesf/default.nix b/hmModules/tremotesf/default.nix index 82c1336..4078e06 100644 --- a/hmModules/tremotesf/default.nix +++ b/hmModules/tremotesf/default.nix @@ -16,7 +16,7 @@ }; Service = { - ExecStart = "${lib.getExe pkgs.tremotesf} --minimized"; + ExecStart = "${lib.getExe' pkgs.coreutils "sleep"} 5 && ${lib.getExe pkgs.tremotesf} --minimized"; Restart = "on-failure"; RestartSec = 3; }; diff --git a/hosts/module.nix b/hosts/module.nix index 03cc8d6..a59d4e6 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -287,7 +287,6 @@ in _module.args = { age = config.age or { }; fleetFlake = self; - pkgsStable = inputs.nixpkgsStable.legacyPackages.${pkgs.system}; }; }; } diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 53278b2..42bf4f9 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -39,7 +39,6 @@ "sunshine" "mount-sisko" "adb" - "guix" "prometheus-exporters" "promtail" ] diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index b67b313..e5d6e87 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -31,6 +31,7 @@ "paperless" "syncthing" "atticd" + "jellyfin" ] ++ [ ./disko.nix diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index e86c6b6..9aaab39 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -14,8 +14,7 @@ "vpn.aciceri.dev" "photos.aciceri.dev" "status.aciceri.dev" - "paper.aciceri.dev" - "cloud.aciceri.dev" + "jelly.aciceri.dev" ]; apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path; }; diff --git a/modules/forgejo/default.nix b/modules/forgejo/default.nix index a0940ab..e4865a4 100644 --- a/modules/forgejo/default.nix +++ b/modules/forgejo/default.nix @@ -83,7 +83,8 @@ in "git.aciceri.dev" = { enableACME = true; forceSSL = true; - locations."/".proxyPass = "http://127.0.0.1:${builtins.toString config.services.forgejo.settings.server.HTTP_PORT}"; + locations."/".proxyPass = + "http://127.0.0.1:${builtins.toString config.services.forgejo.settings.server.HTTP_PORT}"; }; }; } diff --git a/modules/jellyfin/default.nix b/modules/jellyfin/default.nix index 33e1cd1..51e066a 100644 --- a/modules/jellyfin/default.nix +++ b/modules/jellyfin/default.nix @@ -1,7 +1,21 @@ +{ config, ... }: { services.jellyfin = { enable = true; + openFirewall = true; }; users.users.jellyfin.extraGroups = [ "transmission" ]; + + environment.persistence."/persist".directories = [ + config.services.jellyfin.dataDir + ]; + + services.nginx.virtualHosts = { + "jelly.aciceri.dev" = { + enableACME = true; + forceSSL = true; + locations."/".proxyPass = "http://127.0.0.1:8096"; + }; + }; } diff --git a/modules/matrix/default.nix b/modules/matrix/default.nix index b80803d..c7a2741 100644 --- a/modules/matrix/default.nix +++ b/modules/matrix/default.nix @@ -29,7 +29,8 @@ in "matrix.aciceri.dev" = { forceSSL = true; enableACME = true; - locations."/".proxyPass = "http://127.0.0.1:${builtins.toString (lib.head config.services.matrix-synapse.settings.listeners).port}"; + locations."/".proxyPass = + "http://127.0.0.1:${builtins.toString (lib.head config.services.matrix-synapse.settings.listeners).port}"; locations."/_matrix".proxyPass = "http://localhost:8008"; locations."/_synapse/client".proxyPass = "http://localhost:8008"; }; diff --git a/modules/mediatomb/default.nix b/modules/mediatomb/default.nix index d3e85b0..7a2eba2 100644 --- a/modules/mediatomb/default.nix +++ b/modules/mediatomb/default.nix @@ -1,6 +1,11 @@ +{ pkgs, ... }: { services.mediatomb = { enable = true; + # FIXME remove when fixed + package = + (builtins.getFlake "github:NixOs/nixpkgs/3ffbbdbac0566a0977da3d2657b89cbcfe9a173b") + .legacyPackages.${pkgs.stdenv.system}.gerbera; openFirewall = true; serverName = "Sisko"; mediaDirectories = [ diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 7d743f9..52cd712 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -24,9 +24,8 @@ in }; }; - services.openssh.knownHosts."${ - host - }".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; + services.openssh.knownHosts."${host}".publicKey = + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; services.postgresqlBackup = { enable = true; diff --git a/modules/sisko-share/default.nix b/modules/sisko-share/default.nix index 41ea29b..22f52a6 100644 --- a/modules/sisko-share/default.nix +++ b/modules/sisko-share/default.nix @@ -16,15 +16,19 @@ ''; }; + systemd.services.nfs-server.preStart = '' + chmod -R 775 /export/hd/torrent + ''; + services.webdav = { enable = true; settings = { - address = "10.1.1.2"; # accessible only in LAN, used by Kodi installed on the TV + address = "0.0.0.0"; port = 9999; scope = "/mnt/hd/torrent"; modify = false; - auth = false; # TODO should we enable authentication? It's only reachable in LAN + auth = false; debug = true; users = [ ]; }; diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index 15db1d1..b049158 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -39,8 +39,8 @@ ]; systemd.tmpfiles.rules = [ - "d /mnt/hd/torrent 770 transmission transmission" - "d /mnt/hd/torrent/.incomplete 770 transmission transmission" + "d /mnt/hd/torrent 774 transmission transmission" + "d /mnt/hd/torrent/.incomplete 774 transmission transmission" ]; environment.persistence."/persist".directories = [ diff --git a/packages/emacs/default.nix b/packages/emacs/default.nix index fe77b46..9bb0125 100644 --- a/packages/emacs/default.nix +++ b/packages/emacs/default.nix @@ -19,7 +19,7 @@ let cp $f $out/"libtree-sitter-$(basename $f)" done ''; - emacsWithoutPackages = pkgs'.emacs-git.override { + emacsWithoutPackages = pkgs'.emacs-unstable.override { withSQLite3 = true; withWebP = true; withPgtk = true; diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index d326f62..9abb207 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -44,6 +44,22 @@ let }; deps = [ elpaPackages.heap ]; }; + copilot = buildEmacsPackage { + name = "copilot"; + src = pkgs.fetchFromGitHub { + owner = "copilot-emacs"; + repo = "copilot.el"; + rev = "b7bff7b934837744688fd74191ecffb83b3bcc05"; + hash = "sha256-MEsjXQIeiTI6NXN5rTW7HfFPC18IZnhAssma2BZa0ks="; + }; + deps = with epkgs; [ + s + dash + editorconfig + jsonrpc + f + ]; + }; }; # *List* containing emacs packages from (M)ELPA