diff --git a/init.sh b/init.sh
index 467453cd6a7e00c6226d8e2e289084164be2297c..9be84945da4a5638bc927bd68fd673b8deeca819 100755
--- a/init.sh
+++ b/init.sh
@@ -1,14 +1,6 @@
 #!/bin/sh
-
-# export GTK_IM_MODULE=ibus
-# export XMODIFIERS=@im=ibus
-# export QT_IM_MODULES=ibus
-ibus-daemon -drx
-ibus engine anthy
-# xrdb $HOME/.Xresources
-# feh --bg-scale /home/kubat/.xmonad/wallpaper &
+#ibus-daemon -drx
+#ibus engine anthy
+fcitx5&
 pulseaudio &
 setxkbmap kubat
-#
-# ps aux | grep twmnd | grep -v grep
-# [ "$?" == "0" ] && twmnd &
diff --git a/wallpaper.1 b/wallpaper.1
new file mode 100644
index 0000000000000000000000000000000000000000..18aa97552864a7bf91bfa27320c5cbf34f062330
Binary files /dev/null and b/wallpaper.1 differ
diff --git a/wallpaper.back b/wallpaper.back
deleted file mode 100644
index 1e386f9d56a7a8fde88c9799da69a91aec936059..0000000000000000000000000000000000000000
Binary files a/wallpaper.back and /dev/null differ
diff --git a/xmobar.hs b/xmobar.hs
index b44ab5c04cbb3938d4c5fa2f6f44bb68e47fd134..28bb1d1fbf2efde15f042cf08140df332a202546 100644
--- a/xmobar.hs
+++ b/xmobar.hs
@@ -14,7 +14,7 @@ Config { font     = "xft:HackNerdFont:size=10:antialias=true,IPAPGothic:size=10:
                                      , "--"
                                      , "-o"   , "<icon=bat_0.xpm/> <left>%"
                                      , "-O"   , "<icon=bat_1.xpm/> <left>%"
-                                     , "-i"   , "<icon=bat_1.xpm/>"
+                                     , "-i"   , "<icon=bat_2.xpm/>"
                                      ] 50
                      , Run Com "/home/kubat/.local/libexec/get_pa_volume.sh" [] "volume" 2
                      , Run Com "/home/kubat/.local/libexec/is_vpn_running.sh" [] "vpn" 50
@@ -25,5 +25,5 @@ Config { font     = "xft:HackNerdFont:size=10:antialias=true,IPAPGothic:size=10:
        , allDesktops    = False
        , sepChar        = "%"
        , alignSep       = "}{"
-       , template       = " <icon=haskell_20.xpm/> %StdinReader% } %lektor% { %cpu% %coretemp% %memory% <fc=#b58900>Vol</fc> %volume% %vpn%%battery% | <fc=#b58900>%date%</fc> %trayerpad%"
+       , template       = " <icon=haskell_20.xpm/> %StdinReader% } { %cpu% %coretemp% %memory% <fc=#b58900>Vol</fc> %volume% %vpn%%battery% | <fc=#b58900>%date%</fc> |%trayerpad%"
 }
diff --git a/xmonad.hs b/xmonad.hs
index 5387861d9bbf753020fb36c6789e75912ebaa8f4..8260b22ada81f234f5e5ab10d9b60e7b540db981 100644
--- a/xmonad.hs
+++ b/xmonad.hs
@@ -77,10 +77,10 @@ import XMonad.Layout.PerWorkspace
 -- The main --
 --------------
 
+--  putEnv "GTK_IM_MODULE=ibus"
+--  putEnv "XMODIFIERS=@im=ibus"
+--  putEnv "QT_IM_MODULES=ibus"
 main = do
-  putEnv "GTK_IM_MODULE=ibus"
-  putEnv "XMODIFIERS=@im=ibus"
-  putEnv "QT_IM_MODULES=ibus"
   path <- getEnv "PATH"
   (\path -> if (isJust path) then setEnv "PATH" ("/home/kubat/.local/bin/:" ++ (fromJust path)) True else print "No path defined") path
   xmproc <- spawnPipe "/usr/bin/xmobar -x 0 /home/kubat/.xmonad/xmobar.hs"
