LINUX.ORG.RU

unDE 0.2.0 — необычная командная строка и панель клавиш

 ,


3

3

unDE — это не-DE, которая в будущем должна стать полноценной заменой всех программ в ОС.

А пока это файловый менеджер, просмотрщик текстов и изображений и (то что добавилось в версии 0.2.0) командная строка с панелью клавиш.

Основной идеей файлового менеджера unDE является ZUI (Zooming user interface), а командная строка отличается от привычных терминалов тем, что ведёт раздельную историю команд для каждой директории, команда cd интегрирована с файловым менеджером. Кроме того, запустив, скажем, vim в одном терминале, можно смело запускать ещё один vim — они будут рядом (друг над другом).

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

Страница со скриншотами

Видео

>>> Статья о релизе

★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от Manhunt

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

hobbit ★★★★★ ()

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

anonymous ()
Ответ на: комментарий от mos

Чем это вам личкрафты не угодили? Вполне себе годный комбайн. Я им кажный день пользуюсь для чтения новостей, чятиков и прочей фигни. Пока что жив.

Vier_E ★★★ ()

Более правильное название проэкта будет: unDEad

LinuxDebian ★★★★ ()
Последнее исправление: LinuxDebian (всего исправлений: 1)

А управления с клавиатуры до сих пор нет…

Мыши — зло, и с ними надо бороться!

r3lgar ★★★★★ ()

автору - запастись терпением
и успехов !

kto_tama ★★★★★ ()

Плохо, что нет музыки. Восьмибитный дабстепчик был бы аутентичен...

AVL2 ★★★★★ ()

Вам с дедфудом объединиться

MEZON ★★★★★ ()
Ответ на: комментарий от DawnCaster

DawnCaster> Ват ? Когда Лёня и это успел ? Это ведь шутка, так ? Или я что-то пропустил в своей уютной криокамере ?

Он про gummiboot.

Quasar ★★★★★ ()
Ответ на: комментарий от DawnCaster

DawnCaster> Если-бы он был написан на D - совсем другой разговор-бы был.

В критике мелькало бы не «systemd», а «system-D».

Quasar ★★★★★ ()
Ответ на: комментарий от Deleted

devzero> Ждём systemd-motherboard и systemd-CPU

Лучше сразу проприетарный systemd-kerneld, и пусть сваливает из мира линукса.

Quasar ★★★★★ ()
Ответ на: комментарий от unDEFER

Но я не представляю ситуации, чтобы надо было выбрать по именам 1000 файлов и все они такие разные, чтобы ни find'а не применить, ни шаблонов..

ты в саппорте видать не работал, с секретарями не общался...

upcFrost ★★★★★ ()
Ответ на: комментарий от MEZON

Посмотрел скриншоты. Что за ад?

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

rebus_x ()
Ответ на: комментарий от rebus_x

А по сути ничего страшного там нет.

Ну да, человек ко всему привыкает.

andreyu ★★★★★ ()

Уникальная способность луноходов объяснять так, чтобы небыло понятно. Точнее, отсутствие этой способности.

Xintrea ★★★★★ ()

Бесполезная игрушка, в сочетании с некомпетентностью автора в UI, юзабилити и Unix way. Я сомневаюсь, что это поделие обгонит по юзабельности и скорости хорошо настроенную типовую среду (vim + netrw + ctrlp или emacs + evil + dired-plus + icicles/helm + bookmark-plus + настроенное автодополнение).

Это какой-то уникальный клинический случай. Судя по беглому просмотру проекта, в жизни автора произошло даже не одно, а несколько событий, которые даже поодиночке обычно вставляют человеку мозги на место и предотвращают от занятий хернёй в разработке ПО и в подходе к личному инструментарию:

- Юниксы/Linux

- Vim

- Работа разработчиком в течение как минимум нескольких лет

- Чтение книг по юзабилити (Раскин и т.д.)

- Семья, дети

Тем не менее ни одно из них не сработало. Я вообще не представляю, как ещё адекватно объяснить, что так делать не надо.

Cheater ()
Последнее исправление: Cheater (всего исправлений: 1)

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

anonymous ()
Ответ на: комментарий от Cheater

