Skip to content

A TUI to quickly find files in your Google Drive

License

Notifications You must be signed in to change notification settings

jalada/gdrive-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gdrive-search

Crates.io

Warning: I used this to learn Rust. It might be the worst Rust ever. Feedback to help me learn is very welcome!

Fifty percent learning Rust, fifty percent building a CLI to very quickly search & access files in your Google Drive.

On my Mac I had the Google Drive desktop app, and an Alfred workflow to use that synchronised filesystem to quickly search & open Drive files. But I haven't found an equivalent super-fast autocompleting search & open for Linux so I decided to build one.

What does it look like?

demo

Hitting enter would then open in your browser

What works?

  • Sign in with Google Drive (if you follow setup below).
  • Sync files & folders (currently fetches incrementally, every 5 minutes) and save to file.
  • Interface for searching for file/folders.
  • Open chosen file/folder in your web browser.

How do I get it?

Binaries

Download a release from GitHub if there is one for your platform.

Arch Linux (including Manjaro etc.)

gdrive-search can be built from source via the AUR.

From source

If you have Rust installed you can download and compile gdrive-search from Cargo:

$ cargo install gdrive-search

Windows support

Windows is currently not supported because gdrive-search depends on skim which depends on tuikit which doesn't support Windows.

Alfred workflow

In the docs folder there is an Alfred workflow which you can install if you have the Alfred powerpack. It runs gdrive-search in a terminal when you press the hotkey (cmd+D) and then closes the terminal.

Google Drive API application setup

This dance will be familiar if you've used any other open source tools that use the Google Drive API.

  • Create a new project

  • Enable the Google Drive API for your project

  • Setup oauth consent screen

  • Create a new oauth client ID

  • Download the JSON provided and put it in the configuration directory. This varies depending on operating system:

    Platform Value Example
    Linux $XDG_CONFIG_HOME or $HOME/.config/gdrive-search/clientsecret.json /home/alice/.config/gdrive-search/clientsecret.json
    macOS $HOME/Library/Preferences/gdrive-search/clientsecret.json /Users/Alice/Library/Preferences/gdrive-search/clientsecret.json

Releasing a new version

  1. Tag the release on Github.
  2. Wait for Github Actions to cross compile everything.
  3. Update the release notes.
  4. Update the AUR repository PKGBUILD.
  5. Test the PKGBUILD (ideally in a clean archlinux:base-devel docker container).
  6. Follow the AUR release instructions.

Roadmap

  • Some indication of what type of file/folder each entry is.
  • Can we fetch in the background whilst skim loads to make it even faster?
  • A way of resetting the configuration.
  • Better error handling if config files are in an invalid state.
  • Multi-account support.
  • A way to force a fetch from scratch.

About

A TUI to quickly find files in your Google Drive

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Languages