¿Es posible que Xmonad abra un nuevo terminal en el mismo directorio que el terminal activo (si la ventana activa es un terminal o un programa como vim que se ejecuta en uno)? Como está, todos mis terminales se abren en $HOME
. No me importa si esto sucede si abro una nueva terminal en un espacio de trabajo diferente. Esto sería una gran ganancia de productividad porque de lo contrario tendría que cd
Hasta el directorio en el que estoy trabajando.
Si esto no es posible hacerlo directamente usando Xmonad, estoy interesado en soluciones alternativas a esto. Lo único que se me ocurre es sobrecargar PROMPT_COMMAND para escribir el directorio actual en un archivo y tener mi .bashrc
mira este archivo para determinar dónde ir. Pero esta es una solución muy imperfecta que funcionaría para muchos casos, pero dejará a una buena mayoría incorrecta.
Respuestas:
No me he metido mucho con los valores predeterminados y
ctrl+shift+n
lo hace por mifuente
Eso realmente no responde a su pregunta, pero tengo una alternativa que puede ahorrarle tiempo y resolver su problema: autojump
Este es un software que guarda sus hábitos al navegar entre carpetas en el terminal. Cada vez que usted
cd
en una carpeta, aumenta la probabilidad asociada. Por ejemplo en mi sistema ahora tiene algo como:Luego, cuando quiera ir a una carpeta, puede dar solo una parte del nombre y se irá a la carpeta más probable que corresponda. Generalmente el comando
j
Se asocia con autojump. Por ejemplo, en su caso, el uso será el siguiente.cd
a la carpeta/very/long/path/boring/to/join/Folder
j fol<ENTER>
traerá su directamente a/home/fb/very/long/path/boring/to/join/Folder
Por supuesto, esto solo funciona si la carpeta a la que desea unirse es una carpeta a la que va a menudo.
fuente
pwd > ~/poo
- & gt;cd `cat ~/poo`
pushd
ypopd
;-)cd -
. Un flujo de trabajo común escd my/directory/one
, luego trabaje en él hasta que se necesite otra carpeta:cd /etc/httpd/
. Luego, para volver a la anterior:cd -
, lo que marca el directorio actual como anterior, haciendo otrocd -
para volver a ello.Establecí mi directorio por espacio de trabajo. Luego todos los terminales que abro en ese espacio de trabajo se abren en ese directorio. Esto se hace usando la extensión workspacedir: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-WorkspaceDir.html
Básicamente he enlazado una tecla a changeDir. Cuando presiono esa tecla, aparece un mensaje que le permite configurar el directorio (con la pestaña de trabajo completada).
fuente
Si puede hacer que el PID del shell se ejecute en la ventana actual, puede hacer algo como ejecutar
urxvt -cd $(readlink /proc/$PID/cwd)
(o algo similar para diferentes terminales). No sé cómo obtener pid de la ventana actual en XMonad sin embargo.fuente
Podrías usar el ID de la ventana X desde
withWindowSet
y consultaxprop
para PID, de la cual extraer CWD.He estado usando Este enfoque desde hace algún tiempo (con éxito), en una máquina Linux. Debería funcionar en la mayoría de los sistemas operativos similares a Unix que le permiten modificar su lógica para extraer CWD de PID.
fuente