Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • f250149cceb78a5624b8e3000b339777240cb242
  • master par défaut protégée
  • dev
  • dev-admin
  • migration-pg
  • dev-partie
  • dev-deplacement-msg-erreurs
  • dev-jeux-favoris
  • dev-update-forms
  • dev-header-profil-deconnexion
  • dev-contact
  • dev_page_accueil
  • dev-edit-profil
  • dev-classement
  • dev_espace_membre
  • dev-images
  • javascript_valid_form
  • application_design_views
  • dev-table
  • dev-nestor
20 résultats

ErrorController.php

Blame
  • xmonad.hs 11,24 Kio
    -------------
    -- Imports --
    -------------
    
        -- Base
    import System.IO
    import System.Exit
    import System.Posix.Env
    import Data.Map as M
    import Data.Char
    import Data.List (intercalate)
    import Data.List.Split (splitOn)
    import Data.Maybe
    import Graphics.X11.ExtraTypes.XF86
    
        -- Xmonad
    import XMonad
    import XMonad.Operations
    import XMonad.ManageHook
    import XMonad.Config.Desktop
    import qualified XMonad.StackSet as W
    
        -- Actions
    import XMonad.Actions.SpawnOn
    import XMonad.Actions.CycleWS
    import XMonad.Actions.Commands
    import XMonad.Actions.DynamicWorkspaces
    import XMonad.Actions.Submap
    import XMonad.Actions.TagWindows
    import XMonad.Actions.DynamicWorkspaceGroups
    import XMonad.Actions.Minimize
    import qualified XMonad.Actions.DynamicWorkspaceOrder as DO
    
        -- Utils
    import XMonad.Util.Scratchpad
    import XMonad.Util.SessionStart
    import XMonad.Util.SpawnOnce
    import XMonad.Util.Run
    import XMonad.Util.EZConfig (additionalKeys)
    import XMonad.Util.NamedWindows
    import XMonad.Util.Loggers
    import XMonad.Util.WorkspaceCompare
    import XMonad.Util.ExclusiveScratchpads
    
        -- Hooks
    import XMonad.Hooks.ICCCMFocus
    import XMonad.Hooks.DynamicLog  hiding (xmobar)
    import XMonad.Hooks.ManageDocks
    import XMonad.Hooks.ManageHelpers
    import XMonad.Hooks.UrgencyHook
    import XMonad.Hooks.SetWMName
    import XMonad.Hooks.EwmhDesktops (ewmh)
    import XMonad.Hooks.DebugStack
    import XMonad.Hooks.Minimize
    import XMonad.Hooks.ServerMode
    
        -- Prompts
    import XMonad.Prompt
    import XMonad.Prompt.Window
    import XMonad.Prompt.Layout
    import XMonad.Prompt.ConfirmPrompt
    
        -- Layouts
    import XMonad.Layout.Minimize
    import XMonad.Layout.ToggleLayouts
    import XMonad.Layout.Named
    import XMonad.Layout.ResizableTile
    import XMonad.Layout.LayoutModifier
    import XMonad.Layout.NoBorders
    import XMonad.Layout.BinarySpacePartition
    import XMonad.Layout.WindowNavigation as WinNav
    import XMonad.Layout.BoringWindows
    import XMonad.Layout.SubLayouts
    import XMonad.Layout.PerWorkspace
    
    --------------
    -- The main --
    --------------
    
    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"
      xmonad $ docks $ ewmh $ withUrgencyHook LibNotifyUrgencyHook $ defaultConfig
        { modMask               = mod4Mask
        , focusFollowsMouse     = False
        , focusedBorderColor    = "#268bd2"
        , normalBorderColor     = "#808080"
        , terminal              = myTerm
        , workspaces            = ["#"]
        , manageHook            = manageHook defaultConfig
                                  <+> myManageHook
                                  <+> manageDocks
                                  <+> xScratchpadsManageHook myScratchPads
        , startupHook           = docksStartupHook
                                  <+> setWMName "LG3D"
                                  <+> myStartupHook
        , handleEventHook       = docksEventHook
                                  <+> minimizeEventHook
                                  <+> serverModeEventHookCmd
                                  <+> serverModeEventHook
                                  <+> serverModeEventHookF "XMONAD_PRINT" (io . putStrLn)
        , layoutHook            = myLayoutHook
        , borderWidth           = 3
        , logHook               = do
            takeTopFocus
            dynamicLogWithPP xmobarPP
              { ppOutput            = hPutStrLn xmproc
              , ppTitle             = xmobarColor       "#c678dd" "" . shorten 50
              , ppLayout            = xmobarColor       "#b58900" "" . (Prelude.map toLower)
              , ppSep               = " "
              , ppWsSep             = " "
              , ppCurrent           = xmobarColor       "#268bd2" ""        . (\ x -> x) . (Prelude.map toUpper)
              , ppVisible           = xmobarColor       "grey"    ""        . (\ x -> x) . (Prelude.map toUpper)
              , ppHidden            = xmobarColor       "grey"    ""        . (\ x -> x) . (Prelude.map toUpper)
              , ppHiddenNoWindows   = xmobarColor       "#707070" ""        . (\ x -> x) . (Prelude.map toUpper)
              , ppUrgent            = xmobarColor       "#b58900" "" . (\ x -> x) . (Prelude.map toUpper)
              , ppVisibleNoWindows  = Just (xmobarColor "#707070" ""        . (\ x -> x) . (Prelude.map toUpper))
              , ppOrder             = \(ws:layout:title:extra) -> [ (replace "minimize " "" layout), ws ]
              }
        } `additionalKeys` myAdditionalKeys
    
    ------------------
    -- My variables --
    ------------------
    
    myStartupHook = do
        spawnOnce   "/home/kubat/.local/bin/xbanish"
        spawn       "/home/kubat/.xmonad/init.sh"
        spawn       "xrdb /home/kubat/.Xresources"
        spawnOnce   "feh --bg-scale /home/kubat/.xmonad/wallpaper &"
        spawn       "setxkbmap kubat"
        spawnOnce   "twmnd &"
    
    myLayoutHook =
        minimize $ boringAuto (toggleLayouts (noBorders Full) others)
        where others = (named "Tall" $ avoidStruts $ ResizableTall 1 (3.0 / 100.0) 0.5 [])
                       ||| (named "Mirror-Tall" $ avoidStruts $ Mirror $ ResizableTall 1 (3.0 / 100.0) 0.5 [])
                       ||| (named "Full" $ avoidStruts $ Full)
    
    myManageHook = do
        composeAll . concat $
            [ [ resource    =? r                --> doIgnore    | r <- myIgnores    ]
            , [ className   =? c                --> doFloat     | c <- myFloats     ]
            , [ title       =? "OCaml graphics" --> doFloat                         ]
            , [ title       =? "desktop"        --> doIgnore                        ]
            , [ isDialog                        --> doCenterFloat                   ]
            , [ manageDocks                                                         ]
            ] where myIgnores = [ "desktop", "desktop_window" ]
                    myFloats  = [ "Xmessage", "Unity", "Display" ]
    
    myTerm          = "alacritty"
    myXPConfig      = def { font = "xft:Hack Nerd Font Mono:size=9"
                          , bgColor = "#073642"
                          , fgColor = "#b9baba"
                          , position = Top
                          , promptBorderWidth = 0
                          }
    replace from to = intercalate to . splitOn from
    
    data LibNotifyUrgencyHook = LibNotifyUrgencyHook deriving (Read, Show)
    instance UrgencyHook LibNotifyUrgencyHook where
        urgencyHook LibNotifyUrgencyHook w = do
            name     <- getName w
            Just idx <- fmap (W.findTag w) $ gets windowset
            safeSpawn "notify-send" [show name, "workspace " ++ idx]
    
    -------------
    -- My keys --
    -------------
    
    myAdditionalKeys =
      [ ((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)
        ])
    
     -- Passwords
      , ((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)
    
     -- 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           )
    
     -- 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)
        ])
    
     -- Volume, with pulseaudio
      , ((mod4Mask,                     xK_F11),    spawn "pavolume voldown 5")
      , ((mod4Mask,                     xK_F12),    spawn "pavolume volup 5")
      , ((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")
    
     -- 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")
    
     -- 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)
        ])
      ]
    
    --------------------
    -- My scratchpads --
    --------------------
    
    myScratchPads = mkXScratchpads [ ("terminal",   "alac.sh",      resource  =? "terminal" )
                                   , ("discord",    "discord",      className =? "discord"  )
                                   ] $ customFloating $ W.RationalRect l t w h
                                   where h = 0.9
                                         w = 0.9
                                         t = 0.95 -h
                                         l = 0.95 -w