i3a 2.2.1__tar.gz → 2.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: i3a
3
- Version: 2.2.1
3
+ Version: 2.2.3
4
4
  Summary: Automatic manager for i3 tiling
5
5
  Home-page: https://git.goral.net.pl/i3a.git
6
6
  License: GPL-3.0-or-later
@@ -140,7 +140,7 @@ available outputs if none was explicitly set).
140
140
  will cycle so it must be escaped in configuration file:
141
141
 
142
142
  ```
143
- bindsym $mod+s exec "i3a-scale -f 1.0,1.5,2.0 -o HDMI-1 -o HDMI-2 --next"
143
+ bindsym $mod+s exec "i3a-scale-cycle -f 1.0,1.5,2.0 -o HDMI-1 -o HDMI-2 --next"
144
144
  ```
145
145
 
146
146
  ## Installation
@@ -111,7 +111,7 @@ available outputs if none was explicitly set).
111
111
  will cycle so it must be escaped in configuration file:
112
112
 
113
113
  ```
114
- bindsym $mod+s exec "i3a-scale -f 1.0,1.5,2.0 -o HDMI-1 -o HDMI-2 --next"
114
+ bindsym $mod+s exec "i3a-scale-cycle -f 1.0,1.5,2.0 -o HDMI-1 -o HDMI-2 --next"
115
115
  ```
116
116
 
117
117
  ## Installation
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "i3a"
7
- version = "2.2.1"
7
+ version = "2.2.3"
8
8
  description = "Automatic manager for i3 tiling"
9
9
  authors = ["Michal Goral <dev@goral.net.pl>"]
10
10
  license = "GPL-3.0-or-later"
@@ -129,9 +129,16 @@ class Autotiler:
129
129
  await self.cmd('[con_id="{}"] resize set {} ppt 0 ppt'.format(curr.id, self.args.stack_size))
130
130
  else:
131
131
  await self.cmd('[con_id="{}"] mark --add {}'.format(stack[-1].id, STACKMARK))
132
- await self.intermove(curr, 'move window to mark {}'.format(STACKMARK))
132
+
133
+ # Coumpound command are A LOT faster than separate ones; running
134
+ # additional focus after "intermove" left a visible visual glitch
135
+ # of "jumping" window when new window was spawned when focus was on
136
+ # a master window. There's still a minor artifact with coumpound command,
137
+ # but it's more bearable now
138
+ move_cmd = 'move window to mark {}'.format(STACKMARK)
133
139
  if curr.workspace() == tree.find_focused().workspace():
134
- await self.cmd('[con_id="{}"] focus'.format(curr.id))
140
+ move_cmd += ", focus"
141
+ await self.intermove(curr, move_cmd)
135
142
 
136
143
  async def win_close(self, i3, e):
137
144
  log.debug('called win_close()')
@@ -211,8 +218,9 @@ class Autotiler:
211
218
 
212
219
  async def intermove(self, node, cmd):
213
220
  movemark = INTERNAL_MOVE_MARK + '_{}'.format(node.id)
214
- await self.cmd('[con_id="{}"] mark --add {}'.format(node.id, movemark))
215
- await self.cmd('[con_id="{}"] {}'.format(node.id, cmd))
221
+ # Note: compound commands separated with a colon retain their criteria
222
+ # ("con_id"); compound commands separated with semicolon don't.
223
+ await self.cmd('[con_id="{}"] mark --add {}, {}'.format(node.id, movemark, cmd))
216
224
 
217
225
  async def rmmovemarks(self, node):
218
226
  removed = False
@@ -87,7 +87,11 @@ def _(f: float):
87
87
 
88
88
 
89
89
  def get_current_scales(i3: Connection):
90
- return {outp.name: to_dec(outp.scale) for outp in i3.get_outputs()}
90
+ return {
91
+ outp.name: to_dec(outp.scale)
92
+ for outp in i3.get_outputs()
93
+ if outp.scale is not None
94
+ }
91
95
 
92
96
 
93
97
  def main():
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes