xmonad-vanessa 0.1.1.4 → 0.1.1.5
raw patch · 5 files changed
+55/−114 lines, 5 filesdep +composition-preludedep −compositionPVP ok
version bump matches the API change (PVP)
Dependencies added: composition-prelude
Dependencies removed: composition
API changes (from Hackage documentation)
Files
- src/XMonad/Config/Vanessa.hs +38/−28
- src/XMonad/Util/Keyboard.hs +3/−1
- src/XMonad/Util/MediaKeys.hs +5/−2
- stack.yaml +4/−62
- xmonad-vanessa.cabal +5/−21
src/XMonad/Config/Vanessa.hs view
@@ -1,24 +1,26 @@ -- | Configuration with defaults I like and brightness adjustable for my computer and appropriate module XMonad.Config.Vanessa (vConfig) where ---XMonad modules-import XMonad hiding (workspaces)+import qualified Data.Map as M+import Data.Maybe+import Data.Monoid+import Data.Ratio ((%))+import XMonad hiding (workspaces)+import XMonad.Actions.GridSelect import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks+import XMonad.Layout.Fullscreen+import XMonad.Layout.Hidden+import XMonad.Layout.Mosaic import XMonad.Layout.Reflect import XMonad.Layout.Spiral-import XMonad.StackSet hiding (filter)+import XMonad.StackSet hiding (filter) import XMonad.Util.Brightness import XMonad.Util.Keyboard import XMonad.Util.MediaKeys import XMonad.Util.NamedWindows import XMonad.Util.Run import XMonad.Util.Volume---Monads etc.-import qualified Data.Map as M-import Data.Maybe-import Data.Monoid-import XMonad.Layout.Hidden -- | IO action of the whole thing vConfig :: IO ()@@ -26,28 +28,30 @@ where config = myConfig -- | Custom configuration taking in one pipe to xmobar-myConfig xmproc = docks $ def { terminal = "alacritty"+myConfig xmproc = fullscreenSupport $ docks $ def { terminal = "alacritty" , keys = newKeys , layoutHook = myLayout- , logHook = (vLogHook xmproc)- , manageHook = myManageHook }+ , logHook = vLogHook xmproc+ , manageHook = myManageHook <+> manageDocks+ , handleEventHook = docksEventHook+ , startupHook = docksStartupHook } -- | get the current music playing (assumed to be in number 5) musicString :: X String musicString = do winset <- gets windowset {-- let p = (== "5") . fst --}- wt <- maybe (pure "") (fmap show . getName) . (fmap snd) . listToMaybe {--. filter p--} $ zip (((map tag . workspaces)) winset) (allWindows winset)- pure . (xmobarColor "green" "black") . take 40 $ wt+ wt <- maybe (pure "") (fmap show . getName) . fmap snd . listToMaybe {--. filter p--} $ zip ((map tag . workspaces) winset) (allWindows winset)+ pure . xmobarColor "green" "black" . take 40 $ wt -- | Provides custom hooks to xmonad. This disables printing the window title/connects xmobar and xmonad.-vLogHook xmproc = musicString >>= \m -> dynamicLogWithPP xmobarPP { ppOutput = hPutStrLn xmproc- , ppTitle = const m- , ppLayout = const ""- , ppHiddenNoWindows = id- , ppHidden = (xmobarColor "darkorange" "black") -- . (\x -> if x == "5" then "Spotify" else x)- , ppVisible = (xmobarColor "yellow" "black")- }+vLogHook xmproc = musicString >>= \m -> dynamicLogWithPP xmobarPP { ppOutput = hPutStrLn xmproc+ , ppTitle = const m+ , ppLayout = const ""+ , ppHiddenNoWindows = id+ , ppHidden = xmobarColor "darkorange" "black" -- . (\x -> if x == "5" then "Spotify" else x)+ , ppVisible = xmobarColor "yellow" "black"+ } -- | Doesn't work on spotify myManageHook :: Query (Endo WindowSet)@@ -58,21 +62,22 @@ , resource =? "crx_bikioccmkafdpakkkcpdbppfkghcmihk" --> doF (shift "7") , resource =? "crx_bgkodfmeijboinjdegggmkbkjfiagaan" --> doF (shift "7") , resource =? "launcher" --> doFloat+ , resource =? "qemu-system-arm" --> doFloat , className =? "libreoffice-writer" --> doFloat , className =? "Gimp" --> doFloat , className =? "keepassx" --> doFloat , className =? "xviewer" --> doFloat+ , className =? "qemu-system-x86_64" --> doFloat ] -- | Custom keymaps to adjust volume, brightness, and myKeys :: XConfig t -> M.Map (KeyMask, KeySym) (X ())-myKeys conf@(XConfig {XMonad.modMask = modm}) = mediaKeys . M.fromList $+myKeys XConfig {XMonad.modMask = modm} = mediaKeys . M.fromList $ [ --volume control ((modm, xK_Up), raiseVolume 5) , ((modm, xK_Down), lowerVolume 5)- , ((modm, xK_F8), toggleMute)+ , ((modm, xK_Delete), toggleMute) --personal (extra) media keys- --, ((modm, xK_End), audioNext) , ((modm, xK_Page_Down), audioNext) , ((modm, xK_Page_Up), audioPrev) , ((modm, xK_Home), audioPlayPause)@@ -94,6 +99,8 @@ , ((modm .|. shiftMask, xK_End), spawn "shutdown now") -- lock screen , ((controlMask, xK_End), spawn "slock")+ -- function lock+ -- , ((modm, xK_Insert, XF86ModeLock --switch keyboards , ((modm, xK_F1), setLang def) , ((modm, xK_F2), setLang tibetan)@@ -106,18 +113,21 @@ -- hide windows , ((modm .|. shiftMask, xK_h), withFocused hide >> withFocused hideWindow) , ((modm, xK_u), popNewestHiddenWindow >> withFocused reveal)+ -- grid select+ , ((modm, xK_g), goToSelected def)+ -- Mosaic adjustment+ , ((modm, xK_a), sendMessage Taller)+ , ((modm, xK_s), sendMessage Wider)+ , ((modm, xK_r), sendMessage Reset) ]- {-- ++ [((m .|. modMask, k), windows $ f i)- | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]- , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] --} -- | Function giving keybindings to undo keysToRemove :: XConfig Layout -> M.Map (KeyMask, KeySym) (X ())-keysToRemove x@(XConfig {XMonad.modMask = modm}) = M.fromList+keysToRemove XConfig {XMonad.modMask = modm} = M.fromList [ ((modm, xK_p), pure ()) ] -- | Gives a better ratio for the master pane and lets us spiral windows-myLayout = avoidStruts . hiddenWindows $ normalPanes ||| (reflectHoriz normalPanes) ||| Full ||| (spiral (16/9))+myLayout = (avoidStruts . hiddenWindows $ mosaic 1.33 (take 6 $ iterate (* (4 % 5)) 1) ||| normalPanes ||| reflectHoriz normalPanes ||| Full) ||| hiddenWindows (spiral (6/7)) where normalPanes = Tall 1 (3/100) (3/7) -- | Make new key layout from a given keyboard layout
src/XMonad/Util/Keyboard.hs view
@@ -13,7 +13,9 @@ , dzongkha ) where -import Data.Composition+-- TODO module for battery++import Control.Composition import System.Process hiding (spawn) import XMonad import XMonad.Hooks.DynamicLog
src/XMonad/Util/MediaKeys.hs view
@@ -1,11 +1,12 @@ -- | Bind media keys using dbus -- Requires amixer to control volume. module XMonad.Util.MediaKeys (-- * default keybindings- mediaKeys+ mediaKeys -- * media control in the 'X' monad , audioPrev , audioNext- , audioPlayPause) where+ , audioPlayPause+ ) where --gives us media keys import Graphics.X11.ExtraTypes.XF86@@ -42,3 +43,5 @@ -- | Action in the 'X' monad to play/pause audioPlayPause = sp "PlayPause"++-- lana = sp "OpenUri string:6QOU3FhUkPeA2RtaXcvgi7"
stack.yaml view
@@ -1,66 +1,8 @@-# This file was automatically generated by 'stack init'-#-# Some commonly used options have been documented as comments in this file.-# For advanced use and comprehensive documentation of the format, please see:-# https://docs.haskellstack.org/en/stable/yaml_configuration/--# Resolver to choose a 'specific' stackage snapshot or a compiler version.-# A snapshot resolver dictates the compiler version and the set of packages-# to be used for project dependencies. For example:-#-# resolver: lts-3.5-# resolver: nightly-2015-09-21-# resolver: ghc-7.10.2-# resolver: ghcjs-0.1.0_ghc-7.10.2-# resolver:-# name: custom-snapshot-# location: "./custom-snapshot.yaml"-resolver: lts-9.0--# User packages to be built.-# Various formats can be used as shown in the example below.-#-# packages:-# - some-directory-# - https://example.com/foo/bar/baz-0.0.2.tar.gz-# - location:-# git: https://github.com/commercialhaskell/stack.git-# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a-# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a-# extra-dep: true-# subdirs:-# - auto-update-# - wai-#-# A package marked 'extra-dep: true' will only be built if demanded by a-# non-dependency (i.e. a user package), and its test suites and benchmarks-# will not be run. This is useful for tweaking upstream packages.+resolver: lts-10.2 packages: - .-# Dependency packages to be pulled from upstream that are not in the resolver-# (e.g., acme-missiles-0.3) extra-deps: []--# Override default flag values for local packages and extra-deps-flags: {}--# Extra package databases containing global packages+flags:+ xmonad-vanessa:+ library: false extra-package-dbs: []--# Control whether we use the GHC we find on the path-# system-ghc: true-#-# Require a specific version of stack, using version ranges-# require-stack-version: -any # Default-# require-stack-version: ">=1.5"-#-# Override the architecture used by stack, especially useful on Windows-# arch: i386-# arch: x86_64-#-# Extra directories used by stack for building-# extra-include-dirs: [/path/to/dir]-# extra-lib-dirs: [/path/to/dir]-#-# Allow a newer minor version of GHC than the snapshot specifies-# compiler-check: newer-minor
xmonad-vanessa.cabal view
@@ -1,5 +1,5 @@ name: xmonad-vanessa-version: 0.1.1.4+version: 0.1.1.5 synopsis: Custom xmonad, which builds with stack or cabal. description: Please see README.md homepage: https://hub.darcs.net/vmchale/xmonad-vanessa@@ -18,11 +18,6 @@ Default: True } -Flag gold {- Description: Enable the gold linker for faster build times- Default: True-}- library hs-source-dirs: src exposed-modules: XMonad.Config.Vanessa@@ -30,17 +25,14 @@ , XMonad.Util.Keyboard , XMonad.Util.Volume , XMonad.Util.MediaKeys- build-depends: base >= 4.8 && < 5+ build-depends: base >= 4.7 && < 5 , xmonad >= 0.13 , xmonad-contrib >= 0.13- , composition+ , composition-prelude , containers , process , X11 , transformers- if flag(gold)- ghc-options: -optl-fuse-ld=gold- ld-options: -fuse-ld=gold ghc-options: -fwarn-unused-imports default-language: Haskell2010 @@ -49,12 +41,7 @@ Buildable: False hs-source-dirs: app main-is: Main.hs- if flag(gold)- ghc-options: -optl-fuse-ld=gold- ld-options: -fuse-ld=gold- ghc-options: -O3- -- -threaded - -- -fllvm -optlo-O3+ ghc-options: -O2 build-depends: base , xmonad-vanessa default-language: Haskell2010@@ -64,10 +51,7 @@ Buildable: False hs-source-dirs: app main-is: ParseKBLayout.hs- if flag(gold)- ghc-options: -optl-fuse-ld=gold- ld-options: -fuse-ld=gold- ghc-options: -threaded -O3+ ghc-options: -threaded -O2 -- -rtsopts -with-rtsopts=-N -- -fllvm -optlo-O3 build-depends: base