Sida 1 av 1
Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 11:26
av PureW
Hej, försökte skriva ett skript som öppnar en terminal i den mapp jag är i när jag högerklickar i nautilus och kör skriptet.
Har gjort så här
Kod: Markera allt
#!/bin/bash
# Start a terminal in current directory
gnome-terminal --working-directory= $NAUTILUS_SCRIPT_CURRENT_URI
Detta script har jag lagt i /home/anders/.gnome2/nautilus-scripts
Men det funkar inte... Terminalen startar alltid i hem-mappen ändå. Verkar inte som att variabeln expanderar?
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 11:29
av Lars
Jag tror att du måste ta bort mellanslaget efter likhetstecknet.
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 11:30
av mcNisse
Testa att fnutta variabeln. Mellanslaget är nog inte bra det heller.
Kod: Markera allt
gnome-terminal --working-directory="$NAUTILUS_SCRIPT_CURRENT_URI"
Edit: Fnuttar behövs ifall du har mellanslag i sökvägen.
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 11:32
av Sid
Det finns ett paket i förråden som heter nautilus-open-terminal. Det gör det du söker
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 11:50
av Konservburk
Som sagt... inget mellanslag efter "=" och fnuttar runt variabeln. Sedan skadar det inte heller att lägga till ett
exec först så att terminalen ersätter skriptet istället för att köras som en underprocess.
Kod: Markera allt
#!/bin/sh
exec gnome-terminal --working-directory="$NAUTILUS_SCRIPT_CURRENT_URI"
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 12:41
av PureW
mcNisse skrev:Testa att fnutta variabeln. Mellanslaget är nog inte bra det heller.
Kod: Markera allt
gnome-terminal --working-directory="$NAUTILUS_SCRIPT_CURRENT_URI"
Edit: Fnuttar behövs ifall du har mellanslag i sökvägen.
Den koden fungerar inte heller
Sid skrev:Det finns ett paket i förråden som heter nautilus-open-terminal. Det gör det du söker
Jo jag såg det, men tänkte att jag inte ska förspilla detta tillfälle att lära mig lite enkel bashskripting

Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 12:43
av PureW
Konservburk skrev:Som sagt... inget mellanslag efter "=" och fnuttar runt variabeln. Sedan skadar det inte heller att lägga till ett exec först så att terminalen ersätter skriptet istället för att köras som en underprocess.
Förstår inte den biten.
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 12:49
av Hund
Vad ni krånglar till det.

Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 12:56
av ajja
Kopiera nedan och spara som körbarfil med lämpligt namn i ~/.gnome2/nautilus-scripts/
Det är en av filerna från paketet nautilus-scripts
#!/usr/bin/env python
# Open command prompt in a single selected directory
# or otherwise in current dir
# Put this (executable) file in ~/.gnome2/nautilus-scripts/
# Then right click a directory or anywhere in current dir window
# to get the scripts->command_prompt_here menu option
# This has been tested on nautilus 2.2 and 2.4
def nautilus_script_display_error():
"""This is a general error message display for nautilus scripts"""
import sys
#errors_fd,errors_name=tempfile.mkstemp() #This not available until python 2.3
errors_name=os.tmpnam()
errors_fd=file(errors_name,"w")
etype, emsg, etb = sys.exc_info()
errors_fd.write('line '+str(etb.tb_lineno)+': '+str(etype)+': '+str(emsg)+'\n')
errors_fd.write('\n$PWD: %s' % os.getcwd())
errors_fd.write('\nsys.argv: %s' % str(sys.argv[1:]))
for var in os.environ:
if var.startswith("NAUTILUS_"):
errors_fd.write("\n%s: %s" % (var,os.environ[var].replace('\n',"\\n")))
errors_fd.close()
pid = os.fork()
if pid == 0:
cmd = ["zenity", "--text-info", "--filename=%s" % errors_name, "--title=error", "--width=640", "--height=220"]
os.execvp(cmd[0],cmd)
os.waitpid(pid,0)
os.unlink(errors_name)
import os
import urllib, urlparse
try:
home_dir=os.environ["HOME"]
# An alternative to below could be:
# 1. get where we are (CURRENT_URI (file://, trash:, x-nautilus-desktop:///))
# 2. use argv to see if 1 selected dir under that?
dir_to_open=""
selected=os.environ["NAUTILUS_SCRIPT_SELECTED_URIS"].split("\n")[:-1]
#Note getting SELECTED_URIS rather than SELECTED_FILE_PATHS as later
#is not set when ~/Desktop and ~/.Trash selected??
if len(selected) == 1:
uri_bits=urlparse.urlparse(urllib.unquote(selected[0]))
if uri_bits[0] == "file":
dir_to_open=uri_bits[2]
elif uri_bits[0] == "x-nautilus-desktop":
if uri_bits[2] == "///trash":
dir_to_open=home_dir+'/.Trash'
elif uri_bits[2] == "///home":
dir_to_open=home_dir+'/Desktop'
if not os.path.isdir(dir_to_open):
dir_to_open=""
if not dir_to_open: #we didn't select 1 directory so open current dir
current_uri=os.environ["NAUTILUS_SCRIPT_CURRENT_URI"]
uri_bits=urlparse.urlparse(urllib.unquote(current_uri))
if uri_bits[0] == "file":
dir_to_open=uri_bits[2]
elif uri_bits[0] == "x-nautilus-desktop":
dir_to_open=home_dir+'/Desktop'
elif uri_bits[0] == "trash":
dir_to_open=home_dir+'/.Trash'
shell_cmd=["gnome-terminal", "--working-directory=%s"%dir_to_open]
os.execvp(shell_cmd[0],shell_cmd)
except:
nautilus_script_display_error()
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 18:07
av webaake
Hund hade det!
#!/bin/bash
gnome-terminal
exit 0
Öppnar en terminal i den mapp där du högerklickar i Nautilus.
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 18:16
av PureW
webaake skrev:Hund hade det!
#!/bin/bash
gnome-terminal
exit 0
Öppnar en terminal i den mapp där du högerklickar i Nautilus.
Vilken enkel lösning
Vad gör exit 0?
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 18:17
av Hund
PureW skrev:webaake skrev:Hund hade det!
#!/bin/bash
gnome-terminal
exit 0
Öppnar en terminal i den mapp där du högerklickar i Nautilus.
Vilken enkel lösning
Vad gör exit 0?
Ingen aning men den behövs inte.
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 19:14
av mcNisse
PureW skrev:webaake skrev:Hund hade det!
#!/bin/bash
gnome-terminal
exit 0
Öppnar en terminal i den mapp där du högerklickar i Nautilus.
Vilken enkel lösning
Vad gör exit 0?
Det avslutar programmet utan fel. Jag tror att den tar bort eventuel felkod från gnome-terminalen.
Dock är det synd att du inte tagit upp konservburkens förslag med exec, det ger ju en mindre process...
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 21:09
av webaake
exec = mindre process
Det låter intressant, vad betyder det?
Man vill ju alltid fila på sina script.
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 21:21
av mcNisse
Jag tycker Konservburk beskriver det bra.
Konservburk skrev: Sedan skadar det inte heller att lägga till ett exec först så att terminalen ersätter skriptet istället för att köras som en underprocess.
Inga kommandon i ett skript körs efter en exec.
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 21:26
av webaake
exec gnome-terminal
exit 0
funkar fint!
Script e livet.
Re: Öppna terminalen i katalog i nautilus?
Postat: 21 maj 2008, 23:23
av Konservburk
Hund skrev:Vad ni krånglar till det.
Om det där funkar så borde det även funka med en vanlig symlänk istället för ett skript.