Blog Code Forum

ArchLive

From Wiki.cyring.fr

(Difference between revisions)
Jump to: navigation, search
(Working directory)
 
(139 intermediate revisions not shown)
Line 1: Line 1:
-
=== Working directory ===
+
== Download ==
 +
=== Source files ===
 +
[http://code.cyring.fr/FTS/Source/LiveCD/releng.tgz releng.tgz]
 +
 
 +
== 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>
 +
 
 +
== Settings ==
 +
===== build.sh =====
 +
* modify the build script to suit your local time
<pre>
<pre>
-
# pacman -S archiso
+
#       ln -sf /usr/share/zoneinfo/UTC ${work_dir}/root-image/etc/localtime
-
# mkdir live
+
        ln -sf /usr/share/zoneinfo/Europe/Paris ${work_dir}/root-image/etc/localtime
-
# chdir live
+
-
# cp -r /usr/share/archiso/configs/releng/ .
+
-
# cd releng
+
-
# mkdir -p root-image/etc/skel
+
-
# cp -v /etc/vconsole.conf root-image/etc/
+
-
# mkdir -p root-image/etc/modules-load.d
+
-
# nano root-image/etc/modules-load.d/archiso.conf
+
-
# nano packages.both
+
-
# mkdir -p root-image/etc/X11/xorg.conf.d
+
-
# nano root-image/etc/X11/xorg.conf.d/10-evdev.conf
+
-
</pre>
+
-
=== Configuration ===
+
-
===== archiso.conf =====
+
-
<pre>
+
-
msr
+
-
dmi-sysfs
+
</pre>
</pre>
===== packages.both =====
===== packages.both =====
 +
* add the following packages
<pre>
<pre>
-
acpid
+
archlinux-themes-slim
 +
base-devel
blender
blender
chromium
chromium
cuda
cuda
 +
flashplugin
 +
gtk2
 +
hddtemp
 +
libvdpau
 +
lm_sensors
nvidia
nvidia
 +
pangox-compat
 +
slim
 +
xorg-server
xf86-video-vesa
xf86-video-vesa
xfce4
xfce4
 +
xfce4-xkb-plugin
 +
</pre>
 +
===== pacman.conf =====
 +
<pre>
 +
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
</pre>
</pre>
===== 10-evdev.conf =====
===== 10-evdev.conf =====
 +
* remark : AZERTY keyboard
<pre>
<pre>
Section "InputClass"
Section "InputClass"
Line 70: Line 117:
EndSection
EndSection
</pre>
</pre>
-
==== Xfce ====
+
===== .xinitrc =====
<pre>
<pre>
-
# mkdir -p root-image/root/.config/xfce4/xfconf/xfce-perchannel-xml
+
#!/bin/sh
-
# nano xfce4-desktop.xml
+
#
 +
# ~/.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>
</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>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 82: 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 98: Line 196:
</channel>
</channel>
</pre>
</pre>
-
<pre>
+
===== xfce4-panel.xml =====
-
# nano xfce4-panel.xml
+
* with application shorcuts
-
</pre>
+
<pre>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 123: Line 220:
       <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 149: Line 246:
       <property name="disable-tooltips" type="bool" value="false"/>
       <property name="disable-tooltips" type="bool" value="false"/>
     </property>
     </property>
-
     <property name="plugin-2" type="string" value="launcher">
+
     <property name="plugin-5" type="string" value="launcher">
       <property name="items" type="array">
       <property name="items" type="array">
         <value type="string" value="13526269274.desktop"/>
         <value type="string" value="13526269274.desktop"/>
       </property>
       </property>
     </property>
     </property>
 +
    <property name="plugin-2" type="string" value="xkb-plugin"/>
   </property>
   </property>
</channel>
</channel>
</pre>
</pre>
-
===== Terminal =====
+
* without application shortcuts
<pre>
<pre>
-
# mkdir -p root-image/root/.config/Terminal
+
<?xml version="1.0" encoding="UTF-8"?>
-
# nano terminalrc
+
 
 +
<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>
</pre>
</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>
 +
 +
=== Terminal ===
 +
<syntaxhighlight lang="bash" line start="1">
 +
mkdir -p root-image/root/.config/Terminal
 +
nano root-image/root/.config/Terminal/terminalrc
 +
</syntaxhighlight>
 +
===== terminalrc =====
<pre>
<pre>
[Configuration]
[Configuration]
-
FontName=Monospace 10
+
FontName=Monospace 9
MiscAlwaysShowTabs=FALSE
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBell=FALSE
Line 170: 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 181: Line 351:
MiscTabPosition=GTK_POS_TOP
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
MiscHighlightUrls=TRUE
 +
BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT
 +
BackgroundDarkness=0.660000
</pre>
</pre>
-
==== Application shortcuts ====
+
=== Application shortcuts ===
-
===== Chrome =====
+
==== 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>
<pre>
-
# mkdir -p root-image/root/.config/xfce4/panel/launcher-6
+
# Default settings for chromium. This file is sourced by /usr/bin/chromium
-
# nano 13526260781.desktop
+
 
 +
# Options to pass to chromium
 +
CHROMIUM_FLAGS="-user-data-dir=/tmp/chromium"
</pre>
</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>
<pre>
[Desktop Entry]
[Desktop Entry]
Line 195: Line 381:
Name=Chrome
Name=Chrome
Comment=
Comment=
-
Exec=chromium --user-data-dir=/tmp/
+
Exec=chromium --user-data-dir=/tmp/chromium
Icon=chromium
Icon=chromium
Path=
Path=
Line 201: Line 387:
StartupNotify=false
StartupNotify=false
</pre>
</pre>
-
===== Blender =====
+
 
-
<pre>
+
==== Blender ====
-
# mkdir -p root-image/root/.config/xfce4/panel/launcher-2<br />
+
===== Button =====
-
# nano 13526269274.desktop
+
<syntaxhighlight lang="bash" line start="1">
-
</pre>
+
mkdir -p root-image/root/.config/xfce4/panel/launcher-5
 +
nano root-image/root/.config/xfce4/panel/launcher-5/13526269274.desktop
 +
</syntaxhighlight>
<pre>
<pre>
[Desktop Entry]
[Desktop Entry]
Line 218: Line 406:
StartupNotify=false
StartupNotify=false
</pre>
</pre>
-
=== Boot ===
+
 
-
==== SysLinux ====
+
== User management ==
-
* Blacklist the ''nouveau'' module in favor of ''nvidia''
+
* (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>
<pre>
-
# 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%
</pre>
</pre>
 +
 +
==== Menu Console ====
 +
<syntaxhighlight lang="bash" line start="2">
 +
nano syslinux/archiso_two.cfg
 +
</syntaxhighlight>
<pre>
<pre>
-
LABEL arch
+
LABEL console
TEXT HELP
TEXT HELP
Boot the Arch Linux live medium. It allows you to install Arch Linux or
Boot the Arch Linux live medium. It allows you to install Arch Linux or
perform system maintenance.
perform system maintenance.
ENDTEXT
ENDTEXT
-
MENU LABEL Boot Arch Linux
+
MENU LABEL Arch Linux [^Console]
LINUX boot/%ARCH%/vmlinuz
LINUX boot/%ARCH%/vmlinuz
INITRD boot/%ARCH%/archiso.img
INITRD boot/%ARCH%/archiso.img
-
APPEND quiet modprobe.blacklist=nouveau archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
+
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>
</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