- Rust 89.7%
- Python 8.9%
- Shell 0.8%
- CSS 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| extras | ||
| packaging | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
screen2cut
Découpe un écran physique en plusieurs écrans virtuels que Linux (X11) voit comme de vrais moniteurs.
Interface graphique simple en Rust (egui), basée sur RandR 1.5 (xrandr --setmonitor).
Fonctionnalités
- Découpage visuel et récursif : choisis un écran détecté, clique dans une zone pour la couper (verticalement ou horizontalement). Seule la zone cliquée est coupée : tu peux couper l'écran en 2, puis recouper seulement la moitié droite en 2, etc. Glisse les lignes pour ajuster, clic droit pour fusionner, ou applique une grille N×M.
- Noms dérivés automatiques (
DisplayPort-8.1,DisplayPort-8.2…), modifiables, avec écran principal (★). - Identifier les écrans : affiche le nom sur chaque écran pendant 3 s.
- Disposition : étendre (droite/gauche/dessus/dessous), miroir, éteindre, changer la résolution, écran principal.
- Persistance : config JSON dans
~/.config/screen2cut/config.json+ autostart XDG pour tout recréer à l'ouverture de session. - Écart entre écrans (curseur) : zone morte où aucune fenêtre ne va, centrée sur chaque ligne de coupe.
- Bordure de séparation : couleur, épaisseur et style (trait plein, tirets, pointillés, double trait) et couleur unie, arc-en-ciel fixe (
rainbow1) ou arc-en-ciel animé avec défilement et effet de respiration (rainbow2), dessinée par des fenêtres transparentes qui laissent passer la souris (screen2cut --borders, lancé par l'icône de notification ; nécessite le compositeur de XFCE). - Un panneau XFCE par écran virtuel : copie le panneau de l'écran d'origine (menu démarrer compris) sur chaque morceau, et le restaure à la fusion. Sauvegarde automatique de la config du panneau (
xfce4-panel.xml.s2c-backup). - Icône de notification (
screen2cut --tray) : menu avec interrupteur « désactiver / activer toutes les découpes », liste des profils (par lieu, appliqués automatiquement selon les écrans branchés) et ouverture de l'interface. Elle recrée aussi les écrans virtuels à l'ouverture de session et s'ils disparaissent. - Intégration XFCE : voir xfce4-settings-s2c, une version patchée de « Affichage » qui montre et gère ces écrans.
- Ligne de commande :
screen2cut --apply [--dry-run],screen2cut --reset.
Installation
sudo apt install xrandr build-essential # Debian/Ubuntu
./install.sh # compile, installe dans /usr/local, lanceur + icône, démarrage auto de l'icône
Ou à la main : cargo build --release && ./target/release/screen2cut.
Note technique (GDK)
GDK (GTK3) ignore un écran virtuel sans sortie placé en fin de liste (il lit outputs[0] sans vérifier). screen2cut crée donc toujours en dernier l'écran qui porte la sortie physique.
Extras (bureau XFCE)
extras/s2c-panic-key: touche panique. Un double appui rapide sur la toucheœ(en haut à gauche d'un clavier AZERTY) ramène sur le bureau 1. L'appui simple reste utilisable (rejoué après 0,35 s). Nécessitepython3-xlibetwmctrl. À mettre dans un autostart.extras/pager.css: sélecteur d'espaces de travail du panneau en numéros, avec bordure et espace actif surligné.
Dépannage
-
Icônes de bureau sur plusieurs écrans (XFCE) :
xfdesktopmémorise la position des icônes par « identité » d'écran (EDID), et les écrans virtuels empruntent celle d'un autre écran (voir la note GDK). Arrêterxfdesktop(xfdesktop --quit), retirer de~/.config/xfce4/desktop/icons.screen0.yamlles configurations dont la géométrie correspond à un écran virtuel, puis le relancer ; avec « icônes sur l'écran principal » elles restent sur l'écran principal. -
Clignotement très régulier (~10 ms) de la barre de titre de la fenêtre active quand la souris est au bord d'un écran, avec le compositeur de XFCE actif : sur AMD (pilote
amdgpu), mettreTearFreeàonsur l'écran concerné :xrandr --output DisplayPort-8 --set TearFree on(à mettre dans un autostart pour le rendre permanent). Ce n'est pas lié à screen2cut. -
screen2cut interroge xrandr avec
--current(sans re-détection matérielle des connecteurs) ; seul le bouton « Détecter » force une re-détection.
Limites
- X11 uniquement (XFCE, i3, KDE/GNOME en session X11…). Wayland ne propose pas d'équivalent.
- Les moniteurs virtuels disparaissent au redémarrage de session : l'icône de notification (autostart) les recrée, avec
xfwm4prévenu pour qu'il les prenne en compte. xfce4-display-settingsne liste pas les moniteurs virtuels ; panneaux, fenêtres maximisées et plein écran les respectent.
Licence
MIT