Делаем из Vim IDE
В стародавние времена когда деревья были большими, трава зеленее, а мороженное стоило по 10 копеек, на Земле жили динозавры, и эти динозавры программировали в Vim.
( читать дальше... )
В стародавние времена когда деревья были большими, трава зеленее, а мороженное стоило по 10 копеек, на Земле жили динозавры, и эти динозавры программировали в Vim.
( читать дальше... )
Привет, ЛОР! Мы тут форкнули джаббер клиент Conversations (давно уже форкнули, на самом деле, но скорее для своих хотелок, а тут как раз их единственный девелопер, который не умеет нормально реагировать на баг-репорты и пулл-реквесты, окончательно добил и так уродливый UI.)
В общем, решили мы выложить своё творение в паблик. Отличия от апстримной консервации:
Бэкпорты из Cheogram:
это всё, что пока вспомнил.
Конечной целью является создание удобных и современных Jabber-клиентов на все платформы (Linux/FreeBSD/whatever, Android, iOS, MacOS, Шindoшs) с поддержкой всех фич Jabber - таких как сквозное шифрование с возможностью синхронизацией между всеми своими (доверенными) девайсами, шифрованные A/V звонки, обмен файлами, стикеры с анимированным говном и прочие радости жизни.
Пара скриншотиков: раз, два.
Полный чейнджлог и возможно новость будет позже.
Максимально открыты ко всем пожеланиям, предложениям и фичреквестам от текущих и потенциальных пользователей Jabber (в том числе желающих переползти с других IM - напомню, что для Jabber есть полноценные бриджи и в телегу, и в шматрицу).
Адепты телеграма идут лямзять бибу Дурову, адепты шматрикса идут смотреть на тормоза и потребление памяти Syanpse при количестве пользователей более 100, а проводить ликбез о том, что XMPP в 2024 году поддерживает всё, кроме анимированных стикеров с говном — я не буду.
Сделал себе домашний маршрутизатор. Веб на клиентах доступен, но не весь — часть сайтов (и этот среди них) не работают. На самом маршрутизаторе всё открывается.
Схема:
[cli] 192.168.0.2/29
|
----- 192.168.0.0/29
|
br0: 192.168.0.1/29
[rtr]
ppp0: 10.100.9.5/32
|
----- pppoe
|
[isp] 10.100.0.1/32
|
...
Клиент:
root@cli:~# curl -v -k https://www.linux.org.ru -o /dev/null
* Adding handle: conn: 0x7fab74004000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fab74004000) send_pipe: 1, recv_pipe: 0
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to www.linux.org.ru port 443 (#0)
* Trying 178.248.233.6...
* Connected to www.linux.org.ru (178.248.233.6) port 443 (#0)
0 0 0 0 0 0 0 0 --:--:-- 0:04:59 --:--:-- 0* Operation timed out after 300448 milliseconds with 0 out of 0 bytes received
0 0 0 0 0 0 0 0 --:--:-- 0:05:00 --:--:-- 0
* Closing connection 0
curl: (28) Operation timed out after 300448 milliseconds with 0 out of 0 bytes received
Роутер:
root@rtr:~# nft list ruleset
table inet home {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
iifname vmap { "lo" : accept, "br0" : jump input_int }
}
chain input_int {
icmp type echo-request accept
ip saddr 192.168.0.2 tcp dport 22 accept
}
chain forward {
type filter hook forward priority filter; policy drop;
ct state established,related accept
iifname "br0" accept
}
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
oifname "ppp0" masquerade
}
}
В первом приближении пакеты проходят:
root@rtr:~# tcpdump -i br0
21:07:28.759275 IP 192.168.0.2.62653 > dns.google.domain: 11903+ A? www.linux.org.ru. (34)
21:07:28.759867 IP 192.168.0.2.55189 > dns.google.domain: 56192+ AAAA? www.linux.org.ru. (34)
21:07:28.779138 IP dns.google.domain > 192.168.0.2.62653: 11903 1/0/0 A 178.248.233.6 (50)
21:07:28.781905 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [S], seq 4008111092, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1102006709 ecr 0,sackOK,eol], length 0
21:07:28.785758 IP 178.248.233.6.https > 192.168.0.2.51398: Flags [S.], seq 3128115892, ack 4008111093, win 5792, options [mss 1460,nop,wscale 9,sackOK,TS val 289594195 ecr 1102006709], length 0
21:07:28.787025 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, options [nop,nop,TS val 1102006714 ecr 289594195], length 0
21:07:28.790257 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [P.], seq 1:179, ack 1, win 8235, options [nop,nop,TS val 1102006717 ecr 289594195], length 178
21:07:28.793882 IP 178.248.233.6.https > 192.168.0.2.51398: Flags [.], ack 179, win 60, options [nop,nop,TS val 289594259 ecr 1102006717], length 0
21:07:28.798772 IP 178.248.233.6.https > 192.168.0.2.51398: Flags [P.], seq 2897:4038, ack 179, win 60, options [nop,nop,TS val 289594264 ecr 1102006717], length 1141
21:07:28.800222 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, options [nop,nop,TS val 1102006726 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:07:32.290387 IP 192.168.0.2.51315 > 178.248.233.6.https: Flags [.], ack 817493168, win 8235, length 0
21:07:33.798702 IP 178.248.233.6.https > 192.168.0.2.51398: Flags [F.], seq 4038, ack 179, win 60, options [nop,nop,TS val 289599264 ecr 1102006726], length 0
21:07:33.995497 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, options [nop,nop,TS val 1102011916 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:07:51.112302 IP 192.168.0.2.51317 > 178.248.233.6.https: Flags [.], ack 1788523727, win 8235, length 0
21:07:57.637922 IP 192.168.0.2.51377 > 178.248.233.6.https: Flags [.], ack 3270250373, win 8235, length 0
21:08:10.959408 IP 192.168.0.2.51378 > 178.248.233.6.https: Flags [.], ack 1734482898, win 8235, length 0
21:08:34.005182 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:08:47.300446 IP 192.168.0.2.51315 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:08:57.645557 IP 192.168.0.2.51377 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:09:06.122845 IP 192.168.0.2.51317 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:09:10.966172 IP 192.168.0.2.51378 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:09:34.514986 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:09:58.156700 IP 192.168.0.2.51377 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:10:02.311781 IP 192.168.0.2.51315 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:10:10.974358 IP 192.168.0.2.51378 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:10:21.132956 IP 192.168.0.2.51317 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:10:34.521112 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:11:34.526793 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:12:29.224679 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102307109 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:29.525558 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102307410 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:29.829200 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102307713 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:30.233351 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102308117 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:30.741193 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102308622 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:31.447212 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102309329 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:32.662818 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102310541 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:34.580798 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:12:34.782531 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102312662 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:36.906159 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102314783 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:39.029305 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102316904 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:41.652656 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102319524 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:43.775462 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102321645 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:45.998680 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102323864 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:48.121683 IP 192.168.0.2.51398 > 178.248.233.6.https: Flags [R.], seq 180, ack 1, win 8235, length 0
root@rtr:~# tcpdump -i ppp0
21:07:28.759660 IP 10.100.9.5.62653 > dns.google.domain: 11903+ A? www.linux.org.ru. (34)
21:07:28.760106 IP 10.100.9.5.55189 > dns.google.domain: 56192+ AAAA? www.linux.org.ru. (34)
21:07:28.778960 IP dns.google.domain > 10.100.9.5.62653: 11903 1/0/0 A 178.248.233.6 (50)
21:07:28.782236 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [S], seq 4008111092, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1102006709 ecr 0,sackOK,eol], length 0
21:07:28.785532 IP 178.248.233.6.https > 10.100.9.5.51398: Flags [S.], seq 3128115892, ack 4008111093, win 5792, options [mss 1460,nop,wscale 9,sackOK,TS val 289594195 ecr 1102006709], length 0
21:07:28.787245 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, options [nop,nop,TS val 1102006714 ecr 289594195], length 0
21:07:28.790477 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [P.], seq 1:179, ack 1, win 8235, options [nop,nop,TS val 1102006717 ecr 289594195], length 178
21:07:28.793666 IP 178.248.233.6.https > 10.100.9.5.51398: Flags [.], ack 179, win 60, options [nop,nop,TS val 289594259 ecr 1102006717], length 0
21:07:28.798524 IP 178.248.233.6.https > 10.100.9.5.51398: Flags [P.], seq 2897:4038, ack 179, win 60, options [nop,nop,TS val 289594264 ecr 1102006717], length 1141
21:07:28.800404 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, options [nop,nop,TS val 1102006726 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:07:32.290679 IP 10.100.9.5.51315 > 178.248.233.6.https: Flags [.], ack 817493168, win 8235, length 0
21:07:33.798448 IP 178.248.233.6.https > 10.100.9.5.51398: Flags [F.], seq 4038, ack 179, win 60, options [nop,nop,TS val 289599264 ecr 1102006726], length 0
21:07:33.995834 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, options [nop,nop,TS val 1102011916 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:07:51.112551 IP 10.100.9.5.51317 > 178.248.233.6.https: Flags [.], ack 1788523727, win 8235, length 0
21:07:57.638168 IP 10.100.9.5.51377 > 178.248.233.6.https: Flags [.], ack 3270250373, win 8235, length 0
21:08:10.959740 IP 10.100.9.5.51378 > 178.248.233.6.https: Flags [.], ack 1734482898, win 8235, length 0
21:08:34.005553 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:08:47.300740 IP 10.100.9.5.51315 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:08:57.645805 IP 10.100.9.5.51377 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:09:06.123174 IP 10.100.9.5.51317 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:09:10.966463 IP 10.100.9.5.51378 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:09:34.515235 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:09:58.156944 IP 10.100.9.5.51377 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:10:02.312030 IP 10.100.9.5.51315 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:10:10.974612 IP 10.100.9.5.51378 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:10:21.133238 IP 10.100.9.5.51317 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:10:34.521362 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:11:34.527046 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:12:29.224932 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102307109 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:29.525815 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102307410 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:29.829507 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102307713 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:30.233681 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102308117 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:30.741447 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102308622 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:31.447466 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102309329 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:32.663073 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102310541 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:34.581053 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [.], ack 1, win 8235, length 0
21:12:34.782782 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102312662 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:36.906420 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102314783 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:39.029563 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102316904 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:41.652914 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102319524 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:43.775747 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102321645 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:45.998938 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [F.], seq 179, ack 1, win 8235, options [nop,nop,TS val 1102323864 ecr 289594259,nop,nop,sack 1 {2897:4038}], length 0
21:12:48.121943 IP 10.100.9.5.51398 > 178.248.233.6.https: Flags [R.], seq 180, ack 1, win 8235, length 0
Доброго времени суток, уважаемые любители открытого кода.
Как думаете, реально ли собрать игровой комп с дискретной видяхой 4000 серии в корпусе mini-itx? Накидайте плиз конфигов, если это вообще возможно. Бюджет примерно 100к-150к руб. Очень не хочется большой корпус.
Спасибо!
UPD: Корпус можно и не mini-itx. Из пожеланий, глубина не более 40см, цвет хочется белый, без стекл по бокам и без RGB перделок, компактность очень приветствуется.
хочу запустить systemd-nspawn --boot --directory=/mnt
с лайв-образа, ну например пикси или юсб, неважно.
цель простая — в процессе установки ОС в /mnt через chroot нельзя работать с сервисами, маскировать их, и всякое такое, даже timedatectl, localectl не работает без запущенного systemd.
а что если заспавнить загрузку, подключится через тот-же ansible и развлекаться по полной программе?
какие есть варианты? что ещё не пробовал: например создать systemd-nspawn@mnt.service как-то заранее и запускать его из скрипта.
Написал свой карточный сим - игрушку типа Stacklands, картинки по ссылке:
https://imgur.com/a/hoSITMv
Бета-билды есть для Lin/Win/Mac/Android. Пока интерфейс только на английском, переводом на все языки еще не озадачился.
Есть желающие потестить?
Магазин (itch.io):
https://stacksengine.itch.io/stacks-space
Всем доброго времени суток! Если есть тут те из вас, кто предпочитает стриминговым сервисам локальную адиотеку - прошу порекомендовать мне ПО, а точнее музыкальный десктопный плеер, которым вы пользуетесь для проигрывания песен из оной. Раньше голову особо себе не делал - сидел на кедах и слушал Elisa, audacious, но времена те канули в лету и сейчас я на WM.
Хочется что-нибудь забавно-красивое, особенно если есть консольный аудио-плеер, рабочий, с возможностью скробблинга на last.fm
Можно и не CLI, можно десктопный. С поддержкой lossless форматов.
Пока не хочу оформлять новость, нужно разгрести баги и опакетить игру, чтобы её было удобно устанавливать.
Игра нуждается в тесте. Например, я не знаю, нужно ли мне что-то исправить в уровнях. В общем, жду критику. За сервер извиняюсь, на нормальный денег нет.
Код под GPL v3.
Преамбула. Узнал, что мой провайдер выдает ipv6.
Если коротко. Пров. делегирует префикс 56. Заинтересовался, настроил. Роутер Mikrotik. Получил по DHCPv6 префикс на внешнем интерфейсе. Как понимаю, получил 256 подсетей(по факту адресов) Раздал на локальный «bridge». С префиксом 64, Все работает. Почитал про, что это вообще и, как работает. Возник вопрос… Какой адрес у интерфейсов роутера? Объясните, пожалуйста, как это работает…) Или поделитесь ссылкой) Как обратиться к внешнему интерфейсу, как к внутреннему? Читал мануалы, статьи, на русском и английском. Как-то этот вопрос обходят стороной. RFC не предлагать. Пытался читать, но, там для спецов…
Одним из ярчайших событий этого года является выход комикса Tux Stories: «Приключения пингвина Тукса и его друзей». Событием, рожденным из двух миров - мира комиксов и мира программного обеспечения.
( читать дальше... )
Для реализации идеи, команда выходит с проектом на краудфандинговую платформу Boomstarter. Поддержка сообщества необходима для проекта – так мир увидит классный комикс, плюс, будут крутейшие вознаграждения. Помимо самого комикса, магнитов, наклеек и т.д., можно принять участие в создании сюжета, разместить свое имя на страницах издания и даже стать прообразом некоторых героев. Только вместе можно сделать мир гораздо более интересным!
Приглашаем поддержать проект всех, кто любит крутые комиксы, ищет интересные книжки для своих детей или просто является фанатом Тукса, Бисти, Дюка, Туза и других замечательных героев Open Source.
>>> Подробности
Свободного места на столе всё меньше… Задумался о покупке трекбола! У трекбола моей мечты:
Тема довольно нишевая, поэтому призываю всех экспертов шары мять: Oberstserj , Puzan , mord0d , t184256 , BityjPixel , shtain , blexey , Jack_Vo , turtle_bazon , Shadow, gedisdone , darkenshvein , zendrz , HerrWeigel , mahalaka , ssh2 , keir , sn , pi11 , spijet , tiroman , r3lgar , vitruss , barberry , stargrave , anonymous_sama
nnn (или n³) — полнофункциональный файловый менеджер терминала. Он очень быстрый, небольшой и практически не требует настройки.
nnn может анализировать использование диска, переименовывать скопом, запускать приложения и выбирать файлы. В репозитории есть тонны плагинов и документации для дальнейшего расширения возможностей, например, предварительный просмотр, монтирование дисков, поиск, diff для файлов/каталогов, загрузка файлов. Есть независимый (neo)vim плагин.
Он работает на Raspberry Pi, Termux (Android), Linux, macOS, BSD, Haiku, Cygwin, WSL, в эмуляторах терминала DE и в виртуальной консоли.
Этот релиз привносит одну из самых востребованных на сегодняшний день возможностей – живой предварительный просмотр. Соответствующая вики-страница содержит подробную информацию о реализации и использовании.
Также в релизе:
Find & list позволит вам искать с помощью вашей любимой утилиты поиска в поддереве (find/fd/grep/ripgrep/fzf) из nnn и перечислить результаты в nnn для работы с ними.
Сохранение сессии – гарантирует, что вы всегда будете начинать с того места, где вышли из nnn.
Улучшена система плагинов. Определен интерфейс взаимодействия плагинов с nnn.
Множество улучшений для удобства использования и багфиксы.
>>> Подробности
Кто какие фильтры\конфиги\плагины использует? Может кто-то юзает какие-то плагины, которые 60fps делают или что-то оригинальное
Здравствуйте! Например, читаю я книгу В. Чубарикова по матану и хочу доказать теорему сам, без подсматриваний. Но не могу этому научиться. Скажите, как это сделать, пожалуйста?
Если кто хочет почитать про Wayland, то вот вам книга: https://wayland-book.com/
Привет. Пытаюсь поменять местами клавиши на клаве, решил сделать не топорно правя файлы в /usr/share/X11, а через конфик-опцию в sway
input <identifier> xkb_file <file_name>
Sets all xkb configurations from a complete .xkb file. This file can be dumped from xkbcomp $DISPLAY keymap.xkb. This setting overrides xkb_lay‐
out, xkb_model, xkb_options, xkb_rules, and xkb_variant settings.
сделал дамп через xkbcomp:
root /usr/share/X11/xkb/rules # xkbcomp $DISPLAY xkb_config.xkb
подключаю:
input keyboard xkb_rules "xkb_config.xkb"
Результат - жалуется на ошибки в файле, пытался скомпилировать .xkb в .xkm, итог аналогичный. Может кто уже мучился? Если чего-то накостылится, то хотелось бы кинуть xkb_config.xkb в ~/.config/sway, но никак не выходит, не находится там конфиг, по-всякому задавал пути - отностельный и абсолютные. Интересно, почему решили взять иксовый xkb? Как-то причесать бы его под wayland.
CenOS 6.10 на Сontabo. Пишут, дополнительных ipv6 адресов могут быть миллионы. Вешаю доп. адреса.
В IPV6ADDR_SECONDARIES
добовляю по одному адресу. Первые 63 адреса работают: ping6
идет, начиная с 64-го после передергивания сетевой службы ping6 - ответы не приходят.
Почему первые 63 адреса нормально прописываются?
И если добавить 64-й - ipv6.google.com
уже не пингуется?
Конфиг eth0:
...
IPV6INIT="yes"
IPV6ADDR="2a02:xxxx:xxxx:xxxx:0000:0000:0000:0001/64"
IPV6_DEFAULTGW="fe80::1"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ХХХХХХХХ-ХХХХ-ХХХХ-ХХХХ-ХХХХХХХХХХ"
IPV6ADDR_SECONDARIES="2a02:xxxx:xxxx:xxxx:0000:0000:0000:0002/64 \
2a02:xxxx:xxxx:xxxx:0000:0000:0000:0003/64 \
...
2a02:xxxx:xxxx:xxxx:0000:0000:0000:0063/64"
Проверяю:
ip -6 addr show # смотрю адреса
ping6 ipv6.google.com # запущен пинг
При добавлении 64-го доп. адреса:
From 2a02:xxxx:xxxx:xxx::64 icmp_seq=176 Destination unreachable: Address unreachable
После полутора лет разработки вышла очередная версия FreeOrion — свободной космической 4X параллельно-пошаговой стратегии, основанной на серии игр «Master of Orion».
Основным направлением в этом релизе стали улучшения многопользовательской игры, полный пересмотр нацеливания в битвах и переработка топливной механики в механику топливной эффективности. Помимо этого были произведены мелкие улучшения и изменения, и, разумеется, исправления ошибок.
Ключевые изменения:
Улучшения многопользовательской игры:
Нацеливание в битвах:
Корпуса кораблей характеризуются топливной эффективностью, которая масштабирует дополнительное топливо от топливных частей и другого контента, добавляющего топливо.
P.S. Действует публичный сервер игры freeorion-test.dedyn.io
.
P.P.S. Действует сервер игры с удлинённым временем хода, регистрация на форуме игры.
>>> Подробности
Ну точнее для neovim’а. Блин, болею, подумал чем бы заняться и изобразил вот это.
Забрать можно тут: https://github.com/neg-serg/neovim-colorschemes
следующие → |