Compare commits

...

6 commits

6 changed files with 42 additions and 45 deletions

View file

@ -15,7 +15,7 @@
"lazy.nvim": { "branch": "main", "commit": "59334064f8604ca073791c25dcc5c9698865406e" }, "lazy.nvim": { "branch": "main", "commit": "59334064f8604ca073791c25dcc5c9698865406e" },
"lazydev.nvim": { "branch": "main", "commit": "258d2a5ef4a3e3d6d9ba9da72c9725c53e9afcbd" }, "lazydev.nvim": { "branch": "main", "commit": "258d2a5ef4a3e3d6d9ba9da72c9725c53e9afcbd" },
"leap.nvim": { "branch": "main", "commit": "07304103f6bd923004fdef9262d9a4d7925fb70a" }, "leap.nvim": { "branch": "main", "commit": "07304103f6bd923004fdef9262d9a4d7925fb70a" },
"milou": { "branch": "haddock", "commit": "4b3ab4976ff53b029f73d039fea016520af813d6" }, "milou": { "branch": "haddock", "commit": "ae95eb2ebdbc4228931ceefa64f86b877213dc62" },
"no-neck-pain.nvim": { "branch": "main", "commit": "ecc584150f5c8a2a82f2e1d43201df0f65c63d0e" }, "no-neck-pain.nvim": { "branch": "main", "commit": "ecc584150f5c8a2a82f2e1d43201df0f65c63d0e" },
"nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" }, "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },

View file

@ -18,7 +18,7 @@ common common
, xmonad-contrib , xmonad-contrib
, containers , containers
, X11 , X11
default-language: GHC2021 default-language: Haskell2010
library library
import: common import: common

View file

