feat: add mangowc

This commit is contained in:
tux
2026-02-24 14:49:39 +05:30
parent 5f72ba716d
commit ea7b6bcdef
6 changed files with 329 additions and 6 deletions

View File

@@ -0,0 +1,214 @@
{inputs, ...}: {
imports = [
inputs.mango.hmModules.mango
];
wayland.windowManager.mango = {
enable = true;
settings = ''
# Monitors
monitorrule = name:eDP-1, width:2560, height:1440, refresh:165, x:0, y:10, vrr:1
monitorrule = name:HDMI-A-1, width:2560, height:1440, refresh:100, x:0, y:-1440, vrr:1
# Keyboard
repeat_rate = 25
repeat_delay = 600
numlockon = 0
xkb_rules_layout = us
# Trackpad
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
mouse_natural_scrolling = 0
accel_profile = 0
# Theme
border_radius = 8
no_radius_when_single = 0
focused_opacity = 1.0
unfocused_opacity = 1.0
# Scroller Layout Setting
scroller_structs = 0
scroller_default_proportion = 0.5
scroller_ignore_proportion_single = 0
scroller_default_proportion_single = 1.0
# Master-Stack Layout Setting
new_is_master = 0
default_mfact = 0.5
default_nmaster = 1
smartgaps = 0
# Overview Setting
hotarea_size = 10
enable_hotarea = 1
ov_tab_mode = 0
overviewgappi = 15
overviewgappo = 15
# layouts
tagrule = id:1, layout_name:tile
tagrule = id:2, layout_name:tile
tagrule = id:3, layout_name:tile
tagrule = id:4, layout_name:tile
tagrule = id:5, layout_name:tile
tagrule = id:6, layout_name:scroller
# Keybindings
mousebind = SUPER, btn_left, moveresize, curmove
mousebind = SUPER, btn_right, moveresize, curresize
gesturebind = none, left, 3, viewtoright_have_client
gesturebind = none, right, 3, viewtoleft_have_client
gesturebind = none, up, 3, toggleoverview
gesturebind = none, down, 3, toggleoverview
# apps
bind = SUPER, Return, spawn, wezterm
bind = SUPER, Space, spawn, vicinae toggle
bind = SUPER, B, spawn, brave
bind = SUPER, V, spawn, vicinae vicinae://extensions/vicinae/clipboard/history
bind = SUPER+SHIFT, W, spawn, vicinae vicinae://extensions/sovereign/awww-switcher/wpgrid
# WM
bind = SUPER, Q, killclient
bind = SUPER+SHIFT, R, reload_config
bind = SUPER+SHIFT, F, togglefullscreen
bind = SUPER+SHIFT, Space, togglefloating
bind = ALT, Tab, toggleoverview
bind = ALT+SHIFT, minus, incgaps, -1
bind = ALT+SHIFT, equal, incgaps, 1
bind = ALT+SHIFT, R, togglegaps
# switch layout
bind = SUPER+SHIFT, H, setlayout, tile
bind = SUPER+SHIFT, V, setlayout, vertical_tile
bind = SUPER+SHIFT, S, setlayout, scroller
# resize client
bind = SUPER+CTRL, Up, resizewin, +0, -50
bind = SUPER+CTRL, Down, resizewin, +0, +50
bind = SUPER+CTRL, Left, resizewin, -50, +0
bind = SUPER+CTRL, Right, resizewin, +50, +0
# swap client
bind = SUPER+SHIFT, Up, exchange_client, up
bind = SUPER+SHIFT, Down, exchange_client, down
bind = SUPER+SHIFT, Left, exchange_client, left
bind = SUPER+SHIFT, Right, exchange_client, right
# switch client focus
bind = SUPER, Tab, focusstack, next
bind = SUPER, Left, focusdir, left
bind = SUPER, Right, focusdir, right
bind = SUPER, Up, focusdir, up
bind = SUPER, Down, focusdir, down
# switch view
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
# move client to the tag with focus
bind = SUPER+SHIFT, 1, tagsilent, 1, 0
bind = SUPER+SHIFT, 2, tagsilent, 2, 0
bind = SUPER+SHIFT, 3, tagsilent, 3, 0
bind = SUPER+SHIFT, 4, tagsilent, 4, 0
bind = SUPER+SHIFT, 5, tagsilent, 5, 0
bind = SUPER+SHIFT, 6, tagsilent, 6, 0
# move client to the tag without focus
bind = SUPER+ALT, 1, tag, 1, 0
bind = SUPER+ALT, 2, tag, 2, 0
bind = SUPER+ALT, 3, tag, 3, 0
bind = SUPER+ALT, 4, tag, 4, 0
bind = SUPER+ALT, 5, tag, 5, 0
bind = SUPER+ALT, 6, tag, 6, 0
# Window effect
blur = 0
blur_layer = 0
blur_optimized = 1
blur_params_num_passes = 2
blur_params_radius = 5
blur_params_noise = 0.02
blur_params_brightness = 0.9
blur_params_contrast = 0.9
blur_params_saturation = 1.2
shadows = 0
layer_shadows = 0
shadow_only_floating = 1
shadows_size = 10
shadows_blur = 15
shadows_position_x = 0
shadows_position_y = 0
shadowscolor = 0x000000ff
# Animation
animations = 1
layer_animations = 1
animation_type_open = slide
animation_type_close = fade
animation_fade_in = 1
animation_fade_out = 1
tag_animation_direction = 1
zoom_initial_ratio = 0.3
zoom_end_ratio = 0.8
fadein_begin_opacity = 0.5
fadeout_begin_opacity = 0.8
animation_duration_move = 100
animation_duration_open = 100
animation_duration_close = 100
animation_duration_tag = 200
animation_duration_focus = 0
animation_curve_open = 0.46, 1.0, 0.29, 1
animation_curve_move = 0.46, 1.0, 0.29, 1
animation_curve_tag = 0.46, 1.0, 0.29, 1
animation_curve_close = 0.08, 0.92, 0, 1
animation_curve_focus = 0.46, 1.0, 0.29, 1
animation_curve_opafadeout = 0.5, 0.5, 0.5, 0.5
animation_curve_opafadein = 0.46, 1.0, 0.29, 1
# Appearance
borderpx = 0
gappih = 10
gappiv = 10
gappoh = 10
gappov = 10
rootcolor = 0x201b14ff
bordercolor = 0x444444ff
focuscolor = 0xc9b890ff
maximizescreencolor = 0x89aa61ff
urgentcolor = 0xad401fff
scratchpadcolor = 0x516c93ff
globalcolor = 0xb153a7ff
overlaycolor = 0x14a57cff
# Misc
adaptive_sync = 1
syncobj_enable = 1
exec-once = awww-daemon
exec-once = kdeconnectd
exec-once = kdeconnect-indicator
exec-once = dbus-update-activation-environment --systemd --all; systemctl --user reset-failed && systemctl --user start mango-session.target
'';
};
}

View File

@@ -0,0 +1,26 @@
{
inputs,
pkgs,
lib,
...
}: {
imports = [
inputs.mango.nixosModules.mango
];
programs.mango.enable = true;
xdg.portal = {
enable = lib.mkDefault true;
extraPortals = with pkgs; [
hyprland-git.xdg-desktop-portal-hyprland
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
];
config.mango = {
default = lib.mkForce ["hyprland" "gtk"];
"org.freedesktop.impl.portal.ScreenCast" = lib.mkForce ["hyprland"];
"org.freedesktop.impl.portal.ScreenShot" = lib.mkForce ["hyprland"];
};
};
}