summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--host/rootfs/Makefile42
-rw-r--r--host/rootfs/default.nix25
-rw-r--r--host/rootfs/etc/fonts/fonts.conf4
-rwxr-xr-xhost/rootfs/etc/s6-rc/cosmic-comp/data/check8
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-comp/dependencies (renamed from host/rootfs/etc/s6-rc/weston/dependencies)0
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-comp/notification-fd (renamed from host/rootfs/etc/s6-rc/weston/notification-fd)0
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-comp/notification-fd.license (renamed from host/rootfs/etc/s6-rc/weston/notification-fd.license)0
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-comp/run (renamed from host/rootfs/etc/s6-rc/weston/run)14
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-comp/type (renamed from host/rootfs/etc/s6-rc/weston/type)0
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-comp/type.license (renamed from host/rootfs/etc/s6-rc/weston/type.license)0
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-panel/dependencies.d/cosmic-comp0
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-panel/run20
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-panel/type1
-rw-r--r--host/rootfs/etc/s6-rc/cosmic-panel/type.license2
-rw-r--r--host/rootfs/etc/s6-rc/ext-rc/contents2
-rw-r--r--host/rootfs/etc/s6-rc/ok-all/contents1
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicAppList/v1/favorites6
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/anchor4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/border_radius4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/exclusive_zone4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/expand_to_edges4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/keyboard_interactivity4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/margin4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/name4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/opacity4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/plugins_center6
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/size4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/border_radius4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/keyboard_interactivity4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/margin4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/name4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/opacity4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/padding4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_center6
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_wings9
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/size4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/spacing4
-rw-r--r--host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel/v1/entries7
-rwxr-xr-xhost/rootfs/etc/xdg/weston/autolaunch7
-rw-r--r--host/rootfs/etc/xdg/weston/weston.ini5
-rw-r--r--host/rootfs/usr/share/applications/org.spectrum_os.HostTerminal.desktop11
41 files changed, 200 insertions, 44 deletions
diff --git a/host/rootfs/Makefile b/host/rootfs/Makefile
index c5e467d..5bb5d96 100644
--- a/host/rootfs/Makefile
+++ b/host/rootfs/Makefile
@@ -37,12 +37,33 @@ FILES = \
 	etc/s6-linux-init/run-image/service/vmm/template/notification-fd \
 	etc/s6-linux-init/scripts/rc.init \
 	etc/shared-dir \
-	etc/xdg/weston/autolaunch \
-	etc/xdg/weston/weston.ini \
+	etc/xdg/cosmic/com.system76.CosmicAppList/v1/favorites \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/anchor \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/border_radius \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/exclusive_zone \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/expand_to_edges \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/keyboard_interactivity \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/margin \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/name \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/opacity \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/plugins_center \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/size \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/border_radius \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/keyboard_interactivity \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/margin \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/name \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/opacity \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/padding \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_center \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_wings \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/size \
+	etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/spacing \
+	etc/xdg/cosmic/com.system76.CosmicPanel/v1/entries \
 	usr/bin/lsvm \
 	usr/bin/vm-console \
 	usr/bin/vm-start \
-	usr/bin/vm-stop
+	usr/bin/vm-stop \
+	usr/share/applications/org.spectrum_os.HostTerminal.desktop
 
 DIRS = \
 	dev \
@@ -59,6 +80,7 @@ DIRS = \
 	etc/s6-linux-init/run-image/service/vmm/template/data \
 	etc/s6-linux-init/run-image/service/vmm/template/env \
 	etc/s6-linux-init/run-image/vm \
+	etc/xdg/cosmic/com.system76.CosmicComp/v1 \
 	ext \
 	run \
 	proc \
@@ -101,6 +123,14 @@ S6_RC_FILES = \
 	etc/s6-rc/card0/up \
 	etc/s6-rc/core/type \
 	etc/s6-rc/core/up \
