Opened 4 years ago

Closed 4 years ago

#4571 closed enhancement (fixed)

GUI 'cd'

Reported by: Tristan Croll Owned by: pett
Priority: normal Milestone:
Component: General Controls Version:
Keywords: Cc: Elaine Meng, Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.19041
ChimeraX Version: 1.1 (2020-09-09 22:22:27 UTC)
Description
Thinking about the annoying issue with Windows' OneDrive removing C:\Users\{user}\Desktop got me thinking... it would be *really* nice to have a "change working directory" tool in the GUI (perhaps as a button in the File section of the Home tab?). Currently the only "nice" solution to this is using cd in the Python shell - I know you can also do it on the command line, but that doesn't tab-complete.

Also, in Windows it might be a good idea that when ChimeraX is launched from the standard menu icon it sets its working directory to the user's desktop? Currently it starts in the somewhat-obscure C:\ProgramData\ChimeraX.

Log:
UCSF ChimeraX version: 1.1 (2020-09-09)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> ui tool show Shell

> pwd

Current working directory is: C:\ProgramData\ChimeraX  




OpenGL version: 3.3.0 NVIDIA 426.00
OpenGL renderer: GeForce GTX 1070/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: ASUSTeK COMPUTER INC.
Model: GL502VS
OS: Microsoft Windows 10 Home (Build 19041)
Memory: 34,292,408,320
MaxProcessMemory: 137,438,953,344
CPU: 8 Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz"
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.9
Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    Babel: 2.8.0
    backcall: 0.2.0
    blockdiag: 2.0.1
    certifi: 2020.6.20
    chardet: 3.0.4
    ChimeraX-AddH: 2.1.3
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.1
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.6.1
    ChimeraX-AtomSearch: 2.0
    ChimeraX-AxesPlanes: 2.0
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 1.0.1
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.0
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.0
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.1
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.0
    ChimeraX-Clipper: 0.15.0
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-CommandLine: 1.1.3
    ChimeraX-ConnectStructure: 2.0
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.1
    ChimeraX-CoreFormats: 1.0
    ChimeraX-coulombic: 1.0.1
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-DataFormats: 1.0
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1
    ChimeraX-DistUI: 1.0
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0
    ChimeraX-FunctionKey: 1.0
    ChimeraX-Geometry: 1.1
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.0
    ChimeraX-Hbonds: 2.0
    ChimeraX-Help: 1.0
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.0
    ChimeraX-ImageFormats: 1.0
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0
    ChimeraX-ISOLDE: 1.1.0
    ChimeraX-Label: 1.0
    ChimeraX-ListInfo: 1.0
    ChimeraX-Log: 1.1.1
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Map: 1.0.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.0
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 1.1
    ChimeraX-MDcrds: 2.0
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.0
    ChimeraX-mmCIF: 2.2
    ChimeraX-MMTF: 2.0
    ChimeraX-Modeller: 1.0
    ChimeraX-ModelPanel: 1.0
    ChimeraX-ModelSeries: 1.0
    ChimeraX-Mol2: 2.0
    ChimeraX-Morph: 1.0
    ChimeraX-MouseModes: 1.0
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0
    ChimeraX-OpenCommand: 1.2.1
    ChimeraX-PDB: 2.1
    ChimeraX-PDBBio: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.0
    ChimeraX-PubChem: 2.0
    ChimeraX-Read-Pbonds: 1.0
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.0
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.2
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SeqView: 2.2
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.0
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.0
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.0.4
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-Struts: 1.0
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0
    ChimeraX-SwapRes: 2.0
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.0
    ChimeraX-ToolshedUtils: 1.0
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.2.3
    ChimeraX-uniprot: 2.0
    ChimeraX-ViewDockX: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0
    ChimeraX-WebServices: 1.0
    ChimeraX-Zone: 1.0
    colorama: 0.4.3
    comtypes: 1.1.7
    cxservices: 1.0
    cycler: 0.10.0
    Cython: 0.29.20
    decorator: 4.4.2
    distlib: 0.3.1
    docutils: 0.16
    filelock: 3.0.12
    funcparserlib: 0.3.6
    gdcm: 2.8.8
    grako: 3.16.5
    h5py: 2.10.0
    html2text: 2020.1.16
    idna: 2.10
    ihm: 0.16
    imagecodecs: 2020.5.30
    imagecodecs-lite: 2020.1.31
    imagesize: 1.2.0
    ipykernel: 5.3.0
    ipython: 7.15.0
    ipython-genutils: 0.2.0
    jedi: 0.17.2
    Jinja2: 2.11.2
    jupyter-client: 6.1.3
    jupyter-core: 4.6.3
    kiwisolver: 1.2.0
    line-profiler: 2.1.2
    lxml: 4.5.1
    MarkupSafe: 1.1.1
    matplotlib: 3.2.1
    msgpack: 1.0.0
    netifaces: 0.10.9
    networkx: 2.4
    numexpr: 2.7.1
    numpy: 1.18.5+mkl
    numpydoc: 1.0.0
    openvr: 1.12.501
    packaging: 20.4
    parso: 0.7.1
    pickleshare: 0.7.5
    Pillow: 7.1.2
    pip: 20.2.2
    pkginfo: 1.5.0.1
    prompt-toolkit: 3.0.7
    psutil: 5.7.0
    pycollada: 0.7.1
    pydicom: 2.0.0
    Pygments: 2.6.1
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 2.4.7
    PyQt5-commercial: 5.12.3
    PyQt5-sip: 4.19.19
    PyQtWebEngine-commercial: 5.12.1
    python-dateutil: 2.8.1
    pytz: 2020.1
    pywin32: 228
    pyzmq: 19.0.2
    qtconsole: 4.7.4
    QtPy: 1.9.0
    RandomWords: 0.3.0
    requests: 2.24.0
    scipy: 1.4.1
    setuptools: 49.4.0
    sfftk-rw: 0.6.6.dev0
    six: 1.15.0
    snowballstemmer: 2.0.0
    sortedcontainers: 2.2.2
    Sphinx: 3.1.1
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 2.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 1.0.3
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.4
    suds-jurko: 0.6
    tables: 3.6.1
    tifffile: 2020.6.3
    tinyarray: 1.2.2
    tornado: 6.0.4
    traitlets: 5.0.4
    urllib3: 1.25.10
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.34.2
    WMI: 1.5.1

