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/relaxed; d=kernel.org; s=k20260515; t=1792160424; bh=31zrVj/796RGBj7gtytHa+bPDu2Uob19fpdOANI9ccg=; h=Date:From:To:Subject:References:In-Reply-To; b=iGHxL1inTNsqlI2GUDyb/WPW0AbRnPGPXxqCGmmu1p5LiZH1Veuo7jt/sNPph/30+ A56fEkqU89KRXOyMec4rTLGLiWIVYmjGvHy5ke75ryUFYYV0s/XFxzU4ZSrpdjqjHd 9fGZzsMkkD7uUl5FqdjjDFtQ+cVljJDUb+DC2UJnQjb5imS/MlFnaBzpYcuoDV6rin O0grfqqZo9Sd2+7+E5ejpLDNVSQtMREHlRCL5bqxo/ii6LfLCoWMJhxNrBaXCZsq4C PUzy6nMHV56YoDNayFrxnca3DH0nMb7+ULV97Ge91web4/argw9L/GnJ2FHZwzgQRk oixCSlDtXwVEw== Date: Fri, 16 Oct 2026 16:20:20 +0200 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [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: Fri, 16 Oct 2026 14:20:28 -0000 Archived-At: List-Archive: On Tue, Dec 23, 2025 at 02:53:21PM +0100, Alexey Gladkov wrote: > Привет! > > Я попробовал поэкспериментировать с текстовыми диалогами. Я держал в > голове встраиваемые системы и make-initrd. > > Если использовать обычный в таких случаях dialog(1), то разным скриптам, > его использующим, необходимо договариваться кто в данный момент владеет > терминалом. Проблема усугубляется, если у системы serial или netconsole. > > Можно использовать screen/tmux для переключения клиентов терминала, но у > этих мультиплексеров не всегда удобный API для переключений клиентов. Плюс > приходится всё-равно думать кого в данный момент показывать. > > Я подумал, что можно упростить жизнь, если сделать диспетчер, который > владел бы терминалом и параллельно отображал бы диалоги по запросам > скриптов. > > Скрипт может послать запрос на создание диалога и либо заблокироваться и > ожидать результат, либо продолжить заниматься своими делами и проверять > состояние диалога. > > Диспетчер же берёт на себя сериализацию запросов (т.к. ncurses не > поддерживает multithreads), переключение фокуса между диалогами, > переключение пользовательского ввода, сохраняет и возвращает клиенту > состояние диалогов. > > В принципе, это у меня получилось. Есть диспетчер и диалоги в виде > плагинов. Есть немного документации и тестов. > > https://github.com/osboot/plainmouth Я несколько продвинулся в этом эксперименте. Я сделал плагины, чтобы создавать достаточно сложные интерфейсы. Теперь у меня есть аналог dialog(1) для некоторой совместимости. Я надеюсь попробовать сделать фичу для вывода диалогов через plainmouth. Надеюсь найду время. -- Rgrds, legion