Basit bir web tarayıcısı çalıştırmak için nasıl özel bir dağıtım oluşturabilirim?


18

Geniş bir ekranda tek bir web sayfasını görüntülemek amacıyla bazı hafif makineleri bir araya getiriyoruz. Temelde hafif ve olabildiğince hızlı bir şekilde önyükleme yapmak için makineye ihtiyacım var ve temelde bir tarayıcı (WebKit?) Tam ekranda, JavaScript tarafından dinamik olarak kontrol edilecek bir sayfa yüklüyor. Entegre GPU'lu bir Intel D525 çift çekirdekli işlemci kullanacağım, bu nedenle herhangi bir özel grafik sürücüsü ayarlamam gerekmiyor. Bu makinelerden birini düzgün bir şekilde kurduğumda, ddsabit sürücüyü bilgisayarıma ve ardından her yeni makineye dökebilmeliyim.

Aşağıdaki sorularım var:

  1. Yalnızca ihtiyacım olanı içeren bir "dağıtım" ı nasıl oluşturabilirim? Sanırım çekirdeğe (;]), X'e ve bir çeşit web tarayıcısına ihtiyacım olacak, ama gerçekten fazla değil. Ubuntu Server gibi bir şey alıp sadece X Server'ı yükleyebilir ve makinenin otomatik olarak oturum açmasını, X'i başlatmasını ve web tarayıcıyı başlatmasını sağlamanın bir yolu olabilir mi? Okuyabildiğim bir kitap ya da makale falan var mı?

  2. Esasen "kromsuz bir Chromium" çalıştıran hoş, sıyırılmış bir web tarayıcısı için ne kullanabilirim? Bu makineler kullanıcı girişini hiç kabul etmeyecek. Onları yönetmem gerekirse SSH kullanacağım.

Yanıtlar:


12

Birçok dağıtımın asgari kurulum için bazı olanakları vardır; esasen yalnızca açıkça yüklemek istediğiniz paketleri manuel olarak seçtiğiniz yerde. Debian bu yeteneğe sahiptir ve sizin durumunuzda diğer bariz asgari yarışmacı Arch Linux'tan daha iyi bir seçim olacaktır.

Arch'ın yuvarlanma serbest bırakma durumu, kaçınmak istediğiniz bir düzeyde karmaşıklık sağlayabilir. Debian, aradığınız basit, minimal tabanı ve artı kararlılığı sağlayacaktır. Debian'ı kiosk olarak kullanma konusunda bazı yararlı ipuçları sunabilecek bir blog yazısı var.

Bir tarayıcı için olduğu gibi beav_35 anlaşılacağı, Uzbl iyi bir seçimdir. Benim tavsiyem , yazılabilir, klavye ile çalışan ve SSH üzerinden etkin bir şekilde kontrol edilebilen bir WebKit tarayıcısı olan Vimprobable olacaktır .

Bir pencere yöneticisi olarak, dwm'yi tavsiye ederim : 2000'den az SLOC'de son derece hafiftir ve bir kiosk tipi kurulum için kolayca yapılandırılabilir.


dwm bu amaç için harika görünüyor ve zaten Debian tabanlı sistemlere çok aşinayım, bu yüzden muhtemelen Debian kullanacağım. İşletim sistemini ne kadar küçültebileceğimi düşünüyorsunuz? Ve nasıl Debian dağıtımı yapabilirim?
Naftuli Kay

Yükleme işlemine devam ederken, Dizüstü Bilgisayar, Standart vb. Yerine paket seç adımına geldiğinizde, "Manuel" seçeneğini seçin ve yalnızca çıplak bir minimum ayar için ihtiyacınız olan paketleri (X gibi) seçin: buradan başlayın debian.org/CD / netinst / # kartvizit-istikrarlı
jasonwryan

5

Her şeyden önce, tekerleği yeniden icat etmek istemeyebilirsiniz ... Kiosk odaklı birkaç dağıtım var. Bunlardan biri size çok iş kazandırabilir.

