Blog Code Forum

ArchLive

From Wiki.cyring.fr

(Difference between revisions)
Jump to: navigation, search
(Working directory)
 
(148 intermediate revisions not shown)
Line 1: Line 1:
-
pacman -S xfce4<br />
+
== Download ==
 +
=== Source files ===
 +
[http://code.cyring.fr/FTS/Source/LiveCD/releng.tgz releng.tgz]
-
startxfce<br />
+
== Working directory ==
 +
<syntaxhighlight lang="bash" line start="1">
 +
pacman -S archiso
 +
mkdir live
 +
chdir live
 +
cp -rv /usr/share/archiso/configs/releng/ .
 +
cd releng
 +
nano build.sh
 +
nano packages.both
 +
nano pacman.conf
 +
mkdir -p root-image/etc/X11/xorg.conf.d
 +
nano root-image/etc/X11/xorg.conf.d/10-evdev.conf
 +
mkdir -p root-image/etc/skel
 +
cp -v /etc/skel/.xinitrc root-image/etc/skel/
 +
nano root-image/etc/skel/.xinitrc
 +
chmod +x root-image/etc/skel/.xinitrc
 +
nano root-image/etc/slim.conf
 +
cp -v /etc/vconsole.conf root-image/etc/
 +
nano root-image/etc/systemd/system/display-manager.service
 +
cp -v /etc/systemd/system/multi-user.target.wants/ntpd.service root-image/etc/systemd/system/
 +
</syntaxhighlight>
-
chromium --user-data-dir=/tmp/<br />
+
== Settings ==
 +
===== build.sh =====
 +
* modify the build script to suit your local time
 +
<pre>
 +
#      ln -sf /usr/share/zoneinfo/UTC ${work_dir}/root-image/etc/localtime
 +
        ln -sf /usr/share/zoneinfo/Europe/Paris ${work_dir}/root-image/etc/localtime
 +
</pre>
 +
===== packages.both =====
 +
* add the following packages
 +
<pre>
 +
archlinux-themes-slim
 +
base-devel
 +
blender
 +
chromium
 +
cuda
 +
flashplugin
 +
gtk2
 +
hddtemp
 +
libvdpau
 +
lm_sensors
 +
nvidia
 +
pangox-compat
 +
slim
 +
xorg-server
 +
xf86-video-vesa
 +
xfce4
 +
xfce4-xkb-plugin
 +
</pre>
 +
===== pacman.conf =====
 +
<pre>
 +
SigLevel = Never
 +
#[testing]
 +
#SigLevel = PackageRequired
 +
#Include = /etc/pacman.d/mirrorlist
-
cd ~/.config/xfce4/xfconf/xfce-perchannel-xml<br />
+
[core]
 +
#SigLevel = PackageRequired
 +
Include = /etc/pacman.d/mirrorlist
-
xfce4-desktop.xml<br />
+
[extra]
 +
#SigLevel = PackageRequired
 +
Include = /etc/pacman.d/mirrorlist
 +
#[community-testing]
 +
#SigLevel = PackageRequired
 +
#Include = /etc/pacman.d/mirrorlist
 +
 +
[community]
 +
#SigLevel = PackageRequired
 +
Include = /etc/pacman.d/mirrorlist
 +
</pre>
 +
===== 10-evdev.conf =====
 +
* remark : AZERTY keyboard
 +
<pre>
 +
Section "InputClass"
 +
        Identifier      "evdev keyboard catchall"
 +
        MatchIsKeyboard "on"
 +
        MatchDevicePath "/dev/input/event*"
 +
        Driver          "evdev"
 +
        Option          "xkb_layout" "fr"
 +
        Option          "XkbOptions" "terminate:ctrl_alt_bksp"
 +
EndSection
 +
 +
Section "InputClass"
 +
        Identifier      "evdev pointer catchall"
 +
        MatchIsPointer  "on"
 +
        MatchDevicePath "/dev/input/event*"
 +
        Driver          "evdev"
 +
        Option          "SampleRate" "500"
 +
EndSection
 +
 +
Section "InputClass"
 +
        Identifier      "evdev touchpad catchall"
 +
        MatchIsTouchpad "on"
 +
        MatchDevicePath "/dev/input/event*"
 +
        Driver          "evdev"
 +
EndSection
 +
 +
Section "InputClass"
 +
        Identifier      "evdev tablet catchall"
 +
        MatchIsTablet  "on"
 +
        MatchDevicePath "/dev/input/event*"
 +
        Driver          "evdev"
 +
EndSection
 +
 +
Section "InputClass"
 +
        Identifier      "evdev touchscreen catchall"
 +
        MatchIsTouchscreen      "on"
 +
        MatchDevicePath "/dev/input/event*"
 +
        Driver          "evdev"
 +
EndSection
 +
</pre>
 +
===== .xinitrc =====
 +
<pre>
 +
#!/bin/sh
 +
#
 +
# ~/.xinitrc
 +
#
 +
# Executed by startx (run your window manager from here)
 +
 +
if [ -d /etc/X11/xinit/xinitrc.d ]; then
 +
  for f in /etc/X11/xinit/xinitrc.d/*; do
 +
    [ -x "$f" ] && . "$f"
 +
  done
 +
  unset f
 +
fi
 +
 +
# exec gnome-session
 +
# exec startkde
 +
exec startxfce4
 +
# ...or the Window Manager of your choice
 +
</pre>
 +
===== slim.conf =====
 +
<pre>
 +
login_cmd          exec /bin/zsh -l ~/.xinitrc %session
 +
default_user        root
 +
auto_login          yes
 +
current_theme      archlinux-simplyblack
 +
</pre>
 +
 +
===== display-manager.service =====
 +
<pre>
 +
[Unit]
 +
Description=SLiM Simple Login Manager
 +
After=systemd-user-sessions.service
 +
 +
[Service]
 +
ExecStart=/usr/bin/slim -nodaemon
 +
 +
[Install]
 +
Alias=display-manager.service
 +
</pre>
 +
 +
== Desktop Environment ==
 +
=== Xfce ===
 +
<syntaxhighlight lang="bash" line start="1">
 +
wget https://www.archlinux.org/static/logos/archlinux-logo-dark-90dpi.png -O root-image/root/archlinux-logo-dark-90dpi.png
 +
mkdir -p root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml
 +
nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
 +
nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
 +
nano root-image/root/.config/xfce4/helpers.rc
 +
mkdir -p root-image/root/.config/xfce4/panel
 +
nano root-image/root/.config/xfce4/panel/xkb-plugin-2.rc
 +
nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml
 +
</syntaxhighlight>
 +
===== xfce4-desktop.xml =====
 +
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 15: Line 178:
     <property name="screen0" type="empty">
     <property name="screen0" type="empty">
       <property name="monitor0" type="empty">
       <property name="monitor0" type="empty">
-
         <property name="image-path" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
+
         <property name="image-path" type="string" value="/root/archlinux-logo-dark-90dpi.png"/>
         <property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
         <property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
-
         <property name="last-single-image" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
+
         <property name="last-single-image" type="string" value="/root/archlinux-logo-dark-90dpi.png"/>
 +
        <property name="image-style" type="int" value="1"/>
 +
        <property name="image-show" type="bool" value="true"/>
       </property>
       </property>
     </property>
     </property>
Line 30: Line 195:
   </property>
   </property>
</channel>
</channel>
 +
</pre>
 +
===== xfce4-panel.xml =====
 +
* with application shorcuts
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
-
xfce4-panel.xml<br />
+
<channel name="xfce4-panel" version="1.0">
 +
  <property name="configver" type="int" value="2"/>
 +
  <property name="panels" type="array">
 +
    <value type="int" value="1"/>
 +
    <property name="panel-1" type="empty">
 +
      <property name="position" type="string" value="p=6;x=17;y=72"/>
 +
      <property name="mode" type="uint" value="1"/>
 +
      <property name="size" type="uint" value="48"/>
 +
      <property name="background-style" type="uint" value="1"/>
 +
      <property name="plugin-ids" type="array">
 +
        <value type="int" value="4"/>
 +
        <value type="int" value="3"/>
 +
        <value type="int" value="2"/>
 +
        <value type="int" value="6"/>
 +
        <value type="int" value="1"/>
 +
      </property>
 +
      <property name="position-locked" type="bool" value="true"/>
 +
      <property name="length" type="uint" value="100"/>
 +
      <property name="background-color" type="array">
 +
        <value type="uint" value="5911"/>
 +
        <value type="uint" value="35723"/>
 +
        <value type="uint" value="50629"/>
 +
        <value type="uint" value="65535"/>
 +
      </property>
 +
    </property>
 +
  </property>
 +
  <property name="plugins" type="empty">
 +
    <property name="plugin-1" type="string" value="tasklist">
 +
      <property name="show-labels" type="bool" value="false"/>
 +
      <property name="show-handle" type="bool" value="false"/>
 +
    </property>
 +
    <property name="plugin-3" type="string" value="systray"/>
 +
    <property name="plugin-4" type="string" value="clock">
 +
      <property name="mode" type="uint" value="4"/>
 +
      <property name="show-frame" type="bool" value="false"/>
 +
    </property>
 +
    <property name="plugin-6" type="string" value="launcher">
 +
      <property name="items" type="array">
 +
        <value type="string" value="13526260781.desktop"/>
 +
      </property>
 +
      <property name="arrow-position" type="uint" value="0"/>
 +
      <property name="move-first" type="bool" value="false"/>
 +
      <property name="show-label" type="bool" value="false"/>
 +
      <property name="disable-tooltips" type="bool" value="false"/>
 +
    </property>
 +
    <property name="plugin-5" type="string" value="launcher">
 +
      <property name="items" type="array">
 +
        <value type="string" value="13526269274.desktop"/>
 +
      </property>
 +
    </property>
 +
    <property name="plugin-2" type="string" value="xkb-plugin"/>
 +
  </property>
 +
</channel>
 +
</pre>
 +
* without application shortcuts
 +
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 46: Line 271:
         <value type="int" value="4"/>
         <value type="int" value="4"/>
         <value type="int" value="3"/>
         <value type="int" value="3"/>
 +
        <value type="int" value="2"/>
 +
        <value type="int" value="6"/>
         <value type="int" value="1"/>
         <value type="int" value="1"/>
       </property>
       </property>
Line 51: Line 278:
       <property name="length" type="uint" value="100"/>
       <property name="length" type="uint" value="100"/>
       <property name="background-color" type="array">
       <property name="background-color" type="array">
-
         <value type="uint" value="23589"/>
+
         <value type="uint" value="5911"/>
-
         <value type="uint" value="37012"/>
+
         <value type="uint" value="35723"/>
-
         <value type="uint" value="45286"/>
+
         <value type="uint" value="50629"/>
         <value type="uint" value="65535"/>
         <value type="uint" value="65535"/>
       </property>
       </property>
Line 68: Line 295:
       <property name="show-frame" type="bool" value="false"/>
       <property name="show-frame" type="bool" value="false"/>
     </property>
     </property>
 +
    <property name="plugin-2" type="string" value="xkb-plugin"/>
   </property>
   </property>
</channel>
</channel>
 +
</pre>
 +
===== helpers.rc =====
 +
<pre>
 +
WebBrowser=chromium
 +
</pre>
 +
===== xkb-plugin-2.rc =====
 +
<pre>
 +
display_type=0
 +
display_textsize=0
 +
group_policy=2
 +
default_group=0
 +
never_modify_config=false
 +
model=evdev
 +
layouts=fr,us,de
 +
variants=,,
 +
toggle_option=
 +
compose_key_position=
 +
</pre>
 +
===== xfce4-mixer.xml =====
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
 +
<channel name="xfce4-mixer" version="1.0">
 +
  <property name="window-height" type="int" value="480"/>
 +
  <property name="window-width" type="int" value="640"/>
 +
</channel>
 +
</pre>
-
cd ~/.config/Terminal<br />
+
=== Terminal ===
-
terminalrc<br />
+
<syntaxhighlight lang="bash" line start="1">
 +
mkdir -p root-image/root/.config/Terminal
 +
nano root-image/root/.config/Terminal/terminalrc
 +
</syntaxhighlight>
 +
===== terminalrc =====
 +
<pre>
[Configuration]
[Configuration]
-
FontName=Monospace 10
+
FontName=Monospace 9
MiscAlwaysShowTabs=FALSE
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBell=FALSE
Line 80: Line 340:
MiscCursorBlinks=FALSE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
-
MiscDefaultGeometry=80x24
+
MiscDefaultGeometry=80x36
MiscInheritGeometry=FALSE
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMenubarDefault=FALSE
Line 91: Line 351:
MiscTabPosition=GTK_POS_TOP
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
MiscHighlightUrls=TRUE
 +
BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT
 +
BackgroundDarkness=0.660000
 +
</pre>
 +
 +
=== Application shortcuts ===
 +
==== Chrome ====
 +
===== Common =====
 +
* allow chrome to start as root using argument --user-data-dir
 +
<syntaxhighlight lang="bash" line start="1">
 +
mkdir root-image/etc/chromium
 +
nano root-image/etc/chromium/default
 +
</syntaxhighlight>
 +
<pre>
 +
# Default settings for chromium. This file is sourced by /usr/bin/chromium
 +
 +
# Options to pass to chromium
 +
CHROMIUM_FLAGS="-user-data-dir=/tmp/chromium"
 +
</pre>
 +
 +
===== Button =====
 +
<syntaxhighlight lang="bash" line start="1">
 +
mkdir -p root-image/root/.config/xfce4/panel/launcher-6
 +
nano root-image/root/.config/xfce4/panel/launcher-6/13526260781.desktop
 +
</syntaxhighlight>
 +
<pre>
 +
[Desktop Entry]
 +
Version=1.0
 +
Type=Application
 +
Name=Chrome
 +
Comment=
 +
Exec=chromium --user-data-dir=/tmp/chromium
 +
Icon=chromium
 +
Path=
 +
Terminal=false
 +
StartupNotify=false
 +
</pre>
 +
 +
==== Blender ====
 +
===== Button =====
 +
<syntaxhighlight lang="bash" line start="1">
 +
mkdir -p root-image/root/.config/xfce4/panel/launcher-5
 +
nano root-image/root/.config/xfce4/panel/launcher-5/13526269274.desktop
 +
</syntaxhighlight>
 +
<pre>
 +
[Desktop Entry]
 +
Version=1.0
 +
Type=Application
 +
Name=Blender
 +
Comment=
 +
Exec=blender
 +
Icon=blender
 +
Path=
 +
Terminal=false
 +
StartupNotify=false
 +
</pre>
 +
 +
== User management ==
 +
* (optional) define user passwords
 +
{| class="wikitable"
 +
|-
 +
! Login !! Passwd
 +
|-
 +
| root || <empty>
 +
|-
 +
| arch || <empty>
 +
|}
 +
<syntaxhighlight lang="bash" line start="1">
 +
## need some command here
 +
</syntaxhighlight>
 +
 +
== Boot Loader ==
 +
=== SysLinux ===
 +
==== Menu Desktop ====
 +
* blacklist the ''nouveau'' module in favor of ''nvidia''
 +
* autologin with [https://wiki.archlinux.org/index.php/SLiM#Autologin SLiM]
 +
<syntaxhighlight lang="bash" line start="1">
 +
nano syslinux/archiso_sys.cfg
 +
</syntaxhighlight>
 +
<pre>
 +
LABEL arch
 +
TEXT HELP
 +
Boot the Arch Linux live medium. It allows you to install Arch Linux or
 +
perform system maintenance.
 +
ENDTEXT
 +
MENU LABEL Arch Linux [^Desktop]
 +
LINUX boot/%ARCH%/vmlinuz
 +
INITRD boot/%ARCH%/archiso.img
 +
APPEND quiet vga=current modprobe.blacklist=nouveau systemd.unit=graphical.target archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
 +
</pre>
 +
 +
==== Menu Console ====
 +
<syntaxhighlight lang="bash" line start="2">
 +
nano syslinux/archiso_two.cfg
 +
</syntaxhighlight>
 +
<pre>
 +
LABEL console
 +
TEXT HELP
 +
Boot the Arch Linux live medium. It allows you to install Arch Linux or
 +
perform system maintenance.
 +
ENDTEXT
 +
MENU LABEL Arch Linux [^Console]
 +
LINUX boot/%ARCH%/vmlinuz
 +
INITRD boot/%ARCH%/archiso.img
 +
APPEND quiet systemd.unit=multi-user.target archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
 +
</pre>
 +
* define a multi-boot menu
 +
<syntaxhighlight lang="bash" line start="3">
 +
nano syslinux/archiso_sys_inc.cfg
 +
</syntaxhighlight>
 +
<pre>
 +
INCLUDE boot/syslinux/archiso_head.cfg
 +
INCLUDE boot/syslinux/archiso_sys.cfg
 +
INCLUDE boot/syslinux/archiso_two.cfg
 +
INCLUDE boot/syslinux/archiso_tail.cfg
 +
</pre>
 +
* define the option [Desktop] as default
 +
<syntaxhighlight lang="bash" line start="4">
 +
nano syslinux/archiso_head.cfg
 +
</syntaxhighlight>
 +
<pre>
 +
DEFAULT arch
 +
TIMEOUT 30
 +
</pre>
 +
 +
== CoreMod ==
 +
<syntaxhighlight lang="bash" line start="1">
 +
mkdir -p root-image/etc/modules-load.d
 +
nano root-image/etc/modules-load.d/archiso.conf
 +
nano root-image/root/.zlogin
 +
nano root-image/root/coremod.sh
 +
chmod +x root-image/root/coremod.sh
 +
</syntaxhighlight>
 +
===== archiso.conf =====
 +
* modules claimed by CoreMod
 +
<pre>
 +
msr
 +
dmi-sysfs
 +
</pre>
 +
===== .zlogin =====
 +
<pre>
 +
~/.automated_script.sh
 +
prompt adam2
 +
</pre>
 +
===== coremod.sh =====
 +
<pre>
 +
#!/bin/bash
 +
 +
if [[ ! -d /opt/CoreMod ]]; then
 +
        echo -n 'Downloading ...'
 +
        mkdir /opt/CoreMod
 +
        cd /opt/CoreMod
 +
        wget -q -t 9 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/Makefile'
 +
        echo -n '.'
 +
        wget -q -t 6 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/coremod.c'
 +
        echo -n '.'
 +
        wget -q -t 6 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/coremod.h'
 +
        echo '.'
 +
        if [[ -e Makefile && -e coremod.c && -e coremod.h ]]; then
 +
                make
 +
        fi
 +
        cd
 +
fi
 +
 +
if [[ -x /opt/CoreMod/bin/coremod ]]; then
 +
        /opt/CoreMod/bin/coremod
 +
        echo ''
 +
else
 +
        echo 'CoreMod not found !'
 +
fi
 +
</pre>
 +
 +
== Build & Test ==
 +
* clean then build
 +
<syntaxhighlight lang="bash" line start="1">
 +
./build.sh clean single
 +
./build.sh -v build single
 +
</syntaxhighlight>
 +
 +
* update the host syslinux configuration for a live boot on computer
 +
<syntaxhighlight lang="bash" line start="1">
 +
cp -v out/archlinux-*-x86_64.iso /boot/
 +
ln -fs /boot/archlinux-*-x86_64.iso /boot/archlive.iso
 +
nano /boot/syslinux/syslinux.cfg
 +
</syntaxhighlight>
 +
<pre>
 +
LABEL cdrom
 +
        MENU LABEL ^CD-ROM
 +
        LINUX memdisk
 +
        INITRD archlive.iso
 +
        APPEND iso raw
 +
</pre>
 +
* reboot the computer and press [C] to boot the live CD
 +
http://blog.cyring.fr/wp-content/uploads/2012/11/ArchLive002-300x225.png
 +
http://blog.cyring.fr/wp-content/uploads/2012/11/ArchLive003-300x225.png
 +
http://blog.cyring.fr/wp-content/uploads/2012/11/ArchLive004-300x225.png
 +
* if integrated, open a Terminal then build & run CoreMod
 +
<syntaxhighlight lang="bash" line start="1">
 +
./coremod.sh
 +
</syntaxhighlight>
 +
http://blog.cyring.fr/wp-content/uploads/2012/11/ArchLive001-300x168.png

Latest revision as of 08:30, 18 December 2012

Contents

Download

Source files

releng.tgz

Working directory

  1. pacman -S archiso
  2. mkdir live
  3. chdir live
  4. cp -rv /usr/share/archiso/configs/releng/ .
  5. cd releng
  6. nano build.sh
  7. nano packages.both
  8. nano pacman.conf
  9. mkdir -p root-image/etc/X11/xorg.conf.d
  10. nano root-image/etc/X11/xorg.conf.d/10-evdev.conf
  11. mkdir -p root-image/etc/skel
  12. cp -v /etc/skel/.xinitrc root-image/etc/skel/
  13. nano root-image/etc/skel/.xinitrc
  14. chmod +x root-image/etc/skel/.xinitrc
  15. nano root-image/etc/slim.conf
  16. cp -v /etc/vconsole.conf root-image/etc/
  17. nano root-image/etc/systemd/system/display-manager.service
  18. cp -v /etc/systemd/system/multi-user.target.wants/ntpd.service root-image/etc/systemd/system/

Settings

build.sh
  • modify the build script to suit your local time
#       ln -sf /usr/share/zoneinfo/UTC ${work_dir}/root-image/etc/localtime
        ln -sf /usr/share/zoneinfo/Europe/Paris ${work_dir}/root-image/etc/localtime
packages.both
  • add the following packages
archlinux-themes-slim
base-devel
blender
chromium
cuda
flashplugin
gtk2
hddtemp
libvdpau
lm_sensors
nvidia
pangox-compat
slim
xorg-server
xf86-video-vesa
xfce4
xfce4-xkb-plugin
pacman.conf
SigLevel = Never
#[testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[core]
#SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
#SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[community]
#SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
10-evdev.conf
  • remark : AZERTY keyboard
Section "InputClass"
        Identifier      "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
        Option          "xkb_layout" "fr"
        Option          "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Section "InputClass"
        Identifier      "evdev pointer catchall"
        MatchIsPointer  "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
        Option          "SampleRate" "500"
EndSection

Section "InputClass"
        Identifier      "evdev touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
EndSection

Section "InputClass"
        Identifier      "evdev tablet catchall"
        MatchIsTablet   "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
EndSection

Section "InputClass"
        Identifier      "evdev touchscreen catchall"
        MatchIsTouchscreen      "on"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
EndSection
.xinitrc
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

# exec gnome-session
# exec startkde
exec startxfce4
# ...or the Window Manager of your choice
slim.conf
login_cmd           exec /bin/zsh -l ~/.xinitrc %session
default_user        root
auto_login          yes
current_theme       archlinux-simplyblack
display-manager.service
[Unit]
Description=SLiM Simple Login Manager
After=systemd-user-sessions.service

[Service]
ExecStart=/usr/bin/slim -nodaemon

[Install]
Alias=display-manager.service

Desktop Environment

Xfce

  1. wget https://www.archlinux.org/static/logos/archlinux-logo-dark-90dpi.png -O root-image/root/archlinux-logo-dark-90dpi.png
  2. mkdir -p root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml
  3. nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
  4. nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
  5. nano root-image/root/.config/xfce4/helpers.rc
  6. mkdir -p root-image/root/.config/xfce4/panel
  7. nano root-image/root/.config/xfce4/panel/xkb-plugin-2.rc
  8. nano root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml
xfce4-desktop.xml
<?xml version="1.0" encoding="UTF-8"?>

<channel name="xfce4-desktop" version="1.0">
  <property name="backdrop" type="empty">
    <property name="screen0" type="empty">
      <property name="monitor0" type="empty">
        <property name="image-path" type="string" value="/root/archlinux-logo-dark-90dpi.png"/>
        <property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-blue.jpg"/>
        <property name="last-single-image" type="string" value="/root/archlinux-logo-dark-90dpi.png"/>
        <property name="image-style" type="int" value="1"/>
        <property name="image-show" type="bool" value="true"/>
      </property>
    </property>
  </property>
  <property name="desktop-icons" type="empty">
    <property name="icon-size" type="uint" value="32"/>
    <property name="file-icons" type="empty">
      <property name="show-home" type="bool" value="false"/>
      <property name="show-filesystem" type="bool" value="false"/>
      <property name="show-trash" type="bool" value="false"/>
    </property>
  </property>
</channel>
xfce4-panel.xml
  • with application shorcuts
<?xml version="1.0" encoding="UTF-8"?>

<channel name="xfce4-panel" version="1.0">
  <property name="configver" type="int" value="2"/>
  <property name="panels" type="array">
    <value type="int" value="1"/>
    <property name="panel-1" type="empty">
      <property name="position" type="string" value="p=6;x=17;y=72"/>
      <property name="mode" type="uint" value="1"/>
      <property name="size" type="uint" value="48"/>
      <property name="background-style" type="uint" value="1"/>
      <property name="plugin-ids" type="array">
        <value type="int" value="4"/>
        <value type="int" value="3"/>
        <value type="int" value="2"/>
        <value type="int" value="6"/>
        <value type="int" value="1"/>
      </property>
      <property name="position-locked" type="bool" value="true"/>
      <property name="length" type="uint" value="100"/>
      <property name="background-color" type="array">
        <value type="uint" value="5911"/>
        <value type="uint" value="35723"/>
        <value type="uint" value="50629"/>
        <value type="uint" value="65535"/>
      </property>
    </property>
  </property>
  <property name="plugins" type="empty">
    <property name="plugin-1" type="string" value="tasklist">
      <property name="show-labels" type="bool" value="false"/>
      <property name="show-handle" type="bool" value="false"/>
    </property>
    <property name="plugin-3" type="string" value="systray"/>
    <property name="plugin-4" type="string" value="clock">
      <property name="mode" type="uint" value="4"/>
      <property name="show-frame" type="bool" value="false"/>
    </property>
    <property name="plugin-6" type="string" value="launcher">
      <property name="items" type="array">
        <value type="string" value="13526260781.desktop"/>
      </property>
      <property name="arrow-position" type="uint" value="0"/>
      <property name="move-first" type="bool" value="false"/>
      <property name="show-label" type="bool" value="false"/>
      <property name="disable-tooltips" type="bool" value="false"/>
    </property>
    <property name="plugin-5" type="string" value="launcher">
      <property name="items" type="array">
        <value type="string" value="13526269274.desktop"/>
      </property>
    </property>
    <property name="plugin-2" type="string" value="xkb-plugin"/>
  </property>
</channel>
  • without application shortcuts
<?xml version="1.0" encoding="UTF-8"?>

<channel name="xfce4-panel" version="1.0">
  <property name="configver" type="int" value="2"/>
  <property name="panels" type="array">
    <value type="int" value="1"/>
    <property name="panel-1" type="empty">
      <property name="position" type="string" value="p=6;x=17;y=72"/>
      <property name="mode" type="uint" value="1"/>
      <property name="size" type="uint" value="48"/>
      <property name="background-style" type="uint" value="1"/>
      <property name="plugin-ids" type="array">
        <value type="int" value="4"/>
        <value type="int" value="3"/>
        <value type="int" value="2"/>
        <value type="int" value="6"/>
        <value type="int" value="1"/>
      </property>
      <property name="position-locked" type="bool" value="true"/>
      <property name="length" type="uint" value="100"/>
      <property name="background-color" type="array">
        <value type="uint" value="5911"/>
        <value type="uint" value="35723"/>
        <value type="uint" value="50629"/>
        <value type="uint" value="65535"/>
      </property>
    </property>
  </property>
  <property name="plugins" type="empty">
    <property name="plugin-1" type="string" value="tasklist">
      <property name="show-labels" type="bool" value="false"/>
      <property name="show-handle" type="bool" value="false"/>
    </property>
    <property name="plugin-3" type="string" value="systray"/>
    <property name="plugin-4" type="string" value="clock">
      <property name="mode" type="uint" value="4"/>
      <property name="show-frame" type="bool" value="false"/>
    </property>
    <property name="plugin-2" type="string" value="xkb-plugin"/>
  </property>
</channel>
helpers.rc
WebBrowser=chromium
xkb-plugin-2.rc
display_type=0
display_textsize=0
group_policy=2
default_group=0
never_modify_config=false
model=evdev
layouts=fr,us,de
variants=,,
toggle_option=
compose_key_position=
xfce4-mixer.xml
<?xml version="1.0" encoding="UTF-8"?>

<channel name="xfce4-mixer" version="1.0">
  <property name="window-height" type="int" value="480"/>
  <property name="window-width" type="int" value="640"/>
</channel>

Terminal

  1. mkdir -p root-image/root/.config/Terminal
  2. nano root-image/root/.config/Terminal/terminalrc
terminalrc
[Configuration]
FontName=Monospace 9
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBordersDefault=TRUE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscDefaultGeometry=80x36
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMouseAutohide=FALSE
MiscToolbarsDefault=FALSE
MiscConfirmClose=TRUE
MiscCycleTabs=TRUE
MiscTabCloseButtons=TRUE
MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT
BackgroundDarkness=0.660000

Application shortcuts

Chrome

Common
  • allow chrome to start as root using argument --user-data-dir
  1. mkdir root-image/etc/chromium
  2. nano root-image/etc/chromium/default
# Default settings for chromium. This file is sourced by /usr/bin/chromium

# Options to pass to chromium
CHROMIUM_FLAGS="-user-data-dir=/tmp/chromium"
Button
  1. mkdir -p root-image/root/.config/xfce4/panel/launcher-6
  2. nano root-image/root/.config/xfce4/panel/launcher-6/13526260781.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Chrome
Comment=
Exec=chromium --user-data-dir=/tmp/chromium
Icon=chromium
Path=
Terminal=false
StartupNotify=false

Blender

Button
  1. mkdir -p root-image/root/.config/xfce4/panel/launcher-5
  2. nano root-image/root/.config/xfce4/panel/launcher-5/13526269274.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Blender
Comment=
Exec=blender
Icon=blender
Path=
Terminal=false
StartupNotify=false

User management

  • (optional) define user passwords
Login Passwd
root <empty>
arch <empty>
  1. ## need some command here

Boot Loader

SysLinux

Menu Desktop

  • blacklist the nouveau module in favor of nvidia
  • autologin with SLiM
  1. nano syslinux/archiso_sys.cfg
LABEL arch
TEXT HELP
Boot the Arch Linux live medium. It allows you to install Arch Linux or
perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux [^Desktop]
LINUX boot/%ARCH%/vmlinuz
INITRD boot/%ARCH%/archiso.img
APPEND quiet vga=current modprobe.blacklist=nouveau systemd.unit=graphical.target archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%

Menu Console

  1. nano syslinux/archiso_two.cfg
LABEL console
TEXT HELP
Boot the Arch Linux live medium. It allows you to install Arch Linux or
perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux [^Console]
LINUX boot/%ARCH%/vmlinuz
INITRD boot/%ARCH%/archiso.img
APPEND quiet systemd.unit=multi-user.target archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
  • define a multi-boot menu
  1. nano syslinux/archiso_sys_inc.cfg
INCLUDE boot/syslinux/archiso_head.cfg
INCLUDE boot/syslinux/archiso_sys.cfg
INCLUDE boot/syslinux/archiso_two.cfg
INCLUDE boot/syslinux/archiso_tail.cfg
  • define the option [Desktop] as default
  1. nano syslinux/archiso_head.cfg
DEFAULT arch
TIMEOUT 30

CoreMod

  1. mkdir -p root-image/etc/modules-load.d
  2. nano root-image/etc/modules-load.d/archiso.conf
  3. nano root-image/root/.zlogin
  4. nano root-image/root/coremod.sh
  5. chmod +x root-image/root/coremod.sh
archiso.conf
  • modules claimed by CoreMod
msr
dmi-sysfs
.zlogin
~/.automated_script.sh
prompt adam2
coremod.sh
#!/bin/bash

if [[ ! -d /opt/CoreMod ]]; then
        echo -n 'Downloading ...'
        mkdir /opt/CoreMod
        cd /opt/CoreMod
        wget -q -t 9 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/Makefile'
        echo -n '.'
        wget -q -t 6 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/coremod.c'
        echo -n '.'
        wget -q -t 6 'http://code.cyring.fr/FTS/Source/C/CoreMod/Previous_Build/2012-0.1.4/coremod.h'
        echo '.'
        if [[ -e Makefile && -e coremod.c && -e coremod.h ]]; then
                make
        fi
        cd
fi

if [[ -x /opt/CoreMod/bin/coremod ]]; then
        /opt/CoreMod/bin/coremod
        echo ''
else
        echo 'CoreMod not found !'
fi

Build & Test

  • clean then build
  1. ./build.sh clean single
  2. ./build.sh -v build single
  • update the host syslinux configuration for a live boot on computer
  1. cp -v out/archlinux-*-x86_64.iso /boot/
  2. ln -fs /boot/archlinux-*-x86_64.iso /boot/archlive.iso
  3. nano /boot/syslinux/syslinux.cfg
LABEL cdrom
        MENU LABEL ^CD-ROM
        LINUX memdisk
        INITRD archlive.iso
        APPEND iso raw
  • reboot the computer and press [C] to boot the live CD

ArchLive002-300x225.png ArchLive003-300x225.png ArchLive004-300x225.png

  • if integrated, open a Terminal then build & run CoreMod
  1. ./coremod.sh

ArchLive001-300x168.png

Personal tools