1
0
Fork 0

Add dot_config/awesome/awesome-wm-widgets/CODEOWNERS

Add dot_config/awesome/awesome-wm-widgets/LICENSE
Add dot_config/awesome/awesome-wm-widgets/README.md
Add dot_config/awesome/awesome-wm-widgets/Screenshot from 2019-03-01 14-28-18.png
Add dot_config/awesome/awesome-wm-widgets/apt-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/apt-widget/apt-widget.lua
Add dot_config/awesome/awesome-wm-widgets/apt-widget/icons/black.svg
Add dot_config/awesome/awesome-wm-widgets/apt-widget/icons/help-circle.svg
Add dot_config/awesome/awesome-wm-widgets/apt-widget/icons/orange.svg
Add dot_config/awesome/awesome-wm-widgets/apt-widget/icons/refresh-cw.svg
Add dot_config/awesome/awesome-wm-widgets/apt-widget/icons/watch.svg
Add dot_config/awesome/awesome-wm-widgets/apt-widget/icons/white-black.svg
Add dot_config/awesome/awesome-wm-widgets/apt-widget/icons/white-orange.svg
Add dot_config/awesome/awesome-wm-widgets/apt-widget/screenshots/screenshot.gif
Add dot_config/awesome/awesome-wm-widgets/awesome-o.png
Add dot_config/awesome/awesome-wm-widgets/awesome.png
Add dot_config/awesome/awesome-wm-widgets/battery-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/battery-widget/bat-wid-1.png
Add dot_config/awesome/awesome-wm-widgets/battery-widget/bat-wid-2.png
Add dot_config/awesome/awesome-wm-widgets/battery-widget/bat-wid-22.png
Add dot_config/awesome/awesome-wm-widgets/battery-widget/bat-wid-3.png
Add dot_config/awesome/awesome-wm-widgets/battery-widget/battery.lua
Add dot_config/awesome/awesome-wm-widgets/battery-widget/spaceman.jpg
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/10_c.png
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/10_d.png
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/20_c.png
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/20_d.png
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/80_c.png
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/80_d.png
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/batteryarc.lua
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg
Add dot_config/awesome/awesome-wm-widgets/batteryarc-widget/warning.png
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/bitbucket-icon-gradient-blue.svg
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/bitbucket.lua
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/check.svg
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/clipboard.svg
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/copy.svg
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/executable_test_bitbucket_api.sh
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/git-pull-request.svg
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/message-circle.svg
Add dot_config/awesome/awesome-wm-widgets/bitbucket-widget/user.svg
Add dot_config/awesome/awesome-wm-widgets/brightness-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/brightness-widget/br-wid-1.png
Add dot_config/awesome/awesome-wm-widgets/brightness-widget/brightness.lua
Add dot_config/awesome/awesome-wm-widgets/brightness-widget/brightness.svg
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/calendar.lua
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/calendar_bottom_right.png
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/calendar_start_sunday.png
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/calendar_top.png
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/calendar_top_right.png
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/dark.png
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/light.png
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/nord.png
Add dot_config/awesome/awesome-wm-widgets/calendar-widget/outrun.png
Add dot_config/awesome/awesome-wm-widgets/cmus-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/cmus-widget/cmus.lua
Add dot_config/awesome/awesome-wm-widgets/cmus-widget/screenshots/cmus-widget.png
Add dot_config/awesome/awesome-wm-widgets/cpu-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/cpu-widget/cpu-widget.lua
Add dot_config/awesome/awesome-wm-widgets/cpu-widget/cpu.gif
Add dot_config/awesome/awesome-wm-widgets/cpu-widget/cpu.png
Add dot_config/awesome/awesome-wm-widgets/cpu-widget/custom.png
Add dot_config/awesome/awesome-wm-widgets/cpu-widget/window-close-symbolic.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/docker-widget/docker.gif
Add dot_config/awesome/awesome-wm-widgets/docker-widget/docker.lua
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/docker.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/pause-btn.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/pause.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/play-btn.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/play-btn.svg-
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/play.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/square.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/stop-btn.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/trash-btn.svg
Add dot_config/awesome/awesome-wm-widgets/docker-widget/icons/unpause-btn.svg
Add dot_config/awesome/awesome-wm-widgets/dot_git/FETCH_HEAD
Add dot_config/awesome/awesome-wm-widgets/dot_git/HEAD
Add dot_config/awesome/awesome-wm-widgets/dot_git/branches/.keep
Add dot_config/awesome/awesome-wm-widgets/dot_git/config
Add dot_config/awesome/awesome-wm-widgets/dot_git/description
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_applypatch-msg.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_commit-msg.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_fsmonitor-watchman.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_post-update.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_pre-applypatch.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_pre-commit.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_pre-merge-commit.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_pre-push.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_pre-rebase.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_pre-receive.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_prepare-commit-msg.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_push-to-checkout.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/hooks/executable_update.sample
Add dot_config/awesome/awesome-wm-widgets/dot_git/index
Add dot_config/awesome/awesome-wm-widgets/dot_git/info/exclude
Add dot_config/awesome/awesome-wm-widgets/dot_git/logs/HEAD
Add dot_config/awesome/awesome-wm-widgets/dot_git/logs/refs/heads/master
Add dot_config/awesome/awesome-wm-widgets/dot_git/logs/refs/remotes/origin/HEAD
Add dot_config/awesome/awesome-wm-widgets/dot_git/objects/info/.keep
Add dot_config/awesome/awesome-wm-widgets/dot_git/objects/pack/readonly_pack-1e9e7e2689ef151bd360434326e2a844681c621b.idx
Add dot_config/awesome/awesome-wm-widgets/dot_git/objects/pack/readonly_pack-1e9e7e2689ef151bd360434326e2a844681c621b.pack
Add dot_config/awesome/awesome-wm-widgets/dot_git/packed-refs
Add dot_config/awesome/awesome-wm-widgets/dot_git/refs/heads/master
Add dot_config/awesome/awesome-wm-widgets/dot_git/refs/remotes/origin/HEAD
Add dot_config/awesome/awesome-wm-widgets/dot_git/refs/tags/.keep
Add dot_config/awesome/awesome-wm-widgets/dot_github/CODEOWNERS
Add dot_config/awesome/awesome-wm-widgets/dot_github/FUNDING.yml
Add dot_config/awesome/awesome-wm-widgets/dot_github/workflows/build.yml
Add dot_config/awesome/awesome-wm-widgets/dot_github/workflows/executable_update-site.yml
Add dot_config/awesome/awesome-wm-widgets/dot_gitignore
Add dot_config/awesome/awesome-wm-widgets/dot_luacheckrc
Add dot_config/awesome/awesome-wm-widgets/email-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/email-widget/count_unread_emails.py
Add dot_config/awesome/awesome-wm-widgets/email-widget/em-wid-1.png
Add dot_config/awesome/awesome-wm-widgets/email-widget/em-wid-2.png
Add dot_config/awesome/awesome-wm-widgets/email-widget/email.lua
Add dot_config/awesome/awesome-wm-widgets/email-widget/read_unread_emails.py
Add dot_config/awesome/awesome-wm-widgets/experiments/spotify-player/README.md
Add dot_config/awesome/awesome-wm-widgets/experiments/spotify-player/spotify-indicator.svg
Add dot_config/awesome/awesome-wm-widgets/experiments/spotify-player/spotify-player.lua
Add dot_config/awesome/awesome-wm-widgets/experiments/spotify-player/spotify-player.png
Add dot_config/awesome/awesome-wm-widgets/fs-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/fs-widget/fs-widget.lua
Add dot_config/awesome/awesome-wm-widgets/fs-widget/screenshot.png
Add dot_config/awesome/awesome-wm-widgets/gerrit-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/gerrit-widget/gerrit.lua
Add dot_config/awesome/awesome-wm-widgets/gerrit-widget/gerrit_icon.svg
Add dot_config/awesome/awesome-wm-widgets/gerrit-widget/gerrit_widget.png
Add dot_config/awesome/awesome-wm-widgets/gerrit-widget/new_review.png
Add dot_config/awesome/awesome-wm-widgets/gerrit-widget/popup.png
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/github-activity-widget.lua
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/icons/alert-circle.svg
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/icons/git-branch.svg
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/icons/git-pull-request.svg
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/icons/github.png
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/icons/message-square.svg
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/icons/repo.svg
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/icons/star.svg
Add dot_config/awesome/awesome-wm-widgets/github-activity-widget/screenshot.png
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/github-contributions-widget.lua
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/Thomashighbaugh.png
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/classic.png
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/dracula.png
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/leftpad.png
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/pink.png
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/screenshot.jpg
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/screenshot1.jpg
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/screenshot2.jpg
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/standard.png
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/screenshots/teal.png
Add dot_config/awesome/awesome-wm-widgets/github-contributions-widget/themes.lua
Add dot_config/awesome/awesome-wm-widgets/github-prs-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/github-prs-widget/icons/book.svg
Add dot_config/awesome/awesome-wm-widgets/github-prs-widget/icons/calendar.svg
Add dot_config/awesome/awesome-wm-widgets/github-prs-widget/icons/git-pull-request.svg
Add dot_config/awesome/awesome-wm-widgets/github-prs-widget/icons/message-square.svg
Add dot_config/awesome/awesome-wm-widgets/github-prs-widget/icons/user.svg
Add dot_config/awesome/awesome-wm-widgets/github-prs-widget/init.lua
Add dot_config/awesome/awesome-wm-widgets/github-prs-widget/screenshots/screenshot1.png
Add dot_config/awesome/awesome-wm-widgets/gitlab-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/gitlab-widget/gitlab.lua
Add dot_config/awesome/awesome-wm-widgets/gitlab-widget/icons/check.svg
Add dot_config/awesome/awesome-wm-widgets/gitlab-widget/icons/gitlab-icon.svg
Add dot_config/awesome/awesome-wm-widgets/gitlab-widget/icons/message-circle.svg
Add dot_config/awesome/awesome-wm-widgets/gitlab-widget/screenshot.png
Add dot_config/awesome/awesome-wm-widgets/jira-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/jira-widget/icon/jira-mark-gradient-blue.svg
Add dot_config/awesome/awesome-wm-widgets/jira-widget/jira.lua
Add dot_config/awesome/awesome-wm-widgets/jira-widget/screenshot/screenshot.png
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/icons/lock.svg
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/icons/log-out.svg
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/icons/moon.svg
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/icons/power.svg
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/icons/power_w.svg
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/icons/refresh-cw.svg
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/logout-menu.gif
Add dot_config/awesome/awesome-wm-widgets/logout-menu-widget/logout-menu.lua
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/logout-dark.png
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/logout-dracula.png
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/logout-nord.png
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/logout-outrun.png
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/logout-popup.lua
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/power.svg
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/screenshot.gif
Add dot_config/awesome/awesome-wm-widgets/logout-popup-widget/screenshot.png
Add dot_config/awesome/awesome-wm-widgets/mpdarc-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/mpdarc-widget/mpdarc.lua
Add dot_config/awesome/awesome-wm-widgets/mpris-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/mpris-widget/init.lua
Add dot_config/awesome/awesome-wm-widgets/net-speed-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/net-speed-widget/icons/down.svg
Add dot_config/awesome/awesome-wm-widgets/net-speed-widget/icons/up.svg
Add dot_config/awesome/awesome-wm-widgets/net-speed-widget/net-speed.lua
Add dot_config/awesome/awesome-wm-widgets/pomodoroarc-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/pomodoroarc-widget/pomodoroarc.lua
Add dot_config/awesome/awesome-wm-widgets/ram-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/ram-widget/out.gif
Add dot_config/awesome/awesome-wm-widgets/ram-widget/ram-widget.lua
Add dot_config/awesome/awesome-wm-widgets/run-shell-2/run-shell-2.lua
Add dot_config/awesome/awesome-wm-widgets/run-shell-2/run.lua
Add dot_config/awesome/awesome-wm-widgets/run-shell-3/README.md
Add dot_config/awesome/awesome-wm-widgets/run-shell-3/blur.png
Add dot_config/awesome/awesome-wm-widgets/run-shell-3/pixelate.png
Add dot_config/awesome/awesome-wm-widgets/run-shell-3/run-shell.lua
Add dot_config/awesome/awesome-wm-widgets/run-shell/README.md
Add dot_config/awesome/awesome-wm-widgets/run-shell/out.mp4
Add dot_config/awesome/awesome-wm-widgets/run-shell/run-shell.lua
Add dot_config/awesome/awesome-wm-widgets/screenshot.png
Add dot_config/awesome/awesome-wm-widgets/screenshot_with_sprtrs.png
Add dot_config/awesome/awesome-wm-widgets/scripts/executable_update_site.sh
Add dot_config/awesome/awesome-wm-widgets/spotify-shell/README.md
Add dot_config/awesome/awesome-wm-widgets/spotify-shell/demo.gif
Add dot_config/awesome/awesome-wm-widgets/spotify-shell/spotify-shell.lua
Add dot_config/awesome/awesome-wm-widgets/spotify-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/spotify-widget/spo-wid-1.png
Add dot_config/awesome/awesome-wm-widgets/spotify-widget/spotify-widget-custom-paused.png
Add dot_config/awesome/awesome-wm-widgets/spotify-widget/spotify-widget-custom-playing.png
Add dot_config/awesome/awesome-wm-widgets/spotify-widget/spotify.lua
Add dot_config/awesome/awesome-wm-widgets/stackoverflow-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/stackoverflow-widget/screenshot.png
Add dot_config/awesome/awesome-wm-widgets/stackoverflow-widget/so-icon.svg
Add dot_config/awesome/awesome-wm-widgets/stackoverflow-widget/stackoverflow.lua
Add dot_config/awesome/awesome-wm-widgets/todo-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/todo-widget/checkbox-checked-symbolic.svg
Add dot_config/awesome/awesome-wm-widgets/todo-widget/chevron-down.svg
Add dot_config/awesome/awesome-wm-widgets/todo-widget/chevron-up.svg
Add dot_config/awesome/awesome-wm-widgets/todo-widget/list-add-symbolic.svg
Add dot_config/awesome/awesome-wm-widgets/todo-widget/todo.gif
Add dot_config/awesome/awesome-wm-widgets/todo-widget/todo.lua
Add dot_config/awesome/awesome-wm-widgets/todo-widget/window-close-symbolic.svg
Add dot_config/awesome/awesome-wm-widgets/translate-widget/README.MD
Add dot_config/awesome/awesome-wm-widgets/translate-widget/demo.gif
Add dot_config/awesome/awesome-wm-widgets/translate-widget/demo1.gif
Add dot_config/awesome/awesome-wm-widgets/translate-widget/gnome-translate.svg
Add dot_config/awesome/awesome-wm-widgets/translate-widget/translate.lua
Add dot_config/awesome/awesome-wm-widgets/volume-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/volume-widget/icons/audio-volume-high-symbolic.svg
Add dot_config/awesome/awesome-wm-widgets/volume-widget/icons/audio-volume-low-symbolic.svg
Add dot_config/awesome/awesome-wm-widgets/volume-widget/icons/audio-volume-medium-symbolic.svg
Add dot_config/awesome/awesome-wm-widgets/volume-widget/icons/audio-volume-muted-symbolic.svg
Add dot_config/awesome/awesome-wm-widgets/volume-widget/screenshots/variations.png
Add dot_config/awesome/awesome-wm-widgets/volume-widget/screenshots/volume-sink-sources.png
Add dot_config/awesome/awesome-wm-widgets/volume-widget/utils.lua
Add dot_config/awesome/awesome-wm-widgets/volume-widget/volume-2.svg
Add dot_config/awesome/awesome-wm-widgets/volume-widget/volume.lua
Add dot_config/awesome/awesome-wm-widgets/volume-widget/widgets/arc-widget.lua
Add dot_config/awesome/awesome-wm-widgets/volume-widget/widgets/horizontal-bar-widget.lua
Add dot_config/awesome/awesome-wm-widgets/volume-widget/widgets/icon-and-text-widget.lua
Add dot_config/awesome/awesome-wm-widgets/volume-widget/widgets/icon-widget.lua
Add dot_config/awesome/awesome-wm-widgets/volume-widget/widgets/vertical-bar-widget.lua
Add dot_config/awesome/awesome-wm-widgets/weather-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/weather-widget/both.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/example1.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/example2.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/example_response.json
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/broken-clouds-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/broken-clouds.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/clear-sky-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/clear-sky.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/few-clouds-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/few-clouds.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/mist-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/mist.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/rain-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/rain.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/scattered-clouds-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/scattered-clouds.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/shower-rain-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/shower-rain.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/snow-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/snow.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/thunderstorm-night.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/VitalyGorbachev/thunderstorm.svg
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/broken-clouds-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/clear-sky-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_broken-clouds.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_clear-sky.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_few-clouds.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_mist-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_mist.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_rain-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_rain.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_scattered-clouds-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_scattered-clouds.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_shower-rain-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_shower-rain.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_snow-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_snow.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_thunderstorm-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/executable_thunderstorm.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/icons/weather-underground-icons/few-clouds-night.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/locale/de.lua
Add dot_config/awesome/awesome-wm-widgets/weather-widget/locale/en.lua
Add dot_config/awesome/awesome-wm-widgets/weather-widget/locale/fr.lua
Add dot_config/awesome/awesome-wm-widgets/weather-widget/locale/pt.lua
Add dot_config/awesome/awesome-wm-widgets/weather-widget/negative.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/weather-widget.png
Add dot_config/awesome/awesome-wm-widgets/weather-widget/weather.lua
Add dot_config/awesome/awesome-wm-widgets/widgets-icons.png
Add dot_config/awesome/awesome-wm-widgets/word-clock-widget/README.md
Add dot_config/awesome/awesome-wm-widgets/word-clock-widget/screenshots/halfpastthree.png
Add dot_config/awesome/awesome-wm-widgets/word-clock-widget/screenshots/halfpastthree_color.png
Add dot_config/awesome/awesome-wm-widgets/word-clock-widget/screenshots/onetwentyseven.png
Add dot_config/awesome/awesome-wm-widgets/word-clock-widget/screenshots/testpasttwentyone.png
Add dot_config/awesome/awesome-wm-widgets/word-clock-widget/screenshots/twentythreepastnine.png
Add dot_config/awesome/awesome-wm-widgets/word-clock-widget/screenshots/twentythreepasttwentyone.png
Add dot_config/awesome/awesome-wm-widgets/word-clock-widget/word-clock.lua
Add dot_config/awesome/mapping/client.lua
Add dot_config/awesome/mapping/global.lua
Add dot_config/awesome/mapping/init.lua
Add dot_config/awesome/mapping/mediacontrol.lua
Add dot_config/awesome/mapping/mouse.lua
Add dot_config/awesome/mapping/tags.lua
Update dot_config/awesome/rc.lua
This commit is contained in:
Florian RICHER 2022-09-25 20:30:49 +02:00
parent 0fbc575bcf
commit 1a890887a7
322 changed files with 14560 additions and 289 deletions

