From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1766498005; bh=J8QTGT5bQLoIdfMNQp1GLHuHGaYOg4XzcTEmSUbAkKY=; h=Date:From:To:Subject:From; b=mJPF6Y5e1ubgkjEW2vpbJ/OsVf+oTchpE+jLe+Q87+UNkMTxQtlk1a11qixZrwS5O Q3AZYXR+E2un0X64rtblX1A0Lc2KRJbjY+h0jWw7Ab0tZDjm0LM+6b4DeV6rl9jhDY ttY3I1LnVDOuF5YwTlUSiAnMQ11X3haWROPZ+pi+QQJbZCA1fZE+bpdpByoT3jd5MF erFbMfK3I3pzUC4BhkvIP8K3IHQZRs1xFNXgnDsOzuHjnQ9YO79mGSikfW/Im/Bec+ mEx2sC2BYN6cJEx1Skp/G5mF90SMv1whZgnAsCMAoCvzfgVT3dibBw7/LQdMMQzVKV W5MwRZEPhn+BA== Date: Tue, 23 Dec 2025 14:53:21 +0100 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Subject: [make-initrd] I: ncurses experiment X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Dec 2025 14:00:32 -0000 Archived-At: List-Archive: Привет! Я попробовал поэкспериментировать с текстовыми диалогами. Я держал в голове встраиваемые системы и make-initrd. Если использовать обычный в таких случаях dialog(1), то разным скриптам, его использующим, необходимо договариваться кто в данный момент владеет терминалом. Проблема усугубляется, если у системы serial или netconsole. Можно использовать screen/tmux для переключения клиентов терминала, но у этих мультиплексеров не всегда удобный API для переключений клиентов. Плюс приходится всё-равно думать кого в данный момент показывать. Я подумал, что можно упростить жизнь, если сделать диспетчер, который владел бы терминалом и параллельно отображал бы диалоги по запросам скриптов. Скрипт может послать запрос на создание диалога и либо заблокироваться и ожидать результат, либо продолжить заниматься своими делами и проверять состояние диалога. Диспетчер же берёт на себя сериализацию запросов (т.к. ncurses не поддерживает multithreads), переключение фокуса между диалогами, переключение пользовательского ввода, сохраняет и возвращает клиенту состояние диалогов. В принципе, это у меня получилось. Есть диспетчер и диалоги в виде плагинов. Есть немного документации и тестов. https://github.com/osboot/plainmouth -- Rgrds, legion