@@ -105,6 +105,7 @@ main = do
                               <+> serverModeEventHookF "XMONAD_PRINT" (io . putStrLn)
     , layoutHook            = myLayoutHook
     , borderWidth           = 3
+    , mouseBindings         = myMouseBindings
     , logHook               = do
         takeTopFocus
         dynamicLogWithPP xmobarPP
@@ -127,15 +128,28 @@ main = do
 -- My variables --
 ------------------
 
+--    spawn       "/home/kubat/.xmonad/init.sh"
+--    spawnOnce   "dbus-daemon --fork"
 myStartupHook = do
-    spawnOnce   "/home/kubat/.local/bin/xbanish"
-    spawn       "/home/kubat/.xmonad/init.sh"
     spawn       "xrdb /home/kubat/.Xresources"
+    spawn       "setxkbmap kubat"
+    spawnOnce   "/home/kubat/.local/bin/xbanish"
+    spawnOnce   "pulseaudio &"
     spawnOnce   "twmnd &"
     spawnOnce   "nm-applet &"
     spawnOnce   "feh --bg-scale /home/kubat/.xmonad/wallpaper &"
-    spawn       "setxkbmap kubat"
-    spawnOnce   "trayer --edge top --align right --widthtype request --padding 6 --SetDockType true --SetPartialStrut true --expand true --monitor 1 --tint 0x002b36 --transparent true --alpha 0 --height 18 &"
+    spawnOnce   "fcitx &"
+    spawnOnce   (  "trayer --edge top --align right --widthtype request --padding 6 --SetDockType true "
+                ++ "--SetPartialStrut true --expand true --monitor 1 --tint 0x002b36 --transparent true "
+                ++ "--alpha 0 --height 18 &"
+                )
+
+-- you may also bind events to the mouse scroll wheel (button4 and button5)
+myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
+  [ ((mod4Mask, button1),   (\w -> focus w >> mouseMoveWindow w))       -- mod-button1, Set the window to floating mode and move by dragging
+  , ((mod4Mask, button2),   (\w -> focus w >> windows W.swapMaster))    -- mod-button2, Raise the window to the top of the stack
+  , ((mod4Mask, button3),   (\w -> focus w >> mouseResizeWindow w))     -- mod-button3, Set the window to floating mode and resize by dragging
+  ]
 
 myLayoutHook =
     minimize $ boringAuto (toggleLayouts (noBorders Full) others)
@@ -152,12 +166,12 @@ myManageHook = do
         , [ isDialog                        --> doCenterFloat                ]
         , [ manageDocks                                                      ]
         ] where myIgnores = [ "desktop", "desktop_window" ]
-                myFloats  = [ "Xmessage", "Unity", "Display" ]
+                myFloats  = [ "Xmessage", "Unity", "Display", "Nm-connection-editor" ]
 