@ -1,4 +1,5 @@
{-# LANGUAGE NegativeLiterals #-} {-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Leanamonad.Layouts.ReflectMsg where module Leanamonad.Layouts.ReflectMsg where

View file

@ -1,12 +1,10 @@
{-# LANGUAGE NegativeLiterals #-} {-# LANGUAGE NegativeLiterals #-}
{-# LANGUAGE LambdaCase #-}
import XMonad import XMonad
import XMonad.Actions.Submap import XMonad.Actions.Submap
import XMonad.Actions.SwapWorkspaces import XMonad.Actions.SwapWorkspaces
import XMonad.Hooks.DynamicLog import XMonad.Hooks.DynamicLog
import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.FadeWindows
import XMonad.Hooks.InsertPosition import XMonad.Hooks.InsertPosition
import XMonad.Hooks.ManageDocks import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers import XMonad.Hooks.ManageHelpers
@ -17,14 +15,14 @@ import XMonad.Layout.Reflect
import XMonad.Layout.Renamed import XMonad.Layout.Renamed
import XMonad.Layout.ResizableTile import XMonad.Layout.ResizableTile
import XMonad.Layout.Spacing import XMonad.Layout.Spacing
import XMonad.StackSet qualified as W import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig import XMonad.Util.EZConfig
import XMonad.Util.Hacks import XMonad.Util.Hacks
import XMonad.Util.NamedScratchpad import XMonad.Util.NamedScratchpad
import XMonad.Util.SpawnOnce import XMonad.Util.SpawnOnce
import XMonad.Layout.Magnifier import XMonad.Layout.Magnifier
import Data.Map.Strict qualified as M import qualified Data.Map.Strict as M
import System.Posix import System.Posix
import Graphics.X11.ExtraTypes.XF86 import Graphics.X11.ExtraTypes.XF86
@ -48,32 +46,7 @@ main =
, terminal = myTerm , terminal = myTerm
, workspaces = myWorkspaces , workspaces = myWorkspaces
, logHook = , logHook = refocusLastLogHook
let
fadeHook =
composeOne
[ -- easier to paint over stuff
isFloating
<&&> isFocused
<&&> title ~? "Wplace"
-?> transparency 0.5
-- matches the second string of the WM_CLASS
, className `isOneOf`
[ "firefox"
, "Signal"
, "steam"
, "discord"
, "vlc"
]
-?> opaque
, isFloating -?> ifM isFocused (transparency 0.04) (transparency 0.08)
, isUnfocused -?> transparency 0.02
]
in
fadeWindowsLogHook fadeHook
<> refocusLastLogHook
, startupHook = do , startupHook = do
spawnOnce "fcitx5 &" -- Input method spawnOnce "fcitx5 &" -- Input method
@ -164,14 +137,22 @@ main =
-- Toggle fullscreen -- Toggle fullscreen
, ((superMask, xK_Escape), sendMessage NextLayout) , ((superMask, xK_Escape), sendMessage NextLayout)
-- Resize windows -- [I]nc of the main area
, ((superMask, xK_equal ), sendMessage $ IncMasterN 1) --
, ((superMask, xK_minus ), sendMessage $ IncMasterN -1) -- This shouldn't be too easy anyway otherwise if I accidentally spam it,
-- I wouldn't know how big the main area is.
, ( (superMask, xK_i)
, submap $ M.fromList
[ ((0, xK_period), sendMessage $ IncMasterN 1)
, ((0, xK_comma ), sendMessage $ IncMasterN -1)
]
)
, ((superMask , xK_comma ), sendMessage Shrink ) , ((superMask , xK_comma ), sendMessage Shrink )
, ((superMask , xK_period ), sendMessage Expand ) , ((superMask , xK_period ), sendMessage Expand )
, ((superMask .|. shiftMask, xK_comma ), sendMessage MirrorShrink ) , ((superMask .|. shiftMask, xK_comma ), sendMessage MirrorShrink )
, ((superMask .|. shiftMask, xK_period ), sendMessage MirrorExpand ) , ((superMask .|. shiftMask, xK_period ), sendMessage MirrorExpand )
, ((superMask , xK_apostrophe), sendMessage Toggle ) , ((superMask , xK_apostrophe), sendMessage Toggle{-Magnifier-})
-- [D]o sink and lift -- [D]o sink and lift
, ( (superMask, xK_d) , ( (superMask, xK_d)
@ -267,9 +248,6 @@ xmobarConfig = statusBarProp "xmobar -x 0" (pure myPrettyPrinter)
isOneOf :: Eq a => Query a -> [a] -> Query Bool isOneOf :: Eq a => Query a -> [a] -> Query Bool
isOneOf q = fmap or . traverse (q =?) isOneOf q = fmap or . traverse (q =?)
isFocused :: Query Bool
isFocused = fmap not isUnfocused
isFirefoxPIP :: Query Bool isFirefoxPIP :: Query Bool
isFirefoxPIP = isFirefoxPIP =
className =? "firefox" className =? "firefox"

View file

@ -36,8 +36,10 @@
services.picom = { services.picom = {
enable = true; enable = true;
backend = "glx"; # avoid tearing
vSync = true; vSync = true;
# buttery smooth
fade = true; fade = true;
fadeDelta = 3; fadeDelta = 3;
settings = { settings = {

View file

@ -62,4 +62,20 @@ in
./patches/fcitx5-chinese-addons/disable-fullwidth.patch ./patches/fcitx5-chinese-addons/disable-fullwidth.patch
# Note: disabling pinyin helper breaks canjie # Note: disabling pinyin helper breaks canjie
]; ];
# Security, Xorg vuln
# Backport has failed in upstream currently <https://github.com/NixOS/nixpkgs/pull/457804>,
# might as well patch it while people are blogging about it <https://github.com/Xe/site/pull/1062>
# Upstream talks about it here https://lists.x.org/archives/xorg-announce/2025-October/003635.html
xorg.xorgserver.__output.version = oldVersion: let
version = "21.1.20";
in
if oldVersion == version
then throw "This patch has been merged upstream"
else version;
xorg.xorgserver.__output.src = _:
final.fetchurl {
url = "mirror://xorg/individual/xserver/xorg-server-21.1.20.tar.xz";
sha256 = "sha256-dpW8YYJLOoG2utL3iwVADKAVAD3kAtGzIhFxBbcC6Tc=";
};
} }