171
flake.lock
generated
171
flake.lock
generated
@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744289235,
|
||||
"narHash": "sha256-ZFkHLdimtFzQACsVVyZkZlfYdj4iNy3PkzXfrwmlse8=",
|
||||
"lastModified": 1745357003,
|
||||
"narHash": "sha256-jYwzQkv1r7HN/4qrAuKp+NR4YYNp2xDrOX5O9YVqkWo=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "c8282f4982b56dfa5e9b9f659809da93f8d37e7a",
|
||||
"rev": "a19cf76ee1a15c1c12083fa372747ce46387289f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -126,11 +126,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745598511,
|
||||
"narHash": "sha256-GWYB7PngGwTJrp7gr0w6E5nnvwiblPvN2kjRCQw3ZEg=",
|
||||
"lastModified": 1746175539,
|
||||
"narHash": "sha256-/wjcn1CDQqOhwOoYKS8Xp0KejrdXSJZQMF1CbbrVtMw=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "199cb288a85b15ed203089804c024ae5b3eacd7c",
|
||||
"rev": "a5db9e41a4dccfa5ffe38e6f1841a5f9ad5c5c04",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -150,11 +150,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745805923,
|
||||
"narHash": "sha256-Nf7s2EPyVyDxmyKKOQu/HpXxttR2PmRzidYT7tflPDk=",
|
||||
"lastModified": 1746393392,
|
||||
"narHash": "sha256-pXPlbcEBRX5X3VodtXQlqHjmnTDbWFpfpZBeoDQibE4=",
|
||||
"owner": "chaotic-cx",
|
||||
"repo": "nyx",
|
||||
"rev": "9ee0fe8c4db911e3b9c599699bcd610486a27c5a",
|
||||
"rev": "00ad833cbada57424d273a4791a0435fd490b09e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -209,11 +209,11 @@
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745735608,
|
||||
"narHash": "sha256-L0jzm815XBFfF2wCFmR+M1CF+beIEFj6SxlqVKF59Ec=",
|
||||
"lastModified": 1745995211,
|
||||
"narHash": "sha256-hf6Xu3KS06WyE/3dqV96iLGx3jIYQq9e68iCEFHrt04=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "c39a78eba6ed2a022cc3218db90d485077101496",
|
||||
"rev": "0db04339c4e4c0fd42dbbaebe3590a67cbd12aa3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -273,11 +273,11 @@
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1717312683,
|
||||
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
||||
"lastModified": 1746162366,
|
||||
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
||||
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -512,11 +512,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745771770,
|
||||
"narHash": "sha256-kC1yYNAO69i0Q9nnQFTxu5kdwcoHRE7x4jtJyIB5QSg=",
|
||||
"lastModified": 1745987135,
|
||||
"narHash": "sha256-8Up4QPuMZEJBU0eefAY+nUe7DYKQQzvaHnMpNdwRgKA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "0fbd8207e913b2d1660a7662f9ae80e5e639de65",
|
||||
"rev": "d2b3e6c83d457aa0e7f9344c61c3fed32bad0f7e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -532,11 +532,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745810134,
|
||||
"narHash": "sha256-WfnYH/i7DFzn4SESQfWviXiNUZjohZhzODqLwKYHIPI=",
|
||||
"lastModified": 1746413188,
|
||||
"narHash": "sha256-i6BoiQP0PasExESQHszC0reQHfO6D4aI2GzOwZMOI20=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "be7cf1709b469a2a2c62169172a167d1fed3509f",
|
||||
"rev": "8a318641ac13d3bc0a53651feaee9560f9b2d89a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -582,11 +582,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742215578,
|
||||
"narHash": "sha256-zfs71PXVVPEe56WEyNi2TJQPs0wabU4WAlq0XV7GcdE=",
|
||||
"lastModified": 1745948457,
|
||||
"narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "2fd36421c21aa87e2fe3bee11067540ae612f719",
|
||||
"rev": "ac903e80b33ba6a88df83d02232483d99f327573",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -642,11 +642,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745795931,
|
||||
"narHash": "sha256-i4zlEa2lnANuOZA1aA/X0cNGM7x9MLZqqmKP6fwfPEA=",
|
||||
"lastModified": 1746411742,
|
||||
"narHash": "sha256-5KdfDwcwjzQJC9ZeiIu6UMfaWG5cJqfhjg2mE0+nzgA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "f5c5cfa960c157c8df50b496f621290234ac4505",
|
||||
"rev": "1c530cbc66dbff585d55e435efd5e6a6e5614f88",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -735,11 +735,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739048983,
|
||||
"narHash": "sha256-REhTcXq4qs3B3cCDtLlYDz0GZvmsBSh947Ub6pQWGTQ=",
|
||||
"lastModified": 1745951494,
|
||||
"narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "3504a293c8f8db4127cb0f7cfc1a318ffb4316f8",
|
||||
"rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -764,11 +764,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744468525,
|
||||
"narHash": "sha256-9HySx+EtsbbKlZDlY+naqqOV679VdxP6x6fP3wxDXJk=",
|
||||
"lastModified": 1745357019,
|
||||
"narHash": "sha256-q/C3qj9FWHQenObXuw/nGIT8iIsWFjgmcQYcA+ZfpPs=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "f1000c54d266e6e4e9d646df0774fac5b8a652df",
|
||||
"rev": "397600c42b8d7a443a5b4e92aa15f46650a90f18",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -794,11 +794,11 @@
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742816163,
|
||||
"narHash": "sha256-EIJka3UtSEtmkDBjYiGeR/hO6s6R4x3K+rbUlc9KPBE=",
|
||||
"lastModified": 1746395148,
|
||||
"narHash": "sha256-lu9G00SldO4FLvK/taJmPyrnAqt6d/5Y0OgNcbjlzew=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprsunset",
|
||||
"rev": "7b7339f0deef23ec23a723651528cb8ae56c11d9",
|
||||
"rev": "fdcc9a1e170fbc073f88576ce52f893f8bbc6a45",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -819,11 +819,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743950287,
|
||||
"narHash": "sha256-/6IAEWyb8gC/NKZElxiHChkouiUOrVYNq9YqG0Pzm4Y=",
|
||||
"lastModified": 1745975815,
|
||||
"narHash": "sha256-s3GzsRxBL/N/xYgUXZhQh4t62uR1BN4zxXgWBtJ3lWM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "f2dc70e448b994cef627a157ee340135bd68fbc6",
|
||||
"rev": "05878d9470c9e5cbc8807813f9ec2006627a0ca0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -991,11 +991,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745725746,
|
||||
"narHash": "sha256-iR+idGZJ191cY6NBXyVjh9QH8GVWTkvZw/w+1Igy45A=",
|
||||
"lastModified": 1746330942,
|
||||
"narHash": "sha256-ShizFaJCAST23tSrHHtFFGF0fwd72AG+KhPZFFQX/0o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "187524713d0d9b2d2c6f688b81835114d4c2a7c6",
|
||||
"rev": "137fd2bd726fff343874f85601b51769b48685cc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1012,11 +1012,11 @@
|
||||
"rust-overlay": "rust-overlay_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745752145,
|
||||
"narHash": "sha256-SRvolJBy9oRUdfik/xtcsguQtcDHrkzq1yf5NbsLBhY=",
|
||||
"lastModified": 1746356902,
|
||||
"narHash": "sha256-aV2pm+XKEoGE/BuqJwI1zDhtHclzC5BsbSO+SAMFEKk=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "0ba6c63681ae317d122a5e76bc2bf556737a53d0",
|
||||
"rev": "22325997671e2a6f0a2e784db2746267868a33ed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1074,11 +1074,11 @@
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1745487689,
|
||||
"narHash": "sha256-FQoi3R0NjQeBAsEOo49b5tbDPcJSMWc3QhhaIi9eddw=",
|
||||
"lastModified": 1746183838,
|
||||
"narHash": "sha256-kwaaguGkAqTZ1oK0yXeQ3ayYjs8u/W7eEfrFpFfIDFA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5630cf13cceac06cefe9fc607e8dfa8fb342dde3",
|
||||
"rev": "bf3287dac860542719fe7554e21e686108716879",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1090,11 +1090,11 @@
|
||||
},
|
||||
"nixpkgs-stable_3": {
|
||||
"locked": {
|
||||
"lastModified": 1745742390,
|
||||
"narHash": "sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus=",
|
||||
"lastModified": 1746422338,
|
||||
"narHash": "sha256-NTtKOTLQv6dPfRe00OGSywg37A1FYqldS6xiNmqBUYc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "26245db0cb552047418cfcef9a25da91b222d6c7",
|
||||
"rev": "5b35d248e9206c1f3baf8de6a7683fee126364aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1106,11 +1106,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1745526057,
|
||||
"narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
|
||||
"lastModified": 1746232882,
|
||||
"narHash": "sha256-MHmBH2rS8KkRRdoU/feC/dKbdlMkcNkB5mwkuipVHeQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
|
||||
"rev": "7a2622e2c0dbad5c4493cb268aba12896e28b008",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1122,11 +1122,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1745526057,
|
||||
"narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
|
||||
"lastModified": 1746328495,
|
||||
"narHash": "sha256-uKCfuDs7ZM3QpCE/jnfubTg459CnKnJG/LwqEVEdEiw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
|
||||
"rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1243,17 +1243,18 @@
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-stable": "nixpkgs-stable_3",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix"
|
||||
"stylix": "stylix",
|
||||
"walker": "walker"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1745694049,
|
||||
"narHash": "sha256-fxvRYH/tS7hGQeg9zCVh5RBcSWT+JGJet7RA8Ss+rC0=",
|
||||
"lastModified": 1745949276,
|
||||
"narHash": "sha256-9ZK31t2HUiGdLLnDafrRnSrrO12JwqcAFbrJ9nRwh0Y=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "d8887c0758bbd2d5f752d5bd405d4491e90e7ed6",
|
||||
"rev": "78a488dd5e7e4f17162001519665795e6e68b6f8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1292,11 +1293,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745721366,
|
||||
"narHash": "sha256-dm93104HXjKWzkrr7yAPtxpbllOSzrwFFruc+rKQHSg=",
|
||||
"lastModified": 1746326315,
|
||||
"narHash": "sha256-IDqSls/r6yBfdOBRSMQ/noTUoigmsKnTQ7TqpsBtN4Y=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "621131c9e281d1047bf8937547ed77e97c464aba",
|
||||
"rev": "dd280c436961ec5adccf0135efe5b66a23d84497",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1421,6 +1422,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -1525,6 +1541,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"walker": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746253489,
|
||||
"narHash": "sha256-Lsegrsus7oZLLglhjYDUWKSh544Rylkc9y2GBnsD4TE=",
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"rev": "65fd786cf25c207efe0b5f2963d4cb5b2125bc22",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
@ -1553,11 +1590,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744644585,
|
||||
"narHash": "sha256-p0D/e4J6Sv6GSb+9u8OQcVHSE2gPNYB5ygIfGDyEiXQ=",
|
||||
"lastModified": 1745871725,
|
||||
"narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "be6771e754345f18244fb00aae5c9e5ab21ccc26",
|
||||
"rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -22,6 +22,10 @@
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable";
|
||||
sops-nix.url = "github:mic92/sops-nix";
|
||||
walker = {
|
||||
url = "github:abenz1267/walker";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
stylix.url = "github:danth/stylix/8b0d9317edd57c5374adcf6957ae4775875c2a9d";
|
||||
# TODO: somehow reduce the number of *.inputs.nixpkgs.follows = "nixpkgs" stuff, mb a function?
|
||||
blueprint.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -11,4 +11,7 @@
|
||||
inherit (osConfig) desktop;
|
||||
home.stateVersion = osConfig.system.stateVersion;
|
||||
home.sessionPath = ["$HOME/.local/bin"];
|
||||
|
||||
# TODO: remove when unbroken
|
||||
stylix.targets.mako.enable = false;
|
||||
}
|
||||
|
@ -8,21 +8,16 @@
|
||||
}: let
|
||||
inherit (lib.strings) removeSuffix;
|
||||
inherit (lib) mkIf mkEnableOption mkDefault mkForce getExe;
|
||||
inherit (config.lib.stylix) colors;
|
||||
inherit (config.stylix) cursor;
|
||||
inherit (osConfig.module.stylix) theme;
|
||||
inherit (osConfig.networking) hostName;
|
||||
cfg = config.desktop.niri;
|
||||
keyboard =
|
||||
if hostName == "eldrid"
|
||||
then "chromeos"
|
||||
else "platform";
|
||||
xdgPics =
|
||||
config.xdg.userDirs.pictures;
|
||||
ifLaptop = mkIf (hostName != "dunamis");
|
||||
launcher = getExe pkgs.fuzzel;
|
||||
launcher = getExe pkgs.walker;
|
||||
lockscreen = getExe pkgs.gtklock;
|
||||
in {
|
||||
imports = [
|
||||
./programs
|
||||
];
|
||||
options = {
|
||||
desktop.niri.enable =
|
||||
mkEnableOption "enable niri desktop";
|
||||
@ -33,386 +28,14 @@ in {
|
||||
wpaperd.enable = true;
|
||||
qt.enable = false;
|
||||
};
|
||||
xdg.configFile = {
|
||||
niri = {
|
||||
target = "niri/config.kdl";
|
||||
text = let
|
||||
arrows = {
|
||||
left = "Left";
|
||||
down = "Down";
|
||||
up = "Up";
|
||||
right = "Right";
|
||||
};
|
||||
homerow-arrows = {
|
||||
left = "n";
|
||||
down = "e";
|
||||
up = "i";
|
||||
right = "o";
|
||||
};
|
||||
letters = {
|
||||
first = "Q";
|
||||
second = "W";
|
||||
third = "F";
|
||||
fourth = "P";
|
||||
fifth = "B";
|
||||
sixth = "J";
|
||||
seventh = "L";
|
||||
eighth = "U";
|
||||
ninth = "Y";
|
||||
};
|
||||
numbers = {
|
||||
first = "1";
|
||||
second = "2";
|
||||
third = "3";
|
||||
fourth = "4";
|
||||
fifth = "5";
|
||||
sixth = "6";
|
||||
seventh = "7";
|
||||
eighth = "8";
|
||||
ninth = "9";
|
||||
};
|
||||
genArrowNavigation = keys: ''
|
||||
Mod+${keys.left} { focus-column-left; }
|
||||
Mod+${keys.down} { focus-window-or-workspace-down; }
|
||||
Mod+${keys.up} { focus-window-or-workspace-up; }
|
||||
Mod+${keys.right} { focus-column-right; }
|
||||
Mod+Ctrl+${keys.left} { move-column-left; }
|
||||
Mod+Ctrl+${keys.down} { move-window-down-or-to-workspace-down; }
|
||||
Mod+Ctrl+${keys.up} { move-window-up-or-to-workspace-up; }
|
||||
Mod+Ctrl+${keys.right} { move-column-right; }
|
||||
Mod+Shift+${keys.left} { focus-monitor-left; }
|
||||
Mod+Shift+${keys.down} { focus-monitor-down; }
|
||||
Mod+Shift+${keys.up} { focus-monitor-up; }
|
||||
Mod+Shift+${keys.right} { focus-monitor-right; }
|
||||
Mod+Shift+Ctrl+${keys.left} { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+${keys.down} { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+${keys.up} { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+${keys.right} { move-column-to-monitor-right; }
|
||||
'';
|
||||
genWorkspacesNavigation = keys: ''
|
||||
Mod+${keys.first} { focus-workspace 1; }
|
||||
Mod+${keys.second} { focus-workspace 2; }
|
||||
Mod+${keys.third} { focus-workspace 3; }
|
||||
Mod+${keys.fourth} { focus-workspace 4; }
|
||||
Mod+${keys.fifth} { focus-workspace 5; }
|
||||
Mod+${keys.sixth} { focus-workspace 6; }
|
||||
Mod+${keys.seventh} { focus-workspace 7; }
|
||||
Mod+${keys.eighth} { focus-workspace 8; }
|
||||
Mod+${keys.ninth} { focus-workspace 9; }
|
||||
Mod+Ctrl+Shift+${keys.first} { move-column-to-workspace 1; }
|
||||
Mod+Ctrl+Shift+${keys.second} { move-column-to-workspace 2; }
|
||||
Mod+Ctrl+Shift+${keys.third} { move-column-to-workspace 3; }
|
||||
Mod+Ctrl+Shift+${keys.fourth} { move-column-to-workspace 4; }
|
||||
Mod+Ctrl+Shift+${keys.fifth} { move-column-to-workspace 5; }
|
||||
Mod+Ctrl+Shift+${keys.sixth} { move-column-to-workspace 6; }
|
||||
Mod+Ctrl+Shift+${keys.seventh} { move-column-to-workspace 7; }
|
||||
Mod+Ctrl+Shift+${keys.eighth} { move-column-to-workspace 8; }
|
||||
Mod+Ctrl+Shift+${keys.ninth} { move-column-to-workspace 9; }
|
||||
'';
|
||||
in ''
|
||||
environment {
|
||||
DISPLAY ":123"
|
||||
QT_QPA_PLATFORM "wayland"
|
||||
QT_QPA_PLATFORMTHEME "gtk3"
|
||||
GDK_BACKEND "wayland"
|
||||
MOZ_ENABLE_WAYLAND "1"
|
||||
MOZ_WEBRENDER "1"
|
||||
XDG_SESSION_TYPE "wayland"
|
||||
CLUTTER_BACKEND "wayland"
|
||||
SDL_VIDEODRIVER "wayland"
|
||||
}
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
layout "us,ua"
|
||||
${
|
||||
if (hostName == "dunamis" || hostName == "legion")
|
||||
then "// variant \"colemak_dh_ortho,\""
|
||||
else "variant \"colemak_dh_ortho,\""
|
||||
}
|
||||
}
|
||||
repeat-delay 200
|
||||
repeat-rate 50
|
||||
track-layout "global"
|
||||
}
|
||||
touchpad {
|
||||
// off
|
||||
tap
|
||||
// dwt
|
||||
// dwtp
|
||||
natural-scroll
|
||||
accel-speed 0.2
|
||||
accel-profile "flat"
|
||||
// scroll-method "two-finger"
|
||||
// disabled-on-external-mouse
|
||||
}
|
||||
mouse {
|
||||
// off
|
||||
// natural-scroll
|
||||
accel-speed 0.0
|
||||
accel-profile "flat"
|
||||
// scroll-method "no-scroll"
|
||||
}
|
||||
warp-mouse-to-focus
|
||||
// focus-follows-mouse
|
||||
}
|
||||
output "eDP-1" {
|
||||
// off
|
||||
scale 1.2
|
||||
transform "normal"
|
||||
// position x=1920 y=0
|
||||
}
|
||||
output "Samsung Electric Company S24R65x H4TMA03291" {
|
||||
position x=0 y=0
|
||||
variable-refresh-rate
|
||||
}
|
||||
output "Philips Consumer Electronics Company 27M2N5500 UK02418033254" {
|
||||
mode "2560x1440@${
|
||||
if hostName == "legion"
|
||||
then "144.001"
|
||||
else "180.000"
|
||||
}"
|
||||
variable-refresh-rate
|
||||
position x=0 y=0
|
||||
scale 1.33
|
||||
}
|
||||
output "PNP(AOC) 27V2G5 0x0000026C" {
|
||||
position x=1920 y=0
|
||||
mode "1920x1080@74.973"
|
||||
variable-refresh-rate
|
||||
}
|
||||
|
||||
cursor {
|
||||
xcursor-theme "${cursor.name}"
|
||||
xcursor-size ${toString cursor.size}
|
||||
}
|
||||
|
||||
layout {
|
||||
gaps 6
|
||||
center-focused-column "never" // "on-overflow"
|
||||
preset-column-widths {
|
||||
proportion 0.33333
|
||||
proportion 0.66667
|
||||
}
|
||||
|
||||
// default-column-width { proportion 0.9; }
|
||||
default-column-width { proportion 0.5; }
|
||||
tab-indicator {
|
||||
active-color "#${colors.base04}"
|
||||
inactive-color "#${colors.base03}"
|
||||
corner-radius 4
|
||||
gap 6
|
||||
gaps-between-tabs 3
|
||||
length total-proportion=0.3
|
||||
place-within-column
|
||||
position "left"
|
||||
width 6
|
||||
}
|
||||
focus-ring {
|
||||
// off
|
||||
width 3
|
||||
active-gradient from="#${colors.base0D}" to="#${colors.base0F}" angle=40 relative-to="workspace-view"
|
||||
inactive-color "#${colors.base03}"
|
||||
}
|
||||
struts {
|
||||
left 24
|
||||
right 24
|
||||
}
|
||||
}
|
||||
|
||||
prefer-no-csd
|
||||
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
window-rule {
|
||||
match is-window-cast-target=true
|
||||
focus-ring {
|
||||
width 3
|
||||
active-color "#${colors.base0F}"
|
||||
inactive-color "#${colors.base03}"
|
||||
}
|
||||
border {
|
||||
width 3
|
||||
active-color "#${colors.base0F}"
|
||||
inactive-color "#${colors.base03}"
|
||||
}
|
||||
shadow {
|
||||
on
|
||||
color "#${colors.base0F}"
|
||||
inactive-color "#${colors.base03}"
|
||||
}
|
||||
}
|
||||
|
||||
screenshot-path "${xdgPics}/screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png"
|
||||
|
||||
animations {
|
||||
slowdown 0.8
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match title="Картинка в картинці"
|
||||
match title="Picture-in-Picture"
|
||||
open-floating true
|
||||
}
|
||||
window-rule {
|
||||
match app-id="org.wezfurlong.wezterm"
|
||||
match app-id="com.mitchellh.ghostty"
|
||||
default-column-width { proportion 1.0; }
|
||||
}
|
||||
window-rule {
|
||||
match app-id="re.sonny.Junction"
|
||||
open-floating true
|
||||
open-focused true
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id="com.mitchellh.ghostty"
|
||||
draw-border-with-background false
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||
match app-id=r#"^Bitwarden$"#
|
||||
match app-id="org.telegram.desktop"
|
||||
match app-id="org.signal.Signal"
|
||||
match app-id="WebCord"
|
||||
// block-out-from "screen-capture"
|
||||
block-out-from "screencast"
|
||||
}
|
||||
|
||||
binds {
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
|
||||
Mod+Tab { focus-workspace-previous; }
|
||||
Mod+C { center-column; }
|
||||
Mod+M { maximize-column; }
|
||||
Mod+H { set-column-width "50%"; }
|
||||
Mod+T { set-column-width "33%"; }
|
||||
Mod+Shift+T { set-column-width "67%"; }
|
||||
Mod+V { toggle-column-tabbed-display; }
|
||||
Mod+G { switch-focus-between-floating-and-tiling; }
|
||||
|
||||
Mod+Ctrl+Comma { consume-or-expel-window-left; }
|
||||
Mod+Ctrl+Period { consume-or-expel-window-right; }
|
||||
|
||||
Mod+Ctrl+Q { close-window; }
|
||||
Mod+Ctrl+M { fullscreen-window; }
|
||||
Mod+Ctrl+G { toggle-window-floating; }
|
||||
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
Mod+Comma { set-column-width "-10%"; }
|
||||
Mod+Period { set-column-width "+10%"; }
|
||||
Mod+Shift+Comma { set-window-height "-10%"; }
|
||||
Mod+Shift+Period { set-window-height "+10%"; }
|
||||
|
||||
Mod+Escape { switch-layout "next"; }
|
||||
|
||||
Mod+Return repeat=false { spawn "sh" "-c" "$TERMINAL"; }
|
||||
Mod+Space repeat=false { spawn "${launcher}"; }
|
||||
Mod+Ctrl+L repeat=false { spawn "${lockscreen}"; }
|
||||
Mod+Ctrl+V repeat=false { spawn "copyq" "toggle"; }
|
||||
|
||||
Mod+Ctrl+Shift+BracketLeft { quit; }
|
||||
Mod+Ctrl+Shift+BracketRight { power-off-monitors; }
|
||||
|
||||
Print { screenshot; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Shift+Print { screenshot-window; }
|
||||
|
||||
// Caps_Lock { spawn "swayosd-client" "--caps-lock"; }
|
||||
// XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "-l" "1.0" "@DEFAULT_AUDIO_SINK@" "5%+"; }
|
||||
// XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "-l" "1.0" "@DEFAULT_AUDIO_SINK@" "5%-"; }
|
||||
// XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
|
||||
// XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "raise"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "lower"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn "swayosd-client" "--input-volume" "mute-toggle"; }
|
||||
XF86AudioPlay allow-when-locked=true { spawn "playerctl" "play-pause"; }
|
||||
XF86AudioPause allow-when-locked=true { spawn "playerctl" "pause"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn "playerctl" "previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn "playerctl" "next"; }
|
||||
|
||||
XF86ScreenSaver allow-when-locked=true { spawn "${lockscreen}"; }
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-"; }
|
||||
Alt+XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+" "-d" "${keyboard}::kbd_backlight"; }
|
||||
Alt+XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-" "-d" "${keyboard}::kbd_backlight"; }
|
||||
XF86KbdBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+" "-d" "${keyboard}::kbd_backlight"; }
|
||||
XF86KbdBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-" "-d" "${keyboard}::kbd_backlight"; }
|
||||
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
|
||||
Mod+Next { focus-workspace-down; }
|
||||
Mod+Prior { focus-workspace-up; }
|
||||
Mod+Ctrl+Next { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+Prior { move-column-to-workspace-up; }
|
||||
Mod+Shift+Next { move-workspace-down; }
|
||||
Mod+Shift+Prior { move-workspace-up; }
|
||||
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
|
||||
Mod+WheelScrollRight { focus-column-right; }
|
||||
Mod+WheelScrollLeft { focus-column-left; }
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
|
||||
Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
|
||||
Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
|
||||
|
||||
${genArrowNavigation arrows}
|
||||
${genArrowNavigation homerow-arrows}
|
||||
${genWorkspacesNavigation letters}
|
||||
${genWorkspacesNavigation numbers}
|
||||
}
|
||||
'';
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
button-layout = "icon:close";
|
||||
};
|
||||
"org/gnome/desktop/interface" = {
|
||||
icon-theme = config.gtk.iconTheme.name;
|
||||
};
|
||||
};
|
||||
services = import ./services {inherit pkgs lockscreen getExe perSystem;};
|
||||
programs.fuzzel = import ./programs/fuzzel {inherit config mkDefault;};
|
||||
programs.waybar = import ./programs/waybar {inherit colors config getExe ifLaptop pkgs;};
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
# gui libadwaita apps
|
||||
celluloid # mpv gui in libadwaita
|
||||
helvum # pipewire patchbay in rust
|
||||
junction # app chooser
|
||||
loupe # image viewer and editor in rust
|
||||
mission-center # task manager in rust (partly)
|
||||
nautilus # file manager
|
||||
overskride # bluetooth gui in rust
|
||||
papers # pdf reader in rust
|
||||
pika-backup # borg gui in rust
|
||||
pwvucontrol # pipewire gui in rust
|
||||
wdisplays # wlroots display configurator
|
||||
]
|
||||
++ [
|
||||
# misc utils
|
||||
(ifLaptop brightnessctl)
|
||||
dconf
|
||||
libnotify
|
||||
playerctl
|
||||
wl-clipboard-rs # wl-clipboard in rust
|
||||
];
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
@ -430,14 +53,35 @@ in {
|
||||
enable = true;
|
||||
platformTheme.name = "gtk3";
|
||||
};
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
button-layout = "icon:close";
|
||||
};
|
||||
"org/gnome/desktop/interface" = {
|
||||
icon-theme = config.gtk.iconTheme.name;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile.niri = import ./niri.nix {inherit config hostName launcher lockscreen;};
|
||||
services = import ./services {inherit pkgs lockscreen getExe perSystem;};
|
||||
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
# gui libadwaita apps
|
||||
celluloid # mpv gui in libadwaita
|
||||
helvum # pipewire patchbay in rust
|
||||
junction # app chooser
|
||||
loupe # image viewer and editor in rust
|
||||
mission-center # task manager in rust (partly)
|
||||
nautilus # file manager
|
||||
overskride # bluetooth gui in rust
|
||||
papers # pdf reader in rust
|
||||
pika-backup # borg gui in rust
|
||||
pwvucontrol # pipewire gui in rust
|
||||
sonusmix # pipewire routing tool in rust
|
||||
wdisplays # wlroots display configurator
|
||||
]
|
||||
++ [
|
||||
# misc utils
|
||||
(ifLaptop brightnessctl)
|
||||
dconf
|
||||
libnotify
|
||||
playerctl
|
||||
wl-clipboard-rs # wl-clipboard in rust
|
||||
];
|
||||
|
||||
xdg = {
|
||||
mime.enable = true;
|
||||
mimeApps = {
|
||||
|
368
modules/home/desktop/niri/niri.nix
Normal file
368
modules/home/desktop/niri/niri.nix
Normal file
@ -0,0 +1,368 @@
|
||||
{
|
||||
config,
|
||||
hostName,
|
||||
launcher,
|
||||
lockscreen,
|
||||
...
|
||||
}: let
|
||||
inherit (config.lib.stylix) colors;
|
||||
inherit (config.stylix) cursor;
|
||||
keyboard =
|
||||
if hostName == "eldrid"
|
||||
then "chromeos"
|
||||
else "platform";
|
||||
xdgPics =
|
||||
config.xdg.userDirs.pictures;
|
||||
in {
|
||||
target = "niri/config.kdl";
|
||||
text = let
|
||||
arrows = {
|
||||
left = "Left";
|
||||
down = "Down";
|
||||
up = "Up";
|
||||
right = "Right";
|
||||
};
|
||||
homerow-arrows = {
|
||||
left = "n";
|
||||
down = "e";
|
||||
up = "i";
|
||||
right = "o";
|
||||
};
|
||||
letters = {
|
||||
first = "Q";
|
||||
second = "W";
|
||||
third = "F";
|
||||
fourth = "P";
|
||||
fifth = "B";
|
||||
sixth = "J";
|
||||
seventh = "L";
|
||||
eighth = "U";
|
||||
ninth = "Y";
|
||||
};
|
||||
numbers = {
|
||||
first = "1";
|
||||
second = "2";
|
||||
third = "3";
|
||||
fourth = "4";
|
||||
fifth = "5";
|
||||
sixth = "6";
|
||||
seventh = "7";
|
||||
eighth = "8";
|
||||
ninth = "9";
|
||||
};
|
||||
genArrowNavigation = keys: ''
|
||||
Mod+${keys.left} { focus-column-left; }
|
||||
Mod+${keys.down} { focus-window-or-workspace-down; }
|
||||
Mod+${keys.up} { focus-window-or-workspace-up; }
|
||||
Mod+${keys.right} { focus-column-right; }
|
||||
Mod+Ctrl+${keys.left} { move-column-left; }
|
||||
Mod+Ctrl+${keys.down} { move-window-down-or-to-workspace-down; }
|
||||
Mod+Ctrl+${keys.up} { move-window-up-or-to-workspace-up; }
|
||||
Mod+Ctrl+${keys.right} { move-column-right; }
|
||||
Mod+Shift+${keys.left} { focus-monitor-left; }
|
||||
Mod+Shift+${keys.down} { focus-monitor-down; }
|
||||
Mod+Shift+${keys.up} { focus-monitor-up; }
|
||||
Mod+Shift+${keys.right} { focus-monitor-right; }
|
||||
Mod+Shift+Ctrl+${keys.left} { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+${keys.down} { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+${keys.up} { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+${keys.right} { move-column-to-monitor-right; }
|
||||
'';
|
||||
genWorkspacesNavigation = keys: ''
|
||||
Mod+${keys.first} { focus-workspace 1; }
|
||||
Mod+${keys.second} { focus-workspace 2; }
|
||||
Mod+${keys.third} { focus-workspace 3; }
|
||||
Mod+${keys.fourth} { focus-workspace 4; }
|
||||
Mod+${keys.fifth} { focus-workspace 5; }
|
||||
Mod+${keys.sixth} { focus-workspace 6; }
|
||||
Mod+${keys.seventh} { focus-workspace 7; }
|
||||
Mod+${keys.eighth} { focus-workspace 8; }
|
||||
Mod+${keys.ninth} { focus-workspace 9; }
|
||||
Mod+Ctrl+Shift+${keys.first} { move-column-to-workspace 1; }
|
||||
Mod+Ctrl+Shift+${keys.second} { move-column-to-workspace 2; }
|
||||
Mod+Ctrl+Shift+${keys.third} { move-column-to-workspace 3; }
|
||||
Mod+Ctrl+Shift+${keys.fourth} { move-column-to-workspace 4; }
|
||||
Mod+Ctrl+Shift+${keys.fifth} { move-column-to-workspace 5; }
|
||||
Mod+Ctrl+Shift+${keys.sixth} { move-column-to-workspace 6; }
|
||||
Mod+Ctrl+Shift+${keys.seventh} { move-column-to-workspace 7; }
|
||||
Mod+Ctrl+Shift+${keys.eighth} { move-column-to-workspace 8; }
|
||||
Mod+Ctrl+Shift+${keys.ninth} { move-column-to-workspace 9; }
|
||||
'';
|
||||
in ''
|
||||
environment {
|
||||
DISPLAY ":123"
|
||||
QT_QPA_PLATFORMTHEME "gtk3"
|
||||
MOZ_ENABLE_WAYLAND "1"
|
||||
MOZ_WEBRENDER "1"
|
||||
GDK_BACKEND "wayland"
|
||||
QT_QPA_PLATFORM "wayland"
|
||||
XDG_SESSION_TYPE "wayland"
|
||||
CLUTTER_BACKEND "wayland"
|
||||
SDL_VIDEODRIVER "wayland"
|
||||
}
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
layout "us,ua"
|
||||
${
|
||||
if (hostName == "dunamis" || hostName == "legion")
|
||||
then "// variant \"colemak_dh_ortho,\""
|
||||
else "variant \"colemak_dh_ortho,\""
|
||||
}
|
||||
}
|
||||
repeat-delay 200
|
||||
repeat-rate 50
|
||||
track-layout "global"
|
||||
}
|
||||
touchpad {
|
||||
// off
|
||||
tap
|
||||
// dwt
|
||||
// dwtp
|
||||
natural-scroll
|
||||
accel-speed 0.2
|
||||
accel-profile "flat"
|
||||
// scroll-method "two-finger"
|
||||
// disabled-on-external-mouse
|
||||
}
|
||||
mouse {
|
||||
// off
|
||||
// natural-scroll
|
||||
accel-speed 0.0
|
||||
accel-profile "flat"
|
||||
// scroll-method "no-scroll"
|
||||
}
|
||||
warp-mouse-to-focus
|
||||
// focus-follows-mouse
|
||||
}
|
||||
output "eDP-1" {
|
||||
// off
|
||||
scale 1.2
|
||||
transform "normal"
|
||||
// position x=1920 y=0
|
||||
}
|
||||
output "Samsung Electric Company S24R65x H4TMA03291" {
|
||||
position x=0 y=0
|
||||
variable-refresh-rate
|
||||
}
|
||||
output "Philips Consumer Electronics Company 27M2N5500 UK02418033254" {
|
||||
mode "2560x1440@${
|
||||
if hostName == "legion"
|
||||
then "144.001"
|
||||
else "180.000"
|
||||
}"
|
||||
variable-refresh-rate
|
||||
position x=0 y=0
|
||||
scale 1.33
|
||||
}
|
||||
output "PNP(AOC) 27V2G5 0x0000026C" {
|
||||
position x=1920 y=0
|
||||
mode "1920x1080@74.973"
|
||||
variable-refresh-rate
|
||||
}
|
||||
|
||||
cursor {
|
||||
xcursor-theme "${cursor.name}"
|
||||
xcursor-size ${toString cursor.size}
|
||||
}
|
||||
|
||||
layout {
|
||||
gaps 6
|
||||
center-focused-column "never" // "on-overflow"
|
||||
preset-column-widths {
|
||||
proportion 0.33333
|
||||
proportion 0.66667
|
||||
}
|
||||
|
||||
// default-column-width { proportion 0.9; }
|
||||
default-column-width { proportion 0.5; }
|
||||
tab-indicator {
|
||||
active-color "#${colors.base04}"
|
||||
inactive-color "#${colors.base03}"
|
||||
corner-radius 4
|
||||
gap 6
|
||||
gaps-between-tabs 3
|
||||
length total-proportion=0.3
|
||||
place-within-column
|
||||
position "left"
|
||||
width 6
|
||||
}
|
||||
focus-ring {
|
||||
// off
|
||||
width 3
|
||||
active-gradient from="#${colors.base0D}" to="#${colors.base0F}" angle=40 relative-to="workspace-view"
|
||||
inactive-color "#${colors.base03}"
|
||||
}
|
||||
struts {
|
||||
left 24
|
||||
right 24
|
||||
}
|
||||
}
|
||||
|
||||
prefer-no-csd
|
||||
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
window-rule {
|
||||
match is-window-cast-target=true
|
||||
focus-ring {
|
||||
width 3
|
||||
active-color "#${colors.base0F}"
|
||||
inactive-color "#${colors.base03}"
|
||||
}
|
||||
border {
|
||||
width 3
|
||||
active-color "#${colors.base0F}"
|
||||
inactive-color "#${colors.base03}"
|
||||
}
|
||||
shadow {
|
||||
on
|
||||
color "#${colors.base0F}"
|
||||
inactive-color "#${colors.base03}"
|
||||
}
|
||||
}
|
||||
|
||||
screenshot-path "${xdgPics}/screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png"
|
||||
|
||||
animations {
|
||||
slowdown 0.8
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match title="Картинка в картинці"
|
||||
match title="Picture-in-Picture"
|
||||
open-floating true
|
||||
}
|
||||
window-rule {
|
||||
match app-id="org.wezfurlong.wezterm"
|
||||
match app-id="com.mitchellh.ghostty"
|
||||
default-column-width { proportion 1.0; }
|
||||
}
|
||||
window-rule {
|
||||
match app-id="re.sonny.Junction"
|
||||
open-floating true
|
||||
open-focused true
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id="com.mitchellh.ghostty"
|
||||
draw-border-with-background false
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||
match app-id=r#"^Bitwarden$"#
|
||||
match app-id="org.telegram.desktop"
|
||||
match app-id="org.signal.Signal"
|
||||
match app-id="WebCord"
|
||||
// block-out-from "screen-capture"
|
||||
block-out-from "screencast"
|
||||
}
|
||||
|
||||
binds {
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
|
||||
Mod+Tab { focus-workspace-previous; }
|
||||
Mod+C { center-column; }
|
||||
Mod+M { maximize-column; }
|
||||
Mod+H { set-column-width "50%"; }
|
||||
Mod+T { set-column-width "33%"; }
|
||||
Mod+Shift+T { set-column-width "67%"; }
|
||||
Mod+V { toggle-column-tabbed-display; }
|
||||
Mod+G { switch-focus-between-floating-and-tiling; }
|
||||
|
||||
Mod+Ctrl+Comma { consume-or-expel-window-left; }
|
||||
Mod+Ctrl+Period { consume-or-expel-window-right; }
|
||||
|
||||
Mod+Ctrl+Q { close-window; }
|
||||
Mod+Ctrl+M { fullscreen-window; }
|
||||
Mod+Ctrl+G { toggle-window-floating; }
|
||||
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
Mod+Comma { set-column-width "-10%"; }
|
||||
Mod+Period { set-column-width "+10%"; }
|
||||
Mod+Shift+Comma { set-window-height "-10%"; }
|
||||
Mod+Shift+Period { set-window-height "+10%"; }
|
||||
|
||||
Mod+Escape { switch-layout "next"; }
|
||||
|
||||
Mod+Return repeat=false { spawn "sh" "-c" "$TERMINAL"; }
|
||||
Mod+Space repeat=false { spawn "${launcher}"; }
|
||||
Mod+Ctrl+L repeat=false { spawn "${lockscreen}"; }
|
||||
Mod+Ctrl+V repeat=false { spawn "copyq" "toggle"; }
|
||||
|
||||
Mod+Shift+W repeat=false { spawn "walker" "-m" "windows"; }
|
||||
|
||||
Mod+Ctrl+Shift+BracketLeft { quit; }
|
||||
Mod+Ctrl+Shift+BracketRight { power-off-monitors; }
|
||||
|
||||
Print { screenshot; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Shift+Print { screenshot-window; }
|
||||
|
||||
// Caps_Lock { spawn "swayosd-client" "--caps-lock"; }
|
||||
// XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "-l" "1.0" "@DEFAULT_AUDIO_SINK@" "5%+"; }
|
||||
// XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "-l" "1.0" "@DEFAULT_AUDIO_SINK@" "5%-"; }
|
||||
// XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
|
||||
// XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "raise"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "lower"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn "swayosd-client" "--input-volume" "mute-toggle"; }
|
||||
XF86AudioPlay allow-when-locked=true { spawn "playerctl" "play-pause"; }
|
||||
XF86AudioPause allow-when-locked=true { spawn "playerctl" "pause"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn "playerctl" "previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn "playerctl" "next"; }
|
||||
|
||||
XF86ScreenSaver allow-when-locked=true { spawn "${lockscreen}"; }
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-"; }
|
||||
Alt+XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+" "-d" "${keyboard}::kbd_backlight"; }
|
||||
Alt+XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-" "-d" "${keyboard}::kbd_backlight"; }
|
||||
XF86KbdBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+" "-d" "${keyboard}::kbd_backlight"; }
|
||||
XF86KbdBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-" "-d" "${keyboard}::kbd_backlight"; }
|
||||
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
|
||||
Mod+Next { focus-workspace-down; }
|
||||
Mod+Prior { focus-workspace-up; }
|
||||
Mod+Ctrl+Next { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+Prior { move-column-to-workspace-up; }
|
||||
Mod+Shift+Next { move-workspace-down; }
|
||||
Mod+Shift+Prior { move-workspace-up; }
|
||||
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
|
||||
Mod+WheelScrollRight { focus-column-right; }
|
||||
Mod+WheelScrollLeft { focus-column-left; }
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
|
||||
Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
|
||||
Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
|
||||
|
||||
${genArrowNavigation arrows}
|
||||
${genArrowNavigation homerow-arrows}
|
||||
${genWorkspacesNavigation letters}
|
||||
${genWorkspacesNavigation numbers}
|
||||
}
|
||||
'';
|
||||
}
|
@ -1,6 +1,20 @@
|
||||
{
|
||||
imports = [
|
||||
./fuzzel
|
||||
./waybar
|
||||
osConfig,
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf mkDefault getExe;
|
||||
inherit (config.lib.stylix) colors;
|
||||
inherit (osConfig.networking) hostName;
|
||||
ifLaptop = mkIf (hostName != "dunamis");
|
||||
in {
|
||||
imports = with inputs; [
|
||||
walker.homeManagerModules.default
|
||||
];
|
||||
# programs.fuzzel = import ./fuzzel {inherit config mkDefault;};
|
||||
programs.walker = import ./walker {inherit config inputs pkgs;};
|
||||
programs.waybar = import ./waybar {inherit colors config getExe ifLaptop pkgs;};
|
||||
}
|
||||
|
304
modules/home/desktop/niri/programs/walker/default.nix
Normal file
304
modules/home/desktop/niri/programs/walker/default.nix
Normal file
@ -0,0 +1,304 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
enable = true;
|
||||
package = pkgs.walker;
|
||||
runAsService = true;
|
||||
config = {
|
||||
activation_mode.labels = "neiotsra";
|
||||
# theme = "stylix";
|
||||
as_window = false;
|
||||
disabled = ["clipboard"];
|
||||
builtins = {
|
||||
applications = {
|
||||
actions.enabled = true;
|
||||
context_aware = true;
|
||||
name = "applications";
|
||||
placeholder = "Applications";
|
||||
prioritize_new = true;
|
||||
refresh = true;
|
||||
show_generic = false;
|
||||
show_icon_when_single = true;
|
||||
show_sub_when_single = true;
|
||||
weight = 5;
|
||||
};
|
||||
calc = {
|
||||
icon = "accessories-calculator";
|
||||
min_chars = 4;
|
||||
name = "calc";
|
||||
placeholder = "Calculator";
|
||||
weight = 5;
|
||||
};
|
||||
clipboard = {
|
||||
image_height = 300;
|
||||
max_entries = 10;
|
||||
name = "clipboard";
|
||||
placeholder = "Clipboard";
|
||||
switcher_only = true;
|
||||
weight = 5;
|
||||
};
|
||||
commands = {
|
||||
icon = "utilities-terminal";
|
||||
name = "commands";
|
||||
placeholder = "Commands";
|
||||
switcher_only = true;
|
||||
weight = 5;
|
||||
};
|
||||
custom_commands = {
|
||||
icon = "utilities-terminal";
|
||||
name = "custom_commands";
|
||||
placeholder = "Custom Commands";
|
||||
weight = 5;
|
||||
};
|
||||
dmenu = {
|
||||
name = "dmenu";
|
||||
placeholder = "Dmenu";
|
||||
switcher_only = true;
|
||||
weight = 5;
|
||||
};
|
||||
emojis = {
|
||||
history = true;
|
||||
name = "emojis";
|
||||
placeholder = "Emojis";
|
||||
switcher_only = true;
|
||||
typeahead = true;
|
||||
weight = 5;
|
||||
};
|
||||
finder = {
|
||||
concurrency = 8;
|
||||
icon = "folder";
|
||||
ignore_gitignore = true;
|
||||
name = "finder";
|
||||
placeholder = "Finder";
|
||||
refresh = true;
|
||||
switcher_only = true;
|
||||
weight = 5;
|
||||
};
|
||||
runner = {
|
||||
generic_entry = false;
|
||||
history = true;
|
||||
icon = "utilities-terminal";
|
||||
name = "runner";
|
||||
placeholder = "Runner";
|
||||
refresh = true;
|
||||
typeahead = true;
|
||||
weight = 5;
|
||||
};
|
||||
ssh = {
|
||||
history = true;
|
||||
icon = "preferences-system-network";
|
||||
name = "ssh";
|
||||
placeholder = "SSH";
|
||||
refresh = true;
|
||||
switcher_only = true;
|
||||
weight = 5;
|
||||
};
|
||||
switcher = {
|
||||
name = "switcher";
|
||||
placeholder = "Switcher";
|
||||
prefix = "/";
|
||||
weight = 5;
|
||||
};
|
||||
websearch = {
|
||||
engines = ["duckduckgo"];
|
||||
icon = "applications-internet";
|
||||
name = "websearch";
|
||||
placeholder = "Websearch";
|
||||
weight = 5;
|
||||
};
|
||||
windows = {
|
||||
icon = "view-restore";
|
||||
name = "windows";
|
||||
placeholder = "Windows";
|
||||
weight = 5;
|
||||
};
|
||||
};
|
||||
disable_click_to_close = false;
|
||||
force_keyboard_focus = true;
|
||||
list = {
|
||||
max_entries = 50;
|
||||
show_initial_entries = true;
|
||||
single_click = true;
|
||||
};
|
||||
search = {
|
||||
delay = 0;
|
||||
force_keyboard_focus = true;
|
||||
history = true;
|
||||
placeholder = "Search...";
|
||||
};
|
||||
};
|
||||
theme = {
|
||||
layout = {
|
||||
ui = {
|
||||
anchors = {
|
||||
bottom = false;
|
||||
left = false;
|
||||
right = false;
|
||||
top = false;
|
||||
};
|
||||
window = {
|
||||
h_align = "center";
|
||||
v_align = "center";
|
||||
box = {
|
||||
width = 450;
|
||||
h_align = "center";
|
||||
v_align = "center";
|
||||
# spacing = 12;
|
||||
orientation = "vertical";
|
||||
search = {
|
||||
margins = {
|
||||
start = 8;
|
||||
top = 8;
|
||||
end = 8;
|
||||
bottom = 0;
|
||||
};
|
||||
h_align = "top";
|
||||
};
|
||||
scroll = {
|
||||
overlay_scrolling = true;
|
||||
list = {
|
||||
margins = {
|
||||
bottom = 8;
|
||||
top = 8;
|
||||
start = 8;
|
||||
end = 8;
|
||||
};
|
||||
item = {
|
||||
icon.theme = "${config.gtk.iconTheme.name}";
|
||||
spacing = 4;
|
||||
activation_label = {
|
||||
x_align = 0.5;
|
||||
y_align = 0.5;
|
||||
width = 32;
|
||||
};
|
||||
text = {
|
||||
h_align = "start";
|
||||
h_expand = true;
|
||||
revert = true;
|
||||
wrap = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
style = let
|
||||
inherit (config.lib.stylix) colors;
|
||||
in ''
|
||||
@define-color base00 #${colors.base00};
|
||||
@define-color base01 #${colors.base01};
|
||||
@define-color base02 #${colors.base02};
|
||||
@define-color base03 #${colors.base03};
|
||||
@define-color base04 #${colors.base04};
|
||||
@define-color base05 #${colors.base05};
|
||||
@define-color base06 #${colors.base06};
|
||||
@define-color base07 #${colors.base07};
|
||||
@define-color base08 #${colors.base08};
|
||||
@define-color base09 #${colors.base09};
|
||||
@define-color base0A #${colors.base0A};
|
||||
@define-color base0B #${colors.base0B};
|
||||
@define-color base0C #${colors.base0C};
|
||||
@define-color base0D #${colors.base0D};
|
||||
@define-color base0E #${colors.base0E};
|
||||
@define-color base0F #${colors.base0F};
|
||||
|
||||
#window,
|
||||
#box,
|
||||
#search,
|
||||
#password,
|
||||
#input,
|
||||
#typeahead,
|
||||
#spinner,
|
||||
#list,
|
||||
child,
|
||||
scrollbar,
|
||||
slider,
|
||||
#item,
|
||||
#text,
|
||||
#label,
|
||||
#sub,
|
||||
#activationlabel {
|
||||
all: unset;
|
||||
}
|
||||
|
||||
#window {
|
||||
background: none;
|
||||
color: @base05;
|
||||
}
|
||||
|
||||
#box {
|
||||
border-radius: 20px;
|
||||
border-width: 4px;
|
||||
border-color: @base0D;
|
||||
background: @base01;
|
||||
}
|
||||
|
||||
#search {
|
||||
background: @base02;
|
||||
border-radius: 12px 12px 6px 6px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#password,
|
||||
#input,
|
||||
#typeahead {
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
#input > *:first-child,
|
||||
#typeahead > *:first-child {
|
||||
margin-right: 12px;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#typeahead {
|
||||
color: @base05;
|
||||
}
|
||||
|
||||
#input placeholder {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#list {
|
||||
padding: 8px;
|
||||
border-radius: 6px 6px 12px 12px;
|
||||
background: @base02;
|
||||
}
|
||||
|
||||
child {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
child:selected,
|
||||
child:hover {
|
||||
box-shadow: none;
|
||||
border-radius: 8px;
|
||||
background: @base03;
|
||||
}
|
||||
|
||||
#item {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
#sub {
|
||||
font-size: smaller;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#activationlabel {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.activation #activationlabel {
|
||||
opacity: 1;
|
||||
color: @base05;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
@ -5,15 +5,14 @@
|
||||
lockscreen,
|
||||
...
|
||||
}: {
|
||||
copyq.enable = true;
|
||||
copyq.package = perSystem.nixpkgs-stable.copyq;
|
||||
swaync = import ./swaync;
|
||||
network-manager-applet.enable = true;
|
||||
playerctld.enable = true;
|
||||
swayosd = {
|
||||
enable = true;
|
||||
topMargin = 0.8;
|
||||
};
|
||||
wpaperd.enable = true;
|
||||
copyq = {
|
||||
enable = true;
|
||||
package = perSystem.nixpkgs-stable.copyq;
|
||||
};
|
||||
gnome-keyring = {
|
||||
enable = true;
|
||||
components = ["secrets"];
|
||||
@ -29,189 +28,16 @@
|
||||
night = 3000;
|
||||
};
|
||||
};
|
||||
swayosd = {
|
||||
enable = true;
|
||||
topMargin = 0.8;
|
||||
};
|
||||
udiskie = {
|
||||
enable = true;
|
||||
automount = false;
|
||||
notify = true;
|
||||
tray = "auto";
|
||||
};
|
||||
swaync = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cssPriority = "user";
|
||||
image-visibility = "when-available";
|
||||
keyboard-shortcut = true;
|
||||
relative-timestamps = true;
|
||||
timeout = 5;
|
||||
timeout-low = 5;
|
||||
timeout-critical = 0;
|
||||
script-fail-notify = true;
|
||||
transition-time = 200;
|
||||
|
||||
# Layer settings
|
||||
layer-shell = true;
|
||||
layer = "overlay";
|
||||
control-center-layer = "overlay";
|
||||
|
||||
# Notification settings
|
||||
positionX = "right";
|
||||
positionY = "top";
|
||||
notification-2fa-action = true;
|
||||
notification-inline-replies = false;
|
||||
notification-icon-size = 32;
|
||||
notification-body-image-height = 100;
|
||||
notification-body-image-width = 200;
|
||||
notification-window-width = 400;
|
||||
|
||||
# Control center settings
|
||||
control-center-positionX = "right";
|
||||
control-center-positionY = "top";
|
||||
control-center-width = 500;
|
||||
control-center-exclusive-zone = true;
|
||||
fit-to-screen = true;
|
||||
hide-on-action = true;
|
||||
hide-on-clear = false;
|
||||
|
||||
# Widget settings
|
||||
widgets = [
|
||||
"title"
|
||||
"dnd"
|
||||
"notifications"
|
||||
"mpris"
|
||||
];
|
||||
|
||||
widget-config = {
|
||||
title = {
|
||||
text = "Notifications";
|
||||
clear-all-button = true;
|
||||
button-text = "Clear All";
|
||||
};
|
||||
dnd = {
|
||||
text = "Do Not Disturb";
|
||||
};
|
||||
mpris = {
|
||||
image-size = 96;
|
||||
image-radius = 12;
|
||||
blur = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
/*** Global ***/
|
||||
progress,
|
||||
progressbar,
|
||||
trough {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.app-icon,
|
||||
.image {
|
||||
-gtk-icon-effect: none;
|
||||
}
|
||||
|
||||
.notification-action {
|
||||
border-radius: 12px;
|
||||
margin: 0.5rem;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
margin: 24px;
|
||||
padding: 0.2rem;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
/*** Notifications ***/
|
||||
.notification-group.collapsed
|
||||
.notification-row:not(:last-child)
|
||||
.notification-action,
|
||||
.notification-group.collapsed
|
||||
.notification-row:not(:last-child)
|
||||
.notification-default-action {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.trough {
|
||||
margin: 4px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.notification,
|
||||
.notification.low,
|
||||
.notification.normal,
|
||||
.notification.critical,
|
||||
.control-center {
|
||||
margin: 16px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications,
|
||||
.notification-content {
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.control-center-list {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/*** Widgets ***/
|
||||
/* Title widget */
|
||||
.widget-title {
|
||||
margin: 0.5rem;
|
||||
}
|
||||
|
||||
.widget-title > label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.widget-title > button {
|
||||
border-radius: 16px;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
/* DND Widget */
|
||||
.widget-dnd {
|
||||
margin: 0.5rem;
|
||||
}
|
||||
|
||||
.widget-dnd > label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
border-radius: 16px;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
|
||||
/* Mpris widget */
|
||||
.widget-mpris .widget-mpris-player {
|
||||
border-radius: 16px;
|
||||
margin: 0.5rem;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .widget-mpris-album-art {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .widget-mpris-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .widget-mpris-subtitle {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player > box > button {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 16px;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
'';
|
||||
};
|
||||
hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
177
modules/home/desktop/niri/services/swaync/default.nix
Normal file
177
modules/home/desktop/niri/services/swaync/default.nix
Normal file
@ -0,0 +1,177 @@
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
cssPriority = "user";
|
||||
image-visibility = "when-available";
|
||||
keyboard-shortcut = true;
|
||||
relative-timestamps = true;
|
||||
timeout = 5;
|
||||
timeout-low = 5;
|
||||
timeout-critical = 0;
|
||||
script-fail-notify = true;
|
||||
transition-time = 200;
|
||||
|
||||
# Layer settings
|
||||
layer-shell = true;
|
||||
layer = "overlay";
|
||||
control-center-layer = "overlay";
|
||||
|
||||
# Notification settings
|
||||
positionX = "right";
|
||||
positionY = "top";
|
||||
notification-2fa-action = true;
|
||||
notification-inline-replies = false;
|
||||
notification-icon-size = 32;
|
||||
notification-body-image-height = 100;
|
||||
notification-body-image-width = 200;
|
||||
notification-window-width = 400;
|
||||
|
||||
# Control center settings
|
||||
control-center-positionX = "right";
|
||||
control-center-positionY = "top";
|
||||
control-center-width = 500;
|
||||
control-center-exclusive-zone = true;
|
||||
fit-to-screen = true;
|
||||
hide-on-action = true;
|
||||
hide-on-clear = false;
|
||||
|
||||
# Widget settings
|
||||
widgets = [
|
||||
"title"
|
||||
"dnd"
|
||||
"notifications"
|
||||
"mpris"
|
||||
];
|
||||
|
||||
widget-config = {
|
||||
title = {
|
||||
text = "Notifications";
|
||||
clear-all-button = true;
|
||||
button-text = "Clear All";
|
||||
};
|
||||
dnd = {
|
||||
text = "Do Not Disturb";
|
||||
};
|
||||
mpris = {
|
||||
image-size = 96;
|
||||
image-radius = 12;
|
||||
blur = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
/*** Global ***/
|
||||
progress,
|
||||
progressbar,
|
||||
trough {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.app-icon,
|
||||
.image {
|
||||
-gtk-icon-effect: none;
|
||||
}
|
||||
|
||||
.notification-action {
|
||||
border-radius: 12px;
|
||||
margin: 0.5rem;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
margin: 24px;
|
||||
padding: 0.2rem;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
/*** Notifications ***/
|
||||
.notification-group.collapsed
|
||||
.notification-row:not(:last-child)
|
||||
.notification-action,
|
||||
.notification-group.collapsed
|
||||
.notification-row:not(:last-child)
|
||||
.notification-default-action {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.trough {
|
||||
margin: 4px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.notification,
|
||||
.notification.low,
|
||||
.notification.normal,
|
||||
.notification.critical,
|
||||
.control-center {
|
||||
margin: 16px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications,
|
||||
.notification-content {
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.control-center-list {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/*** Widgets ***/
|
||||
/* Title widget */
|
||||
.widget-title {
|
||||
margin: 0.5rem;
|
||||
}
|
||||
|
||||
.widget-title > label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.widget-title > button {
|
||||
border-radius: 16px;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
/* DND Widget */
|
||||
.widget-dnd {
|
||||
margin: 0.5rem;
|
||||
}
|
||||
|
||||
.widget-dnd > label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
border-radius: 16px;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
|
||||
/* Mpris widget */
|
||||
.widget-mpris .widget-mpris-player {
|
||||
border-radius: 16px;
|
||||
margin: 0.5rem;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .widget-mpris-album-art {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .widget-mpris-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .widget-mpris-subtitle {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player > box > button {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 16px;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
'';
|
||||
}
|
Reference in New Issue
Block a user