From 64e9bdf5dbc168074c4e5011c6587ab9e1def8e4 Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Thu, 14 May 2026 09:34:10 +0200 Subject: [PATCH] Use Atkinson Hyperlegible as default font Add a Shift desktop theme package and point the look-and-feel defaults at Atkinson Hyperlegible Next / Mono. --- CMakeLists.txt | 2 ++ desktoptheme/CMakeLists.txt | 11 ++++++ desktoptheme/org.shift.desktoptheme/README.md | 21 +++++++++++ .../org.shift.desktoptheme/metadata.json | 14 ++++++++ .../metadata.json.license | 2 ++ fonts/CMakeLists.txt | 22 ++++++++++++ fonts/README.md | 36 +++++++++++++++++++ lookandfeel/contents/defaults | 7 +++- 8 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 desktoptheme/CMakeLists.txt create mode 100644 desktoptheme/org.shift.desktoptheme/README.md create mode 100644 desktoptheme/org.shift.desktoptheme/metadata.json create mode 100644 desktoptheme/org.shift.desktoptheme/metadata.json.license create mode 100644 fonts/CMakeLists.txt create mode 100644 fonts/README.md diff --git a/CMakeLists.txt b/CMakeLists.txt index 71ecb34a..b835cca9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,6 +149,8 @@ plasma_install_package(${SHIFT_SHELL_PACKAGE_DIR} org.kde.plasma.mobileshell she add_subdirectory(bin) add_subdirectory(color-schemes) +add_subdirectory(desktoptheme) +add_subdirectory(fonts) add_subdirectory(icons) add_subdirectory(wallpapers) add_subdirectory(components) diff --git a/desktoptheme/CMakeLists.txt b/desktoptheme/CMakeLists.txt new file mode 100644 index 00000000..a79d02a3 --- /dev/null +++ b/desktoptheme/CMakeLists.txt @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2026 SHIFT Contributors +# SPDX-License-Identifier: GPL-2.0-or-later + +# Install the Shift Plasma desktop theme. The package starts empty and +# inherits everything from the system "default" theme; override SVGs are +# added one at a time as identity work progresses, so each override can +# be reviewed visually in isolation. +install( + DIRECTORY org.shift.desktoptheme + DESTINATION ${KDE_INSTALL_DATADIR}/plasma/desktoptheme +) diff --git a/desktoptheme/org.shift.desktoptheme/README.md b/desktoptheme/org.shift.desktoptheme/README.md new file mode 100644 index 00000000..5db66aa8 --- /dev/null +++ b/desktoptheme/org.shift.desktoptheme/README.md @@ -0,0 +1,21 @@ + + +# Shift Plasma desktop theme + +Empty package. Inherits the system "default" desktop theme. SVG overrides are +added incrementally so each visual change can be reviewed in isolation in the +preview. + +The shell currently references these `KSvg` paths and they are the only ones +worth overriding here: + +- `widgets/panel-background` (`solid/widgets/panel-background` variant) +- `widgets/background` +- `widgets/slider` +- `widgets/tabbar` + +Anything not provided here falls back through the inheritance chain to the +system Breeze theme, so adding overrides is strictly additive. diff --git a/desktoptheme/org.shift.desktoptheme/metadata.json b/desktoptheme/org.shift.desktoptheme/metadata.json new file mode 100644 index 00000000..e98f3ccf --- /dev/null +++ b/desktoptheme/org.shift.desktoptheme/metadata.json @@ -0,0 +1,14 @@ +{ + "KPackageStructure": "Plasma/Theme", + "KPlugin": { + "Authors": [ + { + "Name": "SHIFT Contributors" + } + ], + "Description": "Shift Plasma theme", + "Id": "org.shift.desktoptheme", + "License": "GPL-2.0-or-later", + "Name": "Shift" + } +} diff --git a/desktoptheme/org.shift.desktoptheme/metadata.json.license b/desktoptheme/org.shift.desktoptheme/metadata.json.license new file mode 100644 index 00000000..e649148e --- /dev/null +++ b/desktoptheme/org.shift.desktoptheme/metadata.json.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2026 SHIFT Contributors +SPDX-License-Identifier: GPL-2.0-or-later diff --git a/fonts/CMakeLists.txt b/fonts/CMakeLists.txt new file mode 100644 index 00000000..706a3993 --- /dev/null +++ b/fonts/CMakeLists.txt @@ -0,0 +1,22 @@ +# SPDX-FileCopyrightText: 2026 SHIFT Contributors +# SPDX-License-Identifier: GPL-2.0-or-later + +# Install bundled font files (if any are present) into the system font dir +# so the shell session can render the configured default font even on +# distributions that do not package it. +# +# Drop OFL-licensed font files into fonts/AtkinsonHyperlegibleNext/ and +# fonts/AtkinsonHyperlegibleMono/ alongside their SPDX .license sidecars. + +file(GLOB SHIFT_FONT_FILES + LIST_DIRECTORIES false + "${CMAKE_CURRENT_SOURCE_DIR}/*/*.ttf" + "${CMAKE_CURRENT_SOURCE_DIR}/*/*.otf" +) + +if(SHIFT_FONT_FILES) + install( + FILES ${SHIFT_FONT_FILES} + DESTINATION ${KDE_INSTALL_DATADIR}/fonts/shift + ) +endif() diff --git a/fonts/README.md b/fonts/README.md new file mode 100644 index 00000000..b9685338 --- /dev/null +++ b/fonts/README.md @@ -0,0 +1,36 @@ + + +# Shift bundled fonts + +Drop the Atkinson Hyperlegible Next and Atkinson Hyperlegible Mono font files +here, organised one family per subdirectory: + +``` +fonts/ + AtkinsonHyperlegibleNext/ + AtkinsonHyperlegibleNext-*.ttf + AtkinsonHyperlegibleNext-*.ttf.license + AtkinsonHyperlegibleMono/ + AtkinsonHyperlegibleMono-*.ttf + AtkinsonHyperlegibleMono-*.ttf.license +``` + +Sources: +- https://www.brailleinstitute.org/freefont (Atkinson Hyperlegible Next + Mono) + +License: SIL Open Font License 1.1. Add a `.license` sidecar next to each +binary file with: + +``` +SPDX-FileCopyrightText: 2024 Braille Institute of America, Inc. +SPDX-License-Identifier: OFL-1.1 +``` + +The build globs every `*.ttf`/`*.otf` under these subdirectories at configure +time, so adding files later does not require editing CMake. If no fonts are +present, the install step is skipped silently — `lookandfeel/contents/defaults` +still requests the family, and the system falls back to whatever fontconfig +resolves "Atkinson Hyperlegible Next" to (e.g. a distro package). diff --git a/lookandfeel/contents/defaults b/lookandfeel/contents/defaults index 423f9283..8cb52deb 100644 --- a/lookandfeel/contents/defaults +++ b/lookandfeel/contents/defaults @@ -10,12 +10,17 @@ widgetStyle=Breeze [kdeglobals][General] ColorScheme=ShiftDark Name=Shift Dark +font=Atkinson Hyperlegible Next,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 +fixed=Atkinson Hyperlegible Mono,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 +smallestReadableFont=Atkinson Hyperlegible Next,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 +toolBarFont=Atkinson Hyperlegible Next,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 +menuFont=Atkinson Hyperlegible Next,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 [kdeglobals][Icons] Theme=breeze-dark [plasmarc][Theme] -name=default +name=org.shift.desktoptheme [Wallpaper] Image=SHIFT