LINUX.ORG.RU

Избранные сообщения th3m3

Галочка, ты сейчас умрешь!

Форум — Talks

Многих (немногих (меня)) пользователей Firefox сильно раздражало отсутствие поддержки Gtk4. Как это проявлялось? В основном, в диалоге открытия файла: диалог Gtk3 не поддерживал миниатюры, но самое главное, поиск в нем был ООООООООЧЕНЬ медленный. Медленный до безобразия. Открыть в нем файл, используя поиск было тем еще квестом. Эти проблемы были решены в Gtk4. Который Firefox пока не поддерживает.

Long story short:

about:config

# меняем 2 на 1
widget.use-xdg-desktop-portal.file-picker: 2->1

Теперь Фокс открывает диалог из Gtk4. Это сильно повысило комфорт использования браузера лично для меня и я подумал, что это должны знать остальные.

Проверено в Gnome, Fedora 39.

Спасибо за внимание.

p.s. Модераторы, добавьте тег gtk4, есть только gtk3.

 ,

MoldAndLimeHoney
()

Берусь переписывать CCleaner

Форум — Talks

Здаровчик, котаны! Проснулись? Я уже с 6:40 в офисе и на свежую голову пришла бредовая идея.

Первый в истории прецедент блокирования использования ПО в стране: Avast и AVG запрещают использовать свои ПП в РФ!

Прочитав эту новость, решил обсудить актуальность и что можно будет чистить в лялихе? Писать буду на Qt5/Qt6. Хочу начать с линуховой части, так как мне кажется это будет проще сделать. В оффтопике ясно там все TEMP'ы по переменным окружения чистить и реестр, а что чистить у нас в онтопике? Версия будет и для Mac'а ессно. Как всегда будет кросссборка, собирать буду всё сам.

 , , , ,

xwicked
()

Каким образом ставить библиотеки Python

Форум — General

Я использую arch linux и у меня есть 2 способа установки библиотек python, то есть я могу поставить pygame через sudo pacman -S python-pygame и pip install pygame. Так какой способ лучше ? Просто я слышал, что если ставить библиотеки через pip, то при обновлении могут возникнуть проблемы.

 , , , ,

pcoder
()

Игра в браузере на Xorg лагает, а на Wayland такого не было

Форум — Desktop

Периодически играю в CS на сайте и после переезда на МАТЕ заметил неприятную особенность. В KDE под Wayland игра просто летала, управление было острейшим, любые движения мышью давали мгновенный отклик с мгновенным перемещением фокуса, хоть как мышь верти. Сейчас, в МАТЕ под Xorg появилась ватность - маааааленький такой лаг между движением мышью и реакцией игры. Особенно заметно при резких поворотах на 90 и более градусов - тогда маааааленький лаг превращается в прямо таки очевидное тормозилово.

Сами понимаете, играть в шутан при таких условиях тяжеловато.

Проверял в Brave (обычно на нём и играю), Хромиуме и Firefox. Настройки Brave обнулял полностью, включал-выключал разные флаги, касающиеся GPU и графики - без толку.

Что ещё можно сделать?

 , , ,

alex1101
()

Как я переехал на GTK-окружение после 15 лет в KDE

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

Захотелось мне оформления в стиле Nimbus, который был в Solaris, а в KDE его воссоздать оказалось нереально. Поэтому я просто взял и перешёл на GTK-окружение, имея 15 лет KDE в анамнезе (эпизодически использовал с KDE 3.2, постоянно — с KDE 4.1.4). Наверное, это самая идиотская причина смены DE и тулкита, претендую на медаль 😁

Перепробовал всё более-менее некрасноглазое на GTK, начиная с Gnome 42 и заканчивая LXDE. Остановился на MATE. Внезапно, это вполне функциональная настольная среда, которая сформировалась в процессе развития Gnome 2, так что все или почти все банальные вещи в UI/UX тут реализованы. И всё это наследие Gnome 2 неспешно эволюционирует: МАТЕ уже давно использует GTK3 и сейчас внедряет поддержку Wayland.

Как видно по скриншотам, Nimbus жив! После засилья плоскоты, прозрачностей и стерильности смотреть на вот это всё просто кайф. Хотя, может, тут новизна играет роль, но меня МАТЕ пока устраивает вполне. Этот переход оказался интересным опытом, поделюсь некоторыми наблюдениями:

  • Не знаю насчёт Gnome и Cinnamon, но МАТЕ намного проще устроен, чем KDE 5. Если мне нужны заметки с органайзером и контактами — я запускаю Osmo и просто делаю заметки, смотрю-добавляю контакты и сверяюсь с планами. Просто, представьте себе, открываю приложение и добавляю контакт, а не сижу выбираю хранилище, категорию записи и прочую техническую трахомудию, как в монструозных KDE-приложениях типа Kontact. Офигенное ощущение, скажу я вам! Никаких сраных единых систем хранения данных, которые то и дело отваливаются, мне блин не нужна МОЩЬ, которая принимает тысячу контактов в секунду от разных приложений одновременно и синхронизирует их с какой-то промышленной вундервафлей, мне нужна элементарная локальная программулька для удобной записи контактов, мать вашу!
  • Это капец как печально, но похоже, что софт на Qt больше не вариант. Почему? Он ТОРМОЗИТ. Если GTK-приложения в МАТЕ на моём компе запускаются мгновенно, то Qt-программы запускаются так: мгновенно появляется рамка окна, отрисованная МАТЕ-шным оконным менеджером, и ПРИМЕРНО ЧЕРЕЗ СЕКУНДУ в этой рамке появляется содержимое окна, отрисованное Qt. Так происходит и с Kvantum, и с Breeze, и с Fusion, без разницы. Я сначала подумал, что это глюк конкретно моей инсталляции, но потом понял, что Qt-приложения всегда так запускались и в KDE тоже. После запуска отрисовка быстрая и плавная, но вот сам запуск ворочается тяжело, особенно если прога на QML. Всегда чувствовался небольшой разрыв между действием пользователя и реакцией KDE/Qt. Просто сейчас это стало особенно заметно. А GTK, даже в своей жирненькой третьей версии, реагирует мгновенно. Почему так?
  • А печально без Qt вот почему: внезапно обнаружил, что в репозиториях Manjaro большинство GUI-приложений — на Qt. Пытался, например, подобрать Markdown-редактор на GTK, а они почти все на Qt. На GTK только штуки три или четыре, да и те с CSD (клиентские декорации в МАТЕ выглядят чмошно). Практически все читалки, умеющие FB2, тоже на Qt. Аналога KeePassXC на GTK не нашёл, может кто подсказать?
  • Почему линуксоиды хейтят dconf, он же «гномореестр»? По-моему, настройки в бинарном файле это удобно! Во-первых, разработчикам не нужно впиливать каждую настройку в GUI, когда есть одно известное место, где хранятся настройки в читабельном виде, и в которые можно тыкать мышкой. Во-вторых, благодаря dconf любую настройку можно изменить через консоль. В-третьих, выбирать из бинарного файла нужные данные намного быстрее и стабильнее, чем парсить кучу текстовых конфигов, как делает KDE. Тем более, в случае KDE там не куча, а ХРЕНОВА ГОРА текстовых конфигов, в итоге KDE даже на топовых конфигурациях загружается по 5 секунд.
  • Кстати о настройках. Их в МАТЕ мало, конечно, если сравнивать с KDE. Зато это реально нужные настройки, которые тебе могут понадобиться в первые же минуты или дни. В KDE же у тебя миллион настроек, где самые актуальные и самые редкие бездумно перемешаны и распиханы по извилистым путям, так что привести среду в удобный вид — подвиг уровня расчистки авгиевых конюшен.
  • Есть ли экономия системных ресурсов на МАТЕ? Сложно сказать. Процессор стал меньше напрягаться, судя по звуку кулера. Но оперативку МАТЕ ест охотно, на скриншоте видно, что только Caja и Xorg потребляют по 200+ МБ каждый. Со старта у меня среда занимает 800-900 МБ оперативки. С другой стороны, системный монитор МАТЕ берёт самую «пессимистичную» цифру, потому что в целом показывает занятой оперативки на 200 с лишним МБ больше, чем KDE-шный KSysGuard (сравнивал на старой системе с KDE).

В итоге: у меня удобная рабочая среда, которая стартует и выключается стабильно за секунду времени, и которая мгновенно реагирует на мои действия, будто *box какой-то. И которая не выглядит как кислотный приход. Ещё и шрифты, по-моему, чётче стали, чем было в KDE.

Хз, как после этого возвращаться на KDE. Наверное, я и не буду. Осталось дождаться переезда МАТЕ на Wayland и больше нечего будет желать, кроме исправления мелких багов — их в МАТЕ достаточно, увы. Местами нет перевода на русский (я заодно решил перекатиться и на русскую локаль), пара апплетов для панели неюзабельна (глючат и жрут оперативку), системный монитор не сохраняет часть настроек. Ну и косметические недоделки — например, индикатор раскладки в системном лотке слишком мелкий. В общем, есть над чем работать, и я надеюсь, над МАТЕ будут работать.

Сейчас раздумываю, стоит ли заменить оконный менеджер на Compiz, чтобы получить «горячие» углы экрана, или забить и пользоваться дальше традиционными переключателями окон и рабочих столов. За эти несколько дней я уже привык к ним, хотя пальцы порой машинально кидают мышь в угол экрана.

На первом скриншоте: muPDF и Abiword. Оконный менеджер Marco умеет примитивный тайлинг, можно раскидывать окна мышью. Тема иконок: Nimbus + Mate с папками из Yeti Box. Можно ещё отключить рамку окна для полноэкранного режима, но меня прикалывает этот градиент, как на скрине с Firefox. Тему Nimbus устанавливал из AUR.

>>> Просмотр (5120x2880, 4086 Kb)

 , ,

alex1101
()

FireJail — краткое и ознакомительное практическое руководство

Статьи — Desktop
FireJail — краткое и ознакомительное практическое руководство

Сейчас существует прорва механизмов изоляции приложений — от песочниц до виртуальных машин. Целей их применения тоже множество, но так или иначе всё сводится к тому что нужно ограничить доступ приложений к тем или иным ресурсам вычислительного устройства.

Ниже я хочу описать почти золотую середину в лице утилиты firejail в виде практических советов по использованию в первую очередь для обычных пользователей и (возможно) разработчиков.

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

 , , , ,

LINUX-ORG-RU
()

Ubuntu Sway Remix

Форум — Linux-install

Из-за отсутствия Ubuntu с предустановленным и приготовленным Sway решил создать свою сборку с помощью Cubic, но меня опередили: Ubuntu Sway Remix (скриншот) (GitHub). Ещё большим удивлением для меня было то, что создателем USR (Ubuntu Sway Remix) оказался Sunderland93 (YouTube канал)!

В загрузчике текст «слоится», один накладывается на другой. После загрузки открывается установщик Calamares, под которым справка по использованию Sway. Сам Calamares без рекламы этого дистрибутива во время установки.

Установка долгая, как и включение и выключение компьютера.

  • Установил на SSD c шифрованием. При запуске выкидывает в shell initramfs с ошибкой: Cannot process volume group luks и ALERT! /dev/mapper/luks-... does not exist. :D

  • Без шифрования всё нормально, без kernel-паники.

  • После установки в BIOS’е появляется загрузочная запись «ubuntusway».

  • После загрузки - терминал. Дисплейный менеджер, видимо, отсутствует greetd показывает пустой терминал.

Интерфейс большинства входящих приложений - TUI или минималистичный GUI, за исключением Firefox, Thunderbird, Azote, GIMP, LibreOffice и Synaptic.

  • Размер шрифта в терминале огромный, в 2 раза больше чем в Sway.

  • Заголовки окон «плавающих» приложений (Floating Apps) маленькие, текст на них маленький, шрифт консольный (возможно, это Hack/Monospace), текст не видно.

Звук выводится через Pulseaudio. В будущем, возможно, с следующим релизом Ubuntu, будет Pipewire.

Переключение раскладки по Caps Lock. Выбешивает. Поставил Ctrl + Space.

По производительности:

  • 600MB из 4GB оперативной памяти используется. 0B Swap’а.

  • Всего 166 задач. Дистрибутив загружается ну очень долго (хотя, наверно, это свойственно всему семейству Ubuntu). Выход из сна нормальный, сам сон работает отлично.

  • Раскладка переключается быстро, без задержки.

  • Меню приложений долго открывается и закрывается. После нажатия задержка в 2,5 секунды.

Waybar в Sway включает в себя:

Меню приложений (nwg-drawer. По нажатию на клавишу [mod] меню не открывается. Только мышка, только хардкор), виртуальные рабочие столы (по-умолчанию только один), название запущенного приложения (нельзя было сделать глобальное меню?), глаз (не знаю что он делает, но выглядит как переключатель WiFi и Bluetooth), индикатор клавиатуры, потребление CPU, потребление ОЗУ (по иконке не сразу понял, что это), индикатор аккумулятора, индикатор сети (WiFi работает), индикатор звуковых устройств (ввода и вывода), индикатор показа даты и времени.

  • Если несколько раз нажать на индикатор, вместо ожидаемого скрытия, то несколько раз откроется приложение, отвечающее за это действие.

Приложения, входящие в USR (GitHub):

Azote, Autotiling, Cliphist, Firefox, Flatpak, Foot, Gimp, Gparted, Greetd, Grimshot, htop, Kanshi, Khal, LibreOffice, Neovim, Pavucontrol, Pluma, Poweralertd, Pulsemixer, Swayimg, Ranger, Thunar, Thunderbird, Tuigreet, nwg-wrapper, nwg-drawer, Ubuntu Driver Manager, Waybar, Wdisplays, wf-recorder, wlr-randr, Zathura.

  • Neovim дефолтный, установлен вместе с Vim.

  • Изображения смотреть можно с помощью Swayimg, а документы с помощью Zathura. IMHO, оба приложения ужасны.

  • Рабочий стол пустой, без иконок, только фоновая картинка рабочего стола. Эту картинку (обои) можно легко поменять с помощью Azote. IMHO, к убогим конфигам Sway прикрутили менее убогий Azote, спасибо.

  • Pavucontrol не задействуется. Вместо этого открывается консольный pulsemixer. Если регулировать звук, используя соответствующие клавиши на клавиатуре, то визуально будет отображаться громкость звука (WOB).

    • Громкость можно опустить до 0% и поднять до 150%.
  • Веб-браузер по-умолчанию - Firefox. Прям представляю, как удобно работать с Firefox’ом, не используя мышку. Можно было добавить Vimb или Qutebrowser.

  • Snap’а нету, в Ubunt’е! По-умолчанию используется Flatpak без включённого репозитория Flathub. Добавил Flathub, установил Google Chrome следующей командой в терминале: sudo flatpak install flathub com.google.Chrome. Жалко, что Автор Ubuntu Sway Remix от snap’а отказался.

Конфигурационные файлы USR (GitHub)

Скачать (HTTPS, 1.87GB, SHA256)

Обзор (YouTube)

Репозиторий проекта (GitHub)

Перемещено hobbit из general

 , ,

TagMoon
()

Плата на aliexpress из рф

Форум — Talks

Всем привет. Подскажите пожалуйста, как на данный момент - можно ли платить на алике создав виртуальную карту QIWI? «Обычную» (не через карту) оплату недавно прикрыли, а работает ли так? Мне нужно зарегиться, верифицироваться, влупить бабла и только потом узнать, что всё зря, слишком сложно.

 

kvpfs
()

Выпущены аудио- и MIDI-плагины LSP Plugins 1.2.0

Новости — Мультимедиа
Выпущены аудио- и MIDI-плагины LSP Plugins 1.2.0
Группа Мультимедиа

Выпущен релиз плагинов LSP Plugins 1.2.0, предназначенных преимущественно для сведения и мастеринга аудиозаписей. Плагины поставляются в версиях LV2 и VST2.

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

>>> Подробности

 ,

sadko4u
()

Простая программная генерация видео и картинок без стороннего API

Форум — Development

Покажу простой способ генерации видео программами на Python и C/C++ без использования стороннего API. Вам так же потребуется ffmpeg, без него вы не сможете конвертировать файлы в читаемые форматы!

Зачем это нужно?

Можно экспериментировать, например вы можете создать видео максимального качества и проверять как оно будет эффективно сжиматься тем или иным видео кодеком. Можете даже создать картинку с градиентом в 64-битном цвете и с дизерингом, мало ли какие ещё извращения можно придумать. Можно ещё делать видео с быстро движущимися объектами и сохранять его в 1000 кадров в секунду и потом тестировать всякие интерполяторы движения и моушн блюры.

Способ 1: на Python

С помощью скрипта на Python можно создать видео. Просто сохраните этот код в какой-нибудь «main.py»

import os
import sys

state = 0; # переменная нужная для анимации смещения узора
w = 320 # ширина кадра
h = 240 # высота кадра
fps = 25 # кадров в секунду
duration = 2 * fps # сколько длится видео (2 сек)
buffer = bytearray(w * h) # для хранения данных кадра
# генерация кадров
while state < duration:
  for y in range(0, h):
    for x in range(0, w):
      buffer[y * w + x] = ((x + state) ^ y) % 256 # генерация узора
  os.write(sys.stdout.fileno(), buffer) # кадр записывается в вывод консоли
  state += 1 # немного сдвинуть узор в следующем кадре

Далее исполняете команду в консоли:

python main.py | ffmpeg -y -f rawvideo -pixel_format gray -video_size 320x240 -framerate 25 -i pipe: out.mkv

В результате у вас получится двухсекундное видео с узором out.mkv. Посмотреть демо гифку

Как это работает?

В командную строку Linux можно выводить не только текст, но и бинарные данные файлов, а так же эти данные можно перенаправлять в другую программу, в данном случае это ffmpeg который принимает RAW кадры и конвертирует их в видео. И в коде и в команде вызова должны совпадать fps/framerate и video_size/w/h иначе всё разъедется. Нельзя просто взять и написать данные пикселей в консоль через print, нужно записывать их в stdout как в файл через os.write. Если в коде изменить duration на 1, то создастся только один кадр с узором и его можно сохранить как картинку так:

python main.py | ffmpeg -y -f rawvideo -pixel_format gray -video_size 320x240 -i pipe: out.png

Способ 2: на C/C++

Конечно Питон это медленно и я покажу как сделать это на C и C++, в этих языках стандартный поток вывода stdout тоже считается файлом и в него можно записывать бинарные данные.

C++

#ifdef WIN32 
  #include <fcntl.h>
#endif
#include <cstdio>
#include <iostream>
#include <cstdint>
#include <vector>

int main() {
  constexpr size_t fps = 25;
  constexpr size_t w = 320;
  constexpr size_t h = 240;
  constexpr size_t duration = fps * 5;
  constexpr size_t size = w * h;
  auto buffer = std::vector<uint8_t>(size);
  size_t state = 0;
#ifdef WIN32 
  setmode(fileno(stdout), O_BINARY);
#endif

  while (state < duration) {
    for (size_t y = 0; y < h; ++y)
    for (size_t x = 0; x < w; ++x)
      buffer[y * w + x] = (((x + state) ^ y) + state) % 256u;
    ++state;
    std::cout.write(reinterpret_cast<char*>(buffer.data()), size);
  }
}

