All Projects → fogine → i3-workscreen

fogine / i3-workscreen

Licence: MIT License
In i3wm compatible manner - dynamically re-configures your (multi)-monitor setup on the fly when you hotplug/unplug display cabel(s)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to i3-workscreen

I3 Config
i3wm configuration files
Stars: ✭ 81 (+179.31%)
Mutual labels:  workspace, i3wm
Kanshi
Dynamic display configuration
Stars: ✭ 448 (+1444.83%)
Mutual labels:  monitor, display
Dotfiles
i3 + Plasma: using the i3 window manager on the top of KDE Plasma and other dotfiles, configurations, scripts, workarounds and practises from my Debian Sid machines.
Stars: ✭ 651 (+2144.83%)
Mutual labels:  workspace, i3wm
Mons
POSIX Shell script to quickly manage monitors on X
Stars: ✭ 457 (+1475.86%)
Mutual labels:  monitor, display
Lunar
Intelligent adaptive brightness for your external monitors
Stars: ✭ 2,712 (+9251.72%)
Mutual labels:  monitor, display
raiseorlaunch
A run-or-raise-application-launcher for i3 window manager.
Stars: ✭ 35 (+20.69%)
Mutual labels:  workspace, i3wm
I3 Gnome Pomodoro
🍅 Integrate gnome-pomodoro into i3
Stars: ✭ 159 (+448.28%)
Mutual labels:  workspace, i3wm
Monitorian
A Windows desktop tool to adjust the brightness of multiple monitors with ease
Stars: ✭ 559 (+1827.59%)
Mutual labels:  monitor, display
ArcoLinux-dotfiles
ArcoLinux dotfiles for 2bwm / i3wm
Stars: ✭ 24 (-17.24%)
Mutual labels:  monitor, i3wm
xpub
POSIX Shell script to get user's display environment variables of any TTY from anywhere.
Stars: ✭ 36 (+24.14%)
Mutual labels:  display, udev
chrome-extension-aspectratio219
🖥️ Fit the screen properly in fullscreen mode on monitor ultrawide with 21:9 aspect ratio (Netflix, Youtube, PrimeVideo, Crunchyroll)
Stars: ✭ 28 (-3.45%)
Mutual labels:  monitor, display
Dell-S2716DGR-Calibration-Guide
Calibration guide for the Dell S2716DG and S2716DGR to get the best picture quality and colors
Stars: ✭ 33 (+13.79%)
Mutual labels:  monitor
monoreact
📦 React workspaces implementation
Stars: ✭ 13 (-55.17%)
Mutual labels:  workspace
firefox-i3wm-theme
i3 and qutebrowser inspired theme for firefox
Stars: ✭ 72 (+148.28%)
Mutual labels:  i3wm
TM1637TinyDisplay
Arduino library to display numbers and text on a 4 and 6 digit 7-segment TM1637 display modules.
Stars: ✭ 23 (-20.69%)
Mutual labels:  display
ferryd
Fast, safe and reliable transit for the delivery of software updates to users.
Stars: ✭ 43 (+48.28%)
Mutual labels:  monitor
dotfiles
A collection of dotfiles for i3, polybar and more.
Stars: ✭ 25 (-13.79%)
Mutual labels:  i3wm
surepy
🐾 Library & CLI to monitor and control the Pet Door & Cat Flap Connect 🚪 the Pet Feeder Connect 🍽 and the Felaqua 💦 sold by Sure Petcare
Stars: ✭ 45 (+55.17%)
Mutual labels:  monitor
esp-rgb-led-matrix
Full RGB LED matrix, based on an ESP32 and WS2812B LEDs.
Stars: ✭ 91 (+213.79%)
Mutual labels:  display
WindowsMonitor
WMI namespaces and classes
Stars: ✭ 15 (-48.28%)
Mutual labels:  monitor

This utility is for users using i3wm on their laptops who frequently jump between multiple (multi-)monitor setups.

For example single display output when you are on road, triple-monitor setup at work and two-monitor setup at home.

i3-workscreen executable provided by this package should be triggered by udev rule which will listen for specific events caused by plugging/unplugging display output cable(s) (eg.: HDMI). The utility will then enable configured display outputs and reassign existing workspaces based on your json configuration.

An example of the udev rule is provided in the root of the git repository and should be EDITED by the user and copied to /etc/udev/rules.d/98-monitor-hotplug.rules on you system.

You may also need to execute i3-workscreen in your .i3/config as the udev event is emitted way too early on a system startup before the X.org server is running.

exec --no-startup-id "i3-workscreen"

Installation:

/home/user> pip install git+https://github.com/fogine/i3-workscreen.git

# or

/home/user> pip install i3-workscreen

Dependencies:

  • i3-msg
  • xrandr (xlib)
  • python 3.5
  • logger (write messages into the system log)

Configuration:

/home/user> i3-workscreen -h

usage: i3workscreen.py [-h] [--toggle]

Required configuration file is fetched from:
`$HOME/.config/i3-workscreen/config.json`

optional arguments:
  -h, --help  show this help message and exit
  --toggle    Toggles between mirrored & extended display mode

The bellow configuration example shows setup of maximum of three monitors. In this case eDP-1 is my laptop screen and HDMI-1 & DP-1 are external monitors.

Four scenarios may happen with the configuration:

  1. eDP-1 connected, HDMI-1 & DP-1 disconnected

    In this case all workspaces are assigned to the single screen

  2. eDP-1 connected, HDMI-1 connected, DP-1 disconnected

    In this case workspaces 1-5 belong to eDP-1 and workspaces 6-0 belong to HDMI-1

  3. eDP-1 connected, HDMI-1 disconnected, DP-1 connected

    In this case workspaces 1-5 belong to DP-1 and workspaces 6-0 belong to eDP-1

  4. eDP-1 connected, HDMI-1 connected, DP-1 connected

    In this case workspaces 1-5 belong to DP-1 and workspaces 6-0 belong to HDMI-1. eDP-1 was stolen all workspaces by higher priority outputs and because disableEmptyOutputs=true, eDP-1 display output will be disabled. if the option was set to false, the output would be enabled and you could interact with the connected monitor and i3 would assign to it first empty workspace (workspace without any windows in it)

{
    "disableEmptyOutputs": true,
    "outputs": [
        {
            "name": "eDP-1",
            "workspaces": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" ]
        },
        {
            "name": "HDMI-1",
            "xrandr": ["--above", "eDP-1"],
            "workspaces": [ "6", "7", "8", "9", "0" ]
        },
        {
            "name": "DP-1",
            "workspaces": ["1", "2", "3", "4", "5"]
        }
    ]
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].