Compare commits

..

5 commits

Author SHA1 Message Date
Nick
a6c78e07e5 fix: samba perms unfucked 2025-11-29 05:42:40 -06:00
Nick
d96797892e feat: new tabs in rmpc 2025-11-29 05:01:37 -06:00
Nick
cf581e30cc feat: added metadata editors 2025-11-29 05:01:24 -06:00
Nick
ecbbebfd90 fix: samba perms unfucked 2025-11-29 05:01:10 -06:00
Nick
d788440daa chore: added missing justfile 2025-11-29 05:00:50 -06:00
6 changed files with 45 additions and 14 deletions

View file

@ -234,8 +234,8 @@ in
"IdentityFile=/var/run/secrets/ssh/private" "IdentityFile=/var/run/secrets/ssh/private"
]; ];
fileModeAndDirMode = [ fileModeAndDirMode = [
"file_mode=0644" "file_mode=0664"
"dir_mode=0755" "dir_mode=0775"
]; ];
userIdForUser0 = [ userIdForUser0 = [
"uid=1000" "uid=1000"

View file

@ -21,7 +21,7 @@
directories_sort: SortFormat(group_by_type: true, reverse: false), directories_sort: SortFormat(group_by_type: true, reverse: false),
album_art: ( album_art: (
method: Auto, method: Auto,
max_size_px: (width: 1200, height: 1200), max_size_px: (width: 480, height: 480),
disabled_protocols: ["http://", "https://"], disabled_protocols: ["http://", "https://"],
vertical_align: Center, vertical_align: Center,
horizontal_align: Center, horizontal_align: Center,
@ -34,13 +34,11 @@
".": VolumeUp, ".": VolumeUp,
"<Tab>": NextTab, "<Tab>": NextTab,
"<S-Tab>": PreviousTab, "<S-Tab>": PreviousTab,
"1": SwitchToTab("Queue"), "1": SwitchToTab("Home"),
"2": SwitchToTab("Directories"), "2": SwitchToTab("Collection"),
"3": SwitchToTab("Artists"), "3": SwitchToTab("Artists"),
"4": SwitchToTab("Album Artists"), "4": SwitchToTab("Playlists"),
"5": SwitchToTab("Albums"), "5": SwitchToTab("Search"),
"6": SwitchToTab("Playlists"),
"7": SwitchToTab("Search"),
"q": Quit, "q": Quit,
">": NextTrack, ">": NextTrack,
"p": TogglePause, "p": TogglePause,
@ -138,6 +136,11 @@
(size: "100%", borders: "ALL", pane: Pane(Directories)), (size: "100%", borders: "ALL", pane: Pane(Directories)),
]) ])
), ),
(name: "Artists", pane: Split(direction: Horizontal, panes: [
(size: "100%", borders: "ALL", pane: Pane(AlbumArtists)),
])
),
(name: "Playlists", pane: Split(direction: Horizontal, panes: [ (name: "Playlists", pane: Split(direction: Horizontal, panes: [
(size: "100%", borders: "ALL", pane: Pane(Playlists)), (size: "100%", borders: "ALL", pane: Pane(Playlists)),
]) ])
@ -149,7 +152,7 @@
], ],
cava: ( cava: (
framerate: 200, autosens: true, sensitivity: 100, framerate: 200, autosens: true, sensitivity: 100,
lower_cutoff_freq: 50, higher_cutoff_freq: 15000, lower_cutoff_freq: 20, higher_cutoff_freq: 20000,
input: ( input: (
method: Fifo, method: Fifo,
source: "/tmp/mpd.fifo", source: "/tmp/mpd.fifo",

View file

@ -75,6 +75,7 @@ in
zathura zathura
zed zed
test test
audioMetadata
; ;
}; };
}; };

View file

@ -12,6 +12,7 @@ let
dns0 = instances.web.dns.provider0; dns0 = instances.web.dns.provider0;
host = serviceCfg.domains.url0; host = serviceCfg.domains.url0;
dns0Path = "dns/${dns0}"; dns0Path = "dns/${dns0}";
id = 993;
in in
{ {
microvm.vms = { microvm.vms = {
@ -37,6 +38,16 @@ in
}; };
}; };
users.users.jellyfin = {
isSystemUser = true;
group = serviceCfg.name;
uid = id;
};
users.groups.jellyfin = {
gid = id;
};
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
22 22
serviceCfg.ports.port0 serviceCfg.ports.port0
@ -48,7 +59,7 @@ in
device = "tmpfs"; device = "tmpfs";
fsType = "tmpfs"; fsType = "tmpfs";
options = [ options = [
"size=4G" "size=6G"
"mode=1777" "mode=1777"
]; ];
}; };
@ -166,8 +177,21 @@ in
}; };
}; };
}; };
users = {
groups.jellyfin = {
gid = id;
members = [ user0 ];
};
users.users.caddy.extraGroups = [ "acme" ]; users = {
jellyfin = {
isSystemUser = true;
group = serviceCfg.name;
uid = id;
};
caddy.extraGroups = [ "acme" ];
};
};
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d ${serviceCfg.mntPaths.path0} 0755 microvm wheel - -" "d ${serviceCfg.mntPaths.path0} 0755 microvm wheel - -"

View file

@ -6,6 +6,7 @@ let
inherit (flake.config.services) instances; inherit (flake.config.services) instances;
inherit (flake.config.people) user0; inherit (flake.config.people) user0;
service = instances.samba; service = instances.samba;
jellyfin = instances.jellyfin;
in in
{ {
# If you ever need to start fresh, you need to add yourself to the Samba users database: # If you ever need to start fresh, you need to add yourself to the Samba users database:
@ -23,8 +24,8 @@ in
"guest ok" = "no"; "guest ok" = "no";
"create mask" = "0664"; "create mask" = "0664";
"directory mask" = "0775"; "directory mask" = "0775";
"force user" = user0; "force user" = jellyfin.name;
"force group" = "users"; "force group" = jellyfin.name;
"force create mode" = "0664"; "force create mode" = "0664";
"force directory mode" = "0775"; "force directory mode" = "0775";
}; };

2
packages/zookeeper/justfile Executable file
View file

@ -0,0 +1,2 @@
cabal:
cabal clean ; cabal run