View file

@ -0,0 +1,119 @@
# Volume widget
Volume widget based on [amixer](https://linux.die.net/man/1/amixer) (is used for controlling the audio volume) and [pacmd](https://linux.die.net/man/1/pacmd) (is used for selecting a sink/source). Also, the widget provides an easy way to customize how it looks, following types are supported out-of-the-box:
![types](screenshots/variations.png)
From left to right: `horizontal_bar`, `vertical_bar`, `icon`, `icon_and_text`, `arc`
A right-click on the widget opens a popup where you can choose a sink/source:
![sink-sources](screenshots/volume-sink-sources.png)
Left click toggles mute and middle click opens a mixer ([pavucontrol](https://freedesktop.org/software/pulseaudio/pavucontrol/) by default).
### Features
- switch between sinks/sources by right click on the widget;
- more responsive than previous versions of volume widget, which were refreshed once a second;
- 5 predefined customizable looks;
## Installation
Clone the repo under **~/.config/awesome/** and add widget in **rc.lua**:
```lua
local volume_widget = require('awesome-wm-widgets.volume-widget.volume')
...
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
...
-- default
volume_widget(),
-- customized
volume_widget{
widget_type = 'arc'
},
```
Note that widget uses following command the get the current volume: `amixer -D pulse sget Master`, so please make sure that it works for you, otherwise you need to set parameter `device = 'default'`.
### Shortcuts
To improve responsiveness of the widget when volume level is changed by a shortcut use corresponding methods of the widget:
```lua
awful.key({ modkey }, "]", function() volume_widget:inc(5) end),
awful.key({ modkey }, "[", function() volume_widget:dec(5) end),
awful.key({ modkey }, "\\", function() volume_widget:toggle() end),
```
## Customization
It is possible to customize the widget by providing a table with all or some of the following config parameters:
### Generic parameter
| Name | Default | Description |
|---|---|---|
| `mixer_cmd` | `pavucontrol` | command to run on middle click (e.g. a mixer program) |
| `step` | `5` | How much the volume is raised or lowered at once (in %) |
| `widget_type`| `icon_and_text`| Widget type, one of `horizontal_bar`, `vertical_bar`, `icon`, `icon_and_text`, `arc` |
| `device` | `pulse` | Select the device name to control |
Depends on the chosen widget type add parameters from the corresponding section below:
#### `icon` parameters
| Name | Default | Description |
|---|---|---|
| `icon_dir`| `./icons`| Path to the folder with icons |
_Note:_ if you are changing icons, the folder should contain following .svg images:
- audio-volume-high-symbolic
- audio-volume-medium-symbolic
- audio-volume-low-symbolic
- audio-volume-muted-symbolic
#### `icon_and_text` parameters
| Name | Default | Description |
|---|---|---|
| `icon_dir`| `./icons`| Path to the folder with icons |
| `font` | `beautiful.font` | Font name and size, like `Play 12` |
#### `arc` parameters
| Name | Default | Description |
|---|---|---|
| `thickness` | 2 | Thickness of the arc |
| `main_color` | `beautiful.fg_color` | Color of the arc |
| `bg_color` | `#ffffff11` | Color of the arc's background |
| `mute_color` | `beautiful.fg_urgent` | Color of the arc when mute |
| `size` | 18 | Size of the widget |
#### `horizontal_bar` parameters
| Name | Default | Description |
|---|---|---|
| `main_color` | `beautiful.fg_normal` | Color of the bar |
| `mute_color` | `beautiful.fg_urgent` | Color of the bar when mute |
| `bg_color` | `'#ffffff11'` | Color of the bar's background |
| `width` | `50` | The bar width |
| `margins` | `10` | Top and bottom margins (if your wibar is 22 px high, bar will be 2 px = 22 - 2*10) |
| `shape` | `'bar'` | [gears.shape](https://awesomewm.org/doc/api/libraries/gears.shape.html), could be `octogon`, `hexagon`, `powerline`, etc |
| `with_icon` | `true` | Show volume icon|
_Note:_ I didn't figure out how does the `forced_height` property of progressbar widget work (maybe it doesn't work at all), thus there is a workaround with margins.
#### `vertical_bar` parameters
| Name | Default | Description |
|---|---|---|
| `main_color` | `beautiful.fg_normal` | Color of the bar |
| `mute_color` | `beautiful.fg_urgent` | Color of the bar when mute |
| `bg_color` | `'#ffffff11'` | Color of the bar's background |
| `width` | `10` | The bar width |
| `margins` | `20` | Top and bottom margins (if your wibar is 22 px high, bar will be 2 px = 22 - 2*10) |
| `shape` | `'bar'` | [gears.shape](https://awesomewm.org/doc/api/libraries/gears.shape.html), could be `octogon`, `hexagon`, `powerline`, etc |
| `with_icon` | `true` | Show volume icon|

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
viewBox="0 0 16 16"
height="16"
id="svg2"
version="1.1"
inkscape:version="0.91 r"
sodipodi:docname="audio-volume-high-symbolic.svg">
<metadata
id="metadata30">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1215"
inkscape:window-height="776"
id="namedview28"
showgrid="true"
inkscape:zoom="38.125"
inkscape:cx="8"
inkscape:cy="8"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
showguides="true"
inkscape:snap-intersection-paths="false"
inkscape:object-paths="false">
<inkscape:grid
type="xygrid"
id="grid4158" />
</sodipodi:namedview>
<defs
id="defs4" />
<path
d="M 6,2 2,6 2,10 6,14 6,9 7,8 6,7 Z"
id="path18"
inkscape:connector-curvature="0"
style="fill:#bebebe"
sodipodi:nodetypes="cccccccc" />
<path
d="M 1.300003,5 C 0.216589,5 0,6.163269 0,7.4 L 0,8.6 C 0,9.836747 0.24312,11 1.300003,11 L 3,11 3,5 Z"
id="path20"
inkscape:connector-curvature="0"
style="fill:#bebebe"
sodipodi:nodetypes="ssssccs" />
<path
style="opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.140638,1 11.726417,2.413582 C 12.808349,3.4955144 13.990412,5.4467621 14,8 c 0,2.551493 -1.192916,4.505751 -2.273583,5.586418 L 13.140638,15 C 14.595711,13.544927 16.019176,11 16,8 16.035061,5 14.595117,2.4544787 13.140638,1 Z"
id="path4508"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11,3.1156678 9.5897193,4.5261118 C 10.372347,5.3087395 11,6.5690611 11,8 11,9.4309388 10.372767,10.690952 9.5897193,11.474 L 11,12.884 C 12.275645,11.608355 13,9.854095 13,8 13,6.1543677 12.273068,4.3887355 11,3.1156678 Z"
id="path4529"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 8.629,5 7.2094668,6.4096296 C 8,7.05621 8,7.805653 8,8 8,8.1932576 7.982199,8.9408674 7.209,9.59 L 8.6289063,11 C 9.8466375,9.952694 10,8.5984701 10,8 10,7.400497 9.854476,6.062891 8.629,5 Z"
id="path4569"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscccc" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
viewBox="0 0 16 16"
height="16"
id="svg2"
version="1.1"
inkscape:version="0.91 r"
sodipodi:docname="audio-volume-low-symbolic.svg">
<metadata
id="metadata30">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1215"
inkscape:window-height="776"
id="namedview28"
showgrid="true"
inkscape:zoom="38.125"
inkscape:cx="8"
inkscape:cy="8"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
showguides="true"
inkscape:snap-intersection-paths="false"
inkscape:object-paths="false">
<inkscape:grid
type="xygrid"
id="grid4158" />
</sodipodi:namedview>
<defs
id="defs4" />
<path
d="M 6,2 2,6 2,10 6,14 6,9 7,8 6,7 Z"
id="path18"
inkscape:connector-curvature="0"
style="fill:#bebebe"
sodipodi:nodetypes="cccccccc" />
<path
d="M 1.300003,5 C 0.216589,5 0,6.163269 0,7.4 L 0,8.6 C 0,9.836747 0.24312,11 1.300003,11 L 3,11 3,5 Z"
id="path20"
inkscape:connector-curvature="0"
style="fill:#bebebe"
sodipodi:nodetypes="ssssccs" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.140638,1 11.726417,2.413582 C 12.808349,3.4955144 13.990412,5.4467621 14,8 c 0,2.551493 -1.192916,4.505751 -2.273583,5.586418 L 13.140638,15 C 14.595711,13.544927 16.019176,11 16,8 16.035061,5 14.595117,2.4544787 13.140638,1 Z"
id="path4508"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11,3.1156678 9.5897193,4.5261118 C 10.372347,5.3087395 11,6.5690611 11,8 11,9.4309388 10.372767,10.690952 9.5897193,11.474 L 11,12.884 C 12.275645,11.608355 13,9.854095 13,8 13,6.1543677 12.273068,4.3887355 11,3.1156678 Z"
id="path4529"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 8.629,5 7.2094668,6.4096296 C 8,7.05621 8,7.805653 8,8 8,8.1932576 7.982199,8.9408674 7.209,9.59 L 8.6289063,11 C 9.8466375,9.952694 10,8.5984701 10,8 10,7.400497 9.854476,6.062891 8.629,5 Z"
id="path4569"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscccc" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
viewBox="0 0 16 16"
height="16"
id="svg2"
version="1.1"
inkscape:version="0.91 r"
sodipodi:docname="audio-volume-medium-symbolic.svg">
<metadata
id="metadata30">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1215"
inkscape:window-height="776"
id="namedview28"
showgrid="true"
inkscape:zoom="38.125"
inkscape:cx="8"
inkscape:cy="8"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
showguides="true"
inkscape:snap-intersection-paths="false"
inkscape:object-paths="false">
<inkscape:grid
type="xygrid"
id="grid4158" />
</sodipodi:namedview>
<defs
id="defs4" />
<path
d="M 6,2 2,6 2,10 6,14 6,9 7,8 6,7 Z"
id="path18"
inkscape:connector-curvature="0"
style="fill:#bebebe"
sodipodi:nodetypes="cccccccc" />
<path
d="M 1.300003,5 C 0.216589,5 0,6.163269 0,7.4 L 0,8.6 C 0,9.836747 0.24312,11 1.300003,11 L 3,11 3,5 Z"
id="path20"
inkscape:connector-curvature="0"
style="fill:#bebebe"
sodipodi:nodetypes="ssssccs" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.140638,1 11.726417,2.413582 C 12.808349,3.4955144 13.990412,5.4467621 14,8 c 0,2.551493 -1.192916,4.505751 -2.273583,5.586418 L 13.140638,15 C 14.595711,13.544927 16.019176,11 16,8 16.035061,5 14.595117,2.4544787 13.140638,1 Z"
id="path4508"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11,3.1156678 9.5897193,4.5261118 C 10.372347,5.3087395 11,6.5690611 11,8 11,9.4309388 10.372767,10.690952 9.5897193,11.474 L 11,12.884 C 12.275645,11.608355 13,9.854095 13,8 13,6.1543677 12.273068,4.3887355 11,3.1156678 Z"
id="path4529"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 8.629,5 7.2094668,6.4096296 C 8,7.05621 8,7.805653 8,8 8,8.1932576 7.982199,8.9408674 7.209,9.59 L 8.6289063,11 C 9.8466375,9.952694 10,8.5984701 10,8 10,7.400497 9.854476,6.062891 8.629,5 Z"
id="path4569"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscccc" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
viewBox="0 0 16 16"
height="16"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="audio-volume-muted-symbolic.svg">
<metadata
id="metadata30">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1215"
inkscape:window-height="776"
id="namedview28"
showgrid="true"
inkscape:zoom="38.125"
inkscape:cx="3.4229508"
inkscape:cy="7.947541"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
showguides="true"
inkscape:snap-intersection-paths="false"
inkscape:object-paths="false">
<inkscape:grid
type="xygrid"
id="grid4158" />
</sodipodi:namedview>
<defs
id="defs4" />
<path
d="M 6,2 2,6 2,10 6,14 6,9 7,8 6,7 Z"
id="path18"
inkscape:connector-curvature="0"
style="fill:#bebebe"
sodipodi:nodetypes="cccccccc" />
<path
d="M 1.300003,5 C 0.216589,5 0,6.163269 0,7.4 L 0,8.6 C 0,9.836747 0.24312,11 1.300003,11 L 3,11 3,5 Z"
id="path20"
inkscape:connector-curvature="0"
style="fill:#bebebe"
sodipodi:nodetypes="ssssccs" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.140638,1 11.726417,2.413582 C 12.808349,3.4955144 13.990412,5.4467621 14,8 c 0,2.551493 -1.192916,4.505751 -2.273583,5.586418 L 13.140638,15 C 14.595711,13.544927 16.019176,11 16,8 16.035061,5 14.595117,2.4544787 13.140638,1 Z"
id="path4508"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11,3.1156678 9.5897193,4.5261118 C 10.372347,5.3087395 11,6.5690611 11,8 11,9.4309388 10.372767,10.690952 9.5897193,11.474 L 11,12.884 C 12.275645,11.608355 13,9.854095 13,8 13,6.1543677 12.273068,4.3887355 11,3.1156678 Z"
id="path4529"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 8.629,5 7.2094668,6.4096296 C 8,7.05621 8,7.805653 8,8 8,8.1932576 7.982199,8.9408674 7.209,9.59 L 8.6289063,11 C 9.8466375,9.952694 10,8.5984701 10,8 10,7.400497 9.854476,6.062891 8.629,5 Z"
id="path4569"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscccc" />
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View file

@ -0,0 +1,105 @@
local utils = {}
local function split(string_to_split, separator)
if separator == nil then separator = "%s" end
local t = {}
for str in string.gmatch(string_to_split, "([^".. separator .."]+)") do
table.insert(t, str)
end
return t
end
function utils.extract_sinks_and_sources(pacmd_output)
local sinks = {}
local sources = {}
local device
local properties
local ports
local in_sink = false
local in_source = false
local in_device = false
local in_properties = false
local in_ports = false
for line in pacmd_output:gmatch("[^\r\n]+") do
if string.match(line, 'source%(s%) available.') then
in_sink = false
in_source = true
end
if string.match(line, 'sink%(s%) available.') then
in_sink = true
in_source = false
end
if string.match(line, 'index:') then
in_device = true
in_properties = false
device = {
id = line:match(': (%d+)'),
is_default = string.match(line, '*') ~= nil
}
if in_sink then
table.insert(sinks, device)
elseif in_source then
table.insert(sources, device)
end
end
if string.match(line, '^\tproperties:') then
in_device = false
in_properties = true
properties = {}
device['properties'] = properties
end
if string.match(line, 'ports:') then
in_device = false
in_properties = false
in_ports = true
ports = {}
device['ports'] = ports
end
if string.match(line, 'active port:') then
in_device = false
in_properties = false
in_ports = false
device['active_port'] = line:match(': (.+)'):gsub('<',''):gsub('>','')
end
if in_device then
local t = split(line, ': ')
local key = t[1]:gsub('\t+', ''):lower()
local value = t[2]:gsub('^<', ''):gsub('>$', '')
device[key] = value
end
if in_properties then
local t = split(line, '=')
local key = t[1]:gsub('\t+', ''):gsub('%.', '_'):gsub('-', '_'):gsub(':', ''):gsub("%s+$", "")
local value
if t[2] == nil then
value = t[2]
else
value = t[2]:gsub('"', ''):gsub("^%s+", ""):gsub(' Analog Stereo', '')
end
properties[key] = value
end
if in_ports then
local t = split(line, ': ')
local key = t[1]
if key ~= nil then
key = key:gsub('\t+', '')
end
ports[key] = t[2]
end
end
return sinks, sources
end
return utils

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume-2"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"></path></svg>

After

Width:  |  Height:  |  Size: 354 B

View file

@ -0,0 +1,228 @@
-------------------------------------------------
-- The Ultimate Volume Widget for Awesome Window Manager
-- More details could be found here:
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/volume-widget
-- @author Pavel Makhov
-- @copyright 2020 Pavel Makhov
-------------------------------------------------
local awful = require("awful")
local wibox = require("wibox")
local spawn = require("awful.spawn")
local gears = require("gears")
local beautiful = require("beautiful")
local watch = require("awful.widget.watch")
local utils = require("awesome-wm-widgets.volume-widget.utils")
local LIST_DEVICES_CMD = [[sh -c "pacmd list-sinks; pacmd list-sources"]]
local function GET_VOLUME_CMD(device) return 'amixer -D ' .. device .. ' sget Master' end
local function INC_VOLUME_CMD(device, step) return 'amixer -D ' .. device .. ' sset Master ' .. step .. '%+' end
local function DEC_VOLUME_CMD(device, step) return 'amixer -D ' .. device .. ' sset Master ' .. step .. '%-' end
local function TOG_VOLUME_CMD(device) return 'amixer -D ' .. device .. ' sset Master toggle' end
local widget_types = {
icon_and_text = require("awesome-wm-widgets.volume-widget.widgets.icon-and-text-widget"),
icon = require("awesome-wm-widgets.volume-widget.widgets.icon-widget"),
arc = require("awesome-wm-widgets.volume-widget.widgets.arc-widget"),
horizontal_bar = require("awesome-wm-widgets.volume-widget.widgets.horizontal-bar-widget"),
vertical_bar = require("awesome-wm-widgets.volume-widget.widgets.vertical-bar-widget")
}
local volume = {}
local rows = { layout = wibox.layout.fixed.vertical }
local popup = awful.popup{
bg = beautiful.bg_normal,
ontop = true,
visible = false,
shape = gears.shape.rounded_rect,
border_width = 1,
border_color = beautiful.bg_focus,
maximum_width = 400,
offset = { y = 5 },
widget = {}
}
local function build_main_line(device)
if device.active_port ~= nil and device.ports[device.active_port] ~= nil then
return device.properties.device_description .. ' · ' .. device.ports[device.active_port]
else
return device.properties.device_description
end
end
local function build_rows(devices, on_checkbox_click, device_type)
local device_rows = { layout = wibox.layout.fixed.vertical }
for _, device in pairs(devices) do
local checkbox = wibox.widget {
checked = device.is_default,
color = beautiful.bg_normal,
paddings = 2,
shape = gears.shape.circle,
forced_width = 20,
forced_height = 20,
check_color = beautiful.fg_urgent,
widget = wibox.widget.checkbox
}
checkbox:connect_signal("button::press", function()
spawn.easy_async(string.format([[sh -c 'pacmd set-default-%s "%s"']], device_type, device.name), function()
on_checkbox_click()
end)
end)
local row = wibox.widget {
{
{
{
checkbox,
valign = 'center',
layout = wibox.container.place,
},
{
{
text = build_main_line(device),
align = 'left',
widget = wibox.widget.textbox
},
left = 10,
layout = wibox.container.margin
},
spacing = 8,
layout = wibox.layout.align.horizontal
},
margins = 4,
layout = wibox.container.margin
},
bg = beautiful.bg_normal,
widget = wibox.container.background
}
row:connect_signal("mouse::enter", function(c) c:set_bg(beautiful.bg_focus) end)
row:connect_signal("mouse::leave", function(c) c:set_bg(beautiful.bg_normal) end)
local old_cursor, old_wibox
row:connect_signal("mouse::enter", function()
local wb = mouse.current_wibox
old_cursor, old_wibox = wb.cursor, wb
wb.cursor = "hand1"
end)
row:connect_signal("mouse::leave", function()
if old_wibox then
old_wibox.cursor = old_cursor
old_wibox = nil
end
end)
row:connect_signal("button::press", function()
spawn.easy_async(string.format([[sh -c 'pacmd set-default-%s "%s"']], device_type, device.name), function()
on_checkbox_click()
end)
end)
table.insert(device_rows, row)
end
return device_rows
end
local function build_header_row(text)
return wibox.widget{
{
markup = "<b>" .. text .. "</b>",
align = 'center',
widget = wibox.widget.textbox
},
bg = beautiful.bg_normal,
widget = wibox.container.background
}
end
local function rebuild_popup()
spawn.easy_async(LIST_DEVICES_CMD, function(stdout)
local sinks, sources = utils.extract_sinks_and_sources(stdout)
for i = 0, #rows do rows[i]=nil end
table.insert(rows, build_header_row("SINKS"))
table.insert(rows, build_rows(sinks, function() rebuild_popup() end, "sink"))
table.insert(rows, build_header_row("SOURCES"))
table.insert(rows, build_rows(sources, function() rebuild_popup() end, "source"))
popup:setup(rows)
end)
end
local function worker(user_args)
local args = user_args or {}
local mixer_cmd = args.mixer_cmd or 'pavucontrol'
local widget_type = args.widget_type
local refresh_rate = args.refresh_rate or 1
local step = args.step or 5
local device = args.device or 'pulse'
if widget_types[widget_type] == nil then
volume.widget = widget_types['icon_and_text'].get_widget(args.icon_and_text_args)
else
volume.widget = widget_types[widget_type].get_widget(args)
end
local function update_graphic(widget, stdout)
local mute = string.match(stdout, "%[(o%D%D?)%]") -- \[(o\D\D?)\] - [on] or [off]
if mute == 'off' then widget:mute()
elseif mute == 'on' then widget:unmute()
end
local volume_level = string.match(stdout, "(%d?%d?%d)%%") -- (\d?\d?\d)\%)
volume_level = string.format("% 3d", volume_level)
widget:set_volume_level(volume_level)
end
function volume:inc(s)
spawn.easy_async(INC_VOLUME_CMD(device, s or step), function(stdout) update_graphic(volume.widget, stdout) end)
end
function volume:dec(s)
spawn.easy_async(DEC_VOLUME_CMD(device, s or step), function(stdout) update_graphic(volume.widget, stdout) end)
end
function volume:toggle()
spawn.easy_async(TOG_VOLUME_CMD(device), function(stdout) update_graphic(volume.widget, stdout) end)
end
function volume:mixer()
if mixer_cmd then
spawn.easy_async(mixer_cmd)
end
end
volume.widget:buttons(
awful.util.table.join(
awful.button({}, 3, function()
if popup.visible then
popup.visible = not popup.visible
else
rebuild_popup()
popup:move_next_to(mouse.current_widget_geometry)
end
end),
awful.button({}, 4, function() volume:inc() end),
awful.button({}, 5, function() volume:dec() end),
awful.button({}, 2, function() volume:mixer() end),
awful.button({}, 1, function() volume:toggle() end)
)
)
watch(GET_VOLUME_CMD(device), refresh_rate, update_graphic, volume.widget)
return volume.widget
end
return setmetatable(volume, { __call = function(_, ...) return worker(...) end })

View file

@ -0,0 +1,46 @@
local wibox = require("wibox")
local beautiful = require('beautiful')
local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/'
local widget = {}
function widget.get_widget(widgets_args)
local args = widgets_args or {}
local thickness = args.thickness or 2
local main_color = args.main_color or beautiful.fg_color
local bg_color = args.bg_color or '#ffffff11'
local mute_color = args.mute_color or beautiful.fg_urgent
local size = args.size or 18
return wibox.widget {
{
id = "icon",
image = ICON_DIR .. 'audio-volume-high-symbolic.svg',
resize = true,
widget = wibox.widget.imagebox,
},
max_value = 100,
thickness = thickness,
start_angle = 4.71238898, -- 2pi*3/4
forced_height = size,
forced_width = size,
bg = bg_color,
paddings = 2,
widget = wibox.container.arcchart,
set_volume_level = function(self, new_value)
self.value = new_value
end,
mute = function(self)
self.colors = { mute_color }
end,
unmute = function(self)
self.colors = { main_color }
end
}
end
return widget

View file

@ -0,0 +1,58 @@
local wibox = require("wibox")
local beautiful = require('beautiful')
local gears = require("gears")
local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/'
local widget = {}
function widget.get_widget(widgets_args)
local args = widgets_args or {}
local main_color = args.main_color or beautiful.fg_normal
local mute_color = args.mute_color or beautiful.fg_urgent
local bg_color = args.bg_color or '#ffffff11'
local width = args.width or 50
local margins = args.margins or 10
local shape = args.shape or 'bar'
local with_icon = args.with_icon == true and true or false
local bar = wibox.widget {
{
{
id = "icon",
image = ICON_DIR .. 'audio-volume-high-symbolic.svg',
resize = false,
widget = wibox.widget.imagebox,
},
valign = 'center',
visible = with_icon,
layout = wibox.container.place,
},
{
id = 'bar',
max_value = 100,
forced_width = width,
color = main_color,
margins = { top = margins, bottom = margins },
background_color = bg_color,
shape = gears.shape[shape],
widget = wibox.widget.progressbar,
},
spacing = 4,
layout = wibox.layout.fixed.horizontal,
set_volume_level = function(self, new_value)
self:get_children_by_id('bar')[1]:set_value(tonumber(new_value))
end,
mute = function(self)
self:get_children_by_id('bar')[1]:set_color(mute_color)
end,
unmute = function(self)
self:get_children_by_id('bar')[1]:set_color(main_color)
end
}
return bar
end
return widget

View file

@ -0,0 +1,59 @@
local wibox = require("wibox")
local beautiful = require('beautiful')
local widget = {}
local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/'
function widget.get_widget(widgets_args)
local args = widgets_args or {}
local font = args.font or beautiful.font
local icon_dir = args.icon_dir or ICON_DIR
return wibox.widget {
{
{
id = "icon",
resize = false,
widget = wibox.widget.imagebox,
},
valign = 'center',
layout = wibox.container.place
},
{
id = 'txt',
font = font,
widget = wibox.widget.textbox
},
layout = wibox.layout.fixed.horizontal,
set_volume_level = function(self, new_value)
self:get_children_by_id('txt')[1]:set_text(new_value)
local volume_icon_name
if self.is_muted then
volume_icon_name = 'audio-volume-muted-symbolic'
else
local new_value_num = tonumber(new_value)
if (new_value_num >= 0 and new_value_num < 33) then
volume_icon_name="audio-volume-low-symbolic"
elseif (new_value_num < 66) then
volume_icon_name="audio-volume-medium-symbolic"
else
volume_icon_name="audio-volume-high-symbolic"
end
end
self:get_children_by_id('icon')[1]:set_image(icon_dir .. volume_icon_name .. '.svg')
end,
mute = function(self)
self.is_muted = true
self:get_children_by_id('icon')[1]:set_image(icon_dir .. 'audio-volume-muted-symbolic.svg')
end,
unmute = function(self)
self.is_muted = false
end
}
end
return widget

View file

@ -0,0 +1,46 @@
local wibox = require("wibox")
local widget = {}
local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/'
function widget.get_widget(widgets_args)
local args = widgets_args or {}
local icon_dir = args.icon_dir or ICON_DIR
return wibox.widget {
{
id = "icon",
resize = false,
widget = wibox.widget.imagebox,
},
valign = 'center',
layout = wibox.container.place,
set_volume_level = function(self, new_value)
local volume_icon_name
if self.is_muted then
volume_icon_name = 'audio-volume-muted-symbolic'
else
local new_value_num = tonumber(new_value)
if (new_value_num >= 0 and new_value_num < 33) then
volume_icon_name="audio-volume-low-symbolic"
elseif (new_value_num < 66) then
volume_icon_name="audio-volume-medium-symbolic"
else
volume_icon_name="audio-volume-high-symbolic"
end
end
self:get_children_by_id('icon')[1]:set_image(icon_dir .. volume_icon_name .. '.svg')
end,
mute = function(self)
self.is_muted = true
self:get_children_by_id('icon')[1]:set_image(icon_dir .. 'audio-volume-muted-symbolic.svg')
end,
unmute = function(self)
self.is_muted = false
end
}
end
return widget

View file

@ -0,0 +1,64 @@
local wibox = require("wibox")
local beautiful = require('beautiful')
local gears = require("gears")
local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/volume-widget/icons/'
local widget = {}
function widget.get_widget(widgets_args)
local args = widgets_args or {}
local main_color = args.main_color or beautiful.fg_normal
local mute_color = args.mute_color or beautiful.fg_urgent
local bg_color = args.bg_color or '#ffffff11'
local width = args.width or 10
local margins = args.height or 2
local shape = args.shape or 'bar'
local with_icon = args.with_icon == true and true or false
local bar = wibox.widget {
{
{
id = "icon",
image = ICON_DIR .. 'audio-volume-high-symbolic.svg',
resize = false,
widget = wibox.widget.imagebox,
},
valign = 'center',
visible = with_icon,
layout = wibox.container.place,
},
{
{
id = 'bar',
max_value = 100,
forced_width = width,
forced_height = 5,
margins = { top = margins, bottom = margins },
color = main_color,
background_color = bg_color,
shape = gears.shape[shape],
widget = wibox.widget.progressbar,
},
forced_width = width,
direction = 'east',
layout = wibox.container.rotate,
},
spacing = 4,
layout = wibox.layout.fixed.horizontal,
set_volume_level = function(self, new_value)
self:get_children_by_id('bar')[1]:set_value(tonumber(new_value))
end,
mute = function(self)
self:get_children_by_id('bar')[1]:set_color(mute_color)
end,
unmute = function(self)
self:get_children_by_id('bar')[1]:set_color(main_color)
end
}
return bar
end
return widget