Compare commits

..

3 Commits

Author SHA1 Message Date
bdb9d72c1e Add nice fonts 2025-12-01 23:32:28 +01:00
9607277667 Improve filebrowser and rclone 2025-12-01 23:32:24 +01:00
830c3ebe5a Improve typst experience in neovim 2025-12-01 23:30:29 +01:00
8 changed files with 107 additions and 12 deletions

View File

@@ -55,6 +55,11 @@ let
isort
astro-language-server
tinymist
typstyle
ltex-ls-plus
];
};
@@ -103,6 +108,8 @@ let
lualine-nvim
bufferline-nvim
zen-mode-nvim
];
};

View File

@@ -161,6 +161,24 @@ require("lz.n").load({
vim.lsp.enable("basedpyright")
vim.lsp.enable("astro")
vim.lsp.config("tinymist", {
settings = {
tinymist = {
formatterMode = "typstyle",
},
},
})
vim.lsp.enable("tinymist")
vim.lsp.config("ltex_plus", {
settings = {
ltex = {
language = "nl",
},
},
})
vim.lsp.enable("ltex_plus")
end,
},
},

View File

@@ -195,4 +195,16 @@ require("lz.n").load({
})
end,
},
{
"zen-mode.nvim",
after = function()
require("zen-mode").setup({
window = {
options = {
linebreak = true,
},
},
})
end,
},
})

View File

