Öppna terminalen i katalog i nautilus?

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
PureW
Inlägg: 153
Blev medlem: 22 maj 2007, 21:02
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Göteborg

Öppna terminalen i katalog i nautilus?

Inlägg 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?
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Öppna terminalen i katalog i nautilus?

Inlägg av Lars »

Jag tror att du måste ta bort mellanslaget efter likhetstecknet.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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.
Sid
Inlägg: 3689
Blev medlem: 12 okt 2007, 17:54
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Överallt

Re: Öppna terminalen i katalog i nautilus?

Inlägg av Sid »

Det finns ett paket i förråden som heter nautilus-open-terminal. Det gör det du söker
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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"
Användarvisningsbild
PureW
Inlägg: 153
Blev medlem: 22 maj 2007, 21:02
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Göteborg

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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 :)
Användarvisningsbild
PureW
Inlägg: 153
Blev medlem: 22 maj 2007, 21:02
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Göteborg

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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.
Användarvisningsbild
Hund
Inlägg: 16492
Blev medlem: 25 jan 2007, 04:15
OS: Gentoo
Ort: Norrland
Kontakt:

Re: Öppna terminalen i katalog i nautilus?

Inlägg av Hund »

Vad ni krånglar till det.

Kod: Markera allt

#!/bin/sh  
gnome-terminal
;D
Linuxkompis - En vänlig Linux-gemenskap för alla!
Användarvisningsbild
ajja
Inlägg: 682
Blev medlem: 15 dec 2007, 23:43
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Motala
Kontakt:

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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()
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Öppna terminalen i katalog i nautilus?

Inlägg av webaake »

Hund hade det!

#!/bin/bash
gnome-terminal
exit 0

Öppnar en terminal i den mapp där du högerklickar i Nautilus.
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Användarvisningsbild
PureW
Inlägg: 153
Blev medlem: 22 maj 2007, 21:02
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Göteborg

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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?
Användarvisningsbild
Hund
Inlägg: 16492
Blev medlem: 25 jan 2007, 04:15
OS: Gentoo
Ort: Norrland
Kontakt:

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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.
Linuxkompis - En vänlig Linux-gemenskap för alla!
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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...
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Öppna terminalen i katalog i nautilus?

Inlägg av webaake »

exec = mindre process

Det låter intressant, vad betyder det?
Man vill ju alltid fila på sina script.
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Öppna terminalen i katalog i nautilus?

Inlägg 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.
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Öppna terminalen i katalog i nautilus?

Inlägg av webaake »

exec gnome-terminal
exit 0

funkar fint!


Script e livet.
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Öppna terminalen i katalog i nautilus?

Inlägg av Konservburk »

Hund skrev:Vad ni krånglar till det.

Kod: Markera allt

#!/bin/sh  
gnome-terminal
Om det där funkar så borde det även funka med en vanlig symlänk istället för ett skript.
Skriv svar

Återgå till "Terminalforum"