├── .github ├── CODEOWNERS ├── FUNDING.yml └── workflows │ ├── build.yml │ └── update-site.yml ├── .gitignore ├── .luacheckrc ├── CODEOWNERS ├── LICENSE ├── README.md ├── Screenshot from 2019-03-01 14-28-18.png ├── apt-widget ├── README.md ├── apt-widget.lua ├── icons │ ├── black.svg │ ├── help-circle.svg │ ├── orange.svg │ ├── refresh-cw.svg │ ├── watch.svg │ ├── white-black.svg │ └── white-orange.svg └── screenshots │ └── screenshot.gif ├── awesome-o.png ├── awesome.png ├── battery-widget ├── README.md ├── bat-wid-1.png ├── bat-wid-2.png ├── bat-wid-22.png ├── bat-wid-3.png ├── battery.lua └── spaceman.jpg ├── batteryarc-widget ├── 10_c.png ├── 10_d.png ├── 20_c.png ├── 20_d.png ├── 80_c.png ├── 80_d.png ├── README.md ├── batteryarc.lua ├── spaceman.jpg └── warning.png ├── bitbucket-widget ├── README.md ├── bitbucket-icon-gradient-blue.svg ├── bitbucket.lua ├── check.svg ├── clipboard.svg ├── copy.svg ├── git-pull-request.svg ├── message-circle.svg ├── test_bitbucket_api.sh └── user.svg ├── bluelight-widget ├── README.md ├── day.png ├── init.lua ├── moon.svg ├── night.png ├── sun.svg └── with_wrapper.png ├── brightness-widget ├── README.md ├── br-wid-1.png ├── brightness.lua └── brightness.svg ├── calendar-widget ├── README.md ├── calendar.lua ├── calendar_bottom_right.png ├── calendar_start_sunday.png ├── calendar_top.png ├── calendar_top_right.png ├── dark.png ├── light.png ├── nord.png └── outrun.png ├── cmus-widget ├── README.md ├── cmus.lua └── screenshots │ └── cmus-widget.png ├── cpu-widget ├── README.md ├── cpu-widget.lua ├── cpu.gif ├── cpu.png ├── custom.png └── window-close-symbolic.svg ├── docker-widget ├── README.md ├── docker.gif ├── docker.lua └── icons │ ├── docker.svg │ ├── pause-btn.svg │ ├── pause.svg │ ├── play-btn.svg │ ├── play-btn.svg- │ ├── play.svg │ ├── square.svg │ ├── stop-btn.svg │ ├── trash-btn.svg │ └── unpause-btn.svg ├── email-widget ├── .env.example ├── .gitignore ├── README.md ├── count_unread_emails.py ├── em-wid-1.png ├── em-wid-2.png ├── email.lua ├── read_unread_emails.py └── requirements.txt ├── experiments └── spotify-player │ ├── README.md │ ├── spotify-indicator.svg │ ├── spotify-player.lua │ └── spotify-player.png ├── fs-widget ├── README.md ├── fs-widget.lua └── screenshot.png ├── gerrit-widget ├── README.md ├── gerrit.lua ├── gerrit_icon.svg ├── gerrit_widget.png ├── new_review.png └── popup.png ├── github-activity-widget ├── README.md ├── github-activity-widget.lua ├── icons │ ├── alert-circle.svg │ ├── git-branch.svg │ ├── git-pull-request.svg │ ├── github.png │ ├── message-square.svg │ ├── repo.svg │ └── star.svg └── screenshot.png ├── github-contributions-widget ├── README.md ├── github-contributions-widget.lua ├── screenshots │ ├── Thomashighbaugh.png │ ├── classic.png │ ├── dracula.png │ ├── leftpad.png │ ├── pink.png │ ├── screenshot.jpg │ ├── screenshot1.jpg │ ├── screenshot2.jpg │ ├── standard.png │ └── teal.png └── themes.lua ├── github-prs-widget ├── README.md ├── icons │ ├── book.svg │ ├── calendar.svg │ ├── git-pull-request.svg │ ├── message-square.svg │ └── user.svg ├── init.lua └── screenshots │ └── screenshot1.png ├── gitlab-widget ├── README.md ├── gitlab.lua ├── icons │ ├── check.svg │ ├── gitlab-icon.svg │ └── message-circle.svg └── screenshot.png ├── jira-widget ├── README.md ├── icon │ └── jira-mark-gradient-blue.svg ├── jira.lua └── screenshot │ └── screenshot.png ├── logout-menu-widget ├── README.md ├── icons │ ├── lock.svg │ ├── log-out.svg │ ├── moon.svg │ ├── power.svg │ ├── power_w.svg │ └── refresh-cw.svg ├── logout-menu.gif └── logout-menu.lua ├── logout-popup-widget ├── README.md ├── logout-dark.png ├── logout-dracula.png ├── logout-nord.png ├── logout-outrun.png ├── logout-popup.lua ├── power.svg ├── screenshot.gif └── screenshot.png ├── mpdarc-widget ├── README.md └── mpdarc.lua ├── mpris-widget ├── README.md └── init.lua ├── net-speed-widget ├── README.md ├── icons │ ├── down.svg │ └── up.svg └── net-speed.lua ├── pacman-widget ├── README.md ├── icons │ ├── pacman-full.svg │ ├── pacman.svg │ └── upgrade.svg ├── pacman.lua ├── screenshots │ └── pacman.gif └── upgrade ├── pactl-widget ├── README.md ├── pactl.lua ├── utils.lua └── volume.lua ├── pomodoroarc-widget ├── README.md └── pomodoroarc.lua ├── ram-widget ├── README.md ├── out.gif └── ram-widget.lua ├── run-shell-2 ├── run-shell-2.lua └── run.lua ├── run-shell-3 ├── README.md ├── blur.png ├── pixelate.png └── run-shell.lua ├── run-shell ├── README.md ├── out.mp4 └── run-shell.lua ├── screenshot.png ├── screenshot_with_sprtrs.png ├── scripts └── update_site.sh ├── spotify-shell ├── README.md ├── demo.gif └── spotify-shell.lua ├── spotify-widget ├── README.md ├── spo-wid-1.png ├── spotify-widget-custom-paused.png ├── spotify-widget-custom-playing.png └── spotify.lua ├── stackoverflow-widget ├── README.md ├── screenshot.png ├── so-icon.svg └── stackoverflow.lua ├── todo-widget ├── README.md ├── checkbox-checked-symbolic.svg ├── chevron-down.svg ├── chevron-up.svg ├── list-add-symbolic.svg ├── todo.gif ├── todo.lua └── window-close-symbolic.svg ├── translate-widget ├── README.MD ├── demo.gif ├── demo1.gif ├── gnome-translate.svg └── translate.lua ├── volume-widget ├── README.md ├── icons │ ├── audio-volume-high-symbolic.svg │ ├── audio-volume-low-symbolic.svg │ ├── audio-volume-medium-symbolic.svg │ └── audio-volume-muted-symbolic.svg ├── screenshots │ ├── variations.png │ └── volume-sink-sources.png ├── utils.lua ├── volume-2.svg ├── volume.lua └── widgets │ ├── arc-widget.lua │ ├── horizontal-bar-widget.lua │ ├── icon-and-text-widget.lua │ ├── icon-widget.lua │ └── vertical-bar-widget.lua ├── weather-api-widget ├── README.md ├── example_response.json ├── icons │ ├── VitalyGorbachev │ │ ├── broken-clouds-night.svg │ │ ├── broken-clouds.svg │ │ ├── clear-sky-night.svg │ │ ├── clear-sky.svg │ │ ├── few-clouds-night.svg │ │ ├── few-clouds.svg │ │ ├── mist-night.svg │ │ ├── mist.svg │ │ ├── rain-night.svg │ │ ├── rain.svg │ │ ├── scattered-clouds-night.svg │ │ ├── scattered-clouds.svg │ │ ├── shower-rain-night.svg │ │ ├── shower-rain.svg │ │ ├── snow-night.svg │ │ ├── snow.svg │ │ ├── thunderstorm-night.svg │ │ └── thunderstorm.svg │ └── weather-underground-icons │ │ ├── broken-clouds-night.png │ │ ├── broken-clouds.png │ │ ├── clear-sky-night.png │ │ ├── clear-sky.png │ │ ├── few-clouds-night.png │ │ ├── few-clouds.png │ │ ├── mist-night.png │ │ ├── mist.png │ │ ├── rain-night.png │ │ ├── rain.png │ │ ├── scattered-clouds-night.png │ │ ├── scattered-clouds.png │ │ ├── shower-rain-night.png │ │ ├── shower-rain.png │ │ ├── snow-night.png │ │ ├── snow.png │ │ ├── thunderstorm-night.png │ │ └── thunderstorm.png ├── locale │ ├── de.lua │ ├── en.lua │ ├── fr.lua │ ├── pt.lua │ └── ru.lua ├── popup.png └── weather.lua ├── weather-widget ├── README.md ├── both.png ├── example1.png ├── example2.png ├── example_response.json ├── icons │ ├── VitalyGorbachev │ │ ├── broken-clouds-night.svg │ │ ├── broken-clouds.svg │ │ ├── clear-sky-night.svg │ │ ├── clear-sky.svg │ │ ├── few-clouds-night.svg │ │ ├── few-clouds.svg │ │ ├── mist-night.svg │ │ ├── mist.svg │ │ ├── rain-night.svg │ │ ├── rain.svg │ │ ├── scattered-clouds-night.svg │ │ ├── scattered-clouds.svg │ │ ├── shower-rain-night.svg │ │ ├── shower-rain.svg │ │ ├── snow-night.svg │ │ ├── snow.svg │ │ ├── thunderstorm-night.svg │ │ └── thunderstorm.svg │ └── weather-underground-icons │ │ ├── broken-clouds-night.png │ │ ├── broken-clouds.png │ │ ├── clear-sky-night.png │ │ ├── clear-sky.png │ │ ├── few-clouds-night.png │ │ ├── few-clouds.png │ │ ├── mist-night.png │ │ ├── mist.png │ │ ├── rain-night.png │ │ ├── rain.png │ │ ├── scattered-clouds-night.png │ │ ├── scattered-clouds.png │ │ ├── shower-rain-night.png │ │ ├── shower-rain.png │ │ ├── snow-night.png │ │ ├── snow.png │ │ ├── thunderstorm-night.png │ │ └── thunderstorm.png ├── locale │ ├── de.lua │ ├── en.lua │ ├── fr.lua │ └── pt.lua ├── negative.png ├── weather-widget.png └── weather.lua ├── widgets-icons.png └── word-clock-widget ├── README.md ├── screenshots ├── halfpastthree.png ├── halfpastthree_color.png ├── onetwentyseven.png ├── testpasttwentyone.png ├── twentythreepastnine.png └── twentythreepasttwentyone.png └── word-clock.lua /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @streetturtle 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: streetturtle 2 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: luacheck 4 | 5 | # Controls when the action will run. 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the master branch 8 | push: 9 | branches: 10 | - '*' 11 | paths: 12 | - '**.lua' 13 | pull_request: 14 | branches: [ master ] 15 | 16 | # Allows you to run this workflow manually from the Actions tab 17 | workflow_dispatch: 18 | 19 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 20 | jobs: 21 | # This workflow contains a single job called "build" 22 | build: 23 | # The type of runner that the job will run on 24 | runs-on: ubuntu-latest 25 | 26 | # Steps represent a sequence of tasks that will be executed as part of the job 27 | steps: 28 | - uses: actions/checkout@v2 29 | - name: Run Luacheck 30 | uses: nebularg/actions-luacheck@v1.1.0 31 | -------------------------------------------------------------------------------- /.github/workflows/update-site.yml: -------------------------------------------------------------------------------- 1 | name: update site 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'master' 7 | paths: 8 | - '**/README.md' 9 | 10 | # Allows you to run this workflow manually from the Actions tab 11 | workflow_dispatch: 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v3 19 | 20 | - name: Generate md 21 | run: ./scripts/update_site.sh 22 | 23 | - name: Push to gh-pages branch 24 | run: | 25 | git config --global user.name 'GitHub Action' 26 | git config --global user.email 'action@github.com' 27 | git add ./_widgets 28 | git add ./assets/img/widgets 29 | git stash 30 | git fetch 31 | echo "git checkout gh-pages" 32 | git checkout gh-pages 33 | rm -rf ./_widgets 34 | rm -rf ./assets/img/widgets 35 | ls -alF 36 | echo "git stash pop" 37 | git checkout stash -- ./_widgets 38 | git checkout stash -- ./assets/img/widgets 39 | git add ./_widgets 40 | git add ./assets/img/widgets 41 | git commit -m "update from master" 42 | git push origin gh-pages 43 | 44 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Lua sources 2 | luac.out 3 | 4 | # luarocks build files 5 | *.src.rock 6 | *.zip 7 | *.tar.gz 8 | 9 | # Object files 10 | *.o 11 | *.os 12 | *.ko 13 | *.obj 14 | *.elf 15 | 16 | # Precompiled Headers 17 | *.gch 18 | *.pch 19 | 20 | # Libraries 21 | *.lib 22 | *.a 23 | *.la 24 | *.lo 25 | *.def 26 | *.exp 27 | 28 | # Shared objects (inc. Windows DLLs) 29 | *.dll 30 | *.so 31 | *.so.* 32 | *.dylib 33 | 34 | # Executables 35 | *.exe 36 | *.out 37 | *.app 38 | *.i*86 39 | *.x86_64 40 | *.hex 41 | 42 | # IDEA files 43 | .idea 44 | 45 | # vscode files 46 | .history 47 | /_site/ 48 | /.jekyll-cache/ 49 | -------------------------------------------------------------------------------- /.luacheckrc: -------------------------------------------------------------------------------- 1 | self = false 2 | 3 | globals = { 4 | "screen", 5 | "mouse", 6 | "root", 7 | "client" 8 | } 9 | 10 | read_globals = { 11 | "awesome", 12 | "button", 13 | "dbus", 14 | "drawable", 15 | "drawin", 16 | "key", 17 | "keygrabber", 18 | "mousegrabber", 19 | "selection", 20 | "tag", 21 | "window", 22 | "table.unpack", 23 | "math.atan2", 24 | } -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @streetturtle 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | logo 3 |

