From 42699b6985a946fb7c59cf3d4b7ca7f18bd0056e Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Sat, 17 Jun 2023 22:43:00 -0400 Subject: [PATCH] containers: Add obsidian Mainly a proof of concept. Eventually I'll devise an easy way to view notes in a pretty way and edit them with neovim (likely through your typical web framework tools). --- containers/obsidian.nix | 73 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 containers/obsidian.nix diff --git a/containers/obsidian.nix b/containers/obsidian.nix new file mode 100644 index 00000000..89d87828 --- /dev/null +++ b/containers/obsidian.nix @@ -0,0 +1,73 @@ +{ lib, ... }: +let VARIABLES = import ../src/variables.nix; in { + containers.obsidian = { + privateNetwork = true; + ephemeral = true; + + bindMounts = { + "/mnt" = { + hostPath = "/home/${VARIABLES.username}/containers/obsidian"; + isReadOnly = false; + }; + + waylandDisplay = rec { + hostPath = "/run/user/1000"; + mountPoint = hostPath; + }; + + x11Display = rec { + hostPath = "/tmp/.X11-unix"; + mountPoint = hostPath; + isReadOnly = true; + }; + }; + + config = { pkgs, ... }: { + i18n.defaultLocale = VARIABLES.defaultLocale; + i18n.supportedLocales = VARIABLES.supportedLocales; + + users = { + mutableUsers = false; + allowNoPasswordLogin = true; + + users.user = { + isNormalUser = true; + home = "/home/user"; + }; + }; + + environment = { + variables = { + TERM = "xterm-kitty"; + }; + + defaultPackages = [ ]; + }; + + environment.systemPackages = with pkgs; [ + kitty + obsidian + ]; + + environment.sessionVariables = { + WAYLAND_DISPLAY = "wayland-1"; + QT_QPA_PLATFORM = "wayland"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + SDL_VIDEODRIVER = "wayland"; + CLUTTER_BACKEND = "wayland"; + MOZ_ENABLE_WAYLAND = "1"; + XDG_RUNTIME_DIR = "/run/user/1000"; + DISPLAY = ":0"; + }; + + services.xserver.enable = true; + + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "obsidian" + ]; + + system.stateVersion = VARIABLES.stateVersion; + }; + }; +}