diff --git a/include/cairo/context.hpp b/include/cairo/context.hpp
index 624173d6..bd933639 100644
--- a/include/cairo/context.hpp
+++ b/include/cairo/context.hpp
@@ -20,7 +20,7 @@ POLYBAR_NS
 
 namespace cairo {
   /**
-   * @brief Cairo context
+   * \brief Cairo context
    */
   class context {
    public:
diff --git a/include/cairo/font.hpp b/include/cairo/font.hpp
index fdefea47..170b9dd8 100644
--- a/include/cairo/font.hpp
+++ b/include/cairo/font.hpp
@@ -15,12 +15,12 @@ POLYBAR_NS
 
 namespace cairo {
   /**
-   * @brief Global pointer to the Freetype library handler
+   * \brief Global pointer to the Freetype library handler
    */
   static FT_Library g_ftlib;
 
   /**
-   * @brief Abstract font face
+   * \brief Abstract font face
    */
   class font {
    public:
@@ -51,7 +51,7 @@ namespace cairo {
   };
 
   /**
-   * @brief Font based on fontconfig/freetype
+   * \brief Font based on fontconfig/freetype
    */
   class font_fc : public font {
    public:
diff --git a/include/cairo/surface.hpp b/include/cairo/surface.hpp
index 0ec7f4ee..0c49bc78 100644
--- a/include/cairo/surface.hpp
+++ b/include/cairo/surface.hpp
@@ -12,7 +12,7 @@ POLYBAR_NS
 
 namespace cairo {
   /**
-   * @brief Base surface
+   * \brief Base surface
    */
   class surface {
    public:
@@ -57,7 +57,7 @@ namespace cairo {
   };
 
   /**
-   * @brief Surface for xcb
+   * \brief Surface for xcb
    */
   class xcb_surface : public surface {
    public:
diff --git a/include/cairo/utils.hpp b/include/cairo/utils.hpp
index 5db3a145..5ed62496 100644
--- a/include/cairo/utils.hpp
+++ b/include/cairo/utils.hpp
@@ -10,7 +10,7 @@ POLYBAR_NS
 namespace cairo {
   namespace utils {
     /**
-     * @brief RAII wrapper used acquire cairo_device_t
+     * \brief RAII wrapper used acquire cairo_device_t
      */
     class device_lock {
      public:
@@ -24,7 +24,7 @@ namespace cairo {
     };
 
     /**
-     * @brief RAII wrapper used to access the underlying
+     * \brief RAII wrapper used to access the underlying
      * FT_Face of a scaled font face
      */
     class ft_face_lock {
@@ -39,7 +39,7 @@ namespace cairo {
     };
 
     /**
-     * @brief Unicode character containing converted codepoint
+     * \brief Unicode character containing converted codepoint
      * and details on where its position in the source string
      */
     struct unicode_character {
@@ -51,17 +51,17 @@ namespace cairo {
     using unicode_charlist = std::list<unicode_character>;
 
     /**
-     * @see <cairo/cairo.h>
+     * \see <cairo/cairo.h>
      */
     cairo_operator_t str2operator(const string& mode, cairo_operator_t fallback);
 
     /**
-     * @brief Create a UCS-4 codepoint from a utf-8 encoded string
+     * \brief Create a UCS-4 codepoint from a utf-8 encoded string
      */
     bool utf8_to_ucs4(const unsigned char* src, unicode_charlist& result_list);
 
     /**
-     * @brief Convert a UCS-4 codepoint to a utf-8 encoded string
+     * \brief Convert a UCS-4 codepoint to a utf-8 encoded string
      */
     size_t ucs4_to_utf8(char* utf8, unsigned int ucs);
   }
diff --git a/include/components/config.hpp b/include/components/config.hpp
index 93e3fa62..bb10d51a 100644
--- a/include/components/config.hpp
+++ b/include/components/config.hpp
@@ -179,7 +179,7 @@ class config {
   }
 
   /**
-   * @see deprecated<T>
+   * \see deprecated<T>
    */
   template <typename T = string>
   T deprecated_list(const string& section, const string& old, const string& newkey, const vector<T>& fallback) const {
diff --git a/include/components/controller.hpp b/include/components/controller.hpp
index 981f3380..cf7c6682 100644
--- a/include/components/controller.hpp
+++ b/include/components/controller.hpp
@@ -81,67 +81,67 @@ class controller : public signal_receiver<SIGN_PRIORITY_CONTROLLER, signals::eve
   array<unique_ptr<file_descriptor>, 2> m_queuefd{};
 
   /**
-   * @brief State flag
+   * \brief State flag
    */
   std::atomic<bool> m_process_events{false};
 
   /**
-   * @brief Destination path of generated snapshot
+   * \brief Destination path of generated snapshot
    */
   string m_snapshot_dst;
 
   /**
-   * @brief Controls weather the output gets printed to stdout
+   * \brief Controls weather the output gets printed to stdout
    */
   bool m_writeback{false};
 
   /**
-   * @brief Internal event queue
+   * \brief Internal event queue
    */
   moodycamel::BlockingConcurrentQueue<event> m_queue;
 
   /**
-   * @brief Loaded modules
+   * \brief Loaded modules
    */
   modulemap_t m_modules;
 
   /**
-   * @brief Module input handlers
+   * \brief Module input handlers
    */
   vector<modules::input_handler*> m_inputhandlers;
 
   /**
-   * @brief Maximum number of subsequent events to swallow
+   * \brief Maximum number of subsequent events to swallow
    */
   size_t m_swallow_limit{5U};
 
   /**
-   * @brief Time to wait for subsequent events
+   * \brief Time to wait for subsequent events
    */
   std::chrono::milliseconds m_swallow_update{10};
 
   /**
-   * @brief Time to throttle input events
+   * \brief Time to throttle input events
    */
   std::chrono::milliseconds m_swallow_input{30};
 
   /**
-   * @brief Time of last handled input event
+   * \brief Time of last handled input event
    */
   std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> m_lastinput;
 
   /**
-   * @brief Input data
+   * \brief Input data
    */
   string m_inputdata;
 
   /**
-   * @brief Thread for the eventqueue loop
+   * \brief Thread for the eventqueue loop
    */
   std::thread m_event_thread;
 
   /**
-   * @brief Misc threads
+   * \brief Misc threads
    */
   vector<std::thread> m_threads;
 };
diff --git a/include/drawtypes/label.hpp b/include/drawtypes/label.hpp
index 06f1158d..c24514d8 100644
--- a/include/drawtypes/label.hpp
+++ b/include/drawtypes/label.hpp
@@ -26,7 +26,7 @@ namespace drawtypes {
   using label_t = shared_ptr<label>;
 
   /**
-   * @decprecated: use label
+   * \deprecated use label
    */
   using icon = label;
   using icon_t = label_t;
diff --git a/include/events/signal_emitter.hpp b/include/events/signal_emitter.hpp
index 2a260032..dbe570be 100644
--- a/include/events/signal_emitter.hpp
+++ b/include/events/signal_emitter.hpp
@@ -6,7 +6,7 @@
 POLYBAR_NS
 
 /**
- * @brief Holds all signal receivers attached to the emitter
+ * \brief Holds all signal receivers attached to the emitter
  */
 extern signal_receivers_t g_signal_receivers;
 
diff --git a/include/modules/date.hpp b/include/modules/date.hpp
index bcf0802a..b0bf29aa 100644
--- a/include/modules/date.hpp
+++ b/include/modules/date.hpp
@@ -24,7 +24,7 @@ namespace modules {
     static constexpr auto TAG_LABEL = "<label>";
     static constexpr auto EVENT_TOGGLE = "datetoggle";
 
-    // @deprecated: Use <label>
+    // \deprecated: Use <label>
     static constexpr auto TAG_DATE = "<date>";
 
     label_t m_label;
diff --git a/include/modules/i3.hpp b/include/modules/i3.hpp
index ccf45691..873c91b4 100644
--- a/include/modules/i3.hpp
+++ b/include/modules/i3.hpp
@@ -16,19 +16,19 @@ namespace modules {
     enum class state {
       NONE,
       /**
-       * @brief Active workspace on focused monitor
+       * \brief Active workspace on focused monitor
        */
       FOCUSED,
       /**
-       * @brief Inactive workspace on any monitor
+       * \brief Inactive workspace on any monitor
        */
       UNFOCUSED,
       /**
-       * @brief Active workspace on unfocused monitor
+       * \brief Active workspace on unfocused monitor
        */
       VISIBLE,
       /**
-       * @brief Workspace with urgency hint set
+       * \brief Workspace with urgency hint set
        */
       URGENT,
     };
diff --git a/include/utils/command.hpp b/include/utils/command.hpp
index 823bbc5d..91841bab 100644
--- a/include/utils/command.hpp
+++ b/include/utils/command.hpp
@@ -18,27 +18,27 @@ DEFINE_ERROR(command_error);
  *
  * Example usage:
  *
- * @code cpp
+ * \code cpp
  *   auto cmd = command_util::make_command("cat /etc/rc.local");
  *   cmd->exec();
  *   cmd->tail([](string s) { std::cout << s << std::endl; });
- * @endcode
+ * \endcode
  *
- * @code cpp
+ * \code cpp
  *   auto cmd = command_util::make_command(
  *    "while read -r line; do echo data from parent process: $line; done");
  *   cmd->exec(false);
  *   cmd->writeline("Test");
  *   cout << cmd->readline();
  *   cmd->wait();
- * @endcode
+ * \endcode
  *
- * @code cpp
+ * \code cpp
  *   auto cmd = command_util::make_command("for i in 1 2 3; do echo $i; done");
  *   cmd->exec();
  *   cout << cmd->readline(); // 1
  *   cout << cmd->readline() << cmd->readline(); // 23
- * @endcode
+ * \endcode
  */
 class command {
  public:
diff --git a/include/utils/scope.hpp b/include/utils/scope.hpp
index 12c61ec9..1d0a0eba 100644
--- a/include/utils/scope.hpp
+++ b/include/utils/scope.hpp
@@ -28,12 +28,12 @@ namespace scope_util {
    * leaving the object's scope (i.e, when it gets destroyed)
    *
    * Example usage:
-   * @code cpp
+   * \code cpp
    *   {
    *     auto handler = scope_util::make_exit_handler([]{ ... })
    *     ...
    *   }
-   * @endcode
+   * \endcode
    */
   template <typename Fn = function<void()>, typename... Args>
   decltype(auto) make_exit_handler(Fn&& fn, Args&&... args) {
diff --git a/include/utils/socket.hpp b/include/utils/socket.hpp
index 23e26fb1..d0b1887e 100644
--- a/include/utils/socket.hpp
+++ b/include/utils/socket.hpp
@@ -34,11 +34,11 @@ namespace socket_util {
    * Creates a wrapper for a unix socket connection
    *
    * Example usage:
-   * @code cpp
+   * \code cpp
    *   auto conn = socket_util::make_unix_connection("/tmp/socket");
    *   conn->send(...);
    *   conn->receive(...);
-   * @endcode
+   * \endcode
    */
   auto make_unix_connection = [](string&& path) -> unique_ptr<unix_connection> {
     return factory_util::unique<unix_connection>(forward<string>(path));
diff --git a/include/utils/throttle.hpp b/include/utils/throttle.hpp
index f16be8d4..be207088 100644
--- a/include/utils/throttle.hpp
+++ b/include/utils/throttle.hpp
@@ -31,11 +31,11 @@ namespace throttle_util {
    * Throttle events within a set window of time
    *
    * Example usage:
-   * @code cpp
+   * \code cpp
    *   auto t = throttle_util::make_throttler(2, 1s);
    *   if (t->passthrough())
    *     ...
-   * @endcode
+   * \endcode
    */
   class event_throttler {
    public:
diff --git a/include/x11/winspec.hpp b/include/x11/winspec.hpp
index 281e8f51..6eea107f 100644
--- a/include/x11/winspec.hpp
+++ b/include/x11/winspec.hpp
@@ -117,7 +117,7 @@ struct cw_flush {
  * Create X window
  *
  * Example usage:
- * @code cpp
+ * \code cpp
  *   auto win = winspec(m_connection)
  *     << cw_size(100, 200)
  *     << cw_pos(10, -20)
@@ -125,7 +125,7 @@ struct cw_flush {
  *     << cw_class(XCB_WINDOW_CLASS_INPUT_ONLY)
  *     << cw_parent(0x000110a);
  *     << cw_flush(false);
- * @endcode
+ * \endcode
  */
 class winspec {
  public:
diff --git a/src/cairo/utils.cpp b/src/cairo/utils.cpp
index b58e4309..9fce145e 100644
--- a/src/cairo/utils.cpp
+++ b/src/cairo/utils.cpp
@@ -46,7 +46,7 @@ namespace cairo {
     // }}}
 
     /**
-     * @see <cairo/cairo.h>
+     * \see <cairo/cairo.h>
      */
     cairo_operator_t str2operator(const string& mode, cairo_operator_t fallback) {
       if (mode.empty()) {
@@ -89,7 +89,7 @@ namespace cairo {
     }
 
     /**
-     * @brief Create a UCS-4 codepoint from a utf-8 encoded string
+     * \brief Create a UCS-4 codepoint from a utf-8 encoded string
      */
     bool utf8_to_ucs4(const unsigned char* src, unicode_charlist& result_list) {
       if (!src) {
@@ -130,7 +130,7 @@ namespace cairo {
     }
 
     /**
-     * @brief Convert a UCS-4 codepoint to a utf-8 encoded string
+     * \brief Convert a UCS-4 codepoint to a utf-8 encoded string
      */
     size_t ucs4_to_utf8(char* utf8, unsigned int ucs) {
       if (ucs <= 0x7f) {
diff --git a/src/components/bar.cpp b/src/components/bar.cpp
index cf525abd..d9bb3087 100644
--- a/src/components/bar.cpp
+++ b/src/components/bar.cpp
@@ -310,8 +310,8 @@ const bar_settings bar::settings() const {
 /**
  * Parse input string and redraw the bar window
  *
- * @param data Input string
- * @param force Unless true, do not parse unchanged data
+ * \param data Input string
+ * \param force Unless true, do not parse unchanged data
  */
 void bar::parse(string&& data, bool force) {
   if (!m_mutex.try_lock()) {
diff --git a/src/components/builder.cpp b/src/components/builder.cpp
index bce01ab9..1d247729 100644
--- a/src/components/builder.cpp
+++ b/src/components/builder.cpp
@@ -186,7 +186,7 @@ void builder::node(string str, bool add_space) {
 /**
  * Insert text node with specific font index
  *
- * @see builder::node
+ * \see builder::node
  */
 void builder::node(string str, int font_index, bool add_space) {
   font(font_index);
diff --git a/src/utils/bspwm.cpp b/src/utils/bspwm.cpp
index 570b1753..92fab3cc 100644
--- a/src/utils/bspwm.cpp
+++ b/src/utils/bspwm.cpp
@@ -114,10 +114,10 @@ namespace bspwm_util {
    * Create an ipc socket connection
    *
    * Example usage:
-   * @code cpp
+   * \code cpp
    *   auto ipc = make_connection();
    *   ipc->send(make_payload("desktop -f eDP-1:^1"));
-   * @endcode
+   * \endcode
    */
   connection_t make_connection() {
     return socket_util::make_unix_connection(get_socket_path());
@@ -128,7 +128,7 @@ namespace bspwm_util {
    * on the bspwm socket
    *
    * Example usage:
-   * @code cpp
+   * \code cpp
    *   auto ipc = make_subscriber();
    *
    *   while (!ipc->poll(POLLHUP, 0)) {
@@ -136,7 +136,7 @@ namespace bspwm_util {
    *     auto data = ipc->receive(BUFSIZ-1, bytes_received, 0);
    *     std::cout << data << std::endl;
    *   }
-   * @endcode
+   * \endcode
    */
   connection_t make_subscriber() {
     auto conn = make_connection();
diff --git a/src/utils/command.cpp b/src/utils/command.cpp
index c7d92aa9..8513763e 100644
--- a/src/utils/command.cpp
+++ b/src/utils/command.cpp
@@ -145,7 +145,7 @@ int command::wait() {
 /**
  * Tail command output
  *
- * @note: This is a blocking call and will not
+ * \note: This is a blocking call and will not
  * end until the stream is closed
  */
 void command::tail(callback<string> cb) {
diff --git a/src/utils/inotify.cpp b/src/utils/inotify.cpp
index e5f1bed6..7c3b1746 100644
--- a/src/utils/inotify.cpp
+++ b/src/utils/inotify.cpp
@@ -50,7 +50,7 @@ void inotify_watch::remove(bool force) {
 /**
  * Poll the inotify fd for events
  *
- * @brief A wait_ms of -1 blocks until an event is fired
+ * \brief A wait_ms of -1 blocks until an event is fired
  */
 bool inotify_watch::poll(int wait_ms) const {
   if (m_fd == -1) {
diff --git a/src/utils/process.cpp b/src/utils/process.cpp
index 1f7ffce6..b11541de 100644
--- a/src/utils/process.cpp
+++ b/src/utils/process.cpp
@@ -72,7 +72,7 @@ namespace process_util {
   /**
    * Non-blocking wait
    *
-   * @see wait_for_completion
+   * \see wait_for_completion
    */
   pid_t wait_for_completion_nohang(pid_t process_id, int* status) {
     return wait_for_completion(process_id, status, WNOHANG);
@@ -81,7 +81,7 @@ namespace process_util {
   /**
    * Non-blocking wait
    *
-   * @see wait_for_completion
+   * \see wait_for_completion
    */
   pid_t wait_for_completion_nohang(int* status) {
     return wait_for_completion_nohang(-1, status);
@@ -90,7 +90,7 @@ namespace process_util {
   /**
    * Non-blocking wait
    *
-   * @see wait_for_completion
+   * \see wait_for_completion
    */
   pid_t wait_for_completion_nohang() {
     int status = 0;
@@ -100,7 +100,7 @@ namespace process_util {
   /**
    * Non-blocking wait call which returns pid of any child process
    *
-   * @see wait_for_completion
+   * \see wait_for_completion
    */
   bool notify_childprocess() {
     return wait_for_completion_nohang() > 0;
diff --git a/src/utils/socket.cpp b/src/utils/socket.cpp
index 05754a56..9d6e2e26 100644
--- a/src/utils/socket.cpp
+++ b/src/utils/socket.cpp
@@ -85,7 +85,7 @@ namespace socket_util {
   }
 
   /**
-   * @see receive
+   * \see receive
    */
   string unix_connection::receive(const ssize_t receive_bytes, int flags) {
     ssize_t bytes{0};
diff --git a/src/x11/tray_manager.cpp b/src/x11/tray_manager.cpp
index 7a4cae08..e07bf014 100644
--- a/src/x11/tray_manager.cpp
+++ b/src/x11/tray_manager.cpp
@@ -945,7 +945,7 @@ void tray_manager::handle(const evt::configure_request& evt) {
 }
 
 /**
- * @see tray_manager::handle(const evt::configure_request&);
+ * \see tray_manager::handle(const evt::configure_request&);
  */
 void tray_manager::handle(const evt::resize_request& evt) {
   if (m_activated && is_embedded(evt->window)) {