Изменение фонового изображения в tmux в urxvt-256 с помощью команды printf

Ничего из вышеперечисленного.

Размер блока связан с параметрами файловой системы, выбранными во время mkfs, и его можно узнать, выполнив stat()для файла. Он не имеет отношения к базовому блочному устройству, на котором хранится файловая система (, если таковая имеется ).

Например, с GNUstat:

$ /usr/bin/stat. | grep IO.Block       
  Size: 71680           Blocks: 144        IO Block: 2048   directory

Если вы предпочитаете более программный вид, системный вызов stat()можно сделать в perlс:

$ perl -e '@x=stat("."); print $x[11]'
2048

В обоих случаях мы получаем "2048" в качестве ответа для этой файловой системы.

Мы можем это проверить:

$ truncate -o -s 1 foo      
$ ls -l foo
-rw-r--r-- 1 sweh sweh 2048 Sep 17 10:28 foo

Разные файловые системы могут иметь разные размеры блоков. например, на моей машине я заставил диск /newsиспользовать меньшие размеры блоков, потому что он хранит в основном файлы меньшего размера

$ perl -e '@x=stat("/"); print $x[11]'
4096

$ perl -e '@x=stat("/news"); print $x[11]'
2048

Для файловых систем Linux extxэто делается с помощью mke2fsс флагом -b:

   -b block-size
          Specify  the  size  of blocks in bytes.  Valid block-size values
          are 1024, 2048 and 4096 bytes per block.  If omitted, block-size
          is  heuristically  determined  by  the  filesystem  size and the
          expected usage of the filesystem (see the -T option).  If block-
          size  is preceded by a negative sign ('-'), then mke2fs will use
          heuristics to determine the appropriate  block  size,  with  the
          constraint  that  the  block  size  will  be at least block-size
          bytes.  This  is  useful  for  certain  hardware  devices  which
          require that the blocksize be a multiple of 2k.
0
25.11.2019, 01:09
1 ответ

urxvt, tmuxи screen— это три разных эмулятора терминала, первый использует X11 в качестве серверной части для отображения/ввода, а два других используют хост-терминал.

tmuxи screenна самом деле являются эмуляторами терминала, они реализуют ряд функций (, таких как атрибуты жирного шрифта, очистка экрана... )активируются с помощью некоторых escape-последовательностей, но настраивают фоновое изображение не входит в число функций, которые они поддерживают.

Также помните, что сеанс screen/tmuxможет быть подключен к хост-терминалу любого типа, даже к нескольким одновременно (с -x), некоторые могут поддерживать эту функцию, некоторые нет.

screenбудет передавать escape-последовательности, которые он не распознает, tmux— нет. Последовательности, начинающиеся с OSC (\e]), заканчиваются на BEL (\a/^G). Когда tmuxвстречает \e], он читает до\a(или следующей escape-последовательности ), и если он не распознает эту последовательность, он просто отбрасывает ее.

Однакоtmuxподдерживает дословную передачу произвольного текста на хост-терминал (с)с последовательностью \ePtmux;\e<text>\e\. Так что здесь вы можете сделать:

printf '\ePtmux;\e\e]20;/home/alexsson/Downloads/alternativ.png;\a\e\\'

В любом случае обратите внимание, что это довольно опасная особенность rxvt. Например, если вы запустите rxvtкак root в Linux и запустите cat malicious-fileс этим файлом, содержащим что-то вроде\e]20;/dev/watchdog\a(в системах, где доступен сторожевой таймер ), это перезагрузит вашу систему через несколько секунд.

1
28.01.2020, 02:38

Теги

Похожие вопросы