Giter VIP home page Giter VIP logo

qbpm's Introduction

qutebrowser profile manager

builds.sr.ht status

qutebrowser profile manager (qbpm) is a tool for creating and managing qutebrowser profiles. There isn't any built in concept of profiles in qutebrowser, but there is a --basedir flag which allows qutebrowser to use any directory as the location of its config and data and effectively act as a profile. qbpm creates profiles that source your main qutebrowser config.py, but have their own separate autoconfig.yml, bookmarks, cookies, history, and other data. It also acts as a wrapper around qutebrowser that sets up --basedir for you, so you can treat qbpm launch as an alias for qutebrowser, such as to open a url: qbpm launch my-profile example.org.

qutebrowser shares session depending on the basedir, so launching the same profile twice will result in two windows sharing a session, which means running :quit in one will exit both and launching the profile again will reopen both windows. But launching two distinct profiles will start two entirely separate instances of qutebrowser which can be opened and closed independently.

Usage

Create a new profile called "python", edit its config.py, then launch it:

$ qbpm new python
$ qbpm edit python
$ qbpm launch python docs.python.org
$ qbpm choose # run dmenu or another launcher to pick a profile

qbpm from-session can copy the tabs of a saved qutebrowser session to a new profile. If you have a window full of tabs related to planning a vacation, you could save it to a session called "vacation" using :session-save -o vacation in qutebrowser, then create a new profile with those tabs:

$ qbpm from-session vacation

The default profile directory is $XDG_DATA_HOME/qutebrowser-profiles, where $XDG_DATA_HOME is usually $HOME/.local/share, but you can create and launch profiles from anywhere using --profile-dir/-P:

$ qbpm --profile-dir ~/dev/my-project new qb-profile
$ cd ~/dev/my-project
$ qbpm -P . launch qb-profile
# or
$ qutebrowser --basedir qb-profile

Installation

  • Pip: pip install git+https://github.com/pvsr/qbpm.git#egg=qbpm
  • Arch: qbpm-git in the AUR
  • Nix: clone the repository and run nix-env -if default.nix
  • MacOS: For command-line only usage, the pip command above is sufficient, but if you would like to set qbpm as the default browser app, first clone this repository, then install platypus by running brew install playtpus, and finally install the app by running platypus -P contrib/qbpm.platypus /Applications/qbpm.app inside the cloned repository. You should then be able to select qbpm as your default browser under: System Preferences > General > Default web browser. Note that there is currently an issue with qutebrowser itself that results in unnecessary file:///* tabs being opened.
  • If you're on linux, you can copy contrib/qbpm.desktop to ~/.local/share/applications. That desktop entry will run qbpm choose, which shows an application launcher (dmenu or rofi) with your qutebrowser profiles as the options.

Future ideas that may or may not happen

  • Release through github
  • More shared or copied config and data
  • Use any profile as a base for new profiles (currently only the main config in $XDG_CONFIG_HOME is supported)
  • Source autoconfig.yml instead of config.py
  • Bundled config file optimized for single-site browsing
  • qbpm.conf to configure the features above
  • Someday: qutebrowser plugin

qbpm's People

Contributors

pvsr avatar mtoohey31 avatar simonhughxyz avatar demoninthecloset avatar islandusurper avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.