LINUX.ORG.RU

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

Firefox не может восстановить сессию

 

Закрыл фаерфокс. Как обычно — с сохранением сессии. 4 окна, каждое — с кучей вкладок. Попробовал запустить — не вышло, закрывается с ошибкой. Попробовал другой профиль — запустилось нормально. Попробовал Safe Mode — предложило почистить профиль или просто запустить без плагинов. Выбрал второе — снова упало. Повторил Safe Mode, почистил профиль, запустил сохранённые вкладки — опять упало.

Проапдейтил фаерфокс со 102 до 115. Запустил — пишет «Нам не удалось восстановить вашу последнюю сессию. Выберите «Восстановить сессию», чтобы попробовать снова.»

Кнопка «Восстановить сессию» неактивна, список «Предыдущие вкладки» пуст, в меню «Журнал» тоже ничего интересного: «Восстановить предыдущую сессию» и «Недавно закрытые окна» серые, в «Недавно закрытые вкладки» — только вкладки о новшествах в новой версии Фаерфокса.

Как восстановить вкладки?

Ответ: https://support.mozilla.org/ru/kb/kak-vosstanovit-sessiyu-prosmotra-iz-rezervnoj-kop

В моём случае помогло по-быстрому скопировать все файлы из ~/.mozilla/firefox/<имя профиля>/sessionstore-backups/ а затем перед запуском Фаерфокса заменить ~/.mozilla/firefox/<имя профиля>/sessionstore.jsonlz4 на самый большой из них. Там было 2 одинаковых файла: previous.jsonlz4 и upgrade.jsonlz4-20230916112848. Возможно, 2-й сохранился потому, что я закрывал браузер по Ctrl-c в терминале.

question4
()

Написал статью «Как жить если у вас юникод»

 ,

Собственно, сабж. Статья про то самое, что мы с Eddy_Em не могли осилить в прежние времена. В этом году я это, внезапно, осилил. Ну и написал статью.

https://saahriktu.ru/pdf/kak_jit_esli_u_vas_yunikod.pdf

saahriktu
()

Посчитать количество дней рождений за период. Как?

 

Посчитать количество дней рождений за период. PHP

Я с изумлением не вижу простого решения.

  1. Переберать весь период в цикле?

  2. Считать количество лет. Приводить к одному году и добовля или не добавлять единицу?

Спасибо.

kompospec
()

Ищу книжку от лоровца, 2007 года выпуска

 , ,

Сабж: Linux не для идиотов

Очень хочется почитать, а ссылки не работают. Может у кого осталась копия?

mydibyje
()

Роботы насилуют мою звуковую карту

 

Последние месяца три мой ляптоп периодически издает кошмарные звуки из ада во время проигрывания аудио: сэмпл. Чтобы воспроизвести достаточно либо нагрузить CPU, либо поскроллить видео туда-сюда. Воспроизводится в mpv, в firefox, в cmus. Воспроизводится и через pipewire, и через чистую ALSA с выключенным pipewire. В dmesg ничего нет. В pw-top задержки в пределах нормы. Симптомы убираются если поставить видео на паузу и подождать пока буфер pipewire обнулится (с ALSA тоже помогает, понятное дело, но с pipewire проще мониторить что происходит).

Кто-нибудь сталкивался?

Причастные:

  • Huawei MateBook X Pro 2022
  • Ядро 6.4.7-arch1-1
  • Intel Alder Lake PCH-P High Definition Audio Controller

Вывод lspci:

$ doas lspci -vvvks 00:1f.3
00:1f.3 Multimedia audio controller: Intel Corporation Alder Lake PCH-P High Definition Audio Controller (rev 01)
	Subsystem: Huawei Technologies Co., Ltd. Alder Lake PCH-P High Definition Audio Controller
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 32, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 199
	IOMMU group: 15
	Region 0: Memory at 601d1b8000 (64-bit, non-prefetchable) [size=16K]
	Region 4: Memory at 601d000000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
		Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
	Capabilities: [80] Vendor Specific Information: Len=14 <?>
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee00bf8  Data: 0000
	Kernel driver in use: sof-audio-pci-intel-tgl
	Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl

Выключал энергосбережение, не помогает:

$ echo 0 | doas tee /sys/module/snd_hda_intel/parameters/power_save
$ echo N | doas tee /sys/module/snd_hda_intel/parameters/power_save_controller
cumvillain
()

Вопрос про видео.

 ,

Девушка прислала видео, спросить что это. Извеняюсь за оффтоп, но линукс тут при том что здесь сидят самые отьявленные спецы в области всего на свете. Интересно ваше мнение. Что на видео. Видео не мое, вообще без понятия чье оно. Мое мнение - это молния чтоли шаровая маленькая ? https://vk.com/clip650811733_456239723

