Compare commits
6 commits
e94dee0c7f
...
ff6b65c5ca
| Author | SHA1 | Date | |
|---|---|---|---|
| ff6b65c5ca | |||
| 345740c213 | |||
| 0484a810f8 | |||
| 04d2cb74b1 | |||
| 67677d6ef6 | |||
| 6f99802fd2 |
27 changed files with 1380 additions and 152 deletions
|
|
@ -1,11 +1,2 @@
|
|||
{
|
||||
"languages": {
|
||||
"Nix": {
|
||||
"formatter": {
|
||||
"external": {
|
||||
"command": "alejandra"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
16
README.md
16
README.md
|
|
@ -14,11 +14,11 @@ Hey, you. This is my nixos configurations.
|
|||
|
||||
- david@Tytonidae
|
||||
|
||||
| Specialisation | DE / WM | Shell | Editor | Terminal | Launcher | Browser | DM |
|
||||
| -------------- | --------- | ----------- | ------ | -------- | --------------- | ------- | -------------- |
|
||||
| default | niri | fish + bash | helix | ghostty | fuzzel | firefox | gdm |
|
||||
| cosmic | cosmic de | fish + bash | helix | ghostty | cosmic-launcher | firefox | cosmic-greeter |
|
||||
| kde | kde | fish + bash | helix | ghostty | - | firefox | sddm |
|
||||
| Specialisation | DE / WM | Shell | Editor | Terminal | Launcher | Browser | DM |
|
||||
| -------------- | --------- | ----------- | ------ | -------- | --------------- | ------- | --------------- |
|
||||
| default | niri | fish + bash | helix | ghostty | fuzzel | firefox | greetd + regret |
|
||||
| cosmic | cosmic de | fish + bash | helix | ghostty | cosmic-launcher | firefox | cosmic-greeter |
|
||||
| kde | kde | fish + bash | helix | ghostty | - | firefox | sddm |
|
||||
|
||||
- david@Akun
|
||||
|
||||
|
|
@ -28,9 +28,9 @@ Hey, you. This is my nixos configurations.
|
|||
|
||||
- alice@Cape
|
||||
|
||||
| Specialisation | DE / WM | Shell | Editor | Terminal | Launcher | Browser | DM |
|
||||
| -------------- | ------- | ----------- | ------ | -------- | -------- | ------- | --- |
|
||||
| default | - | fish + bash | helix | - | - | - | - |
|
||||
| Specialisation | DE / WM | Shell | Editor | Terminal | Launcher | Browser | DM |
|
||||
| -------------- | ------- | ----------- | ------ | -------- | -------- | ------- | -- |
|
||||
| default | - | fish + bash | helix | - | - | - | - |
|
||||
|
||||
## FlakE OutputS and StructurE
|
||||
|
||||
|
|
|
|||
120
flake.lock
generated
120
flake.lock
generated
|
|
@ -90,11 +90,11 @@
|
|||
"bt-tracker": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1745971833,
|
||||
"narHash": "sha256-Hmt7smJEB2aKw3XW02Vzgr0bTULpM1CtSy1MTecmIxs=",
|
||||
"lastModified": 1746144670,
|
||||
"narHash": "sha256-l1Roga5tbx5775OQDD34lQAntmlU56A3HKqJrK86P2I=",
|
||||
"owner": "XIU2",
|
||||
"repo": "TrackersListCollection",
|
||||
"rev": "10919722f131dbac0413cdbd385ff0b634d3d7fe",
|
||||
"rev": "0a9ac8d11e9e67649edf33b378190e17ce1e7e9e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -113,11 +113,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741008028,
|
||||
"narHash": "sha256-Dypah+fVZ30hCRG96hu1Vmi0DHQSv6XKfy8S6kiS2CQ=",
|
||||
"lastModified": 1746104585,
|
||||
"narHash": "sha256-wfrNTYEx5ZfTvUKquiBc+hW44wg3VrPPMcPLnQ0q7bY=",
|
||||
"owner": "daeuniverse",
|
||||
"repo": "flake.nix",
|
||||
"rev": "2d2ea1661c89efc9c12781572b95f4bb700f2a4a",
|
||||
"rev": "44f8089999107b0bfe4b7cf909f56d8da67ec951",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -352,11 +352,11 @@
|
|||
"zon2nix": "zon2nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745971585,
|
||||
"narHash": "sha256-v8QVD+V7CCVZ+QHk2mdT2X3U9FIe2vEoOVsgnQBjZ5I=",
|
||||
"lastModified": 1746118269,
|
||||
"narHash": "sha256-nWCxF4Fl53yaJzxlHVDkDZNrWGsrYk9f5ondtMa+S04=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "b3edc88010e38946072a58fe336081ed104c9d44",
|
||||
"rev": "e79bf71f2322fa5d54af07f2985f8460290f2085",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -441,11 +441,11 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745933300,
|
||||
"narHash": "sha256-BJpxqZar6vrmv1MtZIjmBa7x+0HEP8kmYeFejz7m2uc=",
|
||||
"lastModified": 1746132885,
|
||||
"narHash": "sha256-naxkk3EcVXP8gPeG/mQq2i37ITvAZs1AKw7K7u5DXuE=",
|
||||
"owner": "helix-editor",
|
||||
"repo": "helix",
|
||||
"rev": "1c32fb2d4df3f06f96ca33db7d9f9b15297c7f8d",
|
||||
"rev": "aa3fad84ef136b482eb5f84abbf109f25af9700a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -462,11 +462,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745987135,
|
||||
"narHash": "sha256-8Up4QPuMZEJBU0eefAY+nUe7DYKQQzvaHnMpNdwRgKA=",
|
||||
"lastModified": 1746134275,
|
||||
"narHash": "sha256-sxfY7TIP59o2hcueanoRAtg833PiNroZkQDwlKJxGvs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "d2b3e6c83d457aa0e7f9344c61c3fed32bad0f7e",
|
||||
"rev": "015f1913109d44c36e683b55f0e47e283b383caa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -486,11 +486,11 @@
|
|||
"rust-overlay": "rust-overlay_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745943971,
|
||||
"narHash": "sha256-syIS3vBo7DX/cP49bfZPYmw3vhMCmyrnD6HiUlOAvx8=",
|
||||
"lastModified": 1746133891,
|
||||
"narHash": "sha256-ZZVz8ZPa+T9/pKt3khNKZ79dya5qWX1nMhJ1D46vpE8=",
|
||||
"owner": "jj-vcs",
|
||||
"repo": "jj",
|
||||
"rev": "3ab9e098d778969a91d46290615c436ab41d71f9",
|
||||
"rev": "0eceed9832d53b8e870123c88d1c1f0514fb061b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -550,11 +550,11 @@
|
|||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745965399,
|
||||
"narHash": "sha256-RxoK/Eo9cWGtGMl3enYu/LH/SAcFGR2PWuAifQm4dUc=",
|
||||
"lastModified": 1746142190,
|
||||
"narHash": "sha256-t36K3TWLMRWoGyjYyo+H8bBquDcp4orZqNZVagWNjwY=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "bc29338ba733e4c1b94c3ed134baabfea587627e",
|
||||
"rev": "af701c1c16c289b1b14f333d844b4f756308d244",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -583,11 +583,11 @@
|
|||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1745913113,
|
||||
"narHash": "sha256-/Iph65fWHox7tVyfzw0+AGyCqL2FGuHSt+xjFUsxbOk=",
|
||||
"lastModified": 1746124654,
|
||||
"narHash": "sha256-LmhkAt2KLvf8lp+kEUQuTFmmv7iXO8IkwwSaPasfXJw=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "5f117c61dc4dd91564e02b32836e98dd0e648246",
|
||||
"rev": "6c9705dd4b2eaba25f024d1a3efd7943fd393632",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -604,11 +604,11 @@
|
|||
"rust-overlay": "rust-overlay_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745924915,
|
||||
"narHash": "sha256-RuMUtaplJkaAtqkdG1+cD3trqmO2ykKqfK+3+HXPUVA=",
|
||||
"lastModified": 1746109800,
|
||||
"narHash": "sha256-sjDpqdvbQaiA6OAsgLE4niz6hmmCpoUH0cl5zyfu6FI=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "329a9d639f0418cce05937a823f43b2b64191653",
|
||||
"rev": "9fe1aa7b6a1043003b38f36626dd29b52247d720",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -635,11 +635,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1745794561,
|
||||
"narHash": "sha256-T36rUZHUART00h3dW4sV5tv4MrXKT7aWjNfHiZz7OHg=",
|
||||
"lastModified": 1745930157,
|
||||
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5461b7fa65f3ca74cef60be837fd559a8918eaa0",
|
||||
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -682,11 +682,11 @@
|
|||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1745868005,
|
||||
"narHash": "sha256-hZScOyQphT4RUmSEJX+2OxjIlGgLwSd8iW1LNtAWIOs=",
|
||||
"lastModified": 1746055187,
|
||||
"narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "330d0a4167924b43f31cc9406df363f71b768a02",
|
||||
"rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -698,11 +698,11 @@
|
|||
},
|
||||
"nixpkgs-stable_3": {
|
||||
"locked": {
|
||||
"lastModified": 1745742390,
|
||||
"narHash": "sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus=",
|
||||
"lastModified": 1746055187,
|
||||
"narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "26245db0cb552047418cfcef9a25da91b222d6c7",
|
||||
"rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -714,11 +714,11 @@
|
|||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1745930157,
|
||||
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
|
||||
"lastModified": 1746064326,
|
||||
"narHash": "sha256-r7IZkN9NhK/IO9/J6D9ih2P1OXb67nr5HaQ1YAte18w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
|
||||
"rev": "91bf6dffa21c7709607c9fdbf9a6acb44e7a0a5d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -738,11 +738,11 @@
|
|||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745459908,
|
||||
"narHash": "sha256-bWqgohVf/py9EW3bLS/dYbenD2p9N2/Qsw1+CJk1S04=",
|
||||
"lastModified": 1746056780,
|
||||
"narHash": "sha256-/emueQGaoT4vu0QjU9LDOG5roxRSfdY0K2KkxuzazcM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "dbc4ba3233b2bf951521177bf0ee0a7679959035",
|
||||
"rev": "d476cd0972dd6242d76374fcc277e6735715c167",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -754,11 +754,11 @@
|
|||
"nur-rycee": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1745752599,
|
||||
"narHash": "sha256-vX5uq4wv7FeNeeFtsTPXQ9n2hd92NFXI+u9sg1K8OhA=",
|
||||
"lastModified": 1746158597,
|
||||
"narHash": "sha256-IugPXmlzFdAMxeqACtd40yLslezVDxUqPvpEn5LWcp4=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "0388c30f59e860307b2ef0ba93f38d2e525a153e",
|
||||
"rev": "47711ca43fc3f91fa566038cd2681812c6c3252d",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -768,23 +768,6 @@
|
|||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"oskars-dotfiles": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743338345,
|
||||
"narHash": "sha256-7eOm26Y7nybMFe6uNbw4yPFgMd+CLyZyByXvpAvqmUo=",
|
||||
"owner": "oskardotglobal",
|
||||
"repo": ".dotfiles",
|
||||
"rev": "182de5a67cd6fd30a9450d6bb7d5dd4d41272c5f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oskardotglobal",
|
||||
"ref": "nix",
|
||||
"repo": ".dotfiles",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"betterfox-nix": "betterfox-nix",
|
||||
|
|
@ -804,7 +787,6 @@
|
|||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nur-rycee": "nur-rycee",
|
||||
"oskars-dotfiles": "oskars-dotfiles",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
|
|
@ -859,11 +841,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745894113,
|
||||
"narHash": "sha256-dxO3caQZMv/pMtcuXdi+SnAtyki6HFbSf1IpgQPXZYc=",
|
||||
"lastModified": 1746067100,
|
||||
"narHash": "sha256-6JeEbboDvRjLwB9kzCnmWj+f+ZnMtKOe5c2F1VBpaTs=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "e552fe1b16ffafd678ebe061c22b117e050769ed",
|
||||
"rev": "026e8fedefd6b167d92ed04b195c658d95ffc7a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -920,11 +902,11 @@
|
|||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745962538,
|
||||
"narHash": "sha256-UmQxI4ocPZUVHuxtaQN3zNNBU8KLK9x2gXl2kWUhMKY=",
|
||||
"lastModified": 1746158690,
|
||||
"narHash": "sha256-Pe2emz36QL8GOILXvvmH/agqkspZFrcOrQxv6uufaEc=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "764fd32955e79f2742a7975f0150175f93add2fb",
|
||||
"rev": "bc38629511dd9cc78c5ca37a6e546fa66330d50e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -35,14 +35,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
oskars-dotfiles = {
|
||||
type = "github";
|
||||
owner = "oskardotglobal";
|
||||
repo = ".dotfiles";
|
||||
ref = "nix";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
betterfox-nix = {
|
||||
type = "github";
|
||||
owner = "HeitorAugustoLN";
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@
|
|||
rootPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./niri.nix
|
||||
];
|
||||
youthlic = {
|
||||
xdg-dirs.enable = true;
|
||||
programs = let
|
||||
|
|
@ -46,7 +49,6 @@
|
|||
accounts.email.enable = true;
|
||||
programs = {
|
||||
openssh.enable = true;
|
||||
niri.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
21
home/david/configurations/Akun/niri.nix
Normal file
21
home/david/configurations/Akun/niri.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{inputs, ...}: let
|
||||
inherit (inputs.niri-flake.lib.kdl) node leaf plain flag;
|
||||
in {
|
||||
david.programs.niri = {
|
||||
enable = true;
|
||||
extraConfig = let
|
||||
output = node "output";
|
||||
in [
|
||||
(output "eDP-1" [
|
||||
(leaf "mode" "1920x1200@60.018")
|
||||
(leaf "scale" 1.0)
|
||||
(flag "focus-at-startup")
|
||||
(leaf "position" {
|
||||
x = 0;
|
||||
y = 0;
|
||||
})
|
||||
(leaf "transform" "normal")
|
||||
])
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -6,6 +6,9 @@
|
|||
unixName,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./niri.nix
|
||||
];
|
||||
youthlic = {
|
||||
xdg-dirs.enable = true;
|
||||
programs = let
|
||||
|
|
@ -49,7 +52,6 @@
|
|||
wallpaper.enable = true;
|
||||
accounts.email.enable = true;
|
||||
programs = {
|
||||
niri.enable = true;
|
||||
openssh.enable = true;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
58
home/david/configurations/Tytonidae/niri.nix
Normal file
58
home/david/configurations/Tytonidae/niri.nix
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{inputs, ...}: let
|
||||
inherit (inputs.niri-flake.lib.kdl) node leaf plain flag;
|
||||
in {
|
||||
david.programs.niri = {
|
||||
enable = true;
|
||||
extraConfig = let
|
||||
output = node "output";
|
||||
in [
|
||||
(output "DP-1" [
|
||||
(leaf "mode" "2560x1440@169.900")
|
||||
(leaf "scale" 1.0)
|
||||
(leaf "position" {
|
||||
x = 0;
|
||||
y = 0;
|
||||
})
|
||||
(leaf "transform" "normal")
|
||||
(flag "focus-at-startup")
|
||||
])
|
||||
(output "eDP-1" [
|
||||
(leaf "mode" "2560x1440@165.003")
|
||||
(leaf "scale" 1.5)
|
||||
(leaf "position" {
|
||||
x = 2560;
|
||||
y = 0;
|
||||
})
|
||||
(leaf "transform" "normal")
|
||||
])
|
||||
];
|
||||
# settings = {
|
||||
# outputs = {
|
||||
# DP-1 = {
|
||||
# mode = {
|
||||
# width = 2560;
|
||||
# height = 1440;
|
||||
# refresh = 169.900;
|
||||
# };
|
||||
# scale = 1;
|
||||
# position = {
|
||||
# x = 0;
|
||||
# y = 0;
|
||||
# };
|
||||
# };
|
||||
# eDP-1 = {
|
||||
# mode = {
|
||||
# width = 2560;
|
||||
# height = 1440;
|
||||
# refresh = 165.003;
|
||||
# };
|
||||
# scale = 1.5;
|
||||
# position = {
|
||||
# x = 2560;
|
||||
# y = 0;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
};
|
||||
}
|
||||
561
home/david/modules/programs/niri/config.nix
Normal file
561
home/david/modules/programs/niri/config.nix
Normal file
|
|
@ -0,0 +1,561 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
osConfig,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) getExe getExe';
|
||||
inherit
|
||||
(inputs.niri-flake.lib.kdl)
|
||||
# node with args, props and children
|
||||
# node:: \lambda name -> [argOrProp] -> [child] -> Output
|
||||
# arg: single value
|
||||
# prop: attr contains one or more key-value pair
|
||||
# children: node
|
||||
node
|
||||
# node without children
|
||||
# leaf:: \lambda name -> [argOrProp] -> Output
|
||||
leaf
|
||||
# node only name
|
||||
# flag:: \lambda name -> Output
|
||||
flag
|
||||
# node without args/props
|
||||
# plain:: \lambda name -> [child] -> Output
|
||||
plain
|
||||
;
|
||||
|
||||
DISPLAY = ":1";
|
||||
|
||||
bash = getExe config.programs.bash.package;
|
||||
swaylock = getExe config.programs.swaylock.package;
|
||||
fuzzel = getExe config.programs.fuzzel.package;
|
||||
waybar = getExe config.programs.waybar.package;
|
||||
swaync = getExe config.services.swaync.package;
|
||||
fcitx5 = getExe' osConfig.i18n.inputMethod.package "fcitx5";
|
||||
|
||||
polkit-kde-agent = getExe' pkgs.kdePackages.polkit-kde-agent-1 "polkit-kde-agent";
|
||||
wpctl = getExe' pkgs.wireplumber "wpctl";
|
||||
swaybg = getExe pkgs.swaybg;
|
||||
xwayland-satellite = getExe pkgs.xwayland-satellite;
|
||||
ghostty = getExe config.programs.ghostty.package;
|
||||
wl-paste = getExe' pkgs.wl-clipboard "wl-paste";
|
||||
wl-copy = getExe' pkgs.wl-clipboard "wl-copy";
|
||||
cliphist = getExe' pkgs.cliphist "cliphist";
|
||||
in
|
||||
(
|
||||
let
|
||||
spawn = leaf "spawn";
|
||||
in [
|
||||
(plain "binds" [
|
||||
(plain "Mod+V" [
|
||||
(spawn [bash "-c" "${cliphist} list | ${fuzzel} --dmenu | ${cliphist} decode | ${wl-copy}"])
|
||||
])
|
||||
(plain "Mod+Shift+P" [
|
||||
(spawn [swaylock "--screenshots" "--clock" "--indicator" "--indicator-radius" "100" "--indicator-thickness" "7" "--effect-blur" "7x5" "--effect-vignette" "0.5:0.5" "--grace" "2" "--fade-in" "0.5"])
|
||||
])
|
||||
(plain "Mod+Shift+Slash" [
|
||||
(flag "show-hotkey-overlay")
|
||||
])
|
||||
(plain "Mod+T" [
|
||||
(spawn [
|
||||
ghostty
|
||||
])
|
||||
])
|
||||
(plain "Mod+Shift+T" [
|
||||
(flag "toggle-column-tabbed-display")
|
||||
])
|
||||
(plain "Mod+Space" [
|
||||
(spawn fuzzel)
|
||||
])
|
||||
(node "XF86AudioRaiseVolume" {allow-when-locked = true;} [
|
||||
(spawn [wpctl "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"])
|
||||
])
|
||||
(node "XF86AudioLowerVolume" {allow-when-locked = true;} [
|
||||
(spawn [wpctl "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"])
|
||||
])
|
||||
(node "XF86AudioMute" {allow-when-locked = true;} [
|
||||
(spawn [wpctl "set-volume" "@DEFAULT_AUDIO_SINK@" "toggle"])
|
||||
])
|
||||
(node "XF86AudioMicMute" {allow-when-locked = true;} [
|
||||
(spawn [wpctl "set-volume" "@DEFAULT_AUDIO_SOURCE@" "toggle"])
|
||||
])
|
||||
(plain "Mod+Q" [
|
||||
(flag "close-window")
|
||||
])
|
||||
(node "Mod+O" {repeat = false;} [
|
||||
(flag "toggle-overview")
|
||||
])
|
||||
(plain "Mod+Left" [
|
||||
(flag "focus-column-left")
|
||||
])
|
||||
(plain "Mod+Down" [
|
||||
(flag "focus-window-down")
|
||||
])
|
||||
(plain "Mod+Up" [
|
||||
(flag "focus-window-up")
|
||||
])
|
||||
(plain "Mod+Right" [
|
||||
(flag "focus-column-right")
|
||||
])
|
||||
(plain "Mod+H" [
|
||||
(flag "focus-column-or-monitor-left")
|
||||
])
|
||||
(plain "Mod+J" [
|
||||
(flag "focus-window-or-workspace-down")
|
||||
])
|
||||
(plain "Mod+K" [
|
||||
(flag "focus-window-or-workspace-up")
|
||||
])
|
||||
(plain "Mod+L" [
|
||||
(flag "focus-column-or-monitor-right")
|
||||
])
|
||||
(plain "Mod+Shift+Left" [
|
||||
(flag "move-column-left")
|
||||
])
|
||||
(plain "Mod+Shift+Down" [
|
||||
(flag "move-window-down")
|
||||
])
|
||||
(plain "Mod+Shift+Up" [
|
||||
(flag "move-window-up")
|
||||
])
|
||||
(plain "Mod+Shift+Right" [
|
||||
(flag "move-column-right")
|
||||
])
|
||||
(plain "Mod+Shift+H" [
|
||||
(flag "move-column-left-or-to-monitor-left")
|
||||
])
|
||||
(plain "Mod+Shift+J" [
|
||||
(flag "move-window-down-or-to-workspace-down")
|
||||
])
|
||||
(plain "Mod+Shift+K" [
|
||||
(flag "move-window-up-or-to-workspace-up")
|
||||
])
|
||||
(plain "Mod+Shift+L" [
|
||||
(flag "move-column-right-or-to-monitor-right")
|
||||
])
|
||||
(plain "Mod+Home" [
|
||||
(flag "focus-column-first")
|
||||
])
|
||||
(plain "Mod+End" [
|
||||
(flag "focus-column-last")
|
||||
])
|
||||
(plain "Mod+Ctrl+Home" [
|
||||
(flag "move-column-to-first")
|
||||
])
|
||||
(plain "Mod+Ctrl+End" [
|
||||
(flag "move-column-to-last")
|
||||
])
|
||||
(plain "Mod+Ctrl+Left" [
|
||||
(flag "focus-monitor-left")
|
||||
])
|
||||
(plain "Mod+Ctrl+Down" [
|
||||
(flag "focus-monitor-down")
|
||||
])
|
||||
(plain "Mod+Ctrl+Up" [
|
||||
(flag "focus-monitor-up")
|
||||
])
|
||||
(plain "Mod+Ctrl+Right" [
|
||||
(flag "focus-monitor-right")
|
||||
])
|
||||
(plain "Mod+Ctrl+H" [
|
||||
(flag "focus-monitor-left")
|
||||
])
|
||||
(plain "Mod+Ctrl+J" [
|
||||
(flag "focus-monitor-down")
|
||||
])
|
||||
(plain "Mod+Ctrl+K" [
|
||||
(flag "focus-monitor-up")
|
||||
])
|
||||
(plain "Mod+Ctrl+L" [
|
||||
(flag "focus-monitor-right")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+Left" [
|
||||
(flag "move-column-to-monitor-left")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+Down" [
|
||||
(flag "move-column-to-monitor-down")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+Up" [
|
||||
(flag "move-column-to-monitor-up")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+Right" [
|
||||
(flag "move-column-to-monitor-right")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+H" [
|
||||
(flag "move-column-to-monitor-left")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+J" [
|
||||
(flag "move-column-to-monitor-down")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+K" [
|
||||
(flag "move-column-to-monitor-up")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+L" [
|
||||
(flag "move-column-to-monitor-right")
|
||||
])
|
||||
(plain "Mod+Page_Down" [
|
||||
(flag "focus-workspace-down")
|
||||
])
|
||||
(plain "Mod+Page_Up" [
|
||||
(flag "focus-workspace-up")
|
||||
])
|
||||
(plain "Mod+U" [
|
||||
(flag "focus-workspace-down")
|
||||
])
|
||||
(plain "Mod+I" [
|
||||
(flag "focus-workspace-up")
|
||||
])
|
||||
(plain "Mod+Shift+Page_Down" [
|
||||
(flag "move-column-to-workspace-down")
|
||||
])
|
||||
(plain "Mod+Shift+Page_Up" [
|
||||
(flag "move-column-to-workspace-up")
|
||||
])
|
||||
(plain "Mod+Shift+U" [
|
||||
(flag "move-column-to-workspace-down")
|
||||
])
|
||||
(plain "Mod+Shift+I" [
|
||||
(flag "move-column-to-workspace-up")
|
||||
])
|
||||
(plain "Mod+Ctrl+Page_Down" [
|
||||
(flag "move-workspace-down")
|
||||
])
|
||||
(plain "Mod+Ctrl+Page_Up" [
|
||||
(flag "move-workspace-up")
|
||||
])
|
||||
(plain "Mod+Ctrl+U" [
|
||||
(flag "move-workspace-down")
|
||||
])
|
||||
(plain "Mod+Ctrl+I" [
|
||||
(flag "move-workspace-up")
|
||||
])
|
||||
(node "Mod+Shift+WheelScrollDown" {cooldown-ms = 150;} [
|
||||
(flag "focus-workspace-down")
|
||||
])
|
||||
(node "Mod+Shift+WheelScrollUp" {cooldown-ms = 150;} [
|
||||
(flag "focus-workspace-up")
|
||||
])
|
||||
(plain "Mod+WheelScrollDown" [
|
||||
(flag "focus-column-right")
|
||||
])
|
||||
(plain "Mod+WheelScrollUp" [
|
||||
(flag "focus-column-left")
|
||||
])
|
||||
(plain "Mod+1" [
|
||||
(leaf "focus-workspace" 1)
|
||||
])
|
||||
(plain "Mod+2" [
|
||||
(leaf "focus-workspace" 2)
|
||||
])
|
||||
(plain "Mod+3" [
|
||||
(leaf "focus-workspace" 3)
|
||||
])
|
||||
(plain "Mod+4" [
|
||||
(leaf "focus-workspace" 4)
|
||||
])
|
||||
(plain "Mod+5" [
|
||||
(leaf "focus-workspace" 5)
|
||||
])
|
||||
(plain "Mod+6" [
|
||||
(leaf "focus-workspace" 6)
|
||||
])
|
||||
(plain "Mod+7" [
|
||||
(leaf "focus-workspace" 7)
|
||||
])
|
||||
(plain "Mod+8" [
|
||||
(leaf "focus-workspace" 8)
|
||||
])
|
||||
(plain "Mod+9" [
|
||||
(leaf "focus-workspace" 9)
|
||||
])
|
||||
(plain "Mod+Shift+1" [
|
||||
(leaf "move-column-to-workspace" 1)
|
||||
])
|
||||
(plain "Mod+Shift+2" [
|
||||
(leaf "move-column-to-workspace" 2)
|
||||
])
|
||||
(plain "Mod+Shift+3" [
|
||||
(leaf "move-column-to-workspace" 3)
|
||||
])
|
||||
(plain "Mod+Shift+4" [
|
||||
(leaf "move-column-to-workspace" 4)
|
||||
])
|
||||
(plain "Mod+Shift+5" [
|
||||
(leaf "move-column-to-workspace" 5)
|
||||
])
|
||||
(plain "Mod+Shift+6" [
|
||||
(leaf "move-column-to-workspace" 6)
|
||||
])
|
||||
(plain "Mod+Shift+7" [
|
||||
(leaf "move-column-to-workspace" 7)
|
||||
])
|
||||
(plain "Mod+Shift+8" [
|
||||
(leaf "move-column-to-workspace" 8)
|
||||
])
|
||||
(plain "Mod+Shift+9" [
|
||||
(leaf "move-column-to-workspace" 9)
|
||||
])
|
||||
(plain "Mod+F" [
|
||||
(flag "toggle-window-floating")
|
||||
])
|
||||
(plain "Mod+Shift+F" [
|
||||
(flag "toggle-windowed-fullscreen")
|
||||
])
|
||||
(plain "Mod+Tab" [
|
||||
(flag "focus-window-previous")
|
||||
])
|
||||
(plain "Mod+Shift+Tab" [
|
||||
(flag "switch-focus-between-floating-and-tiling")
|
||||
])
|
||||
(plain "Mod+BracketLeft" [
|
||||
(flag "consume-or-expel-window-left")
|
||||
])
|
||||
(plain "Mod+BracketRight" [
|
||||
(flag "consume-or-expel-window-right")
|
||||
])
|
||||
(plain "Mod+Comma" [
|
||||
(flag "consume-window-into-column")
|
||||
])
|
||||
(plain "Mod+Period" [
|
||||
(flag "expel-window-from-column")
|
||||
])
|
||||
(plain "Mod+R" [
|
||||
(flag "switch-preset-column-width")
|
||||
])
|
||||
(plain "Mod+Shift+R" [
|
||||
(flag "switch-preset-window-height")
|
||||
])
|
||||
(plain "Mod+Ctrl+R" [
|
||||
(flag "reset-window-height")
|
||||
])
|
||||
(plain "Mod+M" [
|
||||
(flag "maximize-column")
|
||||
])
|
||||
(plain "Mod+Shift+M" [
|
||||
(flag "fullscreen-window")
|
||||
])
|
||||
(plain "Mod+Z" [
|
||||
(flag "center-column")
|
||||
])
|
||||
(plain "Mod+Minus" [
|
||||
(leaf "set-column-width" "-10%")
|
||||
])
|
||||
(plain "Mod+Equal" [
|
||||
(leaf "set-column-width" "+10%")
|
||||
])
|
||||
(plain "Mod+Shift+Minus" [
|
||||
(leaf "set-window-height" "-10%")
|
||||
])
|
||||
(plain "Mod+Shift+Equal" [
|
||||
(leaf "set-window-height" "+10%")
|
||||
])
|
||||
(plain "Print" [
|
||||
(flag "screenshot")
|
||||
])
|
||||
(plain "Ctrl+Print" [
|
||||
(flag "screenshot-screen")
|
||||
])
|
||||
(plain "Alt+Print" [
|
||||
(flag "screenshot-window")
|
||||
])
|
||||
(plain "Mod+Shift+Q" [
|
||||
(flag "quit")
|
||||
])
|
||||
(plain "Mod+E" [
|
||||
(flag "expand-column-to-available-width")
|
||||
])
|
||||
(plain "Mod+Shift+S" [
|
||||
(flag "toggle-keyboard-shortcuts-inhibit")
|
||||
])
|
||||
(plain "Mod+Shift+C" [
|
||||
(flag "set-dynamic-cast-window")
|
||||
])
|
||||
(plain "Mod+Shift+Ctrl+C" [
|
||||
(flag "clear-dynamic-cast-target")
|
||||
])
|
||||
])
|
||||
] # binds
|
||||
)
|
||||
++ (
|
||||
let
|
||||
spawn-at-startup = leaf "spawn-at-startup";
|
||||
in [
|
||||
(leaf "screenshot-path" "${config.xdg.userDirs.pictures}/screenshots/%Y-%m-%d_%H:%M:%S.png")
|
||||
(plain "hotkey-overlay" [
|
||||
(flag "skip-at-startup")
|
||||
])
|
||||
(flag "prefer-no-csd")
|
||||
(spawn-at-startup [waybar])
|
||||
(spawn-at-startup [swaync])
|
||||
(spawn-at-startup [swaybg "-i" "${config.home.homeDirectory}/wallpaper/01.png"])
|
||||
(spawn-at-startup [fcitx5 "-d" "--replace"])
|
||||
(spawn-at-startup [xwayland-satellite DISPLAY])
|
||||
(spawn-at-startup [polkit-kde-agent])
|
||||
(spawn-at-startup [wl-paste "--watch" cliphist "store"])
|
||||
(plain "input" [
|
||||
(plain "touchpad" [
|
||||
(leaf "click-method" "clickfinger")
|
||||
(flag "dwt")
|
||||
(leaf "scroll-method" "two-finger")
|
||||
(leaf "tap-button-map" "left-right-middle")
|
||||
])
|
||||
])
|
||||
(plain "cursor" [
|
||||
(leaf "hide-after-inactive-ms" 3000)
|
||||
(flag "hide-when-typing")
|
||||
])
|
||||
(plain "layout" [
|
||||
(plain "border" [
|
||||
(leaf "width" 4)
|
||||
(leaf "active-color" "#7fc8ff")
|
||||
(leaf "inactive-color" "#505050")
|
||||
])
|
||||
(plain "focus-ring" [
|
||||
(flag "off")
|
||||
(leaf "width" 4)
|
||||
(leaf "active-color" "#7fc8ff")
|
||||
(leaf "inactive-color" "#505050")
|
||||
])
|
||||
(plain "tab-indicator" [
|
||||
(flag "hide-when-single-tab")
|
||||
])
|
||||
(plain "preset-column-widths" [
|
||||
(leaf "proportion" (1. / 4.))
|
||||
(leaf "proportion" (1. / 3.))
|
||||
(leaf "proportion" (1. / 2.))
|
||||
(leaf "proportion" (2. / 3.))
|
||||
(leaf "proportion" (3. / 4.))
|
||||
(leaf "proportion" (4. / 4.))
|
||||
])
|
||||
(flag "always-center-single-column")
|
||||
(leaf "center-focused-column" "never")
|
||||
(leaf "default-column-display" "tabbed")
|
||||
(plain "default-column-width" [
|
||||
(leaf "proportion" (1. / 2.))
|
||||
])
|
||||
(flag "empty-workspace-above-first")
|
||||
(leaf "gaps" 16)
|
||||
])
|
||||
(plain "animations" [
|
||||
(plain "window-close" [
|
||||
(leaf "spring" {
|
||||
damping-ratio = 1.0;
|
||||
stiffness = 800;
|
||||
epsilon = 0.0001;
|
||||
})
|
||||
])
|
||||
])
|
||||
(plain "environment" [
|
||||
(leaf "DISPLAY" DISPLAY)
|
||||
])
|
||||
] # others
|
||||
)
|
||||
++ (
|
||||
let
|
||||
window-rule = plain "window-rule";
|
||||
match = leaf "match";
|
||||
in [
|
||||
(window-rule [
|
||||
(leaf "draw-border-with-background" true)
|
||||
(leaf "geometry-corner-radius" 12.0)
|
||||
(leaf "clip-to-geometry" true)
|
||||
])
|
||||
(window-rule [
|
||||
(match {app-id = "^showmethekey-gtk$";})
|
||||
(leaf "geometry-corner-radius" 0.0)
|
||||
(leaf "clip-to-geometry" false)
|
||||
(leaf "open-floating" true)
|
||||
(leaf "open-focused" false)
|
||||
(plain "default-column-width" [
|
||||
(leaf "fixed" 300)
|
||||
])
|
||||
(plain "default-window-height" [
|
||||
(leaf "fixed" 70)
|
||||
])
|
||||
(leaf "draw-border-with-background" true)
|
||||
(leaf "default-floating-position" {
|
||||
relative-to = "bottom-right";
|
||||
x = 20;
|
||||
y = 20;
|
||||
})
|
||||
(plain "focus-ring" [
|
||||
(flag "off")
|
||||
])
|
||||
(plain "border" [
|
||||
(flag "off")
|
||||
])
|
||||
(plain "shadow" [
|
||||
(flag "off")
|
||||
])
|
||||
(leaf "baba-is-float" true)
|
||||
(leaf "tiled-state" false)
|
||||
])
|
||||
(window-rule [
|
||||
(match {app-id = "^org\\.keepassxc\\.KeePassXC$";})
|
||||
(match {app-id = "^org\\.gnome\\.World\\.Secrets$";})
|
||||
(leaf "block-out-from" "screen-capture")
|
||||
])
|
||||
(window-rule [
|
||||
(match {
|
||||
app-id = "^com\\.mitchellh\\.ghostty$";
|
||||
is-active = true;
|
||||
})
|
||||
(leaf "draw-border-with-background" false)
|
||||
])
|
||||
(window-rule [
|
||||
(match {
|
||||
app-id = "^com\\.mitchellh\\.ghostty$";
|
||||
is-active = false;
|
||||
})
|
||||
(leaf "opacity" 0.8)
|
||||
(leaf "draw-border-with-background" false)
|
||||
])
|
||||
(window-rule [
|
||||
(match {is-window-cast-target = true;})
|
||||
(plain "focus-ring" [
|
||||
(leaf "active-color" "#f38ba8")
|
||||
(leaf "inactive-color" "#7d0d2d")
|
||||
])
|
||||
(plain "border" [
|
||||
(leaf "active-color" "#f38ba8")
|
||||
(leaf "inactive-color" "#7d0d2d")
|
||||
])
|
||||
(plain "tab-indicator" [
|
||||
(leaf "active-color" "#f38ba8")
|
||||
(leaf "inactive-color" "#7d0d2d")
|
||||
])
|
||||
(plain "shadow" [
|
||||
(flag "on")
|
||||
])
|
||||
])
|
||||
(window-rule [
|
||||
(match {
|
||||
app-id = "^org\\.telegram\\.desktop$";
|
||||
title = "Media viewer";
|
||||
})
|
||||
(leaf "open-floating" true)
|
||||
(leaf "open-fullscreen" false)
|
||||
])
|
||||
] # window-rule
|
||||
)
|
||||
++ (
|
||||
let
|
||||
layer-rule = plain "layer-rule";
|
||||
match = leaf "match";
|
||||
in [
|
||||
(layer-rule [
|
||||
(match {namespace = "^swaync-notification-window$";})
|
||||
(match {namespace = "^swaync-control-center$";})
|
||||
(leaf "block-out-from" "screen-capture")
|
||||
])
|
||||
(layer-rule [
|
||||
(match {namespace = "^launcher$";})
|
||||
(plain "shadow" [
|
||||
(flag "on")
|
||||
])
|
||||
(leaf "geometry-corner-radius" 10.0)
|
||||
])
|
||||
] # layer-rule
|
||||
)
|
||||
|
|
@ -1,19 +1,25 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
} @ args: let
|
||||
cfg = config.david.programs.niri;
|
||||
in {
|
||||
options = {
|
||||
david.programs.niri = {
|
||||
enable = lib.mkEnableOption "niri";
|
||||
extraConfig = lib.mkOption {
|
||||
type = inputs.niri-flake.lib.kdl.types.kdl-document;
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
youthlic.programs.niri = {
|
||||
enable = true;
|
||||
config = ./config.kdl;
|
||||
# settings = lib.mkMerge [(import ./settings.nix args) cfg.settings];
|
||||
config = (lib.toList (import ./config.nix args)) ++ (lib.toList cfg.extraConfig);
|
||||
};
|
||||
david.programs.wluma.enable = true;
|
||||
};
|
||||
|
|
|
|||
402
home/david/modules/programs/niri/settings.nix
Normal file
402
home/david/modules/programs/niri/settings.nix
Normal file
|
|
@ -0,0 +1,402 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) getExe getExe';
|
||||
DISPLAY = ":1";
|
||||
bash = getExe pkgs.bash;
|
||||
swaylock = getExe pkgs.swaylock-effects;
|
||||
fuzzel = getExe pkgs.fuzzel;
|
||||
wpctl = getExe' pkgs.wireplumber "wpctl";
|
||||
waybar = getExe pkgs.waybar;
|
||||
swaync = getExe pkgs.swaynotificationcenter;
|
||||
swaybg = getExe pkgs.swaybg;
|
||||
fcitx5 = getExe' osConfig.i18n.inputMethod.package "fcitx5";
|
||||
xwayland-satellite = getExe pkgs.xwayland-satellite;
|
||||
polkit-kde-agent = getExe' pkgs.kdePackages.polkit-kde-agent-1 "polkit-kde-agent";
|
||||
wl-paste = getExe' pkgs.wl-clipboard "wl-paste";
|
||||
wl-copy = getExe' pkgs.wl-clipboard "wl-copy";
|
||||
cliphist = getExe' pkgs.cliphist "cliphist";
|
||||
ghostty = getExe pkgs.ghostty;
|
||||
in {
|
||||
binds = let
|
||||
inherit (config.lib.niri.actions) spawn show-hotkey-overlay toggle-column-tabbed-display close-window toggle-overview focus-column-left focus-window-down focus-window-up focus-column-right focus-column-or-monitor-left focus-window-or-workspace-down focus-window-or-workspace-up focus-column-or-monitor-right move-column-left move-window-down move-window-up move-column-right move-column-left-or-to-monitor-left move-window-down-or-to-workspace-down move-window-up-or-to-workspace-up move-column-right-or-to-monitor-right focus-column-first focus-column-last move-column-to-first move-column-to-last focus-monitor-left focus-monitor-down focus-monitor-up focus-monitor-right move-column-to-monitor-left move-column-to-monitor-down move-column-to-monitor-up move-column-to-monitor-right focus-workspace-up focus-workspace-down move-column-to-workspace-down move-column-to-workspace-up move-workspace-down move-workspace-up focus-workspace move-column-to-workspace toggle-window-floating toggle-windowed-fullscreen focus-window-previous switch-focus-between-floating-and-tiling consume-or-expel-window-left consume-or-expel-window-right consume-window-into-column expel-window-from-column switch-preset-column-width switch-preset-window-height reset-window-height maximize-column fullscreen-window center-column set-column-width set-window-height screenshot screenshot-window quit expand-column-to-available-width toggle-keyboard-shortcuts-inhibit set-dynamic-cast-window clear-dynamic-cast-target;
|
||||
in {
|
||||
"Mod+V".action = spawn bash "-c" "${cliphist} list | ${fuzzel} --dmenu | ${cliphist} decode | ${wl-copy}";
|
||||
"Mod+Shift+P".action = spawn swaylock "--screenshots" "--clock" "--indicator" "--indicator-radius" "100" "--indicator-thickness" "7" "--effect-blur" "7x5" "--effect-vignette" "0.5:0.5" "--grace" "2" "--fade-in" "0.5";
|
||||
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
||||
"Mod+T".action = spawn ghostty;
|
||||
"Mod+Shift+T".action = toggle-column-tabbed-display;
|
||||
"Mod+Space".action = spawn fuzzel;
|
||||
XF86AudioRaiseVolume = {
|
||||
action = spawn wpctl "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
|
||||
allow-when-locked = true;
|
||||
};
|
||||
XF86AudioLowerVolume = {
|
||||
action = spawn wpctl "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
|
||||
allow-when-locked = true;
|
||||
};
|
||||
XF86AudioMute = {
|
||||
action = spawn wpctl "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
|
||||
allow-when-locked = true;
|
||||
};
|
||||
XF86AudioMicMute = {
|
||||
action = spawn wpctl "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
|
||||
allow-when-locked = true;
|
||||
};
|
||||
"Mod+Q".action = close-window;
|
||||
"Mod+O".action = toggle-overview;
|
||||
"Mod+Left".action = focus-column-left;
|
||||
"Mod+Down".action = focus-window-down;
|
||||
"Mod+Up".action = focus-window-up;
|
||||
"Mod+Right".action = focus-column-right;
|
||||
"Mod+H".action = focus-column-or-monitor-left;
|
||||
"Mod+J".action = focus-window-or-workspace-down;
|
||||
"Mod+K".action = focus-window-or-workspace-up;
|
||||
"Mod+L".action = focus-column-or-monitor-right;
|
||||
"Mod+Shift+Left".action = move-column-left;
|
||||
"Mod+Shift+Down".action = move-window-down;
|
||||
"Mod+Shift+Up".action = move-window-up;
|
||||
"Mod+Shift+Right".action = move-column-right;
|
||||
"Mod+Shift+H".action = move-column-left-or-to-monitor-left;
|
||||
"Mod+Shift+J".action = move-window-down-or-to-workspace-down;
|
||||
"Mod+Shift+K".action = move-window-up-or-to-workspace-up;
|
||||
"Mod+Shift+L".action = move-column-right-or-to-monitor-right;
|
||||
"Mod+Home".action = focus-column-first;
|
||||
"Mod+End".action = focus-column-last;
|
||||
"Mod+Ctrl+Home".action = move-column-to-first;
|
||||
"Mod+Ctrl+End".action = move-column-to-last;
|
||||
"Mod+Ctrl+Left".action = focus-monitor-left;
|
||||
"Mod+Ctrl+Down".action = focus-monitor-down;
|
||||
"Mod+Ctrl+Up".action = focus-monitor-up;
|
||||
"Mod+Ctrl+Right".action = focus-monitor-right;
|
||||
"Mod+Ctrl+H".action = focus-monitor-left;
|
||||
"Mod+Ctrl+J".action = focus-monitor-down;
|
||||
"Mod+Ctrl+K".action = focus-monitor-up;
|
||||
"Mod+Ctrl+L".action = focus-monitor-right;
|
||||
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
|
||||
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
|
||||
"Mod+Page_Down".action = focus-workspace-down;
|
||||
"Mod+Page_Up".action = focus-workspace-up;
|
||||
"Mod+U".action = focus-workspace-down;
|
||||
"Mod+I".action = focus-workspace-up;
|
||||
"Mod+Shift+Page_Down".action = move-column-to-workspace-down;
|
||||
"Mod+Shift+Page_Up".action = move-column-to-workspace-up;
|
||||
"Mod+Shift+U".action = move-column-to-workspace-down;
|
||||
"Mod+Shift+I".action = move-column-to-workspace-up;
|
||||
"Mod+Ctrl+Page_Down".action = move-workspace-down;
|
||||
"Mod+Ctrl+Page_Up".action = move-workspace-up;
|
||||
"Mod+Ctrl+U".action = move-workspace-down;
|
||||
"Mod+Ctrl+I".action = move-workspace-up;
|
||||
"Mod+Shift+WheelScrollDown" = {
|
||||
action = focus-workspace-down;
|
||||
cooldown-ms = 150;
|
||||
};
|
||||
"Mod+Shift+WheelScrollUp" = {
|
||||
action = focus-workspace-up;
|
||||
cooldown-ms = 150;
|
||||
};
|
||||
"Mod+WheelScrollDown".action = focus-column-right;
|
||||
"Mod+WheelScrollUp".action = focus-column-left;
|
||||
"Mod+1".action = focus-workspace 1;
|
||||
"Mod+2".action = focus-workspace 2;
|
||||
"Mod+3".action = focus-workspace 3;
|
||||
"Mod+4".action = focus-workspace 4;
|
||||
"Mod+5".action = focus-workspace 5;
|
||||
"Mod+6".action = focus-workspace 6;
|
||||
"Mod+7".action = focus-workspace 7;
|
||||
"Mod+8".action = focus-workspace 8;
|
||||
"Mod+9".action = focus-workspace 9;
|
||||
"Mod+Shift+1".action = move-column-to-workspace 1;
|
||||
"Mod+Shift+2".action = move-column-to-workspace 2;
|
||||
"Mod+Shift+3".action = move-column-to-workspace 3;
|
||||
"Mod+Shift+4".action = move-column-to-workspace 4;
|
||||
"Mod+Shift+5".action = move-column-to-workspace 5;
|
||||
"Mod+Shift+6".action = move-column-to-workspace 6;
|
||||
"Mod+Shift+7".action = move-column-to-workspace 7;
|
||||
"Mod+Shift+8".action = move-column-to-workspace 8;
|
||||
"Mod+Shift+9".action = move-column-to-workspace 9;
|
||||
"Mod+F".action = toggle-window-floating;
|
||||
"Mod+Shift+F".action = toggle-windowed-fullscreen;
|
||||
"Mod+Tab".action = focus-window-previous;
|
||||
"Mod+Shift+Tab".action = switch-focus-between-floating-and-tiling;
|
||||
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
||||
"Mod+BracketRight".action = consume-or-expel-window-right;
|
||||
"Mod+Comma".action = consume-window-into-column;
|
||||
"Mod+Period".action = expel-window-from-column;
|
||||
"Mod+R".action = switch-preset-column-width;
|
||||
"Mod+Shift+R".action = switch-preset-window-height;
|
||||
"Mod+Ctrl+R".action = reset-window-height;
|
||||
"Mod+M".action = maximize-column;
|
||||
"Mod+Shift+M".action = fullscreen-window;
|
||||
"Mod+Z".action = center-column;
|
||||
"Mod+Minus".action = set-column-width "-10%";
|
||||
"Mod+Equal".action = set-column-width "+10%";
|
||||
"Mod+Shift+Minus".action = set-window-height "-10%";
|
||||
"Mod+Shift+Equal".action = set-window-height "+10%";
|
||||
"Print".action = screenshot;
|
||||
# since niri add another parameter for the variant, the regex can not parse the action
|
||||
# [Track] https://github.com/sodiboo/niri-flake/issues/922
|
||||
"Ctrl+Print".action.screenshot-screen = [];
|
||||
"Alt+Print".action = screenshot-window;
|
||||
"Mod+Shift+Q".action = quit;
|
||||
"Mod+E".action = expand-column-to-available-width;
|
||||
"Mod+Shift+S".action = toggle-keyboard-shortcuts-inhibit;
|
||||
"Mod+Shift+C".action = set-dynamic-cast-window;
|
||||
"Mod+Shift+Ctrl+C".action = clear-dynamic-cast-target;
|
||||
};
|
||||
screenshot-path = "${config.xdg.userDirs.pictures}/screenshots/%Y-%m-%d_%H:%M:%S.png";
|
||||
hotkey-overlay.skip-at-startup = true;
|
||||
prefer-no-csd = true;
|
||||
spawn-at-startup = [
|
||||
{
|
||||
command = [waybar];
|
||||
}
|
||||
{
|
||||
command = [swaync];
|
||||
}
|
||||
{
|
||||
command = [swaybg "-i" "${config.home.homeDirectory}/wallpaper/01.png"];
|
||||
}
|
||||
{
|
||||
command = [fcitx5 "-d" "--replace"];
|
||||
}
|
||||
{
|
||||
command = [xwayland-satellite DISPLAY];
|
||||
}
|
||||
{
|
||||
command = [polkit-kde-agent];
|
||||
}
|
||||
{
|
||||
command = [wl-paste "--watch" cliphist "store"];
|
||||
}
|
||||
];
|
||||
input = {
|
||||
touchpad = {
|
||||
click-method = "clickfinger";
|
||||
dwt = true;
|
||||
scroll-method = "two-finger";
|
||||
tap-button-map = "left-right-middle";
|
||||
};
|
||||
warp-mouse-to-focus = true;
|
||||
};
|
||||
cursor = {
|
||||
hide-after-inactive-ms = 3000;
|
||||
hide-when-typing = true;
|
||||
};
|
||||
layout = {
|
||||
border = {
|
||||
enable = true;
|
||||
width = 4;
|
||||
active = {
|
||||
color = "#7fc8ff";
|
||||
};
|
||||
inactive = {
|
||||
color = "#505050";
|
||||
};
|
||||
};
|
||||
focus-ring = {
|
||||
enable = false;
|
||||
width = 4;
|
||||
active = {
|
||||
color = "#7fc8ff";
|
||||
};
|
||||
inactive = {
|
||||
color = "#505050";
|
||||
};
|
||||
};
|
||||
preset-column-widths = [
|
||||
{
|
||||
proportion = 1. / 4.;
|
||||
}
|
||||
{
|
||||
proportion = 1. / 3.;
|
||||
}
|
||||
{
|
||||
proportion = 1. / 2.;
|
||||
}
|
||||
{
|
||||
proportion = 2. / 3.;
|
||||
}
|
||||
{
|
||||
proportion = 3. / 4.;
|
||||
}
|
||||
{
|
||||
proportion = 4. / 4.;
|
||||
}
|
||||
];
|
||||
always-center-single-column = true;
|
||||
center-focused-column = "never";
|
||||
default-column-display = "tabbed";
|
||||
default-column-width = {
|
||||
proportion = 1. / 2.;
|
||||
};
|
||||
empty-workspace-above-first = true;
|
||||
gaps = 16;
|
||||
};
|
||||
animations = {
|
||||
enable = true;
|
||||
window-close = {
|
||||
spring = {
|
||||
damping-ratio = 1.0;
|
||||
stiffness = 800;
|
||||
epsilon = 0.0001;
|
||||
};
|
||||
};
|
||||
};
|
||||
environment = {
|
||||
inherit DISPLAY;
|
||||
};
|
||||
window-rules = [
|
||||
{
|
||||
draw-border-with-background = true;
|
||||
geometry-corner-radius = {
|
||||
bottom-left = 12.;
|
||||
bottom-right = 12.;
|
||||
top-left = 12.;
|
||||
top-right = 12.;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "^showmethekey-gtk$";
|
||||
}
|
||||
];
|
||||
geometry-corner-radius = {
|
||||
bottom-left = 0.0;
|
||||
bottom-right = 0.0;
|
||||
top-left = 0.0;
|
||||
top-right = 0.0;
|
||||
};
|
||||
clip-to-geometry = false;
|
||||
open-floating = true;
|
||||
open-focused = false;
|
||||
default-column-width = {
|
||||
fixed = 300;
|
||||
};
|
||||
default-window-height = {
|
||||
fixed = 70;
|
||||
};
|
||||
draw-border-with-background = false;
|
||||
default-floating-position = {
|
||||
relative-to = "bottom-right";
|
||||
x = 20;
|
||||
y = 20;
|
||||
};
|
||||
focus-ring.enable = false;
|
||||
border.enable = false;
|
||||
shadow.enable = false;
|
||||
baba-is-float = true;
|
||||
# tiled-state = false;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "^org\\.keepassxc\\.KeePassXC$";
|
||||
}
|
||||
{
|
||||
app-id = "^org\\.gnome\\.World\\.Secrets$";
|
||||
}
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "^com\\.mitchellh\\.ghostty$";
|
||||
is-active = true;
|
||||
}
|
||||
];
|
||||
draw-border-with-background = false;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "^com\\.mitchellh\\.ghostty$";
|
||||
is-active = false;
|
||||
}
|
||||
];
|
||||
opacity = 0.8;
|
||||
draw-border-with-background = false;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
is-window-cast-target = true;
|
||||
}
|
||||
];
|
||||
focus-ring = {
|
||||
active = {
|
||||
color = "#f38ba8";
|
||||
};
|
||||
inactive = {
|
||||
color = "#7d0d2d";
|
||||
};
|
||||
};
|
||||
border = {
|
||||
active = {
|
||||
color = "#f38ba8";
|
||||
};
|
||||
inactive = {
|
||||
color = "#7d0d2d";
|
||||
};
|
||||
};
|
||||
tab-indicator = {
|
||||
active = {
|
||||
color = "#f38ba8";
|
||||
};
|
||||
inactive = {
|
||||
color = "#7d0d2d";
|
||||
};
|
||||
};
|
||||
shadow.enable = true;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "^org\\.telegram\\.desktop$";
|
||||
title = "Media viewer";
|
||||
}
|
||||
];
|
||||
open-floating = true;
|
||||
}
|
||||
];
|
||||
layer-rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
namespace = "^swaync-notification-window$";
|
||||
}
|
||||
{
|
||||
namespace = "^swaync-control-center$";
|
||||
}
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
namespace = "^launcher$";
|
||||
}
|
||||
];
|
||||
shadow.enable = true;
|
||||
geometry-corner-radius = {
|
||||
top-left = 10.;
|
||||
top-right = 10.;
|
||||
bottom-left = 10.;
|
||||
bottom-right = 10.;
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
config,
|
||||
lib,
|
||||
osConfig ? null,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.niri;
|
||||
|
|
@ -11,12 +12,11 @@ in {
|
|||
options = {
|
||||
youthlic.programs.niri = {
|
||||
enable = lib.mkEnableOption "niri";
|
||||
# settings = lib.mkOption {
|
||||
# type = lib.types.attrs;
|
||||
# };
|
||||
config = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
example = ./config.kdl;
|
||||
description = ''
|
||||
the pach to config.kdl
|
||||
'';
|
||||
type = inputs.niri-flake.lib.kdl.types.kdl-document;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -66,7 +66,8 @@ in {
|
|||
swaylock.enable = true;
|
||||
};
|
||||
programs.niri = {
|
||||
config = builtins.readFile cfg.config;
|
||||
# settings = cfg.settings;
|
||||
config = cfg.config;
|
||||
package = niri;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -16,29 +16,86 @@ in {
|
|||
programs.zed-editor = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
"nix"
|
||||
"html"
|
||||
"java"
|
||||
"git-firely"
|
||||
"make"
|
||||
"asciidoc"
|
||||
"basher"
|
||||
"cargo-tom"
|
||||
"codebook"
|
||||
"deno"
|
||||
"java-eclipse-jdtlS"
|
||||
"neocMake"
|
||||
"typst"
|
||||
"toml"
|
||||
"docker-compose"
|
||||
"dockerfile"
|
||||
"fish"
|
||||
"git-firefly"
|
||||
"golangci-lint"
|
||||
"haskell"
|
||||
"html"
|
||||
"hurl"
|
||||
"idris2"
|
||||
"java"
|
||||
"java-eclipse-jdtls"
|
||||
"kdl"
|
||||
"kotlin"
|
||||
"lua"
|
||||
"make"
|
||||
"markdown-oxide"
|
||||
"neocmake"
|
||||
"nix"
|
||||
"python-refactoring"
|
||||
"python-requirements"
|
||||
"scheme"
|
||||
"toml"
|
||||
"typst"
|
||||
"xml"
|
||||
"zig"
|
||||
];
|
||||
extraPackages = with pkgs; [
|
||||
nixd
|
||||
nil
|
||||
neocmakelsp
|
||||
deno
|
||||
jdt-language-server
|
||||
idris2Packages.idris2Lsp
|
||||
lua-language-server
|
||||
bash-language-server
|
||||
shfmt
|
||||
hurl
|
||||
cmake-language-server
|
||||
kdlfmt
|
||||
rustfmt
|
||||
clang-tools
|
||||
libxml2
|
||||
typstyle
|
||||
pyright
|
||||
ruff
|
||||
gotools
|
||||
yaml-language-server
|
||||
taplo
|
||||
alejandra
|
||||
markdown-oxide
|
||||
marksman
|
||||
nixd
|
||||
deno
|
||||
alejandra
|
||||
vscode-langservers-extracted
|
||||
fish-lsp
|
||||
tailwindcss-language-server
|
||||
gopls
|
||||
golangci-lint-langserver
|
||||
tinymist
|
||||
delve
|
||||
lldb
|
||||
rust-analyzer
|
||||
# nil
|
||||
haskell-language-server
|
||||
neocmakelsp
|
||||
jdt-language-server
|
||||
zls
|
||||
];
|
||||
userSettings = {
|
||||
languages = {
|
||||
Nix = {
|
||||
language_servers = ["nixd" "!nil"];
|
||||
formatter = {
|
||||
external = {
|
||||
command = "alejandra";
|
||||
arguments = ["--quiet" "--"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
soft_wrap = "editor_width";
|
||||
autosave = "on_focus_change";
|
||||
auto_update = false;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./gui.nix
|
||||
./hardware-configuration.nix
|
||||
./stylix.nix
|
||||
./users
|
||||
|
|
@ -21,7 +22,6 @@
|
|||
kanata.enable = true;
|
||||
tailscale.enable = true;
|
||||
};
|
||||
gui.enabled = "niri";
|
||||
};
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
|
|
|
|||
20
nixos/configurations/Akun/gui.nix
Normal file
20
nixos/configurations/Akun/gui.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{...}: let
|
||||
extraConfig = ''
|
||||
output "eDP-1" {
|
||||
mode "1920x1200@60.018"
|
||||
scale 1.0
|
||||
focus-at-startup
|
||||
position x=0 y=0
|
||||
transform "normal"
|
||||
}
|
||||
window-rule {
|
||||
match app-id="apps.regreet"
|
||||
open-on-output "eDP-1"
|
||||
}
|
||||
'';
|
||||
in {
|
||||
youthlic.gui = {
|
||||
enabled = "niri";
|
||||
niri.extraConfig = extraConfig;
|
||||
};
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
|
|
@ -11,6 +12,7 @@
|
|||
++ [
|
||||
./users
|
||||
./stylix.nix
|
||||
./gui.nix
|
||||
|
||||
# Include the hardware related config
|
||||
./hardware-configuration.nix
|
||||
|
|
@ -44,7 +46,6 @@
|
|||
owncast.enable = true;
|
||||
minio.enable = true;
|
||||
};
|
||||
gui.enabled = "niri";
|
||||
};
|
||||
|
||||
# specialisation = {
|
||||
|
|
|
|||
26
nixos/configurations/Tytonidae/gui.nix
Normal file
26
nixos/configurations/Tytonidae/gui.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{pkgs, ...}: let
|
||||
extraConfig = ''
|
||||
output "DP-1" {
|
||||
mode "2560x1440@169.900"
|
||||
scale 1.0
|
||||
position x=0 y=0
|
||||
transform "normal"
|
||||
focus-at-startup
|
||||
}
|
||||
output "eDP-1" {
|
||||
mode "2560x1440@165.003"
|
||||
scale 1.5
|
||||
position x=2560 y=0
|
||||
transform "normal"
|
||||
}
|
||||
window-rule {
|
||||
match app-id="apps.regreet"
|
||||
open-on-output "DP-1"
|
||||
}
|
||||
'';
|
||||
in {
|
||||
youthlic.gui = {
|
||||
enabled = "niri";
|
||||
niri.extraConfig = extraConfig;
|
||||
};
|
||||
}
|
||||
|
|
@ -6,6 +6,13 @@
|
|||
}: let
|
||||
cfg = config.youthlic.gui;
|
||||
in {
|
||||
options = {
|
||||
youthlic.gui.niri = {
|
||||
extraConfig = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf (cfg.enabled == "niri") {
|
||||
qt = {
|
||||
enable = true;
|
||||
|
|
@ -61,20 +68,49 @@ in {
|
|||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
};
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "cn";
|
||||
variant = "";
|
||||
};
|
||||
displayManager.gdm = {
|
||||
services = {
|
||||
greetd = let
|
||||
niriConfig = pkgs.writeText "greetd-niri-config.kdl" (''
|
||||
binds {}
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
gestures {
|
||||
hot-corners {
|
||||
off
|
||||
}
|
||||
}
|
||||
spawn-at-startup "${lib.getExe pkgs.swaybg}" "-i" "${config.stylix.image}"
|
||||
''
|
||||
+ config.youthlic.gui.niri.extraConfig);
|
||||
in {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "env GTK_USE_PORTAL=0 GDK_DEBUG=no-portals ${lib.getExe' config.programs.niri.package "niri"} --config ${niriConfig} -- ${lib.getExe config.programs.regreet.package}";
|
||||
};
|
||||
};
|
||||
};
|
||||
xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
# displayManager.gdm = {
|
||||
# enable = true;
|
||||
# wayland = true;
|
||||
# };
|
||||
};
|
||||
};
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
package = pkgs.niri-unstable;
|
||||
programs = {
|
||||
regreet = {
|
||||
enable = true;
|
||||
};
|
||||
niri = {
|
||||
enable = true;
|
||||
package = pkgs.niri-unstable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
inherit (prev) lib;
|
||||
in
|
||||
[
|
||||
./spotify.nix
|
||||
./niri.nix
|
||||
./ghostty.nix
|
||||
./juicity.nix
|
||||
./dae.nix
|
||||
./jujutsu.nix
|
||||
./spotifyx.nix
|
||||
]
|
||||
|> map (file: import file args)
|
||||
|> (overlays: (lib.composeManyExtensions overlays) final prev)
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
{inputs, ...}: import "${inputs.oskars-dotfiles}/overlays/spotx.nix"
|
||||
6
overlays/modifications/spotifyx.nix
Normal file
6
overlays/modifications/spotifyx.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{outputs, ...}: final: prev: let
|
||||
inherit (final) stdenv;
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
in {
|
||||
spotify = outputs.packages."${system}".spotifyx;
|
||||
}
|
||||
|
|
@ -92,7 +92,7 @@
|
|||
},
|
||||
"rime-ice": {
|
||||
"cargoLocks": null,
|
||||
"date": "2025-04-22",
|
||||
"date": "2025-05-01",
|
||||
"extract": null,
|
||||
"name": "rime-ice",
|
||||
"passthru": null,
|
||||
|
|
@ -104,12 +104,33 @@
|
|||
"name": null,
|
||||
"owner": "iDvel",
|
||||
"repo": "rime-ice",
|
||||
"rev": "7f6f4880bd5f6b7a76195c515af2e64b88ce0ec2",
|
||||
"sha256": "sha256-N7EDvQX598jxNILzwTwAeu/BY9wWVBRUuTApamf4nAY=",
|
||||
"rev": "5322bcd86f47d18e0785cac4a5da239664b46235",
|
||||
"sha256": "sha256-BFS/pMuUlZ6pQEITZ37hotl7YUMmU7kWoHA26L+y7Pc=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "7f6f4880bd5f6b7a76195c515af2e64b88ce0ec2"
|
||||
"version": "5322bcd86f47d18e0785cac4a5da239664b46235"
|
||||
},
|
||||
"spotx": {
|
||||
"cargoLocks": null,
|
||||
"date": "2025-04-23",
|
||||
"extract": null,
|
||||
"name": "spotx",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "SpotX-Official",
|
||||
"repo": "SpotX-Bash",
|
||||
"rev": "d5a23bfc64d75979373c5fddc81641dabff051aa",
|
||||
"sha256": "sha256-gYr2b9oSOB/kuK6Em3T+gAALgzpRQxvSBJNWoaJ7yvg=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "d5a23bfc64d75979373c5fddc81641dabff051aa"
|
||||
},
|
||||
"tree-sitter-idris": {
|
||||
"cargoLocks": null,
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
# This file was generated by nvfetcher, please do not modify it manually.
|
||||
{ fetchgit, fetchurl, fetchFromGitHub, dockerTools }:
|
||||
{
|
||||
fetchgit,
|
||||
fetchurl,
|
||||
fetchFromGitHub,
|
||||
dockerTools,
|
||||
}: {
|
||||
dioxionary = {
|
||||
pname = "dioxionary";
|
||||
version = "4db80d458ff7494967c94ebb1db596abba0775b2";
|
||||
|
|
@ -14,12 +10,13 @@
|
|||
fetchSubmodules = false;
|
||||
deepClone = false;
|
||||
leaveDotGit = false;
|
||||
sparseCheckout = [];
|
||||
sparseCheckout = [ ];
|
||||
sha256 = "sha256-H5uMTtDX9hBV36MtiPPlHPaL//WM11J5kdtEhyJBZIU=";
|
||||
};
|
||||
cargoLock."./Cargo.lock" = {
|
||||
lockFile = ./dioxionary-4db80d458ff7494967c94ebb1db596abba0775b2/./Cargo.lock;
|
||||
outputHashes = {
|
||||
|
||||
};
|
||||
};
|
||||
date = "2025-04-07";
|
||||
|
|
@ -33,7 +30,7 @@
|
|||
fetchSubmodules = false;
|
||||
deepClone = false;
|
||||
leaveDotGit = false;
|
||||
sparseCheckout = [];
|
||||
sparseCheckout = [ ];
|
||||
sha256 = "sha256-s/OYlW66mu/3MHwhZCxvQv8f/rNuCB4SLZ2jYPO5UQQ=";
|
||||
};
|
||||
date = "2025-02-20";
|
||||
|
|
@ -48,7 +45,7 @@
|
|||
fetchSubmodules = false;
|
||||
deepClone = false;
|
||||
leaveDotGit = false;
|
||||
sparseCheckout = ["Sans/OTC"];
|
||||
sparseCheckout = [ "Sans/OTC" ];
|
||||
sha256 = "sha256-UxbwdY2w3u6i1kBWwr5vMKvsnD3eCllN+kBrCH38KlY=";
|
||||
};
|
||||
};
|
||||
|
|
@ -62,21 +59,33 @@
|
|||
fetchSubmodules = false;
|
||||
deepClone = false;
|
||||
leaveDotGit = false;
|
||||
sparseCheckout = ["Serif/OTC"];
|
||||
sparseCheckout = [ "Serif/OTC" ];
|
||||
sha256 = "sha256-mfbBSdJrUCZiUUmsmndtEW6H3z6KfBn+dEftBySf2j4=";
|
||||
};
|
||||
};
|
||||
rime-ice = {
|
||||
pname = "rime-ice";
|
||||
version = "7f6f4880bd5f6b7a76195c515af2e64b88ce0ec2";
|
||||
version = "5322bcd86f47d18e0785cac4a5da239664b46235";
|
||||
src = fetchFromGitHub {
|
||||
owner = "iDvel";
|
||||
repo = "rime-ice";
|
||||
rev = "7f6f4880bd5f6b7a76195c515af2e64b88ce0ec2";
|
||||
rev = "5322bcd86f47d18e0785cac4a5da239664b46235";
|
||||
fetchSubmodules = false;
|
||||
sha256 = "sha256-N7EDvQX598jxNILzwTwAeu/BY9wWVBRUuTApamf4nAY=";
|
||||
sha256 = "sha256-BFS/pMuUlZ6pQEITZ37hotl7YUMmU7kWoHA26L+y7Pc=";
|
||||
};
|
||||
date = "2025-04-22";
|
||||
date = "2025-05-01";
|
||||
};
|
||||
spotx = {
|
||||
pname = "spotx";
|
||||
version = "d5a23bfc64d75979373c5fddc81641dabff051aa";
|
||||
src = fetchFromGitHub {
|
||||
owner = "SpotX-Official";
|
||||
repo = "SpotX-Bash";
|
||||
rev = "d5a23bfc64d75979373c5fddc81641dabff051aa";
|
||||
fetchSubmodules = false;
|
||||
sha256 = "sha256-gYr2b9oSOB/kuK6Em3T+gAALgzpRQxvSBJNWoaJ7yvg=";
|
||||
};
|
||||
date = "2025-04-23";
|
||||
};
|
||||
tree-sitter-idris = {
|
||||
pname = "tree-sitter-idris";
|
||||
|
|
@ -87,7 +96,7 @@
|
|||
fetchSubmodules = false;
|
||||
deepClone = false;
|
||||
leaveDotGit = false;
|
||||
sparseCheckout = [];
|
||||
sparseCheckout = [ ];
|
||||
sha256 = "sha256-aOAxb0KjhSwlNX/IDvGwEysYvImgUEIDeNDOWRl1qNk=";
|
||||
};
|
||||
name = "idris";
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ in
|
|||
juicity = callPackage ./juicity.nix {};
|
||||
rime-ice = callPackage ./rime-ice.nix {};
|
||||
dioxionary = callPackage ./dioxionary.nix {};
|
||||
spotifyx = callPackage ./spotifyx.nix {};
|
||||
|
||||
noto-serif-cjk = callPackage ./noto-serif-cjk.nix {};
|
||||
noto-sans-cjk = callPackage ./noto-sans-cjk.nix {};
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
idris2Packages.idris2Lsp
|
||||
lua-language-server
|
||||
bash-language-server
|
||||
shfmt
|
||||
hurl
|
||||
cmake-language-server
|
||||
kdlfmt
|
||||
|
|
@ -31,6 +32,7 @@
|
|||
alejandra
|
||||
vscode-langservers-extracted
|
||||
fish-lsp
|
||||
tailwindcss-language-server
|
||||
gopls
|
||||
golangci-lint-langserver
|
||||
tinymist
|
||||
|
|
@ -40,6 +42,8 @@
|
|||
# nil
|
||||
haskell-language-server
|
||||
neocmakelsp
|
||||
jdt-language-server
|
||||
zls
|
||||
]
|
||||
);
|
||||
in
|
||||
|
|
|
|||
|
|
@ -25,3 +25,7 @@ git.sparseCheckout = ["Serif/OTC"]
|
|||
src.github = "notofonts/noto-cjk"
|
||||
fetch.github = "notofonts/noto-cjk"
|
||||
git.sparseCheckout = ["Sans/OTC"]
|
||||
|
||||
[spotx]
|
||||
src.git = "https://github.com/SpotX-Official/SpotX-Bash.git"
|
||||
fetch.github = "SpotX-Official/SpotX-Bash"
|
||||
|
|
|
|||
26
pkgs/spotifyx.nix
Normal file
26
pkgs/spotifyx.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
pkgs,
|
||||
srcs,
|
||||
...
|
||||
}: let
|
||||
inherit (srcs) spotx;
|
||||
in
|
||||
pkgs.spotify.overrideAttrs (final: prev: {
|
||||
version = prev.version + "_spotx-${spotx.version}";
|
||||
nativeBuildInputs =
|
||||
prev.nativeBuildInputs
|
||||
++ (with pkgs; [
|
||||
unzip
|
||||
zip
|
||||
perl
|
||||
]);
|
||||
spotx = spotx.src;
|
||||
postUnpack = ''
|
||||
cp $spotx/spotx.sh ./spotx.sh
|
||||
chmod +x ./spotx.sh
|
||||
patchShebangs --build ./spotx.sh
|
||||
'';
|
||||
postInstall = ''
|
||||
./spotx.sh -P $out/share/spotify -h
|
||||
'';
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue