La boite à dev

Blog pense-bête pour codeur


Personnalisation de Window Maker

Comment rendre l'apparence de Window Maker plus proche de celle de NeXTSTEP

Catégories: [linux]
Étiquettes: [desktop] [window maker] [language C]

SLACKWARE


dhcpcd
slackstrap.tar.gz
postinstall.tar.gz
windowmaker-wmd.tar.gz
claws-mail-wmd.tar.gz
geany-wmd.tar.gz
geany-plugins-wmd.tar.gz

GRUB:
chroot /mnt /bin/bash
source /etc/profile
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
exit

Lister entrées: efibootmgr
Supprimer entrée: efibootmgr -b  -B

/etc/profile.d/lang.sh
export LANG=fr_FR.UTF8

/etc/fstab
/dev/sd[xx] /       ext4    defaults,noatime        1 1
/dev/sd[xx] /home       ext4    defaults,noatime        1 2
tmpfs       /tmp        tmpfs   defaults,noatime,mode=1777  0 0
tmpfs       /var/tmp    tmpfs   defaults,noatime,mode=1777  0 0

/etc/slackpkg/mirrors

/etc/slackpkg/blacklist
kernel-generic.*
kernel-huge.*
kernel-modules.*
kernel-source
e/
f/
kde/
t/
tcl/
#xap/ -> à décommenter après premier upgrade-all
xfce/
y/
# a/
elvis
# ap/
bc
gutenprint
hplip
jed
joe
jove
mc
soma
vim
# n/
ModemManager
alpine
elm
irssi
links
lynx
mutt
nmap
# x/
bitmap
compiz
fcitx
fcitx.*
ibus
ibus.*
m17n-lib

slackpkg update gpg
slackpkg update
slackpkg upgrade-all
!!! Décommenter xap/ dans /etc/slackpkg/blacklist
slackpkg install-new
slackpkg upgrade-all

cp /usr/share/X11/xorg.conf.d/90-keyboard-layout-evdev.conf /etc/X11/xorg.conf.d/
Section "InputClass"
    Identifier "keyboard-all"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "XkbLayout" "us"
    Option "XkbVariant" "atlgr-intl"
    Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

adduser
wheel audio cdrom floppy input lp netdev plugdev power scanner video

visudo
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
%wheel ALL=(ALL:ALL) ALL

---

xdg-user-dirs-update
wget https://debian.briceroubat.fr/.bashrc
wget https://debian.briceroubat.fr/.bash_profile
wget https://debian.briceroubat.fr/.Xresources
wget https://debian.briceroubat.fr/.gtkrc-2.0

wget https://github.com/sbopkg/sbopkg/releases/download/0.38.3/sbopkg-0.38.3-noarch-1_wsr.tgz
sudo installpkg sbopkg-0.38.3-noarch-1_wsr.tgz
sudo sbopkg -r
sudo sbopkg -i leafpad

pcmanfm
librewolf
slpkg

/etc/slpkg/repositories.toml
slackdce -> defaut
slpkg update
slpkg install 
slpkg install  --repository 
slpkg remove 
slpkg search  --repository '*'
slpkg config

---

Generic Kernel (grub):
# /usr/share/mkinitrd/mkinitrd_command_generator.sh
-> exécuter la ligne retournée par la commande précédente
# cp /boot/initrd.gz /boot/efi/EFI/Slackware/
# cp /boot/vmlinuz-generic-5.15.19 /boot/efi/EFI/Slackware/
/etc/default/grub:
GRUB_DEFAULT="1>6"
# grub-mkconfig -o /boot/grub/grub.cfg

Generic Kernel (elilo):
# /usr/share/mkinitrd/mkinitrd_command_generator.sh
-> exécuter la ligne retournée par la commande précédente
# cp /boot/initrd.gz /boot/efi/EFI/Slackware/
# cp /boot/vmlinuz-generic-5.15.19 /boot/efi/EFI/Slackware/
# nano /boot/efi/EFI/Slackware/elilo.conf
default=generic
image=...
    label=generic
    ...

---

AUTOLOGIN:
/etc/inittab
c1:12345:respawn:/sbin/agetty --autologin  --noclear 38400 tty1 linux

~/.bash_profile :
if [ -z "$DISPLAY" ] && [ $(tty) = /dev/tty1 ]; then
   while true
   do
        startx --
        sleep 1
   done
fi

# nvidia-xconfig

/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device"
        Identifier "NVIDIA Card"
        Driver "nvidia"
        VendorName "NVIDIA Corporation"
        BoardName "GeForce GTX 1050 Ti"
EndSection

DAEDALUS


$USERLOGIN = brice
===
ROOT
----
# nano /etc/apt/sources.list
main contrib non-free non-free-firmware

# apt update
# apt install sudo
# usermod -aG sudo $USERLOGIN
# exit

USER
----
[QEMU]
$ sudo apt install xserver-xorg-video-qxl
[/QEMU]
[NVidia]
$ apt install nvidia-driver nvidia-settings [firmware-linux-free] firmware-misc-nonfree firmware-realtek
[/NVidia]

$ sudo apt install wget \
[upower] lm-sensors \
rxvt-unicode \
htop \
xdg-user-dirs xdg-utils \
gtk2-engines-pixbuf \
fonts-ibm-plex \
libasound2 alsa-utils

$ wget https://debian.briceroubat.fr/home.tar.gz
$ wget https://debian.briceroubat.fr/softwares.tar.gz
$ wget https://debian.briceroubat.fr/wmaker-wmd-v2.tar.gz

$ tar -xzvf softwares.tar.gz
$ cd softwares
$ sudo dpkg -i leafpad_0.8.18.1-5_amd64.deb
$ sudo dpkg -i libwings3_0.95.9-3_amd64.deb wmaker_0.95.9-3_amd64.deb
$ sudo apt install -f

/etc/apt/preferences.d/wmaker: (apt policy [wmaker/libwings3])
-----------------------------
Package: wmaker
Pin: version 0.95.9-3
Pin-Priority: 1000

Package: libwings3
Pin: version 0.95.9-3
Pin-Priority: 1000
===

$ xdg-user-dirs-update
$ tar -xzvf home.tar.gz
$ gtk-update-icon-cache ~/.icons/WMDesktop
$ fc-cache -fv

$ sudo mkdir /etc/inittab.d

$ sudo apt install lightdm-autologin-greeter numlockx

/etc/lightdm/lightdm.conf.d/lightdm-autologin-greeter.conf
----------------------------------------------------------
[Seat:*]
session-setup-script=/usr/bin/numlockx on
autologin-user=$USERLOGIN
autologin-session=wmaker-common
===

REBOOT

===

$ setstyle ~/GNUstep/Library/WindowMaker/Themes/WMDesktop.themed

$ sudo apt install pcmanfm xarchiver \
galculator \
xpdf \
viewnior \
audacious mpv

==========================================================
LOGICIELS:

Accesoires
    a widget factory
    clipit
    galculator
    leafpad
    (PDF Mod)
    rxvt-unicode
    gucharmap
    fontpreview / font-manager
    xarchiver
    (compton)

Bureautique:
    libreoffice
        libreoffice-l10n-fr
        libreoffice-help-fr
        hunspell-fr
        mythes-fr
        hyphen-fr
        libreoffice-gtk3
        openclipart-libreoffice
    mynotex
Développement:
    geany
        geany-plugins
    (lazarus)
    (slade)

Graphisme:
    (blender)
    (goxel)
    imagemagick
    inkscape
    viewnior
    (wings3d)
    xsane
    xpdf
    gimp

Internet:
    clawsmail
    filezilla
    firefox-esr
    (chromium)
    (xampp)

Jeux:
    (brutalchess)
    dosbox
    gzdoom
    raze
    (wesnoth)
    scummvm

Multimédia:
    audacious
    mpv

Paramètres:

Système:
    pcmanfm
    htop
    xsensors

gucharmap
fontpreview / font-manager

==========================================================

MENU:
Démarrer... -> %A(Démarrer,Tapez une commande à démarrer:)
Fichiers    -> pcmanfm
Navigateur  -> firefox-esr (apulse firefox)
Terminal    -> x-terminal-emulator
Applications    -> xdgmenumaker -f windowmaker
Dossiers:
    Boite
    Web
    Téléchargements
    Jeux
Menu des bureaux
Thèmes      -> setstyle (Contenu de répertoire)
Informations
    Panneau d'informations
    Panneau d'informations légales
    Liste des processus (x-terminal-emulator -e htop)
    Mixeur audio (x-terminal-emulator -e alsamixer)
    Températures (/bin/xsensors)
