Intégration bureau MATE/Caja avec actions contextuelles
- Fichiers .desktop pour actions: Imprimer, Convertir, Prévisualiser - Script install-desktop.sh pour installation automatique - Support sélection multiple de fichiers - Compatible Caja Actions (MATE Desktop)
This commit is contained in:
61
desktop/fix-caja-actions.sh
Executable file
61
desktop/fix-caja-actions.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script pour forcer le rechargement des actions Caja
|
||||
|
||||
echo "=== Diagnostic et correction des actions Caja ==="
|
||||
echo ""
|
||||
|
||||
# Vérifier que les fichiers existent
|
||||
echo "1. Vérification des fichiers .desktop..."
|
||||
if ls ~/.local/share/caja/actions/md-to-print-*.desktop > /dev/null 2>&1; then
|
||||
echo " ✓ Fichiers .desktop trouvés"
|
||||
ls -1 ~/.local/share/caja/actions/md-to-print-*.desktop
|
||||
else
|
||||
echo " ✗ Aucun fichier .desktop trouvé"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "2. Vérification du format..."
|
||||
for file in ~/.local/share/caja/actions/md-to-print-*.desktop; do
|
||||
if grep -q "X-Action-Profile" "$file" && grep -q "Enabled=true" "$file"; then
|
||||
echo " ✓ $(basename $file) - Format correct"
|
||||
else
|
||||
echo " ✗ $(basename $file) - Format incorrect"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "3. Vérification des scripts..."
|
||||
if command -v md_to_print_gui.sh > /dev/null; then
|
||||
echo " ✓ md_to_print_gui.sh trouvé: $(which md_to_print_gui.sh)"
|
||||
else
|
||||
echo " ✗ md_to_print_gui.sh non trouvé dans PATH"
|
||||
echo " Installation nécessaire: ./desktop/install-desktop.sh"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "4. Redémarrage de Caja..."
|
||||
killall caja 2>/dev/null
|
||||
sleep 2
|
||||
caja > /dev/null 2>&1 &
|
||||
sleep 2
|
||||
echo " ✓ Caja redémarré"
|
||||
|
||||
echo ""
|
||||
echo "=== Instructions ==="
|
||||
echo ""
|
||||
echo "1. Ouvrez caja-actions-config-tool:"
|
||||
echo " caja-actions-config-tool"
|
||||
echo ""
|
||||
echo "2. Dans l'outil, vérifiez que les actions MD_to_Print sont présentes"
|
||||
echo " Si elles ne sont pas là, utilisez Fichier > Importer > Desktop files"
|
||||
echo " et sélectionnez: ~/.local/share/caja/actions/md-to-print-*.desktop"
|
||||
echo ""
|
||||
echo "3. Assurez-vous que les actions sont activées (cochez la case 'Enabled')"
|
||||
echo ""
|
||||
echo "4. Dans Édition > Préférences > Préférences d'exécution:"
|
||||
echo " Désactivez 'Créer un menu racine Caja-Actions'"
|
||||
echo ""
|
||||
echo "5. Testez avec un clic droit sur un fichier .md"
|
||||
|
||||
229
desktop/install-desktop.sh
Executable file
229
desktop/install-desktop.sh
Executable file
@@ -0,0 +1,229 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script d'installation pour l'intégration bureau MD_to_Print
|
||||
# Usage: ./install-desktop.sh [--uninstall]
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
CAJA_ACTIONS_DIR="$HOME/.local/share/caja/actions"
|
||||
LOCAL_BIN_DIR="$HOME/.local/bin"
|
||||
SYSTEM_BIN_DIR="/usr/local/bin"
|
||||
|
||||
# Couleurs
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Fonction d'aide
|
||||
show_help() {
|
||||
cat << EOF
|
||||
Installation de l'intégration bureau MD_to_Print
|
||||
|
||||
Usage: $0 [OPTIONS]
|
||||
|
||||
OPTIONS:
|
||||
--uninstall Désinstaller l'intégration bureau
|
||||
--system Installer dans /usr/local/bin (nécessite sudo)
|
||||
--help Afficher cette aide
|
||||
|
||||
Par défaut, installe dans ~/.local/bin (pas besoin de sudo)
|
||||
EOF
|
||||
}
|
||||
|
||||
# Fonction de notification
|
||||
notify() {
|
||||
local level="$1"
|
||||
shift
|
||||
local message="$*"
|
||||
|
||||
if command -v notify-send &> /dev/null; then
|
||||
case "$level" in
|
||||
info) notify-send -i "dialog-information" "MD_to_Print" "$message" 2>/dev/null || true ;;
|
||||
success) notify-send -i "dialog-information" "MD_to_Print" "$message" 2>/dev/null || true ;;
|
||||
error) notify-send -i "dialog-error" "MD_to_Print" "$message" 2>/dev/null || true ;;
|
||||
esac
|
||||
fi
|
||||
echo -e "${GREEN}$message${NC}"
|
||||
}
|
||||
|
||||
# Vérification des dépendances
|
||||
check_dependencies() {
|
||||
local missing=()
|
||||
local critical_missing=()
|
||||
|
||||
# Dépendance critique : caja-actions
|
||||
if ! command -v caja-actions-config-tool &> /dev/null && ! dpkg -l | grep -q "caja-actions"; then
|
||||
critical_missing+=("caja-actions")
|
||||
fi
|
||||
|
||||
if ! command -v notify-send &> /dev/null; then
|
||||
missing+=("libnotify-bin")
|
||||
fi
|
||||
|
||||
if ! command -v zenity &> /dev/null && ! command -v yad &> /dev/null; then
|
||||
missing+=("zenity")
|
||||
fi
|
||||
|
||||
if [ ${#critical_missing[@]} -gt 0 ]; then
|
||||
echo -e "${RED}Dépendance CRITIQUE manquante: ${critical_missing[*]}${NC}"
|
||||
echo -e "${YELLOW}Sans caja-actions, les actions ne pourront pas apparaître dans le menu contextuel.${NC}"
|
||||
echo -e "${BLUE}Installation: sudo apt-get install caja-actions${NC}"
|
||||
echo ""
|
||||
read -p "Installer caja-actions maintenant? (o/N): " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Oo]$ ]]; then
|
||||
if sudo apt-get install -y caja-actions; then
|
||||
echo -e "${GREEN}caja-actions installé avec succès${NC}"
|
||||
else
|
||||
echo -e "${RED}Échec de l'installation de caja-actions${NC}"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
echo -e "${YELLOW}Installation de caja-actions annulée. Les actions ne fonctionneront pas.${NC}"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ${#missing[@]} -gt 0 ]; then
|
||||
echo -e "${YELLOW}Dépendances optionnelles manquantes: ${missing[*]}${NC}"
|
||||
echo -e "${BLUE}Installation: sudo apt-get install ${missing[*]}${NC}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Installation
|
||||
install() {
|
||||
local INSTALL_BIN_DIR="$LOCAL_BIN_DIR"
|
||||
local USE_SUDO=false
|
||||
|
||||
# Vérifier option --system
|
||||
if [ "${1:-}" = "--system" ]; then
|
||||
INSTALL_BIN_DIR="$SYSTEM_BIN_DIR"
|
||||
USE_SUDO=true
|
||||
|
||||
if [ "$EUID" -ne 0 ] && ! sudo -n true 2>/dev/null; then
|
||||
echo -e "${RED}Erreur: --system nécessite les privilèges sudo${NC}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "${BLUE}=== Installation de l'intégration bureau MD_to_Print ===${NC}"
|
||||
|
||||
# Vérifier les dépendances
|
||||
if ! check_dependencies; then
|
||||
if ! command -v caja-actions-config-tool &> /dev/null && ! dpkg -l | grep -q "caja-actions"; then
|
||||
echo -e "${RED}Installation annulée: caja-actions est requis${NC}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${YELLOW}Certaines dépendances optionnelles sont manquantes, mais l'installation continue...${NC}"
|
||||
fi
|
||||
|
||||
# Créer les répertoires nécessaires
|
||||
mkdir -p "$CAJA_ACTIONS_DIR"
|
||||
mkdir -p "$INSTALL_BIN_DIR"
|
||||
|
||||
# Copier les fichiers .desktop
|
||||
echo -e "${BLUE}Installation des actions Caja...${NC}"
|
||||
cp "$SCRIPT_DIR"/*.desktop "$CAJA_ACTIONS_DIR/" 2>/dev/null || {
|
||||
echo -e "${RED}Erreur: Impossible de copier les fichiers .desktop${NC}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Installer les scripts
|
||||
echo -e "${BLUE}Installation des scripts...${NC}"
|
||||
|
||||
if [ "$USE_SUDO" = true ]; then
|
||||
sudo cp "$PROJECT_DIR/scripts/md_to_print_gui.sh" "$INSTALL_BIN_DIR/"
|
||||
sudo cp "$PROJECT_DIR/scripts/md_to_print_notify.sh" "$INSTALL_BIN_DIR/"
|
||||
sudo chmod +x "$INSTALL_BIN_DIR/md_to_print_gui.sh"
|
||||
sudo chmod +x "$INSTALL_BIN_DIR/md_to_print_notify.sh"
|
||||
else
|
||||
cp "$PROJECT_DIR/scripts/md_to_print_gui.sh" "$INSTALL_BIN_DIR/"
|
||||
cp "$PROJECT_DIR/scripts/md_to_print_notify.sh" "$INSTALL_BIN_DIR/"
|
||||
chmod +x "$INSTALL_BIN_DIR/md_to_print_gui.sh"
|
||||
chmod +x "$INSTALL_BIN_DIR/md_to_print_notify.sh"
|
||||
fi
|
||||
|
||||
# Vérifier que les scripts sont dans le PATH
|
||||
if [[ ":$PATH:" != *":$INSTALL_BIN_DIR:"* ]] && [ "$INSTALL_BIN_DIR" = "$LOCAL_BIN_DIR" ]; then
|
||||
echo -e "${YELLOW}Attention: $INSTALL_BIN_DIR n'est pas dans votre PATH${NC}"
|
||||
echo -e "${BLUE}Ajoutez cette ligne à votre ~/.bashrc ou ~/.profile:${NC}"
|
||||
echo -e "${GREEN}export PATH=\"\$HOME/.local/bin:\$PATH\"${NC}"
|
||||
fi
|
||||
|
||||
# Vérifier que md_to_print.sh est accessible
|
||||
if ! command -v md_to_print.sh &> /dev/null && [ ! -f "$PROJECT_DIR/md_to_print.sh" ]; then
|
||||
echo -e "${YELLOW}Attention: md_to_print.sh non trouvé${NC}"
|
||||
echo -e "${BLUE}Assurez-vous que md_to_print.sh est installé ou que Docker est configuré${NC}"
|
||||
fi
|
||||
|
||||
notify success "Installation terminée avec succès!"
|
||||
echo -e "${GREEN}=== Installation terminée ===${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}IMPORTANT: Configuration Caja Actions${NC}"
|
||||
echo -e "${YELLOW}1. Ouvrez l'outil de configuration:${NC}"
|
||||
echo -e "${GREEN} caja-actions-config-tool${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}2. Dans les préférences (Édition > Préférences), désactivez:${NC}"
|
||||
echo -e "${GREEN} 'Créer un menu racine Caja-Actions'${NC}"
|
||||
echo -e "${YELLOW} (pour que les actions apparaissent directement dans le menu)${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}3. Redémarrez Caja:${NC}"
|
||||
echo -e "${GREEN} caja -q${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}Les actions suivantes sont maintenant disponibles:${NC}"
|
||||
echo -e " - Imprimer avec MD_to_Print"
|
||||
echo -e " - Convertir en PDF (MD_to_Print)"
|
||||
echo -e " - Prévisualiser avant impression"
|
||||
}
|
||||
|
||||
# Désinstallation
|
||||
uninstall() {
|
||||
echo -e "${BLUE}=== Désinstallation de l'intégration bureau MD_to_Print ===${NC}"
|
||||
|
||||
# Supprimer les fichiers .desktop
|
||||
if [ -d "$CAJA_ACTIONS_DIR" ]; then
|
||||
echo -e "${BLUE}Suppression des actions Caja...${NC}"
|
||||
rm -f "$CAJA_ACTIONS_DIR"/md-to-print-*.desktop
|
||||
fi
|
||||
|
||||
# Supprimer les scripts
|
||||
echo -e "${BLUE}Suppression des scripts...${NC}"
|
||||
|
||||
if [ -f "$LOCAL_BIN_DIR/md_to_print_gui.sh" ]; then
|
||||
rm -f "$LOCAL_BIN_DIR/md_to_print_gui.sh"
|
||||
fi
|
||||
|
||||
if [ -f "$LOCAL_BIN_DIR/md_to_print_notify.sh" ]; then
|
||||
rm -f "$LOCAL_BIN_DIR/md_to_print_notify.sh"
|
||||
fi
|
||||
|
||||
if [ -f "$SYSTEM_BIN_DIR/md_to_print_gui.sh" ]; then
|
||||
if [ "$EUID" -eq 0 ] || sudo -n true 2>/dev/null; then
|
||||
sudo rm -f "$SYSTEM_BIN_DIR/md_to_print_gui.sh"
|
||||
sudo rm -f "$SYSTEM_BIN_DIR/md_to_print_notify.sh"
|
||||
else
|
||||
echo -e "${YELLOW}Les scripts système nécessitent sudo pour être supprimés${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
notify success "Désinstallation terminée"
|
||||
echo -e "${GREEN}=== Désinstallation terminée ===${NC}"
|
||||
echo -e "${BLUE}Redémarrez Caja: caja -q${NC}"
|
||||
}
|
||||
|
||||
# Parsing des arguments
|
||||
if [ "${1:-}" = "--uninstall" ]; then
|
||||
uninstall
|
||||
elif [ "${1:-}" = "--help" ] || [ "${1:-}" = "-h" ]; then
|
||||
show_help
|
||||
else
|
||||
install "$@"
|
||||
fi
|
||||
|
||||
17
desktop/md-to-print-convert.desktop
Normal file
17
desktop/md-to-print-convert.desktop
Normal file
@@ -0,0 +1,17 @@
|
||||
[Desktop Entry]
|
||||
Type=Action
|
||||
Icon=application-pdf
|
||||
ToolbarLabel=Convertir en PDF (MD_to_Print)
|
||||
ToolbarLabel[fr]=Convertir en PDF (MD_to_Print)
|
||||
Name=Convertir en PDF (MD_to_Print)
|
||||
Name[fr]=Convertir en PDF (MD_to_Print)
|
||||
Profiles=profile-zero;
|
||||
TargetContext=true
|
||||
Enabled=true
|
||||
|
||||
[X-Action-Profile profile-zero]
|
||||
Exec=md_to_print_gui.sh --convert %F
|
||||
MimeTypes=text/markdown;text/x-markdown;
|
||||
MatchPattern=*.md;*.markdown;*.mkd;
|
||||
Name=Default profile
|
||||
Name[fr]=Profil par défaut
|
||||
17
desktop/md-to-print-preview.desktop
Normal file
17
desktop/md-to-print-preview.desktop
Normal file
@@ -0,0 +1,17 @@
|
||||
[Desktop Entry]
|
||||
Type=Action
|
||||
Icon=document-preview
|
||||
ToolbarLabel=Prévisualiser avant impression
|
||||
ToolbarLabel[fr]=Prévisualiser avant impression
|
||||
Name=Prévisualiser avant impression
|
||||
Name[fr]=Prévisualiser avant impression
|
||||
Profiles=profile-zero;
|
||||
TargetContext=true
|
||||
Enabled=true
|
||||
|
||||
[X-Action-Profile profile-zero]
|
||||
Exec=md_to_print_gui.sh --preview %F
|
||||
MimeTypes=text/markdown;text/x-markdown;
|
||||
MatchPattern=*.md;*.markdown;*.mkd;
|
||||
Name=Default profile
|
||||
Name[fr]=Profil par défaut
|
||||
17
desktop/md-to-print-print.desktop
Normal file
17
desktop/md-to-print-print.desktop
Normal file
@@ -0,0 +1,17 @@
|
||||
[Desktop Entry]
|
||||
Type=Action
|
||||
Icon=printer
|
||||
ToolbarLabel=Imprimer avec MD_to_Print
|
||||
ToolbarLabel[fr]=Imprimer avec MD_to_Print
|
||||
Name=Imprimer avec MD_to_Print
|
||||
Name[fr]=Imprimer avec MD_to_Print
|
||||
Profiles=profile-zero;
|
||||
TargetContext=true
|
||||
Enabled=true
|
||||
|
||||
[X-Action-Profile profile-zero]
|
||||
Exec=md_to_print_gui.sh --print %F
|
||||
MimeTypes=text/markdown;text/x-markdown;
|
||||
MatchPattern=*.md;*.markdown;*.mkd;
|
||||
Name=Default profile
|
||||
Name[fr]=Profil par défaut
|
||||
Reference in New Issue
Block a user