summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2026-01-08 22:32:22 -0500
committerFreya Murphy <freya@freyacat.org>2026-01-08 22:32:22 -0500
commit71b157a4ccc58f7bc1c8b270b573f54be211eb1b (patch)
tree1035fdee556a09bc78b5f6126881427cfaba38c6 /home
parentfix gtk icons (diff)
downloaddotfiles-nix-main.tar.gz
dotfiles-nix-main.tar.bz2
dotfiles-nix-main.zip
new qt shell :)HEADmain
Diffstat (limited to '')
-rw-r--r--home/apps/caelestia/default.nix21
-rw-r--r--home/apps/caelestia/scheme.nix86
-rw-r--r--home/apps/caelestia/settings.nix209
-rw-r--r--home/apps/default.nix1
4 files changed, 317 insertions, 0 deletions
diff --git a/home/apps/caelestia/default.nix b/home/apps/caelestia/default.nix
new file mode 100644
index 0000000..4693f67
--- /dev/null
+++ b/home/apps/caelestia/default.nix
@@ -0,0 +1,21 @@
+{
+ lib,
+ inputs,
+ ...
+}: let
+in {
+ imports = [
+ inputs.caelestia-shell.homeManagerModules.default
+ ./settings.nix
+ ./scheme.nix
+ ];
+
+ default.appLauncher = lib.mkOverride 600 "caelestia-shell ipc call drawers toggle launcher";
+ default.lockScreen = lib.mkOverride 600 "caelestia-shell ipc call lock lock";
+
+ programs.caelestia = {
+ enable = true;
+ systemd.enable = true;
+ cli.enable = true;
+ };
+}
diff --git a/home/apps/caelestia/scheme.nix b/home/apps/caelestia/scheme.nix
new file mode 100644
index 0000000..ffb46c6
--- /dev/null
+++ b/home/apps/caelestia/scheme.nix
@@ -0,0 +1,86 @@
+{
+ lib,
+ config,
+ ...
+}: let
+ theme = config.theme.colors;
+in {
+ xdg.configFile."caelestia/scheme.json".text = lib.generators.toJSON {} {
+ name = theme.name;
+ flavour = "";
+ mode = "dark";
+ variant = "";
+ colours = {
+ primary_paletteKeyColor = theme.primary;
+ secondary_paletteKeyColor = theme.secondary;
+ tertiary_paletteKeyColor = theme.tertiary;
+ neutral_paletteKeyColor = theme.overlay;
+ neutral_variant_paletteKeyColor = "777680";
+ background = theme.base;
+ onBackground = theme.text;
+ surface = theme.surface;
+ surfaceDim = theme.base;
+ surfaceBright = theme.overlay;
+ surfaceContainerLowest = theme.base;
+ surfaceContainerLow = theme.base;
+ surfaceContainer = theme.base;
+ surfaceContainerHigh = theme.surface;
+ surfaceContainerHighest = theme.overlay;
+ onSurface = theme.text;
+ surfaceVariant = theme.text;
+ onSurfaceVariant = theme.subtext;
+ inverseSurface = theme.text;
+ inverseOnSurface = theme.surface;
+ outline = theme.primary;
+ outlineVariant = theme.primary;
+ shadow = "000000";
+ scrim = "000000";
+ surfaceTint = theme.primary;
+ primary = theme.primary;
+ onPrimary = theme.surface;
+ primaryContainer = theme.primary;
+ onPrimaryContainer = theme.surface;
+ inversePrimary = theme.surface;
+ secondary = theme.secondary;
+ onSecondary = theme.surface;
+ secondaryContainer = theme.secondary;
+ onSecondaryContainer = theme.surface;
+ tertiary = theme.tertiary;
+ onTertiary = theme.surface;
+ tertiaryContainer = theme.tertiary;
+ onTertiaryContainer = theme.surface;
+ error = theme.error;
+ onError = theme.text;
+ errorContainer = theme.error;
+ onErrorContainer = theme.text;
+ primaryFixed = theme.primary;
+ primaryFixedDim = theme.primary;
+ onPrimaryFixed = theme.primary;
+ onPrimaryFixedVariant = theme.primary;
+ secondaryFixed = theme.secondary;
+ secondaryFixedDim = theme.primary;
+ onSecondaryFixed = theme.secondary;
+ onSecondaryFixedVariant = theme.secondary;
+ tertiaryFixed = theme.tertiary;
+ tertiaryFixedDim = theme.tertiary;
+ onTertiaryFixed = theme.tertiary;
+ onTertiaryFixedVariant = theme.tertiary;
+ term0 = theme.normal.black;
+ term1 = theme.normal.red;
+ term2 = theme.normal.green;
+ term3 = theme.normal.yellow;
+ term4 = theme.normal.blue;
+ term5 = theme.normal.magenta;
+ term6 = theme.normal.cyan;
+ term7 = theme.normal.white;
+ term8 = theme.bright.black;
+ term9 = theme.bright.red;
+ term10 = theme.bright.green;
+ term11 = theme.bright.yellow;
+ term12 = theme.bright.blue;
+ term13 = theme.bright.magenta;
+ term14 = theme.bright.cyan;
+ term15 = theme.bright.white;
+ };
+ };
+}
diff --git a/home/apps/caelestia/settings.nix b/home/apps/caelestia/settings.nix
new file mode 100644
index 0000000..35ecf9b
--- /dev/null
+++ b/home/apps/caelestia/settings.nix
@@ -0,0 +1,209 @@
+{config, ...}: {
+ programs.caelestia = {
+ settings = {
+ # Look
+ appearance = {
+ # Animations
+ anim = {
+ durations = {
+ scale = 1;
+ };
+ };
+
+ # Font
+ font = {
+ size.scale = 1;
+ };
+
+ # Padding
+ padding.scale = 1;
+ rounding.scale = 1;
+ spacing.scale = 1;
+ transparency = {
+ enabled = true;
+ base = config.theme.opacity;
+ layers = 1;
+ };
+ };
+
+ # Settings
+ general = {
+ # What apps to launch
+ apps = {
+ terminal = config.default.terminal;
+ audio = ["pavucontrol"];
+ playback = ["mpv"];
+ };
+
+ # I need this, am bad at plugging in le juicer
+ battery = {
+ warnLevels = [
+ {
+ level = 20;
+ title = "Low battery";
+ message = "You might want to plug in a charget";
+ icon = "battery_android_frame_2";
+ }
+ {
+ level = 10;
+ title = "Did you see the previous message?";
+ message = "You should probably plug in a charger <b>now</b>";
+ icon = "battery_android_frame_1";
+ critical = true;
+ }
+ {
+ level = 5;
+ title = "Critical battery level";
+ message = "PLUG THE CHARGER RIGHT NOW!!";
+ icon = "battery_android_alert";
+ critical = true;
+ }
+ ];
+ criticalLevel = 5;
+ };
+ };
+
+ # Background
+ background = {
+ enabled = true;
+ desktopClock.enabled = false;
+ };
+ paths = {
+ wallpaper = config.theme.wallpaper;
+ };
+
+ # Bar
+ bar = {
+ clock.showIcon = true;
+ dragThreshold = 20;
+ entries =
+ map (id: {
+ inherit id;
+ enabled = true;
+ }) [
+ "workspaces"
+ "spacer"
+ "activeWindow"
+ "spacer"
+ "tray"
+ "clock"
+ "statusIcons"
+ "power"
+ ];
+ persistent = true;
+ popouts = {
+ activeWindow = true;
+ statusIcons = true;
+ tray = true;
+ };
+ scrollActions = {
+ brightness = true;
+ workspaces = true;
+ volume = true;
+ };
+ showOnHover = true;
+ status = {
+ showAudio = false;
+ showBattery = true;
+ showBluetooth = true;
+ showKbLayout = false;
+ showMicrophone = false;
+ showNetwork = true;
+ showLockStatus = false;
+ };
+ tray = {
+ background = false;
+ compact = false;
+ iconSubs = [];
+ recolour = false;
+ };
+ workspaces = {
+ activeIndicator = true;
+ activeTrail = false;
+ perMonitorWorkspaces = true;
+ showWindows = false;
+ shown = 9;
+ label = "";
+ occupiedLabel = "";
+ activeLabel = "";
+ };
+ border = {
+ rounding = 25;
+ thickness = 10;
+ };
+ dashboard = {
+ enabled = true;
+ dragThreshold = 50;
+ mediaUpdateInterval = 500;
+ showOnHover = true;
+ };
+ };
+
+ # Notifications
+ notifs = {
+ actionOnClick = true;
+ clearThreshold = 0.3;
+ defaultExpireTimeout = 5000;
+ expandThreshold = 20;
+ openExpanded = false;
+ expire = true;
+ };
+
+ # On screen display
+ osd = {
+ enabled = true;
+ enableBrightness = true;
+ enableMicrophone = false;
+ hideDelay = 2000;
+ };
+
+ # Services
+ services = {
+ audioIncrement = 0.1;
+ brightnessIncrement = 0.1;
+ maxVolume = 1.0;
+ weatherLocation = "43.15,-77.60";
+ useFahrenheit = false;
+ useTwelveHourClock = false;
+ };
+
+ # Logout / shutdown
+ session = {
+ dragThreshold = 30;
+ enabled = true;
+ vimKeybinds = false;
+ commands = {
+ logout = ["loginctl" "terminate-user" ""];
+ shutdown = ["systemctl" "poweroff"];
+ hibernate = ["systemctl" "hibernate"];
+ reboot = ["systemctl" "reboot"];
+ };
+ };
+
+ # Sidebar
+ sidebar = {
+ dragThreshold = 80;
+ enabled = true;
+ };
+
+ # idk
+ utilities = {
+ enabled = true;
+ maxToasts = 4;
+ toasts = {
+ audioInputChanged = true;
+ audioOutputChanged = true;
+ capsLockChanged = true;
+ chargingChanged = true;
+ configLoaded = true;
+ dndChanged = true;
+ gameModeChanged = true;
+ kbLayoutChanged = true;
+ numLockChanged = true;
+ vpnChanged = true;
+ nowPlaying = false;
+ };
+ };
+ };
+ };
+}
diff --git a/home/apps/default.nix b/home/apps/default.nix
index ebbd605..1823b0d 100644
--- a/home/apps/default.nix
+++ b/home/apps/default.nix
@@ -1,5 +1,6 @@
_: {
imports = [
+ ./caelestia
./rofi
./waybar
./wofi