{ homeManager, inputs, moduleNameSpace, ... }: { config, lib, pkgs, ... }: let cfg = config.${moduleNameSpace}.windowManagers; scripts = import ../scripts.nix { inherit pkgs config; }; snip = pkgs.writeShellScript "snip" '' case $1 in full) ${pkgs.grim}/bin/grim - | wl-copy ;; selection) GEOM=$(${pkgs.slurp}/bin/slurp) || exit ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy ;; window) ${pkgs.grim}/bin/grim -g "$(mmsg -x | awk ' / x / {x=$3} / y / {y=$3} / width / {w=$3} / height / {h=$3} END {print x "," y " " w "x" h} ')" - | wl-copy ;; esac ''; in { imports = if homeManager then [ inputs.mango.hmModules.mango ] else [ inputs.mango.nixosModules.mango ]; config = lib.mkIf cfg.mango.enable ( if homeManager then { wayland.windowManager.mango = { enable = true; systemd.enable = true; systemd.variables = [ "--all" ]; extraConfig = '' ${lib.optionalString (config.beeMods.matugen.enable) '' source = ~/.config/mango/colors.conf ''} # blur=1 # blur_layer=0 # blur_optimized=1 # blur_params_num_passes = 3 # blur_params_radius = 12 # blur_params_noise = 0.02 # blur_params_brightness = 0.9 # blur_params_contrast = 0.9 # blur_params_saturation = 1.1 # # shadows=0 # layer_shadows = 0 # shadow_only_floating = 1 # shadows_size = 10 # shadows_blur = 15 # shadows_position_x = 0 # shadows_position_y = 0 # # border_radius=0 # no_radius_when_single=0 # focused_opacity=0.90 # unfocused_opacity=0.90 # Scroller configuration scroller_structs=15 scroller_default_proportion=0.6 scroller_focus_center=0 scroller_prefer_center=0 edge_scroller_pointer_focus=1 scroller_default_proportion_single=1.0 scroller_ignore_proportion_single=0 scroller_proportion_preset=0.5,0.8,1.0 # Master-Stack Layout Setting new_is_master=0 default_mfact=0.55 default_nmaster=1 smartgaps=0 # Overview Setting hotarea_size=10 enable_hotarea=0 ov_tab_mode=1 overviewgappi=5 overviewgappo=30 # Misc no_border_when_single=0 axis_bind_apply_timeout=100 focus_on_activate=1 idleinhibit_ignore_visible=0 sloppyfocus=1 warpcursor=1 focus_cross_monitor=0 focus_cross_tag=0 enable_floating_snap=0 snap_distance=30 drag_tile_to_tile=1 xwayland_persistence=0 syncobj_enable=1 allow_tearing=2 # keyboard repeat_delay=300; repeat_rate=50; numlockon=0 xkb_rules_layout=us # Trackpad # need relogin to make it apply disable_trackpad=0 tap_to_click=1 tap_and_drag=1 drag_lock=1 trackpad_natural_scrolling=1 disable_while_typing=1 left_handed=0 middle_button_emulation=0 swipe_min_threshold=1 mouse_natural_scrolling=0 gappih=4 gappiv=4 gappoh=4 gappov=4 scratchpad_width_ratio=0.8 scratchpad_height_ratio=0.9 borderpx=2 #Keymaps bind=SUPER,r,reload_config bind=SUPER,Return,spawn,foot bind=SUPER,y,spawn,/home/beeb5k/.local/share/bee/dostuff wall bind=SUPER,a,spawn,rofi -show drun bind=SUPER,c,spawn,sh -c 'dunstify "$(date)"' bind=SUPER,comma,spawn,/home/beeb5k/.local/share/bee/dostuff settings bind=SUPER,F12,spawn,gnome-calculator bind=SUPER,b,spawn,librewolf bind=SUPER,e,spawn,pcmanfm bind=SUPER,m,quit bind=SUPER,q,killclient, bind=SUPER,h,focusdir,left bind=SUPER,l,focusdir,right bind=SUPER,k,focusdir,up bind=SUPER,j,focusdir,down bind=NONE,Print,spawn,/home/beeb5k/.config/mango/screenshot full bind=SUPER,Print,spawn,/home/beeb5k/.config/mango/screenshot selection bind=SUPER+SHIFT,Print,spawn,/home/beeb5k/.config/mango/screenshot window bind=SUPER+SHIFT,k,exchange_client,up bind=SUPER+SHIFT,j,exchange_client,down bind=SUPER+SHIFT,h,exchange_client,left bind=SUPER+SHIFT,l,exchange_client,right bind=SUPER,g,toggleglobal, bind=ALT,Tab,toggleoverview, bind=SUPER,space,togglefloating, bind=SUPER,d,togglemaximizescreen, bind=SUPER,f,togglefullscreen, bind=ALT+SHIFT,f,togglefakefullscreen, bind=SUPER,i,minimized, bind=SUPER,o,toggleoverlay, bind=SUPER+SHIFT,I,restore_minimized bind=SUPER,s,toggle_scratchpad bind=ALT,e,set_proportion,1.0 bind=ALT,x,switch_proportion_preset, bind=SUPER,1,view,1,0 bind=SUPER,2,view,2,0 bind=SUPER,3,view,3,0 bind=SUPER,4,view,4,0 bind=SUPER,5,view,5,0 bind=SUPER,6,view,6,0 bind=SUPER,7,view,7,0 bind=SUPER,8,view,8,0 bind=SUPER,9,view,9,0 bind=SUPER+SHIFT,1,tag,1,0 bind=SUPER+SHIFT,2,tag,2,0 bind=SUPER+SHIFT,3,tag,3,0 bind=SUPER+SHIFT,4,tag,4,0 bind=SUPER+SHIFT,5,tag,5,0 bind=SUPER+SHIFT,6,tag,6,0 bind=SUPER+SHIFT,7,tag,7,0 bind=SUPER+SHIFT,8,tag,8,0 bind=SUPER+SHIFT,9,tag,9,0 bind=alt+shift,Left,focusmon,left bind=alt+shift,Right,focusmon,right bind=SUPER+Alt,Left,tagmon,left bind=SUPER+Alt,Right,tagmon,right bind=SUPER,Up,movewin,+0,-50 bind=SUPER,Down,movewin,+0,+50 bind=SUPER,Left,movewin,-50,+0 bind=SUPER,Right,movewin,+50,+0 bind=ALT,k,resizewin,+0,-50 bind=ALT,j,resizewin,+0,+50 bind=ALT,h,resizewin,-50,+0 bind=ALT,l,resizewin,+50,+0 bind=NONE,XF86AudioRaiseVolume,spawn,/home/beeb5k/.local/share/bee/dostuff volume up bind=NONE,XF86AudioLowerVolume,spawn,/home/beeb5k/.local/share/bee/dostuff volume down bind=NONE,XF86AudioMute,spawn,/home/beeb5k/.local/share/bee/dostuff volume mute bind=NONE,XF86AudioPlay,spawn,playerctl play-pause bind=NONE,XF86AudioNext,spawn,playerctl next bind=NONE,XF86AudioPrev,spawn,playerctl previous bind=NONE,XF86AudioStop,spawn,playerctl stop bind=NONE,XF86AudioMicMute,spawn,/home/beeb5k/.local/share/bee/dostuff mic toggle bind=NONE,XF86MonBrightnessUp,spawn,/home/beeb5k/.local/share/bee/dostuff brightness up bind=NONE,XF86MonBrightnessDown,spawn,/home/beeb5k/.local/share/bee/dostuff brightness down mousebind=SUPER,btn_left,moveresize,curmove mousebind=NONE,btn_middle,togglemaximizescreen,0 mousebind=SUPER,btn_right,moveresize,curresize axisbind=SUPER,UP,viewtoleft_have_client axisbind=SUPER,DOWN,viewtoright_have_client windowrule=tags:1,appid:^(zen|firefox|librewolf|obsidian)$ windowrule=tags:2,appid:^(foot|footclient|alacritty|dev.zed.Zed)$ windowrule=tags:3,appid:^(vesktop|discord|thunderbird|Element|equibop)$ windowrule=tags:4,appid:^steam$ windowrule=scroller_proportion:0.3,appid:^steam$,title:^Friends List$ windowrule=scroller_proportion:0.5,appid:^steam$,title:.*(Settings|Properties).* windowrule=isfloating:1,appid:^steam$,title:^Steam - News$ windowrule=isfloating:1,appid:^(org.gnome.Calculator|org.pulseaudio.pavucontrol|Pinentry-gtk)$ windowrule=isoverlay:1,appid:^com.gabm.satty$ # Tag rules tagrule=id:1,layout_name:scroller tagrule=id:2,layout_name:fair tagrule=id:3,layout_name:scroller tagrule=id:4,layout_name:scroller tagrule=id:5,layout_name:grid tagrule=id:6,layout_name:tile tagrule=id:7,layout_name:tile tagrule=id:8,layout_name:tile tagrule=id:9,layout_name:tile env=XCURSOR_THEME, Bibata-Modern-Ice env=XCURSOR_SIZE, 24 env=ELECTRON_OZONE_PLATFORM_HINT,auto env=QT_QPA_PLATFORMTHEME,qt6ct env=QT_QPA_PLATFORM,wayland env=QT_AUTO_SCREEN_SCALE_FACTOR,1 env=XDG_SESSION_TYPE,wayland env=GDK_BACKEND,wayland,x11 env=GDK_SCALE,1 env=XCURSOR_PATH,/usr/share/icons env=NVD_BACKEND,direct animations=0 layer_animations=0 animation_type_open=slide animation_type_close=zoom animation_fade_in=0 animation_fade_out=1 tag_animation_direction=1 zoom_initial_ratio=0.8 zoom_end_ratio=0.8 fadein_begin_opacity=0.5 fadeout_begin_opacity=0.5 animation_duration_move=200 animation_duration_open=200 animation_duration_tag=150 animation_duration_close=100 animation_duration_focus=0 animation_curve_open=0.05,0.7,0.1,1.0 animation_curve_move=0.46,1.0,0.29,1 animation_curve_tag=0.46,1.0,0.29,1 animation_curve_close=0.0,0.0,1.0,1.0 animation_curve_focus=0.05,0.7,0.1,1.0 animation_curve_opafadeout=0.5,0.5,0.5,0.5 animation_curve_opafadein=0.46,1.0,0.29,1 ''; autostart_sh = '' wl-paste --type text --watch cliphist store & gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 & ${lib.optionalString (config.beeMods.windowManagers.dwm.enable) '' systemctl --user stop xidlehook.service systemctl --user stop xautolock-session.service systemctl --user stop xss-lock.service systemctl --user stop clipcat.service ''} ''; }; } else { programs.mango.enable = true; } ); }