xmonad-contrib v0.16 Release Notes

Release Date: 2019-09-22 // almost 3 years ago
  • ๐Ÿ’ฅ Breaking Changes

    • XMonad.Layout.Decoration
      • Added Theme record fields for controlling decoration border width for active/inactive/urgent windows.
    • XMonad.Prompt

      • Prompt ships a vim-like keymap, see vimLikeXPKeymap and vimLikeXPKeymap'. A reworked event loop supports new vim-like prompt actions.
      • Prompt supports dynamic colors. Colors are now specified by the XPColor type in XPState while XPConfig colors remain unchanged for backwards compatibility.
      • Fixes showCompletionOnTab.
      • The behavior of moveWord and moveWord' has changed; brought in line with the documentation and now internally consistent. The old keymaps retain the original behavior; see the documentation to do the same your XMonad configuration.
    • XMonad.Util.Invisble

      • Requires MonadFail for Read instance

    ๐Ÿ†• New Modules

    • XMonad.Layout.TwoPanePersistent

      A layout that is like TwoPane but keeps track of the slave window that is currently beside the master. In TwoPane, the default behavior when the master is focused is to display the next window in the stack on the slave pane. This is a problem when a different slave window is selected without changing the stack order.

    • XMonad.Util.ExclusiveScratchpads

      Named scratchpads that can be mutually exclusive: This new module extends the idea of named scratchpads such that you can define "families of scratchpads" that are exclusive on the same screen. It also allows to remove this constraint of being mutually exclusive with another scratchpad.

    • XMonad.Actions.Prefix

      A module that allows the user to use an Emacs-style prefix argument (raw or numeric).

    ๐Ÿ› Bug Fixes and Minor Changes

    • XMonad.Layout.Tabbed

      tabbedLeft and tabbedRight will set their tabs' height and width according to decoHeight/decoWidth

    • XMonad.Prompt

      Added sorter to XPConfig used to sort the possible completions by how well they match the search string (example: XMonad.Prompt.FuzzyMatch).

      Fixes a potential bug where an error during prompt execution would leave the window open and keep the keyboard grabbed. See issue #180.

      Fixes issue #217, where using tab to wrap around the completion rows would fail when maxComplRows is restricting the number of rows of output.

    • XMonad.Prompt.Pass

      Added 'passOTPPrompt' to support getting OTP type password. This require pass-otp (https://github.com/tadfisher/pass-otp) has been setup in the running machine.

      Added 'passGenerateAndCopyPrompt', which both generates a new password and copies it to the clipboard. These two actions are commonly desirable to take together, e.g. when establishing a new account.

      Made password prompts traverse symlinks when gathering password names for autocomplete.

    • XMonad.Actions.DynamicProjects

      Make the input directory read from the prompt in DynamicProjects absolute wrt the current directory.

      Before this, the directory set by the prompt was treated like a relative directory. This means that when you switch from a project with directory foo into a project with directory bar, xmonad actually tries to cd into foo/bar, instead of ~/bar as expected.

    • XMonad.Actions.DynamicWorkspaceOrder

      Add a version of withNthWorkspace that takes a [WorkspaceId] -> [WorkspaceId] transformation to apply over the list of workspace tags resulting from the dynamic order.

    • XMonad.Actions.GroupNavigation

      Add a utility function isOnAnyVisibleWS :: Query Bool to allow easy cycling between all windows on all visible workspaces.

    • XMonad.Hooks.WallpaperSetter

      Preserve the aspect ratio of wallpapers that xmonad sets. When previous versions would distort images to fit the screen size, it will now find a best fit by cropping instead.

    • XMonad.Util.Themes

      Add adwaitaTheme and adwaitaDarkTheme to match their respective GTK themes.

    • 'XMonad.Layout.BinarySpacePartition'

      Add a new SplitShiftDirectional message that allows moving windows by splitting its neighbours.

    • XMonad.Prompt.FuzzyMatch

      Make fuzzy sort show shorter strings first.