nionio35
()

Как выйти из vim?

 

Что же, пора окончательно закрыть этот вопрос. По этому поводу уже написано множество статей и заметок, пусть будет ещё одна.

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

Надеюсь, что моя заметка будет полезна всем начинающим пользователям этого прекрасного(или ужасного?) текстового редактора.

Werenter
()

Как кушать вилкой. ... или о fork() в двух словах

 

Статья о создании процессов в Linux

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

PPP328
()

60 антипаттернов для С++ программиста

 , , , ,

Постоянно писать «как делать правильный код» надоедает. Поэтому для разнообразия и развлечения написал мини-книгу «60 антипаттернов для С++ программиста». Этакие вредные советы в духе «Книга для непослушных детей и их родителей».

На самом деле там, не только вредные советы, но и разбор почему они собственно вредны. Будет полезно почитать новичкам в программировании. Думаю, каждый знает кого-то, кому будет полезно почитать этот материал :). Впрочем, опытные программисты тоже смогут найти интересное для себя и узнать/освежить знания про некоторых тонкие моменты C++.

Там много букв. Приглашаю запастись кофе/энергетиком и приступать. Буду рад обсуждениям и дополнениям, основанном на вашем опыте.

Ещё я этот текст переработал для бумажного издания. Оно в подготовке для печати. Смысл там в целом тот же, но пришлось многое переделать или расписать подробнее. Ведь нельзя в бумажной книге дать 100500 ссылок на сторонние ресурсы «читать здесь про xxx подробнее». Надеюсь, успеем напечатать к осенним конференциям и будем раздавать на стенде, например по кодовым словам. Приходите на стенд и говорите, что с linux.org.ru и что там на тему бумажной книги :)

Парочка вредных советов для примера:

  • Пишите ваши .h-файлы так, чтобы они зависели от других заголовков, и при этом не включайте их в свой заголовочный файл. Пусть тот, кто инклудит, догадается, какие заголовки нужно заранее заинклудить перед использованием вашего файла. Развлеките коллег квестами!
  • Пишите код так, как будто его будет читать председатель жюри IOCCC и он знает, где вы живёте (чтоб приехать и вручить вам приз).

P.S. PDF (yandex.ru), если кому-то так удобнее.

Andrey_Karpov_2020
()

Интересные уловки от хитровыделанных заказчиков

 , ,

Сейчас я вам расскажу интересную уловку, которая очень часто встречается у работодателей. Намного чаще на фрилансе и чуть-чуть реже в реале

  1. Заголовки на фрилансе «нормальному специалисту на это надо 2 дня!»:

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

Как всё происходит с таким заказчиком: если у вас нет опыта, то вы начинаете делать задачу. Делаете ее неделю. Полторы. Много общения с заказчиком. Заказчик подгоняет. Вы нервничаете. Но знаете, что возможно, вы затянули сроки по незнанию предметной области. В конечном итоге вы можете месяц это делать и в конечном итоге сделаете за месяц. Заказчик с вами расчитается по оглашенному в условиях работы прайсу т.е два дня

Далее, когда у вас уже будет опыт и вы возьметесь за такую же работу, то сделаете ее за 1.5 недели. Заказчик платить за 1.5 недели не будет. Слышать какие-то вменяемые аргументы он не будет. Заплатит за 2 дня

Далее, когда у вас уже будет опыт - вы перед работой попытаетесь донести до заказчика то, что это делается не два дня, а 1.5 недели. Заказчик аргументы слушать не будет, пойдет искать того, кто сделает это за 2 дня или будет готов это сделать за 2 дня оплаты

Заказчики хитровыделанные товарищи. То, что они говорят вам и то, что они реально думают - не всегда совпадает. Они могут прекрасно знать, что это не делается за два дня, но если специалист сделает за 1.5 недели или даже за месяц, но он ему заплатит за 2 дня - то это…это же ПРЕКРАСНО!!!

  1. Шантаж при выдаче зарплаты за отработанное время:

Достаточно популярная уловка. Завуалированный первый вариант. Вы договариваетесь с заказчиком. Полностью оговариваете то, что вы будете делать. Пошагово. Каждый день делаете отчеты. Заказчик вам ничего на это не говорит. Работа же движется! Когда приходит день зарплаты, то заказчик начинает говорить: у нас есть задачи, которые не закрыты. Вы начинаете говорить: ну так для того, чтобы сделать эту задачу, надо выполнить предварительные работы. Заказчик все такие аргументы игнорирует. В конечном итоге предлагает вам закрыть все ключевые конечные задачи и после этого вам заплатят зарплату. Но строго за отработанную неделю