+	etc/s6-rc/cosmic-comp/data/check \
+	etc/s6-rc/cosmic-comp/dependencies \
+	etc/s6-rc/cosmic-comp/notification-fd \
+	etc/s6-rc/cosmic-comp/run \
+	etc/s6-rc/cosmic-comp/type \
+	etc/s6-rc/cosmic-panel/dependencies.d/cosmic-comp \
+	etc/s6-rc/cosmic-panel/run \
+	etc/s6-rc/cosmic-panel/type \
 	etc/s6-rc/ext-rc-init/dependencies \
 	etc/s6-rc/ext-rc-init/type \
 	etc/s6-rc/ext-rc-init/up \
@@ -119,11 +149,7 @@ S6_RC_FILES = \
 	etc/s6-rc/ok-all/contents \
 	etc/s6-rc/ok-all/type \
 	etc/s6-rc/static-nodes/type \
-	etc/s6-rc/static-nodes/up \
-	etc/s6-rc/weston/dependencies \
-	etc/s6-rc/weston/notification-fd \
-	etc/s6-rc/weston/type \
-	etc/s6-rc/weston/run
+	etc/s6-rc/static-nodes/up
 
 # s6-rc-compile's input is a directory, but that doesn't play nice
 # with Make, because it won't know to update if some file in the
diff --git a/host/rootfs/default.nix b/host/rootfs/default.nix
index c6664bd..e421d8a 100644
--- a/host/rootfs/default.nix
+++ b/host/rootfs/default.nix
@@ -8,8 +8,9 @@ pkgsStatic.callPackage (
 
 { start-vmm
 , lib, stdenvNoCC, nixos, runCommand, writeReferencesToFile, erofs-utils, s6-rc
-, busybox, cloud-hypervisor, cryptsetup, execline, e2fsprogs, jq, kmod
-, mdevd, s6, s6-linux-init, socat, util-linuxMinimal, virtiofsd, xorg
+, busybox, cloud-hypervisor, cryptsetup, execline, e2fsprogs, fira
+, hicolor-icon-theme, jq, kmod, mdevd, pop-icon-theme, s6, s6-linux-init, socat
+, util-linuxMinimal, virtiofsd, xorg
 }:
 
 let
@@ -28,15 +29,13 @@ let
       systemdLibs = final.libudev-zero;
       systemdMinimal = final.libudev-zero;
 
+      pulseaudio = super.pulseaudio.override {
+        useSystemd = false;
+      };
+
       seatd = super.seatd.override {
         systemdSupport = false;
       };
-
-      weston = super.weston.overrideAttrs ({ mesonFlags ? [], ... }: {
-        mesonFlags = mesonFlags ++ [
-          "-Dsystemd=false"
-        ];
-      });
     })
   );
 
@@ -70,7 +69,7 @@ let
         CONFIG_RMMOD n
       '';
     })