İkincisi, Fedora ve RHEL'de (veya CentOS veya Scientific Linux) Kickstart'ı biliyorsanız, bu dağıtımlardan herhangi birini kendi başınıza yapmak için Fedora araçlarını kullanabilirsiniz. Dokümantasyon biraz dağınık, ama buradan başlayın .


Debian / Ubuntu eşdeğeri: FAI (Tam Otomatik Kurulum)
Gilles'in SO


3

Bu oldukça ilgili bir sorudur ve projeniz tamamen açık olmadığından, bu önerilerin bazıları işaretsiz olabilir, ancak değerlendirilecekleri düşünün.

  • Görüntü dizisinin bir parçası olan hiçbir bilgisayarda web tarayıcısına ihtiyacınız olmayabilir. Birçok ekranda tek bir sayfa göstermeye çalışıyorsanız, bir tür toplu görüntüleme teknolojisini kullanmak isteyeceksinizdir. Xorg'un çeşitli makinelerde video cihazlarından büyük bir ekran oluşturma konusunda uzmanlaşmış çeşitli varyantları vardır.

  • Her makinede ayrı X sunucuları kullansanız bile, bir veya daha fazla bilgisayardan ekran verileri göndermek için X iletmeyi kullanabilirsiniz, böylece tarayıcılar yerel olarak çalışmak zorunda kalmaz.

  • Hiç pencere yöneticisi veya uygulamanızın tam ekranını başlatmak için geometri spesifikasyonlarını kullanmak veya awesomeher X ekranındaki pencereleri yönetmek için yapılandırılabilir bir döşeme veya çerçeve penceresi yöneticisi (örneğin ) kullanmak isteyeceksiniz . Bunlar, tam ekran pencereleri sıralamayı ve kontrol etmeyi kolaylaştırır ve son derece yazılabilir.

  • Bir tarayıcı gelince uzbl, muhtemelen açık bir seçim olduğunu düşünüyorum .

  • Bu, ağ önyüklemesi için iyi bir uygulama olabilir. Sunucuyu TFTP aracılığıyla bir netbook çekirdeği ve nfs üzerinden bir dosya sistemi ile kurabilirsiniz. Müşterilerinizin tek yapması gereken, bu sunucuyla bağlantı kurmak, çekirdeklerini indirmek ve gitmek için netboot özellikli NIC kullanmaktır. Sabit sürücü yok! Ve kolay bakım. Tüm makineler aynı görüntüyü önyükleyebilir.

  • "Dağıtımınız" muhtemelen iki şeyden oluşmalıdır. 1) Bir paket kümesi ve 2) bir dizi yapılandırma dosyası. Paket kümesi, yüklenmesi gereken paketlerin bir listesidir. Bu genellikle bir metin dosyasında birleştirilebilir ve daha sonra bu paket listesini bir hedefe (sabit sürücü veya nfs bağlama noktanız olacak bir dizin) yüklemek için çoğu dağıtım şirketinin paket yöneticilerini kullanabilirsiniz. Yapılandırma dosyaları muhtemelen gitbaşka bir kaynak kontrol sisteminde tutulmalı ve birkaç komut dosyası içermeli ve paket setiyle birlikte yüklenen temel sistemde hangi yapılandırma modlarının yapılması gerekiyorsa. Yeni bir sistem kurmak daha sonra:

    • Sürücü veya hedef dizini bağlama
    • package_manager --install-distro --package-set=/path/packagelist.txt --target=/path
    • cd /target/path
    • git clone /path/to/repo (veya yapılandırma kodunuzu sistem kök dizinine başka şekilde atın)
    • Sürücü varsa bootloader'ı yükleyin veya netboot ise PXE yapılandırmasını ekleyin
    • çizme.

Temel olarak hangi dağıtımı kullandığınız, en rahat olduğunuz şeye bağlı olmalıdır. PLD-Linux'u kendim için kullanırım , ancak muhtemelen ArchLinux'u bir acemi ile çalışmak için benzer ama daha iyi belgelenmiş bir sistem olarak tavsiye ederim . Debian , Fedora veya Gentoo'nun bunun için çalışmamasının bir nedeni yoktur .


