Compare commits

..

No commits in common. "084261c58ebd58080e4121e43221f28f59bce0a8" and "08f653d95d774d3dfbedfad98329fb694a827575" have entirely different histories.

6 changed files with 39 additions and 68 deletions

View file

@ -58,7 +58,6 @@ in
./hetzner_benchmark/nixos/misc.nix
./hetzner_benchmark/nixos/programs.nix
./hetzner_benchmark/nixos/builder.nix
./hetzner_benchmark/nixos/sane-nix.nix
../nixosModules/common/fish.nix
../nixosModules/common/disable-command-not-found.nix

View file

@ -12,7 +12,15 @@
users.groups.remotebuild = { };
nix = {
nrBuildUsers = 64; # defaults to 32
settings.trusted-users = [ "remotebuild" ];
settings = {
trusted-users = [ "remotebuild" ];
min-free = 50 * 1024 * 1024 * 1024; # start gc when < 10 GB is available
max-free = 100 * 1024 * 1024 * 1024; # stop gc when 20 GB is available
max-jobs = "auto";
cores = 0;
};
};
systemd.services.nix-daemon.serviceConfig = {

View file

@ -2,8 +2,8 @@
{
# 500GB Storage
nix.settings = {
min-free = 50 * 1024 * 1024 * 1024;
max-free = 100 * 1024 * 1024 * 1024;
min-free = 20 * 1024 * 1024 * 1024;
max-free = 50 * 1024 * 1024 * 1024;
};
systemd.services.nix-daemon.serviceConfig = {

View file

@ -25,7 +25,6 @@ library
hs-source-dirs: lib
exposed-modules:
XMonad.Layout.Reflect.Message
XMonad.Layout.SetMasterNTall
Data.Char.Greek
executable leanamonad

View file

@ -1,30 +0,0 @@
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-- Wraps ResizableTall, allows setting master count to a number directly
module XMonad.Layout.SetMasterNTall
( SetMasterNTall(..)
, SetMasterN(..)
) where
import XMonad
import qualified XMonad.StackSet as W
import XMonad.Layout.ResizableTile
-- Message
data SetMasterN = SetMasterN Int
instance Message SetMasterN
-- Layout
newtype SetMasterNTall a = SetMasterNTall { unSetMasterNTall :: ResizableTall a }
deriving (Read, Show)
instance LayoutClass SetMasterNTall a where
runLayout (W.Workspace t l s) =
let ws' = W.Workspace t (unSetMasterNTall l) s
in (fmap . fmap . fmap) SetMasterNTall . runLayout ws'
handleMessage (SetMasterNTall l@(ResizableTall _n0 d f s)) mess
| Just (SetMasterN n) <- fromMessage mess = pure $ Just $ SetMasterNTall $ ResizableTall n d f s
| otherwise = (fmap . fmap) SetMasterNTall . handleMessage l $ mess
description (SetMasterNTall l) = description l

View file

@ -16,14 +16,15 @@ import XMonad.Hooks.OnPropertyChange
import XMonad.Hooks.RefocusLast
import XMonad.Hooks.StatusBar
import XMonad.Layout.FocusTracking
import XMonad.Layout.IfMax
import XMonad.Layout.Magnifier hiding (Toggle)
import qualified XMonad.Layout.Magnifier as Mag
import XMonad.Layout.NoBorders
import XMonad.Layout.PerWorkspace
import XMonad.Layout.Reflect
import XMonad.Layout.Reflect.Message
import XMonad.Layout.Renamed
import XMonad.Layout.ResizableTile
import XMonad.Layout.SetMasterNTall
import XMonad.Layout.Spacing
import XMonad.Layout.ToggleLayouts
import qualified XMonad.StackSet as W
@ -71,16 +72,26 @@ main =
myLayout =
avoidStruts
$ smartBorders
$ toggleLayouts (magnifierOff tallr) full
$ onWorkspace researchWS (toggleLayouts (mag tallr) full)
$ onWorkspace chatWS (toggleLayouts (mag tallr) full)
$ onWorkspace multimediaWS (toggleLayouts (mag tallr) full)
$ toggleLayouts (mag tallr) full
where
mag = magnifierOff
full = focusTracking Full
mkTallrN n =
smartSpacingWithEdge 5
$ reflectMsg . reflectHoriz
$ ResizableTall n (1/10) (3/7) []
tallr =
renamed [ Replace "Tall" ]
$ smartSpacingWithEdge 5
$ reflectMsg . reflectHoriz
$ SetMasterNTall
$ ResizableTall 1 (1/10) (3/7) []
$ ifMax 3 (mkTallrN 1)
$ ifMax 5 (mkTallrN 2)
$ ifMax 7 (mkTallrN 3)
$ mkTallrN 4
isSioyek :: Query Bool
isSioyek = className =? "sioyek"
@ -195,33 +206,14 @@ myEventHandleHook =
-- Imagine Spotify playing in the background, a track change would focus that workspace.
-- We prevent this by checking if the window is in the current workspace
onTitleChange
( windowIsInCurrentWorkspace --> composeAll
$ (windowIsInCurrentWorkspace -->)
$ composeAll
[ isSpotify --> doShiftAndGreedyView multimediaWS
, isYouTube --> doShiftAndGreedyView multimediaWS
, isDiscord --> doShiftAndGreedyView chatWS
, isWhatsApp --> doShiftAndGreedyView chatWS
, isElement --> doShiftAndGreedyView chatWS
]
)
<> setMasterNEventHandleHook
setMasterNEventHandleHook :: Event -> X All
setMasterNEventHandleHook ev =
let adjustMasterCount :: X ()
adjustMasterCount = do
count <- gets $ length . W.integrate' . W.stack . W.workspace . W.current . windowset
if count <= 3 then sendMessage (SetMasterN 1)
else if count <= 5 then sendMessage (SetMasterN 2)
else if count <= 7 then sendMessage (SetMasterN 3)
else pure ()
in do
case ev of
MapRequestEvent{} -> adjustMasterCount
ConfigureEvent{} -> adjustMasterCount
DestroyWindowEvent {} -> adjustMasterCount
_ -> pure ()
pure (All True)
doShiftAndGreedyView :: WorkspaceId -> Query (Endo WindowSet)
doShiftAndGreedyView n = doF . go =<< ask
@ -408,6 +400,9 @@ altMask = mod1Mask
myWorkspaces :: [WorkspaceId]
myWorkspaces = map (:[]) $ take 8 greekLower
researchWS :: WorkspaceId
researchWS = myWorkspaces !! 2
chatWS :: WorkspaceId
chatWS = myWorkspaces !! 3