Session
    Rafraîchir (Commande interne: Redémarer Window Maker)
    Déconnexion (Commande interne: Terminer la session X)
    Suspendre (x-terminal-emulator -e loginctl suspend)
    Redémarrer (x-terminal-emulator -e loginctl reboot)
    Arréter (x-terminal-emulator -e loginctl poweroff)

==========================================================

loginctl [poweroff/suspend/reboot]
fc-cache -fv
gtk-update-icon-cache

==========================================================
lsblk -f (ou) blkid
/etc/fstab:
#                
# / was on /dev/nvme0n1p2 during installation
UUID=5ff8ebd2-7b34-4deb-9810-94dcd0471c6c /               ext4    noatime,errors=remount-ro 0       1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=22D1-AFBF  /boot/efi       vfat    umask=0077      0       1
# /home was on /dev/sda2 during installation
UUID=ec508b7d-2273-4d13-b636-42fa6bf95bc1 /home           ext4    noatime         0       2
# swap was on /dev/sda1 during installation
UUID=d568cd92-3b7f-4252-bb69-a771a3f62a43 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
# /dev/sdb1
UUID=5ec68f59-51ad-4192-a1cb-ce4a9216791d /media/SSD-120  ext4    noatime         0       2
# /tmp
tmpfs   /tmp    tmpfs   defaults,size=20%,mode=1777 0   0

END DAEDALUS

Retrouver les couleurs d'antant

Les couleurs par défaut de Window Maker ne sont pas fidèles à celles de NeXTSTEP. La couleur #aaaaaa est remplacée par #aeaaae et #555555 par #515551.
La couleur de fond du bureau quand à elle doit être #555577.
Une autre couleur, 7F7F7F peut être utilisée en arrière plan les scrollbars.

Pour remédier à ça, il faut modifier et compiler le code source de Window Maker.

Étapes à suivre

  1. Créer un espace de dev en chroot et s'y connecter
    mkdir build
    sudo debootstrap stable ./build http://deb.debian.org/debian
    sudo mount -t proc /proc ./build/proc
    sudo mount --bind /dev ./build/dev
    sudo chroot ./build /bin/bash
  2. Installer les paquets nécessaires à la compilation
    apt-get install build-essential git autoconf automake libtool
  3. Installer les dépendances de Window Maker
    apt install libxpm-dev libpng-dev libtiff-dev libjpeg-dev libgif-dev gettext libpango1.0-dev libxinerama-dev
  4. Récupérer le code source, le modifier et le compiler
    cd home
    git clone -b next git://repo.or.cz/wmaker-crm.git
    cd wmaker-crm
    find ./ -type f -exec sed -i "s/0xae/0xaa/gi" {} \;
    find ./ -type f -exec sed -i "s/0x51/0x55/gi" {} \;
    .autogen.sh
    ./configure LINGUAS="fr"
    make
    make DESTDIR=/home/wmaker_0.95.9-wmd_amd64 install-strip
  5. Créer un fichier .deb pour faciliter l'installation du nouveau code sur d'autres systèmes
    cd ..
    mkdir wmaker_0.95.9-wmd_amd64/DEBIAN
    nano wmaker_0.95.9-wmd_amd64/DEBIAN/control
    Package: wmaker
    Version: 0.95.9-wmd
    Architecture: amd64
    Maintainer: Brice Roubat <scard@gmx.fr>
    Depends: libc6 (>= 2.34), libexif12 (>= 0.6.21-1~), libfontconfig1 (>= 2.12.6), libx11-6, libxext6, libxinerama1 (>= 2:1.1.4), libxpm4
    Section: x11
    Priority: optional
    Description: Window Maker for WMDesktop
    Window Maker customized for WMDesktop
    nano wmaker_0.95.9-wmd_amd64/DEBIAN/postinst
    #!/bin/sh
    sudo ldconfig
    nano wmaker_0.95.9-wmd_amd64/DEBIAN/postrm
    #!/bin/sh
    sudo ldconfig
    chmod 755 wmaker_0.95.9-wmd_amd64/DEBIAN/postinst
    chmod 755 wmaker_0.95.9-wmd_amd64/DEBIAN/postrm
    dpkg-deb --build --root-owner-group wmaker_0.95.9-wmd_amd64
  6. Se déconnecter de l'espace chroot de dev
    exit
    sudo umount ./build/proc
    sudo umount ./build/dev

Catégories: [linux]
Étiquettes: [desktop] [window maker] [language C]