Panel icons, trident menu button, Ctrl+Q in dbanner (0.9.4)
build / build (push) Successful in 29m33s
build / build (push) Successful in 29m33s
- Light theme: panel icons and labels are dark instead of pale grey.
- das-trident icon and das-panel-icon star|trident for the menu button.
- dbanner quits with Ctrl+Q like dprompt ("q" stays on the start screen).
- das-shell 0.4.0, das-theme 0.2.0, das-settings 0.5.0.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Das OS — що зробити далі
|
# 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-утиліти (готово, лишилися перевірки)
|
## Етап 5. Go-утиліти (готово, лишилися перевірки)
|
||||||
- [x] `das-update`: вікно, значок у треї (лише коли є оновлення), консольний режим `--cli`, знімок snapper pre/post, встановлення через pkexec, підказка про відкат.
|
- [x] `das-update`: вікно, значок у треї (лише коли є оновлення), консольний режим `--cli`, знімок snapper pre/post, встановлення через pkexec, підказка про відкат.
|
||||||
@@ -86,10 +86,13 @@ Live ISO без графіки з консольним інсталятором:
|
|||||||
- [x] Перевірено автором у консолі сервера: `dprompt` і `dbanner` з рамками `┌─┐` без квадратиків, кнопки `dbanner` видно повністю.
|
- [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] Аліаси й функції для 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 з локального репозиторію).
|
- [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] Перевірено автором на реальному сервері (0.9.1): банер `das-classic` з IP при вході по SSH, свій банер і `dbanner apply ukraine`, `dbanner apply dashboard` вмикає службу `das-banner` (погода й оновлення з'являються), запрошення Das і в SSH, і в консолі (`>` замість `╼`).
|
||||||
- [x] `ssh host cmd` виконується без банера (перевірено автором).
|
- [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`, ключ поза репозиторієм.
|
- [ ] Підпис через `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-сесії.
|
- [ ] Прибрати значки томів live-носія («Том 6,6 ГБ») з робочого столу live-сесії.
|
||||||
- [ ] Тема GRUB у встановленій системі (зараз стандартний чорний екран).
|
- [ ] Тема GRUB у встановленій системі (зараз стандартний чорний екран).
|
||||||
- [ ] Перевірити меню Whisker вручну.
|
- [ ] Перевірити меню Whisker вручну.
|
||||||
|
|||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Picks the icon of the menu button on the panel: das-panel-icon star|trident|<icon name>.
|
||||||
|
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 &
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
# Defaults go to /etc/xdg/das, which /etc/profile.d/das-xdg.sh puts in front of
|
# 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.
|
# /etc/xdg: stock Xfce files stay untouched and users' own changes still win.
|
||||||
pkgname=das-settings
|
pkgname=das-settings
|
||||||
version=0.4.0
|
version=0.5.0
|
||||||
revision=1
|
revision=1
|
||||||
create_wrksrc=yes
|
create_wrksrc=yes
|
||||||
depends="das-theme lightdm lightdm-gtk-greeter xfce4-notifyd xfce4-panel
|
depends="das-theme lightdm lightdm-gtk-greeter xfce4-notifyd xfce4-panel
|
||||||
@@ -25,6 +25,7 @@ do_install() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
vinstall "${FILESDIR}/bin/das-session-init" 755 usr/libexec/das
|
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}/autostart/das-session-init.desktop" 644 etc/xdg/autostart
|
||||||
vinstall "${FILESDIR}/xinitrc.d/50-das-user-dirs" 755 etc/X11/xinit/xinitrc.d
|
vinstall "${FILESDIR}/xinitrc.d/50-das-user-dirs" 755 etc/X11/xinit/xinitrc.d
|
||||||
|
|
||||||
|
|||||||
@@ -667,7 +667,7 @@ class StartScreen(Screen):
|
|||||||
Binding("n", "new", t("Новий", "New")),
|
Binding("n", "new", t("Новий", "New")),
|
||||||
Binding("a", "apply", t("Застосувати", "Apply")),
|
Binding("a", "apply", t("Застосувати", "Apply")),
|
||||||
Binding("delete", "delete", t("Видалити чернетку", "Delete draft")),
|
Binding("delete", "delete", t("Видалити чернетку", "Delete draft")),
|
||||||
Binding("q", "app.quit", t("Вийти", "Quit")),
|
Binding("q", "app.quit", t("Вийти", "Quit"), show=False),
|
||||||
]
|
]
|
||||||
|
|
||||||
def compose(self):
|
def compose(self):
|
||||||
@@ -767,6 +767,8 @@ class StartScreen(Screen):
|
|||||||
class BannerApp(App):
|
class BannerApp(App):
|
||||||
TITLE = "dbanner"
|
TITLE = "dbanner"
|
||||||
SUB_TITLE = t("вітальний банер при вході по SSH", "SSH login banner")
|
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):
|
def __init__(self):
|
||||||
# The terminal's own 16 colors: the picture looks as it will at login
|
# The terminal's own 16 colors: the picture looks as it will at login
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Template file for 'das-shell'
|
# Template file for 'das-shell'
|
||||||
# In-tree package: sources are in files/ (FILESDIR).
|
# In-tree package: sources are in files/ (FILESDIR).
|
||||||
pkgname=das-shell
|
pkgname=das-shell
|
||||||
version=0.3.0
|
version=0.4.0
|
||||||
revision=1
|
revision=1
|
||||||
create_wrksrc=yes
|
create_wrksrc=yes
|
||||||
hostmakedepends="python3"
|
hostmakedepends="python3"
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" viewBox="-115.25 0 230.5 230.5" fill="#ffd500" stroke="#2f6fde" stroke-width="7" stroke-linejoin="round" paint-order="stroke">
|
||||||
|
|
||||||
|
<!-- Trident, yellow with a blue outline so it reads on light and dark panels. -->
|
||||||
|
<path d="M5.985561 78.82382a104.079383 104.079383 0 0 0 14.053598 56.017033 55 55 0 0 1-13.218774 70.637179A20 20 0 0 0 0 212.5a20 20 0 0 0-6.820384-7.021968 55 55 0 0 1-13.218774-70.637179A104.079383 104.079383 0 0 0-5.98556 78.82382l-1.599642-45.260519A30.103986 30.103986 0 0 1 0 12.5a30.103986 30.103986 0 0 1 7.585202 21.063301zM5 193.624749a45 45 0 0 0 6.395675-53.75496A114.079383 114.079383 0 0 1 0 112.734179a114.079383 114.079383 0 0 1-11.395675 27.13561A45 45 0 0 0-5 193.624749V162.5H5z"/>
|
||||||
|
<path id="a" d="M27.779818 75.17546A62.64982 62.64982 0 0 1 60 27.5v145H0l-5-10a22.5 22.5 0 0 1 17.560976-21.95122l14.634147-3.292683a10 10 0 1 0-4.427443-19.503751zm5.998315 34.353887a20 20 0 0 1-4.387889 37.482848l-14.634146 3.292683A12.5 12.5 0 0 0 5 162.5h45V48.265462a52.64982 52.64982 0 0 0-12.283879 28.037802zM42 122.5h10v10H42z"/>
|
||||||
|
<use xlink:href="#a" transform="scale(-1 1)"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -13,6 +13,21 @@
|
|||||||
border-top: 1px solid alpha(@panel_fg_color, 0.12);
|
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. */
|
/* adw-gtk3 draws white desktop labels with a shadow, made for dark wallpapers. */
|
||||||
XfdesktopIconView.view {
|
XfdesktopIconView.view {
|
||||||
color: #1f2430;
|
color: #1f2430;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Template file for 'das-theme'
|
# Template file for 'das-theme'
|
||||||
# In-tree package: sources are in files/ (FILESDIR).
|
# In-tree package: sources are in files/ (FILESDIR).
|
||||||
pkgname=das-theme
|
pkgname=das-theme
|
||||||
version=0.1.0
|
version=0.2.0
|
||||||
revision=1
|
revision=1
|
||||||
create_wrksrc=yes
|
create_wrksrc=yes
|
||||||
hostmakedepends="go"
|
hostmakedepends="go"
|
||||||
@@ -35,5 +35,6 @@ do_install() {
|
|||||||
vinstall backgrounds/das-dark.svg 644 usr/share/backgrounds/das
|
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/icons/hicolor/scalable/apps
|
||||||
vinstall branding/das-logo.svg 644 usr/share/pixmaps
|
vinstall branding/das-logo.svg 644 usr/share/pixmaps
|
||||||
|
vinstall branding/das-trident.svg 644 usr/share/icons/hicolor/scalable/apps
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user