net önyükleme: Kulağa KORKU geliyor ve bakımı çok daha kolay hale getirir. Bununla birlikte, her makineye özgü bilgileri getireceğinden her bir makinenin farklı bir URL yüklemesi gerekir. Mı o yapılabilir? Her makineyi görünüşte aynı kalacaktı, ancak her makineyi küçük bir güvenlik aracı olarak HTTP-Temel kimlik doğrulaması için farklı bir kullanıcı / şifre kullanacak şekilde yapılandırabilirim.
Naftuli Kay

"Ekran dizisinin bir parçası olan her bilgisayarda bir web tarayıcısına ihtiyacınız olmayabilir": Sanırım aslında. Bu makinelerin her biri farklı bir konumda olacak, VGA veya HDMI üzerinden bir ekran sürecek ve o makine için benzersiz bir web sayfası görüntüleyecek. (kullanıcı / şifre üzerindeki içeriği değiştiren tek bir URL sunabilmemize rağmen).
Naftuli Kay

pencere yöneticilerinde: Muhtemelen dwmveya gibi gerçekten hafif bir tane kullanırım awesome. Bir pencere yöneticisine tam ekran modunda başlık çubuğu olmadan bir uygulamayı başlatmasını nasıl söyleyebilirim?
Naftuli Kay

dağıtımın ne olması gerektiğine dair: bu yüzden gerçekten tek ihtiyacım olan bir git repo oluşturmak, bir paket listesi ve yapılandırma dosyaları tutmak ve daha sonra bir şekilde bir ISO oluşturmak. En küçük Debian dağıtımını nasıl alabilirim ve oradan nasıl çalışabilirim? Bu yapılandırma dosyalarını nasıl alabilir ve yazılabilir bir ISO yapabilirim? Kullandığım olurdu apt-getveya aptitudeDebian üzerinde.
Naftuli Kay

X-iletme konusunda: makine başına bir ekran kullanacağım için gerçekten gerekli olmamalı. Bilgisayarımın ona bağlanabilmesi için makinenin ters SSH bağlantısı vermesinin bir yolunu bulmam gerekecek, ancak bunu otomatikleştirmenin bir yolu olabilir. A bilgisayarının B bilgisayarına TCP bağlantısını açmasının ve B bilgisayarının SSH üzerinden A bilgisayarına bu bağlantı üzerinden bağlanmasını sağlamanın bir yolu var mı? Aksi takdirde, her yönlendirici için dinamik DNS adları almam gerekir: eğlenceli / kolay değil.
Naftuli Kay

2

Buildroot 2016.05 + Midori

Buildroot , minimum dağıtım oluşturmak için harika bir araçtır:

  • ona bir .configdosya ver
  • gerekli tüm yazılımları ve bağımlılıkları indirip derler ve bir görüntü oluşturur

Midori , minimalist WebKit tabanlı bir tarayıcıdır ve Buildroot'ta yerleşik bir Midori paketi vardır.

.configkullanılan dosya: https://github.com/cirosantilli/buildroot-configs/blob/32d1174e0bf8d00b92323eebe8901af3f8c389d3/2016.05/qemu_x86_64_x11_midori_defconfig

Bu yapılandırma dosyası nasıl oluşturulur:

  1. Follow: X11'i kendi Linux Buildroot sistemime nasıl kurabilirim? | Xix ile bir görüntü oluşturmak için Unix ve Linux Stack Exchange .
  2. make menuconfig
    1. toolchain
      1. C kütüphanesi
        1. glibc (midori için)
    2. Hedef paketler
      1. Grafik kütüphaneleri ve uygulamaları
        1. mesa3d
          1. hangisinin gerekli olduğunu bilmediğim için tüm Galyum ve DRI sürücülerini seçin (OpenGL EGL için)
          2. OpenGL EGL (libgtk3 için)
      2. Kütüphaneler
        1. Grafik 1. libgtk3 (midori için)

