Joli OS → Joli OS Core Modifications
Joli OS Core Modifications
This document describes the modifications that make Joli OS unique. The source code for all projects is available on GitHub .
Table of Contents
Original Software Projects
The following software programs are original projects created by Jolicloud developers, specific to Joli OS.
A program to automatically queue APT commands from within other packages during {post,pre}{inst,rm} scripts.
Ships /etc/apt/sources.list.d/jolicloud.list. Used for deploying upgrades to new Joli OS versions.
This program runs in the user session, it includes a WebSocket server and exposes an API for the Jolicloud Desktop. This makes it possible to retrieve some system information and real-time events from the HTML5 application, such as a USB key insertion, and to execute some tasks on your computer, like installing native apps, upgrading your OS or simply shutting down your computer.
A login manager with an HTML5 interface that loads a session and allows guest users to log into your system (if jolicloud-guestlogin is installed and enabled).
A PAM based script that allows guest users to connect to your machine with limited privileges.
A program that ties on top of Jockey, automating the installation at boot up, prior to X starting. This makes installing special drivers nvidia, poulsbo, virtualbox, fglrx) easier and automatic for the user.
A program that ensures that jolicloud-daemon and nickel-browser are started up properly after X authentication, and ensures that they come back online in case of accidental exception.
Meta package to link jolicloud-desktop, jolicloud-standard, and jolicloud-minimal to groups of packages required for the desktop, standard installs, and minimal installs respectively.
Provides automatic configuration for various netbooks.
Manages GTK-level notification messages, like reboot requests by recently installed packages.
A program that restores some settings, reclaims some space and makes sure the system is up-to-date.
Scripts that tweak Ubuntu a bit to adapt it more to netbooks and to Jolicloud. Also included are jolicloud-legacy-tweaks: add CPUFreq & KeyState applets as deployed in earlier versions of Jolicloud.
A series of HTML slides used during ubiquity installation.
Modified Third-Party Software Projects
The following software packages are released by third-party developers under the terms of the GPL. Each has been modified by Jolicloud developers to extend the Joli OS platform.
Rebranded chromium-browser as nickel-browser
Add desktop-mode startup parameter; starts in X11 desktop-mode
Customized the neterror page (Press refresh when you have a network connection)
Set Jolicloud as the default homepage
Add no-first-run startup parameter; do not show the importer when running for the first time
Corrected maximized state with newer metacity
Inhibited resize when running as the desktop
Allow for custom app icons when the Jolicloud Desktop opens a Web app that spawns a fullscreen browser
Set the default window size to understand gnome-panel dimensions
Share user profile filename with Google Chrome
Use default nickel buttons with GTK theme
Use Liberation fonts by default
Use system frame when window-manager is Metacity
Add Jolicloud to the user-agent string
Automatic cmdline insertion for exotic hardware support
Updated Broadcom, Realtek, and Ralink drivers
Additional touchscreen extensions
Atom-optimized installation option
KMS corrections for i915, vesafb
ALSA corrections for via, hda
Imported newer Realtek and Qualcomm firmware images
Added 1280x768 into vesamodes
Include evtouch driver for touchscreens by default
Install specially formatted /etc/apt/sources.list.d/ubuntu.list APT source file
Replace ubuntu-{security,updates} with Jolicloud-buffered mirrors tied to Joli OS releases
Provides /etc/lsb-release; specifies Joli OS distribution ID, version number
Provides /etc/upstream-release/lsb-release; references Ubuntu distribution ID, version number
Populates /etc/apt/sources.list.d/ubuntu.list during ubiquity installation
Identifies Atom kernel hardware, selects Atom kernel when detected during ubiquity installation
Minor cosmetic modifications to conform to Joli OS output guidelines
Supports autologin during liveusb boot for jolicloud-displaymanager
Order kernel version numbers with sort --version-sort, not sort -n, corrects update-grub ordering of kernels
Adjust timeout even when there are foreign OSes installed
Corrected keystatus.mod when wubildr runs under Jolicloud Express
Default to not using UUIDs if grub was installed in OEM mode
Disable the cursor early in grub, and at the end when the kernel loads
Inhibit a spurious warning message early in init script
Introduce lzop compression of initrd image
If KMS isn't available, load uvesafb as the framebuffer driver
Added logic to avoid uvesafb on nvidia-legacy-71, otherwise load it normally for all non-KMS devices
Inhibit displaying LSB-based boot/shutdown messages when quiet configured as kernel parameter
Add a -u,--upstream flag to lsb_release; read /etc/upstraem-release/lsb-release
Add an exclusion threshold to screens larger than 13"
Do not display autologin option
Show bigger map when screne is not large enough
Modified the wording on the user-configuration screen
Do not apply oem-config as an application in the legacy UI menu
Upgraded to upstream 0.6.8
Configure FRAMEBUFFER=y in initramfs-tools to start plymouth earlier in the boot process
Set niceless of -20 for smoother animations
Updated upstart scripts to minimize linux lines during bootup
Use tty7 for boot and shutdown
Disable the X11 and DRM renderers, rely only on FB and VGA
Wrap all G_LOG_LEVEL_WARNING messages in ply_g_log_handler(); this should silence spurious glib warnings when ran under initrd
Added --retain-tty option to hide-splash command
Force all /etc/init/* scripts to be updated during package update, regardless of any local modifications
Create a plymouth-wrapper script to work with upstart to ensure plymouthd is always running
Add simple "Shutting down..." and "Rebooting..." messages to plymouth-shutdown upstart script
Use a stretched logo if the screen aspect ratio is less than 16:10
Use 'Restarting...' instead of 'Rebooting...'
Added a way to select upstream or current lsb_release used by get_distro()
Set default partition format to ext4
Add timeout in apt.process read during installation to gracefully sidestep stalls during wubi installations when network access isn't available
Applied rule to pre-date Release files to prevent APT failures on LiveUSB
Support ubiquity-slideshow
Remove right-to-left language support in the slideshow
Initialize threads at start of gtk frontend for webkit
Remove call to non-implemented hook to support links followed by the user
Cosmetic changes in the slideshow window
Set installation window min width
Allow verification and installing window titles
Change requested width to default width
Fix typo: python "and" is "and" not "&&"
Use gtk.Alignment instead of gtk.Frame for slideshow_frame to remove borders
Launch slideshow earlier
Set correct bg color; try inializing the window before showing it
Modify progress title foreground color, apply only to jolicloud
Show bigger map when screen is not large enough
Force the system hostname to be 'jolicloud'
Add Jolicloud specific artwork
Always display installing instead of checking then installing
Use gtk.Alignment instead of gtk.Frame for slideshow_frame to remove borders
Use Gconf to set desktop background color
Force installer window background to hardcoded #333642
Undecorate installer window when UBIQUITY_ONLY is set
Hide automatic/encryption login options
When installing with OEM-mode enabled, do not override the hostname with 'oem-laptop' or 'oem-desktop'; use the default hostname in debconf
Changed internal ubiquity scripts to reference /etc/apt/sources.list.d/ubiquity.list - instead of /etc/apt/sources.list
Added jolicloud, jolicloud-atom kernel identification and selection
Prompt the OEM installer for device type, manufacturer, and model information
Add the details during install
Never show "Skip" button
Display "Setting up your device..." in the progress info
Have oem-config and ubiquity run on vt01, and start plymouth back up once they're done
Replaced -laptop with -jolicloud in hostname
Renamed "System Configuration" with "Jolicloud Configuration"
Force mount style "traditional" (instead of "UUID") when installing in OEM mode
Create /etc/jolicloud-oem.conf immediately after the target filesystem is primed, not last thing just before ubiquity exits
Fixed user-setup / hostname field with a default hostname
Never display the debconf window
Switch to vt7 when ubiquity finished, then start plymouth back up
Added jolicloud-displaymanager support
Use ubiquity's post-stop script to restart plymouth during system shutdown
When identifying the release name from /cdrom/.disk/info, if the second word has "OS", concatinate it with the first word, like "Jolicloud". This way, ubiquity can continue to treat the new second word as the version number
Joli OS in an open source project by Jolicloud .