El administrador de archivos nautilus es extensible a través del uso de scripts.
Con scripts puedes hacer muchas cosas, como por ejemplo:
Todo esto con un simple clic en el botón derecho del ratón
Todos tus scripts se almacenan en el directorio Nautilus-scripts - así que para añadir un nuevo script simplemente colócalo ahí. Puedes encontrar la carpeta Nautilus-scripts aquí :
~/.gnome2/nautilus-scripts
chmod +x nombre_de_script
O haz click con el botón derecho sobre el script y selecciona Propiedades, luego Permisos y dale permisos de ejecución.
¡Ya tienes tu script!
{{Advertencia| Algunos scripts puede que necesiten ejecutarse como root; ésto generalmente es una mala idea, a menos que sepas qué estás haciendo. Se pueden configurar los permisos gracias al comando `chmod`.
CUIDADO- you might want to set the preferences in Nautilus/Gedit/Whatever_else_you_are_opening_as_root so as to let you know instantly whether or not you are currently in the root-application. i.e. a yellow background in root-gedit and nautilus, instead of the normal white....
Puedes poner en nautilus una gran cantidad de "scripts", que pueden ser:
Es decir, básicamente cualquier cosa que se pueda ejecutar
Cuando un script es llamado, nautilus configura ciertas varialbes que pueden ser usadas en tus scripts. Éstas son:
* `NAUTILUS_SCRIPT_SELECTED_FILE_PATHS` newline-delimited paths for selected files (only if local) * `NAUTILUS_SCRIPT_SELECTED_URIS` newline-delimited URIs for selected files * `NAUTILUS_SCRIPT_CURRENT_URI` current location * `NAUTILUS_SCRIPT_WINDOW_GEOMETRY` position and size of current window
Notes: Estos scripts pueden están desactualizados, utilizalos bajo tu propia responsabilidad
Este script es realmente útil. ¿Cuanto tiempo se necesita para encontrar el fichero y enviarlo con Evolution o Thunderbird?. Es mucho más fácil usar nautilus para encontrar tu fichero y enviarlo desde ahí.
#!/usr/bin/perl -w # By John Russell
# This script sends the selected file(s) with your email client.
use strict;
my $MAILTO_URL="mailto:?"; my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}); my $count = 0; foreach my $file (@files) { if ( ! -f $file && ! -l $file ) { my @dialog = ("gdialog","--title","Error","--msgbox", "\nError: Can not send $file. \n\n Only regular files can be mailed. ","200", "300"); system (@dialog); } else { $MAILTO_URL = $MAILTO_URL . "attach=" . $file . "&"; shift; $count += 1; } }
if ($count > 0)
{
my @command = ("gnome-open", $MAILTO_URL);
system(@command);
}
#!/usr/bin/perl -w # By John Russell # and hacked to work with thunderbird by Darrell
# This script sends the selected file(s) with mozilla-thunderbird.
use strict;
my $attach_string="\"attachment='";
my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS});
my $count = 0;
foreach my $file (@files)
{
if ( ! -f $file && ! -l $file )
{
my @dialog = ("gdialog","--title","Error","--msgbox", "\nError: Can not send $file. \n\n Only regular files can be mailed. ","200", "300");
system (@dialog);
}
else
{
$attach_string = $attach_string . "file://" . $file . ",";
shift;
$count += 1;
}
}
if ($count > 0)
{
$attach_string = $attach_string . "'\"";
# replace spaces with '%20' as demanded by mozilla/thunderbird
$attach_string =~ s/\s/%20/g;
# invoke shell script to call thunderbird differently depending on whether it's running already or not
my $command = ("~/scripts/thunderbird-email-attachments " . $attach_string);
system($command);
}
You will see there is also a shell script which is required, (~/scripts/thunderbird-email-attachments in my example above, don't put it in the nautilus-scripts directory, otherwise it will show up in the context menu):
grep -q mozilla-thunder`; then
exec mozilla-thunderbird -a Mozilla-Thunderbird -remote "xfeDoCommand(ComposeMessage,$1)"
# else start a new instance with the compose window only
else exec mozilla-thunderbird -compose $1 fi
[#Top Back to top]
Mount an ISO image, from Nautilus. Note from carney1979 - this script will be updated to work with filenames containing spaces soon.
{{{
#!/bin/bash
#
#By modprobing loop it makes sure that the module is loaded and ready for
#use. If it is already loaded then nothing will happen.
modprobe loop
for I in `echo $*`
do
foo=`gksudo -u root -k -m "enter your password for root terminal access" /bin/echo "got r00t?"`
sudo mount -o loop -t iso9660 $I /media/iso
done
done
exit0
}}}
[#Top Back to top]
Unmount an iso image, from nautilus. Note from carney1979 - this script will be updated to work with filenames containing spaces soon.
{{{
#!/bin/bash
#
for I in `echo $*`
do
foo=`gksudo -u root -k -m "enter your password for root terminal access" /bin/echo "got r00t?"`
sudo umount $I
done
done
exit0
}}}
[#Top Back to top]
Change file-permission to read-only.
{{{
#!/bin/bash
chmod ugo-wx $*
}}}
[#Top Back to top]
Note from carney1979 - this script will be updated to work with filenames containing spaces soon.
{{{
#!/bin/bash
#
for I in `echo $*`
do
foo=`gksudo -u root -k -m "enter your password for root terminal access" /bin/echo "got r00t?"`
sudo gedit $I
done
done
exit0
}}}
Note from blazoner - A much simpler alternative that works with filenames containing spaces is:
{{{
#!/bin/sh gksudo "gedit $NAUTILUS_SCRIPT_SELECTED_URIS"
}}}
[#Top Back to top]
{{{
#!/bin/bash # root-nautilus-here # opens a root-enabled instance of a nautilus window in selected location # requires sudo privileges and gksudo, which may involve security risks. #Install in your ~/Nautilus/scripts directory. # # Placed in the public domain by Shane T. Mueller 2001 # Fixes provided by Doug Nordwall # # 2004.04.18 -- keith@penguingurus.com - Added gksudo usage to provide popup # password window if sudo has expired. Line only echos got # root to std output. But gksudo updates your sudo access # privs, so running nautilus with sudo will succeed # without asking for a password. foo=`gksudo -u root -k -m "enter your password for nautilus root access" /bin/echo "got r00t?"` sudo nautilus --no-desktop $NAUTILUS_SCRIPT_CURRENT_URI
}}}
Note from blazoner - A much simpler alternative:
{{{
#!/bin/sh ### root-nautilus-here gksudo "nautilus --no-desktop $NAUTILUS_SCRIPT_CURRENT_URI"
}}}
[#Top Back to top]
Note from carney1979 - this script will be updated to work with filenames containing spaces soon.
{{{
#!/bin/bash
#
for I in `echo $*`
do
/usr/bin/gksudo $I
done
done
exit0
}}}
Note from blazoner - A much simpler alternative that works with filenames containing spaces and also opens folders (in nautilus) as root is:
{{{
#!/bin/sh gksudo "gnome-open $NAUTILUS_SCRIPT_SELECTED_URIS"
}}}
[#Top Back to top]
{{{
#!/bin/sh # From Johnathan Bailes # This script opens a gnome-search-tool in the directory you select. # # Distributed under the terms of GNU GPL version 2 or later # # Install in your ~/Nautilus/scripts directory. # You need to be running Nautilus 1.0.3+ to use scripts. cd $NAUTILUS_SCRIPT_CURRENT_URI exec gnome-search-tool
}}}
[#Top Back to top]
sed 's/^file:\/\///'`" fi # It's only possible to go to local directories if [ -n "`echo "$destination"
[#Top Back to top]
{{{
#!/bin/sh
# When hidden files (.emacs, etc) are hidden, shows "Show Hidden Files" option.
# When hidden files are shown, shows "Hide Hidden Files" option.
# Uses gconf to toggle between the two Nautilus options.
# Should be placed in ~/.gnome2/nautilus-scripts/ with executable permission.
OLDSTATE=$(gconftool-2 --get "/desktop/gnome/file_views/show_hidden_files")
if [ "$OLDSTATE" == "false" ] ; then
NEWSTATE="True"
mv ~/.gnome2/nautilus-scripts/Show\ Dot\ Files ~/.gnome2/nautilus-scripts/Hide\ Dot\ Files
else
NEWSTATE="False"
mv ~/.gnome2/nautilus-scripts/Hide\ Dot\ Files ~/.gnome2/nautilus-scripts/Show\ Dot\ Files
fi
gconftool-2 --set "/desktop/gnome/file_views/show_hidden_files" --type boolean $NEWSTATE
}}}
Note: You can do the same without a script by pressing CTRL+H under Nautilus
[#Top Back to top]
* [wiki:Self:Nautilus_Scripts Nautilus_Scripts] * [1] * [2]
CategoryDocumentation CategoryCleanup