diff --git a/flake.lock b/flake.lock index d2b22c3..322ea3f 100644 --- a/flake.lock +++ b/flake.lock @@ -383,6 +383,24 @@ "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, + "locked": { + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_3" + }, "locked": { "lastModified": 1769996383, "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", @@ -587,7 +605,9 @@ "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs_4", + "nixpkgs": [ + "nixpkgs-unstable" + ], "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_3", "xdph": "xdph" @@ -873,7 +893,7 @@ "crane": "crane", "fenix": "fenix", "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1768868561, @@ -974,6 +994,28 @@ "type": "github" } }, + "mango": { + "inputs": { + "flake-parts": "flake-parts_3", + "nixpkgs": [ + "nixpkgs-unstable" + ], + "scenefx": "scenefx" + }, + "locked": { + "lastModified": 1771732288, + "narHash": "sha256-N1H7LMWXYNn7zN9ghp4vHlBs4O/Rw/+ZEoPUpm9ozw4=", + "owner": "DreamMaoMao", + "repo": "mangowc", + "rev": "6b2d694b234cae9876eb81e27991439eb51860f1", + "type": "github" + }, + "original": { + "owner": "DreamMaoMao", + "repo": "mangowc", + "type": "github" + } + }, "microvm": { "inputs": { "nixpkgs": [ @@ -1032,7 +1074,7 @@ "minhook-src": "minhook-src", "mini-src": "mini-src", "minizip-src": "minizip-src", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_5", "re2-src": "re2-src", "websocketpp-src": "websocketpp-src", "zlib-src": "zlib-src" @@ -1125,7 +1167,7 @@ "inputs": { "flake-compat": "flake-compat_5", "nix-index-database": "nix-index-database", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1771150922, @@ -1228,8 +1270,8 @@ "nixcord": { "inputs": { "flake-compat": "flake-compat_6", - "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_8" + "flake-parts": "flake-parts_4", + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1771375681, @@ -1277,6 +1319,21 @@ } }, "nixpkgs-lib_2": { + "locked": { + "lastModified": 1748740939, + "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "656a64127e9d791a334452c6b6606d17539476e2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-lib_3": { "locked": { "lastModified": 1769909678, "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", @@ -1339,22 +1396,6 @@ "type": "github" } }, - "nixpkgs_10": { - "locked": { - "lastModified": 1771008912, - "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "a82ccc39b39b621151d6732718e3e250109076fa", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1771309086, @@ -1388,22 +1429,6 @@ } }, "nixpkgs_4": { - "locked": { - "lastModified": 1766070988, - "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "c6245e83d836d0433170a16eb185cefe0572f8b8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { "locked": { "lastModified": 1760284886, "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", @@ -1419,7 +1444,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_5": { "locked": { "lastModified": 1770115704, "narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=", @@ -1435,7 +1460,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_6": { "locked": { "lastModified": 1771008912, "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", @@ -1451,7 +1476,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_7": { "locked": { "lastModified": 1770617025, "narHash": "sha256-1jZvgZoAagZZB6NwGRv2T2ezPy+X6EFDsJm+YSlsvEs=", @@ -1467,7 +1492,7 @@ "type": "github" } }, - "nixpkgs_9": { + "nixpkgs_8": { "locked": { "lastModified": 1771208521, "narHash": "sha256-X01Q3DgSpjeBpapoGA4rzKOn25qdKxbPnxHeMLNoHTU=", @@ -1483,6 +1508,22 @@ "type": "github" } }, + "nixpkgs_9": { + "locked": { + "lastModified": 1771008912, + "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nt": { "inputs": { "nix-unit": "nix-unit", @@ -1552,12 +1593,13 @@ "hyprland-git": "hyprland-git", "hyprland-plugins": "hyprland-plugins", "iamb": "iamb", + "mango": "mango", "microvm": "microvm_2", "millennium": "millennium", "nix-alien": "nix-alien", "nixcats": "nixcats", "nixcord": "nixcord", - "nixpkgs": "nixpkgs_9", + "nixpkgs": "nixpkgs_8", "nixpkgs-master": "nixpkgs-master", "nixpkgs-staging": "nixpkgs-staging", "nixpkgs-unstable": "nixpkgs-unstable", @@ -1605,6 +1647,27 @@ "type": "github" } }, + "scenefx": { + "inputs": { + "nixpkgs": [ + "mango", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1750785057, + "narHash": "sha256-tGX6j4W91rcb+glXJo43sjPI9zQvPotonknG1BdihR4=", + "owner": "wlrfx", + "repo": "scenefx", + "rev": "3a6cfb12e4ba97b43326357d14f7b3e40897adfc", + "type": "github" + }, + "original": { + "owner": "wlrfx", + "repo": "scenefx", + "type": "github" + } + }, "sddm-silent": { "inputs": { "nixpkgs": [ @@ -1857,7 +1920,7 @@ "zen": { "inputs": { "home-manager": "home-manager_3", - "nixpkgs": "nixpkgs_10" + "nixpkgs": "nixpkgs_9" }, "locked": { "lastModified": 1771381854, diff --git a/flake.nix b/flake.nix index 2cbefbf..c6b0682 100644 --- a/flake.nix +++ b/flake.nix @@ -37,14 +37,21 @@ # wm/de/apps/theming flakes hyprland-git = { + # pinned rev because color management is broken on hyprland url = "github:hyprwm/Hyprland/25250527793eb04bb60f103abe7f06370b9f6e1c"; #url = "github:hyprwm/Hyprland"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; }; hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland-git"; }; + mango = { + url = "github:DreamMaoMao/mangowc"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; + nixcats.url = "github:BirdeeHub/nixCats-nvim"; awww.url = "git+https://codeberg.org/LGFae/awww"; zen.url = "github:0xc000022070/zen-browser-flake"; diff --git a/homes/aurora/default.nix b/homes/aurora/default.nix index 85932c7..b560f1a 100644 --- a/homes/aurora/default.nix +++ b/homes/aurora/default.nix @@ -27,6 +27,7 @@ ../modules/shell/fastfetch/fastfetch.nix ../modules/wm/hyprland/hyprland.nix + ../modules/wm/mango/default.nix ../modules/wm/river.nix ../modules/wm/sway.nix diff --git a/homes/modules/themeing/wallust/templates/mango-template.conf b/homes/modules/themeing/wallust/templates/mango-template.conf new file mode 100644 index 0000000..508f2c0 --- /dev/null +++ b/homes/modules/themeing/wallust/templates/mango-template.conf @@ -0,0 +1,11 @@ +# background color of the root window +rootcolor=0x{ color12 | strip }ff + +# inactive window border +bordercolor=0x{ color14 | strip }ff + +# active window border +focuscolor=0x{ color0 | strip }ff + +# urgent / alerted window border +urgentcolor=0x{ color10 | strip }ff diff --git a/homes/modules/themeing/wallust/wallust.toml b/homes/modules/themeing/wallust/wallust.toml index d5d0737..39c0d57 100644 --- a/homes/modules/themeing/wallust/wallust.toml +++ b/homes/modules/themeing/wallust/wallust.toml @@ -16,6 +16,9 @@ equicord.target = "~/.config/Equicord/themes/base16-colors.css" hyprland.template = "hyprland-template.conf" hyprland.target = "~/.config/hypr/colors.conf" +mango.template = "mango-template.conf" +mango.target = "~/.config/mango/colors.conf" + foot.template = "foot-template.ini" foot.target = "~/.config/foot/theme.ini" diff --git a/homes/modules/wm/hyprland/hyprland.nix b/homes/modules/wm/hyprland/hyprland.nix index 6346e51..dce34e8 100644 --- a/homes/modules/wm/hyprland/hyprland.nix +++ b/homes/modules/wm/hyprland/hyprland.nix @@ -130,6 +130,13 @@ "alt, tab, exec, pkill -x rofi || rofi -modi window -show window -show-icons" "$mod, v, exec, pkill -x rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy" + # manage windows / session + "$mod+alt, c, killactive" + "$mod, f, fullscreen" + "$mod, x, togglefloating" + "$mod, i, togglesplit" + "$mod+Alt, Delete, exit" # exit hyprland + # screenshots # todo: add active monitor "$mod, s, exec, grim -g \"\$(slurp -d)\" - | wl-copy" # region @@ -152,13 +159,6 @@ "Shift_R, XF86AudioPlay, exec, playerctl shuffle toggle" "Shift_R, XF86AudioNext, exec, playerctl loop track" - # manage windows / session - "$mod+alt, c, killactive" - "$mod, f, fullscreen" - "$mod, x, togglefloating" - "$mod, i, togglesplit" - "$mod+Alt, Delete, exit" # exit hyprland - # move focus "$mod, h, movefocus, l" "$mod, j, movefocus, d" diff --git a/homes/modules/wm/mango/default.nix b/homes/modules/wm/mango/default.nix new file mode 100644 index 0000000..6f55063 --- /dev/null +++ b/homes/modules/wm/mango/default.nix @@ -0,0 +1,15 @@ +{ inputs, ... }: +{ + imports = [ + inputs.mango.hmModules.mango + ]; + + wayland.windowManager.mango = { + enable = true; + }; + + xdg.configFile."mango" = { + recursive = true; + source = ./mango; + }; +} diff --git a/homes/modules/wm/mango/mango/config.conf b/homes/modules/wm/mango/mango/config.conf new file mode 100644 index 0000000..8c9e7ad --- /dev/null +++ b/homes/modules/wm/mango/mango/config.conf @@ -0,0 +1,103 @@ +################################################################################ +##### Monitors ///////////////////////////////////////////////////////////////// +################################################################################ + +# note: display stream compression pending for open source +# amd gpu driver and my monitor (VG279QM) only supports DP 1.2 +# so no >240hz atm + +# main monitor +monitorrule = name:DP-2,width:1920,height:1080,refresh:240,x:0,y:0 +# second monitor +monitorrule = name:DP-3,width:1920,height:1080,refresh:144,x:1920,y:0 +# third monitor (drawing tablet) +monitorrule = name:HDMI-A-2,width:2560,height:1440,refresh:60,x:3840,y:0 +# tv +monitorrule = name:HDMI-A-1,width:1920,height:1080,refresh:60,x:-1920,y:0 + +################################################################################ +##### Startup ////////////////////////////////////////////////////////////////// +################################################################################ + +exec-once = waybar +exec-once = awww-daemon + +exec-once = wl-paste --type text --watch cliphist store +exec-once = wl-paste --type image --watch cliphist store +exec-once = wl-clip-persist --clipboard regular + +exec-once = playerctld daemon + +################################################################################ +##### Themeing ///////////////////////////////////////////////////////////////// +################################################################################ + +borderpx = 2 +gappih = 5 # inner gap horizontal +gappiv = 5 # inner gap vertical +gappoh = 10 # outer gap horizontal +gappov = 10 # outer gap horizontal +border_radius = 8 + +focused_opacity = 1.0 +unfocused_opacity = 1.0 + +cursor_size = 24 +cursor_theme = "Bunny (Icy) and Strawberries" + +################################################################################ +##### Input //////////////////////////////////////////////////////////////////// +################################################################################ + +# keyboard stuff +repeat_rate = 50 +repeat_delay = 300 + +# mouse stuff +accel_profile = 0 + +################################################################################ +##### Keybinds ///////////////////////////////////////////////////////////////// +################################################################################ + +# applications +bind = SUPER, t, spawn, foot +bind = SUPER, e, spawn, foot -e yazi +bind = SUPER, r, spawn, zen-twilight + +# rofi +bind = SUPER, d, spawn_shell, pkill -x rofi || rofi -show drun -show-icons +bind = SUPER, v, spawn_shell, pkill -x rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy +bind = ALT, TAB, spawn_shell, pkill -x rofi || rofi -modi window -show window -show-icons + +# manage windows / session +bind = SUPER+ALT, c, killclient +bind = SUPER, f, togglefullscreen +bind = SUPER+ALT, f, togglefakefullscreen +bind = SUPER, x, togglefloating + +# screenshots +# grim - | wl-copy +bind = SUPER, s, spawn, grim -g \"\$(slurp -d)\" - | wl-copy +bind = SUPER+ALT, s, spawn, grim -g \"\$(slurp -o)\" - | wl-copy +bind = SUPER+CTRL, s, spawn, grim - | wl-copy + +################################################################################ +##### Miscellaneous //////////////////////////////////////////////////////////// +################################################################################ + +# focus follows mouse cursor +sloppyfocus = 1 + +# automatically focus windows when they request activiation +focus_on_activate = 1 + +# scroll speed +axis_scroll_factor = 1.0 + +################################################################################ +##### Imports ////////////////////////////////////////////////////////////////// +################################################################################ + +# colors generated from palette generator +source = ./colors.conf diff --git a/homes/modules/wm/mango/mango/windowrules.conf b/homes/modules/wm/mango/mango/windowrules.conf new file mode 100644 index 0000000..40bd58b --- /dev/null +++ b/homes/modules/wm/mango/mango/windowrules.conf @@ -0,0 +1,3 @@ +# ---------------------------------------------------------------------------- # +# foot - blur +windowrule = appid:^(foot)$, focused_opacity:0.95, unfocused_opacity:0.95 diff --git a/hosts/nixarawrui/default.nix b/hosts/nixarawrui/default.nix index b07dbb5..05d6c38 100644 --- a/hosts/nixarawrui/default.nix +++ b/hosts/nixarawrui/default.nix @@ -236,6 +236,10 @@ portalPackage = upkgs.hyprland-git.xdg-desktop-portal-hyprland; }; + mango = { + enable = true; + }; + river-classic = { package = spkgs.river-classic; # FIX: using spkgs version as zls is broken rn ;-; enable = true; diff --git a/snow.nix b/snow.nix index c927050..18ca261 100644 --- a/snow.nix +++ b/snow.nix @@ -24,6 +24,7 @@ cerulean.mkNexus ./. (self: { modules = with inputs; [ sddm-silent.nixosModules.default + inputs.mango.nixosModules.mango ]; };