@@ -1,7 +1,19 @@
{ config, ... }:
{
config,
pkgs,
...
}:
{
programs.rclone = {
enable = true;
# Give rclone access to the ssh agent
package = pkgs.writeShellScriptBin "rclone" ''
export GNUPGHOME="${config.xdg.dataHome}/gnupg"
export SSH_AUTH_SOCK=$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)
exec ${pkgs.rclone}/bin/rclone "$@"
'';
remotes = {
gdrive = {
config = {
@@ -24,9 +36,35 @@
mountPoint = "${config.home.homeDirectory}/gdrive";
options = {
dir-cache-time = "5000h";
dir-cache-time = "5m";
poll-interval = "10s";
vfs-cache-mode = "full";
};
};
};
};
orion = {
config = {
type = "sftp";
user = config.var.username;
};
secrets = {
host = config.sops.secrets.orion_ip.path;
};
mounts = {
"/var/lib/filebrowser/files" = {
enable = true;
mountPoint = "${config.home.homeDirectory}/orion";
options = {
dir-cache-time = "5m";
poll-interval = "10s";
# Network optimizations
"buffer-size" = "32M";
"vfs-read-chunk-size" = "32M";
};
};
};

View File

@@ -8,11 +8,6 @@ let
storageRoot = "/var/lib/filebrowser/files";
publishDirName = "_publish";
fontPackages = with pkgs; [
libertinus
gyre-fonts
];
processorScript = pkgs.writeShellScriptBin "process-docs" ''
SRC_ROOT="${storageRoot}"
OUT_ROOT="${storageRoot}/${publishDirName}"
@@ -73,6 +68,11 @@ let
in
{
imports = [
./fonts.nix
];
services.filebrowser = {
enable = true;
@@ -87,12 +87,12 @@ in
reverse_proxy :${toString config.services.filebrowser.settings.port}
'';
# Auto compile pdfs
systemd.services.pdf-watcher = {
description = "Auto-compile MD and Typst to PDF";
after = [ "filebrowser.service" ];
wantedBy = [ "multi-user.target" ];
# Important: Run as the same user as Filebrowser to avoid permission issues
serviceConfig = {
User = "filebrowser";
Group = "filebrowser";
@@ -102,7 +102,7 @@ in
Environment = [
"HOME=/var/lib/filebrowser"
"XDG_CACHE_HOME=/var/lib/filebrowser/.cache"
"TYPST_FONT_PATHS=${lib.makeSearchPath "share/fonts" fontPackages}"
# 3"TYPST_FONT_PATHS=${lib.makeSearchPath "share/fonts" fontPackages}"
];
Restart = "always";
@@ -113,4 +113,16 @@ in
pandoc
];
};
# Allow my user to access the filebrowser directory
users.users."${config.var.username}".extraGroups = [ "filebrowser" ];
systemd.services.filebrowser.serviceConfig = {
UMask = lib.mkForce "0007";
};
systemd.tmpfiles.rules = [
"Z /var/lib/filebrowser 0750 filebrowser filebrowser -" # Explicitly secure the data dir root
"Z /var/lib/filebrowser/files 2770 filebrowser filebrowser -" # Sticky group on files
];
}

View File

@@ -20,6 +20,12 @@
nerd-fonts.meslo-lg
openmoji-color
twemoji-color-font
fira-sans
merriweather
lexend
literata
];
enableDefaultPackages = false;

View File

@@ -13,6 +13,7 @@
secrets = {
radicale_pass = { };
university_calendar_url = { };
orion_ip = { };
ssh_config_orion = {
mode = "0600";
};

View File

@@ -1,6 +1,7 @@
radicale_pass: ENC[AES256_GCM,data:zdUxtJKNPC8SzajhFKo=,iv:H55GWMiQLJvZx6rAufkk807lZflg0sepxoq6z0XJ/q4=,tag:MoDOuF37PeF7QEpUxBntEg==,type:str]
university_calendar_url: ENC[AES256_GCM,data:y5UtZVC0KJPUz//6S0QsrNeFGQshc88zieQgmlur75VFw9y5CJpnZRpdhLnYva00z5HBkxYQelLqS/I5GrXexWtC7Y7d1dCcQ+IZ0K7GGJ5NrYtjNXfMhzNSlhqjvl5lBGb+S565kel3VsCTyo/YRxdbBN6FA/oQNsx8/AvTgtsPeFkQRDGlGkybFRfWHWuTIDLL,iv:rZK9utRrm/KAkVRUjC3VR09MvDZjpoLx7BgaidzQo3o=,tag:tGWGoQCsS3zZh818OKixPw==,type:str]
ssh_config_orion: ENC[AES256_GCM,data:P2jH5BDIzeHSIwTBcZwTOXKes727xK0Xoj9W64GmEszEPZw8vA==,iv:hSY9mFdC82pBbOjMFuzoR2eufhjY2MGERJ4ODmcogbA=,tag:ejF535LrQwwH66nQG3qLGw==,type:str]
orion_ip: ENC[AES256_GCM,data:RCK6EKOEDaTu1uR2d/8=,iv:5JhIkVQEELB6MoPh49xq+0CrbPjI/6+qfqUHRqCza5s=,tag:+00T4+pWOWRj7R1ft39HAw==,type:str]
sops:
age:
- recipient: age122w85pqj508ukv0rd388mahecgfckmpgnsgz0zcyec37ljae2epsdnvxpl
@@ -21,7 +22,7 @@ sops:
ODdTa0VlYjg0ajJuUWhiRVUrR1VSTHMK6NVeKyMTomvZoqAtJN1SshIZdd2fHFBy
Waghxmi6x/93lf54E1ZiXZQ+LDCjqqmMY8jgoF00XCo0WeURlHXpaw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-11-29T18:05:48Z"
mac: ENC[AES256_GCM,data:j0pHRA3c5lRdyLjqxlP2MTzIYb3WYAy7p+FttOjTQpXcyT5dFykXuu8rv+MQTmWdvHLQKC4iuZ7HTSO9qx8SbAuxHBWpoycpy3cZpmFp5T5crCl65AVQ/yRZKD9gRxkhnVW7aAK1kC3Mq07PamznvX/b7eEJ8h3tvmymuw6z/vY=,iv:W430t2YAXVcJztbO+fNdlOyjjy6+cH5r5YwuM2QdIdc=,tag:dDRJSslL9/Hac465A/TstA==,type:str]
lastmodified: "2025-12-01T16:01:07Z"
mac: ENC[AES256_GCM,data:LAXl/FJafDOEOYrukqfzGMIXZzihX2zHMIQaR735MHWsTr3DSkCUqZ5IPEn9EmUSDkO8SaS0QdhRk0h7IhzS4MOsAAMdEtAEec4k0f9sMCLRWbV/G4tYxESPeuQNwdwS0iPsBsMQgvH93u7ttR59zyzQE1izal5nMwK3yQmNV5s=,iv:R3bnPXQY38Zf9BJuEP+inbRIVvAmLvEyGrlWzl3N9YI=,tag:eetYNetPvKXiJnR7AA3dwA==,type:str]
unencrypted_suffix: _unencrypted
version: 3.11.0