###########################################################################
# Provide some defaults for Greek school LTSP clients.
#
# This script is normally located at
# /usr/share/ltsp/ltsp_config.d/010-sch-client-defaults
# (in the chroot) and sourced from /usr/share/ltsp_config.
#
# Copyright (C) 2010 Alkis Georgopoulos <alkisg@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# On Debian GNU/Linux systems, the complete text of the GNU General
# Public License can be found in `/usr/share/common-licenses/GPL'.
###########################################################################

# lts.conf has been sourced before us

# LTSP_FATCLIENT might have not been initialized yet. We need it thought, so
# duplicate some code from ltsp_config to initialize it.
if [ -z "$LTSP_FATCLIENT" ] && [ -f /etc/ltsp_fat_chroot ]; then
    # Don't set LTSP_FATCLIENT for low-RAM clients booting from a fat chroot
    memtotal=$(sed -n 's/MemTotal: *\([0-9]*\) .*/\1/p' /proc/meminfo)
    FAT_RAM_THRESHOLD=${FAT_RAM_THRESHOLD:-300}
    if [ "$memtotal" -ge $((1024*$FAT_RAM_THRESHOLD)) ]; then
        export LTSP_FATCLIENT=True
    fi
elif boolean_is_true "$LTSP_FATCLIENT" && [ ! -f /etc/ltsp_fat_chroot ]; then
    # Prevent the user from forcing a fat client on a thin chroot.
    unset LTSP_FATCLIENT
fi

if boolean_is_true "$LTSP_FATCLIENT"; then
    # Some defaults for fat clients

    # Use $USE_NFS_HOME as a means to prevent from trying to mount NFS_HOME
    # on fat clients. Of course if nfs isn't contacted, sshfs is used.
    if boolean_is_true "$USE_NFS_HOME" || [ -z "$USE_NFS_HOME" ]; then
        # Εάν δημιουργήσατε εικονικό δίσκο για fat clients, το /home διαμοιράστηκε
        # αυτόματα μέσω NFS. Αυτό είναι ελαφρώς πιο επισφαλές από το προεπιλεγμένο
        # SSHFS, αλλά είναι πιο γρήγορο και πιο συμβατό με διάφορα προγράμματα.
        export NFS_HOME="${NFS_HOME:-/home}"
        export NFS_HOME_OPTIONS="${NFS_HOME_OPTIONS:-defaults,nolock}"
    fi

    # Ο DNS_SERVER χρειάζεται κυρίως για τους fat clients.
    # Πρώτα χρησιμοποιείται ο LTSP server, ο οποίος έχει εγκατεστημένο το
    # dnsmasq, και στη συνέχεια οι nic.sch.gr και opendns.com.
    export DNS_SERVER="${DNS_SERVER:-$SERVER 194.63.238.4 208.67.222.222}"

    # Η παρακάτω οδηγία ορίζει ότι όσα τερματικά έχουν λιγότερη από 500 MB RAM,
    # θα χρησιμοποιούν δικτυακό αρχείο σελιδοποίησης (swap), για αποφυγή κολλημάτων.
    export NBD_SWAP_THRESHOLD="${NBD_SWAP_THRESHOLD:-500}"
else
    # Some defaults for thin clients

    # Να μη χρησιμοποιείται κρυπτογράφηση στην επικοινωνία πελατών / εξυπηρετητή.
    # Αλλιώς, η χρήση CPU στα τερματικά αλλά και στον εξυπηρετητή είναι τεράστια.
    export LDM_DIRECTX="${LDM_DIRECTX:-True}"

    export X_COLOR_DEPTH="${X_COLOR_DEPTH:-16}"

    # Εάν έχετε thin clients με υπερβολικά λίγη RAM, προτείνεται να απενεργοποιήσετε
    # τα LOCAL_APPS, επειδή χρειάζονται κάποια μνήμη.
    export LOCAL_APPS="${LOCAL_APPS:-False}"

    # Η παρακάτω οδηγία ορίζει ότι όσα τερματικά έχουν λιγότερο από 100 MB RAM,
    # θα χρησιμοποιούν δικτυακό αρχείο σελιδοποίησης (swap), για αποφυγή κολλημάτων.
    export NBD_SWAP_THRESHOLD="${NBD_SWAP_THRESHOLD:-100}"
fi

# And some defaults for both thin and fat clients

# Να μην γίνεται έλεγχος για την IP του server κατά τη σύνδεση. Αυτό μειώνει
# λίγο την ασφάλεια, αλλά γλυτώνει από αρκετούς πονοκεφάλους σε αλλαγή της IP.
export LDM_SSHOPTIONS="${LDM_SSHOPTIONS:--o StrictHostKeyChecking=no -o CheckHostIP=no -o LogLevel=silent}"


# Ενεργοποιήστε το παρακάτω αν έχετε τοπική κατάτμηση swap.
# Αν τα τερματικά διαθέτουν σκληρό δίσκο, προτείνεται να φτιάξετε μία.
export USE_LOCAL_SWAP="${USE_LOCAL_SWAP:-True}"

# Only enable X_NUMLOCK on workstations, not on laptops
laptop-detect || export X_NUMLOCK="${X_NUMLOCK:-True}"

# Το παρακάτω δίνει οδηγία σε όσες κάρτες δικτύου / μητρικές το υποστηρίζουν
# να παραλαμβάνουν πακέτα δικτύου ακόμα και μετά τον τερματισμό, ώστε να είναι
# δυνατή η απομακρυσμένη εκκίνηση των τερματικών.
export ENABLE_WOL="${ENABLE_WOL:-True}"

# Συγχρονισμός ώρας των τερματικών με κάποιον εξυπηρετητή δικτύου.
# Το 91.189.94.4 αντιστοιχεί στο ntp.ubuntu.com
# Αν οι clients δεν βλέπουν απευθείας Internet, εγκαταστήστε το πακέτο
# ntp στο server και βάλτε την IP του server.
export TIMEZONE="${TIMEZONE:-Europe/Athens}"
export TIMESERVER="${TIMESERVER:-91.189.94.4}"
