diff --git a/TODO.md b/TODO.md index eaf5a6a..4287108 100644 --- a/TODO.md +++ b/TODO.md @@ -1,6 +1,6 @@ # Das OS — що зробити далі -Стан на 2026-10-21: версія 0.9.3, етапи 1–8 готові (live ISO, власний репозиторій, оформлення, інсталятор Calamares зі знімками Btrfs, Go-утиліти `das-update` і `das-welcome`, серверний образ з консольним інсталятором, менші ISO, консольні помічники, профіль розробника), CI (етап 9: пакети й обидва ISO збираються на власному runner, ~45 хв). +Стан на 2026-10-25: версія 0.9.4 (не закомічено), етапи 1–8 готові (live ISO, власний репозиторій, оформлення, інсталятор Calamares зі знімками Btrfs, Go-утиліти `das-update` і `das-welcome`, серверний образ з консольним інсталятором, менші ISO, консольні помічники, профіль розробника), CI (етап 9: пакети й обидва ISO збираються на власному runner, ~45 хв). ## Етап 5. Go-утиліти (готово, лишилися перевірки) - [x] `das-update`: вікно, значок у треї (лише коли є оновлення), консольний режим `--cli`, знімок snapper pre/post, встановлення через pkexec, підказка про відкат. @@ -86,10 +86,13 @@ Live ISO без графіки з консольним інсталятором: - [x] Перевірено автором у консолі сервера: `dprompt` і `dbanner` з рамками `┌─┐` без квадратиків, кнопки `dbanner` видно повністю. - [x] Аліаси й функції для bash (das-shell 0.3.0, 0.9.3): на основі `~/.bash_aliases` і `~/.bash_functions` автора, переписані під Void (xbps, nftables, `das-update`), з виправленими помилками (`rmhost`, `netinfo`, `todo -r`, `dirsize`, `extract`), двомовними описами для `lsfunc` і новими функціями (`up`, `bigfiles`, `pkgowner`, `please`, `serve`, `weather`, `cheat`, `genpass`, скорочення Docker). Перейменовано те, що затіняло команди: `gh` → `hgrep` (GitHub CLI), `install` прибрано (є `xi`), `mount` → `mounts`, `ed` прибрано. - [x] Аліаси й функції перевірено автором на сервері (das-shell 0.3.0 з локального репозиторію). -- [ ] Перевірити аліаси й функції на десктопі (ISO 0.9.3). +- [x] Аліаси й функції перевірено автором на десктопі (ISO 0.9.3). - [x] Перевірено автором на реальному сервері (0.9.1): банер `das-classic` з IP при вході по SSH, свій банер і `dbanner apply ukraine`, `dbanner apply dashboard` вмикає службу `das-banner` (погода й оновлення з'являються), запрошення Das і в SSH, і в консолі (`>` замість `╼`). - [x] `ssh host cmd` виконується без банера (перевірено автором). -- [ ] Десктоп: запрошення в xfce4-terminal, обидва редактори. +- [x] Десктоп: `dprompt` і `dbanner` перевірено автором (ISO 0.9.3). +- [x] Вихід з `dprompt` і `dbanner` однаково Ctrl+Q (у `dbanner` на стартовому екрані лишилась і `q`); 0.9.4. +- [ ] Десктоп, xfce4-terminal: `└─╼` сірий, а не червоний (у консолі сервера червоний). З'ясувати. +- [ ] Узгодити решту клавіш: у `dprompt` Ctrl+S «застосувати», у `dbanner` Ctrl+S «зберегти», Ctrl+A «застосувати». ## Репозиторій пакетів - [ ] Підпис через `xbps-rindex --sign`, ключ поза репозиторієм. @@ -109,6 +112,8 @@ Live ISO без графіки з консольним інсталятором: - [ ] Прибирати старі корені `@<дата>`, які лишаються після відкату. ## Оформлення та дрібниці +- [x] Світла тема: значки панелі (трей, звук, розкладка) були блідо-сірими на світлій панелі; тепер текст і значки `#1f2430` (`das-theme` 0.2.0, 0.9.4; перевірити на ISO). +- [x] Значок кнопки меню на вибір: `das-panel-icon star|trident` (зірка `das-logo` за замовчуванням, тризуб `das-trident` жовтий із синім контуром); 0.9.4, перевірити на ISO. - [ ] Прибрати значки томів live-носія («Том 6,6 ГБ») з робочого столу live-сесії. - [ ] Тема GRUB у встановленій системі (зараз стандартний чорний екран). - [ ] Перевірити меню Whisker вручну. diff --git a/VERSION b/VERSION index 965065d..a602fc9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.3 +0.9.4 diff --git a/srcpkgs/das-settings/files/bin/das-panel-icon b/srcpkgs/das-settings/files/bin/das-panel-icon new file mode 100755 index 0000000..67d0fca --- /dev/null +++ b/srcpkgs/das-settings/files/bin/das-panel-icon @@ -0,0 +1,22 @@ +#!/bin/bash +# Picks the icon of the menu button on the panel: das-panel-icon star|trident|. +set -u + +case ${1:-} in +star) icon=das-logo ;; +trident) icon=das-trident ;; +"") + echo "usage: das-panel-icon star|trident|ICON-NAME" >&2 + echo "now: $(xfconf-query -c xfce4-panel -p /plugins/plugin-1/button-icon 2>/dev/null || echo das-logo)" >&2 + exit 1 + ;; +*) icon=$1 ;; +esac + +prop=/plugins/plugin-1/button-icon +xfconf-query -c xfce4-panel -p "$prop" -s "$icon" 2>/dev/null || + xfconf-query -c xfce4-panel -p "$prop" -n -t string -s "$icon" || exit 1 +# whiskermenu keeps its own copy in the rc file, which wins over xfconf +rc="${XDG_CONFIG_HOME:-$HOME/.config}/xfce4/panel/whiskermenu-1.rc" +[[ -f $rc ]] && sed -i "s|^button-icon=.*|button-icon=$icon|" "$rc" +xfce4-panel -r >/dev/null 2>&1 & diff --git a/srcpkgs/das-settings/template b/srcpkgs/das-settings/template index 3ff28fe..0bc3b20 100644 --- a/srcpkgs/das-settings/template +++ b/srcpkgs/das-settings/template @@ -4,7 +4,7 @@ # Defaults go to /etc/xdg/das, which /etc/profile.d/das-xdg.sh puts in front of # /etc/xdg: stock Xfce files stay untouched and users' own changes still win. pkgname=das-settings -version=0.4.0 +version=0.5.0 revision=1 create_wrksrc=yes depends="das-theme lightdm lightdm-gtk-greeter xfce4-notifyd xfce4-panel @@ -25,6 +25,7 @@ do_install() { done vinstall "${FILESDIR}/bin/das-session-init" 755 usr/libexec/das + vinstall "${FILESDIR}/bin/das-panel-icon" 755 usr/bin vinstall "${FILESDIR}/autostart/das-session-init.desktop" 644 etc/xdg/autostart vinstall "${FILESDIR}/xinitrc.d/50-das-user-dirs" 755 etc/X11/xinit/xinitrc.d diff --git a/srcpkgs/das-shell/files/python/das_shell/banner_app.py b/srcpkgs/das-shell/files/python/das_shell/banner_app.py index 79024ca..0ce078b 100644 --- a/srcpkgs/das-shell/files/python/das_shell/banner_app.py +++ b/srcpkgs/das-shell/files/python/das_shell/banner_app.py @@ -667,7 +667,7 @@ class StartScreen(Screen): Binding("n", "new", t("Новий", "New")), Binding("a", "apply", t("Застосувати", "Apply")), Binding("delete", "delete", t("Видалити чернетку", "Delete draft")), - Binding("q", "app.quit", t("Вийти", "Quit")), + Binding("q", "app.quit", t("Вийти", "Quit"), show=False), ] def compose(self): @@ -767,6 +767,8 @@ class StartScreen(Screen): class BannerApp(App): TITLE = "dbanner" SUB_TITLE = t("вітальний банер при вході по SSH", "SSH login banner") + # Same quit key as dprompt; "q" stays as a hidden shortcut on the start screen + BINDINGS = [Binding("ctrl+q", "quit", t("Вийти", "Quit"))] def __init__(self): # The terminal's own 16 colors: the picture looks as it will at login diff --git a/srcpkgs/das-shell/template b/srcpkgs/das-shell/template index f8af9ed..d5c0a0e 100644 --- a/srcpkgs/das-shell/template +++ b/srcpkgs/das-shell/template @@ -1,7 +1,7 @@ # Template file for 'das-shell' # In-tree package: sources are in files/ (FILESDIR). pkgname=das-shell -version=0.3.0 +version=0.4.0 revision=1 create_wrksrc=yes hostmakedepends="python3" diff --git a/srcpkgs/das-theme/files/branding/das-trident.svg b/srcpkgs/das-theme/files/branding/das-trident.svg new file mode 100644 index 0000000..d00618c --- /dev/null +++ b/srcpkgs/das-theme/files/branding/das-trident.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/srcpkgs/das-theme/files/gtk/DasOS/gtk-3.0/gtk.css b/srcpkgs/das-theme/files/gtk/DasOS/gtk-3.0/gtk.css index 4fb8e75..62f45e4 100644 --- a/srcpkgs/das-theme/files/gtk/DasOS/gtk-3.0/gtk.css +++ b/srcpkgs/das-theme/files/gtk/DasOS/gtk-3.0/gtk.css @@ -13,6 +13,21 @@ border-top: 1px solid alpha(@panel_fg_color, 0.12); } +/* Symbolic panel icons (tray, volume, layout) come out pale grey on the light panel. */ +.xfce4-panel, +.xfce4-panel button, +.xfce4-panel image, +.xfce4-panel button image, +.xfce4-panel label { + color: #1f2430; + opacity: 1; + -gtk-icon-shadow: none; +} + +.xfce4-panel button:hover { + background-color: alpha(#1f2430, 0.1); +} + /* adw-gtk3 draws white desktop labels with a shadow, made for dark wallpapers. */ XfdesktopIconView.view { color: #1f2430; diff --git a/srcpkgs/das-theme/template b/srcpkgs/das-theme/template index 505dea2..ef0fe2d 100644 --- a/srcpkgs/das-theme/template +++ b/srcpkgs/das-theme/template @@ -1,7 +1,7 @@ # Template file for 'das-theme' # In-tree package: sources are in files/ (FILESDIR). pkgname=das-theme -version=0.1.0 +version=0.2.0 revision=1 create_wrksrc=yes hostmakedepends="go" @@ -35,5 +35,6 @@ do_install() { vinstall backgrounds/das-dark.svg 644 usr/share/backgrounds/das vinstall branding/das-logo.svg 644 usr/share/icons/hicolor/scalable/apps vinstall branding/das-logo.svg 644 usr/share/pixmaps + vinstall branding/das-trident.svg 644 usr/share/icons/hicolor/scalable/apps vlicense LICENSE }