хорошо настроенную типовую среду (vim + netrw + ctrlp или emacs + evil + dired-plus + icicles/helm + bookmark-plus + настроенное автодополнение).

Жизнь не заканчивается программированием, Алё!

unDEFER ★★★★ ()
Ответ на: комментарий от anonymous

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

Удвою этого анонимуса.

hobbit ★★★★★ ()
Ответ на: комментарий от anonymous

Ну это одна из сторон жизни опенсорса, да.

hobbit ★★★★★ ()
Ответ на: комментарий от unDEFER

Ставь dmd с dlang.org

$ wget -c http://nightlies.dlang.org/dmd-nightly/dmd.master.linux.tar.xz
$ tar Jxf dmd.master.linux.tar.xz
# apt-get install libdb5.1-dev
$ cd unde-code
$ export PATH=../dmd2/linux/bin64/:$PATH
$ make
...
Performing "debug" build using dmd for x86_64.
bdb2d 5.3.28: target for configuration "library" is up to date.
derelict-util 2.0.6: target for configuration "library" is up to date.
derelict-ft 1.1.3: target for configuration "library" is up to date.
derelict-sdl2 1.9.7: target for configuration "library" is up to date.
unde 0.2.0+commit.1.gca50394: building configuration "default"...
Linking...
To force a rebuild of up-to-date targets, run again with --force.

unde-code$ ls -l unde 
-rwxr-xr-x 2 lk staff 22045861 Янв 31 17:52 unde

unde-code$ ./unde 
Open Database. If it takes long, try `./unde --force_recover`
Ошибка сегментирования

$ ./unde --force_recover
Open Database. Recover mode enabled. Please wait...
Ошибка сегментирования
pacify ★★★★★ ()
Последнее исправление: pacify (всего исправлений: 1)
Ответ на: комментарий от pacify
/usr/local/src/unde-code$ ldd unde 
	linux-vdso.so.1 =>  (0x00007ffeb1f0f000)
	libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f20687e3000)
	libdb-5.1.so => /usr/lib/x86_64-linux-gnu/libdb-5.1.so (0x00007f2068460000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f206825c000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2068040000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2067dbe000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2067bb6000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f20679a0000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2067613000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f20689e6000)
pacify ★★★★★ ()
Ответ на: комментарий от unDEFER

libdb 5.3 должно быть, скорее всего из-за неё

Может perror будешь кидать?

Но иногда из-за openGL падает

GL нативный из Debian stable (NVIDIA), тут траблы быть не должно.

pacify ★★★★★ ()
Ответ на: комментарий от unDEFER

Не понял, поясни, причём здесь perror?

Ну, можно проверять на NULL перед free(...) и т.п. Типа, вместо корки, просто выдавать ошибку.

pacify ★★★★★ ()
Ответ на: комментарий от pacify

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

Я не могу это контролировать.

unDEFER ★★★★ ()

Занятная вещь. Помнится, я давненько читал и видел пару скринов. Когда появилась первая рабочая версия со скриншотами?

ekzotech ★★★★ ()

Хотел было попробовать но:

farex@home:~$ unde 
Open Database. If it takes long, try `./unde --force_recover`
Clean logs.
Database opened.
~/.unde/mime NOT FOUND
Example of line "text/plain = gvim"
Go Mark 1
Desktop 1 created
lc_messages=C
lc_messages=ru_RU.UTF-8
FPS= 0.000000, average draw time: -nan ms

core.exception.RangeError@source/unde/path_mnt.d(120): Range violation
----------------
??:? _d_arraybounds [0x6bf39f]
??:? unde.path_mnt.__array [0x684aff]
??:? immutable(char)[] unde.path_mnt.PathMnt.get_key(const(unde.lsblk.LsblkInfo[immutable(char)[]])) [0x6841b6]
??:? unde.file_manager.find_path.unDE_Path_Finder_Flags unde.file_manager.find_path.find_path(unde.global_state.GlobalState, berkeleydb.dbtxn.DbTxn, unde.lib.CoordinatesPlusScale, unde.path_mnt.PathMnt, unde.lib.DRect, unde.lib.SortType, const(int)) [0x5e3b7b]
??:? void unde.draw.draw_screen(unde.global_state.GlobalState, berkeleydb.dbtxn.DbTxn) [0x5d3d1f]
??:? _Dmain [0x6813ae]
??:? _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv [0x6c41b2]
??:? void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) [0x6c40fc]
??:? void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() [0x6c416e]
??:? void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) [0x6c40fc]
??:? _d_run_main [0x6c406d]
??:? main [0x68157f]
??:? __libc_start_main [0x8c0e182f]

