Skip to main content

Navigate i3wm named containers

Project description

Fluidspaces

  • Create i3 workspaces with custom names on the fly
  • Type a few letters to jump to a target workspace using fuzzy matching
  • Quick toggle between the two most recently used workspaces
  • Bring/send containers to workspaces while doing any of the above

Dependencies

i3

You need this installed for fluidspaces to be useful, of course.

pacman -S i3  # to install on Arch

Refer to the i3 repository docs to install on Ubuntu.

rofi (optional)

Can be used as a replacement for dmenu. Has a nicer looking menu, displays different prompts for different actions, etc. Not required for fluidspaces to function.

sudo pacman -S rofi  # to install on Arch
sudo apt install rofi  # to install on Ubuntu

Installing Fluidspaces

From PyPi:

pip install fluidspaces

From source:

git clone https://github.com/mosbasik/fluidspaces.git
cd fluidspaces
pip install .

Argument Reference

-h, --help show this help message and exit
-b, --bring-to bring focused container with you to workspace
-s, --send-to send focused container away to workspace
-m PROGRAM, --menu=PROGRAM
 program to render the menu {dmenu,rofi} (default: dmenu)
-t, --toggle skip menu & choose workspace 2 (default: False)
-V, --version show program’s version number and exit

Example i3 configurations

Using defaults:

bindsym $mod+c            exec "fluidspaces"
bindsym $mod+Shift+c      exec "fluidspaces --send-to"
bindsym $mod+Ctrl+Shift+c exec "fluidspaces --bring-to"

bindsym $mod+Tab          exec "fluidspaces --toggle"
bindsym $mod+Shift+Tab    exec "fluidspaces --toggle --send-to"

Using rofi instead of dmenu:

bindsym $mod+c            exec "fluidspaces --menu=rofi"
bindsym $mod+Shift+c      exec "fluidspaces --menu=rofi --send-to"
bindsym $mod+Ctrl+Shift+c exec "fluidspaces --menu=rofi --bring-to"

# note that toggling bypasses the menu entirely, so no need to define it
bindsym $mod+Tab          exec "fluidspaces --toggle"
bindsym $mod+Shift+Tab    exec "fluidspaces --toggle --send-to"

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.3.1

Fixed

  • Added missing quotes to sample i3 configuration lines in README

0.3.0

Added

  • -m/--menu flags taking the values dmenu or rofi. The named program is used to render the menu - so passing --menu=rofi results in the behavior that was default in version 0.2.4.

Changed

  • Now defaults to using dmenu to generate the menu instead of rofi. This means fluidspaces can be used with just the tools included with basic i3.
  • Made some of the helptext more concise and mentioned default values for --menu and --toggle.

0.2.4

Changed

  • Simpler README and CHANGELOG formats to get them to render nicely on PyPi and Github

0.2.3

Added

  • An actually useful README file

Changed

  • README and CHANGELOG files now use reStructuredText format instead of Markdown
  • Package’s long description now includes the contents of CHANGELOG at the end
  • All argument descriptions now start with small letters to match argparse’s built-in descriptions for --help and --version

0.2.2

Fixed

  • Crash on startup if not run from an intact git repository (i.e. if run using a sdist build, a github archive, a pypi archive, or literally anything but a dev evironment)

0.2.1

Fixed

  • Navigating to / bringing a container to a new workspace promotes that workspace (the new workspace used to stay at the back where it was created - with a numberless name - until it was navigated to again)

0.2.0

Added

  • -V/--version flag prints program version and exits

Changed

  • Now using setuptools_scm to get the package version from git tags instead of keeping a VERSION file

0.1.0

Added

  • This CHANGELOG file, to keep track of changes in this project over time.
  • Project URL now included in setup.py information.
  • MIT license (from Choose a License) now included in LICENSE and in setup.py information.
  • -t/--toggle instead of prompting the user for which workspace to use as the target for going/sending/bringing actions, use the first workspace whose title contains 2: as the target. Can be used to implement quick toggling between the top two workspaces.

0.0.1

Added

  • fluidspaces script navigates to the workspace chosen by the user from a list of the current i3 workspaces.
  • -s/--send-to send the currently focused i3 container to the chosen workspace.
  • -b/--bring-to navigate to the chosen workspace and bring the currently focused i3 container to it at the same time.
  • Every execution of fluidspaces (i.e., with/without flags, user selects workspace / user exits early, etc.) re-numbers all existing i3 workspaces such that the top one is 1, the next is 2, and so on with no gaps. Existing workspace ordering is maintained.
  • Navigating to a workspace with any form of fluidspaces “promotes” the chosen workspace to position 1 and renumbers the rest of the workspaces to remove the just-created gap.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
fluidspaces-0.3.1.tar.gz (14.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page