Yapıyı temizleyin çünkü takım zincirini değiştirdik ve tekrar derledik:

rm -rf output
make BR2_JLEVEL=$(nproc)

Bekleyin saatler. Sonra olağan:

qemu-system-x86_64 \
    -enable-kvm \
    -M pc \
    -m 512 \
    -kernel output/images/bzImage \
    -drive file=output/images/rootfs.ext2,if=virtio,format=raw \
    -append root=/dev/vda \
    -net nic,model=virtio \
    -net user

Ve QEMU'nun içinden:

root
startx

ve X11 GUI'den bir xtermpencereyi tıklayıp çalıştırın:

midori

Sonuç:

resim açıklamasını buraya girin

Görüntü boyutu: 220M! Bunu çıplak bir X11 sisteminin 28M'si ile karşılaştırın X11'i kendi Linux Buildroot sistemime nasıl kurabilirim? - Unix ve Linux Yığın Değişimi . Büyük olasılıkla WebKit + GTK3 bağımlılıkları nedeniyle.

Ubuntu 16.04 ana bilgisayarında test edildi, QEMU 2.5.0.

NetSurf

Fbdev'i destekleyen SDL'de yazılmıştır: http://www.netsurf-browser.org/about/screenshots/#framebuffer

fbdev, X11'den geçmeyen bir Linux çekirdek modülü tarafından sunulan daha düşük seviyeli bir arabirimdir (X11'in isteğe bağlı olarak arka uç olarak kullanabileceğini düşünüyorum). Temelde sadece belleğe yazıyorsunuz ve ekranda görünüyor.

Ubuntu'da fbdev'i kullanmak için bir TTY'de olmanız gerekir (örn. Ctrl + Alt + F1).

Yani muhtemelen bir görüntü kurtulabiliriz şekilde Midori daha küçük.

Buildroot 2016.05'in sunması netsurf-buildsystemgereken bir paketi var, ancak test etmedim. Birisi onu çalıştırmayı başarabilirse, lütfen .config, ekran görüntüsü ve resim boyutunun bağlantısını düzenleyin.


1

Bir kez bir Arch Linux ISO alır ve tam otomatik bir yükleme yapan değiştirilmiş bir kök görüntü ile yeni bir ISO üretir küçük bir bash komut dosyası yazdım. Buna bölümleme ve sistemin Xorg, FVWM ve Chromium ile kurulması ve yapılandırılması dahildir. Yüklü sistem otomatik olarak oturum açar ve Chromium'u başlatır. Yeni ISO'yu bir USB flash sürücüye koyun ve geriye yaslanın. ;-)

Yasal Uyarı: komut dosyası olduğu gibi sağlanır, garanti verilmez. Bir süredir kullanmadım, bu yüzden burada veya orada bir tweak gerekebilir. Gerektiği gibi değiştirin.

#!/bin/bash
# Helpful pages:
#
#   * [ArchWiki topic][1] that explains the options of an AIF configuration
#     file.
#
#   * [Status of automated installation][2], a topic in the Arch Linux Forums
#     that contains the original basic install script by *mhertz*.
#
# [1]: https://wiki.archlinux.org/index.php/AIF_Configuration_File
# [2]: https://bbs.archlinux.org/viewtopic.php?id=111925

TMP_DIR=/tmp/arch-install

# Read command line parameters for input and output ISO files.
if [ -z "$1" ]; then
    echo 'No input file specified, aborting.'
    exit 1
elif [ ! -f "$1" ]; then
    echo 'Input file "'$INPUT_ISO'" not found, aborting.'
    exit 1
elif [ -z "$2" ]; then
    echo 'No output file specified, aborting.'
    exit 1
elif [ -f "$2" ]; then
    echo 'Output file "'$OUTPUT_ISO'" already exists, aborting.'
    exit 1
fi

# Determine full paths to input and output ISO files.
INPUT_ISO=$(readlink -f "$1")
OUTPUT_ISO=$(readlink -f "$2")

