diff --git a/README.md b/README.md
index 0f58c30..4319cd4 100644
--- a/README.md
+++ b/README.md
@@ -4,3 +4,24 @@ To clone:
```
git clone https://github.com/adrielsand/awesome.git ~/.config/awesome
```
+
+| Function | Shortcut |
+|------------------------------------------:|----------------------:|
+| Show hotkeys | Super + F1 |
+| Search and open an app | Super + R |
+| Change workspaces | Super + 1-7 |
+| Move windows to a workspace | Super + Shift + 1-7 |
+| Switch to previous workspace | Super + Esc |
+| Switch windows | Super + Tab |
+| Switch windows (reverse) | Super + Shift + Tab |
+| Close a window | Super + Q |
+| Maximize a window | Super + F |
+| Change layout | Super + Space |
+| Change layout (reverse) | Super + Shift + Space |
+| Move window to next screen | Super + O |
+| Minimize all windows in current workspace | Super + D |
+| Open default app for current workspace | Super + T |
+| Open a browser | Super + B |
+| Open a file manager | Super + Shift + E |
+| Open an audio manager | Super + Shift + A |
+| Open an OBS window | Super + Shift + S |
diff --git a/battery-widget b/battery-widget
deleted file mode 160000
index 25b7e94..0000000
--- a/battery-widget
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 25b7e94a34ed854697d61e3cbb0a3ebd9745dbd4
diff --git a/configuration/tags/init.lua b/configuration/tags/init.lua
index 1044d93..42d605a 100644
--- a/configuration/tags/init.lua
+++ b/configuration/tags/init.lua
@@ -21,11 +21,11 @@ awful.layout.layouts = {
-- awful.layout.suit.tile.left,
-- awful.layout.suit.tile.bottom,
-- awful.layout.suit.tile.top,
---[[ awful.layout.suit.fair,
+ awful.layout.suit.fair,
-- awful.layout.suit.fair.horizontal,
-- awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
---]] awful.layout.suit.max,
+ awful.layout.suit.max,
-- awful.layout.suit.max.fullscreen,
-- awful.layout.suit.magnifier,
-- awful.layout.suit.corner.nw,
diff --git a/layout/left-panel/dashboard/quick-settings.lua b/layout/left-panel/dashboard/quick-settings.lua
index 4f7139f..e558d59 100644
--- a/layout/left-panel/dashboard/quick-settings.lua
+++ b/layout/left-panel/dashboard/quick-settings.lua
@@ -2,14 +2,6 @@ local wibox = require('wibox')
local mat_list_item = require('widget.material.list-item')
return wibox.widget {
- -- wibox.widget {
- -- wibox.widget {
- -- text = 'Quick settings',
- -- font = 'Roboto medium 12',
- -- widget = wibox.widget.textbox
- -- },
- -- widget = mat_list_item
- -- },
require('widget.volume.volume-slider'),
require('widget.brightness.brightness-slider'),
layout = wibox.layout.fixed.vertical
diff --git a/layout/top-bar.lua b/layout/top-bar.lua
index a28ebdd..06823e7 100644
--- a/layout/top-bar.lua
+++ b/layout/top-bar.lua
@@ -45,7 +45,6 @@ local TopBar = function(s, offset)
-- SYSTEM DETAILS
-- ==============
local volume_widget = require('widget.volume')
- local battery_widget = require('widget.battery')
local clock_widget = require('widget.clock')
local mem_widget = require('widget.memory')
local cpu_widget = require('widget.cpu')
@@ -54,8 +53,6 @@ local TopBar = function(s, offset)
local system_details = wibox.widget {
systray,
separator,
- --battery_widget,
- --separator,
wibox.widget{
wibox.widget{
text = 'mem',
diff --git a/module/dashboard.lua b/module/dashboard.lua
index c899ca9..df2762a 100644
--- a/module/dashboard.lua
+++ b/module/dashboard.lua
@@ -167,59 +167,6 @@ dashboard:buttons(gears.table.join( -- Middle click - Hide dashboard
awful.button({}, 2, function() dashboard_hide() end),
awful.button({}, 3, function() dashboard_hide() end)))
-local profile_picture = os.getenv("HOME") ..
- "/.face"
-
-local profile = wibox.widget {
- wibox.widget {
- {
- {
- {
- {
- image = profile_picture,
- resize = true,
- widget = wibox.widget.imagebox
- },
- resize = true,
- top = dpi(12),
- right = dpi(12),
- left = dpi(12),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = panel_style,
- widget = wibox.container.background
- },
- forced_width = dpi(244),
- forced_height = dpi(244),
- visible = true,
- bg = beautiful.bg_normal,
- shape = panel_style,
- widget = wibox.container.background
- },
- wibox.widget {
- {
- wibox.widget {
- text = '@' .. username,
- font = beautiful.font_large,
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- bottom = dpi(8),
- widget = wibox.container.margin
- },
- fg = beautiful.primary.hue_500,
- widget = wibox.container.background
- },
- layout = wibox.layout.fixed.vertical
- },
- visible = true,
- bg = beautiful.bg_normal,
- shape = panel_style,
- widget = wibox.container.background
-}
-
local power_options = wibox.widget {
{
poweroff,
@@ -230,7 +177,7 @@ local power_options = wibox.widget {
layout = wibox.layout.flex.horizontal
},
visible = true,
- bg = beautiful.primary.hue_900,
+ bg = beautiful.bg_normal,
shape = panel_style,
widget = wibox.container.background
}
@@ -242,19 +189,7 @@ local search_button = wibox.widget {
layout = wibox.layout.fixed.vertical
},
visible = true,
- bg = beautiful.primary.hue_200,
- shape = panel_style,
- widget = wibox.container.background
-}
-
-local close_button = wibox.widget {
- {
- close,
- bg = beautiful.primary.hue_600,
- layout = wibox.layout.fixed.vertical
- },
- visible = true,
- bg = beautiful.primary.hue_350,
+ bg = beautiful.bg_normal,
shape = panel_style,
widget = wibox.container.background
}
@@ -292,145 +227,6 @@ local hardware_monitor = wibox.widget {
widget = wibox.container.background
}
-local cal = require('widget.calendar')
-
---[[local calwidget = wibox.widget {
- {
- nil,
- {cal, margins = dpi(16), widget = wibox.container.margin},
- nil,
- layout = wibox.layout.flex.horizontal
- },
- resize = true,
- shape = panel_style,
- bg = beautiful.bg_normal,
- widget = wibox.container.background
-}]]
-
--- Fortune widget Credits: u/EmpressNoodle, github/elenapan
-local fortune_command = "fortune -n 140 -s"
-local fortune_update_interval = 3600
--- local fortune_command = "fortune -n 140 -s computers"
-local fortune = wibox.widget {
- font = "Roboto 11",
- text = "You so poor you don't even have a cookie yet...",
- widget = wibox.widget.textbox
-}
-
-local update_fortune = function()
- awful.spawn.easy_async_with_shell(fortune_command, function(out)
- -- Remove trailing whitespaces
- out = out:gsub('^%s*(.-)%s*$', '%1')
- fortune.markup = "" .. out .. ""
- end)
-end
-
-gears.timer {
- autostart = true,
- timeout = fortune_update_interval,
- single_shot = false,
- call_now = true,
- callback = update_fortune
-}
-
-local fortune_widget = wibox.widget {
- {
- {fortune, layout = wibox.layout.flex.horizontal},
- margins = dpi(16),
- widget = wibox.container.margin
- },
- bg = beautiful.primary.hue_700,
- fg = beautiful.primary.hue_900,
- shape = panel_style,
- forced_height = dpi(112),
- widget = wibox.container.background
-}
-
-local uptime_text = wibox.widget.textbox()
-uptime_text.font = "Roboto 10"
-uptime_text.valign = "center"
-awful.widget.watch("uptime -p | sed 's/^...//'", 60, function(_, stdout)
- local out = stdout:gsub('^%s*(.-)%s*up', '%1')
- uptime_text.text = out
-end)
-
-local uptime_widget = wibox.widget {
- {
- {
- {
- image = icons.uptime,
- resize = true,
- forced_width = dpi(24),
- widget = wibox.widget.imagebox
- },
- uptime_text,
- spacing = dpi(8),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- bg = beautiful.bg_normal,
- shape = panel_style,
- forced_height = dpi(48),
- forced_width = dpi(182),
- widget = wibox.container.background
-}
-
--- Bookmarks
-function reddit_command()
- dashboard_hide()
- awful.spawn(apps.default.browser .. " " .. "reddit.com")
-end
-
-function youtube_command()
- dashboard_hide()
- awful.spawn(apps.default.browser .. " " .. "youtube.com")
-end
-
-function linkedin_command()
- dashboard_hide()
- awful.spawn(apps.default.browser .. " " .. "linkedin.com")
-end
-
-function github_command()
- dashboard_hide()
- awful.spawn(apps.default.browser .. " " .. "github.com")
-end
-
-function deviantart_command()
- dashboard_hide()
- awful.spawn(apps.default.browser .. " " .. "deviantart.com")
-end
-
-function codeforces_command()
- dashboard_hide()
- awful.spawn(apps.default.browser .. " " .. "codeforces.com")
-end
-
-function files_command(directory)
- dashboard_hide()
- awful.spawn(apps.default.files .. " " .. directory)
-end
-
-local reddit = buildButton(icons.reddit, 'Reddit')
-reddit:connect_signal('button::release', function() reddit_command() end)
-
-local youtube = buildButton(icons.youtube, 'Youtube')
-youtube:connect_signal('button::release', function() youtube_command() end)
-
-local linkedin = buildButton(icons.linkedin, 'Linkedin')
-linkedin:connect_signal('button::release', function() linkedin_command() end)
-
-local github = buildButton(icons.github, 'Github')
-github:connect_signal('button::release', function() github_command() end)
-
-local deviantart = buildButton(icons.deviantart, 'Deviantart')
-deviantart:connect_signal('button::release', function() deviantart_command() end)
-
-local codeforces = buildButton(icons.codeforces, 'Codeforces')
-codeforces:connect_signal('button::release', function() codeforces_command() end)
-
local home = buildLabel('Home')
home:connect_signal('button::release', function() files_command(".") end)
@@ -453,23 +249,9 @@ local documents = buildLabel('Documents')
documents:connect_signal('button::release',
function() files_command("Documents") end)
-local bookmarks = wibox.widget {
- {
- {reddit, youtube, linkedin, layout = wibox.layout.flex.horizontal},
- {github, deviantart, codeforces, layout = wibox.layout.ratio.horizontal},
- layout = wibox.layout.fixed.vertical
- },
- visible = true,
- bg = beautiful.bg_normal,
- shape = panel_style,
- forced_width = dpi(182),
- widget = wibox.container.background
-}
-
local places = wibox.widget {
{
- {
- home,
+ { home,
desktop,
downloads,
pictures,
@@ -494,7 +276,6 @@ dashboard:setup{
{
{
search_button,
- close_button,
spacing = dpi(10),
layout = wibox.layout.fixed.vertical
},
@@ -503,15 +284,12 @@ dashboard:setup{
{
quick_settings,
hardware_monitor,
- fortune_widget,
forced_width = dpi(300),
spacing = dpi(10),
layout = wibox.layout.fixed.vertical
},
{
- bookmarks,
places,
- spacing = dpi(10),
layout = wibox.layout.fixed.vertical
},
spacing = dpi(10),
@@ -519,19 +297,12 @@ dashboard:setup{
},
{
power_options,
- uptime_widget,
spacing = dpi(10),
layout = wibox.layout.fixed.horizontal
},
spacing = dpi(10),
layout = wibox.layout.fixed.vertical
},
- {
- profile,
- calWidget,
- spacing = dpi(10),
- layout = wibox.layout.fixed.vertical
- },
spacing = dpi(10),
layout = wibox.layout.fixed.horizontal
},
diff --git a/theme/color-schemes.lua b/theme/color-schemes.lua
index 0ef2ab9..9b33480 100644
--- a/theme/color-schemes.lua
+++ b/theme/color-schemes.lua
@@ -47,7 +47,7 @@ return {
hue_800 = '#d6d6d6', -- light gray
}
},
- flat_remix_teal = {
+ default = {
primary = {
hue_100 = '#212121',
hue_200 = '#3c3c3c'
diff --git a/theme/icons/brave.svg b/theme/icons/brave.svg
deleted file mode 100644
index f4b0a6a..0000000
--- a/theme/icons/brave.svg
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
diff --git a/theme/icons/brightness-7.svg b/theme/icons/brightness-7.svg
index fe7aa9d..e97a4f5 100644
--- a/theme/icons/brightness-7.svg
+++ b/theme/icons/brightness-7.svg
@@ -1 +1,39 @@
-
\ No newline at end of file
+
+
diff --git a/theme/icons/close.svg b/theme/icons/close.svg
deleted file mode 100644
index 3f1f88c..0000000
--- a/theme/icons/close.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/code-braces.svg b/theme/icons/code-braces.svg
deleted file mode 100644
index 6adb566..0000000
--- a/theme/icons/code-braces.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/firefox.svg b/theme/icons/firefox.svg
deleted file mode 100644
index adfff2a..0000000
--- a/theme/icons/firefox.svg
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
diff --git a/theme/icons/flask.svg b/theme/icons/flask.svg
deleted file mode 100644
index dba8a2f..0000000
--- a/theme/icons/flask.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/folder.svg b/theme/icons/folder.svg
deleted file mode 100644
index 146c65b..0000000
--- a/theme/icons/folder.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/forum.svg b/theme/icons/forum.svg
deleted file mode 100644
index 08bd17e..0000000
--- a/theme/icons/forum.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/google-chrome.svg b/theme/icons/google-chrome.svg
deleted file mode 100644
index 6c68b70..0000000
--- a/theme/icons/google-chrome.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/google-controller.svg b/theme/icons/google-controller.svg
deleted file mode 100644
index 12c6869..0000000
--- a/theme/icons/google-controller.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/init.lua b/theme/icons/init.lua
index 9e27d0d..f66571d 100644
--- a/theme/icons/init.lua
+++ b/theme/icons/init.lua
@@ -1,18 +1,6 @@
local dir = os.getenv('HOME') .. '/.config/awesome/theme/icons'
return {
- --tags
- chrome = dir .. '/firefox.svg',
- code = dir .. '/code-braces.svg',
- social = dir .. '/forum.svg',
- folder = dir .. '/folder.svg',
- music = dir .. '/music.svg',
- game = dir .. '/google-controller.svg',
- lab = dir .. '/flask.svg',
- play = dir .. '/play.svg',
- --others
- menu = dir .. '/menu.svg',
- close = dir .. '/close.svg',
logout = dir .. '/logout.svg',
sleep = dir .. '/power-sleep.svg',
power = dir .. '/power.svg',
@@ -25,5 +13,4 @@ return {
memory = dir .. '/memory.svg',
harddisk = dir .. '/harddisk.svg',
thermometer = dir .. '/thermometer.svg',
- plus = dir .. '/plus.svg'
}
diff --git a/theme/icons/layouts/arrow-expand-all.png b/theme/icons/layouts/arrow-expand-all.png
deleted file mode 100644
index 2837ec1..0000000
Binary files a/theme/icons/layouts/arrow-expand-all.png and /dev/null differ
diff --git a/theme/icons/layouts/view-quilt.png b/theme/icons/layouts/view-quilt.png
deleted file mode 100644
index d2e8f5b..0000000
Binary files a/theme/icons/layouts/view-quilt.png and /dev/null differ
diff --git a/theme/icons/menu.svg b/theme/icons/menu.svg
deleted file mode 100644
index a6c9c25..0000000
--- a/theme/icons/menu.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/music.svg b/theme/icons/music.svg
deleted file mode 100644
index f9da5f0..0000000
--- a/theme/icons/music.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/play.svg b/theme/icons/play.svg
deleted file mode 100644
index 7e75510..0000000
--- a/theme/icons/play.svg
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
diff --git a/theme/icons/plus.svg b/theme/icons/plus.svg
deleted file mode 100644
index e3b6570..0000000
--- a/theme/icons/plus.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/ship-wheel.svg b/theme/icons/ship-wheel.svg
deleted file mode 100644
index dc4ed3e..0000000
--- a/theme/icons/ship-wheel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/theme/icons/tag-list/occupied.png b/theme/icons/tag-list/occupied.png
deleted file mode 100644
index e7ccbf0..0000000
Binary files a/theme/icons/tag-list/occupied.png and /dev/null differ
diff --git a/theme/icons/tag-list/panel.png b/theme/icons/tag-list/panel.png
deleted file mode 100644
index d7699ce..0000000
Binary files a/theme/icons/tag-list/panel.png and /dev/null differ
diff --git a/theme/icons/tag-list/selected.png b/theme/icons/tag-list/selected.png
deleted file mode 100644
index 897f960..0000000
Binary files a/theme/icons/tag-list/selected.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/close.png b/theme/icons/tag-list/tag/close.png
deleted file mode 100644
index fc93da0..0000000
Binary files a/theme/icons/tag-list/tag/close.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/code-braces.png b/theme/icons/tag-list/tag/code-braces.png
deleted file mode 100644
index c16729c..0000000
Binary files a/theme/icons/tag-list/tag/code-braces.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/flask.png b/theme/icons/tag-list/tag/flask.png
deleted file mode 100644
index da03025..0000000
Binary files a/theme/icons/tag-list/tag/flask.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/folder.png b/theme/icons/tag-list/tag/folder.png
deleted file mode 100644
index f9565ef..0000000
Binary files a/theme/icons/tag-list/tag/folder.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/forum.png b/theme/icons/tag-list/tag/forum.png
deleted file mode 100644
index d06a197..0000000
Binary files a/theme/icons/tag-list/tag/forum.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/google-chrome.png b/theme/icons/tag-list/tag/google-chrome.png
deleted file mode 100644
index 6f8f589..0000000
Binary files a/theme/icons/tag-list/tag/google-chrome.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/google-controller.png b/theme/icons/tag-list/tag/google-controller.png
deleted file mode 100644
index 3d37722..0000000
Binary files a/theme/icons/tag-list/tag/google-controller.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/home.png b/theme/icons/tag-list/tag/home.png
deleted file mode 100644
index d907479..0000000
Binary files a/theme/icons/tag-list/tag/home.png and /dev/null differ
diff --git a/theme/icons/tag-list/tag/music.png b/theme/icons/tag-list/tag/music.png
deleted file mode 100644
index d2ca843..0000000
Binary files a/theme/icons/tag-list/tag/music.png and /dev/null differ
diff --git a/theme/icons/tag-list/unselected.png b/theme/icons/tag-list/unselected.png
deleted file mode 100644
index 8e5563c..0000000
Binary files a/theme/icons/tag-list/unselected.png and /dev/null differ
diff --git a/theme/icons/tag-list/urgent.png b/theme/icons/tag-list/urgent.png
deleted file mode 100644
index d943de1..0000000
Binary files a/theme/icons/tag-list/urgent.png and /dev/null differ
diff --git a/theme/icons/volume-high.svg b/theme/icons/volume-high.svg
index 9bee38d..bbbf66b 100644
--- a/theme/icons/volume-high.svg
+++ b/theme/icons/volume-high.svg
@@ -1 +1,39 @@
-
\ No newline at end of file
+
+
diff --git a/theme/mat-colors.lua b/theme/mat-colors.lua
deleted file mode 100644
index 44748f6..0000000
--- a/theme/mat-colors.lua
+++ /dev/null
@@ -1,317 +0,0 @@
-return {
- -- Red
- red = {
- hue_50 = '#FFEBEE',
- hue_100 = '#FFCDD2',
- hue_200 = '#EF9A9A',
- hue_300 = '#E57373',
- hue_400 = '#EF5350',
- hue_500 = '#F44336',
- hue_600 = '#E53935',
- hue_700 = '#D32F2F',
- hue_800 = '#C62828',
- hue_900 = '#B71C1C',
- hue_A100 = '#FF8A80',
- hue_A200 = '#FF5252',
- hue_A400 = '#FF1744',
- hue_A700 = '#D50000'
- },
- -- Pink
- pink = {
- hue_50 = '#FCE4EC',
- hue_100 = '#F8BBD0',
- hue_200 = '#F48FB1',
- hue_300 = '#F06292',
- hue_400 = '#EC407A',
- hue_500 = '#E91E63',
- hue_600 = '#D81B60',
- hue_700 = '#C2185B',
- hue_800 = '#AD1457',
- hue_900 = '#880E4F',
- hue_A100 = '#FF80AB',
- hue_A200 = '#FF4081',
- hue_A400 = '#F50057',
- hue_A700 = '#C51162'
- },
- -- Purple
- purle = {
- hue_50 = '#F3E5F5',
- hue_100 = '#E1BEE7',
- hue_200 = '#CE93D8',
- hue_300 = '#BA68C8',
- hue_400 = '#AB47BC',
- hue_500 = '#9C27B0',
- hue_600 = '#8E24AA',
- hue_700 = '#7B1FA2',
- hue_800 = '#6A1B9A',
- hue_900 = '#4A148C',
- hue_A100 = '#EA80FC',
- hue_A200 = '#E040FB',
- hue_A400 = '#D500F9',
- hue_A700 = '#AA00FF'
- },
- -- Deep Purple
- hue_purple = {
- hue_50 = '#EDE7F6',
- hue_100 = '#D1C4E9',
- hue_200 = '#B39DDB',
- hue_300 = '#9575CD',
- hue_400 = '#7E57C2',
- hue_500 = '#673AB7',
- hue_600 = '#5E35B1',
- hue_700 = '#512DA8',
- hue_800 = '#4527A0',
- hue_900 = '#311B92',
- hue_A100 = '#B388FF',
- hue_A200 = '#7C4DFF',
- hue_A400 = '#651FFF',
- hue_A700 = '#6200EA'
- },
- -- Indigo
- indigo = {
- hue_50 = '#E8EAF6',
- hue_100 = '#C5CAE9',
- hue_200 = '#9FA8DA',
- hue_300 = '#7986CB',
- hue_400 = '#5C6BC0',
- hue_500 = '#3F51B5',
- hue_600 = '#3949AB',
- hue_700 = '#303F9F',
- hue_800 = '#283593',
- hue_900 = '#1A237E',
- hue_A100 = '#8C9EFF',
- hue_A200 = '#536DFE',
- hue_A400 = '#3D5AFE',
- hue_A700 = '#304FFE'
- },
- -- Blue
- blue = {
- hue_50 = '#E3F2FD',
- hue_100 = '#BBDEFB',
- hue_200 = '#90CAF9',
- hue_300 = '#64B5F6',
- hue_400 = '#42A5F5',
- hue_500 = '#2196F3',
- hue_600 = '#1E88E5',
- hue_700 = '#1976D2',
- hue_800 = '#1565C0',
- hue_900 = '#0D47A1',
- hue_A100 = '#82B1FF',
- hue_A200 = '#448AFF',
- hue_A400 = '#2979FF',
- hue_A700 = '#2962FF'
- },
- -- Light Blue
- hue_blue = {
- hue_50 = '#E1F5FE',
- hue_100 = '#B3E5FC',
- hue_200 = '#81D4FA',
- hue_300 = '#4FC3F7',
- hue_400 = '#29B6F6',
- hue_500 = '#03A9F4',
- hue_600 = '#039BE5',
- hue_700 = '#0288D1',
- hue_800 = '#0277BD',
- hue_900 = '#01579B',
- hue_A100 = '#80D8FF',
- hue_A200 = '#40C4FF',
- hue_A400 = '#00B0FF',
- hue_A700 = '#0091EA'
- },
- -- Cyan
- cyan = {
- hue_50 = '#E0F7FA',
- hue_100 = '#B2EBF2',
- hue_200 = '#80DEEA',
- hue_300 = '#4DD0E1',
- hue_400 = '#26C6DA',
- hue_500 = '#00BCD4',
- hue_600 = '#00ACC1',
- hue_700 = '#0097A7',
- hue_800 = '#00838F',
- hue_900 = '#006064',
- hue_A100 = '#84FFFF',
- hue_A200 = '#18FFFF',
- hue_A400 = '#00E5FF',
- hue_A700 = '#00B8D4'
- },
- -- Teal
- teal = {
- hue_50 = '#E0F2F1',
- hue_100 = '#B2DFDB',
- hue_200 = '#80CBC4',
- hue_300 = '#4DB6AC',
- hue_400 = '#26A69A',
- hue_500 = '#009688',
- hue_600 = '#00897B',
- hue_700 = '#00796B',
- hue_800 = '#00695C',
- hue_900 = '#004D40',
- hue_A100 = '#A7FFEB',
- hue_A200 = '#64FFDA',
- hue_A400 = '#1DE9B6',
- hue_A700 = '#00BFA5'
- },
- -- Green
- green = {
- hue_50 = '#E8F5E9',
- hue_100 = '#C8E6C9',
- hue_200 = '#A5D6A7',
- hue_300 = '#81C784',
- hue_400 = '#66BB6A',
- hue_500 = '#4CAF50',
- hue_600 = '#43A047',
- hue_700 = '#388E3C',
- hue_800 = '#2E7D32',
- hue_900 = '#1B5E20',
- hue_A100 = '#B9F6CA',
- hue_A200 = '#69F0AE',
- hue_A400 = '#00E676',
- hue_A700 = '#00C853'
- },
- -- Light Green
- hue_green = {
- hue_50 = '#F1F8E9',
- hue_100 = '#DCEDC8',
- hue_200 = '#C5E1A5',
- hue_300 = '#AED581',
- hue_400 = '#9CCC65',
- hue_500 = '#8BC34A',
- hue_600 = '#7CB342',
- hue_700 = '#689F38',
- hue_800 = '#558B2F',
- hue_900 = '#33691E',
- hue_A100 = '#CCFF90',
- hue_A200 = '#B2FF59',
- hue_A400 = '#76FF03',
- hue_A700 = '#64DD17'
- },
- -- Lime
- lime = {
- hue_50 = '#F9FBE7',
- hue_100 = '#F0F4C3',
- hue_200 = '#E6EE9C',
- hue_300 = '#DCE775',
- hue_400 = '#D4E157',
- hue_500 = '#CDDC39',
- hue_600 = '#C0CA33',
- hue_700 = '#AFB42B',
- hue_800 = '#9E9D24',
- hue_900 = '#827717',
- hue_A100 = '#F4FF81',
- hue_A200 = '#EEFF41',
- hue_A400 = '#C6FF00',
- hue_A700 = '#AEEA00'
- },
- -- Yellow
- yellow = {
- hue_50 = '#FFFDE7',
- hue_100 = '#FFF9C4',
- hue_200 = '#FFF59D',
- hue_300 = '#FFF176',
- hue_400 = '#FFEE58',
- hue_500 = '#FFEB3B',
- hue_600 = '#FDD835',
- hue_700 = '#FBC02D',
- hue_800 = '#F9A825',
- hue_900 = '#F57F17',
- hue_A100 = '#FFFF8D',
- hue_A200 = '#FFFF00',
- hue_A400 = '#FFEA00',
- hue_A700 = '#FFD600'
- },
- -- Amber
- amber = {
- hue_50 = '#FFF8E1',
- hue_100 = '#FFECB3',
- hue_200 = '#FFE082',
- hue_300 = '#FFD54F',
- hue_400 = '#FFCA28',
- hue_500 = '#FFC107',
- hue_600 = '#FFB300',
- hue_700 = '#FFA000',
- hue_800 = '#FF8F00',
- hue_900 = '#FF6F00',
- hue_A100 = '#FFE57F',
- hue_A200 = '#FFD740',
- hue_A400 = '#FFC400',
- hue_A700 = '#FFAB00'
- },
- -- Orange
- orange = {
- hue_50 = '#FFF3E0',
- hue_100 = '#FFE0B2',
- hue_200 = '#FFCC80',
- hue_300 = '#FFB74D',
- hue_400 = '#FFA726',
- hue_500 = '#FF9800',
- hue_600 = '#FB8C00',
- hue_700 = '#F57C00',
- hue_800 = '#EF6C00',
- hue_900 = '#E65100',
- hue_A100 = '#FFD180',
- hue_A200 = '#FFAB40',
- hue_A400 = '#FF9100',
- hue_A700 = '#FF6D00'
- },
- -- Deep Orange
- deep_orange = {
- hue_50 = '#FBE9E7',
- hue_100 = '#FFCCBC',
- hue_200 = '#FFAB91',
- hue_300 = '#FF8A65',
- hue_400 = '#FF7043',
- hue_500 = '#FF5722',
- hue_600 = '#F4511E',
- hue_700 = '#E64A19',
- hue_800 = '#D84315',
- hue_900 = '#BF360C',
- hue_A100 = '#FF9E80',
- hue_A200 = '#FF6E40',
- hue_A400 = '#FF3D00',
- hue_A700 = '#DD2C00'
- },
- -- Brown
- brown = {
- hue_50 = '#EFEBE9',
- hue_100 = '#D7CCC8',
- hue_200 = '#BCAAA4',
- hue_300 = '#A1887F',
- hue_400 = '#8D6E63',
- hue_500 = '#795548',
- hue_600 = '#6D4C41',
- hue_700 = '#5D4037',
- hue_800 = '#4E342E',
- hue_900 = '#3E2723'
- },
- -- Grey
- grey = {
- hue_50 = '#FAFAFA',
- hue_100 = '#F5F5F5',
- hue_200 = '#EEEEEE',
- hue_300 = '#E0E0E0',
- hue_400 = '#BDBDBD',
- hue_500 = '#9E9E9E',
- hue_600 = '#757575',
- hue_700 = '#616161',
- hue_800 = '#424242',
- hue_900 = '#212121'
- },
- -- Blue Grey
- blue_grey = {
- hue_50 = '#ECEFF1',
- hue_100 = '#CFD8DC',
- hue_200 = '#B0BEC5',
- hue_300 = '#90A4AE',
- hue_400 = '#78909C',
- hue_500 = '#607D8B',
- hue_600 = '#546E7A',
- hue_700 = '#455A64',
- hue_800 = '#37474F',
- hue_900 = '#263238'
- },
- -- Black
- black = '#000000',
- -- White
- white = '#FFFFFF'
-}
diff --git a/theme/theme.lua b/theme/theme.lua
index cfeb50c..22bcb78 100644
--- a/theme/theme.lua
+++ b/theme/theme.lua
@@ -6,18 +6,16 @@ local dpi = require('beautiful').xresources.apply_dpi
local theme = {}
-- Color Scheme
-theme.primary = color_schemes.flat_remix_teal.primary
-theme.accent = color_schemes.flat_remix_teal.accent
+theme.primary = color_schemes.default.primary
+theme.accent = color_schemes.default.accent
local awesome_overrides = function(theme)
theme.dir = os.getenv('HOME') .. '/.config/awesome/theme'
theme.icons = theme.dir .. '/.config/awesome/theme/icons/'
- theme.font = 'Google Sans Regular 9' -- Glyphs don't work properly with this (#442)
- --theme.font = 'Robotomono nerd font 9' -- Glyphs don't work properly with this (#442)
+ theme.font = 'Google Sans Regular 9'
theme.font_large = 'Google Sans Regular 11'
- theme.icon_font = 'Google Sans Medium 10' -- Fira mono patched version
- --theme.icon_font = 'firamono nerd font 11' -- Fira mono patched version
+ theme.icon_font = 'Google Sans Medium 10'
-- Layout icons
theme.layout_txt_tile = "|til|"
diff --git a/widget/battery-d.lua b/widget/battery-d.lua
deleted file mode 100644
index c45505d..0000000
--- a/widget/battery-d.lua
+++ /dev/null
@@ -1,124 +0,0 @@
--------------------------------------------------
--- Battery Widget for Awesome Window Manager
--- Shows the battery status using the ACPI tool
--- More details could be found here:
--- https://github.com/streetturtle/awesome-wm-widgets/tree/master/battery-widget
--- @author Pavel Makhov
--- @copyright 2017 Pavel Makhov
--------------------------------------------------
-local awful = require('awful')
-local watch = require('awful.widget.watch')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = require('beautiful').xresources.apply_dpi
-
--- acpi sample outputs
--- Battery 0: Discharging, 75%, 01:51:38 remaining
--- Battery 0: Charging, 53%, 00:57:43 until charged
-
-local percentage = wibox.widget.textbox()
-local battery_icon = wibox.widget.textbox()
-battery_icon.font = beautiful.icon_font
-
-local battery_popup = awful.tooltip({
- objects = {percentage},
- mode = 'outside',
- align = 'left',
- preferred_positions = {'right', 'left', 'top', 'bottom'}
-})
-
-watch('acpi -i', 10, function(_, stdout)
- local battery_info = {}
- local capacities = {}
- for s in stdout:gmatch('[^\r\n]+') do
- local status, charge_str, time = string.match(s, '.+: (%a+), (%d?%d?%d)%%,?.*')
- if status ~= nil then
- table.insert(battery_info, {
- status = status,
- charge = tonumber(charge_str)
- })
- else
- local cap_str = string.match(s, '.+:.+last full capacity (%d+)')
- table.insert(capacities, tonumber(cap_str))
- end
- end
-
- local capacity = 0
- for _, cap in ipairs(capacities) do
- capacity = capacity + cap
- end
-
- local charge = 0
- local status
- for i, batt in ipairs(battery_info) do
- if batt.charge >= charge then
- status = batt.status -- use most charged battery status
- -- this is arbitrary, and maybe another metric should be used
- end
-
- charge = charge + batt.charge * capacities[i]
- end
- charge = charge / capacity
-
- battery_popup.text = string.gsub(stdout, '\n$', '')
- percentage.text = math.floor(charge)
-
- if status == 'Charging' then
- battery_icon.text = ''
- if math.floor(charge) <= 20 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 30 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 40 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 60 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 80 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 90 then
- --battery_icon.text = ''
- battery_icon.text = '90'
- elseif math.floor(charge) <= 100 then
- --battery_icon.text = ''
- battery_icon.text = '90'
- end
- elseif status == 'Full' then
- battery_icon.text = ''
- else
- if math.floor(charge) <= 10 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 20 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 30 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 40 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 50 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 60 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 60 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 80 then
- battery_icon.text = ''
- elseif math.floor(charge) <= 90 then
- battery_icon.text = ''
- battery_icon.text = '90'
- elseif math.floor(charge) <= 100 then
- battery_icon.text = ''
- battery_icon.text = '90'
- end
- end
- collectgarbage('collect')
-end)
-
-return wibox.widget {
- wibox.widget{
- battery_icon,
- fg = beautiful.accent.hue_300,
- widget = wibox.container.background
- },
- percentage,
- spacing = dpi(2),
- layout = wibox.layout.fixed.horizontal
-}
diff --git a/widget/battery/init.lua b/widget/battery/init.lua
deleted file mode 100644
index 0cf1db9..0000000
--- a/widget/battery/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local awful = require("awful")
-local wibox = require('wibox')
-local mat_list_item = require('widget.material.list-item')
-local dpi = require('beautiful').xresources.apply_dpi
-local watch = require('awful.widget.watch')
-local beautiful = require('beautiful')
-
-local battery_icon = wibox.widget.textbox()
-battery_icon.font = beautiful.icon_font
-local battery_widget = wibox.widget.textbox()
-battery_widget.align = 'center'
-battery_widget.valign = 'center'
-battery_widget.font = beautiful.font
-
-local battery
-
-function update_battery()
- awful.spawn.easy_async_with_shell("pamixer --get-volume", function(stdout)
- battery = stdout
- --battery = string.match(stdout, '(%d?%d?%d)%%')
- awful.spawn.easy_async_with_shell("bash -c 'pacmd list-sinks | awk '/muted/ { print $2 }''", function(muted)
- --muted = string.gsub(muted, "%s+", "")
- muted = 'no'
- if muted == 'muted:no' and (battery > '50' or battery == '100') then
- battery_icon.text = '墳'
- elseif muted == 'muted:no' and battery <= '50' and battery > '0' then
- battery_icon.text = '奔'
- elseif muted == 'muted:yes' then
- battery_icon.text = '婢'
- elseif battery == '0' then
- battery_icon.text = '奄'
- end
- battery_widget.text = battery
- end)
- collectgarbage('collect')
- end)
-end
-
-watch('bash -c', 3, function(_, stdout)
- update_battery()
-end)
-
-return wibox.widget {
- wibox.widget{
- battery_icon,
- fg = beautiful.accent.hue_100,
- widget = wibox.container.background
- },
- battery_widget,
- spacing = dpi(2),
- layout = wibox.layout.fixed.horizontal
-}
diff --git a/widget/battery2.lua b/widget/battery2.lua
deleted file mode 100644
index 81770e9..0000000
--- a/widget/battery2.lua
+++ /dev/null
@@ -1,191 +0,0 @@
--------------------------------------------------
--- Battery Widget for Awesome Window Manager
--- Shows the battery status using the ACPI tool
--- More details could be found here:
--- https://github.com/streetturtle/awesome-wm-widgets/tree/master/battery-widget
-
--- @author Pavel Makhov
--- @copyright 2017 Pavel Makhov
--------------------------------------------------
-
-local awful = require("awful")
-local naughty = require("naughty")
-local watch = require("awful.widget.watch")
-local wibox = require("wibox")
-local gfs = require("gears.filesystem")
-local dpi = require('beautiful').xresources.apply_dpi
-
--- acpi sample outputs
--- Battery 0: Discharging, 75%, 01:51:38 remaining
--- Battery 0: Charging, 53%, 00:57:43 until charged
-
-local HOME = os.getenv("HOME")
-
-local battery_widget = {}
-local function worker(args)
- local args = args or {}
-
- local bat_num = '1'
- local font = args.font or 'Play 8'
- local path_to_icons = args.path_to_icons or "/usr/share/icons/Arc/status/symbolic/"
- local show_current_level = args.show_current_level or false
- local margin_left = args.margin_left or 0
- local margin_right = args.margin_right or 0
-
- local display_notification = args.display_notification or false
- local position = args.notification_position or "top_right"
- local timeout = args.timeout or 10
-
- local warning_msg_title = args.warning_msg_title or 'Huston, we have a problem'
- local warning_msg_text = args.warning_msg_text or 'Battery is dying'
- local warning_msg_position = args.warning_msg_position or 'bottom_right'
- local warning_msg_icon = args.warning_msg_icon or HOME .. '/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg'
- local enable_battery_warning = args.enable_battery_warning
- if enable_battery_warning == nil then
- enable_battery_warning = true
- end
-
- local bat_expr = 'Battery ' .. bat_num
- if not gfs.dir_readable(path_to_icons) then
- naughty.notify{
- title = "Battery Widget",
- text = "Folder with icons doesn't exist: " .. path_to_icons,
- preset = naughty.config.presets.critical
- }
- end
-
- local icon_widget = wibox.widget {
- {
- id = "icon",
- widget = wibox.widget.imagebox,
- resize = false
- },
- layout = wibox.container.margin(_, 0, 0, 3)
- }
- local level_widget = wibox.widget {
- font = font,
- widget = wibox.widget.textbox
- }
-
- battery_widget = wibox.widget {
- icon_widget,
- level_widget,
- layout = wibox.layout.fixed.horizontal,
- }
- -- Popup with battery info
- -- One way of creating a pop-up notification - naughty.notify
- local notification
- local function show_battery_status(batteryType)
- awful.spawn.easy_async('bash -c "acpi | grep \'' .. bat_expr .. '\'"',
- function(stdout, _, _, _)
- naughty.destroy(notification)
- notification = naughty.notify{
- text = stdout,
- title = "Battery status",
- icon = path_to_icons .. batteryType .. ".svg",
- icon_size = dpi(16),
- position = position,
- timeout = 5, hover_timeout = 0.5,
- width = 200,
- screen = mouse.screen
- }
- end
- )
- end
-
- -- Alternative to naughty.notify - tooltip. You can compare both and choose the preferred one
- --battery_popup = awful.tooltip({objects = {battery_widget}})
-
- -- To use colors from beautiful theme put
- -- following lines in rc.lua before require("battery"):
- -- beautiful.tooltip_fg = beautiful.fg_normal
- -- beautiful.tooltip_bg = beautiful.bg_normal
-
- local function show_battery_warning()
- naughty.notify {
- icon = warning_msg_icon,
- icon_size = 100,
- text = warning_msg_text,
- title = warning_msg_title,
- timeout = 25, -- show the warning for a longer time
- hover_timeout = 0.5,
- position = warning_msg_position,
- bg = "#F06060",
- fg = "#EEE9EF",
- width = 300,
- screen = mouse.screen
- }
- end
- local last_battery_check = os.time()
- local batteryType = "battery-good-symbolic"
-
- watch('bash -c "acpi -i | grep \'' .. bat_expr .. '\'"', timeout,
- function(widget, stdout, stderr, exitreason, exitcode)
- local battery_info = {}
- local capacities = {}
- for s in stdout:gmatch("[^\r\n]+") do
- local status, charge_str, time = string.match(s, '.+: (%a+), (%d?%d?%d)%%,?(.*)')
- if status ~= nil then
- table.insert(battery_info, {status = status, charge = tonumber(charge_str)})
- else
- local cap_str = string.match(s, '.+:.+last full capacity (%d+)')
- table.insert(capacities, tonumber(cap_str))
- end
- end
-
- local capacity = 0
- for i, cap in ipairs(capacities) do
- capacity = capacity + cap
- end
-
- local charge = 0
- local status
- for i, batt in ipairs(battery_info) do
- if batt.charge >= charge then
- status = batt.status -- use most charged battery status
- -- this is arbitrary, and maybe another metric should be used
- end
-
- charge = charge + batt.charge * capacities[i]
- end
- charge = charge / capacity
-
- if show_current_level then
- level_widget.text = string.format('%d%%', charge)
- end
-
- if (charge >= 0 and charge < 15) then
- batteryType = "battery-empty%s-symbolic"
- if enable_battery_warning and status ~= 'Charging' and os.difftime(os.time(), last_battery_check) > 300 then
- -- if 5 minutes have elapsed since the last warning
- last_battery_check = os.time()
-
- show_battery_warning()
- end
- elseif (charge >= 15 and charge < 40) then batteryType = "battery-caution%s-symbolic"
- elseif (charge >= 40 and charge < 60) then batteryType = "battery-low%s-symbolic"
- elseif (charge >= 60 and charge < 80) then batteryType = "battery-good%s-symbolic"
- elseif (charge >= 80 and charge <= 100) then batteryType = "battery-full%s-symbolic"
- end
-
- if status == 'Charging' then
- batteryType = string.format(batteryType, '-charging')
- else
- batteryType = string.format(batteryType, '')
- end
-
- widget.icon:set_image(path_to_icons .. batteryType .. ".svg")
-
- -- Update popup text
- -- battery_popup.text = string.gsub(stdout, "\n$", "")
- end,
- icon_widget)
-
- if display_notification then
- battery_widget:connect_signal("mouse::enter", function() show_battery_status(batteryType) end)
- battery_widget:connect_signal("mouse::leave", function() naughty.destroy(notification) end)
- end
- return wibox.container.margin(battery_widget, margin_left, margin_right)
-end
-
-return setmetatable(battery_widget, { __call = function(_, ...) return worker(...) end })
\ No newline at end of file
diff --git a/widget/calendar-widget/README.md b/widget/calendar-widget/README.md
deleted file mode 100644
index c30fef6..0000000
--- a/widget/calendar-widget/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# Calendar Widget
-
-Calendar widget for Awesome WM - slightly improved version of the `wibox.widget.calendar`.
-
-## Features
-
- - mouse support: scroll up - shows next month, scroll down - previous
- - themes:
-
- | Name | Screenshot |
- |---|---|
- |nord (default) |  |
- | outrun |  |
- | light |  |
- | dark |  |
-
- - setup widget placement
-
- top center - in case you clock is centered:
-
- 
-
- top right - for default awesome config:
-
- 
-
- bottom right - in case your wibar at the bottom:
-
- 
-
-
-## How to use
-
-This widget needs an 'anchor' - another widget which triggers visibility of the calendar. Default `mytextclock` is the perfect candidate!
-Just after mytextclock is instantiated, create the widget and add the mouse listener to it.
-
-```lua
-local calendar_widget = require("awesome-wm-widgets.calendar-widget.calendar")
--- ...
--- Create a textclock widget
-mytextclock = wibox.widget.textclock()
--- default
-local cw = calendar_widget()
--- or customized
-local cw = calendar_widget({
- theme = 'outrun',
- placement = 'bottom_right'
-})
-mytextclock:connect_signal("button::press",
- function(_, _, _, button)
- if button == 1 then cw.toggle() end
- end)
-```
diff --git a/widget/calendar-widget/calendar.lua b/widget/calendar-widget/calendar.lua
deleted file mode 100644
index e15d094..0000000
--- a/widget/calendar-widget/calendar.lua
+++ /dev/null
@@ -1,235 +0,0 @@
--------------------------------------------------
--- Calendar Widget for Awesome Window Manager
--- Shows the current month and supports scroll up/down to switch month
--- More details could be found here:
--- https://github.com/streetturtle/awesome-wm-widgets/tree/master/calendar-widget
-
--- @author Pavel Makhov
--- @copyright 2019 Pavel Makhov
--------------------------------------------------
-
-local awful = require("awful")
-local beautiful = require("beautiful")
-local wibox = require("wibox")
-local gears = require("gears")
-local naughty = require("naughty")
-
-local calendar_widget = {}
-
-local function worker(args)
-
- local calendar_themes = {
- nord = {
- bg = '#2E3440',
- fg = '#D8DEE9',
- focus_date_bg = '#88C0D0',
- focus_date_fg = '#000000',
- weekend_day_bg = '#3B4252',
- weekday_fg = '#88C0D0',
- header_fg = '#E5E9F0',
- border = '#4C566A'
- },
- outrun = {
- bg = '#0d0221',
- fg = '#D8DEE9',
- focus_date_bg = '#650d89',
- focus_date_fg = '#2de6e2',
- weekend_day_bg = '#261447',
- weekday_fg = '#2de6e2',
- header_fg = '#f6019d',
- border = '#261447'
- },
- dark = {
- bg = '#000000',
- fg = '#ffffff',
- focus_date_bg = '#ffffff',
- focus_date_fg = '#000000',
- weekend_day_bg = '#444444',
- weekday_fg = '#ffffff',
- header_fg = '#ffffff',
- border = '#333333'
- },
- light = {
- bg = '#ffffff',
- fg = '#000000',
- focus_date_bg = '#000000',
- focus_date_fg = '#ffffff',
- weekend_day_bg = '#AAAAAA',
- weekday_fg = '#000000',
- header_fg = '#000000',
- border = '#CCCCCC'
- },
- monokai = {
- bg = '#272822',
- fg = '#F8F8F2',
- focus_date_bg = '#AE81FF',
- focus_date_fg = '#ffffff',
- weekend_day_bg = '#75715E',
- weekday_fg = '#FD971F',
- header_fg = '#F92672',
- border = '#75715E'
- }
- }
-
- local args = args or {}
-
- if args.theme ~= nil and calendar_themes[args.theme] == nil then
- naughty.notify({
- preset = naughty.config.presets.critical,
- title = 'Calendar Widget',
- text = 'Theme "' .. args.theme .. '" not found, fallback to default'})
- args.theme = 'nord'
- end
-
- local theme = args.theme or 'nord'
- local placement = args.placement or 'top'
-
-
- local styles = {}
- local function rounded_shape(size)
- return function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, size)
- end
- end
-
- styles.month = {
- padding = 4,
- bg_color = calendar_themes[theme].bg,
- border_width = 0,
- }
-
- styles.normal = {
- markup = function(t) return t end,
- shape = rounded_shape(4)
- }
-
- styles.focus = {
- fg_color = calendar_themes[theme].focus_date_fg,
- bg_color = calendar_themes[theme].focus_date_bg,
- markup = function(t) return '' .. t .. '' end,
- shape = rounded_shape(4)
- }
-
- styles.header = {
- fg_color = calendar_themes[theme].header_fg,
- bg_color = calendar_themes[theme].bg,
- markup = function(t) return '' .. t .. '' end
- }
-
- styles.weekday = {
- fg_color = calendar_themes[theme].weekday_fg,
- bg_color = calendar_themes[theme].bg,
- markup = function(t) return '' .. t .. '' end,
- }
-
- local function decorate_cell(widget, flag, date)
- if flag == 'monthheader' and not styles.monthheader then
- flag = 'header'
- end
-
- -- highlight only today's day
- if flag == 'focus' then
- local today = os.date('*t')
- if today.month ~= date.month then
- flag = 'normal'
- end
- end
-
- local props = styles[flag] or {}
- if props.markup and widget.get_text and widget.set_markup then
- widget:set_markup(props.markup(widget:get_text()))
- end
- -- Change bg color for weekends
- local d = { year = date.year, month = (date.month or 1), day = (date.day or 1) }
- local weekday = tonumber(os.date('%w', os.time(d)))
- local default_bg = (weekday == 0 or weekday == 6) and calendar_themes[theme].weekend_day_bg or calendar_themes[theme].bg
- local ret = wibox.widget {
- {
- {
- widget,
- halign = 'center',
- widget = wibox.container.place
- },
- margins = (props.padding or 2) + (props.border_width or 0),
- widget = wibox.container.margin
- },
- shape = props.shape,
- shape_border_color = props.border_color or '#000000',
- shape_border_width = props.border_width or 0,
- fg = props.fg_color or calendar_themes[theme].fg,
- bg = props.bg_color or default_bg,
- widget = wibox.container.background
- }
-
- return ret
- end
-
- local cal = wibox.widget {
- date = os.date('*t'),
- font = beautiful.get_font(),
- fn_embed = decorate_cell,
- long_weekdays = true,
- widget = wibox.widget.calendar.month
- }
-
- local popup = awful.popup {
- ontop = true,
- visible = false,
- shape = gears.shape.rounded_rect,
- offset = { y = 5 },
- border_width = 1,
- border_color = calendar_themes[theme].border,
- widget = cal
- }
-
- popup:buttons(
- awful.util.table.join(
- awful.button({}, 4, function()
- local a = cal:get_date()
- a.month = a.month + 1
- cal:set_date(nil)
- cal:set_date(a)
- popup:set_widget(cal)
- end),
- awful.button({}, 5, function()
- local a = cal:get_date()
- a.month = a.month - 1
- cal:set_date(nil)
- cal:set_date(a)
- popup:set_widget(cal)
- end)
- )
- )
-
- function calendar_widget.toggle()
-
- if popup.visible then
- -- to faster render the calendar refresh it and just hide
- cal:set_date(nil) -- the new date is not set without removing the old one
- cal:set_date(os.date('*t'))
- popup:set_widget(nil) -- just in case
- popup:set_widget(cal)
- popup.visible = not popup.visible
- else
- if placement == 'top' then
- awful.placement.top(popup, { margins = { top = 30 }, parent = awful.screen.focused() })
- elseif placement == 'top_right' then
- awful.placement.top_right(popup, { margins = { top = 30, right = 10}, parent = awful.screen.focused() })
- elseif placement == 'bottom_right' then
- awful.placement.bottom_right(popup, { margins = { bottom = 30, right = 10}, parent = awful.screen.focused() })
- else
- awful.placement.top(popup, { margins = { top = 30 }, parent = awful.screen.focused() })
- end
-
- popup.visible = true
-
- end
- end
-
- return calendar_widget
-
-end
-
-return setmetatable(calendar_widget, { __call = function(_, ...)
- return worker(...)
-end })
diff --git a/widget/calendar-widget/calendar_bottom_right.png b/widget/calendar-widget/calendar_bottom_right.png
deleted file mode 100644
index 2bc2e82..0000000
Binary files a/widget/calendar-widget/calendar_bottom_right.png and /dev/null differ
diff --git a/widget/calendar-widget/calendar_top.png b/widget/calendar-widget/calendar_top.png
deleted file mode 100644
index 3e6b66b..0000000
Binary files a/widget/calendar-widget/calendar_top.png and /dev/null differ
diff --git a/widget/calendar-widget/calendar_top_right.png b/widget/calendar-widget/calendar_top_right.png
deleted file mode 100644
index 4a29022..0000000
Binary files a/widget/calendar-widget/calendar_top_right.png and /dev/null differ
diff --git a/widget/calendar-widget/dark.png b/widget/calendar-widget/dark.png
deleted file mode 100644
index 540289f..0000000
Binary files a/widget/calendar-widget/dark.png and /dev/null differ
diff --git a/widget/calendar-widget/light.png b/widget/calendar-widget/light.png
deleted file mode 100644
index ab675d1..0000000
Binary files a/widget/calendar-widget/light.png and /dev/null differ
diff --git a/widget/calendar-widget/nord.png b/widget/calendar-widget/nord.png
deleted file mode 100644
index 94f9f7e..0000000
Binary files a/widget/calendar-widget/nord.png and /dev/null differ
diff --git a/widget/calendar-widget/outrun.png b/widget/calendar-widget/outrun.png
deleted file mode 100644
index d59c123..0000000
Binary files a/widget/calendar-widget/outrun.png and /dev/null differ
diff --git a/widget/calendar/init.lua b/widget/calendar/init.lua
deleted file mode 100644
index 6c85a43..0000000
--- a/widget/calendar/init.lua
+++ /dev/null
@@ -1,70 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local icons = require('theme.icons')
-local clickable_container = require('widget.material.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local styles = {}
-local function rounded_shape(size, partial)
- if partial then
- return function(cr, width, height)
- gears.shape.rectangle(cr, width + 5, height, 11)
- end
- else
- return function(cr, width, height)
- gears.shape.rectangle(cr, width, height, size)
- end
- end
-end
-styles.month = {padding = 5, bg_color = '#555555', shape = rounded_shape(10)}
-styles.normal = {shape = rounded_shape(5)}
-styles.focus = {
- fg_color = beautiful.primary.hue_400, -- Current day Color
- markup = function(t) return '' .. t .. '' end,
- shape = rounded_shape(5, true)
-}
-styles.header = {
- fg_color = beautiful.primary.hue_200, -- Month Name Color
- markup = function(t) return '' .. t .. '' end,
- shape = rounded_shape(10)
-}
-styles.weekday = {
- fg_color = beautiful.background.hue_50, -- Day Color
- markup = function(t) return '' .. t .. '' end,
- shape = rounded_shape(5)
-}
-local function decorate_cell(widget, flag, date)
- if flag == 'monthheader' and not styles.monthheader then flag = 'header' end
- local props = styles[flag] or {}
- if props.markup and widget.get_text and widget.set_markup then
- widget:set_markup(props.markup(widget:get_text()))
- end
- local d = {
- year = date.year,
- month = (date.month or 1),
- day = (date.day or 1)
- }
- local weekday = tonumber(os.date('%w', os.time(d)))
- local ret = wibox.widget {
- {
- widget,
- margins = (props.padding or 2) + (props.border_width or 0),
- widget = wibox.container.margin
- },
- fg = props.fg_color or '#999999',
- widget = wibox.container.background
- }
- return ret
-end
-
-local cal = wibox.widget {
- date = os.date('*t'),
- font = 'Roboto 10',
- fn_embed = decorate_cell,
- start_sunday = true,
- widget = wibox.widget.calendar.month
-}
-
-return cal
diff --git a/widget/material/slider.lua b/widget/material/slider.lua
index 9dfe756..3375daf 100644
--- a/widget/material/slider.lua
+++ b/widget/material/slider.lua
@@ -8,7 +8,7 @@ local dpi = require('beautiful').xresources.apply_dpi
local wibox = require('wibox')
local gears = require('gears')
local beautiful = require('beautiful')
-local mat_colors = require('theme.mat-colors')
+local mat_colors = require('theme.color-schemes')
-- Local declarations
local mat_slider = {
diff --git a/widget/weather.lua b/widget/weather.lua
deleted file mode 100644
index 715c974..0000000
--- a/widget/weather.lua
+++ /dev/null
@@ -1,560 +0,0 @@
--------------------------------------------------
--- Weather Widget based on the OpenWeatherMap
--- https://openweathermap.org/
---
--- @author Pavel Makhov
--- @copyright 2020 Pavel Makhov
--------------------------------------------------
-local awful = require("awful")
-local watch = require("awful.widget.watch")
-local json = require("json")
-local naughty = require("naughty")
-local wibox = require("wibox")
-local gears = require("gears")
-local beautiful = require("beautiful")
-
-local HOME_DIR = os.getenv("HOME")
-local WIDGET_DIR = HOME_DIR .. '/.config/awesome/awesome-wm-widgets/weather-widget'
-local GET_FORECAST_CMD = [[bash -c "curl -s --show-error -X GET '%s'"]]
-
-local function show_warning(message)
- naughty.notify {
- preset = naughty.config.presets.critical,
- title = 'Weather Widget',
- text = message
- }
-end
-
-local weather_widget = {}
-local warning_shown = false
-local tooltip = awful.tooltip {
- mode = 'outside',
- preferred_positions = {'bottom'}
-}
-
-local weather_popup = awful.popup {
- ontop = true,
- visible = false,
- shape = gears.shape.rounded_rect,
- border_width = 1,
- border_color = beautiful.bg_focus,
- maximum_width = 400,
- offset = {y = 5},
- widget = {}
-}
-
---- Maps openWeatherMap icon name to file name w/o extension
-local icon_map = {
- ["01d"] = "clear-sky",
- ["02d"] = "few-clouds",
- ["03d"] = "scattered-clouds",
- ["04d"] = "broken-clouds",
- ["09d"] = "shower-rain",
- ["10d"] = "rain",
- ["11d"] = "thunderstorm",
- ["13d"] = "snow",
- ["50d"] = "mist",
- ["01n"] = "clear-sky-night",
- ["02n"] = "few-clouds-night",
- ["03n"] = "scattered-clouds-night",
- ["04n"] = "broken-clouds-night",
- ["09n"] = "shower-rain-night",
- ["10n"] = "rain-night",
- ["11n"] = "thunderstorm-night",
- ["13n"] = "snow-night",
- ["50n"] = "mist-night"
-}
-
---- Return wind direction as a string
-local function to_direction(degrees)
- -- Ref: https://www.campbellsci.eu/blog/convert-wind-directions
- if degrees == nil then return "Unknown dir" end
- local directions = {
- "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW",
- "WSW", "W", "WNW", "NW", "NNW", "N"
- }
- return directions[math.floor((degrees % 360) / 22.5) + 1]
-end
-
---- Convert degrees Celsius to Fahrenheit
-local function celsius_to_fahrenheit(c) return c * 9 / 5 + 32 end
-
--- Convert degrees Fahrenheit to Celsius
-local function fahrenheit_to_celsius(f) return (f - 32) * 5 / 9 end
-
-local function gen_temperature_str(temp, fmt_str, show_other_units, units)
- local temp_str = string.format(fmt_str, temp)
- local s = temp_str .. '°' .. (units == 'metric' and 'C' or 'F')
-
- if (show_other_units) then
- local temp_conv, units_conv
- if (units == 'metric') then
- temp_conv = celsius_to_fahrenheit(temp)
- units_conv = 'F'
- else
- temp_conv = fahrenheit_to_celsius(temp)
- units_conv = 'C'
- end
-
- local temp_conv_str = string.format(fmt_str, temp_conv)
- s = s .. ' ' .. '(' .. temp_conv_str .. '°' .. units_conv .. ')'
- end
- return s
-end
-
-local function uvi_index_color(uvi)
- local color
- if uvi >= 0 and uvi < 3 then color = '#A3BE8C'
- elseif uvi >= 3 and uvi < 6 then color = '#EBCB8B'
- elseif uvi >= 6 and uvi < 8 then color = '#D08770'
- elseif uvi >= 8 and uvi < 11 then color = '#BF616A'
- elseif uvi >= 11 then color = '#B48EAD'
- end
-
- return '' .. uvi .. ''
-end
-
-local function worker(user_args)
-
- local args = user_args or {}
-
- --- Validate required parameters
- if args.coordinates == nil or args.api_key == nil then
- show_warning('Required parameters are not set: ' ..
- (args.coordinates == nil and 'coordinates' or '') ..
- (args.api_key == nil and ', api_key ' or ''))
- return
- end
-
- local coordinates = args.coordinates
- local api_key = args.api_key
- local font_name = args.font_name or beautiful.font:gsub("%s%d+$", "")
- local units = args.units or 'metric'
- local time_format_12h = args.time_format_12h
- local both_units_widget = args.both_units_widget or false
- local show_hourly_forecast = args.show_hourly_forecast
- local show_daily_forecast = args.show_daily_forecast
- local icon_pack_name = args.icons or 'weather-underground-icons'
- local icons_extension = args.icons_extension or '.png'
- local timeout = args.timeout or 120
-
- local ICONS_DIR = WIDGET_DIR .. '/icons/' .. icon_pack_name .. '/'
- local owm_one_cal_api =
- ('https://api.openweathermap.org/data/2.5/onecall' ..
- '?lat=' .. coordinates[1] .. '&lon=' .. coordinates[2] .. '&appid=' .. api_key ..
- '&units=' .. units .. '&exclude=minutely' ..
- (show_hourly_forecast == false and ',hourly' or '') ..
- (show_daily_forecast == false and ',daily' or ''))
-
- weather_widget = wibox.widget {
- {
- {
- {
- {
- id = 'icon',
- resize = true,
- widget = wibox.widget.imagebox
- },
- valign = 'center',
- widget = wibox.container.place,
- },
- {
- id = 'txt',
- widget = wibox.widget.textbox
- },
- layout = wibox.layout.fixed.horizontal,
- },
- margins = 4,
- layout = wibox.container.margin
- },
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, 4)
- end,
- widget = wibox.container.background,
- set_image = function(self, path)
- self:get_children_by_id('icon')[1].image = path
- end,
- set_text = function(self, text)
- self:get_children_by_id('txt')[1].text = text
- end,
- is_ok = function(self, is_ok)
- if is_ok then
- self:get_children_by_id('icon')[1]:set_opacity(1)
- self:get_children_by_id('icon')[1]:emit_signal('widget:redraw_needed')
- else
- self:get_children_by_id('icon')[1]:set_opacity(0.2)
- self:get_children_by_id('icon')[1]:emit_signal('widget:redraw_needed')
- end
- end
- }
-
- local current_weather_widget = wibox.widget {
- {
- {
- {
- id = 'icon',
- resize = true,
- forced_width = 128,
- forced_height = 128,
- widget = wibox.widget.imagebox
- },
- align = 'center',
- widget = wibox.container.place
- },
- {
- id = 'description',
- font = font_name .. ' 10',
- align = 'center',
- widget = wibox.widget.textbox
- },
- forced_width = 128,
- layout = wibox.layout.align.vertical
- },
- {
- {
- {
- id = 'temp',
- font = font_name .. ' 36',
- widget = wibox.widget.textbox
- },
- {
- id = 'feels_like_temp',
- align = 'center',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- },
- layout = wibox.layout.fixed.vertical
- },
- {
- {
- id = 'wind',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- },
- {
- id = 'humidity',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- },
- {
- id = 'uv',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- },
- expand = 'inside',
- layout = wibox.layout.align.vertical
- },
- spacing = 16,
- forced_width = 150,
- layout = wibox.layout.fixed.vertical
- },
- forced_width = 300,
- layout = wibox.layout.flex.horizontal,
- update = function(self, weather)
- self:get_children_by_id('icon')[1]:set_image(
- ICONS_DIR .. icon_map[weather.weather[1].icon] .. icons_extension)
- self:get_children_by_id('temp')[1]:set_text(gen_temperature_str(weather.temp, '%.0f', false, units))
- self:get_children_by_id('feels_like_temp')[1]:set_text(
- 'Feels like ' .. gen_temperature_str(weather.feels_like, '%.0f', false, units))
- self:get_children_by_id('description')[1]:set_text(weather.weather[1].description)
- self:get_children_by_id('wind')[1]:set_markup(
- 'Wind: ' .. weather.wind_speed .. 'm/s (' .. to_direction(weather.wind_deg) .. ')')
- self:get_children_by_id('humidity')[1]:set_markup('Humidity: ' .. weather.humidity .. '%')
- self:get_children_by_id('uv')[1]:set_markup('UV: ' .. uvi_index_color(weather.uvi))
- end
- }
-
-
- local daily_forecast_widget = {
- forced_width = 300,
- layout = wibox.layout.flex.horizontal,
- update = function(self, forecast, timezone_offset)
- local count = #self
- for i = 0, count do self[i]=nil end
- for i, day in ipairs(forecast) do
- if i > 5 then break end
- local day_forecast = wibox.widget {
- {
- text = os.date('%a', tonumber(day.dt) + tonumber(timezone_offset)),
- align = 'center',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- },
- {
- {
- {
- image = ICONS_DIR .. icon_map[day.weather[1].icon] .. icons_extension,
- resize = true,
- forced_width = 48,
- forced_height = 48,
- widget = wibox.widget.imagebox
- },
- align = 'center',
- layout = wibox.container.place
- },
- {
- text = day.weather[1].description,
- font = font_name .. ' 8',
- align = 'center',
- forced_height = 50,
- widget = wibox.widget.textbox
- },
- layout = wibox.layout.fixed.vertical
- },
- {
- {
- text = gen_temperature_str(day.temp.day, '%.0f', false, units),
- align = 'center',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- },
- {
- text = gen_temperature_str(day.temp.night, '%.0f', false, units),
- align = 'center',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- },
- layout = wibox.layout.fixed.vertical
- },
- spacing = 8,
- layout = wibox.layout.fixed.vertical
- }
- table.insert(self, day_forecast)
- end
- end
- }
-
- local hourly_forecast_graph = wibox.widget {
- step_width = 12,
- color = '#EBCB8B',
- background_color = beautiful.bg_normal,
- forced_height = 100,
- forced_width = 300,
- widget = wibox.widget.graph,
- set_max_value = function(self, new_max_value)
- self.max_value = new_max_value
- end,
- set_min_value = function(self, new_min_value)
- self.min_value = new_min_value
- end
- }
- local hourly_forecast_negative_graph = wibox.widget {
- step_width = 12,
- color = '#5E81AC',
- background_color = beautiful.bg_normal,
- forced_height = 100,
- forced_width = 300,
- widget = wibox.widget.graph,
- set_max_value = function(self, new_max_value)
- self.max_value = new_max_value
- end,
- set_min_value = function(self, new_min_value)
- self.min_value = new_min_value
- end
- }
-
- local hourly_forecast_widget = {
- layout = wibox.layout.fixed.vertical,
- update = function(self, hourly)
- local hours_below = {
- id = 'hours',
- forced_width = 300,
- layout = wibox.layout.flex.horizontal
- }
- local temp_below = {
- id = 'temp',
- forced_width = 300,
- layout = wibox.layout.flex.horizontal
- }
-
- local max_temp = -1000
- local min_temp = 1000
- local values = {}
- for i, hour in ipairs(hourly) do
- if i > 25 then break end
- values[i] = hour.temp
- if max_temp < hour.temp then max_temp = hour.temp end
- if min_temp > hour.temp then min_temp = hour.temp end
- if (i - 1) % 5 == 0 then
- table.insert(hours_below, wibox.widget {
- text = os.date(time_format_12h and '%I%p' or '%H:00', tonumber(hour.dt)),
- align = 'center',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- })
- table.insert(temp_below, wibox.widget {
- markup = ''
- .. string.format('%.0f', hour.temp) .. '°' .. '',
- align = 'center',
- font = font_name .. ' 9',
- widget = wibox.widget.textbox
- })
- end
- end
-
- hourly_forecast_graph:set_max_value(math.max(max_temp, math.abs(min_temp)))
- hourly_forecast_graph:set_min_value(min_temp > 0 and min_temp * 0.7 or 0) -- move graph a bit up
-
- hourly_forecast_negative_graph:set_max_value(math.abs(min_temp))
- hourly_forecast_negative_graph:set_min_value(max_temp < 0 and math.abs(max_temp) * 0.7 or 0)
-
- for _, value in ipairs(values) do
- if value >= 0 then
- hourly_forecast_graph:add_value(value)
- hourly_forecast_negative_graph:add_value(0)
- else
- hourly_forecast_graph:add_value(0)
- hourly_forecast_negative_graph:add_value(math.abs(value))
- end
- end
-
- local count = #self
- for i = 0, count do self[i]=nil end
-
- -- all temperatures are positive
- if min_temp > 0 then
- table.insert(self, wibox.widget{
- {
- hourly_forecast_graph,
- reflection = {horizontal = true},
- widget = wibox.container.mirror
- },
- {
- temp_below,
- valign = 'bottom',
- widget = wibox.container.place
- },
- id = 'graph',
- layout = wibox.layout.stack
- })
- table.insert(self, hours_below)
-
- -- all temperatures are negative
- elseif max_temp < 0 then
- table.insert(self, hours_below)
- table.insert(self, wibox.widget{
- {
- hourly_forecast_negative_graph,
- reflection = {horizontal = true, vertical = true},
- widget = wibox.container.mirror
- },
- {
- temp_below,
- valign = 'top',
- widget = wibox.container.place
- },
- id = 'graph',
- layout = wibox.layout.stack
- })
-
- -- there are both negative and positive temperatures
- else
- table.insert(self, wibox.widget{
- {
- hourly_forecast_graph,
- reflection = {horizontal = true},
- widget = wibox.container.mirror
- },
- {
- temp_below,
- valign = 'bottom',
- widget = wibox.container.place
- },
- id = 'graph',
- layout = wibox.layout.stack
- })
- table.insert(self, wibox.widget{
- {
- hourly_forecast_negative_graph,
- reflection = {horizontal = true, vertical = true},
- widget = wibox.container.mirror
- },
- {
- hours_below,
- valign = 'top',
- widget = wibox.container.place
- },
- id = 'graph',
- layout = wibox.layout.stack
- })
- end
- end
- }
-
- local function update_widget(widget, stdout, stderr)
- if stderr ~= '' then
- if not warning_shown then
- if (stderr ~= 'curl: (52) Empty reply from server'
- and stderr ~= 'curl: (28) Failed to connect to api.openweathermap.org port 443: Connection timed out'
- and stderr:find('^curl: %(18%) transfer closed with %d+ bytes remaining to read$') ~= nil
- ) then
- show_warning(stderr)
- end
- warning_shown = true
- widget:is_ok(false)
- tooltip:add_to_object(widget)
-
- widget:connect_signal('mouse::enter', function() tooltip.text = stderr end)
- end
- return
- end
-
- warning_shown = false
- tooltip:remove_from_object(widget)
- widget:is_ok(true)
-
- local result = json.decode(stdout)
-
- widget:set_image(ICONS_DIR .. icon_map[result.current.weather[1].icon] .. icons_extension)
- widget:set_text(gen_temperature_str(result.current.temp, '%.0f', both_units_widget, units))
-
- current_weather_widget:update(result.current)
-
- local final_widget = {
- current_weather_widget,
- spacing = 16,
- layout = wibox.layout.fixed.vertical
- }
-
- if show_hourly_forecast then
- hourly_forecast_widget:update(result.hourly)
- table.insert(final_widget, hourly_forecast_widget)
- end
-
- if show_daily_forecast then
- daily_forecast_widget:update(result.daily, result.timezone_offset)
- table.insert(final_widget, daily_forecast_widget)
- end
-
- weather_popup:setup({
- {
- final_widget,
- margins = 10,
- widget = wibox.container.margin
- },
- bg = beautiful.bg_normal,
- widget = wibox.container.background
- })
- end
-
- weather_widget:buttons(gears.table.join(awful.button({}, 1, function()
- if weather_popup.visible then
- weather_widget:set_bg('#00000000')
- weather_popup.visible = not weather_popup.visible
- else
- weather_widget:set_bg(beautiful.bg_focus)
- weather_popup:move_next_to(mouse.current_widget_geometry)
- end
- end)))
-
- watch(
- string.format(GET_FORECAST_CMD, owm_one_cal_api),
- timeout, -- API limit is 1k req/day; day has 1440 min; every 2 min is good
- update_widget, weather_widget
- )
-
- return weather_widget
-end
-
-return setmetatable(weather_widget, {__call = function(_, ...) return worker(...) end})