local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
-- local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
local gears = require("gears")
local awful = require("awful")
function personal_mappings()
return {

  awful.key({modkey, "Control"}, "w", function ()
    if taskbar then
      awful.spawn("killall polybar")
      taskbar = false
    else
      awful.spawn("sh /home/knuffelbeer/.config/polybar/launch.sh")
      taskbar = true
    end
  end
  ),
awful.key({"Shift"}, "XF86MonBrightnessUp",function ()
    Gamma = AdjustColorIdx(Gamma, true)
    awful.spawn(ChooseColor(Gamma, "eDP-1"))
end ),
  awful.key({modkey, "Shift"}, "r", function ()
    awful.spawn("rofi -show filebrowser")
  end),
awful.key({"Shift"}, "XF86MonBrightnessDown",function ()
    Gamma = AdjustColorIdx(Gamma, false)
    awful.spawn(ChooseColor(Gamma, "eDP-1"))
       end ),

awful.key({"Shift"}, "XF86MonBrightnessUp", "h",function ()
    GammaHdmi = AdjustColorIdx(Gamma, true)
    awful.spawn(ChooseColor(Gamma, "HDMI-1"))
end ),
awful.key({"Shift"}, "XF86MonBrightnessDown", "h",function ()
    GammaHdmi = AdjustColorIdx(Gamma, false)
    awful.spawn(ChooseColor(Gamma, "HDMI-1"))
       end ),

awful.key({"Control"}, "XF86MonBrightnessDown",function ()
        awful.spawn("python /home/knuffelbeer/bashScripts/increase_terminal_opacity.py")
      end),
awful.key({"Control"}, "XF86MonBrightnessUp",function ()
        awful.spawn("python /home/knuffelbeer/bashScripts/decrease_terminal_opacity.py")
      end),

    awful.key({}, "XF86MonBrightnessUp",function ()
    CurrentBrightness = AdjustBrightnessIdx(CurrentBrightness, true)
    awful.spawn(AdjustBrightness(CurrentBrightness, "eDP-1"))
end ),
awful.key({},"XF86MonBrightnessDown" ,function ()
    CurrentBrightness = AdjustBrightnessIdx(CurrentBrightness, false)
    awful.spawn(AdjustBrightness(CurrentBrightness, "eDP-1"))
end ),
awful.key({}, "XF86AudioMute", function () awful.spawn("amixer -D pulse sset Master toggle", false) end),
    awful.key(
    { }, "XF86AudioLowerVolume",
    function() 
        awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ -5%")
    end,
    {description = "lower volume", group = "system"}),
awful.key(
    { }, "XF86AudioRaiseVolume",
    function()
        awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ +5%")
    end,
    {description = "increase volume", group = "system"}),
    awful.key({"Control", "Shift"}, "q", function ()
        awful.spawn("poweroff")
    end, {description="Power Off"}),
    awful.key({modkey,       "Mod1"     }, "c", function ()
      awful.spawn(default_browser.." https://canvas.uva.nl/")
    end,{description="Open canvas", group="applications"}),
 
    awful.key({modkey,            }, "y", function ()
      awful.spawn( "qutebrowser https://www.youtube.com/ ",{window = 5})
      
    end,{description="Open youtube", group="applications"}),
    awful.key({modkey,       "Mod1"     }, "g", function ()
      awful.spawn(default_browser.." https://chat.openai.com/")
    end,{description="Chatgpt", group="applications"}),
    awful.key({modkey,   "Shift"         }, "b", function ()
        awful.spawn("blueman-manager") 
    end, {description="Go to Bluetooth Settings", group="applications"}),

    awful.key({modkey,            }, "g", function ()
        awful.spawn(qutebrowser_darkmode)
    end,{description="Open Google Chrome", group="applications"}),
    awful.key({modkey,            }, "w", function ()
        awful.spawn(default_browser.." https://web.whatsapp.com/")
    end,{description="Open Whatsapp", group="applications"}),
    awful.key({modkey, "Mod1"}, "s", function ()
        awful.spawn("spotify")
    end,{description="Open spotifOpen spotify" }),

    awful.key({modkey, "Mod1"}, "f", function ()
        awful.spawn(default_browser .. " https://fmoviesz.to/tv/the-big-bang-theory-jjq14/8-4")
    end,{description="Open fmovies", group="applications"}),
    -- awful.key({ modkey,           }, "s",      hotkeys_popup.show_help,
    --           {description="show help", group="awesome"}),
    awful.key({ modkey,           }, "Left",   awful.tag.viewprev,
              {description = "view previous", group = "tag"}),
    awful.key({ modkey,           }, "Right",  awful.tag.viewnext,
              {description = "view next", group = "tag"}),
    awful.key({ modkey,           }, "Escape", awful.tag.history.restore,
              {description = "go back", group = "tag"}),

    awful.key({ modkey,           }, "j",
        function ()
            awful.client.focus.byidx( 1)
        end,
        {description = "focus next by index", group = "client"}
    ),
    awful.key({ modkey,           }, "k",
        function ()
            awful.client.focus.byidx(-1)
        end,
        {description = "focus previous by index", group = "client"}),
   awful.key({ modkey, "Shift"   }, "j", function () awful.client.swap.byidx(  1)    end,
              {description = "swap with next client by index", group = "client"}),
    awful.key({ modkey, "Shift"   }, "k", function () awful.client.swap.byidx( -1)    end,
              {description = "swap with previous client by index", group = "client"}),
    awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
              {description = "focus the next screen", group = "screen"}),

    awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
              {description = "focus the previous screen", group = "screen"}),
    awful.key({ modkey,           }, "u", awful.client.urgent.jumpto,
              {description = "jump to urgent client", group = "client"}),
    awful.key({ modkey,           }, "Tab",
        function ()
            awful.client.focus.history.previous()
            if client.focus then
                client.focus:raise()
            end
        end,
        {description = "go back", group = "client"}),

    -- Standard program
    awful.key({ modkey,           }, "Return", function ()
        awful.spawn("alacritty") end,  {description = "open a terminal", group = "launcher"}),
    awful.key({ modkey, "Control" }, "r", awesome.restart,
              {description = "reload awesome", group = "awesome"}),
    awful.key({ modkey, "Shift"   }, "q", awesome.quit,
              {description = "quit awesome", group = "awesome"}),


    awful.key({ modkey,           }, "l",     function () awful.tag.incmwfact( 0.05)          end,
              {description = "increase master width factor", group = "layout"}),
    awful.key({ modkey,           }, "h",     function () awful.tag.incmwfact(-0.05)          end,
              {description = "decrease master width factor", group = "layout"}),
    awful.key({ modkey, "Shift"   }, "h",     function () awful.tag.incnmaster( 1, nil, true) end,
              {description = "increase the number of master clients", group = "layout"}),
    awful.key({ modkey, "Shift"   }, "l",     function () awful.tag.incnmaster(-1, nil, true) end,
              {description = "decrease the number of master clients", group = "layout"}),
    awful.key({ modkey, "Control" }, "h",     function () awful.tag.incncol( 1, nil, true)    end,
              {description = "increase the number of columns", group = "layout"}),
    awful.key({ modkey, "Control" }, "l",     function () awful.tag.incncol(-1, nil, true)    end,
              {description = "decrease the number of columns", group = "layout"}),
    awful.key({ modkey,           }, "space", function () awful.layout.inc( 1)                end,
              {description = "select next", group = "layout"}),
    awful.key({ modkey, "Shift"   }, "space", function () awful.layout.inc(-1)                end,
              {description = "select previous", group = "layout"}),

    awful.key({ modkey, "Control" }, "n",
              function ()
                  local c = awful.client.restore()
                  -- Focus restored client
                  if c then
                    c:emit_signal(
                        "request::activate", "key.unminimize", {raise = true}
                    )
                  end
              end,
              {description = "restore minimized", group = "client"}),

    -- Prompt
    awful.key({ modkey },            "r",     function () awful.spawn("rofi -show drun -terminal alacritty") end,
              {description = "run prompt", group = "launcher"}),
  awful.key({modkey, "Control"}, "b", function ()
           local s = awful.screen.focused()
            s.mywibox.visible = not s.mywibox.visible
  end)
}
end
