diff --git a/.gitignore b/.gitignore index 34d9682..9a3d053 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,19 @@ fish/fish_variables waybar/fluxo-rs !fluxo/ + +# Desktop theming. These live outside the per-app configs above, but they are +# what makes an app that is neither GTK-aware nor shell-aware match the rice, +# so the branch carries them. +!gtk-3.0/ +gtk-3.0/* +!gtk-3.0/settings.ini +!gtk-3.0/gtk.css +!gtk-4.0/ +gtk-4.0/* +!gtk-4.0/settings.ini +!gtk-4.0/gtk.css +!xsettingsd/ +!qt6ct/ +qt6ct/* +!qt6ct/qt6ct.conf diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml index d6e6ce3..c90ff73 100644 --- a/alacritty/alacritty.toml +++ b/alacritty/alacritty.toml @@ -107,7 +107,7 @@ ipc_socket = true ## GENERAL -------------------------------------------------------- ## Import additional configuration files. -import = ["~/.config/alacritty/takemi.toml", "~/.config/alacritty/fonts.toml"] +import = ["~/.config/alacritty/catppuccin-mocha.toml", "~/.config/alacritty/fonts.toml"] [[keyboard.bindings]] key = "Return" diff --git a/dunst/dunstrc b/dunst/dunstrc index fa88922..f94033b 100644 --- a/dunst/dunstrc +++ b/dunst/dunstrc @@ -1,10 +1,10 @@ [global] corner_radius = 4 transparency = 90 -frame_color = "#f38ba8" +frame_color = "#89b4fa" frame_width = 1 separator_color= frame -highlight = "#89dceb" +highlight = "#f5c2e7" [urgency_low] background = "#1e1e2e" diff --git a/fish/conf.d/takemi_theme.fish b/fish/conf.d/takemi_theme.fish index a483c67..0c061cd 100644 --- a/fish/conf.d/takemi_theme.fish +++ b/fish/conf.d/takemi_theme.fish @@ -1,50 +1,51 @@ -# Takemi — matched to ~/.config/quickshell/config/Theme.qml, -# ~/.config/alacritty/takemi.toml and ~/.config/nvim/lua/takemi.lua. +# Mocha — matched to ~/.config/quickshell/config/Theme.qml, +# ~/.config/alacritty/catppuccin-mocha.toml and ~/.config/nvim/lua/takemi.lua. # -# Replaces the catppuccin fish_frozen_theme.fish that fish 4.3 generated on -# upgrade. Same content as themes/Takemi.theme — that copy exists only so -# `fish_config` can preview it; this one is what actually loads. +# Catppuccin Mocha's own fish theme (themes/Catppuccin Mocha.theme), with the +# selection and pager rows carried over from the Takemi layout: a solid accent +# block with crust punched out of it, rather than a tinted surface. The shell +# selects with a blue slab; the prompt should not disagree. # # Note that `fish_config` writing a theme from the web UI will recreate # fish_frozen_theme.fish, which sorts before this file and so would lose. -set --global fish_color_normal ffffff -set --global fish_color_command ffffff --bold -set --global fish_color_keyword ff2d40 -set --global fish_color_param c8c8ce -set --global fish_color_option 8d9bb8 -set --global fish_color_quote 7f9b6a -set --global fish_color_escape 9db8bd -set --global fish_color_operator c8c8ce -set --global fish_color_redirection ff6b78 -set --global fish_color_end 6b6b70 -set --global fish_color_comment 6b6b70 --italics -set --global fish_color_error ff2d40 --bold -set --global fish_color_cancel ff2d40 -set --global fish_color_gray 6b6b70 -set --global fish_color_autosuggestion 4a4a52 -set --global fish_color_selection 000000 --background=ff2d40 -set --global fish_color_search_match 000000 --background=c8c8ce -set --global fish_color_match 000000 --background=ff2d40 +set --global fish_color_normal cdd6f4 +set --global fish_color_command 89b4fa +set --global fish_color_keyword f38ba8 +set --global fish_color_param f2cdcd +set --global fish_color_option a6e3a1 +set --global fish_color_quote a6e3a1 +set --global fish_color_escape eba0ac +set --global fish_color_operator f5c2e7 +set --global fish_color_redirection f5c2e7 +set --global fish_color_end fab387 +set --global fish_color_comment 7f849c --italics +set --global fish_color_error f38ba8 --bold +set --global fish_color_cancel f38ba8 +set --global fish_color_gray 6c7086 +set --global fish_color_autosuggestion 6c7086 +set --global fish_color_selection 11111b --background=89b4fa +set --global fish_color_search_match 11111b --background=f5c2e7 +set --global fish_color_match 11111b --background=89b4fa set --global fish_color_history_current --bold set --global fish_color_valid_path --underline -set --global fish_color_cwd ffffff --bold -set --global fish_color_cwd_root ff2d40 --bold -set --global fish_color_user c8c8ce -set --global fish_color_host ffffff --bold -set --global fish_color_host_remote ff6b78 -set --global fish_color_status ff2d40 +set --global fish_color_cwd f9e2af --bold +set --global fish_color_cwd_root f38ba8 --bold +set --global fish_color_user 94e2d5 +set --global fish_color_host 89b4fa --bold +set --global fish_color_host_remote a6e3a1 +set --global fish_color_status f38ba8 -set --global fish_pager_color_progress 6b6b70 --background=141418 +set --global fish_pager_color_progress 6c7086 --background=313244 set --global fish_pager_color_background -set --global fish_pager_color_prefix ffffff --bold -set --global fish_pager_color_completion c8c8ce -set --global fish_pager_color_description 6b6b70 -set --global fish_pager_color_secondary_background --background=0d0d10 -set --global fish_pager_color_secondary_completion c8c8ce -set --global fish_pager_color_secondary_description 6b6b70 -set --global fish_pager_color_secondary_prefix ffffff --bold -set --global fish_pager_color_selected_background --background=ff2d40 -set --global fish_pager_color_selected_completion 000000 -set --global fish_pager_color_selected_description 000000 -set --global fish_pager_color_selected_prefix 000000 --bold +set --global fish_pager_color_prefix f5c2e7 --bold +set --global fish_pager_color_completion cdd6f4 +set --global fish_pager_color_description 6c7086 +set --global fish_pager_color_secondary_background --background=181825 +set --global fish_pager_color_secondary_completion cdd6f4 +set --global fish_pager_color_secondary_description 6c7086 +set --global fish_pager_color_secondary_prefix f5c2e7 --bold +set --global fish_pager_color_selected_background --background=89b4fa +set --global fish_pager_color_selected_completion 11111b +set --global fish_pager_color_selected_description 11111b +set --global fish_pager_color_selected_prefix 11111b --bold diff --git a/gtk-3.0/gtk.css b/gtk-3.0/gtk.css new file mode 100644 index 0000000..cca3269 --- /dev/null +++ b/gtk-3.0/gtk.css @@ -0,0 +1,7 @@ +/* Catppuccin Mocha Blue carries the whole GTK3 palette itself, so there is no + * surface override here — the Takemi branch only needed one because it was + * painting Fluent's greys black. All that is left is the one place the rice + * disagrees with stock Catppuccin: destructive actions are pink, matching the + * shell's alarm colour. */ +@define-color destructive_bg_color #f38ba8; +@define-color destructive_fg_color #11111b; diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini new file mode 100644 index 0000000..2b722f4 --- /dev/null +++ b/gtk-3.0/settings.ini @@ -0,0 +1,7 @@ +[Settings] +gtk-theme-name=catppuccin-mocha-blue-standard+default +gtk-icon-theme-name=Papirus-Dark +gtk-font-name=Adwaita Sans 11 +gtk-cursor-theme-name=Bibata-Modern-Classic +gtk-cursor-theme-size=24 +gtk-application-prefer-dark-theme=1 diff --git a/gtk-4.0/gtk.css b/gtk-4.0/gtk.css new file mode 100644 index 0000000..0ed0fcf --- /dev/null +++ b/gtk-4.0/gtk.css @@ -0,0 +1,8 @@ +/* Catppuccin Mocha Blue, straight from the installed theme. The Takemi branch + * overrode Fluent's greys with black here; Mocha needs no override — its own + * surfaces are the palette the rest of the rice is built on. */ +@import url("/usr/share/themes/catppuccin-mocha-blue-standard+default/gtk-4.0/gtk.css"); + +/* Pink is the shell's alarm colour; keep destructive GTK buttons in step. */ +@define-color destructive_bg_color #f38ba8; +@define-color destructive_fg_color #11111b; diff --git a/gtk-4.0/settings.ini b/gtk-4.0/settings.ini new file mode 100644 index 0000000..2b722f4 --- /dev/null +++ b/gtk-4.0/settings.ini @@ -0,0 +1,7 @@ +[Settings] +gtk-theme-name=catppuccin-mocha-blue-standard+default +gtk-icon-theme-name=Papirus-Dark +gtk-font-name=Adwaita Sans 11 +gtk-cursor-theme-name=Bibata-Modern-Classic +gtk-cursor-theme-size=24 +gtk-application-prefer-dark-theme=1 diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf index 9dc1d66..eb4f51c 100644 --- a/hypr/hyprpaper.conf +++ b/hypr/hyprpaper.conf @@ -1,6 +1,6 @@ wallpaper { monitor = - path = ~/.wallpapers/takemi_3.jpg + path = ~/.wallpapers/arch.png fit_mode = cover } diff --git a/hypr/lua/palette.lua b/hypr/lua/palette.lua index 95ababd..664005c 100644 --- a/hypr/lua/palette.lua +++ b/hypr/lua/palette.lua @@ -1,6 +1,6 @@ --- Takemi palette — kept in step with ~/.config/quickshell/config/Theme.qml. +-- Mocha palette — kept in step with ~/.config/quickshell/config/Theme.qml. -- --- Crimson, black, white. Nothing else carries hue. +-- Catppuccin Mocha ground, blue accent, pink alarm. Nothing else carries hue. -- -- Returned as a table, so every module that paints something does -- local c = require("lua/palette") @@ -8,44 +8,45 @@ local c = {} --- ----------------------------------------------------------------- THE KNOB --- The one colour in this setup. Change this line and the window borders, --- group indicators and focus states all recolour with it. +-- ---------------------------------------------------------------- THE KNOBS +-- Two colours in this setup: blue for anything live (window borders, group +-- indicators, focus), pink for anything wrong. Change these lines and every +-- painted edge recolours with them. -- --- Keep it in step with `readonly property color accent` in +-- Keep them in step with `accent` / `alarm` in -- ~/.config/quickshell/config/Theme.qml, which is what colours the shell. --- Those are the only two places the colour is written. -c.accent = "rgb(ff2d40)" +-- Those are the only places the colours are written. +c.accent = "rgb(89b4fa)" +c.alarm = "rgb(f5c2e7)" -c.accentDim = "rgb(8f1826)" -c.accentSoft = "rgb(ff6b78)" +c.accentDim = "rgb(5a7dc0)" +c.accentSoft = "rgb(b4befe)" -- ------------------------------------------------------------------ neutrals -c.ink = "rgb(000000)" +c.ink = "rgb(11111b)" -c.base = "rgb(0a0a0c)" -c.mantle = "rgb(0d0d10)" -c.surface = "rgb(141418)" -c.surfaceAlt = "rgb(1c1c22)" -c.overlay = "rgb(26262e)" -c.outline = "rgb(3a3a44)" +c.base = "rgb(1e1e2e)" +c.mantle = "rgb(181825)" +c.surface = "rgb(313244)" +c.surfaceAlt = "rgb(45475a)" +c.overlay = "rgb(585b70)" +c.outline = "rgb(6c7086)" -c.text = "rgb(ffffff)" -c.subtext = "rgb(c8c8ce)" -c.muted = "rgb(6b6b70)" +c.text = "rgb(cdd6f4)" +c.subtext = "rgb(a6adc8)" +c.muted = "rgb(7f849c)" --- Retired hues, kept as aliases so existing references resolve. The shell has --- no teal any more — the wallpaper is the colour in the composition. +-- Semantic aliases, so existing references resolve without inventing hues. c.primary = c.text -c.primaryDim = "rgb(9a9aa2)" +c.primaryDim = "rgb(9399b2)" c.glow = c.accent -c.blue = c.primaryDim +c.blue = c.accent c.deep = c.surfaceAlt -c.warn = c.accentSoft +c.warn = c.alarm c.ok = c.text --- Crimson into its own shadow, on the diagonal. The accent is the only hue --- here — a gradient into a second colour is what put blue in the border. -c.activeBorder = { colors = { c.accent, c.accentDim }, angle = 135 } +-- Blue into lavender, on the diagonal. Both ends are the accent's own family, +-- so the border never reads as two colours arguing. +c.activeBorder = { colors = { c.accent, c.accentSoft }, angle = 135 } return c diff --git a/nvim b/nvim index 2cbfe69..9526fa8 160000 --- a/nvim +++ b/nvim @@ -1 +1 @@ -Subproject commit 2cbfe6946ae8da69fe7bc464cad9cac2aa906bd9 +Subproject commit 9526fa8fac4194eed10ec3b16cb3179b01c6aeb3 diff --git a/qt6ct/qt6ct.conf b/qt6ct/qt6ct.conf new file mode 100644 index 0000000..65b6fa7 --- /dev/null +++ b/qt6ct/qt6ct.conf @@ -0,0 +1,32 @@ +[Appearance] +color_scheme_path=/usr/share/qt6ct/colors/catppuccin-mocha-blue.conf +custom_palette=true +icon_theme=Papirus-Dark +standard_dialogs=default +style=Fusion + +[Fonts] +fixed="Sans Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" +general="Sans Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=@Invalid() +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=@Invalid() +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\a\x80\0\0\0\0\0\0\xe\xef\0\0\x4l\0\0\a\x80\0\0\0\0\0\0\xe\xef\0\0\x4l\0\0\0\x1\x2\0\0\0\a\x80\0\0\a\x80\0\0\0\0\0\0\xe\xef\0\0\x4l) + +[Troubleshooting] +force_raster_widgets=1 +ignored_applications=@Invalid() diff --git a/quickshell/components/P5Button.qml b/quickshell/components/P5Button.qml index 7bab0f2..827d75e 100644 --- a/quickshell/components/P5Button.qml +++ b/quickshell/components/P5Button.qml @@ -46,20 +46,24 @@ FocusScope { padding: Theme.padS fill: { if (!root.enabled) return Theme.treatmentDisabledFill; - if (root.destructive) return Theme.treatmentDestructiveFill; + if (root.destructive) + return root.highlighted ? Theme.treatmentDestructiveActiveFill + : Theme.treatmentDestructiveFill; if (root.highlighted) return Theme.treatmentHoverFill; return Theme.treatmentRestFill; } fillOpacity: root.enabled ? 1.0 : 0.72 border: { if (!root.enabled) return Theme.treatmentDisabledMark; - if (root.destructive) return Theme.treatmentFocusMark; + if (root.destructive) + return root.highlighted ? Theme.treatmentDestructiveActiveMark + : Theme.treatmentDestructiveMark; if (root.highlighted) return Theme.treatmentHoverMark; return Theme.alpha(root.accent, 0.55); } borderWidth: Theme.stroke slash: !root.highlighted - slashColor: root.destructive ? Theme.treatmentDestructiveMark : root.accent + slashColor: root.destructive ? Theme.alarm : root.accent halftone: root.enabled && root.highlighted halftoneColor: Theme.ink halftoneOpacity: 0.14 @@ -81,7 +85,9 @@ FocusScope { font.pixelSize: Theme.fsTitle color: { if (!root.enabled) return Theme.treatmentDisabledText; - if (root.destructive) return Theme.treatmentDestructiveText; + if (root.destructive) + return root.highlighted ? Theme.treatmentDestructiveActiveText + : Theme.treatmentDestructiveText; if (root.highlighted) return Theme.treatmentHoverText; return root.accent; } @@ -92,7 +98,9 @@ FocusScope { text: root.text color: { if (!root.enabled) return Theme.treatmentDisabledText; - if (root.destructive) return Theme.treatmentDestructiveText; + if (root.destructive) + return root.highlighted ? Theme.treatmentDestructiveActiveText + : Theme.treatmentDestructiveText; if (root.highlighted) return Theme.treatmentHoverText; return Theme.treatmentRestText; } diff --git a/quickshell/config/Theme.qml b/quickshell/config/Theme.qml index 1a8a03b..630c05c 100644 --- a/quickshell/config/Theme.qml +++ b/quickshell/config/Theme.qml @@ -3,55 +3,61 @@ pragma Singleton import QtQuick import Quickshell -// Takemi palette: crimson, black, white. Nothing else. +// Mocha palette: Catppuccin Mocha ground, blue as the accent, pink as the +// alarm. Persona geometry, softer colour. // -// White does the work: text, icons, idle indicators. Crimson is the only accent -// and it always means the same thing — active, or wrong. Black is structure, -// used as a hard keyline rather than as a shadow. There are no gradients in -// this shell; every fill is flat. +// The Takemi branch ran monochrome-plus-crimson, where one hue carried both +// "active" and "wrong". Mocha has room for two: blue is every resting accent — +// focus, selection, the thing you are pointing at — and pink is reserved for +// the things that bite, so destructive and error still read at a glance +// without a third colour entering the shell. // -// The wallpaper is teal. The UI used to be teal too, and the two fought each -// other into a murky blue-grey. Letting the UI go monochrome-plus-red is what -// lets the wallpaper read as the colour in the composition. +// Everything else is Mocha's own neutral ramp. Fills stay flat and keylines +// stay hard; only the hues moved. Singleton { id: root // ---------------------------------------------------------------- colors - readonly property color ink: "#000000" + // Crust, not pure black: it is the darkest thing in Mocha, so it keeps its + // job as the hard keyline and as text punched out of an accent fill. + readonly property color ink: "#11111b" - readonly property color base: "#0a0a0c" - readonly property color mantle: "#0d0d10" - readonly property color surface: "#141418" - readonly property color surfaceAlt: "#1c1c22" - readonly property color overlay: "#26262e" - readonly property color outline: "#3a3a44" + readonly property color base: "#1e1e2e" + readonly property color mantle: "#181825" + readonly property color surface: "#313244" + readonly property color surfaceAlt: "#45475a" + readonly property color overlay: "#585b70" + readonly property color outline: "#6c7086" - readonly property color text: "#ffffff" - readonly property color subtext: "#c8c8ce" - readonly property color muted: "#6b6b70" + readonly property color text: "#cdd6f4" + readonly property color subtext: "#a6adc8" + readonly property color muted: "#7f849c" - // ------------------------------------------------------------ THE KNOB - // The one colour in this shell. Change this line and the entire accent - // recolours — everything below is derived from it, and nothing else in the - // palette carries hue at all. + // ------------------------------------------------------------ THE KNOBS + // Two colours, two meanings, and nothing else in the shell carries hue. // - // Keep it in step with `$accent` at the top of - // ~/.config/hypr/modules/takemi.conf, which is what colours the Hyprland - // window borders. Those are the only two places the colour is written. - readonly property color accent: "#ff2d40" + // `accent` is blue: anything live, focused or selected. `alarm` is pink: + // anything destructive or failed. Swap either line and everything derived + // from it recolours. + // + // Keep them in step with `c.accent` / `c.alarm` in + // ~/.config/hypr/lua/palette.lua, which is what colours the Hyprland + // window borders. Those are the only places the colours are written. + readonly property color accent: "#89b4fa" + readonly property color alarm: "#f5c2e7" - readonly property color accentDim: Qt.darker(root.accent, 1.9) - readonly property color accentSoft: Qt.lighter(root.accent, 1.35) + readonly property color accentDim: "#5a7dc0" + readonly property color accentSoft: "#b4befe" // `primary` is the resting voice of the UI, which is now simply white. // Kept under the old name so the existing call sites don't all have to move. readonly property color primary: root.text - readonly property color primaryDim: "#9a9aa2" + readonly property color primaryDim: "#9399b2" readonly property color deep: root.surfaceAlt - // `glow` is the hover highlight. It used to be a brighter teal, which now - // that everything rests at white would have made hover invisible — so it - // resolves to crimson. Pointing at a thing lights it up red. + // `glow` is the hover highlight. Pointing at a thing lights it up blue — + // the same signal as focus, because it is the same statement about where + // your attention is. readonly property color glow: root.accent // ------------------------------------------------ semantic treatments @@ -77,38 +83,43 @@ Singleton { readonly property color treatmentActiveMark: root.accent readonly property color treatmentActiveText: root.text - // Crimson carries destructive/error meaning. Text and keylines stay black: - // black-on-crimson is 5.70:1, while small white-on-crimson is only 3.68:1. - readonly property color treatmentDestructiveFill: root.accent - readonly property color treatmentDestructiveMark: root.ink - readonly property color treatmentDestructiveText: root.ink - readonly property color treatmentErrorFill: root.treatmentDestructiveFill - readonly property color treatmentErrorMark: root.treatmentDestructiveMark - readonly property color treatmentErrorText: root.treatmentDestructiveText + // Pink carries destructive/error meaning — never blue, so a dangerous + // button can never be mistaken for a merely focused one. + // + // At rest it is a keyline and a label, not a fill: Mocha's pink is a + // pastel, and a slab of it reads as a washed-out red rather than as a + // warning. The solid pink is held back for the moment the pointer or the + // selection is actually on the thing — then it lands, with crust punched + // out of it at 11.8:1. + readonly property color treatmentDestructiveFill: root.surface + readonly property color treatmentDestructiveMark: root.alarm + readonly property color treatmentDestructiveText: root.alarm + + readonly property color treatmentDestructiveActiveFill: root.alarm + readonly property color treatmentDestructiveActiveMark: root.ink + readonly property color treatmentDestructiveActiveText: root.ink + readonly property color treatmentErrorFill: root.treatmentDestructiveActiveFill + readonly property color treatmentErrorMark: root.treatmentDestructiveActiveMark + readonly property color treatmentErrorText: root.treatmentDestructiveActiveText readonly property color treatmentUrgentFill: root.surface - readonly property color treatmentUrgentMark: root.accent + readonly property color treatmentUrgentMark: root.alarm readonly property color treatmentUrgentText: root.text readonly property color treatmentDisabledFill: root.surface readonly property color treatmentDisabledMark: root.outline readonly property color treatmentDisabledText: root.muted - // Retired hues. Aliases only — do not introduce new uses. - // - // `warn` used to be accentSoft, which put a washed-out pink-red on screen - // wherever something was merely notable. That reads as a faded accent, not - // as a decision. There is no half-crimson in this palette: a thing is wrong - // (accent) or it is not (text). `warn` now resolves to the real accent, so - // low battery shouts properly and everything merely informational is white. - readonly property color blue: root.primaryDim + // Semantic aliases. Still only two hues: a thing is fine (text), live + // (accent) or wrong (alarm). Nothing here introduces a third colour. + readonly property color blue: root.accent readonly property color ok: root.text - readonly property color warn: root.accent + readonly property color warn: root.alarm - // Display text carries a crimson and a black offset rather than an RGB - // split. Same trick, correct palette. + // Display text carries a blue and a pink offset rather than an RGB split. + // Same trick, this palette's two colours. readonly property color splitRed: root.accent - readonly property color splitCyan: root.ink + readonly property color splitCyan: root.alarm function alpha(c: color, a: real): color { return Qt.rgba(c.r, c.g, c.b, a); @@ -122,11 +133,15 @@ Singleton { a.a + (b.a - a.a) * k); } - // Load readouts sit white until the number actually matters, then bleed to - // crimson. Not a hue cycle — red always means the same thing. + // Load readouts sit at text until the number actually matters, then climb + // through the accent before they reach the alarm. Going straight from text + // to pink passes through a washed-out mid-tone that reads as a faded red + // rather than as a rising number; routing through blue keeps every step of + // the ramp a colour the shell already uses. function heat(pct: real): color { - if (pct <= 55) return root.text; - return root.mix(root.text, root.accent, (pct - 55) / 45); + if (pct <= 45) return root.text; + if (pct <= 75) return root.mix(root.text, root.accent, (pct - 45) / 30); + return root.mix(root.accent, root.alarm, (pct - 75) / 25); } // ----------------------------------------------------------------- fonts diff --git a/quickshell/lock/LockFace.qml b/quickshell/lock/LockFace.qml index 5e964a5..1657acd 100644 --- a/quickshell/lock/LockFace.qml +++ b/quickshell/lock/LockFace.qml @@ -199,7 +199,7 @@ Item { text: surface.failed ? (surface.status || "WRONG").toUpperCase() : (surface.busy ? "CHECKING…" : "WHO GOES THERE") - color: surface.failed ? Theme.accent : Theme.text + color: surface.failed ? Theme.alarm : Theme.text pixelSize: Theme.fsTitle letterSpacing: 4 horizontalAlignment: Text.AlignHCenter @@ -223,10 +223,10 @@ Item { : (input.activeFocus ? Theme.primary : Theme.outline) borderWidth: 2 slash: true - slashColor: surface.failed ? Theme.accent : Theme.primary + slashColor: surface.failed ? Theme.alarm : Theme.primary slashWidth: 6 halftone: true - halftoneColor: surface.failed ? Theme.accent : Theme.primary + halftoneColor: surface.failed ? Theme.alarm : Theme.primary halftoneOpacity: 0.08 Row { @@ -241,7 +241,7 @@ Item { required property int index width: 10 height: 20 - color: surface.failed ? Theme.accent : Theme.primary + color: surface.failed ? Theme.alarm : Theme.primary // Each new block snaps in. Component.onCompleted: pop.start() diff --git a/quickshell/overlays/PowerMenu.qml b/quickshell/overlays/PowerMenu.qml index 6c179bd..062c300 100644 --- a/quickshell/overlays/PowerMenu.qml +++ b/quickshell/overlays/PowerMenu.qml @@ -182,7 +182,7 @@ PanelWindow { icon: entry.modelData.icon destructive: entry.modelData.danger selected: root.selectedAction === entry.index - accent: entry.modelData.danger ? Theme.accent : Theme.primary + accent: entry.modelData.danger ? Theme.alarm : Theme.primary lean: Theme.skew lunge: -10 onClicked: root.invoke(entry.modelData.act) diff --git a/quickshell/services/Battery.qml b/quickshell/services/Battery.qml index 0633a1d..59b911d 100644 --- a/quickshell/services/Battery.qml +++ b/quickshell/services/Battery.qml @@ -59,7 +59,7 @@ Singleton { readonly property color tint: { if (root.charging || root.full) return Theme.ok; - if (root.critical) return Theme.accent; + if (root.critical) return Theme.alarm; if (root.low) return Theme.warn; return Theme.primary; } diff --git a/quickshell/services/Notifs.qml b/quickshell/services/Notifs.qml index f5c6a02..44b6645 100644 --- a/quickshell/services/Notifs.qml +++ b/quickshell/services/Notifs.qml @@ -81,7 +81,7 @@ Singleton { // Urgency-driven accents for the popup chrome. function urgencyColor(u: int): color { switch (u) { - case NotificationUrgency.Critical: return Theme.accent; + case NotificationUrgency.Critical: return Theme.alarm; case NotificationUrgency.Low: return Theme.muted; default: return Theme.primary; } diff --git a/xsettingsd/xsettingsd.conf b/xsettingsd/xsettingsd.conf new file mode 100644 index 0000000..1a383e7 --- /dev/null +++ b/xsettingsd/xsettingsd.conf @@ -0,0 +1,9 @@ +Net/ThemeName "catppuccin-mocha-blue-standard+default" +Net/IconThemeName "Papirus-Dark" +Gtk/CursorThemeName "Bibata-Modern-Classic" +Net/EnableEventSounds 1 +EnableInputFeedbackSounds 0 +Xft/Antialias 1 +Xft/Hinting 1 +Xft/HintStyle "hintslight" +Xft/RGBA "rgb"