It is useful to have the terminal around whenever I code. However, while real screen estate is finite, having a terminal further limiting the amount of information that can be displayed at the same time. The problem with the terminal is that I don’t really need it all the time, so I usually find it buried under a group of windows.
Then I decided to find a workaround to the problem, firstly I installed Guake.
Everything works fine, but I find it a bit too wide for my liking. I certainly do not need it to be that wide. It would be nice if I can somehow dock it to the right screen-edge (as left edge is being used by unity’s launcher). However, after digging through the preference options, there seem to be no way of doing that.
So to make it work the way I want, I would have to find workarounds for two problems. Firstly how to shrink the width of the terminal, secondly make it somehow ‘docked’ to the right hand side of the screen edge.
A quick search at google returns this guide， and after much playing with the python script, I modified a couple of things to somehow adjust the terminal to my liking. In short, I modified the main python script to the following state:
def get_final_window_rect(self): """Gets the final size of the main window of guake. The height is the window_height property, width is window_width and the horizontal alignment is given by window_alignment. """ screen = self.window.get_screen() height = self.client.get_int(KEY('/general/window_height')) width = 33 halignment = ALIGN_RIGHT # get the rectangle just from the first/default monitor in the # future we might create a field to select which monitor you # wanna use window_rect = screen.get_monitor_geometry(0) total_width = window_rect.width window_rect.height = window_rect.height * height / 100 window_rect.width = window_rect.width * width / 100 if width < total_width: if halignment == ALIGN_CENTER: window_rect.x = (total_width - window_rect.width) / 2 elif halignment == ALIGN_LEFT: window_rect.x = 0 elif halignment == ALIGN_RIGHT: window_rect.x = total_width window_rect.y = 0 return window_rect
In short, I changed the value of width, halignment, and window_rect.x.
So the terminal seems to show up at the place I want it to be. To make it respond to right screen edge, I launched ccsm, and turned off Desktop wall plugin (as I don’t need it and it somehow conflict with the following step). Then in the Commands plugin, I map command 0 to launch guake. The last step is then to bind the right screen edge to command 0.
Should I file a feature request to Guake?