farex ()
Ответ на: комментарий от DawnCaster

куда смотрит Линус, руководство RH и прочие

ну сам подумай, куда им до тебя? ты и все их юзкейсы уже решил, и на безопасном баше всё переписал, осталось только всех клиентов RH переманить - и мы в шоколаде.

Divius ★★ ()
Ответ на: комментарий от ekzotech

В windows работает все кроме консоли (только внутренние команды). Это починить тоже можно, но я пока не осилил.

unDEFER ★★★★ ()
Ответ на: комментарий от unDEFER

Ubuntu server + i3wm

farex@home:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial
farex@home:~$ 

farex ()
Ответ на: комментарий от unDEFER
farex@home:~$ lsblk 
NAME                  MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT
sda                     8:0    0 465,8G  0 disk   
└─sil_caagbjcdaedd    252:0    0 931,5G  0 dmraid 
  └─sil_caagbjcdaedd1 252:2    0 931,5G  0 part   /home/farex/RAID
sdb                     8:16   0 465,8G  0 disk   
└─sil_caagbjcdaedd    252:0    0 931,5G  0 dmraid 
  └─sil_caagbjcdaedd1 252:2    0 931,5G  0 part   /home/farex/RAID
sdc                     8:32   0  55,9G  0 disk   
├─sdc1                  8:33   0   512M  0 part   /boot/efi
├─sdc2                  8:34   0  46,5G  0 part   /mnt/sdc2
└─sdc3                  8:35   0     9G  0 part   [SWAP]
sdd                     8:48   0 232,9G  0 disk   
├─sdd1                  8:49   0     1K  0 part   
└─sdd5                  8:53   0 232,9G  0 part   
farex@home:~$ 
farex ()
Ответ на: комментарий от Divius

Вы в своём сарказме все такие остроумные, шо прям пипец.

А между тем, во времена когда мониторы были выпуклые а иниты были на башах, в них почему-то не находили регулярно уязвимости одну эпичнее другой... Да и, кстати, работало это всё более чем сносно на 32-64 метрах ОЗУ так что systemd в этом плане совершенно ничего не оптимизировал.

А между тем, компании вполне могут принимать неверные стратегические решения. Примеров только за последние лет 10 набралось уже огромное множество. Вы можете шутить и кукарекать дальше, но я считаю, что проекты вроде systemd - при всех обстоятельствах и вызовах нашего времени нельзя писать на C - слишком много потенциальных возможностей накосячить, слишком много кода, слишком сложно всё это поддерживать будет. ИМХО, уж лучше и правда на баше делать.

DawnCaster ★★ ()

Отличный пост. Пользоваться я, если серьезно, не буду, но как арт-инсталляция очень понравилось самобытностью. Повеяло BBS, Фидо, ранним Вэбом и прочим аутизмом (в хорошем смысле слова).

CaptainFarrell ()
Ответ на: комментарий от unDEFER

Ага, вот тогда-то я и видел, значит. Потому что помню скриншоты - специфичные, такое не забывается.

ekzotech ★★★★ ()
Ответ на: комментарий от farex

Ах вот оно в чём всё дело! А /-то, / у вас на каком устройстве?

Он горюет от того, что lsblk ему не показал слеша..

Да, блин завязку на lsblk надо явно переделывать...

unDEFER ★★★★ ()
Последнее исправление: unDEFER (всего исправлений: 1)
Ответ на: комментарий от DawnCaster

Вы в своём сарказме все такие остроумные, шо прям пипец.

А как ещё на это реагировать?

в них почему-то не находили регулярно уязвимости одну эпичнее другой

Вы не находили? Или кто? В моём мире вот находили людей, пользовавшихся pkill для остановки сервисов. А нормально pid-файл создать вообще могли через раз. Вообще, как только копи-паста из соседнего сервиса не помогала - хоть вой.

проекты вроде systemd - при всех обстоятельствах и вызовах нашего времени нельзя писать на C

Поддерживаю, вот только C++ не лучше, а Rust пока сырой. Всё остальное предлагать - даже не смешно. Ну Go может быть, но хрен его знает.

ИМХО, уж лучше и правда на баше делать.

Нет, серьёзно? Вы на нём что-нибудь больше двух команд писали? У нас тут есть средних размеров проект на баше, я ещё не видел большего глюкодрома. Ну и классика с rm -rf /usr/$VARNAME ещё вспоминается? У нас похожее было, только удалялось всё из ~/.ssh на хосте (а должно было в chroot).

Нафиг-нафиг. Лучше вас они знают, что делать.

Divius ★★ ()
Ответ на: комментарий от Divius

Нет, серьёзно? Вы на нём что-нибудь больше двух команд писали?

Писал. Намного больше двух команд. Проблемы в баше, разумеется есть. Для того чтобы нормально писать на баше нужно как-то по минимуму понимать основы программирования (внезапно, да?).

я ещё не видел большего глюкодрома.

Если руки из жопы, а точнее квалификация «программистов» низкая, то на любом языке вы получите глюкодром. Нужно просто уметь правильно применять разные инструменты для разных задач. Сложные системные и высокопроизводительные задачи - C и C++, всякая автоматизация - баш. Я в целом, не против единого стандартизированного системного менеджера. Я против того чтобы делать такие гигантские проекты на чистом C, вот и все. Слишком высока вероятность ошибиться и получить уязвимость покруче любой уязвимости на баше.

Нафиг-нафиг. Лучше вас они знают, что делать.

Конечно лучше. А ещё бытует мнение что большинство не может ошибаться...

DawnCaster ★★ ()
Ответ на: комментарий от DawnCaster

Для того чтобы нормально писать на баше нужно как-то по минимуму понимать основы программирования (внезапно, да?).

Угу, и знать все приколы баша. И желательно отлаживать одним взглядом. Или хотя бы знать, как сделать ошибки фатальными во всем скрипте, а не только где вспомнили на них проверять.

Если руки из жопы, а точнее квалификация «программистов» низкая

И таких программистов будет сильно больше нуля на любом реальном проекте. Простой жизненный факт. Никто не будет нанимать гениев писать скрипты инициализации на баше.

Слишком высока вероятность ошибиться и получить уязвимость покруче любой уязвимости на баше.

«Если руки из жопы, а точнее квалификация «программистов» низкая» (c) DawnCaster ;)

А ещё бытует мнение что большинство не может ошибаться...

Есть мнение, и не только моё, что специалисты в некоторой области ошибаются в ней реже, чем диванные аналитики.

Divius ★★ ()
Ответ на: комментарий от unDEFER
farex@home:~$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=4548856k,nr_inodes=1137214,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=914448k,mode=755)
/dev/sdc2 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sdc1 on /mnt/sdc1 type vfat (rw,relatime,uid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/sdc2 on /mnt/sdc2 type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sdc1 on /boot/efi type vfat (rw,relatime,uid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/mapper/sil_caagbjcdaedd1 on /home/farex/RAID type ext4 (rw,relatime,stripe=32,data=ordered)
lxcfs on /var/lib/lxcfs type fuse.lxcfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=914448k,mode=700,uid=1000,gid=1000)
tmpfs on /run/user/111 type tmpfs (rw,nosuid,nodev,relatime,size=914448k,mode=700,uid=111,gid=119)
farex@home:~$ 
farex ()
Ответ на: комментарий от farex

/dev/sdc2 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sdc2 on /mnt/sdc2 type ext4 (rw,relatime,errors=remount-ro,data=ordered)

У тебя /dev/sdc2 2 раза смонтирован. Убери это (umount /mnt/sdc2), если хочешь корень на /mnt/sdc2 - поставь символическую ссылку (rmdir /mnt/sdc2; ln -s / /mnt/sdc2) и после этого unde заработает.

unDEFER ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.