4 | 5 |

6 | 7 | 8 | GitHub repo size 9 | GitHub Workflow Status 10 | 11 | 12 | 13 | 14 |

15 | 16 | Set of widgets compatible with Awesome Window Manager v.4.3+. 17 | 18 | ## Screenshots 19 | 20 | Spotify, CPU, RAM, brightness-arc, volume-arc and battery-arc widgets: 21 | 22 |

23 | 24 |

25 | 26 | Brightness, volume and battery widgets: 27 | 28 |

29 | 30 |

31 | 32 | ![screenshot](./screenshot.png) 33 | 34 | Some more screenshots in this reddit [post](https://www.reddit.com/r/unixporn/comments/8qijmx/awesomewm_dark_theme/) 35 | 36 | # Installation 37 | 38 | Clone the repo under **~/.config/awesome/**, then follow an Installation section of widget's readme file. 39 | 40 | # Stargazers 41 | 42 | [![Stargazers over time](https://starchart.cc/streetturtle/awesome-wm-widgets.svg)](https://starchart.cc/streetturtle/awesome-wm-widgets) 43 | 44 | # Troubleshooting 45 | 46 | In case of any doubts/questions/problems: 47 | - create an [issue](https://github.com/streetturtle/awesome-wm-widgets/issues/new/choose) 48 | - raise a question on [Discussions](https://github.com/streetturtle/awesome-wm-widgets/discussions)! 49 | - ping me on AwesomeWM's discord, here's an [invite](https://discord.gg/BPat4F87dg) 50 | 51 | # Support 52 | 53 | If you find anything useful here, you can: 54 | - star a repo - this really motivates me to work on this project 55 | - or 56 | - or even become a [sponsor](https://github.com/sponsors/streetturtle) 57 | 58 | # Contributors 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Screenshot from 2019-03-01 14-28-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/Screenshot from 2019-03-01 14-28-18.png -------------------------------------------------------------------------------- /apt-widget/README.md: -------------------------------------------------------------------------------- 1 | # APT widget 2 | 3 | Widget which shows a list of APT packages to be updated: 4 | 5 | ![screenshot](./screenshots/screenshot.gif) 6 | 7 | Features: 8 | - scrollable list !!! (thanks to this [post](https://www.reddit.com/r/awesomewm/comments/isx89x/scrolling_a_layout_fixed_flexed_layout_widget/) of reddit) 9 | - update single package 10 | - update multiple packages 11 | 12 | ## Customizations 13 | 14 | It is possible to customize widget by providing a table with the following config parameters: 15 | 16 | | Name | Default | Description | 17 | |---|---|---| 18 | | `icon_control` | `false` | Set or unset whether _any_ click on the screen closes the dropdown after it has been opened. | 19 | 20 | 21 | ## Installation 22 | 23 | Clone the repo under ~/.config/awesome/ folder, then in rc.lua add the following: 24 | 25 | ```lua 26 | local apt_widget = require("awesome-wm-widgets.apt-widget.apt-widget") 27 | 28 | ... 29 | s.mytasklist, -- Middle widget 30 | { -- Right widgets 31 | layout = wibox.layout.fixed.horizontal, 32 | ... 33 | apt_widget(), 34 | ... 35 | ``` 36 | 37 | Or use the following. 38 | 39 | ```lua 40 | ... 41 | apt_widget({icon_control=true}), 42 | ... 43 | ``` 44 | 45 | -------------------------------------------------------------------------------- /apt-widget/icons/black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /apt-widget/icons/help-circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apt-widget/icons/orange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /apt-widget/icons/refresh-cw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apt-widget/icons/watch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apt-widget/icons/white-black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /apt-widget/icons/white-orange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /apt-widget/screenshots/screenshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/apt-widget/screenshots/screenshot.gif -------------------------------------------------------------------------------- /awesome-o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/awesome-o.png -------------------------------------------------------------------------------- /awesome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/awesome.png -------------------------------------------------------------------------------- /battery-widget/README.md: -------------------------------------------------------------------------------- 1 | # Battery widget 2 | 3 | Simple and easy-to-install widget for Awesome Window Manager. 4 | 5 | This widget consists of: 6 | 7 | - an icon which shows the battery level: 8 | ![Battery Widget](./bat-wid-1.png) 9 | - a pop-up window, which shows up when you hover over an icon: 10 | ![Battery Widget](./bat-wid-2.png) 11 | Alternatively you can use a tooltip (check the code): 12 | ![Battery Widget](./bat-wid-22.png) 13 | - a pop-up warning message which appears on bottom right corner when battery level is less that 15% (you can get the image [here](https://vk.com/images/stickers/1933/512.png)): 14 | ![Battery Widget](./bat-wid-3.png) 15 | 16 | Note that widget uses the Arc icon theme, so it should be [installed](https://github.com/horst3180/arc-icon-theme#installation) first under **/usr/share/icons/Arc/** folder. 17 | 18 | ## Customization 19 | 20 | It is possible to customize widget by providing a table with all or some of the following config parameters: 21 | 22 | | Name | Default | Description | 23 | |---|---|---| 24 | | `font` | `Play 8` | Font | 25 | | `path_to_icons` | `/usr/share/icons/Arc/status/symbolic/` | Path to the folder with icons* | 26 | | `show_current_level`| false | Show current charge level | 27 | | `margin_right`|0| The right margin of the widget| 28 | | `margin_left`|0| The left margin of the widget| 29 | | `display_notification` | false | Display a notification on mouseover | 30 | | `notification_position` | `top_right` | The notification position | 31 | | `timeout` | 10 | How often in seconds the widget refreshes | 32 | | `warning_msg_title` | `Huston, we have a problem` | Title of the warning popup | 33 | | `warning_msg_text` | `Battery is dying` | Text of the warning popup | 34 | | `warning_msg_position` | `bottom_right` | Position of the warning popup | 35 | | `warning_msg_icon` | `~/.config/awesome/awesome-wm-widgets/battery-widget/spaceman.jpg` | Icon of the warning popup | 36 | | `enable_battery_warning` | true | Display low battery warning | 37 | 38 | *Note: the widget expects following icons to be present in the folder: 39 | 40 | - battery-caution-charging-symbolic.svg 41 | - battery-empty-charging-symbolic.svg 42 | - battery-full-charged-symbolic.svg 43 | - battery-full-symbolic.svg 44 | - battery-good-symbolic.svg 45 | - battery-low-symbolic.svg 46 | - battery-caution-symbolic.svg 47 | - battery-empty-symbolic.svg 48 | - battery-full-charging-symbolic.svg 49 | - battery-good-charging-symbolic.svg 50 | - battery-low-charging-symbolic.svg 51 | - battery-missing-symbolic.svg 52 | 53 | ## Installation 54 | 55 | This widget reads the output of acpi tool. 56 | 57 | - install `acpi` and check the output: 58 | 59 | ```bash 60 | $ sudo apt-get install acpi 61 | $ acpi 62 | Battery 0: Discharging, 66%, 02:34:06 remaining 63 | ``` 64 | 65 | ```lua 66 | local battery_widget = require("awesome-wm-widgets.battery-widget.battery") 67 | 68 | ... 69 | s.mytasklist, -- Middle widget 70 | { -- Right widgets 71 | layout = wibox.layout.fixed.horizontal, 72 | ... 73 | battery_widget(), 74 | ... 75 | ``` 76 | -------------------------------------------------------------------------------- /battery-widget/bat-wid-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/battery-widget/bat-wid-1.png -------------------------------------------------------------------------------- /battery-widget/bat-wid-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/battery-widget/bat-wid-2.png -------------------------------------------------------------------------------- /battery-widget/bat-wid-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/battery-widget/bat-wid-22.png -------------------------------------------------------------------------------- /battery-widget/bat-wid-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/battery-widget/bat-wid-3.png -------------------------------------------------------------------------------- /battery-widget/spaceman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/battery-widget/spaceman.jpg -------------------------------------------------------------------------------- /batteryarc-widget/10_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/batteryarc-widget/10_c.png -------------------------------------------------------------------------------- /batteryarc-widget/10_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/batteryarc-widget/10_d.png -------------------------------------------------------------------------------- /batteryarc-widget/20_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/batteryarc-widget/20_c.png -------------------------------------------------------------------------------- /batteryarc-widget/20_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/batteryarc-widget/20_d.png -------------------------------------------------------------------------------- /batteryarc-widget/80_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/batteryarc-widget/80_c.png -------------------------------------------------------------------------------- /batteryarc-widget/80_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/batteryarc-widget/80_d.png -------------------------------------------------------------------------------- /batteryarc-widget/spaceman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/batteryarc-widget/spaceman.jpg -------------------------------------------------------------------------------- /batteryarc-widget/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/batteryarc-widget/warning.png -------------------------------------------------------------------------------- /bitbucket-widget/README.md: -------------------------------------------------------------------------------- 1 | # Bitbucket widget 2 | 3 | The widget shows the number of pull requests assigned to the user and when clicked shows them in the list with some additional information. When item in the list is clicked - it opens the pull request in the browser. 4 | 5 | ## How it works 6 | 7 | Widget uses cURL to query Bitbucket's [REST API](https://developer.atlassian.com/bitbucket/api/2/reference/). In order to be authenticated, widget uses a [netrc](https://ec.haxx.se/usingcurl/usingcurl-netrc) feature of the cURL, which is basically allows storing basic auth credentials in a **.netrc** file in home folder. 8 | 9 | Bitbucket allows using [App Passwords](https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html) (available in the account settings) - simply generate one for the widget and use it as password in **.netrc** file. 10 | 11 | ## Customization 12 | 13 | It is possible to customize widget by providing a table with all or some of the following config parameters: 14 | 15 | | Name | Default | Description | 16 | |---|---|---| 17 | | `icon` | `~/.config/awesome/awesome-wm-widgets/bitbucket-widget/bitbucket-icon-gradient-blue.svg` | Path to the icon | 18 | | `host` | Required | e.g. _http://api.bitbucket.org_ | 19 | | `uuid` | Required | e.g. _{123e4567-e89b-12d3-a456-426614174000}_ | 20 | | `workspace` | Required | Workspace ID| 21 | | `repo_slug` | Required | Repository slug | 22 | | `timeout` | 60 | How often in seconds the widget refreshes | 23 | 24 | Note: 25 | - host most likely should start with _api._ 26 | - to get your UUID you may call `curl -s -n 'https://api.bitbucket.org/2.0/user'` 27 | 28 | ## Installation 29 | 30 | Create a **.netrc** file in you home directory with following content: 31 | 32 | ```bash 33 | machine api.bitbucket.org 34 | login mikey@tmnt.com 35 | password cowabunga 36 | ``` 37 | 38 | Then change file's permissions to 600 (so only you can read/write it): 39 | 40 | ```bash 41 | chmod 600 ~/.netrc 42 | ``` 43 | And test if it works by calling the API: 44 | 45 | ```bash 46 | curl -s -n 'https://api.bitbucket.org/2.0/repositories/' 47 | ``` 48 | 49 | Also, to properly setup required parameters you can use `test_bitbucket_api.sh` script - it uses the same curl call as widget. 50 | 51 | Then clone/download repo and use widget in **rc.lua**: 52 | 53 | ```lua 54 | local bitbucket_widget = require("awesome-wm-widgets.bitbucket-widget.bitbucket") 55 | ... 56 | s.mytasklist, -- Middle widget 57 | { -- Right widgets 58 | layout = wibox.layout.fixed.horizontal, 59 | ... 60 | -- default 61 | bitbucket_widget({ 62 | host = 'https://api.bitbucket.org', 63 | uuid = '{123e4567-e89b-12d3-a456-426614174000}', 64 | workspace = 'workspace', 65 | repo_slug = 'slug' 66 | 67 | }}), 68 | ... 69 | ``` 70 | -------------------------------------------------------------------------------- /bitbucket-widget/bitbucket-icon-gradient-blue.svg: -------------------------------------------------------------------------------- 1 | bitbucket-icon-gradient-blue -------------------------------------------------------------------------------- /bitbucket-widget/check.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bitbucket-widget/clipboard.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bitbucket-widget/copy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bitbucket-widget/git-pull-request.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bitbucket-widget/message-circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bitbucket-widget/test_bitbucket_api.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | HOST='https://api.bitbucket.org' 4 | ACCOUNT_ID='' 5 | WORKSPACE='' 6 | REPO_SLUG='' 7 | 8 | curl -s -n "${HOST}/2.0/repositories/${WORKSPACE}/${REPO_SLUG}/pullrequests?fields=values.title,values.links.html,values.author.display_name,values.author.links.avatar&q=reviewers.account_id+%3D+%22${ACCOUNT_ID}%22" -------------------------------------------------------------------------------- /bitbucket-widget/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bluelight-widget/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Blue Light Filter Widget 3 | 4 | This widget provides a simple way to toggle a blue light filter using [Redshift](https://github.com/jonls/redshift). It offers an easy mechanism to switch between day and night modes, reducing eye strain during late-night computer use. 5 | 6 | | Day Mode | Night Mode | 7 | |----------|------------| 8 | |![Day Mode](day.png) | ![Night Mode](night.png) | 9 | 10 | (I couldn't capture the effect itself) 11 | 12 | I usually use every widget with my custom (kinda janky) [wrapper widget](https://github.com/VMatt013/MySetup/blob/Debian/.config/awesome/widgets/margin.lua) to make them look cleaner and more unified. 13 | 14 | 15 | **With wrapper** 16 | 17 | ![With wrapper](with_wrapper.png) 18 | 19 | 20 | ## Installation 21 | 22 | Clone this repository then add the widget to your wibar: 23 | 24 | ```lua 25 | local bluelight_widget = require("awesome-wm-widgets.bluelight-widget") 26 | local margin = require("awesome-wm-widgets.margin") -- In case you use my wrapper 27 | 28 | s.mytasklist, -- Middle widget 29 | { -- Right widgets 30 | layout = wibox.layout.fixed.horizontal, 31 | ... 32 | bluelight_widget, -- Add the widget here 33 | margin(bluelight, true), -- Add the widget with my wrapper 34 | ... 35 | } 36 | ``` 37 | 38 | ## Usage 39 | 40 | - Click the widget to toggle between **Day Mode** and **Night Mode**. 41 | - **Day Mode:** Disables the blue light filter. 42 | - **Night Mode:** Activates the blue light filter with a warm color temperature. 43 | 44 | ## Customization 45 | 46 | You can customize the widget by modifying the following parameters in the widget's source file: 47 | 48 | | Name | Default | Description | 49 | |------------|----------------------------------------|------------------------------------------------------------| 50 | | `ICON_DIR` | ```awesome-wm-widgets/bluelight-widget/``` | Directory where the widget icons (sun.svg and moon.svg) are stored. | 51 | | `CMD` | ```redshift``` | Command to run Redshift. | 52 | | `NIGHT_CMD`| ```-O 2500 -g 0.75``` | Command options for activating Night Mode. | 53 | | `DAY_CMD` | ```-x``` | Command options for activating Day Mode. | 54 | 55 | ## Dependencies 56 | 57 | - [Redshift](https://github.com/jonls/redshift): Make sure Redshift is installed on your system. 58 | -------------------------------------------------------------------------------- /bluelight-widget/day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/bluelight-widget/day.png -------------------------------------------------------------------------------- /bluelight-widget/init.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | -- Blue Light Filter Widget for Awesome Window Manager 3 | -- More details could be found here: 4 | -- https://github.com/streetturtle/awesome-wm-widgets/tree/master/bluelight-widget 5 | 6 | -- @author VMatt 7 | -- @copyright 2025 VMatt 8 | ------------------------------------------------- 9 | 10 | local awful = require("awful") 11 | local wibox = require("wibox") 12 | local gfs = require("gears.filesystem") 13 | 14 | local ICON_DIR = gfs.get_configuration_dir() .. "awesome-wm-widgets/bluelight-widget/" 15 | local DAY_ICON = ICON_DIR .. "sun.svg" 16 | local NIGHT_ICON = ICON_DIR .. "moon.svg" 17 | 18 | local CMD = "redshift" 19 | local NIGHT_CMD = "-O 2500 -g 0.75" 20 | local DAY_CMD = "-x" 21 | local day = true 22 | 23 | local widget = wibox.widget({ 24 | { 25 | 26 | { 27 | id = "icon", 28 | image = DAY_ICON, 29 | resize = true, 30 | widget = wibox.widget.imagebox, 31 | }, 32 | layout = wibox.layout.fixed.horizontal, 33 | widget = wibox.container.margin, 34 | }, 35 | border_width = 5, 36 | widget = wibox.container.background, 37 | layout = wibox.layout.fixed.horizontal, 38 | }) 39 | 40 | function widget:update() 41 | local icon = self:get_children_by_id("icon")[1] 42 | if day then 43 | icon:set_image(DAY_ICON) 44 | else 45 | icon:set_image(NIGHT_ICON) 46 | end 47 | end 48 | 49 | local function on_day() 50 | awful.spawn(CMD .. " " .. DAY_CMD) 51 | widget:update() 52 | end 53 | 54 | local function on_night() 55 | awful.spawn(CMD .. " " .. NIGHT_CMD) 56 | widget:update() 57 | end 58 | 59 | local function toggle() 60 | day = not day 61 | if day then 62 | on_day() 63 | else 64 | on_night() 65 | end 66 | end 67 | 68 | widget:buttons(awful.util.table.join(awful.button({}, 1, function() 69 | toggle() 70 | end))) 71 | 72 | return widget 73 | -------------------------------------------------------------------------------- /bluelight-widget/moon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /bluelight-widget/night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/bluelight-widget/night.png -------------------------------------------------------------------------------- /bluelight-widget/sun.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /bluelight-widget/with_wrapper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/bluelight-widget/with_wrapper.png -------------------------------------------------------------------------------- /brightness-widget/br-wid-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/brightness-widget/br-wid-1.png -------------------------------------------------------------------------------- /calendar-widget/calendar_bottom_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/calendar-widget/calendar_bottom_right.png -------------------------------------------------------------------------------- /calendar-widget/calendar_start_sunday.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/calendar-widget/calendar_start_sunday.png -------------------------------------------------------------------------------- /calendar-widget/calendar_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/calendar-widget/calendar_top.png -------------------------------------------------------------------------------- /calendar-widget/calendar_top_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/calendar-widget/calendar_top_right.png -------------------------------------------------------------------------------- /calendar-widget/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/calendar-widget/dark.png -------------------------------------------------------------------------------- /calendar-widget/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/calendar-widget/light.png -------------------------------------------------------------------------------- /calendar-widget/nord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/calendar-widget/nord.png -------------------------------------------------------------------------------- /calendar-widget/outrun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/calendar-widget/outrun.png -------------------------------------------------------------------------------- /cmus-widget/README.md: -------------------------------------------------------------------------------- 1 | # Cmus widget 2 | 3 | Cmus widget that shows the current playing track. 4 | 5 | ![widget](./screenshots/cmus-widget.png) 6 | 7 | Left click toggles playback. 8 | 9 | ## Installation 10 | 11 | Clone the repo under **~/.config/awesome/** and add widget in **rc.lua**: 12 | 13 | ```lua 14 | local cmus_widget = require('awesome-wm-widgets.cmus-widget.cmus') 15 | ... 16 | s.mytasklist, -- Middle widget 17 | { -- Right widgets 18 | layout = wibox.layout.fixed.horizontal, 19 | ... 20 | -- default 21 | cmus_widget(), 22 | -- customized 23 | cmus_widget{ 24 | space = 5, 25 | timeout = 5 26 | }, 27 | ``` 28 | 29 | ### Shortcuts 30 | 31 | To improve responsiveness of the widget when playback is changed by a shortcut use corresponding methods of the widget: 32 | 33 | ```lua 34 | awful.key({ modkey, "Shift" }, "p", function () cmus_widget:play_pause() end, {description = "toggle track", group = "cmus"}), 35 | awful.key({ }, "XF86AudioPlay", function () cmus_widget:play() end, {description = "play track", group = "cmus"}), 36 | awful.key({ }, "XF86AudioPause", function () cmus_widget:play() end, {description = "pause track", group = "cmus"}), 37 | awful.key({ }, "XF86AudioNext", function () cmus_widget:next_track() end, {description = "next track", group = "cmus"}), 38 | awful.key({ }, "XF86AudioPrev", function () cmus_widget:prev_track() end, {description = "previous track", group = "cmus"}), 39 | awful.key({ }, "XF86AudioStop", function () cmus_widget:stop() end, {description = "stop track", group = "cmus"}), 40 | ``` 41 | 42 | ## Customization 43 | 44 | It is possible to customize the widget by providing a table with all or some of the following config parameters: 45 | 46 | ### Generic parameter 47 | 48 | | Name | Default | Description | 49 | |---|---|---| 50 | | `font` | `beautiful.font` | Font name and size, like `Play 12` | 51 | | `path_to_icons` | `/usr/share/icons/Arc/actions/symbolic/` | Alternative path for the icons | 52 | | `timeout`| 10 | Refresh cooldown | 53 | | `max_length` | 30 | Maximum lentgh of title. Text will be ellipsized if longer. | 54 | | `space` | 3 | Space between icon and track title | 55 | -------------------------------------------------------------------------------- /cmus-widget/screenshots/cmus-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/cmus-widget/screenshots/cmus-widget.png -------------------------------------------------------------------------------- /cpu-widget/README.md: -------------------------------------------------------------------------------- 1 | # CPU widget 2 | 3 | [![GitHub issues by-label](https://img.shields.io/github/issues-raw/streetturtle/awesome-wm-widgets/cpu)](https://github.com/streetturtle/awesome-wm-widgets/labels/cpu) 4 | 5 | This widget shows the average CPU load among all cores of the machine: 6 | 7 | ![screenshot](./cpu.gif) 8 | 9 | ## How it works 10 | 11 | To measure the load I took Paul Colby's bash [script](http://colby.id.au/calculating-cpu-usage-from-proc-stat/) and rewrote it in Lua, which was quite simple. 12 | So awesome simply reads the first line of /proc/stat: 13 | 14 | ```bash 15 | $ cat /proc/stat | grep '^cpu ' 16 | cpu 197294 718 50102 2002182 3844 0 2724 0 0 0 17 | ``` 18 | 19 | and calculates the percentage. 20 | 21 | ## Customization 22 | 23 | It is possible to customize widget by providing a table with all or some of the following config parameters: 24 | 25 | | Name | Default | Description | 26 | |---|---|---| 27 | | `width` | 50 | Width of the widget | 28 | | `step_width` | 2 | Width of the step | 29 | | `step_spacing` | 1 | Space size between steps | 30 | | `color` | `beautiful.fg_normal` | Color of the graph | 31 | | `enable_kill_button` | false | Show button which kills the process | 32 | | `process_info_max_length` | -1 | Truncate the process information. Some processes may have a very long list of parameters which won't fit in the screen, this options allows to truncate it to the given length. | 33 | | `timeout` | 1 | How often in seconds the widget refreshes | 34 | 35 | ### Example 36 | 37 | ```lua 38 | cpu_widget({ 39 | width = 70, 40 | step_width = 2, 41 | step_spacing = 0, 42 | color = '#434c5e' 43 | }) 44 | ``` 45 | 46 | The config above results in the following widget: 47 | 48 | ![custom](./custom.png) 49 | 50 | ## Installation 51 | 52 | Clone/download repo and use widget in **rc.lua**: 53 | 54 | ```lua 55 | local cpu_widget = require("awesome-wm-widgets.cpu-widget.cpu-widget") 56 | ... 57 | s.mytasklist, -- Middle widget 58 | { -- Right widgets 59 | layout = wibox.layout.fixed.horizontal, 60 | ... 61 | -- default 62 | cpu_widget(), 63 | -- or custom 64 | cpu_widget({ 65 | width = 70, 66 | step_width = 2, 67 | step_spacing = 0, 68 | color = '#434c5e' 69 | }) 70 | ... 71 | ``` 72 | -------------------------------------------------------------------------------- /cpu-widget/cpu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/cpu-widget/cpu.gif -------------------------------------------------------------------------------- /cpu-widget/cpu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/cpu-widget/cpu.png -------------------------------------------------------------------------------- /cpu-widget/custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/cpu-widget/custom.png -------------------------------------------------------------------------------- /docker-widget/README.md: -------------------------------------------------------------------------------- 1 | # Docker / Podman Widget 2 | 3 | [![GitHub issues by-label](https://img.shields.io/github/issues-raw/streetturtle/awesome-wm-widgets/docker)](https://github.com/streetturtle/awesome-wm-widgets/labels/docker) 4 | ![Twitter URL](https://img.shields.io/twitter/url?url=https%3A%2F%2Fgithub.com%2Fstreetturtle%2Fawesome-wm-widgets%2Fedit%2Fmaster%2Fdocker-widget) 5 | 6 | The widget allows to manage docker and podman containers, namely start/stop/pause/unpause: 7 | 8 |

9 | 10 |

11 | 12 | ## Customization 13 | 14 | It is possible to customize widget by providing a table with all or some of the following config parameters: 15 | 16 | | Name | Default | Description | 17 | |---|---|---| 18 | | `icon` | `./docker-widget/icons/docker.svg` | Path to the icon | 19 | | `number_of_containers` | -1 | Number of last created containers to show | 20 | | `executable_name` | `docker` | Name of the executable to use, defaults to `docker` | 21 | | `max_widget_width` | 270 | Maximum width of the widget before the text breaks | 22 | 23 | The `executable_name` allows you to use `Podman` instead of docker. This works since `Podman` is compatible to `docker` in the sense that the syntax and command outputs are identical. 24 | 25 | ## Installation 26 | 27 | Clone the repo under **~/.config/awesome/** and add widget in **rc.lua**: 28 | 29 | ```lua 30 | local docker_widget = require("awesome-wm-widgets.docker-widget.docker") 31 | ... 32 | s.mytasklist, -- Middle widget 33 | { -- Right widgets 34 | layout = wibox.layout.fixed.horizontal, 35 | ... 36 | -- default 37 | docker_widget(), 38 | -- customized 39 | docker_widget{ 40 | number_of_containers = 5 41 | }, 42 | ``` 43 | -------------------------------------------------------------------------------- /docker-widget/docker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/docker-widget/docker.gif -------------------------------------------------------------------------------- /docker-widget/icons/docker.svg: -------------------------------------------------------------------------------- 1 | Docker icon 2 | -------------------------------------------------------------------------------- /docker-widget/icons/pause-btn.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docker-widget/icons/pause.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 16 | -------------------------------------------------------------------------------- /docker-widget/icons/play-btn.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /docker-widget/icons/play-btn.svg-: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /docker-widget/icons/play.svg: -------------------------------------------------------------------------------- 1 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /docker-widget/icons/square.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | 15 | -------------------------------------------------------------------------------- /docker-widget/icons/stop-btn.svg: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docker-widget/icons/trash-btn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docker-widget/icons/unpause-btn.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /email-widget/.env.example: -------------------------------------------------------------------------------- 1 | EMAIL= 2 | PASSWORD= 3 | MAX_MSG_COUNT= 4 | MAX_BODY_LENGTH= 5 | 6 | -------------------------------------------------------------------------------- /email-widget/.gitignore: -------------------------------------------------------------------------------- 1 | .venv 2 | .env 3 | -------------------------------------------------------------------------------- /email-widget/README.md: -------------------------------------------------------------------------------- 1 | # Email widget 2 | 3 | This widget consists of an icon with counter which shows number of unread emails: ![email icon](./em-wid-1.png) 4 | and a popup message which appears when mouse hovers over an icon: ![email popup](./em-wid-2.png) 5 | 6 | ## Installation 7 | 1. Clone this repository to your awesome config folder: 8 | 9 | ```bash 10 | git clone https://github.com/streetturtle/awesome-wm-widgets/email-widget ~/.config/awesome/email-widget 11 | ``` 12 | 2. Make virtual environment and install dependencies: 13 | 14 | ```bash 15 | cd ~/.config/awesome/email-widget 16 | python3 -m venv venv 17 | source venv/bin/activate 18 | pip install -r requirements.txt 19 | ``` 20 | 3. Fill .env file with your credentials: 21 | 22 | ```bash 23 | cp .env.example .env 24 | ``` 25 | 4. Add widget to awesome: 26 | 27 | ```lua 28 | local email_widget = require("email-widget.email") 29 | ... 30 | s.mytasklist, -- Middle widget 31 | { -- Right widgets 32 | layout = wibox.layout.fixed.horizontal, 33 | ... 34 | email_widget, 35 | ... 36 | ``` 37 | 38 | If you want to reduce time of getting emails, you can change maximum number of emails to be fetched in .env file. Default is 10. 39 | If you want to configure width of popup window, you can change this line in email.lua file: 40 | 41 | ```lua 42 | width = 800, 43 | ``` 44 | After this you can change MAX_BODY_LENGTH variable in .env file to change number of characters to be displayed in popup window. Default is 100. 45 | Next step is restarting awesome. You can do this by pressing Mod+Ctrl+r. 46 | 47 | ## How it works 48 | 49 | This widget uses the output of two python scripts, first is called every 20 seconds - it returns number of unread emails and second is called when mouse hovers over an icon and displays content of those emails. For both of them you'll need to provide your credentials and imap server. For testing, they can simply be called from console: 50 | 51 | ``` bash 52 | python ~/.config/awesome/email-widget/count_unread_emails.py 53 | python ~/.config/awesome/email-widget/read_emails.py 54 | ``` 55 | -------------------------------------------------------------------------------- /email-widget/count_unread_emails.py: -------------------------------------------------------------------------------- 1 | import imaplib 2 | import re 3 | from dotenv import load_dotenv 4 | from pathlib import Path 5 | import os 6 | path_to_env = Path(__file__).parent / '.env' 7 | load_dotenv(path_to_env) 8 | EMAIL = os.getenv("EMAIL") 9 | PASSWORD = os.getenv("PASSWORD") 10 | if not EMAIL or not PASSWORD: 11 | print("ERROR:Email or password not set in .env file.") 12 | exit(0) 13 | 14 | 15 | M = imaplib.IMAP4_SSL("imap.gmail.com", 993) 16 | M.login(EMAIL, PASSWORD) 17 | 18 | status, counts = M.status("INBOX", "(MESSAGES UNSEEN)") 19 | 20 | if status == "OK": 21 | unread = re.search(r"UNSEEN\s(\d+)", counts[0].decode("utf-8")).group(1) 22 | else: 23 | unread = "N/A" 24 | 25 | print(unread) 26 | -------------------------------------------------------------------------------- /email-widget/em-wid-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/email-widget/em-wid-1.png -------------------------------------------------------------------------------- /email-widget/em-wid-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/email-widget/em-wid-2.png -------------------------------------------------------------------------------- /email-widget/email.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | local awful = require("awful") 3 | local naughty = require("naughty") 4 | local watch = require("awful.widget.watch") 5 | 6 | local currentPath = debug.getinfo(1, "S").source:sub(2):match("(.*/)") 7 | 8 | local email_widget = wibox.widget.textbox() 9 | email_widget:set_font('Play 9') 10 | email_widget:set_text("Loading...") 11 | 12 | 13 | local path_to_python_in_venv = currentPath .. "/.venv/bin/python" 14 | 15 | watch( 16 | path_to_python_in_venv.." "..currentPath.."count_unread_emails.py", 20, function(_, stdout) 17 | local is_error = (stdout:match("ERROR") ~= nil) 18 | email_widget:set_text("status: "..tostring(is_error)) 19 | if is_error then 20 | email_widget:set_text(stdout) 21 | return 22 | end 23 | local unread_emails_num = tonumber(stdout) or 0 24 | if (unread_emails_num > 0) then 25 | email_widget:set_text(unread_emails_num) 26 | elseif (unread_emails_num == 0) then 27 | email_widget:set_text("") 28 | end 29 | end 30 | ) 31 | local function show_emails() 32 | awful.spawn.easy_async( 33 | path_to_python_in_venv.." "..currentPath.."read_unread_emails.py", 34 | function(stdout) 35 | naughty.notify{ 36 | text = stdout, 37 | title = "Unread Emails", 38 | timeout = 10, hover_timeout = 0.5, 39 | width = 800, 40 | parse = true, 41 | } 42 | end 43 | ) 44 | end 45 | 46 | email_widget:connect_signal("mouse::enter", function() show_emails() end) 47 | 48 | -- show_emails() 49 | return email_widget -------------------------------------------------------------------------------- /email-widget/requirements.txt: -------------------------------------------------------------------------------- 1 | html2text==2020.1.16 2 | python-dotenv==1.0.0 3 | -------------------------------------------------------------------------------- /experiments/spotify-player/README.md: -------------------------------------------------------------------------------- 1 | # Spotify Player 2 | 3 | In progress 4 | 5 | ![spotify-player](./spotify-player.png) -------------------------------------------------------------------------------- /experiments/spotify-player/spotify-indicator.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /experiments/spotify-player/spotify-player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/experiments/spotify-player/spotify-player.png -------------------------------------------------------------------------------- /fs-widget/README.md: -------------------------------------------------------------------------------- 1 | # Filesystem Widget 2 | 3 | This widget shows file system disk space usage which is based on the `df` output. When clicked another widget appears with more detailed information. By default, it monitors the "/" mount. It can be configured with a list of mounts to monitor though only the first will show in the wibar. To have multiple mounts displayed on the wibar simply define multiple `fs_widgets` with different mounts as arguments. 4 | 5 | ![](./screenshot.png) 6 | 7 | ## Customizations 8 | 9 | It is possible to customize widget by providing a table with all or some of the following config parameters: 10 | 11 | | Name | Default | Description | 12 | |---|---|---| 13 | | `mounts` | `{ '/' }` | Table with mounts to monitor, check the output from a `df` command for available options (column `Mounted on`) | 14 | | `timeout` | 60 | How often in seconds the widget refreshes | 15 | 16 | ## Installation 17 | 18 | Clone/download repo and use the widget in **rc.lua**: 19 | 20 | ```lua 21 | local fs_widget = require("awesome-wm-widgets.fs-widget.fs-widget") 22 | ... 23 | s.mywibox:setup { 24 | s.mytasklist, -- Middle widget 25 | { -- Right widgets 26 | fs_widget(), --default 27 | fs_widget({ mounts = { '/', '/mnt/music' } }), -- multiple mounts 28 | ... 29 | ``` 30 | -------------------------------------------------------------------------------- /fs-widget/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/fs-widget/screenshot.png -------------------------------------------------------------------------------- /gerrit-widget/gerrit_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /gerrit-widget/gerrit_widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/gerrit-widget/gerrit_widget.png -------------------------------------------------------------------------------- /gerrit-widget/new_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/gerrit-widget/new_review.png -------------------------------------------------------------------------------- /gerrit-widget/popup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/gerrit-widget/popup.png -------------------------------------------------------------------------------- /github-activity-widget/icons/alert-circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-activity-widget/icons/git-branch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-activity-widget/icons/git-pull-request.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-activity-widget/icons/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-activity-widget/icons/github.png -------------------------------------------------------------------------------- /github-activity-widget/icons/message-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-activity-widget/icons/repo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-activity-widget/icons/star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-activity-widget/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-activity-widget/screenshot.png -------------------------------------------------------------------------------- /github-contributions-widget/README.md: -------------------------------------------------------------------------------- 1 | # Github Contributions Widget 2 | 3 | The widget is inspired by the https://github-contributions.now.sh/ and relies on it's API. 4 | 5 | It shows the contribution graph, similar to the one on the github profile page: ![screenshot](./screenshots/screenshot.jpg) 6 | 7 | You might wonder what could be the reason to have your github's contributions in front of you all day long? The more you contribute, the nicer widget looks! Check out [Thomashighbaugh](https://github.com/Thomashighbaugh)'s graph: 8 | 9 | ![](./screenshots/Thomashighbaugh.png) 10 | 11 | ## Customization 12 | 13 | It is possible to customize the widget by providing a table with all or some of the following config parameters: 14 | 15 | | Name | Default | Description | 16 | |---|---|---| 17 | | `username` | `streetturtle` | GitHub username | 18 | | `days` | 365 | Number of days in the past, more days - wider the widget | 19 | | `color_of_empty_cells` | Theme's default | Color of the days with no contributions | 20 | | `with_border` | true | Should the graph contains border or not | 21 | | `margin_top` | 1 | Top margin | 22 | | `theme` | `standard` | Color theme of the graph, see below | 23 | 24 | _Note:_ widget height is 21px (7 rows of 3x3 cells). So it would look nice on the wibar of 22-24px height. 25 | 26 | ### Themes 27 | 28 | Following themes are available: 29 | 30 | | Theme name | Preview | 31 | |---|---| 32 | | standard | ![standard](./screenshots/standard.png) | 33 | | classic | ![classic](./screenshots/classic.png) | 34 | | teal | ![teal](./screenshots/teal.png) | 35 | | leftpad | ![leftpad](./screenshots/leftpad.png) | 36 | | dracula | ![dracula](./screenshots/dracula.png) | 37 | | pink | ![pink](./screenshots/pink.png) | 38 | 39 | To add a new theme, simply add a new entry in `themes` table (themes.lua) with the colors of your theme. 40 | 41 | ### Screenshots 42 | 43 | 1000 days, with border: 44 | ![screenshot1](./screenshots/screenshot1.jpg) 45 | 46 | 365 days, no border: 47 | ![screenshot2](./screenshots/screenshot2.jpg) 48 | 49 | ## Installation 50 | 51 | Clone/download repo under **~/.config/awesome** and use widget in **rc.lua**: 52 | 53 | ```lua 54 | local github_contributions_widget = require("awesome-wm-widgets.github-contributions-widget.github-contributions-widget") 55 | ... 56 | s.mytasklist, -- Middle widget 57 | { -- Right widgets 58 | layout = wibox.layout.fixed.horizontal, 59 | ... 60 | -- default 61 | github_contributions_widget({username = ''}), 62 | ... 63 | ``` 64 | -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/Thomashighbaugh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/Thomashighbaugh.png -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/classic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/classic.png -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/dracula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/dracula.png -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/leftpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/leftpad.png -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/pink.png -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/screenshot.jpg -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/screenshot1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/screenshot1.jpg -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/screenshot2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/screenshot2.jpg -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/standard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/standard.png -------------------------------------------------------------------------------- /github-contributions-widget/screenshots/teal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-contributions-widget/screenshots/teal.png -------------------------------------------------------------------------------- /github-contributions-widget/themes.lua: -------------------------------------------------------------------------------- 1 | local themes = { 2 | standard = { 3 | [4] = '#216e39', 4 | [3] = '#30a14e', 5 | [2] = '#40c463', 6 | [1] = '#9be9a8', 7 | [0] = '#ebedf0' 8 | }, 9 | classic = { 10 | [4] = '#196127', 11 | [3] = '#239a3b', 12 | [2] = '#7bc96f', 13 | [1] = '#c6e48b', 14 | [0] = '#ebedf0', 15 | }, 16 | teal = { 17 | [4] = '#458B74', 18 | [3] = '#66CDAA', 19 | [2] = '#76EEC6', 20 | [1] = '#7FFFD4', 21 | [0] = '#ebedf0', 22 | }, 23 | leftpad = { 24 | [4] = '#F6F6F6', 25 | [3] = '#DDDDDD', 26 | [2] = '#A5A5A5', 27 | [1] = '#646464', 28 | [0] = '#2F2F2F', 29 | }, 30 | dracula = { 31 | [4] = '#ff79c6', 32 | [3] = '#bd93f9', 33 | [2] = '#6272a4', 34 | [1] = '#44475a', 35 | [0] = '#282a36' 36 | }, 37 | pink = { 38 | [4] = '#61185f', 39 | [3] = '#a74aa8', 40 | [2] = '#ca5bcc', 41 | [1] = '#e48bdc', 42 | [0] = '#ebedf0', 43 | } 44 | } 45 | 46 | return themes -------------------------------------------------------------------------------- /github-prs-widget/README.md: -------------------------------------------------------------------------------- 1 | # GitHub PRs Widget 2 | 3 |

4 | GitHub issues by-label 5 |

6 | 7 | The widget shows the number of pull requests assigned to the user and when clicked shows additional information, such as 8 | - author's name and avatar (opens user profile page when clicked); 9 | - PR name (opens MR when clicked); 10 | - name of the repository; 11 | - when was created; 12 | - number of comments; 13 | 14 |

15 | 16 |

17 | 18 | ## Customization 19 | 20 | It is possible to customize widget by providing a table with all or some of the following config parameters: 21 | 22 | | Name | Default | Description | 23 | |---|---|---| 24 | | `reviewer` | Required | GitHub username | 25 | 26 | ## Installation 27 | 28 | Install and setup [GitHub CLI](https://cli.github.com/) 29 | Clone/download repo and use widget in **rc.lua**: 30 | 31 | ```lua 32 | local github_prs_widget = require("awesome-wm-widgets.github-prs-widget") 33 | ... 34 | s.mytasklist, -- Middle widget 35 | { -- Right widgets 36 | layout = wibox.layout.fixed.horizontal, 37 | ... 38 | github_prs_widget { 39 | reviewer = 'streetturtle' 40 | }, 41 | } 42 | ... 43 | ``` 44 | -------------------------------------------------------------------------------- /github-prs-widget/icons/book.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-prs-widget/icons/calendar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-prs-widget/icons/git-pull-request.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-prs-widget/icons/message-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-prs-widget/icons/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /github-prs-widget/screenshots/screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/github-prs-widget/screenshots/screenshot1.png -------------------------------------------------------------------------------- /gitlab-widget/README.md: -------------------------------------------------------------------------------- 1 | # Gitlab widget 2 | 3 |

4 | GitHub issues by-label 5 |

6 | 7 | The widget shows the number of merge requests assigned to the user and when clicked shows additional information, such as 8 | - author's name and avatar (opens user profile page when clicked); 9 | - MR name (opens MR when clicked); 10 | - source and target branches; 11 | - when was created; 12 | - number of comments; 13 | - number of approvals. 14 | 15 | ![screenshot](./screenshot.png) 16 | 17 | ## Customization 18 | 19 | It is possible to customize widget by providing a table with all or some of the following config parameters: 20 | 21 | | Name | Default | Description | 22 | |---|---|---| 23 | | `icon` | `./icons/gitlab-icon.svg` | Path to the icon | 24 | | `host` | Required | e.g. `https://gitlab.yourcompany.com` | 25 | | `access_token` | Required | e.g. `h2v531iYASDz6McxYk4A` | 26 | | `timeout` | 60 | How often in seconds the widget should be refreshed | 27 | 28 | _Note:_ 29 | - to get the access token, go to **User Settings** -> **Access Tokens** and generate a token with **api** scope 30 | 31 | ## Installation 32 | 33 | Clone/download repo and use widget in **rc.lua**: 34 | 35 | ```lua 36 | local gitlab_widget = require("awesome-wm-widgets.gitlab-widget.gitlab") 37 | ... 38 | s.mytasklist, -- Middle widget 39 | { -- Right widgets 40 | layout = wibox.layout.fixed.horizontal, 41 | ... 42 | -- default 43 | gitlab_widget{ 44 | host = 'https://gitlab.yourcompany.com', 45 | access_token = 'h2v531iYASDz6McxYk4A' 46 | }, 47 | ... 48 | ``` 49 | -------------------------------------------------------------------------------- /gitlab-widget/icons/check.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gitlab-widget/icons/gitlab-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gitlab-widget/icons/message-circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gitlab-widget/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/gitlab-widget/screenshot.png -------------------------------------------------------------------------------- /jira-widget/README.md: -------------------------------------------------------------------------------- 1 | # Jira widget 2 | 3 | The widget shows the number of tickets assigned to the user (or any other result of a JQL query, see customization section) and when clicked shows them in the list, grouped by the ticket status. Left-click on the item opens the issue in the default browser: 4 | 5 |

6 | screenshot 7 |

8 | 9 | ## How it works 10 | 11 | Widget uses cURL to query Jira's [REST API](https://developer.atlassian.com/server/jira/platform/rest-apis/). In order to be authenticated, widget uses a [netrc](https://ec.haxx.se/usingcurl/usingcurl-netrc) feature of the cURL, which is basically to store basic auth credentials in a .netrc file in home folder. 12 | 13 | If you are on Atlassian Cloud, then instead of providing a password in netrc file you can set an [API token](https://confluence.atlassian.com/cloud/api-tokens-938839638.html) which is a safer option, as you can revoke/change the token at any time. 14 | 15 | ## Customization 16 | 17 | It is possible to customize widget by providing a table with all or some of the following config parameters: 18 | 19 | | Name | Default | Description | 20 | |---|---|---| 21 | | `host` | Required | e.g. `http://jira.tmnt.com` | 22 | | `query` | `jql=assignee=currentuser() AND resolution=Unresolved` | JQL query | 23 | | `icon` | `~/.config/awesome/awesome-wm-widgets/jira-widget/jira-mark-gradient-blue.svg` | Path to the icon | 24 | | `timeout` | 600 | How often in seconds the widget refreshes | 25 | 26 | ## Installation 27 | 28 | Create a .netrc file in your home directory with following content: 29 | 30 | ```bash 31 | machine turtlejira.com 32 | login mikey@tmnt.com 33 | password cowabunga 34 | ``` 35 | 36 | Then change file's permissions to 600 (so only you can read/write it): 37 | 38 | ```bash 39 | chmod 600 ~/.netrc 40 | ``` 41 | And test if it works by calling the API (`-n` option is to use the .netrc file for authentication): 42 | 43 | ```bash 44 | curl -n 'https://turtleninja.com/rest/api/2/search?jql=assignee=currentuser()+AND+resolution=Unresolved' 45 | ``` 46 | 47 | Clone/download repo and use the widget in **rc.lua**: 48 | 49 | ```lua 50 | local jira_widget = require("awesome-wm-widgets.jira-widget.jira") 51 | ... 52 | s.mytasklist, -- Middle widget 53 | { -- Right widgets 54 | layout = wibox.layout.fixed.horizontal, 55 | ... 56 | -- default 57 | jira_widget({host = 'http://jira.tmnt.com'}), 58 | ... 59 | ``` 60 | -------------------------------------------------------------------------------- /jira-widget/icon/jira-mark-gradient-blue.svg: -------------------------------------------------------------------------------- 1 | jira-icon-gradient-blue -------------------------------------------------------------------------------- /jira-widget/screenshot/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/jira-widget/screenshot/screenshot.png -------------------------------------------------------------------------------- /logout-menu-widget/README.md: -------------------------------------------------------------------------------- 1 | # Logout Menu Widget 2 | 3 | This widget shows a menu with options to log out from the current session, lock, reboot, suspend and power off the computer, similar to [logout-popup-widget](https://github.com/streetturtle/awesome-wm-widgets/tree/master/logout-popup-widget): 4 | 5 | ![demo](./logout-menu.gif) 6 | 7 | ## Installation 8 | 9 | Clone this repo (if not cloned yet) under **./.config/awesome/** 10 | 11 | ```bash 12 | cd ./.config/awesome/ 13 | git clone https://github.com/streetturtle/awesome-wm-widgets 14 | ``` 15 | Then add the widget to the wibar: 16 | 17 | ```lua 18 | local logout_menu_widget = require("awesome-wm-widgets.logout-menu-widget.logout-menu") 19 | 20 | s.mytasklist, -- Middle widget 21 | { -- Right widgets 22 | layout = wibox.layout.fixed.horizontal, 23 | ... 24 | -- default 25 | logout_menu_widget(), 26 | -- custom 27 | logout_menu_widget{ 28 | font = 'Play 14', 29 | onlock = function() awful.spawn.with_shell('i3lock-fancy') end 30 | } 31 | ... 32 | ``` 33 | 34 | ## Customization 35 | 36 | It is possible to customize the widget by providing a table with all or some of the following config parameters: 37 | 38 | | Name | Default | Description | 39 | |---|---|---| 40 | | `font` | `beautiful.font` | Font of the menu items | 41 | | `onlogout` | `function() awesome.quit() end` | Function which is called when the logout item is clicked | 42 | | `onlock` | `function() awful.spawn.with_shell("i3lock") end` | Function which is called when the lock item is clicked | 43 | | `onreboot` | `function() awful.spawn.with_shell("reboot") end` | Function which is called when the reboot item is clicked | 44 | | `onsuspend` | `function() awful.spawn.with_shell("systemctl suspend") end` | Function which is called when the suspend item is clicked | 45 | | `onpoweroff` | `function() awful.spawn.with_shell("shutdown now") end` | Function which is called when the poweroff item is clicked | 46 | -------------------------------------------------------------------------------- /logout-menu-widget/icons/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logout-menu-widget/icons/log-out.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logout-menu-widget/icons/moon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logout-menu-widget/icons/power.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logout-menu-widget/icons/power_w.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logout-menu-widget/icons/refresh-cw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logout-menu-widget/logout-menu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/logout-menu-widget/logout-menu.gif -------------------------------------------------------------------------------- /logout-popup-widget/logout-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/logout-popup-widget/logout-dark.png -------------------------------------------------------------------------------- /logout-popup-widget/logout-dracula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/logout-popup-widget/logout-dracula.png -------------------------------------------------------------------------------- /logout-popup-widget/logout-nord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/logout-popup-widget/logout-nord.png -------------------------------------------------------------------------------- /logout-popup-widget/logout-outrun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/logout-popup-widget/logout-outrun.png -------------------------------------------------------------------------------- /logout-popup-widget/power.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logout-popup-widget/screenshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/logout-popup-widget/screenshot.gif -------------------------------------------------------------------------------- /logout-popup-widget/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/logout-popup-widget/screenshot.png -------------------------------------------------------------------------------- /mpdarc-widget/README.md: -------------------------------------------------------------------------------- 1 | # MPD Widget 2 | 3 | Music Player Daemon widget by @raphaelfournier. 4 | 5 | # Prerequisite 6 | 7 | Install `mpd` (Music Player Daemon itself) and `mpc` (Music Player Client - program for controlling mpd), both should be available in repo, e.g. for Ubuntu: 8 | 9 | ```bash 10 | sudo apt-get install mpd mpc 11 | ``` 12 | 13 | ## Installation 14 | 15 | To use this widget clone repo under **~/.config/awesome/** and then add it in **rc.lua**: 16 | 17 | ```lua 18 | local mpdarc_widget = require("awesome-wm-widgets.mpdarc-widget.mpdarc") 19 | ... 20 | s.mytasklist, -- Middle widget 21 | { -- Right widgets 22 | layout = wibox.layout.fixed.horizontal, 23 | ... 24 | mpdarc_widget, 25 | ... 26 | ``` 27 | -------------------------------------------------------------------------------- /mpris-widget/README.md: -------------------------------------------------------------------------------- 1 | # MPRIS Widget (In progress) 2 | 3 | Music Player Info widget cy @mgabs 4 | 5 | # Prerequisite 6 | 7 | Install `playerctl` (mpris implementation), should be available in repo, e.g. for Ubuntu: 8 | 9 | ```bash 10 | sudo apt-get install playerctl 11 | ``` 12 | 13 | ## Installation 14 | 15 | To use this widget clone repo under **~/.config/awesome/** and then add it in **rc.lua**: 16 | 17 | ```lua 18 | local mpris_widget = require("awesome-wm-widgets.mpris-widget") 19 | ... 20 | s.mytasklist, -- Middle widget 21 | { -- Right widgets 22 | layout = wibox.layout.fixed.horizontal, 23 | ... 24 | mpris_widget(), 25 | ... 26 | ``` 27 | -------------------------------------------------------------------------------- /net-speed-widget/README.md: -------------------------------------------------------------------------------- 1 | # Net Speed Widget 2 | 3 | The widget and readme is in progress 4 | 5 | ## Installation 6 | 7 | Please refer to the [installation](https://github.com/streetturtle/awesome-wm-widgets#installation) section of the repo. 8 | 9 | Clone repo, include widget and use it in **rc.lua**: 10 | 11 | ```lua 12 | local net_speed_widget = require("awesome-wm-widgets.net-speed-widget.net-speed") 13 | ... 14 | s.mytasklist, -- Middle widget 15 | { -- Right widgets 16 | layout = wibox.layout.fixed.horizontal, 17 | ... 18 | net_speed_widget(), 19 | ... 20 | } 21 | ... 22 | ``` 23 | -------------------------------------------------------------------------------- /net-speed-widget/icons/down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /net-speed-widget/icons/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /pacman-widget/README.md: -------------------------------------------------------------------------------- 1 | # Pacman widget for AwesomeWM 2 | 3 | This widget displays the number of upgradable Pacman packages. Clicking the icon reveals a scrollable list of available upgrades. A full system upgrade can be performed from the widget via Polkit. 4 | 5 | ![](screenshots/pacman.gif) 6 | 7 | ## Requirements 8 | `lxpolkit` is the default [Polkit agent](https://wiki.archlinux.org/title/Polkit). 9 | 10 | The widget also uses the `checkupdates` script from the `pacman-contrib` package. 11 | 12 | 13 | ## Installation 14 | 15 | Clone the repo under **~/.config/awesome/** and add the following to **rc.lua**: 16 | 17 | ```lua 18 | local pacman_widget = require('awesome-wm-widgets.pacman-widget.pacman') 19 | ... 20 | s.mytasklist, -- Middle widget 21 | { -- Right widgets 22 | layout = wibox.layout.fixed.horizontal, 23 | ... 24 | -- default 25 | pacman_widget(), 26 | -- custom (shown with defaults) 27 | pacman_widget { 28 | interval = 600, -- Refresh every 10 minutes 29 | popup_bg_color = '#222222', 30 | popup_border_width = 1, 31 | popup_border_color = '#7e7e7e', 32 | popup_height = 10, -- 10 packages shown in scrollable window 33 | popup_width = 300, 34 | polkit_agent_path = '/usr/bin/lxpolkit' 35 | }, 36 | ``` 37 | 38 | -------------------------------------------------------------------------------- /pacman-widget/screenshots/pacman.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/pacman-widget/screenshots/pacman.gif -------------------------------------------------------------------------------- /pacman-widget/upgrade: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | pkexec --disable-internal-agent pacman -Syu --noconfirm 3 | -------------------------------------------------------------------------------- /pactl-widget/README.md: -------------------------------------------------------------------------------- 1 | # Pactl volume widget 2 | 3 | This is a volume widget that uses `pactl` only for controlling volume and 4 | selecting sinks and sources. Hence, it can be used with PulseAudio or PipeWire 5 | likewise, unlike the original Volume widget. 6 | 7 | Other than that it is heavily based on the original widget, including its 8 | customization and icon options. For screenshots, see the original widget. 9 | 10 | ## Installation 11 | 12 | Clone the repo under **~/.config/awesome/** and add widget in **rc.lua**: 13 | 14 | ```lua 15 | local volume_widget = require('awesome-wm-widgets.pactl-widget.volume') 16 | ... 17 | s.mytasklist, -- Middle widget 18 | { -- Right widgets 19 | layout = wibox.layout.fixed.horizontal, 20 | ... 21 | -- default 22 | volume_widget(), 23 | -- customized 24 | volume_widget{ 25 | widget_type = 'arc' 26 | }, 27 | ``` 28 | 29 | ### Shortcuts 30 | 31 | To improve responsiveness of the widget when volume level is changed by a shortcut use corresponding methods of the widget: 32 | 33 | ```lua 34 | awful.key({}, "XF86AudioRaiseVolume", function () volume_widget:inc(5) end), 35 | awful.key({}, "XF86AudioLowerVolume", function () volume_widget:dec(5) end), 36 | awful.key({}, "XF86AudioMute", function () volume_widget:toggle() end), 37 | ``` 38 | 39 | ## Customization 40 | 41 | It is possible to customize the widget by providing a table with all or some of 42 | the following config parameters: 43 | 44 | ### Generic parameter 45 | 46 | | Name | Default | Description | 47 | |---|---|---| 48 | | `mixer_cmd` | `pavucontrol` | command to run on middle click (e.g. a mixer program) | 49 | | `step` | 5 | How much the volume is raised or lowered at once (in %) | 50 | | `widget_type`| `icon_and_text`| Widget type, one of `horizontal_bar`, `vertical_bar`, `icon`, `icon_and_text`, `arc` | 51 | | `device` | `@DEFAULT_SINK@` | Select the device name to control | 52 | | `tooltip` | false | Display volume level in a tooltip when the mouse cursor hovers the widget | 53 | 54 | For more details on parameters depending on the chosen widget type, please 55 | refer to the original Volume widget. 56 | -------------------------------------------------------------------------------- /pactl-widget/utils.lua: -------------------------------------------------------------------------------- 1 | local utils = {} 2 | 3 | 4 | function utils.trim(str) 5 | return string.match(str, "^%s*(.-)%s*$") 6 | end 7 | 8 | function utils.split(string_to_split, separator) 9 | if separator == nil then separator = "%s" end 10 | local t = {} 11 | 12 | for str in string.gmatch(string_to_split, "([^".. separator .."]+)") do 13 | table.insert(t, str) 14 | end 15 | 16 | return t 17 | end 18 | 19 | function utils.popen_and_return(cmd) 20 | local handle = io.popen(cmd) 21 | local result = handle:read("*a") 22 | handle:close() 23 | 24 | return result 25 | end 26 | 27 | 28 | return utils 29 | -------------------------------------------------------------------------------- /pomodoroarc-widget/README.md: -------------------------------------------------------------------------------- 1 | # Pomodoro Widget 2 | 3 | :construction: This widget is under construction :construction_worker: 4 | 5 | ## Installation 6 | 7 | This widget is based on [@jsspencer](https://github.com/jsspencer)' [pomo](https://github.com/jsspencer/pomo) - a simple pomodoro timer. 8 | So first install/clone it anywhere you like, then either 9 | - in widget's code provide path to the pomo.sh, or 10 | - add pomo.sh to the PATH, or 11 | - make a soft link in /usr/local/bin/ to it: 12 | ```bash 13 | sudo ln -sf /opt/pomodoro/pomo.sh /usr/local/bin/pomo 14 | ``` 15 | 16 | Note that by default widget's code expects third way and calls script by `pomo`. -------------------------------------------------------------------------------- /ram-widget/README.md: -------------------------------------------------------------------------------- 1 | # Ram widget 2 | 3 | This widget shows the RAM usage. When clicked another widget appears with more detailed information: 4 | 5 | ![screenshot](./out.gif) 6 | 7 | Note: this widget is compatible with Awesome v4.3+, as it is using [awful.popup](https://awesomewm.org/doc/api/classes/awful.popup.html) 8 | 9 | ## Customization 10 | 11 | It is possible to customize widget by providing a table with all or some of the following config parameters: 12 | 13 | | Name | Default | Description | 14 | |---|---|---| 15 | | `color_used` | `beautiful.bg_urgent` | Color for used RAM | 16 | | `color_free` | `beautiful.fg_normal` | Color for free RAM | 17 | | `color_buf` | `beautiful.border_color_active` | Color for buffers/cache | 18 | | `widget_height` | 25 | Height of the widget | 19 | | `widget_width` | 25 | Width of the widget | 20 | | `widget_show_buf` | false | Whether to display buffers/cache separately in the tray widget. If `false`, buffers/cache are considered free RAM. | 21 | | `timeout` | 1 | How often in seconds the widget refreshes | 22 | 23 | ## Installation 24 | 25 | Please refer to the [installation](https://github.com/streetturtle/awesome-wm-widgets#installation) section of the repo. 26 | 27 | Clone repo, include widget and use it in **rc.lua**: 28 | 29 | ```lua 30 | local ram_widget = require("awesome-wm-widgets.ram-widget.ram-widget") 31 | ... 32 | s.mytasklist, -- Middle widget 33 | { -- Right widgets 34 | layout = wibox.layout.fixed.horizontal, 35 | ... 36 | ram_widget(), 37 | ... 38 | } 39 | ... 40 | ``` 41 | 42 | -------------------------------------------------------------------------------- /ram-widget/out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/ram-widget/out.gif -------------------------------------------------------------------------------- /run-shell-2/run.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | 3 | local icon = { 4 | { 5 | markup = 'a', 6 | widget = wibox.widget.textbox, 7 | }, 8 | id = 'icon', 9 | top = 2, 10 | left = 10, 11 | layout = wibox.container.margin 12 | } 13 | 14 | local text = 'Run: ' 15 | 16 | return { 17 | icon = icon, 18 | text = text, 19 | cursor_color = '#74aeab', 20 | history = '/history' 21 | } -------------------------------------------------------------------------------- /run-shell-3/README.md: -------------------------------------------------------------------------------- 1 | # Run Shell 2 | 3 | Blurs / pixelates background and shows widget with run prompt: 4 | 5 | ![screenshot](./blur.png) 6 | 7 | ![screenshot](./pixelate.png) 8 | 9 | ## Installation 10 | 11 | 1. To blur / pixelate the background this widget used [ffmpeg](https://www.ffmpeg.org/) and [frei0r](https://frei0r.dyne.org/) plugins (if you want to pixelate the background), which you need to install. Installation of those depends on your distribution, for ffmpeg just follow the installation section of the site, for frei0r I was able to install it by simply running 12 | 13 | ``` 14 | sudo apt-get install frei0r-plugins 15 | ``` 16 | 17 | 1. Clone this repo under **~/.config/awesome/**: 18 | 19 | ```bash 20 | git clone https://github.com/streetturtle/awesome-wm-widgets.git ~/.config/awesome/awesome-wm-widgets 21 | ``` 22 | 23 | 1. Require widget at the beginning of **rc.lua**: 24 | 25 | ```lua 26 | local run_shell = require("awesome-wm-widgets.run-shell-3.run-shell") 27 | ``` 28 | 29 | 1. Use it (don't forget to comment out the default prompt): 30 | 31 | ```lua 32 | awful.key({modkey}, "r", function () run_shell.launch() end), 33 | ``` 34 | :warning: I am not 100% sure but it may (memory) leak. If awesome uses lots of RAM just reload config (Ctrl + Mod4 + r). 35 | -------------------------------------------------------------------------------- /run-shell-3/blur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/run-shell-3/blur.png -------------------------------------------------------------------------------- /run-shell-3/pixelate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/run-shell-3/pixelate.png -------------------------------------------------------------------------------- /run-shell/README.md: -------------------------------------------------------------------------------- 1 | # Run Shell 2 | 3 | Run prompt which is put inside a widget: 4 | 5 | [Demo](https://imgur.com/ohjAuCQ.mp4) 6 | 7 | ## Installation 8 | 9 | 1. Clone this repo under **~/.config/awesome/**: 10 | 11 | ```bash 12 | git clone https://github.com/streetturtle/awesome-wm-widgets.git ~/.config/awesome/awesome-wm-widgets 13 | ``` 14 | 15 | 1. Require widget at the beginning of **rc.lua**: 16 | 17 | ```lua 18 | local run_shell = require("awesome-wm-widgets.run-shell.run-shell") 19 | ``` 20 | 21 | 1. Use it (don't forget to comment out the default prompt): 22 | 23 | ```lua 24 | awful.key({modkey}, "r", function () run_shell.launch() end), 25 | 26 | -------------------------------------------------------------------------------- /run-shell/out.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/run-shell/out.mp4 -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/screenshot.png -------------------------------------------------------------------------------- /screenshot_with_sprtrs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/screenshot_with_sprtrs.png -------------------------------------------------------------------------------- /scripts/update_site.sh: -------------------------------------------------------------------------------- 1 | mkdir ./_widgets 2 | for D in *; do 3 | if [[ -d "${D}" ]] && [[ ${D} == *"-widget"* ]]; then 4 | echo "${D}" 5 | cp ${D}/README.md ./_widgets/${D}.md 6 | sed -i '1s/^/---\nlayout: page\n---\n/' ./_widgets/${D}.md 7 | 8 | mkdir -p ./assets/img/widgets/screenshots/${D} 9 | 10 | find ${D}/ \( -name '*.jpg' -o -name '*.png' -o -name '*.gif' \) -exec cp '{}' ./assets/img/widgets/screenshots/${D} \; 11 | 12 | sed -i "s/](\.\(\/screenshots\)\{0,1\}/](..\/awesome-wm-widgets\/assets\/img\/widgets\/screenshots\/$D/g" ./_widgets/${D}.md 13 | fi 14 | done 15 | -------------------------------------------------------------------------------- /spotify-shell/README.md: -------------------------------------------------------------------------------- 1 | # Spotify Shell 2 | 3 | 4 | ![demo](./demo.gif) 5 | 6 | ## Features 7 | 8 | 1. Supports following commands (same as `sp` client): 9 | - `play`/`pause`/`next`; 10 | - any other string will start a search and play the first result for a given search query; 11 | - feh - shows the current artwork with `feh`; 12 | 13 | 1. Stores history and allows navigating through it; 14 | 15 | 1. Highly customizable 16 | 17 | ## Controls 18 | 19 | Keyboard navigation (copied from [`awful.prompt`](https://awesomewm.org/doc/api/libraries/awful.prompt.html) API documentation page): 20 | 21 | | Name | Usage | 22 | |---|---| 23 | | CTRL+A | beginning-of-line | 24 | | CTRL+B | backward-char | 25 | | CTRL+C | cancel | 26 | | CTRL+D | delete-char | 27 | | CTRL+E | end-of-line | 28 | | CTRL+J | accept-line | 29 | | CTRL+M | accept-line | 30 | | CTRL+F | move-cursor-right | 31 | | CTRL+H | backward-delete-char | 32 | | CTRL+K | kill-line | 33 | | CTRL+U | unix-line-discard | 34 | | CTRL+W | unix-word-rubout | 35 | | CTRL+BACKSPACE | unix-word-rubout | 36 | | SHIFT+INSERT | paste | 37 | | HOME | beginning-of-line | 38 | | END | end-of-line | 39 | | CTRL+R | reverse history search, matches any history entry containing search term. | 40 | | CTRL+S | forward history search, matches any history entry containing search term. | 41 | | CTRL+UP | ZSH up line or search, matches any history entry starting with search term. | 42 | | CTRL+DOWN | ZSH down line or search, matches any history entry starting with search term. | 43 | | CTRL+DELETE | delete the currently visible history entry from history file. This does not delete new commands or history entries under user editing. | 44 | 45 | 46 | ## Installation 47 | 48 | 1. Install [sp](https://gist.github.com/streetturtle/fa6258f3ff7b17747ee3) - CLI client for [Spotify for Linux](https://www.spotify.com/ca-en/download/linux/): 49 | 50 | ```bash 51 | $ sudo git clone https://gist.github.com/fa6258f3ff7b17747ee3.git ~/dev/ 52 | $ sudo ln -s ~/dev/sp /usr/local/bin/ 53 | ``` 54 | 55 | Check if it works by running `sp help`. 56 | 57 | 1. Get an 'id' and 'secret' from [developer.spotify.com](https://beta.developer.spotify.com/documentation/general/guides/app-settings/) and paste it in the header of the `sp` (`SP_ID` and `SP_SECRET`) - this enables search feature. 58 | 59 | 1. Clone this repo under **~/.config/awesome/** 60 | 61 | 1. Require spotify-shell at the beginning of **rc.lua**: 62 | 63 | ```lua 64 | local spotify_shell = require("awesome-wm-widgets.spotify-shell.spotify-shell") 65 | ``` 66 | 67 | 1. Add a shortcut which will show Spotify Shell widget: 68 | 69 | ```lua 70 | awful.key({ modkey, }, "d", function () spotify_shell.launch() end, {description = "spotify shell", group = "music"}), 71 | ``` 72 | 73 | 1. It uses icon from [Papirus Icon Theme](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme). So you should either install this icon theme, or download an icon you want to use and provide path to it in **spotify-shell.lua**. 74 | -------------------------------------------------------------------------------- /spotify-shell/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/spotify-shell/demo.gif -------------------------------------------------------------------------------- /spotify-shell/spotify-shell.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------------- 2 | -- Spotify Shell for Awesome Window Manager 3 | -- Simplifies interaction with Spotify for Linux 4 | -- More details could be found here: 5 | -- https://github.com/streetturtle/awesome-wm-widgets/tree/master/spotify-shell 6 | 7 | -- @author Pavel Makhov 8 | -- @copyright 2018 Pavel Makhov 9 | ------------------------------------------------- 10 | 11 | local awful = require("awful") 12 | local gfs = require("gears.filesystem") 13 | local wibox = require("wibox") 14 | local gears = require("gears") 15 | 16 | local ICON = '/usr/share/icons/Papirus-Light/32x32/apps/spotify-linux-48x48.svg' 17 | 18 | local spotify_shell = awful.widget.prompt() 19 | 20 | local w = wibox { 21 | bg = '#1e252c', 22 | border_width = 1, 23 | border_color = '#84bd00', 24 | max_widget_size = 500, 25 | ontop = true, 26 | height = 50, 27 | width = 250, 28 | shape = function(cr, width, height) 29 | gears.shape.rounded_rect(cr, width, height, 3) 30 | end 31 | } 32 | 33 | w:setup { 34 | { 35 | { 36 | image = ICON, 37 | widget = wibox.widget.imagebox, 38 | resize = false 39 | }, 40 | id = 'icon', 41 | top = 9, 42 | left = 10, 43 | layout = wibox.container.margin 44 | }, 45 | { 46 | layout = wibox.container.margin, 47 | left = 10, 48 | spotify_shell, 49 | }, 50 | id = 'left', 51 | layout = wibox.layout.fixed.horizontal 52 | } 53 | 54 | local function launch() 55 | w.visible = true 56 | 57 | awful.placement.top(w, { margins = {top = 40}, parent = awful.screen.focused()}) 58 | awful.prompt.run{ 59 | prompt = "Spotify Shell: ", 60 | bg_cursor = '#84bd00', 61 | textbox = spotify_shell.widget, 62 | history_path = gfs.get_dir('cache') .. '/spotify_history', 63 | exe_callback = function(input_text) 64 | if not input_text or #input_text == 0 then return end 65 | awful.spawn("sp " .. input_text) 66 | end, 67 | done_callback = function() 68 | w.visible = false 69 | end 70 | } 71 | end 72 | 73 | return { 74 | launch = launch 75 | } 76 | -------------------------------------------------------------------------------- /spotify-widget/spo-wid-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/spotify-widget/spo-wid-1.png -------------------------------------------------------------------------------- /spotify-widget/spotify-widget-custom-paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/spotify-widget/spotify-widget-custom-paused.png -------------------------------------------------------------------------------- /spotify-widget/spotify-widget-custom-playing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/spotify-widget/spotify-widget-custom-playing.png -------------------------------------------------------------------------------- /stackoverflow-widget/README.md: -------------------------------------------------------------------------------- 1 | # Stackoverflow widget 2 | 3 | When clicked, widget shows latest questions from stackoverflow.com with a given tag(s). 4 | 5 | ![screenshot](./screenshot.png) 6 | 7 | ## Customization 8 | 9 | It is possible to customize widget by providing a table with all or some of the following config parameters: 10 | 11 | | Name | Default | Description | 12 | |---|---|---| 13 | | `icon`| `/.config/awesome/awesome-wm-widgets/stackoverflow-widget/so-icon.svg` | Path to the icon | 14 | | `limit` | 5 | Number of items to show in the widget | 15 | | `tagged` | `awesome-wm` | Tag, or comma-separated tags | 16 | | `timeout` | 300 | How often in seconds the widget refreshes | 17 | 18 | ## Installation 19 | 20 | 1. Clone this repo (if not cloned yet) under **~/.config/awesome/**: 21 | 22 | ```bash 23 | git clone https://github.com/streetturtle/awesome-wm-widgets.git ~/.config/awesome/ 24 | ``` 25 | 26 | 1. Require widget at the top of the **rc.lua**: 27 | 28 | ```lua 29 | local stackoverflow_widget = require("awesome-wm-widgets.stackoverflow-widget.stackoverflow") 30 | ``` 31 | 32 | 1. Add widget to the tasklist: 33 | 34 | ```lua 35 | s.mytasklist, -- Middle widget 36 | { -- Right widgets 37 | layout = wibox.layout.fixed.horizontal, 38 | ... 39 | --default 40 | stackoverflow_widget(), 41 | --customized 42 | stackoverflow_widget({ 43 | limit = 10 44 | }) 45 | ... 46 | ``` 47 | 48 | -------------------------------------------------------------------------------- /stackoverflow-widget/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/stackoverflow-widget/screenshot.png -------------------------------------------------------------------------------- /stackoverflow-widget/so-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /todo-widget/README.md: -------------------------------------------------------------------------------- 1 | # ToDo Widget 2 | 3 | This widget displays a list of todo items and allows marking item as done/undone, delete an item and create new ones: 4 | 5 | ![screenshot](./todo.gif) 6 | 7 | # Installation 8 | 9 | Widget persists todo items as a JSON, so in order to simplify JSON serialisation/deserialisation download a **json.lua** from this repository: https://github.com/rxi/json.lua under `~/.config/awesone` folder. And don't forget to star a repo :) 10 | 11 | Then clone this repository under **~/.config/awesome/** and add the widget in **rc.lua**: 12 | 13 | ```lua 14 | local todo_widget = require("awesome-wm-widgets.todo-widget.todo") 15 | ... 16 | s.mytasklist, -- Middle widget 17 | { -- Right widgets 18 | layout = wibox.layout.fixed.horizontal, 19 | ... 20 | -- default 21 | todo_widget(), 22 | ... 23 | ``` 24 | Also note that widget uses [Arc Icons](https://github.com/horst3180/arc-icon-theme) and expects them to be installed under `/usr/share/icons/Arc/`. 25 | 26 | # Theming 27 | 28 | Widget uses your theme's colors. In case you want to have different colors, without changing your theme, please create an issue for it. I'll extract them as widget parameters. 29 | -------------------------------------------------------------------------------- /todo-widget/chevron-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /todo-widget/chevron-up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /todo-widget/todo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/todo-widget/todo.gif -------------------------------------------------------------------------------- /translate-widget/README.MD: -------------------------------------------------------------------------------- 1 | # Translate Widget 2 | 3 | This widget allows quickly translate words or phrases without opening a browser - just using Awesome. To provide direction of the translation add the 2 letters code of the source and target languages at the end of the phrase, for example _hello enfr_ will translate _hello_ from English to French. This widget is based on [Watson Language Translator](https://www.ibm.com/watson/services/language-translator/) from IBM. 4 | 5 | ![demo](./demo.gif) 6 | 7 | ## Controls 8 | 9 | - Mod4 + c - opens a translate prompt; 10 | - left click on the popup widget - copies the translation to the clipboard and closes widget; 11 | - right click on the popup widget - copies text to translate to the clipboard and closes widget. 12 | 13 | ## Installation 14 | 15 | 1. Clone repo under **~/.config/awesome/** 16 | 1. Create an IBM Cloud API key at [cloud.ibm.com/iam/apikeys](https://cloud.ibm.com/iam/apikeys) 17 | 1. Copy a service URL by going to [resource list](https://cloud.ibm.com/resources), then under "Services" select "Language Translator" option, and then copy URL from the "Credentials" section 18 | 1. Require widget in **rc.lua**: 19 | 20 | ```lua 21 | local translate = require("awesome-wm-widgets.translate-widget.translate") 22 | ``` 23 | 24 | 1. Add a shortcut to run translate prompt: 25 | 26 | ```lua 27 | awful.key({ modkey }, "c", function() 28 | translate.launch{api_key = '', url = 'url'} 29 | end, { description = "run translate prompt", group = "launcher" }) 30 | ``` 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /translate-widget/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/translate-widget/demo.gif -------------------------------------------------------------------------------- /translate-widget/demo1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/translate-widget/demo1.gif -------------------------------------------------------------------------------- /translate-widget/gnome-translate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /volume-widget/screenshots/variations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/volume-widget/screenshots/variations.png -------------------------------------------------------------------------------- /volume-widget/screenshots/volume-sink-sources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/volume-widget/screenshots/volume-sink-sources.png -------------------------------------------------------------------------------- /volume-widget/volume-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /volume-widget/widgets/arc-widget.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | local beautiful = require('beautiful') 3 | 4 | local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/' 5 | 6 | local widget = {} 7 | 8 | function widget.get_widget(widgets_args) 9 | local args = widgets_args or {} 10 | 11 | local thickness = args.thickness or 2 12 | local main_color = args.main_color or beautiful.fg_color 13 | local bg_color = args.bg_color or '#ffffff11' 14 | local mute_color = args.mute_color or beautiful.fg_urgent 15 | local size = args.size or 18 16 | 17 | return wibox.widget { 18 | { 19 | id = "icon", 20 | image = ICON_DIR .. 'audio-volume-high-symbolic.svg', 21 | resize = true, 22 | widget = wibox.widget.imagebox, 23 | }, 24 | max_value = 100, 25 | thickness = thickness, 26 | start_angle = 4.71238898, -- 2pi*3/4 27 | forced_height = size, 28 | forced_width = size, 29 | bg = bg_color, 30 | paddings = 2, 31 | widget = wibox.container.arcchart, 32 | set_volume_level = function(self, new_value) 33 | self.value = new_value 34 | end, 35 | mute = function(self) 36 | self.colors = { mute_color } 37 | end, 38 | unmute = function(self) 39 | self.colors = { main_color } 40 | end 41 | } 42 | 43 | end 44 | 45 | 46 | return widget -------------------------------------------------------------------------------- /volume-widget/widgets/horizontal-bar-widget.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | local beautiful = require('beautiful') 3 | local gears = require("gears") 4 | 5 | local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/' 6 | 7 | local widget = {} 8 | 9 | function widget.get_widget(widgets_args) 10 | local args = widgets_args or {} 11 | 12 | local main_color = args.main_color or beautiful.fg_normal 13 | local mute_color = args.mute_color or beautiful.fg_urgent 14 | local bg_color = args.bg_color or '#ffffff11' 15 | local width = args.width or 50 16 | local margins = args.margins or 10 17 | local shape = args.shape or gears.shape.bar 18 | local with_icon = args.with_icon == true and true or false 19 | 20 | local bar = wibox.widget { 21 | { 22 | { 23 | id = "icon", 24 | image = ICON_DIR .. 'audio-volume-high-symbolic.svg', 25 | resize = false, 26 | widget = wibox.widget.imagebox, 27 | }, 28 | valign = 'center', 29 | visible = with_icon, 30 | layout = wibox.container.place, 31 | }, 32 | { 33 | id = 'bar', 34 | max_value = 100, 35 | forced_width = width, 36 | color = main_color, 37 | margins = { top = margins, bottom = margins }, 38 | background_color = bg_color, 39 | shape = shape, 40 | bar_shape = shape, 41 | widget = wibox.widget.progressbar, 42 | }, 43 | spacing = 4, 44 | layout = wibox.layout.fixed.horizontal, 45 | set_volume_level = function(self, new_value) 46 | self:get_children_by_id('bar')[1]:set_value(tonumber(new_value)) 47 | end, 48 | mute = function(self) 49 | self:get_children_by_id('bar')[1]:set_color(mute_color) 50 | end, 51 | unmute = function(self) 52 | self:get_children_by_id('bar')[1]:set_color(main_color) 53 | end 54 | } 55 | 56 | return bar 57 | end 58 | 59 | return widget 60 | -------------------------------------------------------------------------------- /volume-widget/widgets/icon-and-text-widget.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | local beautiful = require('beautiful') 3 | 4 | local widget = {} 5 | 6 | local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/' 7 | 8 | function widget.get_widget(widgets_args) 9 | local args = widgets_args or {} 10 | 11 | local font = args.font or beautiful.font 12 | local icon_dir = args.icon_dir or ICON_DIR 13 | 14 | return wibox.widget { 15 | { 16 | { 17 | id = "icon", 18 | resize = false, 19 | widget = wibox.widget.imagebox, 20 | }, 21 | valign = 'center', 22 | layout = wibox.container.place 23 | }, 24 | { 25 | id = 'txt', 26 | font = font, 27 | widget = wibox.widget.textbox 28 | }, 29 | layout = wibox.layout.fixed.horizontal, 30 | set_volume_level = function(self, new_value) 31 | self:get_children_by_id('txt')[1]:set_text(new_value) 32 | local volume_icon_name 33 | if self.is_muted then 34 | volume_icon_name = 'audio-volume-muted-symbolic' 35 | else 36 | local new_value_num = tonumber(new_value) 37 | if (new_value_num >= 0 and new_value_num < 33) then 38 | volume_icon_name="audio-volume-low-symbolic" 39 | elseif (new_value_num < 66) then 40 | volume_icon_name="audio-volume-medium-symbolic" 41 | else 42 | volume_icon_name="audio-volume-high-symbolic" 43 | end 44 | end 45 | self:get_children_by_id('icon')[1]:set_image(icon_dir .. volume_icon_name .. '.svg') 46 | end, 47 | mute = function(self) 48 | self.is_muted = true 49 | self:get_children_by_id('icon')[1]:set_image(icon_dir .. 'audio-volume-muted-symbolic.svg') 50 | end, 51 | unmute = function(self) 52 | self.is_muted = false 53 | end 54 | } 55 | 56 | end 57 | 58 | 59 | return widget -------------------------------------------------------------------------------- /volume-widget/widgets/icon-widget.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | 3 | local widget = {} 4 | 5 | local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/' 6 | 7 | function widget.get_widget(widgets_args) 8 | local args = widgets_args or {} 9 | 10 | local icon_dir = args.icon_dir or ICON_DIR 11 | 12 | return wibox.widget { 13 | { 14 | id = "icon", 15 | resize = false, 16 | widget = wibox.widget.imagebox, 17 | }, 18 | valign = 'center', 19 | layout = wibox.container.place, 20 | set_volume_level = function(self, new_value) 21 | local volume_icon_name 22 | if self.is_muted then 23 | volume_icon_name = 'audio-volume-muted-symbolic' 24 | else 25 | local new_value_num = tonumber(new_value) 26 | if (new_value_num >= 0 and new_value_num < 33) then 27 | volume_icon_name="audio-volume-low-symbolic" 28 | elseif (new_value_num < 66) then 29 | volume_icon_name="audio-volume-medium-symbolic" 30 | else 31 | volume_icon_name="audio-volume-high-symbolic" 32 | end 33 | end 34 | self:get_children_by_id('icon')[1]:set_image(icon_dir .. volume_icon_name .. '.svg') 35 | end, 36 | mute = function(self) 37 | self.is_muted = true 38 | self:get_children_by_id('icon')[1]:set_image(icon_dir .. 'audio-volume-muted-symbolic.svg') 39 | end, 40 | unmute = function(self) 41 | self.is_muted = false 42 | end 43 | } 44 | end 45 | 46 | return widget -------------------------------------------------------------------------------- /volume-widget/widgets/vertical-bar-widget.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | local beautiful = require('beautiful') 3 | local gears = require("gears") 4 | 5 | local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/' 6 | 7 | local widget = {} 8 | 9 | function widget.get_widget(widgets_args) 10 | local args = widgets_args or {} 11 | 12 | local main_color = args.main_color or beautiful.fg_normal 13 | local mute_color = args.mute_color or beautiful.fg_urgent 14 | local bg_color = args.bg_color or '#ffffff11' 15 | local width = args.width or 10 16 | local margins = args.height or 2 17 | local shape = args.shape or gears.shape.bar 18 | local with_icon = args.with_icon == true and true or false 19 | 20 | local bar = wibox.widget { 21 | { 22 | { 23 | id = "icon", 24 | image = ICON_DIR .. 'audio-volume-high-symbolic.svg', 25 | resize = false, 26 | widget = wibox.widget.imagebox, 27 | }, 28 | valign = 'center', 29 | visible = with_icon, 30 | layout = wibox.container.place, 31 | }, 32 | { 33 | { 34 | id = 'bar', 35 | max_value = 100, 36 | forced_width = width, 37 | forced_height = 5, 38 | margins = { top = margins, bottom = margins }, 39 | color = main_color, 40 | background_color = bg_color, 41 | shape = shape, 42 | bar_shape = shape, 43 | widget = wibox.widget.progressbar, 44 | }, 45 | forced_width = width, 46 | direction = 'east', 47 | layout = wibox.container.rotate, 48 | }, 49 | spacing = 4, 50 | layout = wibox.layout.fixed.horizontal, 51 | set_volume_level = function(self, new_value) 52 | self:get_children_by_id('bar')[1]:set_value(tonumber(new_value)) 53 | end, 54 | mute = function(self) 55 | self:get_children_by_id('bar')[1]:set_color(mute_color) 56 | end, 57 | unmute = function(self) 58 | self:get_children_by_id('bar')[1]:set_color(main_color) 59 | end 60 | } 61 | 62 | return bar 63 | end 64 | 65 | return widget 66 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/broken-clouds-night.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/broken-clouds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/clear-sky.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/few-clouds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/rain-night.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/rain.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/scattered-clouds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/shower-rain-night.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/VitalyGorbachev/shower-rain.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/broken-clouds-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/broken-clouds-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/broken-clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/broken-clouds.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/clear-sky-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/clear-sky-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/clear-sky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/clear-sky.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/few-clouds-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/few-clouds-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/few-clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/few-clouds.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/mist-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/mist-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/mist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/mist.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/rain-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/rain-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/rain.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/scattered-clouds-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/scattered-clouds-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/scattered-clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/scattered-clouds.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/shower-rain-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/shower-rain-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/shower-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/shower-rain.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/snow-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/snow-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/snow.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/thunderstorm-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/thunderstorm-night.png -------------------------------------------------------------------------------- /weather-api-widget/icons/weather-underground-icons/thunderstorm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/icons/weather-underground-icons/thunderstorm.png -------------------------------------------------------------------------------- /weather-api-widget/locale/de.lua: -------------------------------------------------------------------------------- 1 | local de = { 2 | warning_title = "Wetter Widget", 3 | parameter_warning = "Folgende benötigte Parameter fehlen: ", 4 | directions = { 5 | "N", "NNO", "NO", "ONO", "O", "OSO", "SO", "SSO", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW", "N" 6 | }, 7 | feels_like = "Gefühlt: ", 8 | wind = "Wind: ", 9 | humidity = "Luftfeuchtigkeit: ", 10 | uv = "UV-Index: ", 11 | days = { 12 | Mon = "Mo", 13 | Tue = "Di", 14 | Wed = "Mi", 15 | Thu = "Do", 16 | Fri = "Fr", 17 | Sat = "Sa", 18 | Sun = "So", 19 | } 20 | } 21 | 22 | return de 23 | -------------------------------------------------------------------------------- /weather-api-widget/locale/en.lua: -------------------------------------------------------------------------------- 1 | local en = { 2 | warning_title = "Weather Widget", 3 | parameter_warning = "Required parameters are not set: ", 4 | directions = { 5 | "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", 6 | "WSW", "W", "WNW", "NW", "NNW", "N" 7 | }, 8 | feels_like = "Feels like ", 9 | wind = "Wind: ", 10 | humidity = "Humidity: ", 11 | uv = "UV: ", 12 | days = { 13 | Mon = "Mon", 14 | Tue = "Tue", 15 | Wed = "Wed", 16 | Thu = "Thu", 17 | Fri = "Fri", 18 | Sat = "Sat", 19 | Sun = "Sun", 20 | }, 21 | } 22 | 23 | return en 24 | -------------------------------------------------------------------------------- /weather-api-widget/locale/fr.lua: -------------------------------------------------------------------------------- 1 | local fr = { 2 | warning_title = "Widget Météo", 3 | parameter_warning = "Les paramètres suivants sont obligatoires : ", 4 | directions = { 5 | "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSO", "SO", 6 | "OSO", "O", "ONO", "NO", "NNO", "N" 7 | }, 8 | feels_like = "ressentie à ", 9 | wind = "Vent : ", 10 | humidity = "Humidité : ", 11 | uv = "Indice UV : ", 12 | days = { 13 | Mon = "Lu", 14 | Tue = "Ma", 15 | Wed = "Me", 16 | Thu = "Je", 17 | Fri = "Ve", 18 | Sat = "Sa", 19 | Sun = "Di", 20 | }, 21 | } 22 | 23 | return fr 24 | -------------------------------------------------------------------------------- /weather-api-widget/locale/pt.lua: -------------------------------------------------------------------------------- 1 | local pt = { 2 | warning_title = "Widget do tempo", 3 | parameter_warning = "Parâmetros necessários não definidos: ", 4 | directions = { 5 | "N", "NNE", "NE", "ENE", "L", "ESE", "SE", "SSE", "S", "SSO", "SO", 6 | "OSO", "O", "ONO", "NO", "NNO", "N" 7 | }, 8 | feels_like = "Sensação de ", 9 | wind = "Vento: ", 10 | humidity = "Umidade: ", 11 | uv = "UV: ", 12 | days = { 13 | Mon = "Mon", 14 | Tue = "Tue", 15 | Wed = "Wed", 16 | Thu = "Thu", 17 | Fri = "Fri", 18 | Sat = "Sat", 19 | Sun = "Sun", 20 | }, 21 | } 22 | 23 | return pt 24 | -------------------------------------------------------------------------------- /weather-api-widget/locale/ru.lua: -------------------------------------------------------------------------------- 1 | local ru = { 2 | warning_title = "Погода", 3 | parameter_warning = "Необходимые параметры не установлены: ", 4 | directions = { 5 | "С", "ССВ", "СВ", "ВСВ", "В", "ВЮВ", "ЮВ", "ЮЮВ", "Ю", "ЮЮЗ", "ЮЗ", 6 | "ЗЮЗ", "З", "ЗСЗ", "СЗ", "ССЗ", "С", 7 | }, 8 | feels_like = "Ощущается как ", 9 | wind = "Ветер: ", 10 | humidity = "Влажность: ", 11 | uv = "UV: ", 12 | days = { 13 | Mon = "Пн", 14 | Tue = "Вт", 15 | Wed = "Ср", 16 | Thu = "Чт", 17 | Fri = "Пт", 18 | Sat = "Сб", 19 | Sun = "Вс", 20 | } 21 | } 22 | 23 | return ru 24 | -------------------------------------------------------------------------------- /weather-api-widget/popup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-api-widget/popup.png -------------------------------------------------------------------------------- /weather-widget/both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/both.png -------------------------------------------------------------------------------- /weather-widget/example1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/example1.png -------------------------------------------------------------------------------- /weather-widget/example2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/example2.png -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/broken-clouds-night.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/broken-clouds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/clear-sky.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/few-clouds-night.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/few-clouds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/rain-night.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/rain.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/scattered-clouds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/shower-rain-night.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/VitalyGorbachev/shower-rain.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/broken-clouds-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/broken-clouds-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/broken-clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/broken-clouds.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/clear-sky-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/clear-sky-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/clear-sky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/clear-sky.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/few-clouds-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/few-clouds-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/few-clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/few-clouds.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/mist-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/mist-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/mist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/mist.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/rain-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/rain-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/rain.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/scattered-clouds-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/scattered-clouds-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/scattered-clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/scattered-clouds.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/shower-rain-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/shower-rain-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/shower-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/shower-rain.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/snow-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/snow-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/snow.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/thunderstorm-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/thunderstorm-night.png -------------------------------------------------------------------------------- /weather-widget/icons/weather-underground-icons/thunderstorm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/icons/weather-underground-icons/thunderstorm.png -------------------------------------------------------------------------------- /weather-widget/locale/de.lua: -------------------------------------------------------------------------------- 1 | local de = { 2 | warning_title = "Wetter Widget", 3 | parameter_warning = "Folgende benötigte Parameter fehlen: ", 4 | directions = { 5 | "N", "NNO", "NO", "ONO", "O", "OSO", "SO", "SSO", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW", "N" 6 | }, 7 | feels_like = "Gefühlt: ", 8 | wind = "Wind: ", 9 | humidity = "Luftfeuchtigkeit: ", 10 | uv = "UV-Index: " 11 | } 12 | 13 | return de 14 | -------------------------------------------------------------------------------- /weather-widget/locale/en.lua: -------------------------------------------------------------------------------- 1 | local en = { 2 | warning_title = "Weather Widget", 3 | parameter_warning = "Required parameters are not set: ", 4 | directions = { 5 | "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", 6 | "WSW", "W", "WNW", "NW", "NNW", "N" 7 | }, 8 | feels_like = "Feels like ", 9 | wind = "Wind: ", 10 | humidity = "Humidity: ", 11 | uv = "UV: " 12 | } 13 | 14 | return en 15 | -------------------------------------------------------------------------------- /weather-widget/locale/fr.lua: -------------------------------------------------------------------------------- 1 | local fr = { 2 | warning_title = "Widget Météo", 3 | parameter_warning = "Les paramètres suivants sont obligatoires : ", 4 | directions = { 5 | "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSO", "SO", 6 | "OSO", "O", "ONO", "NO", "NNO", "N" 7 | }, 8 | feels_like = "ressentie à ", 9 | wind = "Vent : ", 10 | humidity = "Humidité : ", 11 | uv = "Indice UV : " 12 | } 13 | 14 | return fr 15 | -------------------------------------------------------------------------------- /weather-widget/locale/pt.lua: -------------------------------------------------------------------------------- 1 | local pt = { 2 | warning_title = "Widget do tempo", 3 | parameter_warning = "Parâmetros necessários não definidos: ", 4 | directions = { 5 | "N", "NNE", "NE", "ENE", "L", "ESE", "SE", "SSE", "S", "SSO", "SO", 6 | "OSO", "O", "ONO", "NO", "NNO", "N" 7 | }, 8 | feels_like = "Sensação de ", 9 | wind = "Vento: ", 10 | humidity = "Umidade: ", 11 | uv = "UV: " 12 | } 13 | 14 | return pt 15 | -------------------------------------------------------------------------------- /weather-widget/negative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/negative.png -------------------------------------------------------------------------------- /weather-widget/weather-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/weather-widget/weather-widget.png -------------------------------------------------------------------------------- /widgets-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/widgets-icons.png -------------------------------------------------------------------------------- /word-clock-widget/README.md: -------------------------------------------------------------------------------- 1 | # word clock widget 2 | 3 | Widget displaying current time using words: 4 | 5 | ![screenshot](./screenshots/halfpastthree.png) 6 | 7 | ## Customization 8 | 9 | It is possible to customize widget by providing a table with all or some of the following config parameters: 10 | 11 | | Name | Default | Description | 12 | |---|---|---| 13 | | main_color | `beautiful.fg_normal` | Color of the word on odd position | 14 | | accent_color | `beautiful.fg_urgent` | Color of the word on even position | 15 | | font | `beautiful.font` | Font (`Play 20`) | 16 | | is_human_readable | false | _nine fifteen_ or _fifteen past nine_ | 17 | | military_time | false | 12 or 24 time format | 18 | | with_spaces | false | Separate words with spaces | 19 | 20 | ## Installation 21 | 22 | Clone repo, include widget and use it in **rc.lua**: 23 | 24 | ```lua 25 | local word_clock = require("awesome-wm-widgets.word-clock-widget.word-clock") 26 | ... 27 | s.mytasklist, -- Middle widget 28 | { -- Right widgets 29 | layout = wibox.layout.fixed.horizontal, 30 | ... 31 | word_clock(), 32 | ... 33 | ``` 34 | 35 | # Screenshots 36 | 37 | ```lua 38 | word_clock{ 39 | font = 'Carter One 12', 40 | accent_color = '#ff79c6', 41 | main_color = '#8be9fd', 42 | is_human_readable = true, 43 | } 44 | ``` 45 | ![](./screenshots/halfpastthree_color.png) 46 | 47 | 48 | ```lua 49 | word_clock{ 50 | font = 'Carter One 12', 51 | is_human_readable = true, 52 | } 53 | ``` 54 | ![](./screenshots/twentythreepastnine.png) 55 | 56 | 57 | ```lua 58 | word_clock{ 59 | font = 'Carter One 12', 60 | is_human_readable = true, 61 | military_time = true 62 | } 63 | ``` 64 | ![](./screenshots/twentythreepasttwentyone.png) 65 | 66 | 67 | ```lua 68 | word_clock{ 69 | font = 'Carter One 12', 70 | accent_color = '#f00', 71 | main_color = '#0f0', 72 | } 73 | ``` 74 | ![](./screenshots/onetwentyseven.png) 75 | -------------------------------------------------------------------------------- /word-clock-widget/screenshots/halfpastthree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/word-clock-widget/screenshots/halfpastthree.png -------------------------------------------------------------------------------- /word-clock-widget/screenshots/halfpastthree_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/word-clock-widget/screenshots/halfpastthree_color.png -------------------------------------------------------------------------------- /word-clock-widget/screenshots/onetwentyseven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/word-clock-widget/screenshots/onetwentyseven.png -------------------------------------------------------------------------------- /word-clock-widget/screenshots/testpasttwentyone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/word-clock-widget/screenshots/testpasttwentyone.png -------------------------------------------------------------------------------- /word-clock-widget/screenshots/twentythreepastnine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/word-clock-widget/screenshots/twentythreepastnine.png -------------------------------------------------------------------------------- /word-clock-widget/screenshots/twentythreepasttwentyone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/streetturtle/awesome-wm-widgets/60fb36e8f51b0ea68175de4576f011357ffbfc37/word-clock-widget/screenshots/twentythreepasttwentyone.png --------------------------------------------------------------------------------