diff --git a/CHANGELOG b/CHANGELOG
index aed490eaa3224a062e6b2fd6b4fb0d33e53c768b..d9d896035c752ba4680a1ff268dd2178e8dfb854 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,10 @@ Changelog
 0.2.7 (Unreleased)
 ------------------
 
+- Shortcuts: can now use the ``f`` shortcut to toggle the currently playing track
+  as a favorite (#53)
+- Shortcuts: avoid collisions between shortcuts by using the exact modifier (#53)
+
 
 0.2.6 (2017-12-15)
 ------------------
diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue
index 423c9d12f2d5cf89abf5b1f876a595925ee21370..aff3e65bd5bc0999b16c15874f04e22b5bf9b166 100644
--- a/front/src/components/audio/Player.vue
+++ b/front/src/components/audio/Player.vue
@@ -57,11 +57,12 @@
       </div>
     </div>
     <GlobalEvents
-      @keydown.space.prevent="pauseOrPlay"
-      @keydown.ctrl.left.prevent="queue.previous"
-      @keydown.ctrl.right.prevent="queue.next"
-      @keydown.ctrl.down.prevent="queue.incrementVolume(-0.1)"
-      @keydown.ctrl.up.prevent="queue.incrementVolume(0.1)"
+      @keydown.space.prevent.exact="pauseOrPlay"
+      @keydown.ctrl.left.prevent.exact="queue.previous"
+      @keydown.ctrl.right.prevent.exact="queue.next"
+      @keydown.ctrl.down.prevent.exact="queue.incrementVolume(-0.1)"
+      @keydown.ctrl.up.prevent.exact="queue.incrementVolume(0.1)"
+      @keydown.f.prevent.exact="favoriteTracks.toggle(queue.currentTrack.id)"
       />
 
   </div>
@@ -70,10 +71,11 @@
 <script>
 import GlobalEvents from '@/components/utils/global-events'
 
+import favoriteTracks from '@/favorites/tracks'
 import queue from '@/audio/queue'
+import radios from '@/radios'
 import Track from '@/audio/track'
 import TrackFavoriteIcon from '@/components/favorites/TrackFavoriteIcon'
-import radios from '@/radios'
 
 export default {
   name: 'player',
@@ -86,6 +88,7 @@ export default {
       sliderVolume: this.currentVolume,
       queue: queue,
       Track: Track,
+      favoriteTracks,
       radios
     }
   },
diff --git a/front/src/components/favorites/TrackFavoriteIcon.vue b/front/src/components/favorites/TrackFavoriteIcon.vue
index ef490da9b1caa56340926887b05ce8f4de05c4d1..5e3e5b07e68bede9300a0b95fb68ac2927a4b936 100644
--- a/front/src/components/favorites/TrackFavoriteIcon.vue
+++ b/front/src/components/favorites/TrackFavoriteIcon.vue
@@ -1,4 +1,4 @@
-<template>
+ <template>
   <button @click="favoriteTracks.set(track.id, !isFavorite)" v-if="button" :class="['ui', 'pink', {'inverted': isFavorite}, {'favorited': isFavorite}, 'button']">
     <i class="heart icon"></i>
     <template v-if="isFavorite">
@@ -24,11 +24,6 @@ export default {
       favoriteTracks
     }
   },
-  methods: {
-    toggleFavorite () {
-      this.isFavorite = !this.isFavorite
-    }
-  },
   computed: {
     title () {
       if (this.isFavorite) {
diff --git a/front/src/favorites/tracks.js b/front/src/favorites/tracks.js
index ac3cb5eaa2d41609d25b93e269de7622b3fabfad..45d05c50d250f06466c3eb3bf610d9536329b28e 100644
--- a/front/src/favorites/tracks.js
+++ b/front/src/favorites/tracks.js
@@ -33,6 +33,10 @@ export default {
       })
     }
   },
+  toggle (id) {
+    let isFavorite = this.objects[id]
+    this.set(id, !isFavorite)
+  },
   fetch (url) {
     // will fetch favorites by batches from API to have them locally
     var self = this