Пример: прихожу я в одну микрокредитную организацию. Договариваемся, что первый месяц анализ проекта и зарплата 50%, потом зарплата 100% и расширяем функционал проекта. Проект писал школьник(реально школьник) несколько лет. Школьник ушел в армию. И они ищут человека, который приведет в порядок проект и расширит функционал

Обсуждаем пул задач. Согласовываем. Заказчик соглашается на пул задач. Пул задач на первый месяц:

  1. анализ проекта
  2. создания лога вьюшек, потому как много дубликата кода(одинаковые названия классов и функций в разных скриптах, которые подтягивают вьюшки)
  3. по результату формирование логов. Анализ их, приведение в консистентный вид, чтобы можно было начать расширять функционал

Работаю месяц: закрыл 2 пункта, все доп. таски видел заказчик. Всё всех устраивало. Получаю зп 50%. Работаем дальше

Второй месяц: начинаю править в коде дебильные вещи, типа «одинаковые названия классов и функций в разных скриптах, которые подтягивают вьюшки» и прочее. Всё это протекает, естественно медленно т.к требует тестирования. Работаю с этим две недели. Пошла третья. Заказчика всё устраивает. В конце третьей недели я интересуюсь «а когда будет аванс за 2 недели?». И тут начинается замечательная история

История такая: заказчик спрашивает «а когда мы закроем сабжевый список тасок?». Имеется ввиду расширение функционала. Я ему: когда выполним третий пункт. Он: это всё очень долго происходит. Скажите время, когда вы закончите третий пункт. Я: в районе 1-2 недели. Заказчик: это очень долго. По моему опыту, нормальному специалисту на это надо 2 недели. Я: две недели? Заказчик: да, на ВСЕ ТРИ ПУНКТА. Вы же делаете это второй месяц. Я вам предлагаю такой вариант: сейчас я вам формирую список задач, который нам нужно выполнить. Вы их закрываете и получаете зарплату. Эти задачи, по моему мнению, специалист выполнит за 2-2.5 недели. Мы вам готовы заплатить за 3 недели. Я: хорошо, а с отработанными тремя неделями что будем делать? Заказчик: мы готовы платить за закрытые задачи. Я: я выполнял предварительные работы. Всё в коммитах. Заказчик: мы коммиты смотреть не будем. Мы видим, что вы затянули время и делали 1.5 месяца то, что делается 2 недели. Сейчас я сформирую список задач. Я: формируйте! Про себя ржу. Вот это поворот событий!

Заказчик формирует список задач(к уже имеющимся конечным таскам). И там работы месяца на 2-3

Я: тут работы на 2-3 месяца. Заказчик: нормальный специалист сделает это за 2-2.5 недели

Такая уловка(шантаж невыплаченной зарплатой) очень частая история. В разных вариантах развития событий. Но суть одна и та же

Коллеги, не давайте хитровыделанным товарищам на вас кататься! На фрилансе строго по предоплате. Нет? Гуляй, Вася. В реале бороться сложней. Самым лучшим решением - это офиц. трудоустройство на полностью белую зп. Если зп серая - вам ее и выдадут по уходу. Все остальные варианты - исключительно силовые. Набить кепку - забрать шекели

Дополнено1:

в комментариях есть мнение, что оценка сроков у заказчика неправильная по «незнанию предметной области». Я отвечу, что по результирующей неважно, по какой причине оценка неправильная: сознательно или по не знанию. Результирующая такая: заказчик заплатит строго по тем срокам, которые он огласил. Еще не видел, когда человеку объясняешь с фактами, почему это не делается 2 дня, а он соглашается и вы начинаете работать. Обычно такой человек пишет: «спасибо, я попробую поискать другого исполнителя» или подобное. Всё время на объяснение(которое бывает и несколько часов) - естественно никто не оплачивает

Дополнено2:

чтобы вы понимали, насколько такие уловки выгодны, я включу обычные математический расчеты уровня четвертого класса. Берем стандартный рейт $20, который является средним по СНГ среди мидл-сеньор.

Вариант1: платят за два дня, что делается по факту 1 месяц. Считаем: 6 часов в день на * 5 рабочих дня * 4 недели = 120 рабочих часов. Работаем 120 часов, платят за 12 часов. Сколько у нас оплата в час получается? Правильно, 12 * 20 = $240. 240/120 = $2 в час. Или 160 рублей в час или 21120 рублей в месяц :)

Вариант2: платят за два дня, что делается по факту 1.5 недели. Считаем: 6 часов в день на * 8 рабочих дня 48 рабочих часов. Работаем 48 часов, платят за 12 часов. Сколько у нас оплата в час получается? Правильно, 12 * 20 = $240. 240/48 = $5 в час. Или 400 рублей в час или 52 800 рублей в месяц :)

Ты такой серьезный программист, много чего знаешь. А по факту тебя заимели( поимели в 1337 порт :) ) по 160р или за 400р в час. А можешь и вообще бесплатно отработать(если не согласился на шантаж зп)

Дополнено3:

Очень частая уловка у заказчиков, у которых уже есть проект: вам дают ТЗ, что в проекте нужно сделать. Оцените так сказать. Вы оцениваете. Заказчик соглашается. И тут есть один очень интересный нюанс, который выглядит следующим образом:

Вы: сделать это - 2-3 дня, но чтобы это сделать - надо разобраться с проектом

Заказчик: а сколько на это нужно?

Вы: в районе 1-2 недели. Не знаю, как у вас проект написан. Может и меньше, может и больше. Но, обычно, в районе этого времени

Заказчик: я готов платить за выполненное ТЗ

Для тех, кто не понял, заказчик готов платить за доработку проекта, но не готов вам платить за время, которое будет потрачено на «вникнуть в проект», чтобы потом выполнить ТЗ

Считаем:

  1. минимум: 2 дня * 6 часов * $20 = $240 или 19200р
  2. максимум: 3 * 6 * $20 = $360 или 28800

затрачено времени:

  1. минимум: 5дней * 6часов * $20 = $600 или 48000р + ТЗ 19200р = 67200р
  2. максимум: 10дней * 6часов * $20 = 1200 или 96000р + ТЗ 28800 = 124800р

Ничего так потеря денег и времени. Согласны? Я более чем уверен, что после того, как этот человек найдет того, кто закроет ему ТЗ, он с чистой совестью пойдет и купит себе новый телефон. Или как-то по-другому, но строго с пользой для себя потратит сэкономленные деньги. А всё потому, что айтишник, по мнению заказчиков - это лошпидрон. Которого можно обхитрить и вместо 67т.р заплатить 19т.р т.е грубо говоря нанять по цене продавца в продуктовом магазине. И ему пофиг, сколько вы времени потратили в жизни на то, чтобы во всём этом IT разобраться и сколько вы тратите на актуализацию своих знаний

serg002
()

Игры в терминале

 , , ,

Данный топик про игры в юниксовом терминале. Здесь я буду на регулярной основе (в идеале) описывать в отдельном комментарии какую-нибудь игру. В стартер-посте будут ссылки на эти комментарии. Обзор будет не очень подготовленным, поэтому не ждите литературных изысков. Но тем не менее те, кто любит подобное красноглазие, смогут познакомиться с играми и выбрать на свой вкус понравившуюся вещицу. Данная тема создана по аналогии с соседним топиком про стимовские игры.

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

Теги для поисковых ботов (жрите мои любимые ботики): ascii games, terminal games, ncurses games, tty games, console games, cli games, tui games, text-based games, command line games, игры в терминале, игры в консоле, игры для командной строки.

Критерии отбора:

  1. Язык программирования: Си(в приоритете), си++. Остальные пока не рассматриваются. Потенциальные в будущем - ада, фортран, бейсик, паскаль. Жирный пайтон идет лесом, хипстерские гоу, раст и иже с ними туда же.
  2. Открытые исходники с лицензиями, позволяющими модификацию, не препятствующие распространению. Свободные и одобренные дядюшкой Столлманом в приоритете.
  3. Зависимости. Без sdl и других графических либ. Опционально пускай будет, например, для музыки. Но не навязывается. NCurses и подобные библиотеки для работы с терминалом всяко одобряются и котируются. Не приветствуются в зависимостях всякие гугловские юнит тесты и другие чёрт ногу сломит либы. Для маленьких терминальных игр эта мишура не нужна.

Источники игорей:

  1. https://ttygames.wordpress.com/
  2. https://github.com/ligurio/awesome-ttygames
  3. https://inconsolation.wordpress.com/
  4. https://kmandla.wordpress.com/
  5. https://ibiblio.org/pub/linux/games/ Артефакты прошлого. Игры для терминала надо искать. Не всё собирается с современным компилятором.
  6. gopher://sdf.org/9/users/saahriktu/bttf/gamez_p0.tar.lzma (использовать lynx) - сборник ascii игр, собранный камрадом @saahriktu
  7. https://www.youtube.com/user/livibetter/videos
  8. https://zenway.ru/tag/ASCII
  9. https://blends.debian.org/games/tasks/console
  10. ASCII игры по Linux
  11. Поиск на github.com, gitlab.com по соответствующим запросам
  12. Поиск рогаликов на http://www.roguebasin.com/index.php?title=Category:Roguelike_games
  13. Все поисковики, даже малоизвестные иногда выдают страницы, на которые не попадешь с гугла или яндекса.

Сами игори:

!!!NEW!!! 1. 8f (linux.org.ru) - Терминальный вариант карточной игры Сумасшедшие восьмёрки (Crazy Eights).

  1. Alienwave - Сложная Galaga-подобная игра с хорошим ascii-артом.
  2. Bricktick - Красивый клон арканоида с бонусами.
  3. CLines - Качественная реализация всеми известной офисной игры Color Lines.
  4. Dominoes - Реализация одного из вариантов игры Домино.
  5. Lwrace - Бегаем символом «O», собираем «$», избегаем «#», уворачиваемся от «o».
  6. Morpion solitaire - Отличная реализация отличной же тетрадной игры Join Five.
  7. MyMan - Пакман для терминала с множеством настроек.
  8. Peg-solitaire.c - Добротная реализация одноименной настольной игры с 5-ю раскладками.
  9. XT gyoretsu - Воссозданная с любовью и с ncurses старая тетрадная игра.
  10. Ztrack - Псевдо-тридешные гоночки с красивым бэкграундом.
  11. to be continued
nab_linux
()

Способы переименования сетевого интерфейса через udev

 ,

Приветствую.

Встречал я 3 основных варианта как можно через udev переименовать сетевой интерфейс. К примеру:

KERNEL=="eth0", ACTION=="add", ATTR{address}=="40:6b:1b:20:42:35", NAME="inet"
и
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="40:6b:1b:20:42:35", NAME="inet"
и
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="40:6b:1b:20:42:35", KERNEL=="eth*", NAME="inet"

Все работают, но есть ли какая-то разница между ними и какой лучше?

mag-gendalf
()

Intel выпилил S3 (suspend-to-ram) в 11 поколении

 , ,

Привет, ЛОР!
Решил рассказать о своей истории узбека сношения с ноутбками на Intel 11 поколения.

Конкретнее — сегодня поговорим о засыпании (suspend, suspend-to-ram, S3).
Если вкратце — засыпания в ноутбуках больше не будет. Вообще. Совсем.

Ссылка: https://www.reddit.com/r/System76/comments/k7xrtz/ill_have_whatever_intel_was...

Вместо Ъ-засыпания S3 (с обесточиванием всей периферии, кроме оперативной памяти) — теперь некий S0iX.
Это значит, что процессор теперь не будет обесточиваться и будет работать всегда.
Кроме очевидных минусов вроде уменьшения времени автономной работы в режиме засыпания, есть ещё и неочевидные — вроде тех, что из-за того, что CPU (и, вроде как, некоторая периферия) будет включена всегда — за нами будут следить ещё лучше и тщательнее.

Ну и, конечно же, в Linux ближайшее время это будет поддерживаться через жопу.
Например, на последнем лаптопе от Fujitsu (Lifebook U7311) засыпание не работает вовсе, потому что BIOS лаптопа бодро рапортует о поддержке S3, которое CPU, естественно, не поддерживает, с предсказуемым результатом.

А ещё сегодня мы поговорим о том, чем заменить S3 (точнее, об альтернативе б-мерзкому S0iX, накостыленной шаловливыми ручонками линуксоида).
fakesleep.sh — скрипт, который делает примерно то же самое — «усыпляет» пользовательские процессы (kill -STOP), усыпляет USB-девайсы, отключает указанные ядра процессора и выключает дисплей (и, конечно же, «вертает всё взад» при «пробуждении»).
Использовать его очень просто: нам понадобится acpid и пара нехитрых скриптов:

/etc/acpi/events/laptop-lid

event=button/lid.*
action=/etc/acpi/laptop-lid.sh

/etc/acpi/laptop-lid.sh
#!/bin/sh

FAKESLEEP=/home/ann/.bin/fakesleep
ACTION=$(grep -q closed /proc/acpi/button/lid/LID/state && echo sleep || echo resume)

$FAKESLEEP $ACTION

Естественно, нужно подправить несколько переменных в скрипте и путь до этого скрипта в laptop-lid.sh.

Как результат — ноутбук при закрытой крышке не засыпает полностью (как и в S0iX), но при этом мы можем контролировать процессы, которые мы останавливаем/не останавливаем, при этом время автономной работы в режиме «спячки» такое же (фиговое, но терпимое):
ann.: ~ ➤  acpi                                                                                                                                                                                                                                      
Battery 0: Discharging, 86%, 25:17:22 remaining

(проверено по SSH, которое остаётся доступным как раз благодаря тому, что мы контролируем, какие процессы мы усыпляем, а какие нет)

Просьба всем использующим 11 поколение Intel и сочувствующим протестировать это поделие и дать советы по улучшению/ухудшению этого всего хозяйства.
Естественно, это всё юзабельно не только на 11 поколении, а на любом ноутбуке.

sudo cast i-rinat (на всякий случай)

annerleen
()

Linux гейминг на диване. ChimeraOS.

 ,

https://chimeraos.org/

Особенности:

  • ChimeraOS - дистрибутив, который предоставляет диванный гейминг экспириенс из коробки. После установки вы загружаетесь сразу в Steam Big Picture и можете приступать к игре!

  • Легкая установка

  • Минимализм. Диструбутив содержит только то, что необходимо для игр

  • Нет необходимости в конфигурации игр из списка поддерживаемых. Можно приступать сразу к игре. ==> Список

  • Регулярные обновления драйверов и ПО

  • Дистрибутив основан на Arch Linux

  • Полностью автоматические обновления в фоновом режиме. Ваш гейминг не будет прерван.

  • Поддержка Xbox, PlayStation, Steam контроллеров и других

  • Поддержка Steam, Epic Games Store, GOG и других платформ.

Демонстрация:

https://youtu.be/E2NIGPpz_vY

Zadoff386
()

Управление файлами конфигурации при помощи GNU Stow

 ,

GNU Stow — это менеджер символьных ссылок. Он позволяет управлять файлами конфигурации и установкой программ из исходников. При помощи Stow можно устанавливать программы из исходных кодов в обход менеджера пакетов, не боясь сломать систему. Также им удобно управлять файлами конфигурации (далее дот-файлами) в домашнем каталоге пользователя.

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

den-jc
()

Восхитительная вещь: Linux Live Kit, но как настроить первоначальный экран, zRam, persistence (чистый аналог MX Linux с полноценной средой)?

 , , , ,

Всем доброго утра!

Tomas Matejicek (автор Slax Linux) решил провести мастер-класс по альтруизму и создал инструмент, позволяющий буквально в пару кликов создать Live-версию любой операционной системы (ну, почти любой).

https://www.linux-live.org/

https://github.com/Tomas-M

Порядок действий: очищаем установленную и настроенную систему от мусора, проверяем наличие пакетов squashfs-tools, genisoimage, zstd, если нет - ставим, чистим кэш, скачиваем и распаковываем https://github.com/Tomas-M/linux-live/tarball/master

Идем в .../Tomas-M-linux-live-7d4ad09/bootfiles/

открываем syslinux.cfg добавляем пункты меню:

LABEL default
MENU LABEL Toram on
KERNEL /boot/vmlinuz
APPEND vga=769 initrd=/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 apparmor=0 toram
LABEL default
MENU LABEL Persistence on
KERNEL /boot/vmlinuz
APPEND vga=769 initrd=/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 apparmor=0 perch

Возможно, еще также должна работать и комбинация:

LABEL default
MENU LABEL Persistence on, Toram on
KERNEL /boot/vmlinuz
APPEND vga=769 initrd=/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 apparmor=0 perch toram

Не проверял, если честно.

Сохраняем, закрываем.

Также заменяем скучные обои bootlogo.png на наш несравненный .png размером 640х480.

Идем в /Tomas-M-linux-live-7d4ad09/build находим строки:

if [ "$SKIPCOREMOD" = "" ]; then
mksquashfs $COREFS $LIVEKITDATA/$LIVEKITNAME/01-core.$BEXT -comp xz -b 1024K -Xbcj x86 -always-use-fragments -keep-as-directory || exit
fi

и заменяем на:

if [ "$SKIPCOREMOD" = "" ]; then
#   mksquashfs $COREFS $LIVEKITDATA/$LIVEKITNAME/01-core.$BEXT -comp xz -b 1024K -Xbcj x86 -always-use-fragments -keep-as-directory || exit
#   mksquashfs $COREFS $LIVEKITDATA/$LIVEKITNAME/01-core.$BEXT -comp lz4 -always-use-fragments -keep-as-directory || exit
   mksquashfs $COREFS $LIVEKITDATA/$LIVEKITNAME/01-core.$BEXT -comp zstd -always-use-fragments -keep-as-directory || exit
fi

Можно попробовать через lz4, но xz - точно не стоит, никакого кофе не хватит.

Сохраняем, закрываем.

Идем в /Tomas-M-linux-live-7d4ad09/config находим строку:

LIVEKITNAME="linux"

Заменяем linux на название нашего дистрибутива (латиница, без пробелов), или любое название, которое считаем эстетически привлекательным.

Сохраняем, закрываем.

Запускаем через sudo или от root: ./build

Ждем, если все отработало как нужно - идем в /tmp/ и забираем наш каталог linux-live. Перебрасываем его на флешку (я форматировал ее в ext4) и запускаем уже с флешки «наше название системы»/bootfiles/bootinst.sh

Всё. Если вдруг «не всё» - то читаем файлы readme, там всё предельно ясно расписано. Ну почти всё.

Также в /tmp/ будет лежать скрипт для создания iso образа, если вдруг он нам нужен.

- - - - - - - - - - - - - - - - - - - - - - - - - - -

Теперь вопросы к пользователям Slax (но и не только):

- как по аналогии с 01-core.sb сделать, ну например, 02-vb.sb и сохранить в нем слой с установленным VirtualBox? При этом, чтобы была возможность подключать и отключать его (равно как и другие слои/образы) на лету.

- как отредактировать оформление этого чудного начального меню с таблицей из 90-х и цветами, которые вышли из моды еще во времена молодости моей бабушки?

- как сделать чтобы при включении perch изменения шли не в каталог /changes/ на нашей флешке, с дублированием корневой системы, а как-то по уму, например, единоразово при выключении в единый файл со сжатием?

- как работает zRam? Всегда ли происходит сжатие всего, что идет в память, или только тогда, когда свободная память подходит к концу? Если всегда, то как отключить эту опцию? Интуитивно - zram=off или zram=0 в начальном меню, но не уверен.

Ну и наконец - зачем городить весь этот огород, если можно взять готовую MX Linux? Во-первых, Вы можете попробовать проделать это с любой системой, а не только с модификацией Debian без Systemd (понимаю, что для гуру - не критично, но для новичков - это ад, когда «все делаешь по инструкции», но ничего не работает, ибо у тебя «особенная» система), во-вторых, Вам не нужно вычищать весь мусор, который сочли нужным положить в систему разработчики дистрибутива - Вы просто берете и настраиваете все сами (на самом деле нет - придется 100500 раз задать вопросы на ЛОРе), с нуля, с консоли, устанавливая только то, что нужно, ну и в третьих, (продолжая тему доверия к AppImage - Какие репозитории AppImage можно считать «безопасными»?) к репозиториям основного семейства дистрибутивов всё-таки больше доверия. Но это уже дело вкуса.

Starover
()

Ubuntu на m1 через Multipass

 , , ,

Всем привет! Понадобилось сейчас запустить один очень специфичный софт(корпоративный), который работает только на бубунте. А так как у меня есть только macbook pro 2020 года, который на m1. То пришлось поднять бубунту на нем.

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

romanlinux
()

Переводилка для вашего ПекА

 , , , ,

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

Обновлено.

Зависимости apt install lua xclip xsel xdotool aosd_cat translate-shell

Вопщем таксь.
Порой, нужно не просто выделить текст где угодно и увидеть его по перевод по горячей клавише,
но и получить его перевод в виде текста. К счастью в x11 есть аж три буфера обмена.
Поэтому добавил опцию copy_translated=true/false.

Суть проста:

  • вешаете скрипт, например на F7
  • выделяете произвольный текст без его копирования через контекстное меню(как и было)
  • нажимаете F7 и
  • всплывает текст перевода (как и было)
  • нажимаете среднюю кнопку мышки и в любом поле ввода вставляется оригинальный текст
  • нажимаете правую кнопку мышки и через контекстное меню делаете вставить и вставляется переведённый вариант
  • повторное нажатие F7 ещё раз покажет перевод, без повторного выделения
#! /bin/env lua
local poptrans =
{
    -- select language from lang to lang
    lang_from = "auto", --auto,en,fr,de or other
    lang_to   = "ru",
    -- copy translated text to clipboard
    -- if you select text (no use context menu textcopy)
    --   - middle mouse button paste translated text
    --   - right mouse button context menu paste original text
    --   - script used 2 levels X11 clipboard buffest of 3 levels :)
    copy_translated = true,
    -- how more seconds show you translated text
    show_timer = 3,
    -- popup translated text under mouse position
    follow_mouse = true,
    -- if follow_moise is false, set translated
    -- text position static coords
    popup_pose_x = 0,
    popup_pose_y = 0,
    -- max width message in screen, zero is auto
    popup_width  = 0,
    -- get text from system clipboard
    app_clipboard = "xclip -o 2> /dev/null",
    -- set text to system clipboard
    app_set_clipb = "xsel -b -i ",
    -- get mouse systemd coords
    app_mousepose = "xdotool getmouselocation 2> /dev/null",
    -- show text popup with translated text
    app_popup_msg = "aosd_cat -x %d -y %d -B white -R white -t 0 -p 0 -u %d -w %d"
}

function poptrans:run()
    local translated = '';
    self.previos_text = '';
    -- read clipboard
    local exec = io.popen(self.app_clipboard);
    local text = exec:read('*all');exec:close();
    -- get cursor position
    exec = io.popen(self.app_mousepose);
    if self.follow_mouse then
        self.popup_pose_x,self.popup_pose_y = exec:read("*all"):match("x:(%d+) y:(%d+)");
        self.popup_pose_x = self.popup_pose_x+3; exec:close();
    end
    -- do not translate previos text or empty or translated text
    if text ~= previos_text and text ~= '' and text ~= translated then
      local from = ''
      if self.lang_from ~= "auto" then
        from = self.lang_from;
      end
      exec = io.popen('trans   '..from..':'..self.lang_to.." -b '"..text.."'");
      translated = exec:read("*all"); exec:close();
      if self.copy_translated then
         exec = io.popen(self.app_set_clipb,'w')
         exec:write(translated:sub(1,#translated-1));
         exec:flush();
         exec:close();
      end
      previos_text = text;
      exec = io.popen(
      self.app_popup_msg:format(
      self.popup_pose_x,self.popup_pose_y,self.show_timer*1000,self.popup_width),"w");
      exec:write(translated);exec:close();
    end
end

poptrans:run()

Не используйте версию из истории правок!. Там опасный баг с кавычками, (спасибо @maxcom исправить дал)
Единственное что там полезно это пример как делать перевод через гугл API по токену.
Но раз появилась возможность правки то ::)

- ИСПОЛЬЗОВАТЬ НА СВОЙ СТРАХ И РИСК, Я НЕ НЕСУ НИКАКОЙ ОТВЕТСТВЕННОСТИ
- ВСЁ ПРЕДОСТАВЛЯЕТСЯ КАК ЕСТЬ, ЛЮБЫЕ СОМНЕНИЯ ДОЛЖНЫ ВЕСТИ
- К ОТКАЗУ ОТ ИСПОЛЬЗОВАНИЯ
LINUX-ORG-RU
()

Multiboot USB Creator (YUMI, Ventoy, Easy2Boot,..)

 , ,

На фоне всеобщей истерии по поводу Ventoy (любят его и хейтят поголовно) мне хочется спросить про https://www.pendrivelinux.com/yumi-multiboot-usb-creator/ и иные аналоги Вентоя.

Чего хочется: в случае с Юми, под Виндой, а в случае аналогов на вроде https://easy2boot.xyz/ – из любой системы, создавать мульти-загрузочные USB Flash, притом обязательно с возможностью бутаться этой флешкой и в режиме BIOS, и в UEFI-режиме. Потому как иначе, если это первейшее правило не соблюдается, то необходимо 2 флеш-карты иметь с собой на ключах: для Биос и для Юифай, чего очень не хочется.

Статья в тему: https://en.wikipedia.org/wiki/List_of_tools_to_create_bootable_USB (эта статья про синг-бут утилиты, что не совсем в тему нашей беседы, ибо с синг-бут утилитами всё очень даже ясно и понятно. Единственное, я хочу предостеречь вас от юзанья Руфуса: эта всеми любимая утилита не умеет делать флешки загружаемые и в Биос и в Uefi, в отличие от обожаемого мною WoeUSB-ng).

SerW
()

samba и каталоги с точкой в конце.

 , ,

Подскажите откуда мог вылезти косяк и можно ли его обойти?
Есть древний Debian Stretch x64
Есть samba 2:4.5.16+dfsg-1+deb9u4
Зайдя в очередной раз на шару с ноута с Windows 7 - обнаружил каталоги кракозябры... Начал разбираться и выяснил что нечитаемыми становятся каталоги оканчивающиеся на '.' ну или содержащие '«'
Я понимаю что это спецсимволы, но они же присутствуют в именах файлов/каталогов и их надо отдать по сети.
Проблема проявилась на кривом Яндекс Диске, клиент которого отсутствует в Линуксе, и приходится заливать раздав через самбу Винде. Через WebDAV всё тормозно, а зеркальный демон не удобен... Я просто решил вынести в облако - часть содержимого сетевого раздела.

Есть ли какое то решение этой проблемы?

n0mad
()