commit 6050775477d46f745e56eaf918ebbb58e40c62fd Author: lina Date: Fri Dec 29 10:41:19 2023 +0100 upgrade to debian 12 diff --git a/README.md b/README.md new file mode 100644 index 0000000..88e38b1 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# post-install +## REQUIREMENTS +- Operating system: Debian Bullseye +- System version : 64 bits +## Installation +```bash +./install.sh +``` diff --git a/files/bashrc b/files/bashrc new file mode 100644 index 0000000..5fe7d7a --- /dev/null +++ b/files/bashrc @@ -0,0 +1,130 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + #test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias py='python3' + alias code='codium' + alias balena='/home/max/workspace/app-images/balenaEtcher-1.7.8-x64.AppImage' + alias ls='ls --color=auto' + alias ll='ls -la' + alias doc='docker' + alias dc='docker-compose' + alias k='kubectl' + alias suspend='systemctl suspend' + alias shutdown='sudo shutdown now' + alias reboot='sudo reboot' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + #alias grep='grep --color=auto' + #alias fgrep='fgrep --color=auto' + #alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +#alias ll='ls -l' +#alias la='ls -A' +#alias l='ls -CF' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi + +## git +git_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' +} +export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]:\[\033[38;5;5m\]\$(git_branch)\[\033[00m\]\$ " + diff --git a/files/extensions.dump b/files/extensions.dump new file mode 100644 index 0000000..8d21ca7 --- /dev/null +++ b/files/extensions.dump @@ -0,0 +1,78 @@ +[arcmenu] +alphabetize-all-programs=true +application-shortcuts-list=[['Software', 'system-software-install-symbolic', 'ArcMenu_Software'], ['Settings', 'preferences-system-symbolic', 'gnome-control-center.desktop'], ['Tweaks', 'org.gnome.tweaks-symbolic', 'org.gnome.tweaks.desktop']] +arc-menu-icon=23 +arc-menu-placement='DTP' +available-placement=[false, true, false] +button-padding=-1 +custom-menu-button-icon-size=36.0 +default-menu-view='Frequent_Apps' +disable-category-arrows=false +disable-menu-button-active-indicator=false +disable-scrollview-fade-effect=false +disable-searchbox-border=false +disable-user-avatar=true +distro-icon=16 +enable-custom-arc-menu=false +enable-horizontal-flip=true +enable-menu-button-arrow=false +gap-adjustment=0 +indicator-color='rgb(41, 165, 249)' +indicator-text-color='rgba(196, 196, 196, 0.3)' +menu-button-hover-color='rgb(98,160,234)' +menu-button-icon='Arc_Menu_Icon' +menu-layout='Default' +multi-lined-labels=true +multi-monitor=false +override-menu-button-active-color=false +override-menu-button-color=false +override-menu-button-hover-color=false +pinned-app-list=['Firefox ESR', '', 'firefox-esr.desktop', 'LibreOffice', '', 'libreoffice-startcenter.desktop'] +prefs-visible-page=0 +recently-installed-apps=@as [] +remove-menu-arrow=false +searchbar-default-bottom-location='Top' +show-activities-button=false +show-bookmarks=true +show-external-devices=false +show-search-result-details=false + +[dash-to-panel] +animate-appicon-hover-animation-extent={'RIPPLE': 4, 'PLANK': 4, 'SIMPLE': 1} +appicon-margin=2 +appicon-padding=6 +available-monitors=[0] +dot-color-1='#5294e2' +dot-color-2='#5294e2' +dot-color-3='#5294e2' +dot-color-4='#5294e2' +dot-color-unfocused-1='#5294e2' +dot-color-unfocused-2='#5294e2' +dot-color-unfocused-3='#5294e2' +dot-color-unfocused-4='#5294e2' +dot-position='BOTTOM' +dot-style-focused='METRO' +dot-style-unfocused='DASHES' +focus-highlight-color='#eeeeee' +hotkeys-overlay-combo='TEMPORARILY' +leftbox-padding=2 +leftbox-size=0 +panel-anchors='{"0":"MIDDLE"}' +panel-element-positions='{"0":[{"element":"showAppsButton","visible":false,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":true,"position":"stackedTL"},{"element":"centerBox","visible":true,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"stackedBR"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":false,"position":"stackedBR"}]}' +panel-lengths='{"0":100}' +scroll-panel-action='NOTHING' +show-appmenu=false +show-apps-icon-file='' +show-apps-icon-side-padding=0 +show-favorites=true +show-favorites-all-monitors=true +show-running-apps=true +status-icon-padding=-1 +stockgs-keep-top-panel=false +tray-padding=-1 +tray-size=0 + +[ding] +check-x11wayland=true +icon-size='standard' +show-network-volumes=false diff --git a/files/macos-sierra-nevada-mountain.jpg b/files/macos-sierra-nevada-mountain.jpg new file mode 100644 index 0000000..cbb5be3 Binary files /dev/null and b/files/macos-sierra-nevada-mountain.jpg differ diff --git a/files/nord.png b/files/nord.png new file mode 100644 index 0000000..ff21728 Binary files /dev/null and b/files/nord.png differ diff --git a/files/sources.list b/files/sources.list new file mode 100644 index 0000000..a620c65 --- /dev/null +++ b/files/sources.list @@ -0,0 +1,16 @@ + +# Base +deb http://deb.debian.org/debian bookworm main non-free-firmware contrib non-free +deb-src http://deb.debian.org/debian bookworm main non-free-firmware contrib non-free + +# Security +deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware contrib non-free +deb-src http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware contrib non-free + +# Updates +deb http://deb.debian.org/debian bookworm-updates main non-free-firmware contrib non-free +deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware contrib non-free + +# Backports +deb http://deb.debian.org/debian bookworm-backports main non-free-firmware contrib non-free +deb-src http://deb.debian.org/debian bookworm-backports main non-free-firmware contrib non-free \ No newline at end of file diff --git a/files/telegram-desktop.desktop b/files/telegram-desktop.desktop new file mode 100644 index 0000000..2a17bef --- /dev/null +++ b/files/telegram-desktop.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Version=1.0 +Name=Telegram Desktop +Comment=Official desktop version of Telegram messaging app +TryExec=/opt/Telegram/Telegram +Exec=/opt/Telegram/Telegram -- %u +Icon=telegram +Terminal=false +StartupWMClass=TelegramDesktop +Type=Application +Categories=Network;InstantMessaging;Qt; +MimeType=x-scheme-handler/tg; +X-Desktop-File-Install-Version=0.23 diff --git a/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Mono Windows Compatible.ttf b/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 0000000..7125522 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Mono.ttf b/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Mono.ttf new file mode 100644 index 0000000..cc40419 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Mono.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Windows Compatible.ttf b/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 0000000..cb146d9 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete Windows Compatible.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete.ttf b/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete.ttf new file mode 100644 index 0000000..88672f1 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Bold Italic Nerd Font Complete.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Mono Windows Compatible.ttf b/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 0000000..b4664a4 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Mono.ttf b/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Mono.ttf new file mode 100644 index 0000000..5b9fe27 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Mono.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Windows Compatible.ttf b/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 0000000..ce41653 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete Windows Compatible.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete.ttf b/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete.ttf new file mode 100644 index 0000000..7639e69 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Bold Nerd Font Complete.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Mono Windows Compatible.ttf b/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 0000000..16fdedf Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Mono.ttf b/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Mono.ttf new file mode 100644 index 0000000..6a751f2 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Mono.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Windows Compatible.ttf b/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 0000000..85b452b Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete Windows Compatible.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete.ttf b/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete.ttf new file mode 100644 index 0000000..95104b6 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Italic Nerd Font Complete.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Mono Windows Compatible.ttf b/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 0000000..0aa55b8 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Mono.ttf b/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Mono.ttf new file mode 100644 index 0000000..63be0a7 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Mono.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Windows Compatible.ttf b/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 0000000..641afab Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete Windows Compatible.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete.ttf b/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete.ttf new file mode 100644 index 0000000..d7a2fed Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono Nerd Font Complete.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono derivative Powerline Bold Italic.ttf b/files/ubuntu-mono/Ubuntu Mono derivative Powerline Bold Italic.ttf new file mode 100644 index 0000000..c0e5d5c Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono derivative Powerline Bold Italic.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono derivative Powerline Bold.ttf b/files/ubuntu-mono/Ubuntu Mono derivative Powerline Bold.ttf new file mode 100644 index 0000000..accaab4 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono derivative Powerline Bold.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono derivative Powerline Italic.ttf b/files/ubuntu-mono/Ubuntu Mono derivative Powerline Italic.ttf new file mode 100644 index 0000000..0305079 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono derivative Powerline Italic.ttf differ diff --git a/files/ubuntu-mono/Ubuntu Mono derivative Powerline.ttf b/files/ubuntu-mono/Ubuntu Mono derivative Powerline.ttf new file mode 100644 index 0000000..c9ce6a0 Binary files /dev/null and b/files/ubuntu-mono/Ubuntu Mono derivative Powerline.ttf differ diff --git a/gnome.sh b/gnome.sh new file mode 100755 index 0000000..a2edcb4 --- /dev/null +++ b/gnome.sh @@ -0,0 +1,131 @@ +#!/bin/bash +############### +# Preparation # +############### +if [[ -z $PERSO ]]; then + PERSO=$USER + STANDALONE=1 +fi +HOME="/home/$PERSO" +PICTURES_DIR=$(grep PICTURES ~/.config/user-dirs.dirs | cut -d'=' -f2 | sed 's/"//g; s/$HOME\///') + +############# +# Questions # +############# +if [ $STANDALONE -eq 1 ]; then + THEMES=$(whiptail --title "Thème général" --radiolist "Choisissez votre thème parmi ces choix :" 15 60 5 \ + "Theme 1 :" "Layan-gtk-theme" OFF \ + "Theme 2 :" "Vimix-gtk-themes" OFF \ + "Theme 3 :" "Fluent-gtk-theme" OFF \ + "Theme 4 :" "Qogir-gtk-theme" ON \ + "Theme 5 :" "WhiteSur-gtk-theme" OFF 3>&1 1>&2 2>&3) +fi +############## +# Copy files # +############## +cp -n files/nord.png files/macos-sierra-nevada-mountain.jpg $HOME/"$PICTURES_DIR"/ +mkdir $HOME/.local/share/fonts +cp -rn files/ubuntu-mono $HOME/.local/share/fonts/ +fc-cache + +################## +# General config # +################## +gsettings set org.gnome.desktop.wm.preferences button-layout appmenu:minimize,maximize,close +gsettings set org.gnome.desktop.interface cursor-theme 'DMZ-White' +gsettings set org.gnome.desktop.background picture-uri "file://$(pwd)/files/nord.png" +gsettings set org.gnome.mutter dynamic-workspaces false +gsettings set org.gnome.desktop.wm.preferences num-workspaces 5 +gsettings set org.gnome.desktop.interface clock-show-date true +gsettings set org.gnome.shell favorite-apps "['firefox-esr.desktop', 'org.gnome.Nautilus.desktop', 'libreoffice-startcenter.desktop', 'org.gnome.Software.desktop']" +gsettings set org.gnome.desktop.interface monospace-font-name "UbuntuMono Nerd Font Regular 15" +gsettings set org.gnome.shell enabled-extensions "[\ + 'user-theme@gnome-shell-extensions.gcampax.github.com',\ + 'drive-menu@gnome-shell-extensions.gcampax.github.com',\ + 'dash-to-panel@jderose9.github.com',\ + 'ding@rastersoft.com',\ + 'arcmenu@arcmenu.com'\ + ]" + +############## +# Extensions # +############## +git clone https://gitlab.com/rastersoft/desktop-icons-ng +(cd desktop-icons-ng ; ./local_install.sh) +git clone https://github.com/home-sweet-gnome/dash-to-panel +(cd dash-to-panel ; git checkout gnome-40 ; make install) +git clone https://gitlab.com/arcmenu/ArcMenu.git +(cd ArcMenu ; git checkout gnome-42/43/44 ; make install) +dconf load /org/gnome/shell/extensions/ < files/extensions.dump +rm -rf desktop-icons-ng dash-to-panel ArcMenu + +################# +# Theme install # +################# +mkdir ./icons ./themes $HOME/.icons +if [ -z "$THEMES" ]; then + echo -e "\e[91mAucun thème n'a été choisi" +else + echo -e "\e[93mVous avez choisi le theme : $THEMES" + case "$THEMES" in + "Theme 1 :") + git clone https://github.com/vinceliuice/Layan-gtk-theme.git themes/ + git clone https://github.com/vinceliuice/Tela-icon-theme icons/ + (cd themes/ ; ./install.sh) + (cd icons/ ; ./install.sh) + gsettings set org.gnome.desktop.interface gtk-theme "Layan-Dark" + gsettings set org.gnome.desktop.interface icon-theme "Tela" + gsettings set org.gnome.shell.extensions.user-theme name "Layan-Dark" + ;; + "Theme 2 :") + git clone https://github.com/vinceliuice/vimix-gtk-themes.git themes/ + git clone https://github.com/vinceliuice/vimix-icon-theme icons/ + (cd themes/ ; ./install.sh) + (cd icons/ ; ./install.sh) + gsettings set org.gnome.desktop.interface gtk-theme "vimix-light-doder" + gsettings set org.gnome.desktop.interface icon-theme "Vimix" + gsettings set org.gnome.shell.extensions.user-theme name "vimix-dark-doder" + ;; + "Theme 3 :") + git clone https://github.com/vinceliuice/Fluent-gtk-theme.git themes/ + git clone https://github.com/vinceliuice/Fluent-icon-theme icons/ + (cd themes/ ; ./install.sh) + (cd icons/ ; ./install.sh) + gsettings set org.gnome.desktop.interface gtk-theme "Fluent-Dark" + gsettings set org.gnome.desktop.interface icon-theme "Fluent" + gsettings set org.gnome.shell.extensions.user-theme name "Fluent-Dark" + ;; + "Theme 4 :") + git clone https://github.com/vinceliuice/Qogir-theme themes/ + git clone https://github.com/vinceliuice/Qogir-icon-theme icons/ + (cd themes/ ; ./install.sh) + (cd icons/ ; ./install.sh) + gsettings set org.gnome.desktop.interface gtk-theme 'Qogir-Dark' + gsettings set org.gnome.desktop.interface icon-theme 'Qogir-dark' + gsettings set org.gnome.shell.extensions.user-theme name 'Qogir-Dark' + ;; + "Theme 5 :") + git clone https://github.com/vinceliuice/WhiteSur-gtk-theme themes/ + git clone https://github.com/keeferrourke/la-capitaine-icon-theme icons/la-capitaine-icon-theme + (cd themes/ ; ./install.sh) + mv icons/la-capitaine-icon-theme/ $HOME/.icons + gsettings set org.gnome.desktop.interface gtk-theme "WhiteSur-Dark" + gsettings set org.gnome.desktop.interface icon-theme "la-capitaine-icon-theme" + gsettings set org.gnome.shell.extensions.user-theme name "WhiteSur-Dark" + gsettings set org.gnome.desktop.background picture-uri "file://$(pwd)/files/macos-sierra-nevada-mountain.jpg" + ;; + *) + echo -e "\e[91mUnsupported item $THEMES!" >&2 + exit 1 + ;; + esac +fi + +############ +# Cleaning # +############ +rm -rf ./themes +rm -rf ./icons +if [ $STANDALONE -eq 1 ]; then + busctl --user call "org.gnome.Shell" "/org/gnome/Shell" "org.gnome.Shell" "Eval" "s" 'Meta.restart("Restarting…")'; +fi diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..77fccc6 --- /dev/null +++ b/install.sh @@ -0,0 +1,320 @@ +#!/bin/bash +# authors : https://gitlab.com/Mxaxax - https://gitlab.com/edricus +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit +fi + +################### +## USER CREATION ## +################### +printf "\033[32;5m== Creation des utilisateurs...\033[0m\n" + +## BELLINUXIEN +if id "bellinuxien" >/dev/null 2>&1; then + echo -e "\e[93ml'utilisateur bellinuxien existe déjà" +else + if (whiptail --yesno "Voulez-vous créer l'utilisateur bellinuxien ?" 8 78 --title "Creation de l'utilisateur bellinuxien" 3>&1 1>&2 2>&3); then + adduser bellinuxien --gecos "" --disabled-password --quiet + PASSWORD=1 + while [[ $PASSWORD != $VERIF ]]; do + PASSWORD=$(whiptail --passwordbox "Entrez le mot de passe de bellinuxien" 8 78 --title "Creation de l'utilisateur bellinuxien" 3>&1 1>&2 2>&3) + VERIF=$(whiptail --passwordbox "Entrez une nouvelle fois le mot de passe" 8 78 --title "Creation de l'utilisateur bellinuxien" 3>&1 1>&2 2>&3) + if [[ $PASSWORD != $VERIF ]]; then + whiptail --msgbox "Les mots de passe ne correspondent pas !" --title "Creation de l'utilisateur bellinuxien" 8 78 + fi + done + echo "bellinuxien:"$PASSWORD"" | chpasswd + usermod -aG sudo bellinuxien + cat << EOF > /var/lib/AccountsService/users/bellinuxien +[User] +SystemAccount=true +EOF + fi +fi + +## PERSO / VISITEUR +PERSO='1 1' # ugly workaround to start the space-in-string verfication loop +PASSWORD=1 +if (whiptail --yesno "Voulez-vous créer un utilisateur ?" 8 78 --title "Creation d'un utilisateur perso" 3>&1 1>&2 2>&3); then + while [[ ! -z $(echo $PERSO | grep "[[:space:]]") ]]; do + PERSO="$(whiptail --inputbox --separate-output --title "Creation d'un utilistateur perso" 3>&1 1>&2 2>&3 \ + "Entrez le nom d'utilisateur à créer" 8 40 visiteur)" + if [[ ! -z $(echo $PERSO | grep "[[:space:]]") ]]; then + whiptail --msgbox "Le nom d'utilisateur ne doit pas contenir d'espaces !" --title "Creation d'un utilisateur perso" 8 78 + fi + done + if [[ $PERSO == visiteur ]]; then + if id "visiteur" >/dev/null 2>&1; then + echo -e "\e[93mL'utilisateur visiteur existe déjà" + else + adduser visiteur --gecos "visiteur" --disabled-password --quiet + usermod -a -G cdrom,floppy,audio,bluetooth,dip,video,plugdev,scanner,netdev,lp,lpadmin visiteur + echo 'visiteur:visiteur' | chpasswd + fi + else + while [[ $PASSWORD != $VERIF ]]; do + PASSWORD=$(whiptail --passwordbox "Entrez le mot de passe" 8 78 --title "Creation d'un utilisateur perso" 3>&1 1>&2 2>&3) + VERIF=$(whiptail --passwordbox "Entrez une nouvelle fois le mot de passe" 8 78 --title "Creation d'un utilisateur perso" 3>&1 1>&2 2>&3) + if [[ $PASSWORD != $VERIF ]]; then + whiptail --msgbox "Les mots de passe ne correspondent pas !" --title "Creation d'un utilisateur perso" 8 78 + else + adduser $PERSO --gecos "${PERSO^}" --disabled-password --quiet + echo "$PERSO:"$PASSWORD"" | chpasswd + if (whiptail --yesno "Voulez-vous ajouter cet utilisateur au groupe sudo ?" --title "Creation d'un utilisateur perso" 8 78 3>&1 1>&2 2>&3) then + usermod -aG sudo $PERSO + fi + fi + done + fi + else PERSO=$(id -nu 1000) +fi +if [[ -z $PERSO ]]; then + PERSO=$(id -nu 1000) +fi + +################## +## QUESTIONS DE ## +################## +printf "\033[0;32m== Choix de l'environnement de bureau... \033[0m\n" +DE=$(whiptail --separate-output --title "Environnements de bureau" --radiolist \ + "Quel environnement de bureau utiliser ?" 10 60 3 \ + "MATE" "Leger, convient aux PC anciens" OFF \ + "KDE" "Complexe, adapté au multi-tâche" OFF \ + "GNOME" "Moderne, ergonomie et visuel soigné " ON 3>&1 1>&2 2>&3) +printf "\033[0;32m== Choix du profil... \033[0m\n" +PROFIL=$(whiptail --separate-output --title "Profils" --checklist \ + "Quels profils d'utilisateurs sur cet ordinateur?" 15 90 10 \ + "Team-Working" "Des logiciels pour le travail collaboratif" ON \ + "Enfants" "Des jeux et des outils éducatifs" OFF \ + "Seniors" "Des outils d'accessibilité" OFF \ + "Gamer" "Des jeux, des jeux ,des jeux" OFF \ + "MAO" "Des logiciels pour la création musicale" OFF \ + "DevOps" "Des logiciels pour s'initier à l'approche DevOps" OFF \ + "Toshiba_toughbook" "Correction de bug pour le son" OFF 3>&1 1>&2 2>&3) + +##################### +## PACKAGE MANAGER ## +##################### +printf "\033[0;32m== Configuration de APT... \033[0m\n" +cp files/sources.list /etc/apt/sources.list +dpkg --add-architecture i386 +apt-get update -y +apt-get upgrade -y + +############################# +## INTERNET ACCESS CONTROL ## +############################# +echo $'[main]\ndns=none' | tee /etc/NetworkManager/conf.d/90-dns-none.conf &>/dev/null +systemctl reload NetworkManager +sed -i '1,4 s/^/#/' /etc/resolv.conf && sed -i -e '$anameserver 1.1.1.2\nnameserver 2606:4700:4700::1112' /etc/resolv.conf +systemctl reload NetworkManager + +################### +## BASE PACKAGES ## +################### +printf "\033[0;32m== Installation des programmes de base... \033[0m\n" +apt-get install -yqq git curl wget zip unzip bash-completion gnome-tweaks snapd flatpak gnome-software-plugin-flatpak libxdo3 +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + +################## +## CONFIG FILES ## +################## +ACCOUNTSSERVICE="/var/lib/AccountsService/users/"$PERSO"" + +# SOURCES.LIST +printf "\033[0;32m== Ajout des backports dans sources.list... \033[0m\n" +if [ -z "$(grep 'bookworm-backports' /etc/apt/sources.list)" ]; then + echo "deb http://deb.debian.org/debian bookworm-backports main non-free-firmware contrib non-free" >> /etc/apt/sources.list + apt-get update +fi + +# BASHRC +printf "\033[0;32m== Modification de bashrc... \033[0m\n" +mv /home/"$PERSO"/.bashrc /home/"$PERSO"/.bashrc.BACK +cp -r files/bashrc /home/"$PERSO"/.bashrc + +################ +## INSTALL DE ## +################ +if [ -z "$DE" ]; then + echo -e "\e[91mAucun profil n'a été choisi" +else + for i in $DE; do + echo -e "\e[93mVous avez choisis le bureau : $DE" + case "$i" in + "MATE") + if [[ ! -z $(ps -aux | grep mate-panel$) ]]; then + echo "MATE est déjà installé" + else + apt-get purge --autoremove *gnome* *kde* -y + apt-get install -yqq gnome-system-tools blueman gnome-software ttf-mscorefonts-installer -y + tasksel install mate-desktop + sed -i '/XSession/d' $ACCOUNTSSERVICE + sed -i '/Session/a XSession=mate' $ACCOUNTSSERVICE + whiptail --msgbox "Les changements seronts appliqués au prochain redémarrage" 8 78 + fi + ;; + "KDE") + if [[ ! -z $(ps -aux | grep kded4$) ]]; then + echo "KDE est déjà installé" + else + apt-get purge --autoremove *gnome* *mate* -y + tasksel install kde-desktop + apt-get install -yqq ttf-mscorefonts-installer -y + sed -i '/XSession/d' $ACCOUNTSSERVICE + sed -i '/Session/a XSession=kde' $ACCOUNTSSERVICE + whiptail --msgbox "Les changements seronts appliqués au prochain redémarrage" 8 78 + fi + ;; + "GNOME") + if [[ ! -z $(ps -aux | grep gnome-session$) ]]; then + echo "GNOME est déjà installé" + else + apt-get purge --autoremove *mate* *kde* -y + tasksel install gnome-desktop + apt-get install -yqq gnome-tweak-tool gnome-screensaver arc-theme dmz-cursor-theme -y + sed -i '/XSession/d' $ACCOUNTSSERVICE + sed -i '/Session/a XSession=gnome' $ACCOUNTSSERVICE + whiptail --msgbox "Les changements seronts appliqués au prochain redémarrage" 8 78 + fi + ;; + *) + echo -e "\e[91mUnsupported item $DE !" >&2 + exit 1 + ;; + esac + done +fi + +##################### +## INSTALL PROFILE ## +##################### +for i in $PROFIL; do + echo -e "\e[93mVous avez choisi le profil : $PROFIL" + case "$i" in + "Enfants") + echo $'[main]\ndns=none' | tee /etc/NetworkManager/conf.d/90-dns-none.conf + sed -i '1,6 s/^/#/' /etc/resolv.conf + sed -i -e '$anameserver 1.1.1.3\nnameserver 2606:4700:4700::1113' /etc/resolv.conf + apt-get install -yqq veyon-service tuxpaint pingus numptyphysics warmux xmoto slimevolley arduino -y + apt-get install -yqq -t bookworm-backports gcompris-qt -y + ;; + "Seniors") + # Skype + wget --timeout 5 --tries 3 https://go.skype.com/skypeforlinux-64.deb + dpkg -i skypeforlinux-64.deb + apt-get install -yqq -f + rm -rf skypeforlinux-64.deb + # Outlook + cp files/desktopfiles/outlook.desktop /usr/share/applications/outlook.desktop + ## Outlook unofficial client + #curl -s https://api.github.com/repos/julian-alarcon/prospect-mail/releases/latest | grep "browser_download_url.*deb" | cut -d : -f 2,3 | tr -d \" | wget --timeout 5 --tries 3 --show-progress -qi - + #dpkg -i prospect-mail_*_amd64.deb + #apt-get install -yqq -f + #rm -rf prospect-mail_*_amd64.deb + # Rustdesk install + cd /tmp && wget https://github.com/rustdesk/rustdesk/releases/download/1.1.9/rustdesk-1.1.9.deb && dpkg -i rustdesk-1.1.9.deb && rm -rf rustdesk-1.1.9.deb + ;; + "Gamer") + yes | apt-get install -yqq veyon-service steam -y + # Discord + wget --timeout 5 --tries 3 -O discord.tar.gz "https://discordapp.com/api/download?platform=linux&format=tar.gz" + tar -xf discord.tar.gz + desktop-file-validate Discord/discord.desktop + mv Discord/discord.desktop /usr/share/applications/ + mv Discord /usr/share/ + ln -s /usr/share/Discord/Discord /usr/bin/discord + # Autres + snap install urban-terror warzone2100 flightgear stuntrally extreme-tux-racer tmnationsforever mc-installer mari0-ce liveforspeed opensurge crrcsim-simulator love + snap install {savagexr,pixels-game} --beta + ;; + "MAO") + apt-get install -yqq playonlinux lmms audacity mixxx ardour rosegarden soundconverter qtractor -y + wget --timeout 5 --tries 3 https://dl.4kdownload.com/app/4kyoutubetomp3_4.6.2-1_amd64.deb + dpkg -i ./4kyoutubetomp3_4.6.2-1_amd64.deb + apt-get install -yqq -f + rm -rf ./4kyoutubetomp3_4.6.2-1_amd64.deb + ;; + "Team-Working") + apt-get install -yqq gimp gitso soundcgimp onverter scribus chromium chromium-l10n vlc brasero pdfarranger -y + # Signal + echo 'deb [signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg arch=amd64] https://updates.signal.org/desktop/apt xenial main' > /etc/apt/sources.list.d/signal.list + wget --timeout 5 --tries 3 -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg + cat signal-desktop-keyring.gpg > /usr/share/keyrings/signal-desktop-keyring.gpg + rm -rf signal-desktop-keyring.gpg + # Zoom + wget --timeout 5 --tries 3 https://zoom.us/client/5.13.7.683/zoom_amd64.deb + dpkg -i zoom_amd64.deb + apt-get install -yqq -f + rm -rf zoom_amd64.deb + # Telegram + wget --timeout 5 --tries 3 "https://telegram.org/dl/desktop/linux" -O telegram.tar.xz + tar -xf telegram.tar.xz + mv Telegram/Telegram /usr/local/bin/telegram + cp files/telegram-desktop.desktop /usr/share/applications/ + # Autres + snap install messenger-collabee yakyak whatsdesk && \ + snap install slack --classic + snap install cawbird --edge + ;; + "DevOps") + mkdir devops && git clone https://gitlab.com/Mxaxax/installations.git devops/ && bash devops/devops.sh && rm -rf ./devops/ + ;; + "Toshiba_toughbook") + mkdir ./toshiba && git clone https://gitlab.com/garagenum/tools/linux/debian-customizer.git toshiba/ && mv /usr/share/pulseaudio/alsa-mixer/paths/analog-output-speaker.conf /usr/share/pulseaudio/alsa-mixer/paths/analog-output-speaker.conf.BACK && cp -r ./toshiba/custom-debian-conf/system-conf/analog-output-speaker.conf /usr/share/pulseaudio/alsa-mixer/paths/analog-output-speaker.conf + rm -rf ./toshiba/ + ;; + *) + echo -e "\e[91mUnsupported item $PROFIL!" >&2 + exit 1 + ;; + esac +done + +############### +## APPARENCE ## +############### + +## Desktop environment +echo "DE is $DE" +echo "User is $PERSO" +if [ "$(echo $DE)" == 'GNOME' ]; then + apt-get install gettext meson ninja-build dmz-cursor-theme -y + printf '\n' + echo "Pour la configuration de gnome, basculer sur $PERSO et executez le script \'gnome.sh\' sans sudo. Si aucun utilisateur n'a été créé, juste executez gnome.sh tout de suite" + printf '\n' +fi + +########### +# Firefox # +########### +## ne fonctionne plus : https://blog.mozilla.org/addons/2019/10/31/firefox-to-discontinue-sideloaded-extensions/ +# printf "\033[0;32m== Téléchargement des extensions firefox depuis addons.mozilla.org... \033[0m\n" +# mkdir ./addons +# # Ublock +# curl -s https://api.github.com/repos/gorhill/uBlock/releases/latest \ +# | grep "browser_download_url.*firefox.xpi" \ +# | cut -d : -f 2,3 \ +# | tr -d \" \ +# | wget -qi - -P addons/ublock-origin.xpi + +# SOFTWARES INSTALLATION +# printf "\033[0;32m== Installation des logiciels : Element, VScodium...\033[0m\n" +## ELEMENT (logiciel libre de messagerie instantanée) +# apt-get install -yqq software-properties-common apt-get-transport-https wget --timeout 5 --tries 3 -y +# wget --timeout 5 --tries 3 -O- https://packages.riot.im/debian/riot-im-archive-keyring.gpg | gpg --dearmor | tee /usr/share/keyrings/riot-im-archive-keyring.gpg +# echo "deb [signed-by=/usr/share/keyrings/riot-im-archive-keyring.gpg] https://packages.riot.im/debian/ default main" | tee /etc/apt-get/sources.list.d/riot-im.list +# apt-get update -y +# apt-get install -yqq riot-desktop -y + +## VSCODIUM (éditeur de code | fork de Visual Studio Code) +# wget --timeout 5 --tries 3 -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | +# gpg --dearmor | +# dd of=/usr/share/keyrings/vscodium-archive-keyring.gpg +# echo 'deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.gpg ] https://download.vscodium.com/debs vscodium main' | +# tee /etc/apt-get/sources.list.d/vscodium.list +# apt-get update -y && apt-get install -yqq codium -y + +# Restart GNOME +# su -c "busctl --user call "org.gnome.Shell" "/org/gnome/Shell" "org.gnome.Shell" "Eval" "s" 'Meta.restart("Restarting…")';" $PERSO