LINUX.ORG.RU

Сообщения gagarin0

 
Новости — Open Source

Kando 2.3.0 — кроссплатформенное радиальное меню

 , , , ,

Группа Open Source

Состоялся выпуск радиального виджета Kando menu версии 2.3.0.

( читать дальше... )

Большая часть кода проекта написана на TypeScript. Для работы требуется NodeJS.

>>> Видео, где автор сам показывает и рассказывает о новых возможностях версии 2.3.0

>>> Сайт проекта (kando.menu)

gagarin0
()
Форум — Admin

Упаковать бинарник в dmg пакет для macOS

 , ,

Здравствуйте, моя цель собирать rust исходники и из них создавать .dmg файл для установки в macOS в окружении linux.

С первым пунктом, собирать rust исходники, у меня проблем нет, а вот для создания .dmg пакета проблемы появились.

Сейчас делаю так (кусок из gitlab-ci.yml):

package:osx:
  stage: package
  image: ubuntu:24.04
  needs:
    - job: build-client:aarch64-apple-darwin
      artifacts: true
  rules: *rules-client

  script:
    - apt-get update && apt-get install -y xmlstarlet hfsprogs hfsplus p7zip-full
    - export PACKAGE_VERSION=$(grep ^version client/Cargo.toml | cut -d'"' -f2)
    - |
      export APP_NAME="Contextmenu"
      export DMG_NAME="$APP_NAME.dmg"
      export MOUNT_DIR="/tmp/$APP_NAME-dmg"
    - mkdir -p misc/package/osx/${APP_NAME}.app/{MacOS,Resources}
    - cp client/dist/contextmenu-client-macos-aarch64 misc/package/osx/${APP_NAME}.app/MacOS
    - cd misc/package/osx/
    - xmlstarlet ed --inplace   -u "/plist/dict/key[.='CFBundleVersion']/following-sibling::string[1]" -v "$VERSION"   -u "/plist/dict/key[.='CFBundleShortVersionString']/following-sibling::string[1]" -v "$VERSION" ${APP_NAME}.app/Info.plist
    - mkdir dmg-root
    - cp -vr $APP_NAME.app dmg-root/
    - ln -s /Applications dmg-root/Applications
    - dd if=/dev/zero of=$DMG_NAME bs=1M count=128 status=progress
    - mkfs.hfsplus -v "$APP_NAME" $DMG_NAME
    - mkdir -p $MOUNT_DIR
    - mount -o loop -t hfsplus $DMG_NAME $MOUNT_DIR
    - |
      cp -a dmg-root/. $MOUNT_DIR/
      sync
      umount $MOUNT_DIR
    - 7z l ${DMG_NAME}

  artifacts:
    name: "contextmenu-client-macos-aarch64-dmg"
    paths:
      - misc/package/osx/Contextmenu.dmg

На всякий случай привожу Info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <!-- App identity -->
    <key>CFBundleName</key>
    <string>ContextMenu</string>
    <key>CFBundleDisplayName</key>
    <string>ContextMenu</string>
    <key>CFBundleIdentifier</key>
    <string>com.contextmenu.client</string>
    <!-- Executable -->
    <key>CFBundleExecutable</key>
    <string>contextmenu-client</string>
    <!-- Versioning -->
    <key>CFBundleVersion</key>
    <string>1.86.4</string>
    <key>CFBundleShortVersionString</key>
    <string>1.86.4</string>
    <!-- Bundle type -->
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <!-- Platform -->
    <key>LSMinimumSystemVersion</key>
    <string>11.0</string>
    <!-- UI behavior -->
    <key>LSUIElement</key>
    <true/>
    <!--
    <key>CFBundleIconFile</key>
    <string>AppIcon.icns</string>
    -->
  </dict>
</plist>

На выходе я получаю валидный .dmg архив, но при установке в macOS, отображается ошибка пакет повреджен или что-то в этом духе.

У кого был опыт создания .dmg пакетов для macOS в Linux среде?

Подскажите куда копать, пожалуйста.

gagarin0
()
Новости — Open Source

Inferno64

 , inferno64, inferno-os,

Inferno64
Группа Open Source

Тихо и незаметно вышла распределенная операционная система Inferno64 – современная переработка классической ОС Inferno, ориентированная на 64-битные платформы (amd64/arm64) и запуск в том числе поверх Linux.

Проект позиционируется как «распределённая вычислительная среда нового поколения»: система объединяет разнородные устройства (старые ноутбуки, телефоны, десктопы) в единую peer-to-peer вычислительную сеть. В основе лежит классическая модель Inferno с файловым представлением ресурсов и протоколом 9P.

( читать дальше... )

>>> Сайт проекта (inferno64.org)

gagarin0
()
Галерея — Скриншоты

Работа с ip-адресами

 , , , kcl-lang

В последнее время приходится много «работать» с ip адресами, решил упростить себе жизнь.

Если в буфер обмена попадает IP адрес(а), то для него собирается метаинформация (геолокация, кому принадлежит) и отображается через меню.

При нажатии кнопки ping или traceroute, соответствующая команда вставляется в терминал

WM: Fvwm3

UI menu: kando

Посмотреть на исходники можно тут:

https://github.com/metacoma/mindwm-clipboard/

Из зависимостей требуется:

