wellington_r
(usa Debian)
Enviado em 11/06/2015 - 11:24h
fcmorini escreveu:
Eu consigo criar o link da seguinte forma:
quando faço a montagem da pasta compartilhada ela é gerenciada via gvfs, na maioria dos casos é criada uma pasta em /home/"usuario"/.gvfs/"nome da pasta compartilhada" ou em /run/user/1000/gvfs/"nome da pasta compartilhada", e também aparece o icone na área de trabalho, a partir desses caminhos é possível sim criar os atalhos para a área de trabalho, o "diabo" é que quando esse compartilhamento é montado e acessado, o gerenciador de arquivos nos leva ao endereço "smb://x.x.x.x/pasta compartilhada" e não aos links citados anteriormente, matando assim a possibilidade do usuário "comum" poder criar os atalhos que deseja de forma fácil!
glauco.skt escreveu:
O que daria para fazer era um manual com passo passo.
Mas dessa forma que tu queres eu desconheço.
Caso consiga resolver, depois posta o resultado ai!
Abs,
A opção que o Glauco disse serve para gerar um arquivo .desktop, só que ao invés de você criá-lo manualmente, ele é criado pela aplicação gráfica.
Se você acha que o usuário terá problemas em criar atalhos, mesmo com essa facilidade da GUI (e de fato, o usuário VAI ter problema), sugiro que crie uma ação personalizada através de um script que utilize um modelo de arquivo .desktop padrão, no qual seja variável apenas o caminho do arquivo/pasta selecionado pelo usuário.
Acho que a maioria dos gerenciadores de arquivo te dão a opção para criar uma ação personalizada.
Como exemplo, no meu caso eu precisava que ao usuário clicar com o botão direito em cima de um link simbólico existisse a opção "abrir caminho original", pois se você dar um duplo clique em cima do link simbólico de uma pasta, ele não abre o caminho original, ao invés disso abre a pasta exatamente onde ela está, mostrando o conteúdo do destino da pasta, mas no meu caso, eu queria uma opção que quando eu clicasse no link simbólico na minha área de trabalho, ao invés de o Nautilus me mostrar "/home/fulano/Área de Trabalho/pasta" ele me mostrasse "/mnt/mapeamento/pasta".
Pesquisei na internet pra ver se existia um plugin pra isso e descobri que só conseguiria fazer isso através de uma ação personalizada, por um script criado por mim mesmo. Por sorte, na página que encontrei o cara tinha postado o script necessário para fazer a ação que eu queria, me eliminando o trabalho de criá-lo.
O que eu fiz foi criar um arquivo chamado "Abrir caminho original" (pois é o nome do arquivo que aparece como descrição da ação) dentro da pasta /home/usuario/.gnome2/nautilus-scripts com o conteúdo:
#!/bin/bash
#Title=open-the-link-target-in-nautilus
#Title[fr]=ouvrir-le-repertoire-cible-dans-nautilus
#==============================================================================
# open-the-link-target-in-nautilus
#
# revision: snowguy
# version : v2012091401
# author : SLK
# revision based on version : v2011051501
# license : Distributed under the terms of GNU GPL version 2 or later
#
#==============================================================================
#
# description :
# nautilus-script :
# opens the target of a symbolic link of the selected object; if
# the target of the symbolic link is a file, opens the parent folder
#
# informations :
# - a script for use (only) with Nautilus.
# - to use, copy to your ${HOME}/.gnome2/nautilus-scripts/ directory.
#
# WARNINGS :
# - this script must be executable.
# - package "zenity" must be installed
#
#==============================================================================
#==============================================================================
# CONSTANTS
# 0 or 1 - 1: doesn't open but displays a message
DRY_RUN=0
#------> some labels used for zenity [en]
z_title='open the link target in nautilus'
z_err_bin_not_found='not found\nEXIT'
z_no_object='no object selected\nEXIT'
z_info_target='path of the target'
z_choice_open_nautilus='open target in nautilus'
z_choice_open_file='open file with default application'
z_choice_display_filepath='open a messagebox to copy filepath'
#------> some labels used for zenity [fr]
#z_title='ouvrir le repertoire cible dans nautilus'
#z_err_bin_not_found='introuvable\nEXIT'
#z_no_object='aucun objet selectionne\nEXIT'
#z_info_target='chemin de la cible'
#z_choice_open_nautilus='ouvrir la cible dans nautilus'
#z_choice_open_file='ouvrir le fichier avec le programme par defaut'
#z_choice_display_filepath='ouvrir une boite de dialogue affichant le chemin du fichier'
#==============================================================================
# INIT VARIABLES
# may depends of your system
DIRNAME='/usr/bin/dirname'
GREP='/bin/grep'
NAUTILUS='/usr/bin/nautilus'
PERL='/usr/bin/perl'
READLINK='/bin/readlink'
XDG_OPEN='/usr/bin/xdg-open'
ZENITY='/usr/bin/zenity'
#==============================================================================
# FUNCTIONS
function check_bin
{
err=0
for bin in $* ; do
if [ ! -x "$bin" ] ; then
$ZENITY --error --title "$z_title" \
--text="$bin $z_err_bin_not_found"
err=1
fi
done
[ $err -eq 1 ] && exit 1
}
#==============================================================================
# MAIN
# lets check for required binaries :
[ -x "$ZENITY" ] || {
echo "[ERROR] $ZENITY not found : EXIT"
exit 1
}
check_bin "$DIRNAME" "$GREP" "$NAUTILUS" "$PERL" "$READLINK"
# lets check if object is selected :
[ "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" == "" ] && {
$ZENITY --error --title "$z_title" \
--text="$z_no_object"
exit 1
}
# retrieve the first object selected :
first_object=`echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" \
| $PERL -ne 'print;exit'`
# lets check if local path :
[ `echo "$first_object" | $GREP -c "^/"` -eq 0 ] && {
$ZENITY --error --title "$z_title" \
--text="[ERROR] $first_object has not a valid path\nEXIT"
exit 1
}
# retrieve the target path :
if [ -L "$first_object" ] ; then
# symbolic link
target=`$READLINK -f "$first_object"`
else
# not a symbolic link :
target="$first_object"
fi
if [ -d "$target" ] ; then
# target is a directory
target_to_open_in_nautilus="$target"
else
# target is a file, let's take the parent directory
target_to_open_in_nautilus=`$DIRNAME "$target"`
fi
### GO : let's open
$NAUTILUS --no-desktop "$target_to_open_in_nautilus"
exit 0
### EOF
Agora sempre que o usuário clica com o direito em cima de um link simbólico, existe a opção "Abrir caminho original" que faz exatamente o que eu precisava.