# Set some variables for convenience.
SOURCE_DIR=$TMP_DIR/source
DEST_DIR=$TMP_DIR/dest
ROOT_DIR=$TMP_DIR/squashfs-root
BOOT_CFG=$DEST_DIR/boot/isolinux/isolinux.cfg

# Extract ISO image and root image.
mkdir -p $SOURCE_DIR
mount -o loop "$INPUT_ISO" $SOURCE_DIR
cp -a $SOURCE_DIR $DEST_DIR
umount $SOURCE_DIR
rmdir $SOURCE_DIR
unsquashfs -d $ROOT_DIR $DEST_DIR/root-image.sqfs
rm $DEST_DIR/root-image.sqfs

# Modify the root image as needed.
cat >> $ROOT_DIR/etc/aif.conf <<EOF
SOURCE=cd
FILE_URL=file:///src/core/pkg
SYNC_URL=http://ftp.tu-chemnitz.de/pub/linux/archlinux/\$repo/os/\$arch
HARDWARECLOCK=UpTC
TIMEZONE=Europe/Vienna
RUNTIME_REPOSITORIES=
RUNTIME_PACKAGES=
TARGET_GROUPS=base
TARGET_PACKAGES_EXCLUDE=
TARGET_PACKAGES='openssh xorg xcursor-vanilla-dmz-aa'

worker_runtime_network () {
    dhcpcd eth0
}

worker_configure_system () {
    prefill_configs
    sed -i '/^HOSTNAME/ s/"myhost"/"arch"/' \$var_TARGET_DIR/etc/rc.conf
    sed -i '/^password/ s/pam_permit\.so/pam_unix.so md5 shadow/' \$var_TARGET_DIR/etc/pam.d/chpasswd
    sed -i '\|Server = http://ftp\.tu-chemnitz\.de/| s/^#//' \$var_TARGET_DIR/etc/pacman.d/mirrorlist
    sed -i '/id:3:initdefault:/ s/^/#/' \$var_TARGET_DIR/etc/inittab
    sed -i '/id:5:initdefault:/ s/^#//' \$var_TARGET_DIR/etc/inittab
    sed -i '\|x:5:respawn:/usr/bin/xdm| s/^/#/' \$var_TARGET_DIR/etc/inittab
    echo "x:5:respawn:/bin/su -l -c '/usr/bin/startx </dev/null >/dev/null 2>&1' myuser" >> \$var_TARGET_DIR/etc/inittab
    sed -i 's/^timeout .*$/timeout 0/' \$var_TARGET_DIR/boot/grub/menu.lst
    cp /etc/rc.local.firstboot \$var_TARGET_DIR/etc/rc.local
}

# Mandatory variables.
GRUB_DEVICE=/dev/sda
PARTITIONS='/dev/sda 20:ext2:+ 512:swap 2500:xfs *:xfs'
BLOCKDATA='/dev/sda1 raw no_label ext2;yes;/boot;target;no_opts;no_label;no_params
/dev/sda2 raw no_label swap;yes;no_mountpoint;target;no_opts;no_label;no_params
/dev/sda3 raw no_label xfs;yes;/;target;no_opts;no_label;no_params
/dev/sda4 raw no_label xfs;yes;/home;target;no_opts;no_label;no_params'
EOF

cat >> $ROOT_DIR/etc/rc.local <<EOF
aif -p automatic -c /etc/aif.conf
reboot
EOF

cat >> $ROOT_DIR/etc/rc.local.firstboot <<EOF
echo root:rootpassword | chpasswd
useradd -m myuser
echo myuser:myuser | chpasswd
cat >> /home/myuser/.xinitrc <<EOT
#!/bin/sh
exec fvwm2
EOT
cat >> /home/myuser/.Xdefaults <<EOT
Xcursor.theme: Vanilla-DMZ-AA
EOT
mkdir -p /home/myuser/.fvwm
cat >> /home/myuser/.fvwm/config <<EOT
DeskTopSize 1x1
DesktopName 0 Main
DestroyFunc StartFunction
AddToFunc StartFunction
 + I Test (Init) Exec exec xsetroot -solid '#303030'
 + I Test (Init) Exec exec chromium 'http://www.stackoverflow.com'