-myTerm     = "st"
-myXPConfig = def { font = "xft:Hack Nerd Font Mono:size=9"
-                 , bgColor = "#073642"
-                 , fgColor = "#b9baba"
+myTerm     = "konsole"
+myXPConfig = def { font     = "xft:Hack Nerd Font Mono:size=9"
+                 , bgColor  = "#073642"
+                 , fgColor  = "#b9baba"
                  , position = Top
                  , promptBorderWidth = 0
                  }
@@ -175,86 +189,87 @@ instance UrgencyHook LibNotifyUrgencyHook where
 -------------
 
 myAdditionalKeys =
-  [ ((mod4Mask,                     xK_Return), spawn myTerm)
+  [ ((mod4Mask,                     xK_Return),     spawn myTerm)
 
  -- Apps
-  , ((mod4Mask,                     xK_a),      submap . M.fromList $
-    [ ((0, xK_p),                               spawn "firefox --private-window")
-    , ((0, xK_w),                               spawn "firefox")
-    , ((0, xK_c),                               spawn "chromium")
-    , ((0, xK_v),                               spawn "/home/kubat/bin/V4")
-    , ((0, xK_t),                               spawn "/usr/bin/alacritty")
-    , ((0, xK_Return),                          spawn myTerm)
+  , ((mod4Mask,                     xK_a),          submap . M.fromList $
+    [ ((0, xK_p),                                   spawn "firefox --private-window")
+    , ((0, xK_w),                                   spawn "firefox")
+    , ((0, xK_c),                                   spawn "chromium")
+    , ((0, xK_v),                                   spawn "/home/kubat/bin/V4")
+    , ((0, xK_t),                                   spawn "/usr/bin/alacritty")
+    , ((0, xK_Return),                              spawn myTerm)
     ])
 
  -- Passwords
-  , ((mod4Mask,                     xK_p),      spawn "passmenu -h 18")
+  , ((mod4Mask,                     xK_p),          spawn "passmenu -h 18")
 
  -- Utility
-  , ((mod4Mask,                     xK_d),      spawn "dmenu_run -h 18")
-  , ((mod4Mask,                     xK_b),      sendMessage ToggleStruts)
-  , ((mod4Mask,                     xK_F1),     spawn "i3lock -e -u -t -i /home/kubat/.xmonad/lock")
-  , ((mod4Mask,                     xK_Print),  spawn "scrot $(date +%F-%H:%M:%S).png -e 'mv $f /home/kubat/pictures/screenshot/'")
-  , ((mod4Mask,                     xK_F2),     confirmPrompt myXPConfig "poweroff" $ spawn "systemctl poweroff")
-  , ((mod4Mask,                     xK_q),      confirmPrompt myXPConfig "quit" $ io (exitWith ExitSuccess))
-  , ((mod4Mask .|. shiftMask,       xK_c),      kill)
+  , ((mod4Mask,                     xK_d),          spawn "dmenu_run -h 18")
+  , ((mod4Mask,                     xK_b),          sendMessage ToggleStruts)
+  , ((mod4Mask,                     xK_F1),         spawn "i3lock -e -u -t -i /home/kubat/.xmonad/lock")
+  , ((mod4Mask,                     xK_Print),      spawn "scrot $(date +%F-%H:%M:%S).png -e 'mv $f /home/kubat/pictures/screenshot/'")
+  , ((mod4Mask,                     xK_F2),         confirmPrompt myXPConfig "poweroff" $ spawn "systemctl poweroff")
+  , ((mod4Mask,                     xK_q),          confirmPrompt myXPConfig "quit" $ io (exitWith ExitSuccess))
+  , ((mod4Mask .|. shiftMask,       xK_c),          kill)
 
  -- Workspaces
-  , ((mod4Mask,                     xK_j),      focusDown)
-  , ((mod4Mask,                     xK_k),      focusUp)
-  , ((mod4Mask,                     xK_m),      focusMaster)
-  , ((mod4Mask,                     xK_Tab),    return ())
-  , ((mod4Mask .|. shiftMask,       xK_Tab),    return ())
-  , ((mod4Mask .|. controlMask,     xK_space),  withFocused $ windows . W.sink)
-
-  , ((mod4Mask,                     xK_comma),  moveTo  Prev HiddenWS)
-  , ((mod4Mask,                     xK_period), moveTo  Next HiddenWS)
-  , ((mod4Mask .|. shiftMask,       xK_comma),  shiftTo Prev HiddenWS)
-  , ((mod4Mask .|. shiftMask,       xK_period), shiftTo Next HiddenWS)
-  , ((mod4Mask,                     xK_slash),  focusMaster)
-  , ((mod4Mask .|. shiftMask,       xK_slash),  windows W.swapMaster)
-
-  , ((mod4Mask,                     xK_Escape), sendMessage (Toggle "Full"))
-
-  , ((mod4Mask,                     xK_exclam), nextScreen)
-  , ((mod4Mask .|. shiftMask,       xK_exclam), shiftNextScreen)
-
-  , ((mod4Mask .|. shiftMask,       xK_8),      sendMessage (IncMasterN 1)   )
-  , ((mod4Mask .|. shiftMask,       xK_6),      sendMessage Expand           )
-  , ((mod4Mask .|. shiftMask,       xK_2),      sendMessage (IncMasterN (-1)))
-  , ((mod4Mask .|. shiftMask,       xK_4),      sendMessage Shrink           )
+  , ((mod4Mask,                     xK_j),          focusDown)
+  , ((mod4Mask,                     xK_k),          focusUp)
+  , ((mod4Mask,                     xK_m),          focusMaster)
+  , ((mod4Mask,                     xK_Tab),        return ())
+  , ((mod4Mask .|. shiftMask,       xK_Tab),        return ())
+  , ((mod4Mask .|. controlMask,     xK_space),      withFocused $ windows . W.sink)
+
+  , ((mod4Mask,                     xK_comma),      moveTo  Prev HiddenWS)
+  , ((mod4Mask,                     xK_semicolon),  moveTo  Next HiddenWS)
+  , ((mod4Mask .|. shiftMask,       xK_comma),      shiftTo Prev HiddenWS)
+  , ((mod4Mask .|. shiftMask,       xK_semicolon),  shiftTo Next HiddenWS)
+  , ((mod4Mask,                     xK_slash),      focusMaster)
+  , ((mod4Mask .|. shiftMask,       xK_slash),      windows W.swapMaster)
+
+  , ((mod4Mask,                     xK_Escape),     sendMessage (Toggle "Full"))
+
+  , ((mod4Mask,                     xK_exclam),     nextScreen)
+  , ((mod4Mask .|. shiftMask,       xK_exclam),     shiftNextScreen)
+
+  , ((mod4Mask .|. shiftMask,       xK_8),          sendMessage (IncMasterN 1)   )
+  , ((mod4Mask .|. shiftMask,       xK_6),          sendMessage Expand           )
+  , ((mod4Mask .|. shiftMask,       xK_2),          sendMessage (IncMasterN (-1)))
+  , ((mod4Mask .|. shiftMask,       xK_4),          sendMessage Shrink           )
 
  -- Dynamic workspaces and workspace control
-  , ((mod4Mask,                     xK_w),      submap . M.fromList $
-    [ ((0, xK_BackSpace),                       removeWorkspace)
-    , ((0, xK_n),                               addWorkspacePrompt myXPConfig)
-    , ((0, xK_r),                               renameWorkspace myXPConfig)
+  , ((mod4Mask,                     xK_w),          submap . M.fromList $
+    [ ((0, xK_BackSpace),                           removeWorkspace)
+    , ((0, xK_n),                                   addWorkspacePrompt myXPConfig)
+    , ((0, xK_r),                                   renameWorkspace myXPConfig)
     ])
 
  -- Volume, with pulseaudio
-  , ((mod4Mask,                     xK_F11),    spawn "pavolume voldown 5 --noshow")
-  , ((mod4Mask,                     xK_F12),    spawn "pavolume volup 5 --noshow")
-  , ((mod4Mask,                     xK_F10),    spawn "pavolume mutetoggle")
+  , ((mod4Mask,                     xK_F11),        spawn "pavolume voldown 5 --noshow")
+  , ((mod4Mask,                     xK_F12),        spawn "pavolume volup 5 --noshow")
+  , ((mod4Mask,                     xK_F10),        spawn "pavolume mutetoggle")
 
  -- Lektord
-  , ((mod4Mask .|. mod1Mask,        xK_n),      spawn "lkt next")
-  , ((mod4Mask .|. mod1Mask,        xK_p),      spawn "lkt prev")
-  , ((mod4Mask .|. mod1Mask,        xK_s),      spawn "lkt stop")
-  , ((mod4Mask .|. mod1Mask,        xK_space),  spawn "lkt play")
-  , ((mod4Mask .|. mod1Mask,        xK_F11),    spawn "mpc volume -5")
-  , ((mod4Mask .|. mod1Mask,        xK_F12),    spawn "mpc volume +5")
+  , ((mod4Mask .|. mod1Mask,        xK_n),          spawn "lkt next")
+  , ((mod4Mask .|. mod1Mask,        xK_p),          spawn "lkt prev")
+  , ((mod4Mask .|. mod1Mask,        xK_s),          spawn "lkt stop")
+  , ((mod4Mask .|. mod1Mask,        xK_space),      spawn "lkt play")
+  , ((mod4Mask .|. mod1Mask,        xK_F11),        spawn "mpc volume -5")
+  , ((mod4Mask .|. mod1Mask,        xK_F12),        spawn "mpc volume +5")
 
  -- Light
-  , ((mod4Mask,                     xK_F5),     spawn "lux -s 10%")
-  , ((mod4Mask,                     xK_F6),     spawn "lux -a 10%")
-  , ((mod4Mask,                     xK_F3),     spawn "asus-kbd-backlight down")
-  , ((mod4Mask,                     xK_F4),     spawn "asus-kbd-backlight up")
+  , ((mod4Mask,                     xK_F5),         spawn "lux -s 10%")
+  , ((mod4Mask,                     xK_F6),         spawn "lux -a 10%")
+  , ((mod4Mask,                     xK_F3),         spawn "asus-kbd-backlight down")
+  , ((mod4Mask,                     xK_F4),         spawn "asus-kbd-backlight up")
 
  -- Scratchpads
-  , ((mod4Mask,                     xK_x),      submap . M.fromList $
-    [ ((0, xK_Return),                          do { scratchpadAction myScratchPads "terminal"  ; focusMaster })
-    , ((0, xK_d),                               do { scratchpadAction myScratchPads "discord"   ; focusMaster })
-    , ((0, xK_x),                               hideAll myScratchPads)
+  , ((mod4Mask,                     xK_x),          submap . M.fromList $
+    [ ((0, xK_Return),                              do { scratchpadAction myScratchPads "terminal" ; focusMaster })
+    , ((0, xK_d),                                   do { scratchpadAction myScratchPads "discord"  ; focusMaster })
+    , ((0, xK_c),                                   do { scratchpadAction myScratchPads "element"  ; focusMaster })
+    , ((0, xK_x),                                   hideAll myScratchPads)
     ])
   ]
 
@@ -262,8 +277,9 @@ myAdditionalKeys =
 -- My scratchpads --
 --------------------
 
-myScratchPads = mkXScratchpads [ ("terminal", "st.sh",   resource  =? "terminal" )
-                               , ("discord",  "discord", className =? "discord"  )
+myScratchPads = mkXScratchpads [ ("terminal", "st.sh",           resource  =? "terminal")
+                               , ("discord",  "discord",         className =? "discord" )
+                               , ("element",  "element-desktop", className =? "Element" )
                                ] $ customFloating $ W.RationalRect l t w h
                                where h = 0.9
                                      w = 0.9
diff --git a/xpm/bat_1.xpm b/xpm/bat_1.xpm
index 05dc8d237e2d127a3b01df52f4c45d0e4a007546..459fe827cdd96130c415c2dfc2b59ddda106797f 100644
--- a/xpm/bat_1.xpm
+++ b/xpm/bat_1.xpm
@@ -1,19 +1,20 @@
 /* XPM */
 static char *bat_1_xpm[] = {
-"24 16 2 1",
+"24 16 3 1",
 "  c None",
 "w c #b58900",
+". c #839496",
 "                        ",
 " wwwwwwwwwwwwwwwwwwww   ",
 " w                  w   ",
 " w                  w   ",
 " w                  www ",
-" w    wwwwwwwww       w ",
-" w   wwwwwwwww        w ",
-" w        www         w ",
-" w       www          w ",
-" w      wwwwwwwww     w ",
-" w     wwwwwwwww      w ",
+" w    .........       w ",
+" w   .........        w ",
+" w        ...         w ",
+" w       ...          w ",
+" w      .........     w ",
+" w     .........      w ",
 " w                  www ",
 " w                  w   ",
 " w                  w   ",
diff --git a/xpm/bat_2.xpm b/xpm/bat_2.xpm
new file mode 100644
index 0000000000000000000000000000000000000000..41251d668d2bbdd3e354321d05fe387a1c1eeff3
--- /dev/null
+++ b/xpm/bat_2.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static char *bat_2_xpm[] = {
+"24 16 2 1",
+"  c None",
+"w c #b58900",
+"                        ",
+" wwwwwwwwwwwwwwwwwwww   ",
+" w                  w   ",
+" w                  w   ",
+" w                  www ",
+" w    wwwwwwwww       w ",
+" w   wwwwwwwww        w ",
+" w        www         w ",
+" w       www          w ",
+" w      wwwwwwwww     w ",
+" w     wwwwwwwww      w ",
+" w                  www ",
+" w                  w   ",
+" w                  w   ",
+" wwwwwwwwwwwwwwwwwwww   ",
+"                        ",
+};