2 คะแนน โดย GN⁺ 2023-07-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Minegrub คือ ธีม GRUB สำหรับตกแต่งเมนูบูต GRUB ให้เป็นสไตล์ Minecraft
  • เป็นธีม Minecraft Main Menu และมีโปรเจกต์ที่เกี่ยวข้องคือ Minecraft World Selection Menu และ Using both themes together
  • ขั้นตอนติดตั้งแบบแมนนวลประกอบด้วยการโคลนรีโพซิทอรี, เลือกพื้นหลัง, คัดลอกโฟลเดอร์ minegrub ไปยัง /boot/grub/themes/, ตั้งค่า GRUB_THEME=/boot/grub/themes/minegrub/theme.txt ใน /etc/default/grub และรัน grub-mkconfig
  • install_theme.sh ช่วยติดตั้งธีม, ติดตั้ง บริการ systemd, เปิดใช้งานพื้นหลังคอนโซล และหากไม่ได้ใช้พื้นหลังแบบสุ่มก็รองรับการเลือกพื้นหลังด้วย
  • update_theme.py จะสุ่มข้อความจาก assets/splashes.txt แล้วสร้างและแทนที่ logo.png พร้อมอัปเดตจำนวนแพ็กเกจที่ติดตั้งและรูปพื้นหลังแบบสุ่มใน backgrounds/
    • ข้อกำหนดในการรันคือ fastfetch หรือ neofetch, Python 3 หรือสภาพแวดล้อมรันที่เทียบเท่า, และแพ็กเกจ Python ชื่อ Pillow
    • สามารถระบุพื้นหลังและข้อความสำหรับการบูตครั้งถัดไปโดยใช้รูปแบบ python update_theme.py [BACKGROUND_FILE [SPLASH]]
  • มีโมดูล NixOS flake ให้ใช้งาน และมีตัวอย่างการตั้งค่า enable, splash, background, boot-options-count ใน boot.loader.grub.minegrub-theme
  • หากจำนวนตัวเลือกบูตมากหรือน้อยกว่า 4 ปุ่มอาจทับกับแถบด้านล่างได้ และสามารถปรับตำแหน่งได้โดยแก้ไขบรรทัดที่เกี่ยวข้องใน /boot/grub/themes/minegrub/theme.txt
  • ในสภาพแวดล้อมที่ใช้โฟลเดอร์ /boot/grub2 ต้องปรับพาธใน README และพาธของไฟล์ minegrub-update.service
  • พื้นหลังคอนโซลของ GRUB กำหนดได้ด้วย GRUB_BACKGROUND=<path> ใน /etc/defaults/grub แต่หากมีการตั้งค่าธีมไว้ ต้องแก้ไขหนึ่งบรรทัดใน /etc/grub.d/00_header ก่อน