Сборка и запуск:

g++ -Wall -O2 main.cpp -o prog
prog | ffmpeg -y -f rawvideo -pixel_format gray -video_size 320x240 -framerate 25 -i pipe: out.mkv

C

#include <stdio.h>
#include <stdint.h>
#include <fcntl.h>
#include <malloc.h>

typedef uint8_t byte;

int main() {
  const int fps = 25;
  const int w = 320;
  const int h = 240;
  const int duratuion = fps * 5;
  const int size = w * h * sizeof(byte);
  byte *buffer = (byte*)malloc(size);
  int state = 0;
  freopen(NULL, "wb", stdout);

  while (state < duratuion) {
    for (int y = 0; y < h; ++y)
    for (int x = 0; x < w; ++x)
      buffer[y * w + x] = (((x + state) ^ y) + state) % 256;

    fwrite(buffer, 1, size, stdout);

    ++state;
  }

  free(buffer);
}

Cборка и запуск:

gcc -Wall -O2 main.c -o prog
prog | ffmpeg -y -f rawvideo -pixel_format gray -video_size 320x240 -framerate 25 -i pipe: out.mkv

Как сохранить в FFmpeg видео в полном качестве

Я специально не указывал выходной видео кодек для упрощения команд, но вы можете добавить в ffmpeg опции -vcodec libx264rgb -crf 0 для сохранения видео в lossless качестве. Если вы модернизируете программу и добавите в неё поддержку RGBA цвета, то помните что h264 не умеет сохранять прозрачность в кадрах и вам лучше использовать кодек FFV1.

Что ещё можно сделать

  • Можно сгенерировать видео на любом языке программирования, если на нём можно переключить стандартный вывод в бинарный режим.
  • По такой же логике можно и перенастроить поток ввода stdin в бинарный режим и передать в программу бинарные данные из ffmpeg, таким образом можно будет смастерить видео-фильтр. В общем надо сделать что-то типа того: ffmpeg | фильтр | ffmpeg. Вообще можно просто написать Frei0r фильтр на Си и использовать его в ffmpeg, но мой способ просто не требует никакого стороннего API.
  • Поток можно перенаправлять и в файл и потом этот файл скармливать ffmpeg’у, но учтите что видео будет совсем без сжатия и несколько секунд видео 1280x720 будут весить гигабайты. Сделать это можно так:
prog > video.dat
fmpeg -y -f rawvideo -pixel_format gray -video_size 320x240 -framerate 25 -i video.dat out.mkv
  • Раз можно сгенерировать сырое видео, то можно и создать сырой PCM звук и конвертировать его в аудио форматы. Можно например генерировать мелодии и сохранять их в pcm_s16le поток. Опять же переключив stdin в pipe режим вы можете получать аудио поток извне, обрабатывать его своей программой и передавать далее, таким образом у вас получится аудио фильтр и не надо никакого VST/LADSPA API.

Заключение

Это очень простой способ создания видео (для программиста). Если что, в ffmpeg уже встроены некоторые генераторы тестовых видео. Сохраняются ли гигабайты сырых кадров в оперативной памяти при использовании такого способа передачи или же на диске - мне это неизвестно, возможно что у такого способа есть какие-то ограничения на размер передаваемых данных. Помните что в передаваемом потоке данных нет никаких меток синхронизации и если что-то где-то потеряется в пути, то видео всё станет кашей, так что не пытайтесь передавать такой поток через net cat (я не пробовал).

 , , , ,

HPW-dev
()

Geeqie-1.7

Новости — Мультимедиа
Группа Мультимедиа

17 января 2022 года была выпущена новая версия просмотрщика изображений Geeqie. Это быстрая и легковесная программа, использующая библиотеку GTK-3 (сохраняется возможность сборки с GTK-2).

В новой верcии:

  • добавлена поддержка формата изображений JPEG XL;
  • добавлена поддержка архивов (например, *.zip);
  • поиск дубликатов изображений сделан многопоточным;
  • в контекстное меню добавлена команда копирования изображения в буфер обмена;
  • добавлена поддержка AppImage;
  • цвет фона теперь берётся из системной темы;
  • множество мелких улучшений и исправлений.

>>> Подробности

 

anarquista
()

Чего ждать в 2022 году

Форум — Talks

У меня тут, короче, вышел обзор главных событий 2021 и прикидки на 2022 по основным проектам, таким как GIMP, Inkscape, Kdenlive, Olive, Ardour и т.д. Размером примерно с «Войну и мир». Практически во всех случаях текст авторизован самими разработчиками, так что без фуфла :) На русском не было и не будет, сорян.

Из интересненького:

  • Ardour 7 грозятся зафиналить уже в этом году, прямо гарантируют. Самая заметная фича — запуск клипов в стиле Ableton Live.
  • Zrythm портанули на GTK4 и сразу на libadwaita, с использованием аппаратного ускорения. Релиз анонсировали буквально вчера. Там ещё разные интересные фичи.
  • Audacity скорее всего выпустит в этом году 3.2 с недеструктивными эффектами (VST3).
  • Ожидается релиз нотного редактора MuseScore 4 с перефигаченным интерфейсом и возможностью подключать как свой закрытый движок воспроизведения нот (будет качаться отдельно), так и любые инструменты VST3.
  • За прошлый год вышло два крутых синтезатора, VCV Rack 2 и Bespoke Synth. Команда Surge выпустила ещё один проект, до того проприетарный — монофонический синтезатор Monique, а на январь планирует релиз Surge XT (на базе JUCE).
  • За 2021 год PipeWire очень неслабо вломил и в принципе уже хорошо работает как полная замена пыщпыщаудио. С приложениями на JACK остаются кое-какие проблемы, но разработчик пайпвайра серьёзно относится к профикам, поэтому стоит ждать, что всё будет только лучше.
  • Inkscape, кажется, переехал на схему «один крупный релиз в год». Весной ожидается версия 1.2 с поддержкой многостраничности, динамическими направляющими и лёгкими улучшениями интерфейса.
  • Весь модный архитектурный стек (BlenderBIM, Homemaker, Topologic, IfcOpenShell) очень бодро развивается.
  • Команда Krita щас медленно приходит в себя после пятилетнего марафона работы над 5.0. Много интересных планов, пока не расставили приоритеты на год.
  • Выход GIMP 3.0 в этом году никто не гарантирует, но как минимум вместо одного разработчика уже два готовы допиливать (и допиливают) недостающие части порта на GTK3.
  • У darktable случатся релизы 4.0 и 4.2, цикл разработки только начался, пока мало известно.
  • В горизонте месяца отрелизится Siril 1.0 (привет астрофотографам).