-  ] ++ (with pkgsGui; [ crosvm foot westonLite ]);
+  ] ++ (with pkgsGui; [ cosmic-comp cosmic-panel crosvm foot ]);
 
   nixosAllHardware = nixos ({ modulesPath, ... }: {
     imports = [ (modulesPath + "/profiles/all-hardware.nix") ];
@@ -84,9 +83,13 @@ let
 
   # Packages that should be fully linked into /usr,
   # (not just their bin/* files).
+  #
+  # FIXME: cosmic-applets could probably be static, if pulseaudio
+  # could be built statically.
+  # https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1089
   usrPackages = [
-    appvm kernel firmware pkgsGui.mesa.drivers pkgsGui.dejavu_fonts
-  ];
+    appvm kernel fira firmware foot hicolor-icon-theme pop-icon-theme
+  ] ++ (with pkgsGui; [ cosmic-applets mesa.drivers ]);
 
   packagesSysroot = runCommand "packages-sysroot" {
     nativeBuildInputs = [ xorg.lndir ];
diff --git a/host/rootfs/etc/fonts/fonts.conf b/host/rootfs/etc/fonts/fonts.conf
index 0dcde54..642020e 100644
--- a/host/rootfs/etc/fonts/fonts.conf
+++ b/host/rootfs/etc/fonts/fonts.conf
@@ -6,14 +6,14 @@
   <alias binding="same">
     <family>monospace</family>
     <prefer>
-      <family>DejaVu Sans Mono</family>
+      <family>Fira Mono</family>
     </prefer>
   </alias>
 
   <alias binding="same">
     <family>sans-serif</family>
     <prefer>
-      <family>DejaVu Sans</family>
+      <family>Fira Sans</family>
     </prefer>
   </alias>
 
diff --git a/host/rootfs/etc/s6-rc/cosmic-comp/data/check b/host/rootfs/etc/s6-rc/cosmic-comp/data/check
new file mode 100755
index 0000000..d8bf381
--- /dev/null
+++ b/host/rootfs/etc/s6-rc/cosmic-comp/data/check
@@ -0,0 +1,8 @@
+#!/bin/execlineb -P
+# SPDX-License-Identifier: EUPL-1.2+
+# SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+
+importas -iu runtime_dir XDG_RUNTIME_DIR
+redirfd -w 2 /dev/null
+s6-ipcclient ${runtime_dir}/wayland-1
+true
diff --git a/host/rootfs/etc/s6-rc/weston/dependencies b/host/rootfs/etc/s6-rc/cosmic-comp/dependencies
index 8470c0f..8470c0f 100644
--- a/host/rootfs/etc/s6-rc/weston/dependencies
+++ b/host/rootfs/etc/s6-rc/cosmic-comp/dependencies
diff --git a/host/rootfs/etc/s6-rc/weston/notification-fd b/host/rootfs/etc/s6-rc/cosmic-comp/notification-fd
index 00750ed..00750ed 100644
--- a/host/rootfs/etc/s6-rc/weston/notification-fd
+++ b/host/rootfs/etc/s6-rc/cosmic-comp/notification-fd
diff --git a/host/rootfs/etc/s6-rc/weston/notification-fd.license b/host/rootfs/etc/s6-rc/cosmic-comp/notification-fd.license
index c49c11b..c49c11b 100644
--- a/host/rootfs/etc/s6-rc/weston/notification-fd.license
+++ b/host/rootfs/etc/s6-rc/cosmic-comp/notification-fd.license
diff --git a/host/rootfs/etc/s6-rc/weston/run b/host/rootfs/etc/s6-rc/cosmic-comp/run
index df2d74e..af66715 100644
--- a/host/rootfs/etc/s6-rc/weston/run
+++ b/host/rootfs/etc/s6-rc/cosmic-comp/run
@@ -1,6 +1,6 @@
 #!/bin/execlineb -P
 # SPDX-License-Identifier: EUPL-1.2+
-# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+# SPDX-FileCopyrightText: 2021, 2023 Alyssa Ross <hi@alyssa.is>
 
 foreground { mkdir /run/user }
 foreground {
@@ -9,15 +9,9 @@ foreground {
 }
 unexport ?
 
-backtick USER { id -un }
-backtick HOME {
-  importas -i user USER
-  homeof $user
-}
-
+export XDG_CONFIG_HOME /etc/xdg
 export XDG_RUNTIME_DIR /run/user/0
 redirfd -r 0 /dev/tty1
 
-importas -i home HOME
-cd $home
-weston
+s6-notifyoncheck -d
+cosmic-comp
diff --git a/host/rootfs/etc/s6-rc/weston/type b/host/rootfs/etc/s6-rc/cosmic-comp/type
index 5883cff..5883cff 100644
--- a/host/rootfs/etc/s6-rc/weston/type
+++ b/host/rootfs/etc/s6-rc/cosmic-comp/type
diff --git a/host/rootfs/etc/s6-rc/weston/type.license b/host/rootfs/etc/s6-rc/cosmic-comp/type.license
index c49c11b..c49c11b 100644
--- a/host/rootfs/etc/s6-rc/weston/type.license
+++ b/host/rootfs/etc/s6-rc/cosmic-comp/type.license
diff --git a/host/rootfs/etc/s6-rc/cosmic-panel/dependencies.d/cosmic-comp b/host/rootfs/etc/s6-rc/cosmic-panel/dependencies.d/cosmic-comp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/host/rootfs/etc/s6-rc/cosmic-panel/dependencies.d/cosmic-comp
diff --git a/host/rootfs/etc/s6-rc/cosmic-panel/run b/host/rootfs/etc/s6-rc/cosmic-panel/run
new file mode 100644
index 0000000..73397cd
--- /dev/null
+++ b/host/rootfs/etc/s6-rc/cosmic-panel/run
@@ -0,0 +1,20 @@
+#!/bin/execlineb -P
+# SPDX-License-Identifier: EUPL-1.2+
+# SPDX-FileCopyrightText: 2021, 2023 Alyssa Ross <hi@alyssa.is>
+
+# Really cosmic-panel should look here by default, but it doesn't
+# properly implement the XDG Base Directories spec.
+export XDG_CONFIG_HOME /etc/xdg
+
+export XDG_RUNTIME_DIR /run/user/0
+export WAYLAND_DISPLAY wayland-1
+
+backtick USER { id -un }
+backtick HOME {
+  importas -i user USER
+  homeof $user
+}
+
+importas -i home HOME
+cd $home
+cosmic-panel
diff --git a/host/rootfs/etc/s6-rc/cosmic-panel/type b/host/rootfs/etc/s6-rc/cosmic-panel/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/host/rootfs/etc/s6-rc/cosmic-panel/type
@@ -0,0 +1 @@
+longrun
diff --git a/host/rootfs/etc/s6-rc/cosmic-panel/type.license b/host/rootfs/etc/s6-rc/cosmic-panel/type.license
new file mode 100644
index 0000000..a941ca4
--- /dev/null
+++ b/host/rootfs/etc/s6-rc/cosmic-panel/type.license
@@ -0,0 +1,2 @@
+SPDX-License-Identifier: CC0-1.0
+SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
diff --git a/host/rootfs/etc/s6-rc/ext-rc/contents b/host/rootfs/etc/s6-rc/ext-rc/contents
index 288421f..1417ac7 100644
--- a/host/rootfs/etc/s6-rc/ext-rc/contents
+++ b/host/rootfs/etc/s6-rc/ext-rc/contents
@@ -1,6 +1,6 @@
 # SPDX-License-Identifier: CC0-1.0
 # SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
 #
+cosmic-comp
 ext-rc-init
 static-nodes
-weston
diff --git a/host/rootfs/etc/s6-rc/ok-all/contents b/host/rootfs/etc/s6-rc/ok-all/contents
index dfe7022..b1c3d7c 100644
--- a/host/rootfs/etc/s6-rc/ok-all/contents
+++ b/host/rootfs/etc/s6-rc/ok-all/contents
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: CC0-1.0
 # SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
 #
+cosmic-panel
 ext-rc
 mdevd-coldplug
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicAppList/v1/favorites b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicAppList/v1/favorites
new file mode 100644
index 0000000..c197f5c
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicAppList/v1/favorites
@@ -0,0 +1,6 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+[
+    "org.spectrum_os.HostTerminal",
+]
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/anchor b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/anchor
new file mode 100644
index 0000000..9d8289d
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/anchor
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+Bottom
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/border_radius b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/border_radius
new file mode 100644
index 0000000..6c134b6
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/border_radius
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+12
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/exclusive_zone b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/exclusive_zone
new file mode 100644
index 0000000..649e8da
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/exclusive_zone
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+false
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/expand_to_edges b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/expand_to_edges
new file mode 100644
index 0000000..649e8da
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/expand_to_edges
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+false
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/keyboard_interactivity b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/keyboard_interactivity
new file mode 100644
index 0000000..8c8f42e
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/keyboard_interactivity
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+OnDemand
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/margin b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/margin
new file mode 100644
index 0000000..975df65
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/margin
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+0
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/name b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/name
new file mode 100644
index 0000000..765e267
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/name
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+"Dock"
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/opacity b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/opacity
new file mode 100644
index 0000000..f85d351
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/opacity
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+0.9
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/plugins_center b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/plugins_center
new file mode 100644
index 0000000..7c9eaff
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/plugins_center
@@ -0,0 +1,6 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+Some([
+    "com.system76.CosmicAppList",
+])
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/size b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/size
new file mode 100644
index 0000000..09edcd5
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Dock/v1/size
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+L
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/border_radius b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/border_radius
new file mode 100644
index 0000000..975df65
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/border_radius
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+0
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/keyboard_interactivity b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/keyboard_interactivity
new file mode 100644
index 0000000..8c8f42e
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/keyboard_interactivity
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+OnDemand
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/margin b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/margin
new file mode 100644
index 0000000..975df65
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/margin
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+0
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/name b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/name
new file mode 100644
index 0000000..ddea5ce
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/name
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+"Panel"
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/opacity b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/opacity
new file mode 100644
index 0000000..f85d351
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/opacity
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+0.9
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/padding b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/padding
new file mode 100644
index 0000000..659fe5e
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/padding
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+2
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_center b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_center
new file mode 100644
index 0000000..a656693
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_center
@@ -0,0 +1,6 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+Some([
+    "com.system76.CosmicAppletTime",
+])
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_wings b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_wings
new file mode 100644
index 0000000..2078e05
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/plugins_wings
@@ -0,0 +1,9 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+Some((
+    [
+        "com.system76.CosmicAppletWorkspaces",
+    ],
+    [],
+))
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/size b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/size
new file mode 100644
index 0000000..ada95c5
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/size
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+XS
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/spacing b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/spacing
new file mode 100644
index 0000000..659fe5e
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel.Panel/v1/spacing
@@ -0,0 +1,4 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+2
diff --git a/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel/v1/entries b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel/v1/entries
new file mode 100644
index 0000000..07b08d8
--- /dev/null
+++ b/host/rootfs/etc/xdg/cosmic/com.system76.CosmicPanel/v1/entries
@@ -0,0 +1,7 @@
+// SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+// SPDX-License-Identifier: CC0-1.0
+
+[
+    "Panel",
+    "Dock",
+]
diff --git a/host/rootfs/etc/xdg/weston/autolaunch b/host/rootfs/etc/xdg/weston/autolaunch
deleted file mode 100755
index 7a85ae1..0000000
--- a/host/rootfs/etc/xdg/weston/autolaunch
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/execlineb -P
-# SPDX-License-Identifier: EUPL-1.2+
-# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
-
-# Notify readiness
-fdmove 1 3
-echo
diff --git a/host/rootfs/etc/xdg/weston/weston.ini b/host/rootfs/etc/xdg/weston/weston.ini
deleted file mode 100644
index cdf8666..0000000
--- a/host/rootfs/etc/xdg/weston/weston.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: CC0-1.0
-# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
-
-[autolaunch]
-path=/etc/xdg/weston/autolaunch
diff --git a/host/rootfs/usr/share/applications/org.spectrum_os.HostTerminal.desktop b/host/rootfs/usr/share/applications/org.spectrum_os.HostTerminal.desktop
new file mode 100644
index 0000000..551821b
--- /dev/null
+++ b/host/rootfs/usr/share/applications/org.spectrum_os.HostTerminal.desktop
@@ -0,0 +1,11 @@
+# SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+# SPDX-License-Identifier: CC0-1.0
+
+[Desktop Entry]
+Type=Application
+Name=Host Terminal
+Icon=foot
+# FIXME: can remove -c /dev/null with https://codeberg.org/dnkl/foot/pulls/1495
+# FIXME: can use -T %c when cosmic-app-list implements %c.
+Exec=foot -c /dev/null -a org.spectrum_os.HostTerminal -T "Host Terminal"
+StartupWMClass=foot