DestroyMenu RootMenu
AddToMenu RootMenu "Menu" Title
 + "Terminal" Exec exec xterm
 + "Browser" Exec exec chromium 'https://www.stackoverflow.com'
 + "" Nop
 + "Log off" Quit
 + "Reboot" Exec exec sudo /sbin/reboot
 + "Shutdown" Exec exec sudo /sbin/halt
OpaqueMoveSize unlimited
Style * ClickToFocus, ResizeOpaque
Style chromium !Title, !Border, !Handles
CursorStyle root top_left_arrow
CursorStyle stroke hand2
IgnoreModifiers L25
Key Help R A -
Key F1 R A -
Key Tab A M -
Key Escape A MC -
Mouse 1 R A -
Mouse 1 T A Move
Mouse 1 FS A Resize
Mouse 1 I A Iconify Off
Mouse 2 FST A -
Mouse 3 R A Menu RootMenu Nop
EOT
mkdir -p /home/myuser/.config/chromium/Default
touch /home/myuser/.config/chromium/First\ Run
cat >> /home/myuser/.config/chromium/Default/Preferences <<EOT
{
   "alternate_error_pages": {
      "enabled": false
   },
   "autofill": {
      "enabled": false
   },
   "browser": {
      "custom_chrome_frame": true,
      "enable_spellchecking": false
   },
   "default_search_provider": {
       "enabled": true,
       "encodings": "UTF-8",
       "icon_url": "about:blank",
       "id": "2",
       "instant_url": "",
       "keyword": "google.com",
       "name": "Google",
       "prepopulate_id": "1",
       "search_url": "{google:baseURL}search?ie={inputEncoding}&q={searchTerms}",
       "suggest_url": ""
   },
   "devtools": {
      "disabled": true
   },
   "dns_prefetching": {
      "enabled": false
   },
   "download": {
      "directory_upgrade": true
   },
   "extensions": {
      "chrome_url_overrides": {
         "bookmarks": [ "chrome-extension://eemcgdkfndhakfknompkggombfjjjeno/main.html" ]
      }
   },
   "geolocation": {
      "default_content_setting": 2
   },
   "google": {
      "services": {
         "username": ""
      }
   },
   "homepage": "https://www.stackoverflow.com",
   "homepage_is_newtabpage": false,
   "intl": {
      "accept_languages": "en",
      "charset_default": "ISO-8859-1"
   },
   "ntp": {
      "pref_version": 3
   },
   "profile": {
      "clear_site_data_on_exit": true,
      "content_settings": {
         "pref_version": 1
      },
      "default_content_settings": {
         "plugins": 1
      },
      "exited_cleanly": true,
      "notifications_default_content_setting": 2,
      "password_manager_enabled": false
   },
   "safebrowsing": {
      "enabled": false
   },
   "search": {
      "suggest_enabled": false
   },
   "tabs": {
      "use_vertical_tabs": false
   },
   "translate": {
      "enabled": false
   }
}
EOT
chown -R myuser:myuser /home/myuser
pacman -Sy
pacman -S --noconfirm pacman
pacman -S --noconfirm fvwm-devel chromium sudo
echo 'myuser arch=NOPASSWD: /sbin/halt,/sbin/reboot' > /etc/sudoers.d/start_stop
chmod 0440 /etc/sudoers.d/start_stop
rm /etc/rc.local
EOF

# Create the new root image.
mksquashfs $TMP_DIR/squashfs-root $TMP_DIR/dest/root-image.sqfs
rm -rf $TMP_DIR/squashfs-root

# Configure the boot loader.
sed -i 's/TIMEOUT 3000/TIMEOUT 100/' $BOOT_CFG
sed -i '/APPEND hd0 0/d' $BOOT_CFG
sed -i 's/archisolabel=[^ ]*/archisolabel=ARCH/' $BOOT_CFG