https://librearts.org/2022/01/2021-recap-2022-preview/

 

AP
()

ZeroNet — p2p платформа хостинга сайтов и соцсеть

Форум — Development

ZeroNet — это децентрализованная платформа для создания веб-приложений (сайтов), работающих в браузере и использующих приложение самой ZeroNet в качестве бекэнда. Можно выделить основные особенности платформы:

  • Хранение данных осуществляется в простых текстовых файлах (JSON) с кэшированием в sqlite для быстрого доступа. Кроме JSON, разумеется, возможно также использование любых текстовых или бинарных форматов, но уже без поддержки автоматического построения таблиц sqlite.
  • Все данные подписаны ключами своих авторов, таким образом подделать авторство сайта невозможно. Также невозможно модифицировать чужой сайт.
  • Сайты хранятся по принципу торрента — любыми заинтересованными участниками сети. Отключить сайт, выведя из строя какой-либо сервер, невозможно.
  • Сайт остаётся работоспособен даже если остался на единственном узле или если компьютер посетителя сайта вообще отключен от интернета.
  • Если связи нет, можно продолжать работу с сайтом в обычном режиме: писать посты в блог, комментарии на форум и т.п. При появлении связи данные будут синхронизированы автоматически.
  • Передача данных между пирами осуществляется напрямую через IP-соединения и/или через Tor на усмотрение пользователя.
  • Первичный поиск пиров для сайта выполняется на трекерах собственного типа, либо на произвольных торрент-трекерах по всему миру. После установления связи, узлы обмениваются списками пиров и известных трекеров между собой.

Теперь к сути вопроса.

Апстрим проекта в настоящее время находится в стагнации. Судьба главного разработчика, имевшего право подтверждать пулл-реквесты, туманна. То ли он просто забил на проект. То ли с ним что-то случилось.

Активной разработки не ведётся уже более полугода. Изредка кто-то подтверждает мелкие PR, а значит, у кого-то всё же есть доступ к его учетной записи. На этом основании можно строить разные коспирологические теории, но мы сейчас не об этом.

Я взялся рефакторить код ядра и планирую выпуск форка, продолжающего развитие в заданном русле и закрывающего многие долгоиграющие недоработки.

Текущий драфт ченджлога можно посмотреть здесь: https://github.com/zeronet-enhanced/ZeroNet/blob/massive-rework/ZNE-ChangeLog/ChangeLog-0.8.0.md

Всё, что там описано, уже реализовано. Впереди еще многое другое.

Всех заинтересованных лиц призываю присоединиться к работе.

 , ,

wandrien
()

Федеративность vs P2P

Форум — Talks

Простите, но я тут снова с дебильными мыслями. Пока вся прогрессивная общественность упарывается по федеративности, я честно пытаюсь вникнуть в предложенное.

Фундаментом нашего объединения является идея, изложенная в эссе «Protocols, Not Platforms»

И именно поэтому существует целый выводок реализаций как раз движков-платформ. Я и правда не понимаю, какое дело конечному пользователю будет до протокола, если он взаимодействует с конкретной платформой, к которой привязана его учётка. Код исполняется не на его машине и не под его контролем. Данные пользователя подконтрольны не ему, а черт знает кому. То, что там будет СПО, абсолютно параллельно. Суть СПО не святости концепции, а в том, чтобы знать, что за код работает с твоими данными. Не тот случай.

Возможно, ты используешь Mastodon неправильно

А может быть, всё проще, и это Mastodon спроектирован неправильно.

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

Mastodon нам предлагает сначала побродить поискать сервер по интересам, а потом уже там регистрироваться. А если сервер вас не устроит, то идти и регистрироваться в другом месте. Спасибо, конечно. Но мне хотелось бы обойтись без раздвоения личности при управлении своими данными и учетными записями.

Что мешало сразу сделать дизайн, в котором пользователь — это универсальный криптографический ключ, не прибитый к платформе? А кружки по интересам… просто кружки по интересам!

Внутренняя политика […] Рассмотрим какой-нибудь инстанс. У него есть внутренняя политика. Она регулирует то, что происходит в стенах этого инстанса, между его пользователями. К ней относятся правила поведения, на каждом инстансе они свои. Регистрируясь на конкретном инстансе, ты соглашаешься с его конкретными правилами.

Проблема не в том, что в «тематической группе» (назовём это так) есть правила поведения. Проблема в том, что эта группа претендует на то, чтобы быть оператором моих данных, а не просто принуждать меня к правилам для участия в группе. Сам я в сети ничего собой не представляю. За меня всё делает сервер. Как самостоятельная единица в сети федерации я не существую. Пользователь как был бесправным в Фейсбуке, так и остался.

И если раньше админ группы в Фейсбуке был ограничен во власти по отношению к участникам группы средствами самого Фейсбука, то теперь «админ группы» обладает полной властью вместо Фейсбука.

А как известно, тираны в маленькой стране намного опаснее для жителей, чем тираны в большой.

Внешняя политика […] Тут, конечно, начинаются всякие страсти. Это комплекс всего, что происходит при общении между серверами. К вам, как гражданину своего инстанса, внутренней политикой скорее всего приставлен долг не порочить честь своего сообщества на междусерверной арене. […] Глушение. […] Отклонение медиа. […] Блокировка.

Тут тоже всё, мать вашу, прекрасно. Сеть, спроектированная порождать страсти и бурления, их и порождает. Раздолье для маленьких царьков, которым выдалась возможность поуправлять паствой и поучаствовать в «международных» отношениях. Глушения, блокировки, честь сервера и скрепы. Пойду лучше проголосую за Путина.

Да, и наконец, мне скажут типа: просто подними свой сервер, и своими данными управлять будешь только ты. Во-первых, не только я. Любому серверному приложению необходим хостинг с белым IP. А во-вторых, вот только технически это решение ничем не отличается от старого доброго блога на вордпресс и ленты RSS для экспорта всем желающим. Изобретение нового мира вышло каким-то… неубедительным.