1 ความคิดเห็น

 
GN⁺ 2023-07-19
ความคิดเห็นบน Hacker News
  • ควรย้ำไว้ว่า grub-mkconfig สร้าง grub.cfg ที่ซับซ้อนเกินจำเป็น
    ถ้าเขียนเอง จะจัดให้เรียบง่ายกว่ามากได้ ตั้งแต่เคอร์เนลแบบคัสตอม เคอร์เนลพื้นฐานที่มี initrd ไปจนถึงการบูต Windows โดยใช้แค่ default, timeout, menuentry ไม่กี่รายการ, insmod, set root, linux, initrd, chainloader ประมาณนี้

    • คิดถึง GRUB legacy ดี ๆ ในสมัยก่อน
      รายการส่วนใหญ่ใช้การตั้งค่าแค่ 4–5 บรรทัดก็พอ และไม่มีไวยากรณ์เชลล์รกตาหรือออปชันกับเงื่อนไขมากมาย
      การจัดการดิสก์/การบูตของ MBR กับ Linux นั้นเรียบง่ายกว่ามาก แต่ตอนนี้พอมี UUID, พาร์ทิชัน FAT32 และฟีเจอร์เกินจำเป็นของ UEFI แค่คิดจะไปยุ่งกับมันก็ต้องอ่านเอกสารเป็นกองแล้ว
      เมื่อก่อนเคยพยายามเปลี่ยน DNS server บนแล็ปท็อปตระกูล Ubuntu โดยแก้ resolv.conf แต่ก็ไม่มีอะไรเกิดขึ้น สุดท้ายต้องไปเจอไฟล์ตั้งค่า DNS ประมาณ 4 ไฟล์ในหลายตำแหน่ง และมีแค่ไฟล์เดียวเท่านั้นที่ต้องแก้จริง ๆ
      สักวันหนึ่งอาจจะปรับเมนบอร์ดกลับไปใช้โหมด legacy แล้วติดตั้งดิสโทรขั้นต่ำที่ไม่มี systemd อย่าง Crux Linux หรือ Slackware ก็ได้
    • นอกจากประเด็นที่ว่าไฟล์ตั้งค่าที่สร้างอัตโนมัตินั้นซับซ้อนแล้ว ก็สงสัยว่าการดูแลเองมีข้อดีอะไรบ้าง
      จำได้ว่าสมัยก่อนตอนมีพาร์ทิชัน Windows สคริปต์ update-grub ของ Debian หาเจอทั้งเคอร์เนลทั้งหมดรวมถึงเคอร์เนลคัสตอม และยังเจอระบบปฏิบัติการอื่นด้วย
      มองว่า การไม่ต้องดูแลอะไรเลย ดีกว่าการต้องดูแลอะไรเองมาก
  • บน Rocky Linux 8 ต้องเปลี่ยน GRUB_TERMINAL_OUTPUT เป็น "gfxterm" ถึงจะอ่านค่า GRUB_THEME
    ลูกผมรีบูตเข้า Windows ผ่าน Grub บ่อย ๆ เพื่อเล่น Minecraft Bedrock Edition ถ้าเห็นธีมนี้คงตกใจไม่น้อย

    • เด็ก ๆ ใช้ Linux Bedrock launcher แบบไม่เป็นทางการกันอยู่
      บ่อยครั้งจะช้ากว่ารุ่นล่าสุดอยู่นิดหน่อย แต่โดยส่วนตัวแล้วมันทำงานลื่นกว่า Windows มาก
      https://github.com/minecraft-linux/appimage-builder/releases...
  • "I use Arch BTW" ก็ดีเยี่ยมอยู่แล้ว แต่ชอบตรงที่มี ข้อความสแปลช ใส่มาหลายอัน

  • แน่นอนว่าโปรเจกต์นี้ก็ไม่พลาดที่จะมี รายงานบั๊ก ให้ย้ายโค้ดไปยัง Git host อื่น
    https://github.com/Lxtharia/minegrub-theme/issues/18
    เข้าใจอุดมคตินั้นอยู่ แต่ไม่คิดว่านี่ควรเป็นที่สำหรับรณรงค์
    หวังว่าผู้เขียนจะไม่รู้สึกกดดัน และสามารถปิด issue ได้หลังจากพูดอย่างสุภาพว่า “คำอธิบาย issue นี้ดูไม่ใช่บั๊กในโค้ดของผม”

    • นึกถึงเมื่อก่อนที่มีเด็กคนหนึ่งครอว์ล GitHub แล้วสร้าง issue กับ pull request อัตโนมัติให้ใช้ภาษาที่ครอบคลุมมากขึ้น
      แต่ทำได้ค่อนข้างหยาบ ๆ เช่นแบบนี้: https://github.com/trekhleb/javascript-algorithms/pull/875/f...
      [1] ตัวอย่าง: https://github.com/EbookFoundation/free-programming-books/pu...
    • ก็ยอมรับว่าน่ารำคาญอยู่บ้าง แต่การใช้แท็บ Issues สำหรับเรื่องอย่างคำขอฟีเจอร์ก็เป็นเรื่องปกติ
      เพราะงั้นมันคงถึงได้ชื่อว่า Issues ไม่ใช่ Bugs
  • ควรพูดถึงด้วยว่าคนนี้ทำ ธีม Doom ไว้ด้วย
    https://github.com/Lxtharia/doomgrub-theme

  • อาจจะออกนอกเรื่องนิดหน่อย แต่อยากรู้ว่ามีธีมหรือ GUI สำหรับ การกรอกรหัสผ่าน LUKS ไหม
    สำหรับคนในครอบครัวที่คุ้นกับ GUI สมัยใหม่ การทำงานของเวอร์ชัน command line นั้นไม่ค่อยเป็นธรรมชาติเท่าไร

    • ตั้งค่านิดหน่อยก็ทำได้ด้วย Plymouth
      ในบรรดาธีม Plymouth มีบางธีมที่ให้พรอมป์ LUKS แบบคัสตอม
      https://wiki.archlinux.org/title/plymouth
      https://forum.manjaro.org/t/how-to-theme-luks/79792/2
    • สงสัยว่าจะสคริปต์ด้วยอะไรแบบ https://help.gnome.org/users/zenity/3.32/password.html.en ได้ไหม
    • Fedora ถ้าเปิดการเข้ารหัสตอนติดตั้ง จะทำแบบนั้นให้อัตโนมัติ
    • ถ้าไม่ได้มีอะไรพัง ทั้ง Ubuntu และ Fedora ก็น่าจะทำงานแบบนั้นอยู่แล้ว
    • นึกถึง Plymouth ขึ้นมา
      จำได้ว่าตอนทดสอบเมื่อนานมาแล้วมีพรอมป์ให้ใส่รหัสผ่านอยู่
  • ตอนแรกอ่านผิดเป็น “Microsoft Grub Theme” แล้วรู้สึกว่าไอรอนีน่าสนใจดี
    แต่ก็สนุกและน่าประทับใจจริง ๆ ไม่รู้มาก่อนว่า Grub theme ทำอะไรได้ถึงขนาดนี้

  • ต่อไปต้องมีใครสักคนเขียนเรนเดอร์เรอร์ให้ กล้องฉากหลังของโลก หมุนได้ด้วย

    • การทำ CPU software rasterizer ที่ทำงานบน UEFI น่าจะเป็นโปรเจกต์ที่สนุกทีเดียว
      GPU นั้นยากแน่นอน แต่การใช้ CPU หลายคอร์อาจเป็นไปได้
    • ไม่รู้ว่าใน Grub ทำได้หรือเปล่า
      ครั้งสุดท้ายที่เห็น มีเครื่องมือชื่อ Burg ที่แสดงพื้นหลังเป็นแอนิเมชันเหมือน GIF ได้ แต่โดยรวมแล้วหยาบมากและประสบการณ์ใช้งานไม่ดีนัก
  • ธีมนี้ก็ดีมากจริง ๆ แต่ผมคงใช้ Fallout Grub theme นี้ต่อไป
    https://github.com/shvchk/fallout-grub-theme/tree/master
    อยากรู้ว่าธีมโปรดของทุกคนคืออะไร

  • สงสัยว่า Grub คืออะไร
    ลองสุ่มดู repository ของ grub2 สามแห่งแล้วก็ไม่เจอลิงก์ที่เกี่ยวข้อง

    • GRUB คือ bootloader ที่ใช้กันบ่อยในระบบ Linux
      เมื่อเปิดคอมพิวเตอร์ มันจะแสดงเมนูตัวเลือกการบูต แล้วบูตระบบปฏิบัติการที่ติดตั้งไว้ตามที่เลือก
      ถ้าใช้ธีมนี้ เมนูที่ใช้เลือกว่าจะบูตเข้า OS ไหนก็จะหน้าตาเหมือนเมนู Minecraft