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 @@ - - - - - - - - image/svg+xml - - - - - - - - - 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 @@ - - - - - - image/svg+xml - - - - - - - - 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 @@ - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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) | ![nord_theme](./nord.png) | - | outrun | ![outrun_theme](./outrun.png) | - | light | ![outrun_theme](./light.png) | - | dark | ![outrun_theme](./dark.png) | - - - setup widget placement - - top center - in case you clock is centered: - - ![calendar_top](./calendar_top.png) - - top right - for default awesome config: - - ![calendar_top_right](./calendar_top_right.png) - - bottom right - in case your wibar at the bottom: - - ![calendar_bottom_right](./calendar_bottom_right.png) - - -## 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})