fix applauncher for duoscreen
This commit is contained in:
18
.vscode/settings.json
vendored
Normal file
18
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"Lua.diagnostics.disable": [
|
||||||
|
"undefined-field",
|
||||||
|
"undefined-doc-name",
|
||||||
|
"deprecated"
|
||||||
|
],
|
||||||
|
"Lua.diagnostics.globals": [
|
||||||
|
"awesome",
|
||||||
|
"mouse",
|
||||||
|
"mousegrabber",
|
||||||
|
"client",
|
||||||
|
"screen",
|
||||||
|
"selection",
|
||||||
|
"tag",
|
||||||
|
"root",
|
||||||
|
"vim"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
local setmetatable = setmetatable
|
|
||||||
local pairs = pairs
|
|
||||||
local ipairs = ipairs
|
local ipairs = ipairs
|
||||||
local table = table
|
|
||||||
local math = math
|
local math = math
|
||||||
|
local pairs = pairs
|
||||||
|
local setmetatable = setmetatable
|
||||||
|
local table = table
|
||||||
|
|
||||||
--Awesome Libs
|
--Awesome Libs
|
||||||
local abutton = require('awful.button')
|
local abutton = require('awful.button')
|
||||||
@@ -11,9 +11,10 @@ local apopup = require('awful.popup')
|
|||||||
local aspawn = require('awful.spawn')
|
local aspawn = require('awful.spawn')
|
||||||
local atooltip = require('awful.tooltip')
|
local atooltip = require('awful.tooltip')
|
||||||
local beautiful = require('beautiful')
|
local beautiful = require('beautiful')
|
||||||
local dpi = require('beautiful').xresources.apply_dpi
|
local dpi = beautiful.xresources.apply_dpi
|
||||||
local gcolor = require('gears.color')
|
local gcolor = require('gears.color')
|
||||||
local gfilesystem = require('gears.filesystem')
|
local gfilesystem = require('gears.filesystem')
|
||||||
|
local gshape = require('gears.shape')
|
||||||
local gtable = require('gears.table')
|
local gtable = require('gears.table')
|
||||||
local wibox = require('wibox')
|
local wibox = require('wibox')
|
||||||
|
|
||||||
|
|||||||
@@ -43,8 +43,6 @@ local launcher = gobject {}
|
|||||||
--- and generates a wibox widget for each application, containing the application's icon, name and launch command.
|
--- and generates a wibox widget for each application, containing the application's icon, name and launch command.
|
||||||
--- The generated wibox widget also includes a context menu that allows the user to launch,
|
--- The generated wibox widget also includes a context menu that allows the user to launch,
|
||||||
--- add to desktop, or pin the application to the dock.
|
--- add to desktop, or pin the application to the dock.
|
||||||
--- @param self The launcher table.
|
|
||||||
---
|
|
||||||
function launcher:fetch_apps()
|
function launcher:fetch_apps()
|
||||||
for _, app in ipairs(Gio.AppInfo.get_all()) do
|
for _, app in ipairs(Gio.AppInfo.get_all()) do
|
||||||
local app_id = app:get_id()
|
local app_id = app:get_id()
|
||||||
@@ -344,7 +342,7 @@ end
|
|||||||
local instance = nil
|
local instance = nil
|
||||||
if not instance then
|
if not instance then
|
||||||
instance = setmetatable(launcher, {
|
instance = setmetatable(launcher, {
|
||||||
__call = function(self, screen)
|
__call = function(self)
|
||||||
self.app_table = {}
|
self.app_table = {}
|
||||||
self.cursor = {
|
self.cursor = {
|
||||||
x = 1,
|
x = 1,
|
||||||
@@ -531,7 +529,6 @@ if not instance then
|
|||||||
ontop = true,
|
ontop = true,
|
||||||
visible = true,
|
visible = true,
|
||||||
stretch = false,
|
stretch = false,
|
||||||
screen = screen,
|
|
||||||
placement = aplacement.centered,
|
placement = aplacement.centered,
|
||||||
bg = beautiful.colorscheme.bg,
|
bg = beautiful.colorscheme.bg,
|
||||||
border_color = beautiful.colorscheme.border_color,
|
border_color = beautiful.colorscheme.border_color,
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ if not instance then
|
|||||||
end
|
end
|
||||||
require('src.modules.notification-center') { screen = s }
|
require('src.modules.notification-center') { screen = s }
|
||||||
require('src.modules.window_switcher')(s)
|
require('src.modules.window_switcher')(s)
|
||||||
require('src.modules.app_launcher')(s)
|
|
||||||
end)
|
end)
|
||||||
|
require('src.modules.app_launcher')()
|
||||||
require('src.modules.powermenu')()
|
require('src.modules.powermenu')()
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,90 +0,0 @@
|
|||||||
local assert = assert
|
|
||||||
local error = error
|
|
||||||
local io = io
|
|
||||||
local pairs = pairs
|
|
||||||
|
|
||||||
-- Awesome libs
|
|
||||||
local aspawn = require('awful.spawn')
|
|
||||||
local gfilesystem = require('gears.filesystem')
|
|
||||||
local gobject = require('gears.object')
|
|
||||||
local gtable = require('gears.table')
|
|
||||||
|
|
||||||
-- Third party libs
|
|
||||||
local json = require('src.lib.json-lua.json-lua')
|
|
||||||
|
|
||||||
local config = {}
|
|
||||||
|
|
||||||
---Takes a file path and puts the content into the callback
|
|
||||||
---@param path string file path, caller has to make sure it exists
|
|
||||||
---@return string|nil file_content
|
|
||||||
config.read = function(path)
|
|
||||||
local handler = io.open(path, 'r')
|
|
||||||
if not handler then error('Invalid path') return end
|
|
||||||
|
|
||||||
local content = handler:read('*all')
|
|
||||||
handler:close()
|
|
||||||
return content
|
|
||||||
end
|
|
||||||
|
|
||||||
---Writes a string to a file
|
|
||||||
---@param path string file path, caller has to make sure it exists
|
|
||||||
---@param content string content to write
|
|
||||||
config.write = function(path, content)
|
|
||||||
local handler = io.open(path, 'w')
|
|
||||||
if not handler then error('Invalid path') return end
|
|
||||||
|
|
||||||
handler:write(content)
|
|
||||||
handler:close()
|
|
||||||
end
|
|
||||||
|
|
||||||
config.read_json = function(path)
|
|
||||||
local handler = io.open(path, 'r')
|
|
||||||
if not handler then error('Invalid path') return end
|
|
||||||
|
|
||||||
local content = handler:read('*all')
|
|
||||||
handler:close()
|
|
||||||
|
|
||||||
local json_content = json:decode(content) or {}
|
|
||||||
assert(type(json_content) == 'table', 'json is not a table')
|
|
||||||
return json_content
|
|
||||||
end
|
|
||||||
|
|
||||||
config.write_json = function(path, content)
|
|
||||||
local json_content = json:encode(content)
|
|
||||||
assert(type(json_content) == 'string', 'json is not a string')
|
|
||||||
|
|
||||||
local handler = io.open(path, 'w')
|
|
||||||
if not handler then error('Invalid path') return end
|
|
||||||
|
|
||||||
handler:write(json_content)
|
|
||||||
handler:close()
|
|
||||||
end
|
|
||||||
|
|
||||||
local instance = nil
|
|
||||||
if not instance then
|
|
||||||
instance = setmetatable(config, {
|
|
||||||
__call = function()
|
|
||||||
local ret = gobject {}
|
|
||||||
|
|
||||||
gtable.crush(ret, config, true)
|
|
||||||
|
|
||||||
-- Create config files if they don't exist
|
|
||||||
for _, file in pairs { 'floating.json', 'dock.json', 'desktop.json', 'applications.json' } do
|
|
||||||
if not gfilesystem.file_readable(gfilesystem.get_configuration_dir() .. 'src/config/' .. file) then
|
|
||||||
aspawn('touch ' .. gfilesystem.get_configuration_dir() .. 'src/config/' .. file)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Create config directories if they don't exist
|
|
||||||
for _, dir in pairs { 'files/desktop/icons' } do
|
|
||||||
if not gfilesystem.dir_readable(gfilesystem.get_configuration_dir() .. 'src/config/' .. dir) then
|
|
||||||
gfilesystem.make_directories(gfilesystem.get_configuration_dir() .. 'src/config/' .. dir)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return ret
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
return instance
|
|
||||||
Reference in New Issue
Block a user