diff options
| author | Freya Murphy <freya@freyacat.org> | 2026-01-08 22:32:22 -0500 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2026-01-08 22:32:22 -0500 |
| commit | 71b157a4ccc58f7bc1c8b270b573f54be211eb1b (patch) | |
| tree | 1035fdee556a09bc78b5f6126881427cfaba38c6 /home | |
| parent | fix gtk icons (diff) | |
| download | dotfiles-nix-main.tar.gz dotfiles-nix-main.tar.bz2 dotfiles-nix-main.zip | |
Diffstat (limited to '')
| -rw-r--r-- | home/apps/caelestia/default.nix | 21 | ||||
| -rw-r--r-- | home/apps/caelestia/scheme.nix | 86 | ||||
| -rw-r--r-- | home/apps/caelestia/settings.nix | 209 | ||||
| -rw-r--r-- | home/apps/default.nix | 1 |
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 |