Skip to content

Instantly share code, notes, and snippets.

@emaxerrno
Created July 16, 2017 23:37
Show Gist options
  • Select an option

  • Save emaxerrno/c662ea5ebcc7a61e2351f427d4a1058e to your computer and use it in GitHub Desktop.

Select an option

Save emaxerrno/c662ea5ebcc7a61e2351f427d4a1058e to your computer and use it in GitHub Desktop.
fedora.poop
---
-
set_fact:
key_shortcuts:
-
binding: "'<Super>9'"
command: "'xdotool search --desktop 0 --class Emacs windowactivate'"
gnome_key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0"
name: "'emacs'"
-
binding: "'<Super>8'"
command: "'xdotool search --desktop 0 --class Chrome windowactivate'"
gnome_key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1"
name: "'chrome'"
-
binding: "'<Super>0'"
command: "'xdotool search --desktop 0 --class terminal windowactivate'"
gnome_key: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2"
name: "'terminal'"
-
set_fact:
global_bindings: "{% for item in key_shortcuts | map(attribute='gnome_key') %}'{{item}}'{%if not loop.last%},{% endif %}{%endfor%}"
- name: set shortcuts for common programs
when: ansible_os_family == "RedHat"
shell:
if [[ $(gsettings get org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:{{item.gnome_key}}/ name) != "{{item.name}}" ]]; then
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:{{item.gnome_key}}/ name "{{item.name}}" && \
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:{{item.gnome_key}}/ binding "{{item.binding}}" && \
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:{{item.gnome_key}}/ command "{{item.command}}" && echo "{{item.name}}";
else
echo "";
fi
register: gsettings_cmd
changed_when: gsettings_cmd.stdout != ""
with_items: "{{key_shortcuts}}"
# FEDORA25 BUG :(
# Cannot set the custom-keybindings - crashes the gnome sessions
# - name: push global settings for gnome
# when: ansible_os_family == "RedHat"
# shell:
# #if [[ $(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings) == "*custom*" ]]; then
# # gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[{{global_bindings}}]" && echo "changed";
# #else
# # echo "";
# #fi
# register: global_g_cmd
# changed_when: global_g_cmd.stdout != ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment