Giter Site home page Giter Site logo

regolith-i3-gaps-config's Introduction

regolith-i3-gaps-config

This repo is for Regolith-specific configuration for i3-gaps.

regolith-i3-gaps-config's People

Contributors

cheginit avatar ferdinandyb avatar hugohutri avatar hypergig avatar kgilmer avatar leosunmo avatar mbertheau avatar moritzheiber avatar sjz avatar tomster avatar ukaszg avatar winder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

regolith-i3-gaps-config's Issues

Request for comments: use a command mode for opening and closing gnome-control-center

Problems

  1. Current bindings for gnome-control-center take up many of the "most valuable" $mod + single key bindings
  2. gnome-control-center behaviour is not very tiling wm friendly, because when it is losing width, it starts to decrease the area for the settings themselves, while keeping the left hand side tabs the same size.

Proposed solution: Create a command mode for handling the control center as a floating window.

I propose to move all the keybinds into a control mode. Entering control mode with $mod+c would open the gnome-control-center, if it is already open fetch it from the scratchpad as a floating window (potentially, it could also make it full screen?). Closing the control mode with the same key combo puts the gnome-control-center on the scratchpad hiding it. In case you need to type something, you will need to use Esc to close the mode and e.g. type the wifi password and then use $mod+Ctrl+m to move the control center to the scratchpad (or just kill it since starting control mode will spawn a new one anyway). In control mode, single key presses will take you to various settings pages of the control center.

Note, that the bindings that are not the control mode in the below code should probably be thought about, since I set those binds with the original bindings of the control center still active, now with the new free binding place there might be some better combos (although it might be good to leave them free for users to bind some functionalities they use more often, because IMHO the scratchpad is only useful if you can set it to fetch specific apps, like here the control center, or the music player or a terminal etc.)

# toggle tiling / floating
bindsym $mod+Ctrl+f floating toggle
bindsym $mod+Ctrl+m move to scratchpad
bindsym $mod+Ctrl+a scratchpad show
bindsym $mod+Ctrl+x floating disable
bindsym $mod+m move workspace to output right


# change focus between tiling / floating windows
bindsym $mod+Ctrl+t focus mode_toggle

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
floating_maximum_size -1 x -1

mode "Control Center" {

      # shortcuts for common system configuration tasks
      bindsym w exec gnome-control-center wifi
      bindsym b exec gnome-control-center bluetooth
      bindsym d exec gnome-control-center display
      bindsym n exec gnome-control-center network
      bindsym p exec gnome-control-center power
      bindsym s exec gnome-control-center sound
        
      bindsym Escape mode "default"
      bindsym $mod+c mode "default", [class=Gnome-control-center] move to scratchpad
}

bindsym $mod+c mode "Control Center",exec --no-startup-id gnome-control-center, [class=Gnome-control-center] move to scratchpad, scratchpad show, resize set width 96 ppt height 95 ppt, move position center

See here: https://github.com/priestoferis/regolith-i3-gaps-config/blob/6c63bacf09dc2aadd5cc6d3972cd3e517cfce6de/config#L192

Any thoughts about this approach?

Current i3 config breaks custom workspace names

Seems like there is a minor issue with the currently shipped i3-gaps config. If a user overrides the default workspace names to any value containing non-digit characters, it breaks all keybinds which operate on that workspace.

This is because the config references workspaces like this: workspace number $ws1. $ws1 is set by Xresources (i3-wm.workspace.1.name) and is intended to be user editable so that the user can set an arbitrary name, but this current syntax breaks if the $ws1 is not a integer. Solution is to use this syntax: workspace number 1 $ws1, note that I am now directly using the number to reference the workspace, but i3 also allows the pass through the name as a user-friendly identifier.

The only change to the UX is that the name of the workspace is now 1 <name>, not <name> altough i3-bar has inbuilt functionality to strip the leading number with strip_workspace_numbers so the user can have this shown to them in either format regardless.

smart_gaps cannot be disabled via Xresources

With the version of i3-gaps that ships with Regolith there is currently no way to disable smart_gaps without editing the partials to comment out the smart_gaps line. This is because the option does not accept 'falsey' values.

i3-gaps upstream has a accepted an PR that allows smart_gaps to be disabled via Xresources. Would you consider pulling this change into i3-gaps-wm ?

Airblader/i3#434

I logged it on this project because you can't create issues on https://github.com/regolith-linux/i3-gaps-wm

Assigning workspace to monitor creates duplicated workspaces

I'm having the same issue which was discussed in regolith-linux/regolith-i3#12

This produces config errors:

workspace $ws1 output DP1

Another solution is to use the index:

workspace 1 output DP1

This works, but instead of creating "1 [ ]" workspace with a color square, it creates a workspace without a color square. This is annoying, because you can have both "1" and "1 [ ]" workspaces at the same time, which breaks workspace navigation shortcuts making this feature unusable.
second
first

I'm using 4.17.1:

i3 --moreversion
Binary i3 version:  4.17.1 (2019-08-30) © 2009 Michael Stapelberg and contributors
Running i3 version: 4.17.1 (2019-08-30) (pid 2649)abort…)
Loaded i3 config: /home/donatas/.config/regolith/i3/config (Last modified: Mon 20 Apr 2020 19:03:49 BST, 959 seconds ago)

The i3 binary you just called: /usr/bin/i3
The i3 binary you are running: i3

Might be this a old configuration?

set_from_resource $rofiTheme rofi.theme /etc/regolith/styles/cahuella/rofi.rasi

In the latest release, regolith switched to lascaille theme who defines the rofi theme to be

styles/lascaille/root
15:#include "/etc/regolith/styles/rofi"

styles/lascaille/theme
4:#define rofi_theme          /etc/regolith/styles/lascaille/rofi.rasi

I don't even have the cahuela theme installed on my system anymore

BTW: I do like the update, besides the fact I have to spend 1 hour tweaking the configurations :)

I'd love to contribute somehow so next time is easier to do the transition

Default bar on top

Most DE's place their bar on top, and I believe it is the best default. Maybe we should consider it for the regolith desktop.

Add bindsym in Xresource

I tried to add bindsym for programs in the Xresource file but it's not working. Here is what I did:
in the ~/.config/regolith/i3/config file:

set_from_resource $i3-wm.bindsym.1 i3-wm.bindsym.1 :
set_from_resource $i3-wm.bindsym.program.1 i3-wm.bindsym.program.1 :
bindsym $i3-wm.bindsym.1 exec --no-startup-id "$i3-wm.bindsym.program.1"

in the ~/.config/regolith/Xresource file

i3-wm.mod: Mod4
i3-wm.bindsym.1: $i3-wm.mod+c
i3-wm.bindsym.program.1: rofi -show calc -modi calc -no-show-match -no-sort

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.