Change History (9)

comment:1 by pett, 4 years ago

Cc: Tom Goddard Elaine Meng added
Component: UnassignedGeneral Controls
Owner: set to pett
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submissionGUI 'cd'
Type: defectenhancement

comment:2 by pett, 4 years ago

Cc: pett added; Tom Goddard removed
Owner: changed from pett to Tom Goddard
Status: acceptedassigned

Hi Tristan,

I'm not 1000% convinced this is necessary. First off, 'cd browse' will bring up a file browser for where you want to cd to. Also, the command line accepts drag and drop, so you can type "cd " and then drop the folder you want to cd to.
Now, the fact that ChimeraX starts in C:\ProgramData\ChimeraX on Windows seems like a bug. I thought Tom had code in there to have ChimeraX start in the Desktop folder for each platform.

--Eric

in reply to:  3 ; comment:3 by Tristan Croll, 4 years ago

I didn't know about the "cd browse" option - that certainly makes things easier, but is perhaps a bit obscure (I just assumed that the "cd" command would behave essentially like Bash cd, and never looked at its documentation). If not a button, perhaps a text ("Set working directory") entry in the File menu?

Also, just tried dragging-and-dropping a directory with spaces in the name into the command line - parsing fails at the first space.
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: 28 April 2021 17:43
Cc: goddard@cgl.ucsf.edu <goddard@cgl.ucsf.edu>; meng@cgl.ucsf.edu <meng@cgl.ucsf.edu>; pett@cgl.ucsf.edu <pett@cgl.ucsf.edu>; Tristan Croll <tic20@cam.ac.uk>
Subject: Re: [ChimeraX] #4571: GUI 'cd'

