Code Monkey home page Code Monkey logo

redflat's People

Contributors

f00wl avatar jessequinn avatar m4he avatar ntc-vulkan avatar rakanalh avatar worron 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

redflat's Issues

Grid layout multimonitor error popup message

Preface

I change my screen layout to use both my internal display (eDP1) as well as an external monitor (HDMI1). The latter is placed on top and is marked as primary. Awesome seems to restart itself automatically, as soon as the layout changes:

xrandr --output HDMI1 --primary --auto;
xrandr --output eDP1 --auto --below HDMI1;
  • I've got a grid layout on the lower display (eDP1) but a tiling layout on the top one.
  • the displays have different resolutions
    • eDP1: 1440x900
    • HDMI1: 1920x1080

Issue

  • I connect the external display and execute the xrandr commands as aboce

  • I move a window from the top screen to the lower one via mouse dragging

  • the window transitions from Tile mode to Grid mode

  • an error message is displayed once:

    redflat/layout/grid.lua:203: attempt to index local 'cell' (a nil value)
    

Possible Fix

The error message only happens once when the first client enters the lower screen after connecting the external monitor. If I adjust the is_diff() function as portrayed below, the message doesn't appear:

local function is_diff(g1, g2, cell)
    if not cell then return false end
    for k, v in pairs(g1) do
        if math.abs(g2[k] - v) >= cell[k] then return true end
    end

    return false
end

(added if not cell then return false end)

The error does not appear, yet the grid layout seems to work fine so far. It almost seems like the cell value (provided via grid.data.cell in the calling functions) is accessed before it is refreshed correctly or something. I haven't yet fully grasped the implementation logic of the grid layout, maybe you can provide more insight here. I assume this proposed fix should be non-destructive?

Desktop widgets appearing on wrong screen.

Hello I am using your extension module for Awesome window manager with a dual screen setup. When i was creating the desktop widgets I found out that the widgets would appear on my left most screen (not primary screen) and slightly higher then they should be.
A bit of digging later and I have found that when you are getting the positions of widgets with workarea you are not adding the x or y position which causes them to appear on the wrong screen.

to fix it on my end I have added:

if dir == "width" then
	pos = pos + workarea.x
elseif dir == "height" then
	pos = pos + workarea.y
end

just before you return the pos in the local function redflat.util.desktop.wposition .
I hope this helps.

Hello how can I install it on arch?

I wan to use you awesome-config themes. However it requires this library? How can I add it on arch so that it can be seen on lua require statement?

Borderless maximized windows

hi

I've changed behaviour to hide/unhide border on keystroke, but I have problems with awesome restart.
I don't know where to change when awesome starts, to remove border from maximized windows.

Could you help me with that?

"User Map" layout breaks on toggling maximized window

Peek 2019-08-18 18-24
You can see the size resets, that doesn't happen on "Right Tile" layout, for example, but worst of all is when you create a custom layout using Modkey+F2 such as two windows side by side and one at the bottom, it resets to a pretty terrible mess if you try to maximize the bottom window.

Modifying for HiDPI?

What should we change in the library so that it supports HiDPI monitors? For example, my dpi is twice as big as usual (192 instead of 96) . Last time I modified all the constants by multiplying it twice but is there more elegant method?

Task tooltip UX behavior for single clients

After using redflat for quite some time now and growing accustomed to its UI behavior, one thing started to bug me a bit: the tasklist tooltip has no button functions for single clients (non-grouped tasks).

The code in question:

if #c_group > 1 then

Seeing the conditional and the comment in the code, it's obvious you intentionally made it this way. That's why I refrained from simply changing this and putting up a PR. Instead I'd like to present my opinion on this, so maybe we can discuss the pros and cons of this.

From a UX point of view, the tooltip entries' behavior on grouped tasks suggest they can be left- and right-clicked to access the window-specific function such as raise or menu. Visually the tooltips for single (non-grouped) clients are identical to grouped ones but their behavior is not: they don't respond to clicks. Sure the tasklist button itself provides those functions instead for single clients, thus it isn't strictly required for the tooltip to do the same again.

However, from a UX point of view, visually and contextually identical elements should behave the same if possible, in my opinion. I often find myself erronously clicking a single client's tooltip just to be reminded I have to use the tasklist button in this special case instead because it is a single client.

I currently see no downside of using the full functionality (highlight, click actions) of tooltips for single clients as well. Am I overlooking something here? What's your opinion on this?

Qlaunch does not accept any input (mouse and keyboard)

The quick-app launcher does not accept any input but it worked okay 2 years ago. For example, mouse hovering over items, nor clicking the items via mouse buttons, nor keyboard up/down does not work, only Enter gets handled.

menu.add_size should be positive

