maomaowm/README.md

179 lines
4.8 KiB
Markdown
Raw Normal View History

2025-02-03 23:18:47 +08:00
#
Master-Stack Layout
2025-02-19 16:33:38 +08:00
https://github.com/user-attachments/assets/a9d4776e-b50b-48fb-94ce-651d8a749b8a
2025-02-03 23:18:47 +08:00
Scroller Layout
2025-02-19 16:33:38 +08:00
https://github.com/user-attachments/assets/c9bf9415-fad1-4400-bcdc-3ad2d76de85a
# Maomaowm
2025-02-17 12:13:32 +08:00
This project is developed based on `dwl(0.5)` ,
adding many operation that supported in hyprland and a hyprland-like keybinds,
niri-like scroll layout and sway-like scratchpad.
See below for more features.
# separate window layout for each workspace(tags), with separate workspace parameters
## support layout
- tile(master)
- scroller
- monocle
- grid
- dwindle
2025-02-23 08:52:05 +08:00
- spiral
2025-02-17 12:13:32 +08:00
# window open rules
## options
- appid: type-string if match it or title, the rule match
- title: type-string if match it or appid, the rule match
- tags: type-num(1-9) which tags to open the window
- isfloating: type-num(0 or 1)
- isfullscreen: type-num(0 or 1)
- scroller_proportion: type-float(0.1-1.0)
- animation_type : type-string(zoom,slide)
- isnoborder : type-num(0 or 1)
- monitor : type-num(0-99999)
- width : type-num(0-9999)
- height : type-num(0-9999)
2025-02-03 23:18:47 +08:00
# some special feature
2025-02-03 23:18:47 +08:00
- hycov like overview
- foreign-toplevel support(dunst,waybar wlr taskbar)
- minimize window to waybar(like hych)
2025-02-17 12:13:32 +08:00
- sway scratchpad support (minimize window to scratchpad)
2025-02-03 23:18:47 +08:00
- window pin mode support
- text-input-v2/v3 for fcitx5
2025-02-03 23:18:47 +08:00
- window move/open animaition
- workspace switch animaition
- fade in animation
- alt-tab switch window like gnome
- niri like scroller layout
2025-02-24 18:19:42 +08:00
- fadeout animation
2025-02-03 23:18:47 +08:00
2025-02-08 13:56:30 +08:00
## suggest tools
```
2025-02-18 12:24:32 +08:00
yay -S rofi foot xdg-desktop-portal-wlr swaybg waybar wl-clip-persist cliphist wl-clipboard wlsunset
2025-02-08 13:56:30 +08:00
```
2025-02-03 23:18:47 +08:00
# install
# wlroots(0.17)
```
git clone -b 0.17.4 https://gitlab.freedesktop.org/wlroots/wlroots.git
cd wlroots
meson build -Dprefix=/usr
sudo ninja -C build install
2025-02-05 20:57:28 +08:00
git clone https://github.com/DreamMaoMao/maomaowm.git
cd maomaowm
2025-02-03 23:18:47 +08:00
meson build -Dprefix=/usr
sudo ninja -C build install
2025-02-08 13:56:30 +08:00
# set your autostart app ih this
2025-02-09 17:39:31 +08:00
mkdir -p ~/.config/maomao/
2025-02-05 13:38:12 +08:00
2025-02-03 23:18:47 +08:00
```
2025-02-10 20:25:39 +08:00
2025-02-20 08:47:56 +08:00
2025-02-10 20:25:39 +08:00
# config
you can use `MAOMAOCONFIG` env to set the config-folder-path and the autostart-folder-patch
like `MAOMAOCONFIG=/home/xxx/maomao`
- the only default keybinds is ctrl+alt+[F1-F12] to change tty
- the default config path is `~/.config/maomao/config.conf`
- the default autostart path is `~/.config/maomao/autostart.sh`
- the fallback config path is in `/etc/maomao/config.conf`, you can find the default config here
2025-02-27 18:20:50 +08:00
# keybinds notice
All mod keys(alt,ctrl,shift,super) are case insensitive, in addition to other key names are case sensitive, the name follows the xkb standard name, you can use the `xev` command to get the key name of the key you want, note that if your mod key contains the shift key, then it may not be the key name displayed on the keyboard. Real name Refer to the name displayed in the `xev` command.
2025-02-10 20:25:39 +08:00
2025-02-25 22:05:29 +08:00
# NixOS+Home-manager
```nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts.url = "github:hercules-ci/flake-parts";
maomaowm.url = "github:DreamMaoMao/maomaowm";
};
outputs =
inputs@{ self, flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
debug = true;
systems = [ "x86_64-linux" ];
flake = {
nixosConfigurations = {
hostname = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup";
users."username".imports =
[
(
{ ... }:
{
wayland.windowManager.maomaowm = {
enable = true;
settings = ''
# see config.conf
'';
autostart_sh = ''
# see autostart.sh
'';
};
}
)
]
++ [
# Add maomaowm hm module
inputs.maomaowm.hmModules.maomaowm
];
};
}
];
};
};
};
};
}
```
2025-02-20 08:47:56 +08:00
# my dotfile
[maomao-config](https://github.com/DreamMaoMao/dotfile/tree/main/maomao)
2025-02-03 23:18:47 +08:00
# thanks for some refer repo
2025-02-14 14:32:20 +08:00
- https://github.com/dqrk0jeste/owl - for basal window animaition
- https://github.com/djpohly/dwl - for basal dwl feature
- https://github.com/guyuming76/dwl - for text-input
- https://github.com/swaywm/sway - for foreign-toplevel