#4571: GUI 'cd'
---------------------------------------+-------------------------
          Reporter:  Tristan Croll     |      Owner:  Tom Goddard
              Type:  enhancement       |     Status:  assigned
          Priority:  normal            |  Milestone:
         Component:  General Controls  |    Version:
        Resolution:                    |   Keywords:
        Blocked By:                    |   Blocking:
Notify when closed:                    |   Platform:  all
           Project:  ChimeraX          |
---------------------------------------+-------------------------
Changes (by Eric Pettersen):

 * cc: Tom Goddard (removed)
 * cc: Eric Pettersen (added)
 * owner:  Eric Pettersen => Tom Goddard
 * status:  accepted => assigned


Comment:

 Hi Tristan,
         I'm not 1000% convinced this is necessary.  First off, 'cd browse'
 will bring up a file browser for where you want to cd to.  Also, the
 command line accepts drag and drop, so you can type "cd " and then drop
 the folder you want to cd to.
         Now, the fact that ChimeraX starts in C:\ProgramData\ChimeraX on
 Windows seems like a bug.  I thought Tom had code in there to have
 ChimeraX start in the Desktop folder for each platform.

 --Eric

--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4571#comment:2>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker

comment:4 by pett, 4 years ago

For now you will have to type the initial quote, drop the text, and then type the closing quote. In tomorrow's builds the quotes will be added automatically.

in reply to:  5 ; comment:5 by Tristan Croll, 4 years ago

OK. If I do as you say, I also need to manually remove the leading slash (i.e. "cd 'C:/...'" works, "cd '/C:/...'" doesn't).
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: 28 April 2021 18:48
Cc: goddard@cgl.ucsf.edu <goddard@cgl.ucsf.edu>; meng@cgl.ucsf.edu <meng@cgl.ucsf.edu>; pett@cgl.ucsf.edu <pett@cgl.ucsf.edu>; Tristan Croll <tic20@cam.ac.uk>
Subject: Re: [ChimeraX] #4571: GUI 'cd'

#4571: GUI 'cd'
---------------------------------------+-------------------------
          Reporter:  Tristan Croll     |      Owner:  Tom Goddard
              Type:  enhancement       |     Status:  assigned
          Priority:  normal            |  Milestone:
         Component:  General Controls  |    Version:
        Resolution:                    |   Keywords:
        Blocked By:                    |   Blocking:
Notify when closed:                    |   Platform:  all
           Project:  ChimeraX          |
---------------------------------------+-------------------------

Comment (by Eric Pettersen):

 For now you will have to type the initial quote, drop the text, and then
 type the closing quote.  In tomorrow's builds the quotes will be added
 automatically.

--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4571#comment:4>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker

comment:6 by pett, 4 years ago

If what you're saying is correct, then on Windows the text representation of the MIME data of the drop event starts with a slash. Sigh. I'll add some code for that dumb behavior....

comment:7 by Tom Goddard, 4 years ago

Cc: Tom Goddard added; pett removed
Owner: changed from Tom Goddard to pett

Could have a graphical user interface to set the current working directory. Some users will figure out the cd command, but almost none will figure out drag or drop or "browse". I don't think I would ever get to making such a gui so reassigning to Eric.

ChimeraX is supposed to start in ~/Desktop when started from an icon on Windows. That is a separate and more important bug and is likely because of OneDrive and the fact that ~/Desktop expands to a non-existent directory. When that happens the app stays in whatever startup directory was specified by the ChimeraX icon. We have a separate ticket from you for ~/Desktop not expanding correctly when OneDrive has changed the desktop location. Fixing that would resolve the problem.

comment:8 by pett, 4 years ago

Verified that drag-and-drop now generates a usable path on Windows.

comment:9 by pett, 4 years ago

Resolution: fixed
Status: assignedclosed

Put a "Set Working Folder" entry in the File menu which simply issues "cd browse".

Note: See TracTickets for help on using tickets.