В общем, я такой человек, который во всём найдёт изъяны. С ходу могу вспомнить только три примера, когда дизайн продукта меня полностью устраивал при знакомстве. Первый был, когда я познакомился с Ruby. Второй, когда открыл для себя Docker. И третий, когда увидел обновленный JS с let, const и стрелками.

Но конкретно тут… ребята, я не знаю, может это лично я слишком аутист, но мне казалось, что в начале 3-го десятилетия XXI века технически продвинутым людям в сети уже должно поднадоесть жрать этот кактус в виде доли маленького бесправного винтика в большой сети. И ходить под начальством очередной шишки, не важно, маленькая она или большая.

Самое главное, чего не делает федиверс, он не провозглашает пользователя как объект первого класса в своей семантической модели. Всё так же объекты первого класса — это сервера, сервера, сервера.

В то же время ZeroNet как платформа и протокол провела полное разделение этой каши на чёткие слои модели, и такие явления как «хранилище», «приложение» и «пользователь» проявляются там независимо друг от друга. Вам больше не нужен доверенный сервер, который будет представлять ваши интересы и принуждать соблюдать правила. Вы сам по себе участник сети.

Очень печально выслушивать этот бред на тему того, что одному не нравится код на JS, второму — код на Питоне, а третьему не хватает возможности поставить аватарку на форуме. Хоть бы один задумался об архитектуре и о последствиях развития той или иной технологии для человечества.

В то же время, приложение на ZeroNet при желании можно продаунгрейдить до федеративного сервера, точно так же как федеративный сервер при желании архитектурно даунгрейдится до «Фейсбука». А вот обратно — не получится. Если в исходном дизайне не выполнено соответствующее разделение абстракций, то без полной переделки дизайна им просто неоткуда будет взятся. «Лишние» степени свободы платформы при желании можно скрыть, а вот несуществующие нарисовать не получится.

ZeroNet сейчас это макет самой себя, в котором ничего еще только не работает. Но блин… дайте мне 5 кодеров на питоне за еду и финансирование, чтобы им полгода было что есть. И вы обалдели бы от результата.

Допилить ZeroNet до убойной технологии не сложнее, чем с нуля реализовать стек Gemini вместе с сервером и браузером на GTK. Реально нужно 5-6 заинтересованных лиц и немного времени.

Сейчас ситуация такова, что на всей Земле не нашлось этих пяти лиц.

В общем, ладно… у меня нет желания размышлять, почему всё так вышло, и почему вместо действительно чумовой технологии, от которой сами «продвинутые пользователи» бы визжали, у пользователей выстреливает очередное… вот это. В конечном счёте, как тащить людей туда, куда они не хотят? Ну не хотят, и не надо.

Пойду куплю пива в связи со сдачей очередного проекта. Пошло оно всё подальше.


Спасибо commagray & CO за предоставленные для цитирования буквы.

 , ,

wandrien
()

firefox и bookmark

Форум — Desktop

Кас сделать в FF 90, чтобы закладки показывались только в новой вкладке? Я выбрал меню из списка «показывать только в новой владеке», а оно не работает.

 ,

theLORdweller
()

Firefox и журнал.

Форум — General

Времени суток. Каким образом можно удалить/просмотреть историю в firefox. Недавно захотел удалить из журнала некоторые сайты, и столкнулся с тем что просто не удаляет. Из менюшек самого браузера(ниче не делает, просто). Это ладно. Структура каталогов и где хранится история - также мне не ясна, на сайте мозилы , я не нашел описаний как это сделать(тупой я и слепой да). Буду рад если кто-то кинет ссылками по этому поводу. Спасибо заранее…

 

nioelumiijke
()

Xfce4 и docklike-plugin

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

Шёл 2020-й год и для новой (хотя она уже пару лет как «новая») панели Xfce появился-таки свой современный докоподобный таскбар: Docklike-plugin. И теперь больше не надо тащить и кое-как прикручивать DockBarX.
Настроек по сравнению с тем же докбаром куда меньше и вообще всё пока довольно простенько, зато выглядит абсолютно нативно — точно так же, как и обычный таскбар в режиме «только значки».
Проект пока ещё активно развивается — читай, функциональность только самая базовая. Например, фильтрацию окон по рабочим столам добавили буквально на днях.
Остальной софт такой же остромодный — Seamonkey, Ario и Double Commander. По-моему, ни одна из этих программ, как и сама крыса, серьёзно за десяток лет не поменялась — и наверное, это неплохо.
А шрифты такие огромные потому, что экран — 12 дюймов.

>>> Просмотр (1920x1080, 1322 Kb)

 , ,

dogbert
()

Веб-разработка в Vim

Форум — Web-development

Предлагаю обсудить и поделиться опытом по веб-разработке в Vim.

Я использую Vim в терминале termite (со своими патчами для дефолтного копипаста и прочее) с цветовой схемой gruvbox: как для терминала, так и для Vim.

Этот клавиатура-ориентированный vim-like терминал я упомянул не столько потому, что у него реализованы режимы как Vim (insert mode, selection mode, выделение клавиатурой включая блочное), а потому, что у него есть приятная фича (которую можно наблюдать в iTerm2 для OS X) при работе Vim'а в нём, а именно цвет курсора изменяется в зависимости от цвета символа, на котором находится курсор, а также при выделении цвет выделения повторяет цвет слов/строк (но без инвертирования где нужно, может еще допилят), скриншот.

Менеджер плагинов:

Перед обсуждением плагинов и настроек, хочу подчеркнуть почему я использую менеджер плагинов vim-plug: перепробовав все известные менеджеры плагинов, включая недоменеджер pathogen, остановился именно на vim-plug потому, что он самый быстрый (параллельная установка/обновление, к-во потоков настраивается), имеет приятный интерфейс, краткий синтаксис, а самое главное позволяет настроить загрузку или отключение плагинов по filetype и/или первому вызову самого плагина, это не только ускоряет старт/работу Vim, но и помогает разрулить конфликты некоторых плагинов, простой пример:

Plug 'tpope/vim-endwise',   { 'for': [ 'ruby','vim','sh','zsh' ] }
Плагин endwise будет загружен только для ft=ruby,vim,sh,zsh, т.к. если этот полезный плагин работает одновременно с не менее полезным плагином delimitMate, то возникает конфликт в файлах с ft=css,js и везде, где после открытия скобки нужен автоматический переход на следующую строку и автозакрытие скобки.

Кроме всего прочего, отдельно от веб-разработки-related для самого вима у меня такое:

Автоматическое переключение на английский в Normal mode и обратно на предыдущий в Insert mode:

Конечно же нужно решать проблему с локалями (т.к. веб-разработка, в отличие от программирования иногда ведется на отличных от английского языках), а именно с неудобством при их переключении в Normal mode и обратно, самое лучшее решение, это установка в систему xkb-switch + плагин в Vim для него.

Plug 'lyokha/vim-xkbswitch'
let g:XkbSwitchEnabled       = 1
let g:XkbSwitchLib           = '/usr/lib64/libxkbswitch.so'
let g:XkbSwitchIMappings     = ['ru']
let g:XkbSwitchSkipIMappings = {'*' : ['[', ']', '{', '}', "'"]}
Теперь не нужно переключать на английский входя в Normal mode и на русский обратно в Insert mode, переключение происходит автоматически. Очень удобно.

Линейка номеров строк:

set nu
set nuw=4
autocmd InsertEnter * set nornu
autocmd InsertLeave * set rnu
в Insert mode - с номерами строк всё как обычно, в Normal mode (точнее после первого входа в insert и выхода обратно в normal) включается типа линейки: скриншот.

Автоматическая паста с отступами:

Чтобы навсегда забыть эту проблему и не включать перед пастой каждый раз режим пасты или использовать хитрые хоткеи, можно просто добавить настройку:

let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
  set pastetoggle=<Esc>[201~
  set paste
  return ""
endfunction

Замена заменяемого без удаления (проблема забивания иксового буфера обмена):

Чтобы заменить слово или кусок окруженный делиметрами без удаления в иксовый буфер, можно использовать такую настройку на хоткей S :

nnoremap <silent> S :set opfunc=PasteReplace<CR>g@
function! PasteReplace(type, ...)
    if a:0
        silent exe "normal! `<" . a:type . "`>p"
    elseif a:type == 'line'
        silent exe "normal! '[V']p"
    elseif a:type == 'block'
        silent exe "normal! `[\<C-V>`]p"
    else
        silent exe "normal! `[v`]p"
    endif
endfunction
nmap SS S$
Теперь если нужно заменить слово без его удаления, можно просто: Sw , Si" , Si( , и т.п.

Проекты/сессии:

Плагин vim-startify - стартовый экран, можно настроить на сессии и букмарки, чтобы каждый раз не открывать то же самое в сплиты/табы/буферы.

Документация:

Для открытия документации в браузере (как минимум для того, что нас интересует: HTML, JavaScript, CSS, SCSS, LESS, Ruby, Rails, Django, PHP и т.п.) исходя из из ft= и положения курсора, удобно замапить на F1:

Plug 'Keithbsmiley/investigate.vim'
nnoremap <F1> :call investigate#Investigate()<CR>

Автокомплит и сниппеты:

В отличие от YouCompleteMe, автокомплитер neocomplete не тормозит (при работе и старте), не нужен питон (но нужен lua), а всё остальное такое же (для веб-разработки). Интегрируется с родным движком сниппетов neosnippet, который работает как с родными, так и универсальными vim-snippets (объединенные Snipmate & UltiSnip).

Настройка для навигации по комплиту через Tab (сам комплит всплывает автоматически, можно настроить обратное):

imap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
if has('conceal')
  set conceallevel=2 concealcursor=i
endif

ZenCoding/Emmet:

Полнофункциональный Emmet для Vim: emmet-vim

Работает как нужно, но по дефолту неудобный (как по мне) хоткей <c-y>, , я настроил себе на jk . Т.е. Esc у меня kj , а дополнить jk . Первое время пользовался F4, привожу настройки, но jk намного удобнее. Просто на Tab настроить нельзя (иначе как пользоваться Tab?).

Plug 'mattn/emmet-vim',           { 'for': ['html','xhtml','css','sass','scss','less'] }
au FileType html,css,sass,scss,less imap <expr><F4> emmet#expandAbbrIntelligent("\<tab>")
au FileType html,css,sass,scss,less imap <expr>jk   emmet#expandAbbrIntelligent("\<tab>")
au FileType html                    imap <C-\>      <CR><CR><Esc>ki<Tab>
Плагин MatchTag - для отображения парных тегов.

Кроме Emmet'а для Vim существует аналог: Sparkup (нужен питон, не пробовал).

Отображение отступов:

Можно настроить каким символом и цветом отображать линии отступов, я настроил на хоткей <A-i> , альт как непечатаемый символ, так что проще посмотреть настройку склонировав репу на гитхабе и заглянув в .vimrc (или нажать C-v A-хоткей), скриншот.

Plug 'Yggdroot/indentLine'
let g:indentLine_enabled    = 0
let g:indentLine_char       = '¦'
let g:indentLine_color_term = 239
let g:indentLine_color_gui  = '#A4E57E'
nmap ^[i :IndentLinesToggle<CR>

Подсветка синтаксиса:

Plug 'tpope/vim-haml',            { 'for': 'haml'   }
Plug 'wavded/vim-stylus',         { 'for': 'stylus' }
Plug 'groenewege/vim-less',       { 'for': 'less'   }
Plug 'digitaltoad/vim-jade',      { 'for': 'jade'   }
Plug 'slim-template/vim-slim',    { 'for': 'slim'   }
Plug 'othree/html5-syntax.vim',   { 'for': 'html'   }
Plug 'cakebaker/scss-syntax.vim', { 'for': 'scss'   }

Plug 'hail2u/vim-css3-syntax',    { 'for': ['html','css'] }
augroup VimCSS3Syntax
  autocmd!
  autocmd FileType css setlocal iskeyword+=-
augroup END

Проверка синтаксиса:

Для проверки синтаксиса используется Syntastic + сторонние чеккеры:

Plug 'scrooloose/syntastic', { 'for': ['ruby','html','css', 'javascript', 'haml'] }
let g:syntastic_auto_jump           = 1
let g:syntastic_error_symbol        = '✖'
let g:syntastic_warning_symbol      = '►'
let g:syntastic_javascript_checkers = ['jshint'   ] " sudo npm install -g jshint
let g:syntastic_html_checkers       = ['jshint'   ] " sudo npm install -g jshint
let g:syntastic_ruby_checkers       = ['rubylint' ] " gem install ruby-lint
let g:syntastic_haml_checkers       = ['haml-lint'] " gem install haml-lint
let g:syntastic_css_checkers        = ['csslint'  ] " sudo npm install -g csslint
let g:syntastic_css_csslint_args    = "--ignore=zero-units"

Деобфускация / beautify'еры:

Плагин vim-autoformat работает со сторонними 'formatprograms', например js-beautify для HTML, CSS и JavaScript. autopep8 для питона и т.д. Всё это должно быть установленно.

Plug 'Chiel92/vim-autoformat'
let g:formatprg_args_javascript = "-j -q -B -f -"
noremap  <F8>   :Autoformat<CR><CR>
vnoremap <C-F8> gq

JavaScript:

Дефолтная поддержка JavaScript в Vim на довольно низком уровне, так что необходимы плагины как для самого JS, так и для библиотек, плагин javascript-libraries-syntax поддерживает почти все основные либы: jQuery, underscore.js, Backbone.js, AngularJS, RequireJS, Sugar.js, Jasmine и т.д.

Plug 'moll/vim-node'
Plug 'pangloss/vim-javascript',      { 'for': 'javascript' }
Plug 'jelera/vim-javascript-syntax', { 'for': 'javascript' }
let javascript_enable_domhtmlcss = 1
let g:html_indent_inctags        = "html,body,head,tbody"
let g:html_indent_script1        = "inc"
let g:html_indent_style1         = "inc"

Plug 'othree/javascript-libraries-syntax.vim', { 'for': 'javascript' }
let b:current_syntax       = 'javascript'
let g:used_javascript_libs = 'angularjs'

Также полезен tern_for_vim (сам Tern должен быть установлен), который умеет в 'Jump to the definition', 'Find the type' и т.д.

Пробельные символы:

По A-w показывает, по \-dw удаляет. Перевести все табы в пробелы (вдруг кто не знает), в Vim: :retab .

Plug 'ntpeters/vim-better-whitespace'
let g:better_whitespace_enabled = 0
nmap ^[w :ToggleWhitespace<CR>
nmap <Leader>dw :StripWhitespace<CR>

И кое-какие настройки по-мелочи:

set splitbelow
set splitright
inoremap  kj           <Esc>
map       gm           :call cursor(0, virtcol('$')/2)<CR>
nnoremap  <F12>f       :exe ':silent !firefox %'<CR><C-l>
nnoremap  <F12>c       :exe ':silent !chromium-browser %'<CR><C-l>
1-2 строки: для нормального открытия (слева направо) сплитов.
3: Esc на kj - мегаудобно.
4: для попадания на средину строки.
И последние две для предпросмотра в браузерах.

Мой ~/.vimrc

Кто что использует и как, кроме вышеуказанного?

 

VimCasts
()

Принёс сюда девятимесячный тест термопаст

Форум — Talks

Ролик PRO Hi-Tech.

Кратко:

Суть теста – посмотреть, что происходит с термопастами за 9 месяцев, высыхают или нет.

Noctua NT-H1. Осталась такой же пластичной.

GD900. Также осталась пластичной, как и была, совсем чуть-чуть загустела.

Arctic MX-4. Была самой жидкой из всех, такой и осталась.

Gelid GC Extreme. Единственная из всех подсохла. К покупке не рекомендуется, к тому же, она самая дорогая из рассмотренных.

Температуры средние и под максимальной нагрузкой со временем изменились не более, чем на 3-4 градуса.

Мне было интересно посмотреть, надеюсь, кому-то тоже будет полезно.

 ,

the_real_kinik
()

Переехал на кучу утилит переписаных на Rust

Форум — Talks

Тег «угадай автора по заголовку».

Q: Зачем?

A: Ради эксперимента, повысится комфорт пользования терминалом или нет.

Q: Причем тут Rust?

A: Ни при чем, но из-за нативности и отсутствия GC на нем толпа людей побежала переписывать что ни попадя. С таким же успехом можно было бы и npm install, но тормозило бы. Ближе opam install или go get

Теперь мой терминал по истине свистит и пердит. Даю список если кому надо.

  • alacritty - GPU ускоренный терминал.
  • alias cat=bat- cat с хорошей подсветкой синтаксиса и нумерацией строк и пейджером.
  • broot - навигатор по каталогам, который одновременно показывает дерево, но адекватно себя ведет с громадными каталогами, показывая их по чуть-чуть.
  • dust - утилита для исследования места занимаемого каталогами, сортирует деревья файлов начиная с самых больших каталогов.
  • alias ls="exa -l --group-directories-first" ls с хорошими дефолтами, tree встроено.
  • rip Утилита для удаления файлов с разными удобными фичами и восстановлением
  • hors "How do I parse float in javascript?" - находит короткий ответ в интернетах и отвечает. Чуть лучше работает чем оригинал - howdoi.
  • mdcat - cat для Markdown, для отображения удобочитаемой формы документа. Ссылки делает сносками.
  • alias grep=rg - очень быстрый и удобный grep
  • starship - shell command prompt, показывает кучу полезной информации в зависимости от контекста, например git branch если в репозитории, версии софта и ЯП если в каталогах с сорцами, hostname если зайти по ssh.
  • tokei - сборщик статистики по ЯП и строкам кода в деревьях исходников.
  • hyperfine - бенчмарк утилита, time на стероидах.
  • tldr- сокращенная версия man, показывает как чем пользоваться в примерах, а не выдавая полную справку. Страницы поддерживаются сообществом для громадного количества утилит. Изначальный проект - https://tldr.sh/
  • topgrade - универсальная утилита обновления. При запуске пытается обновить все что видит - системные пакеты, vim пакеты и так далее.
  • runiq - быстрый sort | uniq с разными алгоритмами внутри.
  • fd - быстрый и удобный find, удобно чтобы не вспоминать заковыристые ключи
  • fselect - поисковик файлов с SQL-like языком запросов
  • sd - как sed, только интуитивный
  • i3status-rs - Сразу i3status+i3blocks. Плюс батарейки к i3blocks, которые как я понял автор решил убрать.
  • onefetch - Вроде neofetch, но для сорцов. Просто запустите эту штуку с корня любого git репа, клонированого локально
  • wasmtime - JIT runtime для WASI стандарта. Пускалка WebAssembly приложений.
  • scriptisto - «shebang-интерпретатор» для компилируемых языков, прозрачно собирает и кеширует нативные сборки кода

Что не зашло совсем

Все вышеперечисленое ставится через cargo install <package_name> (кроме alacritty), название смотрите на страницах. Сам cargo и Rust ставятся через

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

P.S. Призываю остальных взять ЯП вашей секты и поставить такой эксперимент и отписаться. Да-да, расскажите как вы пользовались ls на Java. Пользователей emacs прошу не беспокоить

 , , ,

vertexua
()