kcl-lang, kando, clipnotify, mmdblookup, ipcalc, xclip, xdotool, базы:

$ ls  geoip/
GeoLite2-ASN.mmdb  GeoLite2-City.mmdb

Видео: https://www.youtube.com/watch?v=UT5dbpUT8AA

Если будет желание попробовать - оформлю README как это можно запустить локально.

gagarin0
()
Форум — Development

Как отобразить интерактивное x11 приложение в X11 3D программе

 , ,

TLDR: https://github.com/collinalexbell/HackMatrix/raw/master/images/header_img.png

Всезнающий лор, ищу практической помощи (советов)

Я хочу написать 3D графическое приложение (X11), в котором можно отобразить окно графического терминала (lxterm, gnome-terminal, etc).

Как оно в теории работает, я примерно понимаю. Отрисовываем xterm в области вне экрана, запускаем тред с трансляцией пикселей в отрисованной области, внутрь нашего приложения

Как правильно прокидывать нажатия на клавиши и хоткеи в графическом приложении, чтобы они (нажатия) передавались терминалу ?

Как правильно перехватывать выделение текста в терминале? Например в терминале мне нужно скопировать вывод комнады в буфер обмена?

Мой главный вопрос, что посоветуете использовать для 3D движка (я не хочу изобретать велосипед) и как по «дешевому» пробросить внутрь 3D приложения терминал (или другое GUI приложение) с перехватом ввода, и кликов мышки.

Была попытка реализовать это на godot, почти получилось, но много подводных камней.

gagarin0
()
Форум — Linux-org-ru

Веб-чат для лора

 

Зарегистрированный пользователь с двумя (**) звездами и выше нажимает хоткей (Alt + ~)

Внутри браузера, сверху в низ, в стилье yaquake, показывается общий чат лора, в котором зарегистрированные пользователи могут между собой общаться.

В списке пользователей видны пользователи которые сейчас находятся на сайте

Так же можно сделать комнаты по «разделам форума» и комнаты для отдельных топиков

Если эта идея будет интересна, то я готов сделать MVP.

gagarin0
()
Форум — Linux-org-ru

Добавить кнопку модераторам «LLM formatting» для постов

 ,

Часто на форуме, я вижу топики, который представляют собой поток сознания оформленный в один длинный абзац без какого-либо форматирования.

Читать такое устаешь после третьего предложения.

Я предлагаю, для модераторского состава, добавить кнопку к каждому посту «LLM makdown formatting»

Результатом нажатия на эту кнопку является отправление содеражние поста в LLM с prompt который содержит запрос на форматирование текста в markdown

Хорошим примером является этот топик (абзац текста до редактирования автором)

Проблемы со звуком после установки новой ОС.

помечать топик тегом «LLM markdown» + скрывать оригинальный абзац текста как спойлер

и как пример нажатия на кнопку «LLM formatting»’

Проблемы со звуком после установки новой ОС. (комментарий)

gagarin0
()
Форум — Development

Распарсить текстовый файл. Задача** с двумя звездочками

 

Дано:

Тысячи текстовых файлов в которых могут содержаться, помимо текста, куски yaml,json,toml документов, base64 и прочего

Наглядный пример:

$ cat 1.txt
some amazing text data
another cool text line

spec:
  container:
     name: abc
another cool text line with many words
yeah, 42 42 42
{
   "foo": "bar",
   "user": "alice"
}
oh wait, here is another cool text line
and here! another text line
и еще немного текста, а потом

0J/QvtCy0YHRgtGA0LXRh9Cw0LLRiNC40YHRjCDRgdC70YPRh9Cw0LnQvdC+INC90LAg0LLQtdGH0L3QvtC5INC00L7RgNC+0LPQtQrQkdC10Lcg0YHQu9C+0LIg0YEg0YLQvtCx0L7QuSDQvtGB0L7Qt9C90LDQu9C4Cg==

и еще текст

задача* со звездочкой: я ищу готовые решения которые помогли бы определить что в файле есть кроме текста, json, yaml, toml, base64, etc документы

$ cat 1.txt | magicfile
application/yaml
application/json
application/base64

задача** с двумя звездочками: «вычленить» эти документы из текстового файла, что-то в духе

$ cat 1.txt | magicextract 
json: | 
{
   "foo": "bar",
   "user": "alice"
}
     
yaml: |
  spec:
    container:
       name: abc

base64: |
   0J/QvtCy0YHRgtGA0LXRh9Cw0LLRiNC40YHRjCDRgdC70YPRh9Cw0LnQvdC+INC90LAg0LLQtdGH0L3QvtC5INC00L7RgNC+0LPQtQrQkdC10Lcg0YHQu9C+0LIg0YEg0YLQvtCx0L7QuSDQvtGB0L7Qt9C90LDQu9C4Cg==

я смотрю в сторону ast-grep и написания кастомных правил, либо запуск neovim, и через remote API подсовывать ему эти файлики и через LSP сервера попробовать вычленить куски документов.

В идеале нужно что-то в духе apache-tika, которому можно скармливать документ(1.txt,2.txt) и на выходе получать распарсенные куски json,yaml,etc документов

Всезнающий ЛОР в какую сторону копать? последним вариантом я рассматриваю написание очередной неинтересной программы которая бы их парсила, но я уверен что есть готовые решения

gagarin0
()

RSS подписка на новые темы