# Create the new ISO image.
genisoimage -l -R -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
    -no-emul-boot -boot-load-size 4 -boot-info-table -V ARCH \
    -o "$OUTPUT_ISO" $DEST_DIR
rm -rf $TMP_DIR
isohybrid "$OUTPUT_ISO"

0

Böyle bir sistem için Puppy tavsiye ederim .

Linux'un herhangi bir sürümünü kullanarak sizi dağıtmak mümkün olsa da, Puppy özel önyüklenebilir görüntüler oluşturmayı çok kolaylaştırır , kompakt olacak şekilde tasarlanmıştır ve harika bindirme dosya sistemi desteğine sahiptir.

Ben sadece sabit diski dd edebilmeliyim

Hayır - mantıklı bir şekilde koruyabileceğiniz önyüklenebilir bir görüntü oluşturmayı öneririm - önerdiğiniz yaklaşım geri dönecek ve sizi ısıracaktır.


Mesele şu ki, işletim sistemini bir parmak sürücüde çalıştırıyorum. İşletim sisteminin kurulacağı bir disk sürücüm bile olmayabilir.
Naftuli Kay

0
  • Birkaç kişi uzbl bahsetti ve ben güzel bir seçim - katılıyorum ama luakit daha iyi bulabilirsiniz .

  • Caleb'in daha önce de belirttiği gibi, gerçekten herhangi bir pencere yöneticisine ihtiyacınız yok . İşte, en üst düzeye çıkarılmış luakit tarayıcısıyla WM'siz Xorg sunucusunu çalıştırmak için oluşturduğum örnek bir komut dosyası:

    #!/bin/sh
    XDCMD="xdotool search --class luakit windowsize %3 100% 100%"
    while [ 1 ]
    do
        ( sleep 0.5; $XDCMD || sleep 0.2 && $XDCMD || sleep 5 && $XDCMD ) &
        /usr/bin/luakit $@
    done
    

    Luakit başladıktan hemen sonra pencereyi büyütmek için xdotool kullanır . Belki de buna daha iyi bir çözüm var ...

  • Böyle bir sistemin temeli için kesinlikle Gentoo'yu tavsiye ederim. Bu sadece en iyi bildiğim için değil;) aynı zamanda yüklü tüm yazılımların oluşturma zamanı seçeneklerini küresel olarak yönetmede oldukça benzersiz bir yaklaşım kullandığından. Yani USE bayrakları . Bunları kullanarak, onları destekleyen tüm programlar tarafından kullanılan özellikler / kütüphaneler / standartlar kümesini belirlersiniz; örneğin, programlarınızın ALSA kullanmasını ve esd, jack veya pulseaudio gibi ek ses arka uçlarına ihtiyacınız yoksa, alsa -jack -esd -pulseaudioUSE bayraklarınızın arasına koyun . Bundan sonra, inşa edebileceğiniz her yazılım parçasıALSA dışında ek ses arka uçları kullananlar bunlar için destek olmadan oluşturulacak. Bu yapılandırma / oluşturma düzeyinde gerçekleştiği için, önemli ölçüde daha ince bir yazılım elde edersiniz. Yani bu, sıyrılmak yerine (buggy ve bakımı çok zor olabilir) bir inşa etme felsefesidir (tüm bağımlılıklara saygı gösterirken).


0

Bundan bahsedeceğim çünkü kimsenin sahip olmadığıma şaşırdım.

Scratch'tan Linux, kendi Linux dağıtımınızı oluşturmanıza yardımcı olan bir kitaptır (pdf). Yapmaya çalıştığınız şey için aşırı olabilir (aslında, ihtiyacınız olan araçlara zaten sahip olduğunuzu görüyor), ancak bir sistemin nasıl çalıştığını anlamak için çok değerli bir araç olabilir. Gerçekten o kadar da zor değil ve hiçbir programlama dahil değil.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.