[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
AZJIO, спасибо. Я только утреннее обновление опробовал, а тут новое вышло.
PS: Думаю нужно репозиторий делать ah

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
Обновлено
1. Значки кнопок сохранения (2 шт) изменяются на красный цвет, когда документ требует сохранения
2. Окно информации теперь поддерживает множество кнопок и зависит от числа параметров в секции [info] в ini-файле.
3. Моноширинный шрифт для окна инфо можно задать в ini-файле FontInfo=DejaVuSansMono
4. Исправлена ошибка связанная с изменением размера окна информации, которая распространялась на оба окна.

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
AZJIO, приветствую. Протестировал обновление. Стало еще лучше и удобнее. ay Есть просьба. Добавить шаблоны, которые потом можно было бы использовать. Например: сохранить выражение probe --set=UUID --fs-uuid $root, чтобы потом была возможность подменять UUID раздела переменной $UUID. Для того, чтобы шаблоны были под рукой.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
vovan1982
Есть следующие идеи
1. Сделать флаг предупреждать ли о несохранённасти файла перед закрытием, с галкой "больше на спрашивать.
2. UUID в шаблоне должен быть явный пускай такой: 11111111-2222-3333-4444-555555555555 (или регвыром любой выследить), так как если там будет слово UUID, то не каждый догадается что его надо изменить на свой. Можно сделать проверку буфера при вставке и если прога обнаруживает там UUID то предлагает подменить искусственный UUID на тот что в буфере обмена

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
AZJIO, 2-й вариант мне нравится.
ЗЫ: прилагаю свой конфиг. Просто у меня нигде явно UUID не указан. Ну это так, для ознакомления.

grub_cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
probe --set=UUID --fs-uuid $root
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${initrdfail}" = 2 ]; then
set initrdfail=
elif [ "${initrdfail}" = 1 ]; then
set next_entry="${prev_entry}"
set prev_entry=
save_env prev_entry
if [ "${next_entry}" ]; then
set initrdfail=2
fi
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function initrdfail {
if [ -n "${have_grubenv}" ]; then if [ -n "${partuuid}" ]; then
if [ -z "${initrdfail}" ]; then
set initrdfail=1
if [ -n "${boot_once}" ]; then
set prev_entry="${default}"
save_env prev_entry
fi
fi
save_env initrdfail
fi; fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
insmod part_msdos
insmod ext2
set root='hd1,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6 $UUID
else
search --no-floppy --fs-uuid --set=root $UUID
fi
if loadfont /boot/grub/fonts/UbuntuMono32.pf2 ; then
set gfxmode=1920x1080,auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=ru_RU
insmod gettext
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='hd1,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6 $UUID
else
search --no-floppy --fs-uuid --set=root $UUID
fi
insmod gfxmenu
insmod png
set theme=($root)/boot/grub/themes/linuxmint-2k/theme.txt
export theme
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=hidden
set timeout=5
# Fallback hidden-timeout code in case the timeout_style feature is
# unavailable.
elif sleep --interruptible 5 ; then
set timeout=0
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux_proxy ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if [ ${grub_platform} != pc ]; then
set linux_gfx_mode=keep
elif hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry "Linux Mint 21.3 Cinnamon" --hotkey "m" --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-$UUID' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6 $UUID
else
search --no-floppy --fs-uuid --set=root $UUID
fi
linux /boot/vmlinuz-6.5.0-25-generic root=UUID=$UUID ro quiet splash $vt_handoff
initrd /boot/initrd.img-6.5.0-25-generic
}
### END /etc/grub.d/10_linux_proxy ###
### BEGIN /etc/grub.d/30_os-prober_proxy ###
probe --set=WUID --fs-uuid (hd0,msdos1)
menuentry "Windows 10 (on /dev/sda1)" --hotkey "w" --class windows --class os $menuentry_id_option 'osprober-chain-$WUID' {
savedefault
insmod part_msdos
insmod ntfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 $WUID
else
search --no-floppy --fs-uuid --set=root $WUID
fi
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober_proxy ###
### BEGIN /etc/grub.d/31_linux_zfs ###
### END /etc/grub.d/31_linux_zfs ###
### BEGIN /etc/grub.d/32_linux_xen ###
### END /etc/grub.d/32_linux_xen ###
### BEGIN /etc/grub.d/33_os-prober_proxy ###
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/33_os-prober_proxy ###
### BEGIN /etc/grub.d/34_uefi-firmware ###
### END /etc/grub.d/34_uefi-firmware ###
### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###
### BEGIN /etc/grub.d/40_custom_proxy ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Grub2 FM" --hotkey "g" --class linux {
set root='hd0,msdos1'
search --no-floppy --fs-uuid --set=root $UUID
if [ ${grub_cpu} = "x86_64" -a ${grub_platform} = "efi" ]; then
chainloader /boot/grub/grubfmx64.efi
else
loopback loop /boot/grub/grubfm.iso
linux /boot/grub/loadfm
initrd /boot/grub/grubfm.iso
fi
}
menuentry "Reboot" --hotkey "r" --class restart {
reboot
}
menuentry "Shutdown" --hotkey "s" --class shutdown {
halt
}
### END /etc/grub.d/40_custom_proxy ###
### BEGIN /etc/grub.d/41_linux_proxy ###
probe --set=UUID --fs-uuid $root
submenu "Advanced options for Linux Mint 21.3 Cinnamon" --hotkey "a" --class steamos {
menuentry "Linux Mint 21.3, with Linux 6.5.0-25-generic" --hotkey "1" --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.5.0-25-generic-advanced-$UUID' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6 $UUID
else
search --no-floppy --fs-uuid --set=root $UUID
fi
echo 'Loading Linux 6.5.0-25-generic ...'
linux /boot/vmlinuz-6.5.0-25-generic root=UUID=$UUID ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.5.0-25-generic
}
menuentry "Linux Mint 21.3, with Linux 6.5.0-25-generic (recovery mode)" --hotkey "2" --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.5.0-25-generic-recovery-$UUID' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6 $UUID
else
search --no-floppy --fs-uuid --set=root $UUID
fi
echo 'Loading Linux 6.5.0-25-generic ...'
linux /boot/vmlinuz-6.5.0-25-generic root=UUID=$UUID ro recovery nomodeset dis_ucode_ldr
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.5.0-25-generic
}
menuentry "Linux Mint 21.3, with Linux 5.15.0-100-generic" --hotkey "3" --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-100-generic-advanced-$UUID' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6 $UUID
else
search --no-floppy --fs-uuid --set=root $UUID
fi
echo 'Loading Linux 5.15.0-100-generic ...'
linux /boot/vmlinuz-5.15.0-100-generic root=UUID=$UUID ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-5.15.0-100-generic
}
menuentry "Linux Mint 21.3, with Linux 5.15.0-100-generic (recovery mode)" --hotkey "4" --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-100-generic-recovery-$UUID' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6 $UUID
else
search --no-floppy --fs-uuid --set=root $UUID
fi
echo 'Loading Linux 5.15.0-100-generic ...'
linux /boot/vmlinuz-5.15.0-100-generic root=UUID=$UUID ro recovery nomodeset dis_ucode_ldr
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-5.15.0-100-generic
}
}
### END /etc/grub.d/41_linux_proxy ###
### BEGIN /etc/grub.d/43_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg
fi
### END /etc/grub.d/43_custom ###

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
vovan1982, я сейчас в Windows сделал выше сказанные фичи (поиск UUID регвыром и мессага с предложением заменить), но лень пока в Linux перезагружать чтобы компилировать и собирать. У меня четыре ОС, иногда даже больше, если бы диск сразу купил на 2 терабайта точно было бы больше и под каждую ОС свой UUID и вариант с одним UUID на всех не подходит, а в шаблонах его вообще нет, там они могут появится если пользователь сделал копии своих пунктов как шаблоны. Если UUID сохранён как переменная, это тоже не создаёт проблем.
Я могу сделать окно замены, чтобы найти в конфиге какой-то текст и заменить другим. Мне кажется это более универсальное решение, чем прописывать что-то индивидуальное. Или даже добавить историю замен, чтобы можно было выбрать.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
Обновления
При открытии шаблона если в нём есть UUID и в буфере обмена UUID, то предложение заменить UUID в шаблоне.
Необходимость сохранения теперь также контролируется при дублировании, удалении, открытии шаблона
При закрытии программы предлагается сохранить, если данные помечены как не сохранённые.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
Обновление
Добавлено диалоговое окно замены.

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
AZJIO, aa отличнл. Завтра опробую.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
Вот так оно выглядит.

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
AZJIO, привет. Отлично. И шаблоны и поиск и замена.
Единственное. На MINT'е не запоминает выбор "запускать от root".

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
vovan1982, у меня Mint, запоминает. Причём на остальных системах тоже проверял, запоминает. Если что не пароль запоминает, а только принцип запуска. пароль спрашивает всегда при сохранённым root=1. А при запуске без root не спрашивает пароль, но и не сохраняет в папки требующие пароли, при этом кому-то не понравится что прога запускается от админа и он готов открывать без админа, а потом копировать сохранённый конфиг в папку grub. Поэтому и сделана возможность самостоятельно сделать выбор.
Надо сделать если без админа, то бэкапировать в папку ini-конфига, а то настоящая то папка grub недоступна.

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
AZJIO, спасибо за разъяснение. Я подумал, что и пароль спрашивать не будет.
А где сохраняет ini файл?

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 8 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
102594
А где сохраняет ini файл?
/home/user/.config/Grub2-generator/
На днях как нибудь скомпилирую с бэкапированием без админа, исходник уже обновил, на арче собрал.

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 1129
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
AZJIO, на данном этапе я от софтины уже получил то, что хотел. Куски кода бэкапит и их потом можно восстановить. Данную фичу я проверил.
Если будет дальнейшее развитие, то я также в деле по тестированию.
PS: на самом деле ini и шаблоны сохраняет в /root/.config/Grub2-generator/ и /root/.config/Grub2-generator/template/ , но для меня это не проблема, просто нужно было знать путь к месту сохранения.

Страница 2 из 3


Показать сообщения:    

Текущее время: 21-Ноя 14:33

Часовой пояс: UTC + 3


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