From effd3390c363cee1bab73e3091f53f6a5b60aa4a Mon Sep 17 00:00:00 2001 From: "thomas g. lopes" Date: Tue, 10 Mar 2026 11:53:13 +0000 Subject: [PATCH 1/3] enable openssh --- modules/hosts/nixos.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/hosts/nixos.nix b/modules/hosts/nixos.nix index 9f00114..7d92930 100644 --- a/modules/hosts/nixos.nix +++ b/modules/hosts/nixos.nix @@ -48,6 +48,14 @@ flake.nixosModules.nixos-host = {pkgs, ...}: { pulse.enable = true; }; + # SSH + services.openssh = { + enable = true; + settings = { + PermitRootLogin = "no"; + }; + }; + # User account users.users.${config.username} = { isNormalUser = true; From 520177b9a588f4c74fda749dbccfee0a3611cf93 Mon Sep 17 00:00:00 2001 From: "Thomas G. Lopes" Date: Wed, 11 Mar 2026 14:56:42 +0000 Subject: [PATCH 2/3] update and add some pkgs --- modules/development.nix | 2 ++ modules/packages.nix | 2 ++ modules/pkgs/zen-browser.nix | 19 +++++++++++++++++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/modules/development.nix b/modules/development.nix index 36881d8..1d6cc00 100644 --- a/modules/development.nix +++ b/modules/development.nix @@ -2,6 +2,7 @@ flake.nixosModules.development = {pkgs, ...}: { environment.systemPackages = with pkgs; [ nodejs_24 + go nixfmt zellij @@ -17,6 +18,7 @@ vscode-langservers-extracted # includes css-lsp, eslint-lsp, html-lsp, json-lsp tailwindcss-language-server biome + typescript-go # Treesitter CLI + C compiler for building grammars tree-sitter diff --git a/modules/packages.nix b/modules/packages.nix index a2ee6d1..5bc7f19 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -20,6 +20,8 @@ feishin obsidian self.packages.${pkgs.stdenv.hostPlatform.system}.handy + mpv + ffmpeg ]; }; } diff --git a/modules/pkgs/zen-browser.nix b/modules/pkgs/zen-browser.nix index 9039af3..6bee63e 100644 --- a/modules/pkgs/zen-browser.nix +++ b/modules/pkgs/zen-browser.nix @@ -1,6 +1,6 @@ { ... }: { - perSystem = { pkgs, ... }: { - packages.zen-browser = pkgs.appimageTools.wrapType2 rec { + perSystem = { pkgs, ... }: let + zen-appimage = pkgs.appimageTools.wrapType2 rec { pname = "zen-browser"; version = "1.19.1b"; @@ -23,6 +23,21 @@ if [ -d ${contents}/usr/share/icons ]; then cp -r ${contents}/usr/share/icons $out/share fi + + # Also provide 'zen' binary since some apps expect it + ln -s $out/bin/${pname} $out/bin/zen + ''; + }; + in { + packages.zen-browser = pkgs.symlinkJoin { + name = "zen-browser"; + paths = [ zen-appimage ]; + buildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/zen-browser \ + --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.ffmpeg ]} + wrapProgram $out/bin/zen \ + --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.ffmpeg ]} ''; }; }; From 0e854495ff72bc9be78c09193d2c3e6071976052 Mon Sep 17 00:00:00 2001 From: "Thomas G. Lopes" Date: Wed, 11 Mar 2026 16:35:46 +0000 Subject: [PATCH 3/3] fix zen-browser audio/video codecs with ffmpeg-full --- modules/pkgs/zen-browser.nix | 53 +++++++++++++++++------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/modules/pkgs/zen-browser.nix b/modules/pkgs/zen-browser.nix index 6bee63e..9bfbac9 100644 --- a/modules/pkgs/zen-browser.nix +++ b/modules/pkgs/zen-browser.nix @@ -1,44 +1,41 @@ -{ ... }: { +{ lib, ... }: { perSystem = { pkgs, ... }: let - zen-appimage = pkgs.appimageTools.wrapType2 rec { - pname = "zen-browser"; - version = "1.19.1b"; + pname = "zen-browser"; + version = "1.19.1b"; - src = pkgs.fetchurl { - url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen-x86_64.AppImage"; - hash = "sha256-h3lza2C+SxptpcX897Uf/nM8dNILUBXScSNQZlvSIQg="; - }; + src = pkgs.fetchurl { + url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen-x86_64.AppImage"; + hash = "sha256-h3lza2C+SxptpcX897Uf/nM8dNILUBXScSNQZlvSIQg="; + }; - extraInstallCommands = let - contents = pkgs.appimageTools.extract { inherit pname version src; }; - in '' - desktop_file=$(find ${contents} -name "*.desktop" | head -n1) + appimageContents = pkgs.appimageTools.extract { inherit pname version src; }; + in { + packages.zen-browser = pkgs.appimageTools.wrapType2 { + inherit pname version src; + + extraPkgs = pkgs: [ pkgs.ffmpeg-full ]; + + extraInstallCommands = '' + desktop_file=$(find ${appimageContents} -name "*.desktop" | head -n1) if [ -n "$desktop_file" ]; then install -m 444 -D "$desktop_file" "$out/share/applications/${pname}.desktop" - # The desktop file uses 'zen' as the binary name substituteInPlace "$out/share/applications/${pname}.desktop" \ --replace 'Exec=zen' 'Exec=${pname}' fi - if [ -d ${contents}/usr/share/icons ]; then - cp -r ${contents}/usr/share/icons $out/share + if [ -d ${appimageContents}/usr/share/icons ]; then + cp -r ${appimageContents}/usr/share/icons $out/share fi - # Also provide 'zen' binary since some apps expect it ln -s $out/bin/${pname} $out/bin/zen ''; - }; - in { - packages.zen-browser = pkgs.symlinkJoin { - name = "zen-browser"; - paths = [ zen-appimage ]; - buildInputs = [ pkgs.makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/zen-browser \ - --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.ffmpeg ]} - wrapProgram $out/bin/zen \ - --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.ffmpeg ]} - ''; + + meta = { + description = "Experience tranquillity while browsing the web without people tracking you!"; + homepage = "https://zen-browser.app"; + license = lib.licenses.mpl20; + platforms = [ "x86_64-linux" ]; + }; }; }; }