When migrating from old version (2 years old) redflat to new one (latest available today) there are errors caused by invalid __newindex in the wibox in this line (redflat/menu.lua:594):

_menu.wibox.height = _menu.add_size

The issue is because we have set add_size to 0 before. I don't know exactly why this happens but setting it to any positive integer (>= 1.0) fixes the error. Probably, something has changed within lua or the wibox itself in newest packages (I am using archlinux so everything is the up-to-date).

Process names with spaces not correctly recognized by system.lua

Preface

Firefox is spawning a process called "Web Content". The output of /proc/<pid>/stat will be

<pid> (Web Content) S 11111 9175 9175 ...

Notice the space in the process name of the second field.

Issue

The regex used for splitting the proc output is not compatible with process names that have spaces in them. This leads to:

  • the name field is getting cut to just (Web
  • since the name is essentially split into two separate fields within the first regex ((Web and Content)) all elements in the table are shifted by 1
  • finally, there's an item in the result list that has:
    • name = nil
    • mem = <huge_number>

The item with no name an huge memory usage value will always be the first item in the memory listing due to top's sort_by_mem(). Since the name is nil, the name of the previous process is kept but is now assigned a completely wrong memory usage:

top_bug

Also I suspect the PID is still updated, so the "kill" button would actually kill the wrong process as well.

Proposed Fix

I presume the fix would be following:

I'm not good at regex, sadly. I could look into it but maybe you can come up with a solution way quicker? :)

The error popup is very small

The ercheck popup is VERY small, the error text simply can not be readable but it ought to be so. Personally, I have changed this popup height and width to be almost fullscreen because I could not read the error description to fix it.

I understand that this project is not made for others except you and so it is designed by you for you only, but it is interesting for me why you don't have such problems as me here, because they are seem happen for everyone :)

sysmon widget usage

sysmon.widget.mpd = redflat.widget.sysmon(
  { func = awful.spawn.easy_async_with_shell(GET_MPD_CMD, function(stdout, stderr, reason, exit_code)
      -- naughty.notify({ text = stdout })
      return { value = 0.5, text = stdout, alert = false}
    end)
  },
  { timeout = 10, widget = redflat.gauge.monitor.circle }
)

How I can use sysmon with custom function, which uses stdout of command?
GET_MPD_CMD is for example mpc status
I tried to use this but it don't work for me.

I have error in sysmon.lua +52 attempt to call number value.

Input blocked

When use combination for application switch, it pop-up, get keyboard focus and that`s all only killing wm solve problem. Same happens with app quick launcher.

Initial key registered twice by keychain

I'm currently wrapping up a major redesign and restructure work on my own config with the goal of making my personal redflat fork obsolete by either contributing the changes (as done recently) or migrating very specific adjustments into separate extensions.

I'm still carrying around one last hotfix that prevents me from dropping my redflat fork entirely:

--- a/float/keychain.lua
+++ b/float/keychain.lua
@@ -123,7 +123,7 @@ function keychain:init(style)
                if event == "press" then return false end
 
                -- dirty fix for first key release
-               if self.actkey == key and #mod == 0 then self.actkey = nil; return end
+               if self.actkey == key then self.actkey = nil; return end
 
                if awful.util.table.hasitem(self.service.close,    key) then self:hide()
                elseif awful.util.table.hasitem(self.service.stepback, key) then self:undo()

Essentially, when I don't use that adjustment as soon as I press the combination for the keychain - which is [Alt] + [c] for me (I use Mod1 as mod key) - the key [c] is oftentimes registered a second time. That makes the keychain display A-c c instead of A-c and requires me to press backspace once in order to clear the second [c] which is otherwise interpreted as the first character for the keychain. I can reproduce this on two entirely different machines.

Judging from the comment above the affected line of code, it seems the #mod == 0 check is there specifically for some key release handling. What was the reason behind this? I'm guessing that it behaves differently with Mod4 or your specific setup?

Minitray not drawing background

The minitray widget is not drawing the background and border, the tray's icons still display and can be interacted with. If compton shadows are enabled the outline of the box can be seen in the correct location and in the correct shape. In addition, if icons like nm-applet update the icon, the new icon is drawn on top of the older icons for nm-applet. If there are no tray icons then the background is drawn and will continue to draw until the tray is closed even if tray icons are added.

I am running arch and am currently fully updated. This issue did not occur at first. I attempted to pull down a new copy of your example redflat configs only changing rc.lua so that the colorless config was the only one uncommented. This did not resolve the issue.

Additionally, this issue does not seem to affect other awesome drawn things such as the tooltips or the menu that appears when you right click on an item in the task list.

A pic showing the minitray outlined by compton shadows.
minitray

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.