mirror of
https://github.com/CHN-beta/nixos.git
synced 2026-01-12 04:39:23 +08:00
Compare commits
257 Commits
5b30aebfae
...
slurm
| Author | SHA1 | Date | |
|---|---|---|---|
| 1bc85bc6af | |||
| a904be79b8 | |||
| 522eff0fad | |||
| 3fb9a0a63c | |||
| 8928406161 | |||
| 2c750d8b90 | |||
| b370ab0a88 | |||
| 3d9a10f8b0 | |||
| 1742ff8cbd | |||
| 4c3b25afca | |||
| e5ba10751b | |||
| 834d44fbf6 | |||
| 1cd3a3ff39 | |||
| 8362b370e8 | |||
| 185c001f3f | |||
| cfc6621074 | |||
| 73445cf51b | |||
| 8ff662be17 | |||
| a3b9c2d29f | |||
| c9552c0674 | |||
| 83b8690bce | |||
| b60a0e9b70 | |||
| 88609fafe4 | |||
| 9204d9879b | |||
| f98887155e | |||
| 77d268d883 | |||
| 128b83a7c6 | |||
| 81ed72bf92 | |||
| 2aefcc5142 | |||
| 6b16d10a83 | |||
| f7ff629c55 | |||
| 61b3df7c82 | |||
| fd4e8ebdff | |||
| 8f623ff3df | |||
| 98817c89d4 | |||
| 983e9163e1 | |||
| ea64073bbf | |||
| aa33572db7 | |||
| 21e8f3ec39 | |||
| 8e2ff3d5a3 | |||
| 7125ae3be8 | |||
| 810afe1df5 | |||
| 7ebb95aac2 | |||
| b5ad8307dc | |||
| 385939522a | |||
| a3e1dce432 | |||
| e5288112e9 | |||
| 2396bdcd64 | |||
| 63e4eb7bba | |||
| c9fbc3b5bc | |||
| a90f74fb77 | |||
| 9b9493be53 | |||
| 983decc8c1 | |||
| 7d584a6563 | |||
| 7f8f65649b | |||
| 390c24aea9 | |||
| 98e75a2ab4 | |||
| 7c161d3521 | |||
| 7cb4c6ecec | |||
| aef16e54f1 | |||
| 536a96ce5e | |||
| a94d6e3d21 | |||
| 0e09b925c2 | |||
| 9d1fae10d8 | |||
| ef1caae121 | |||
| 6d70eecc19 | |||
| 1e42238723 | |||
| fe089060ae | |||
| 8a5bb908c7 | |||
| 54bfa1c8ac | |||
| 54493a2ec6 | |||
| f1218571c5 | |||
| aecc530aa9 | |||
| c43187a15c | |||
| 86a781b327 | |||
| 0424d7eed7 | |||
| 78a74a5aef | |||
| a4c04c9de2 | |||
| aad44c7edd | |||
| 2a7e8d78be | |||
| 8b90c0bc22 | |||
| 6f533e73ee | |||
| 244b0e17fa | |||
| 7f165fccf4 | |||
| 40f4d35b62 | |||
| 02981d242f | |||
| 6a36fe0539 | |||
| 45e5569d55 | |||
| a9027c6127 | |||
| 67079b0885 | |||
| 3384026e91 | |||
| 803b20ec96 | |||
| 074f88d231 | |||
| fd7fe508f5 | |||
| cf6a66f11e | |||
| c4c2e680a4 | |||
| bf16cc5593 | |||
| 5d473887a3 | |||
| 773b2e8cc1 | |||
| c9cfbb515b | |||
| 82e2cd4e7d | |||
| 794657d0ea | |||
| 4f621ce7f1 | |||
| 4ebff80941 | |||
| 6080de15ca | |||
| 2310289c92 | |||
| ef30e0f6dc | |||
| e26e287603 | |||
| f9227c3e85 | |||
| 264be067ca | |||
| 047619ee17 | |||
| fc6cbc6230 | |||
| 056f38dbf5 | |||
| 61d7db84ba | |||
| 6672ea7f4f | |||
| 4aead6cfc6 | |||
| 139722dfdf | |||
| ac85049d0f | |||
| f5f71bee21 | |||
| 08af6615af | |||
| a07800192d | |||
| 13b0c77e7a | |||
| 43e8215fc6 | |||
| abdf3f5f0b | |||
| 9b41ebd154 | |||
| 21e8b5300a | |||
| 6967ab4839 | |||
| 3a60acebb5 | |||
| 26f0b20684 | |||
| 2fe4fb2a25 | |||
| 641fd3bb97 | |||
| d37e47ff40 | |||
| 67d3cac7a1 | |||
| 3ffdf466bb | |||
| c89af3fa52 | |||
| 817613ea96 | |||
| 236ddddffc | |||
| c08fd457cb | |||
| a577616756 | |||
| 9e43844e14 | |||
| 81521bcd3b | |||
| e2674908fb | |||
| 7d43e6218d | |||
| 41552e2ea1 | |||
| 268c5bdf3a | |||
| 500d4ac79e | |||
| d0603c5977 | |||
| a5fdf1ea1d | |||
| 8774a6759a | |||
| d354b555eb | |||
| 3a96911336 | |||
| 08df40f3a3 | |||
| bffed3b584 | |||
| c29eb53ee0 | |||
| 42119af04d | |||
| 9d5772ab1f | |||
| fbc6d5bee1 | |||
| 9f9e58e54e | |||
| dc297d0d04 | |||
| b59dc1b213 | |||
| 853aaf8183 | |||
| 795acc3828 | |||
| 7cf371e78c | |||
| 39fde66754 | |||
| 7a881491bd | |||
| 8e7c615b02 | |||
| dbc6874ead | |||
| 1a2f725a8e | |||
| 0665f57988 | |||
| 15a9f0c05e | |||
| 82d834e93a | |||
| c4cccacba3 | |||
| 753709d494 | |||
| 173d83daae | |||
| cbe228c873 | |||
| eb2ab49388 | |||
| 3fd0988582 | |||
| de3b40360b | |||
| bb9a1bfb68 | |||
| 9d8442b1cf | |||
| 26150244cb | |||
| 914eea92b6 | |||
| b2532ef44d | |||
| b600c81aa7 | |||
| 01a5c290bc | |||
| 16c9fa7c3d | |||
| 9bf3faee63 | |||
| e1789991c4 | |||
| 3cbfe14cc2 | |||
| 2df6396b84 | |||
| ce44fe7856 | |||
| de292de159 | |||
| 81b6831e1b | |||
| bd445d5034 | |||
| 0ca6df2499 | |||
| 00d010a910 | |||
| 48f450bfe3 | |||
| 7e4fe4837f | |||
| 13edf20710 | |||
| 556a8d68fc | |||
| 2e9972a8cd | |||
| 30397a8443 | |||
| 1fcecbb74d | |||
| d80d009e3a | |||
| a9e0a57791 | |||
| 17430b943e | |||
| 7e8bd6f959 | |||
| a624e98514 | |||
| 67a03b5ccc | |||
| f64390d7a7 | |||
| d0158b1608 | |||
| 36da74115e | |||
| fd13dd7319 | |||
| 0e75a6f4e8 | |||
| ccc102ea00 | |||
| 4465522bc5 | |||
| 8ba5913eca | |||
| 478d760816 | |||
| 98f9bfd1e5 | |||
| 2d1df77bc3 | |||
| dc19b577dc | |||
| 49898a9d01 | |||
| c35664984e | |||
| aec8ef7c35 | |||
| 8931b90a33 | |||
| 2b2883ab48 | |||
| 410f73e8b1 | |||
| 8ef28b9de5 | |||
| c8e0c74535 | |||
| d5a3a6b05a | |||
| 00901f5cb5 | |||
| c83505da53 | |||
| 30c18790f9 | |||
| 216117a30a | |||
| c4af4de4ea | |||
| daa824943f | |||
| bcd64f2fe7 | |||
| 259dfd53f3 | |||
| 1a463ee716 | |||
| 78a0a55bed | |||
| 2a465b55ec | |||
| ea3f4bb00c | |||
| bbf601f5a8 | |||
| 8543130661 | |||
| aa93dd53b6 | |||
| 0031080837 | |||
| d3f38c3b55 | |||
| 0c49c71899 | |||
| b0e543d324 | |||
| 51c8a516ff | |||
| f3c8017959 | |||
| 3867469fc5 | |||
| f23f7101e4 | |||
| 8eea6ffdc3 | |||
| 729df7ab63 | |||
| c1737fcb08 | |||
| 50862f0e33 |
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.icm filter=lfs diff=lfs merge=lfs -text
|
||||
10
.sops.yaml
10
.sops.yaml
@@ -3,7 +3,7 @@ keys: # cat /etc/ssh/ssh_host_ed25519_key.pub | ssh-to-age
|
||||
- &pc age1ffvr5pqd2lfj24e3fh53s92z6h76fda3du4y4k6r3yjumdwvpfgqzj033a
|
||||
- &vps6 age164tyqklwhdm57tfm5u863mdt2xrzrrzac4py8a0j9y6kzqcjy9zsp073t6
|
||||
- &vps7 age137x7csalutwvfygvvzpemlsywvdxj3j4z93a50z2sjx03w6zau8q3r5902
|
||||
- &yoga age1qrea4twxdhd7fnvlq5v45528c90qy6hp2wa55kghsxzgut6n6fxs7w6u42
|
||||
- &surface age1ck5vzs0xqx0jplmuksrkh45xwmkm2t05m2wyq5k2w2mnkmn79fxs6tvl3l
|
||||
- &nas age19lhcwk37jmvn6z0v4dpdfh0k4u23f76twdjknc0p7atktf37rd7s4t4wj3
|
||||
- &xmupc1 age19ax6vm3pv8rph5tq3mmehd9sy9jk823tw8svsd790r0lkslycquqvlwz9m
|
||||
creation_rules:
|
||||
@@ -27,15 +27,11 @@ creation_rules:
|
||||
- age:
|
||||
- *chn
|
||||
- *nas
|
||||
- path_regex: secrets/xmupc1/.*$
|
||||
- path_regex: secrets/surface/.*$
|
||||
key_groups:
|
||||
- age:
|
||||
- *chn
|
||||
- path_regex: secrets/yoga/.*$
|
||||
key_groups:
|
||||
- age:
|
||||
- *chn
|
||||
- *yoga
|
||||
- *surface
|
||||
- path_regex: secrets/xmupc1/.*$
|
||||
key_groups:
|
||||
- age:
|
||||
|
||||
101
devices/nas/default.nix
Normal file
101
devices/nas/default.nix
Normal file
@@ -0,0 +1,101 @@
|
||||
inputs:
|
||||
{
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
vfat."/dev/disk/by-uuid/13BC-F0C9" = "/boot/efi";
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/0e184f3b-af6c-4f5d-926a-2559f2dc3063"."/boot" = "/boot";
|
||||
"/dev/mapper/nix"."/nix" = "/nix";
|
||||
"/dev/mapper/root1" =
|
||||
{
|
||||
"/nix/rootfs" = "/nix/rootfs";
|
||||
"/nix/persistent" = "/nix/persistent";
|
||||
"/nix/nodatacow" = "/nix/nodatacow";
|
||||
"/nix/rootfs/current" = "/";
|
||||
"/nix/backup" = "/nix/backup";
|
||||
};
|
||||
};
|
||||
};
|
||||
decrypt.manual =
|
||||
{
|
||||
enable = true;
|
||||
devices =
|
||||
{
|
||||
"/dev/disk/by-uuid/5cf1d19d-b4a5-4e67-8e10-f63f0d5bb649".mapper = "root1";
|
||||
"/dev/disk/by-uuid/aa684baf-fd8a-459c-99ba-11eb7636cb0d".mapper = "root2";
|
||||
"/dev/disk/by-uuid/a779198f-cce9-4c3d-a64a-9ec45f6f5495" = { mapper = "nix"; ssd = true; };
|
||||
};
|
||||
delayedMount = [ "/" "/nix" ];
|
||||
};
|
||||
swap = [ "/nix/swap/swap" ];
|
||||
rollingRootfs = { device = "/dev/mapper/root1"; path = "/nix/rootfs"; };
|
||||
};
|
||||
initrd.sshd.enable = true;
|
||||
grub.installDevice = "efi";
|
||||
nixpkgs.march = "silvermont";
|
||||
nix.substituters = [ "https://cache.nixos.org/" "https://nix-store.chn.moe" ];
|
||||
kernel.patches = [ "cjktty" ];
|
||||
networking.hostname = "nas";
|
||||
gui.preferred = false;
|
||||
};
|
||||
hardware = { cpus = [ "intel" ]; gpu.type = "intel"; };
|
||||
packages.packageSet = "desktop-fat";
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
samba =
|
||||
{
|
||||
enable = true;
|
||||
hostsAllowed = "192.168. 127.";
|
||||
shares = { home.path = "/home"; root.path = "/"; };
|
||||
};
|
||||
sshd = { enable = true; passwordAuthentication = true; };
|
||||
xray.client =
|
||||
{
|
||||
enable = true;
|
||||
serverAddress = "74.211.99.69";
|
||||
serverName = "vps6.xserver.chn.moe";
|
||||
dns.extraInterfaces = [ "docker0" ];
|
||||
};
|
||||
xrdp = { enable = true; hostname = [ "nas.chn.moe" "office.chn.moe" ]; };
|
||||
groupshare.enable = true;
|
||||
smartd.enable = true;
|
||||
beesd =
|
||||
{
|
||||
enable = true;
|
||||
instances =
|
||||
{
|
||||
root = { device = "/"; hashTableSizeMB = 4096; threads = 4; };
|
||||
nix = { device = "/nix"; hashTableSizeMB = 128; };
|
||||
};
|
||||
};
|
||||
frpClient =
|
||||
{
|
||||
enable = true;
|
||||
serverName = "frp.chn.moe";
|
||||
user = "nas";
|
||||
stcp.hpc = { localIp = "hpc.xmu.edu.cn"; localPort = 22; };
|
||||
};
|
||||
nginx = { enable = true; applications.webdav.instances."local.webdav.chn.moe" = {}; };
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "xCYRbZEaGloMk7Awr00UR3JcDJy4AzVp4QvGNoyEgFY=";
|
||||
wireguardIp = "192.168.83.4";
|
||||
};
|
||||
};
|
||||
users.users = [ "chn" "xll" "zem" "yjq" "yxy" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
BIN
devices/pc/color/TPLCD_161B_Default.icm
LFS
Executable file
BIN
devices/pc/color/TPLCD_161B_Default.icm
LFS
Executable file
Binary file not shown.
BIN
devices/pc/color/TPLCD_161B_Native.icm
LFS
Executable file
BIN
devices/pc/color/TPLCD_161B_Native.icm
LFS
Executable file
Binary file not shown.
BIN
devices/pc/color/TPLCD_161B_Native_HDR.icm
LFS
Executable file
BIN
devices/pc/color/TPLCD_161B_Native_HDR.icm
LFS
Executable file
Binary file not shown.
BIN
devices/pc/color/TPLCD_161B_REC709.icm
LFS
Executable file
BIN
devices/pc/color/TPLCD_161B_REC709.icm
LFS
Executable file
Binary file not shown.
BIN
devices/pc/color/TPLCD_161B_sRGB.icm
LFS
Executable file
BIN
devices/pc/color/TPLCD_161B_sRGB.icm
LFS
Executable file
Binary file not shown.
161
devices/pc/default.nix
Normal file
161
devices/pc/default.nix
Normal file
@@ -0,0 +1,161 @@
|
||||
inputs:
|
||||
{
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
vfat."/dev/disk/by-uuid/3F57-0EBE" = "/boot/efi";
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/02e426ec-cfa2-4a18-b3a5-57ef04d66614"."/" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
decrypt.auto =
|
||||
{
|
||||
"/dev/disk/by-uuid/55fdd19f-0f1d-4c37-bd4e-6df44fc31f26" = { mapper = "root"; ssd = true; };
|
||||
"/dev/disk/by-uuid/4be45329-a054-4c20-8965-8c5b7ee6b35d" =
|
||||
{ mapper = "swap"; ssd = true; before = [ "root" ]; };
|
||||
};
|
||||
swap = [ "/dev/mapper/swap" ];
|
||||
resume = "/dev/mapper/swap";
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
grub =
|
||||
{
|
||||
# TODO: install windows
|
||||
# windowsEntries = { "7317-1DB6" = "Windows"; "7321-FA9C" = "Windows for malware"; };
|
||||
installDevice = "efi";
|
||||
};
|
||||
nix =
|
||||
{
|
||||
marches =
|
||||
[
|
||||
"znver2" "znver3" "znver4"
|
||||
# FXSR SAHF XSAVE
|
||||
"sandybridge"
|
||||
# FXSR PREFETCHW RDRND SAHF
|
||||
"silvermont"
|
||||
# FXSR HLE LZCNT PREFETCHW RDRND SAHF XSAVE
|
||||
"broadwell"
|
||||
# FXSR HLE LZCNT PREFETCHW RDRND SAHF SGX XSAVE
|
||||
"skylake"
|
||||
# AVX-VNNI CLDEMOTE GFNI-SSE HRESET KL LZCNT MOVDIR64B MOVDIRI PCONFIG PREFETCHW PTWRITE RDRND
|
||||
# SERIALIZE SGX WAITPKG WIDEKL XSAVE XSAVEOPT
|
||||
"alderlake"
|
||||
];
|
||||
};
|
||||
nixpkgs =
|
||||
{ march = "znver4"; cuda = { enable = true; capabilities = [ "8.9" ]; forwardCompat = false; }; };
|
||||
kernel.patches = [ "cjktty" "lantian" "hibernate-progress" ];
|
||||
networking.hostname = "pc";
|
||||
sysctl.laptop-mode = 5;
|
||||
};
|
||||
hardware =
|
||||
{
|
||||
cpus = [ "amd" ];
|
||||
gpu.type = "nvidia";
|
||||
bluetooth.enable = true;
|
||||
joystick.enable = true;
|
||||
printer.enable = true;
|
||||
sound.enable = true;
|
||||
legion.enable = true;
|
||||
};
|
||||
packages.packageSet = "workstation";
|
||||
virtualization =
|
||||
{
|
||||
waydroid.enable = true;
|
||||
docker.enable = true;
|
||||
kvmHost = { enable = true; gui = true; autoSuspend = [ "win10" "hardconnect" ]; };
|
||||
nspawn = [ "arch" "ubuntu-22.04" "fedora" ];
|
||||
};
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
samba =
|
||||
{
|
||||
enable = true;
|
||||
private = true;
|
||||
hostsAllowed = "192.168. 127.";
|
||||
shares =
|
||||
{
|
||||
media.path = "/run/media/chn";
|
||||
home.path = "/home/chn";
|
||||
mnt.path = "/mnt";
|
||||
share.path = "/home/chn/share";
|
||||
};
|
||||
};
|
||||
sshd.enable = true;
|
||||
xray.client =
|
||||
{
|
||||
enable = true;
|
||||
serverAddress = "74.211.99.69";
|
||||
serverName = "vps6.xserver.chn.moe";
|
||||
dns =
|
||||
{
|
||||
extraInterfaces = [ "docker0" ];
|
||||
hosts =
|
||||
{
|
||||
"mirism.one" = "74.211.99.69";
|
||||
"beta.mirism.one" = "74.211.99.69";
|
||||
"ng01.mirism.one" = "74.211.99.69";
|
||||
"debug.mirism.one" = "127.0.0.1";
|
||||
"initrd.vps6.chn.moe" = "74.211.99.69";
|
||||
"nix-store.chn.moe" = "127.0.0.1";
|
||||
"initrd.nas.chn.moe" = "192.168.1.185";
|
||||
};
|
||||
};
|
||||
};
|
||||
firewall.trustedInterfaces = [ "virbr0" "waydroid0" ];
|
||||
acme = { enable = true; cert."debug.mirism.one" = {}; };
|
||||
frpClient =
|
||||
{
|
||||
enable = true;
|
||||
serverName = "frp.chn.moe";
|
||||
user = "pc";
|
||||
stcpVisitor."yy.vnc".localPort = 6187;
|
||||
};
|
||||
nix-serve = { enable = true; hostname = "nix-store.chn.moe"; };
|
||||
smartd.enable = true;
|
||||
misskey.instances.misskey.hostname = "xn--qbtm095lrg0bfka60z.chn.moe";
|
||||
beesd = { enable = true; instances.root = { device = "/"; hashTableSizeMB = 4096; threads = 4; }; };
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "l1gFSDCeBxyf/BipXNvoEvVvLqPgdil84nmr5q6+EEw=";
|
||||
wireguardIp = "192.168.83.3";
|
||||
};
|
||||
gamemode = { enable = true; drmDevice = 0; };
|
||||
slurm = { enable = true; cpu = { cores = 16; threads = 2; }; memoryMB = 94208; };
|
||||
};
|
||||
bugs = [ "xmunet" "backlight" "amdpstate" ];
|
||||
};
|
||||
virtualisation.virtualbox.host = { enable = true; enableExtensionPack = true; };
|
||||
home-manager.users.chn.config.programs.plasma.startup.autoStartScript.xcalib.text =
|
||||
"${inputs.pkgs.xcalib}/bin/xcalib -d :0 ${./color/TPLCD_161B_Default.icm}";
|
||||
powerManagement.resumeCommands =
|
||||
''
|
||||
${inputs.pkgs.kmod}/bin/modprobe -r mt7921e
|
||||
${inputs.pkgs.kmod}/bin/modprobe mt7921e
|
||||
'';
|
||||
services.xserver.displayManager.defaultSession = inputs.lib.mkForce "plasma";
|
||||
specialisation.hybrid.configuration =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
hardware.gpu =
|
||||
{ type = inputs.lib.mkForce "amd+nvidia"; prime.busId = { amd = "8:0:0"; nvidia = "1:0:0"; }; };
|
||||
services.gamemode.drmDevice = inputs.lib.mkForce 1;
|
||||
};
|
||||
system.nixos.tags = [ "hybrid-graphic" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
76
devices/surface/default.nix
Normal file
76
devices/surface/default.nix
Normal file
@@ -0,0 +1,76 @@
|
||||
inputs:
|
||||
{
|
||||
imports = inputs.localLib.mkModules [ inputs.topInputs.nixos-hardware.nixosModules.microsoft-surface-pro-intel ];
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
vfat."/dev/disk/by-uuid/7179-9C69" = "/boot/efi";
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/c6d35075-85fe-4129-aaa8-f436ab85ce43"."/boot" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
decrypt.auto =
|
||||
{
|
||||
"/dev/disk/by-uuid/4f7420f9-ea19-4713-b084-2ac8f0a963ac" = { mapper = "root"; ssd = true; };
|
||||
"/dev/disk/by-uuid/88bd9d44-928b-40a2-8f3d-6dcd257c4601" =
|
||||
{ mapper = "swap"; ssd = true; before = [ "root" ]; };
|
||||
};
|
||||
swap = [ "/dev/mapper/swap" ];
|
||||
resume = "/dev/mapper/swap";
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
nixpkgs.march = "skylake";
|
||||
grub.installDevice = "efi";
|
||||
nix.substituters = [ "https://cache.nixos.org/" "https://nix-store.chn.moe" ];
|
||||
kernel.patches = [ "cjktty" "lantian" "surface" ];
|
||||
networking.hostname = "surface";
|
||||
};
|
||||
hardware =
|
||||
{
|
||||
cpus = [ "intel" ];
|
||||
gpu.type = "intel";
|
||||
bluetooth.enable = true;
|
||||
joystick.enable = true;
|
||||
printer.enable = true;
|
||||
sound.enable = true;
|
||||
};
|
||||
packages.packageSet = "desktop-fat";
|
||||
virtualization = { docker.enable = true; waydroid.enable = true; };
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
sshd.enable = true;
|
||||
xray.client =
|
||||
{
|
||||
enable = true;
|
||||
serverAddress = "74.211.99.69";
|
||||
serverName = "vps6.xserver.chn.moe";
|
||||
dns.extraInterfaces = [ "docker0" ];
|
||||
};
|
||||
firewall.trustedInterfaces = [ "virbr0" ];
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "j7qEeODVMH31afKUQAmKRGLuqg8Bxd0dIPbo17LHqAo=";
|
||||
wireguardIp = "192.168.83.5";
|
||||
};
|
||||
beesd = { enable = true; instances.root = { device = "/"; hashTableSizeMB = 512; }; };
|
||||
};
|
||||
bugs = [ "xmunet" ];
|
||||
};
|
||||
boot.kernelParams = [ "intel_iommu=off" ];
|
||||
environment.systemPackages = with inputs.pkgs; [ maliit-keyboard maliit-framework ];
|
||||
powerManagement.resumeCommands = ''${inputs.pkgs.systemd}/bin/systemctl restart iptsd'';
|
||||
};
|
||||
}
|
||||
84
devices/vps6/default.nix
Normal file
84
devices/vps6/default.nix
Normal file
@@ -0,0 +1,84 @@
|
||||
inputs:
|
||||
{
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/24577c0e-d56b-45ba-8b36-95a848228600"."/boot" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
decrypt.manual =
|
||||
{
|
||||
enable = true;
|
||||
devices."/dev/disk/by-uuid/4f8aca22-9ec6-4fad-b21a-fd9d8d0514e8" = { mapper = "root"; ssd = true; };
|
||||
delayedMount = [ "/" ];
|
||||
};
|
||||
swap = [ "/nix/swap/swap" ];
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
grub.installDevice = "/dev/disk/by-path/pci-0000:00:05.0-scsi-0:0:0:0";
|
||||
nixpkgs.march = "sandybridge";
|
||||
nix.substituters = [ "https://cache.nixos.org/" "https://nix-store.chn.moe" ];
|
||||
initrd.sshd.enable = true;
|
||||
networking.hostname = "vps6";
|
||||
};
|
||||
packages.packageSet = "server";
|
||||
services =
|
||||
{
|
||||
snapper.enable = false;
|
||||
sshd.enable = true;
|
||||
xray.server = { enable = true; serverName = "vps6.xserver.chn.moe"; };
|
||||
frpServer = { enable = true; serverName = "frp.chn.moe"; };
|
||||
nginx =
|
||||
{
|
||||
streamProxy.map =
|
||||
{
|
||||
"anchor.fm" = { upstream = "anchor.fm:443"; proxyProtocol = false; };
|
||||
"podcasters.spotify.com" = { upstream = "podcasters.spotify.com:443"; proxyProtocol = false; };
|
||||
"xlog.chn.moe" = { upstream = "cname.xlog.app:443"; proxyProtocol = false; };
|
||||
}
|
||||
// (builtins.listToAttrs (builtins.map
|
||||
(site: { name = "${site}.chn.moe"; value.upstream.address = "wireguard.pc.chn.moe"; })
|
||||
[ "nix-store" "xn--qbtm095lrg0bfka60z" ]))
|
||||
// (builtins.listToAttrs (builtins.map
|
||||
(site: { name = "${site}.chn.moe"; value.upstream.address = "wireguard.vps7.chn.moe"; })
|
||||
[
|
||||
"xn--s8w913fdga" "misskey" "synapse" "syncv3.synapse" "matrix" "syncv3.matrix"
|
||||
"send" "kkmeeting" "api" "git" "grafana" "vikunja"
|
||||
]));
|
||||
applications =
|
||||
{
|
||||
element.instances."element.chn.moe" = {};
|
||||
synapse-admin.instances."synapse-admin.chn.moe" = {};
|
||||
catalog.enable = true;
|
||||
blog.enable = true;
|
||||
main.enable = true;
|
||||
};
|
||||
};
|
||||
coturn.enable = true;
|
||||
httpua.enable = true;
|
||||
mirism.enable = true;
|
||||
fail2ban.enable = true;
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "pc" "nas" "vps7" "surface" ];
|
||||
publicKey = "AVOsYUKQQCvo3ctst3vNi8XSVWo1Wh15066aHh+KpF4=";
|
||||
wireguardIp = "192.168.83.1";
|
||||
listenIp = "74.211.99.69";
|
||||
lighthouse = true;
|
||||
};
|
||||
beesd = { enable = true; instances.root = { device = "/"; hashTableSizeMB = 64; }; };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
79
devices/vps7/default.nix
Normal file
79
devices/vps7/default.nix
Normal file
@@ -0,0 +1,79 @@
|
||||
inputs:
|
||||
{
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/e36287f7-7321-45fa-ba1e-d126717a65f0"."/boot" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
decrypt.manual =
|
||||
{
|
||||
enable = true;
|
||||
devices."/dev/disk/by-uuid/db48c8de-bcf7-43ae-a977-60c4f390d5c4" = { mapper = "root"; ssd = true; };
|
||||
delayedMount = [ "/" ];
|
||||
};
|
||||
swap = [ "/nix/swap/swap" ];
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
grub.installDevice = "/dev/disk/by-path/pci-0000:00:05.0-scsi-0:0:0:0";
|
||||
nixpkgs.march = "broadwell";
|
||||
nix.substituters = [ "https://cache.nixos.org/" "https://nix-store.chn.moe" ];
|
||||
initrd.sshd.enable = true;
|
||||
networking.hostname = "vps7";
|
||||
gui.preferred = false;
|
||||
};
|
||||
packages.packageSet = "desktop";
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
sshd.enable = true;
|
||||
rsshub.enable = true;
|
||||
wallabag.enable = true;
|
||||
misskey.instances =
|
||||
{
|
||||
misskey.hostname = "xn--s8w913fdga.chn.moe";
|
||||
misskey-old = { port = 9727; redis.port = 3546; meilisearch.enable = false; };
|
||||
};
|
||||
synapse.instances =
|
||||
{
|
||||
synapse.matrixHostname = "synapse.chn.moe";
|
||||
matrix = { port = 8009; redisPort = 6380; slidingSyncPort = 9001; };
|
||||
};
|
||||
xrdp = { enable = true; hostname = [ "vps7.chn.moe" ]; };
|
||||
vaultwarden.enable = true;
|
||||
beesd = { enable = true; instances.root = { device = "/"; hashTableSizeMB = 1024; }; };
|
||||
photoprism.enable = true;
|
||||
nextcloud.enable = true;
|
||||
freshrss.enable = true;
|
||||
send.enable = true;
|
||||
huginn.enable = true;
|
||||
fz-new-order.enable = true;
|
||||
nginx.applications = { kkmeeting.enable = true; webdav.instances."webdav.chn.moe" = {}; };
|
||||
httpapi.enable = true;
|
||||
gitea.enable = true;
|
||||
grafana.enable = true;
|
||||
fail2ban.enable = true;
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "n056ppNxC9oECcW7wEbALnw8GeW7nrMImtexKWYVUBk=";
|
||||
wireguardIp = "192.168.83.2";
|
||||
listenIp = "95.111.228.40";
|
||||
};
|
||||
vikunja.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
99
devices/xmupc1/default.nix
Normal file
99
devices/xmupc1/default.nix
Normal file
@@ -0,0 +1,99 @@
|
||||
inputs:
|
||||
{
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
vfat."/dev/disk/by-uuid/3F57-0EBE" = "/boot/efi";
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/02e426ec-cfa2-4a18-b3a5-57ef04d66614"."/" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
swap = [ "/dev/mapper/swap" ];
|
||||
resume = "/dev/mapper/swap";
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
grub.installDevice = "efi";
|
||||
nixpkgs =
|
||||
{
|
||||
march = "znver3";
|
||||
cuda =
|
||||
{
|
||||
enable = true;
|
||||
capabilities =
|
||||
[
|
||||
# 2080 Ti
|
||||
"7.5"
|
||||
# 3090
|
||||
"8.6"
|
||||
# 4090
|
||||
"8.9"
|
||||
];
|
||||
forwardCompat = false;
|
||||
};
|
||||
};
|
||||
gui.preferred = false;
|
||||
kernel.patches = [ "cjktty" "lantian" ];
|
||||
networking.hostname = "xmupc1";
|
||||
};
|
||||
hardware =
|
||||
{
|
||||
cpus = [ "amd" ];
|
||||
gpu.type = "nvidia";
|
||||
bluetooth.enable = true;
|
||||
joystick.enable = true;
|
||||
printer.enable = true;
|
||||
sound.enable = true;
|
||||
};
|
||||
packages.packageSet = "workstation";
|
||||
virtualization = { docker.enable = true; kvmHost = { enable = true; gui = true; }; };
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
samba =
|
||||
{
|
||||
enable = true;
|
||||
private = true;
|
||||
hostsAllowed = "192.168. 127.";
|
||||
shares.home.path = "/home";
|
||||
};
|
||||
sshd.enable = true;
|
||||
xray.client =
|
||||
{
|
||||
enable = true;
|
||||
serverAddress = "74.211.99.69";
|
||||
serverName = "vps6.xserver.chn.moe";
|
||||
dns.extraInterfaces = [ "docker0" ];
|
||||
};
|
||||
firewall.trustedInterfaces = [ "virbr0" "waydroid0" ];
|
||||
smartd.enable = true;
|
||||
beesd =
|
||||
{
|
||||
enable = true;
|
||||
instances =
|
||||
{
|
||||
root = { device = "/"; hashTableSizeMB = 1536; threads = 4; };
|
||||
nix = { device = "/nix"; hashTableSizeMB = 64; };
|
||||
};
|
||||
};
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "JEY7D4ANfTpevjXNvGDYO6aGwtBGRXsf/iwNwjwDRQk=";
|
||||
wireguardIp = "192.168.83.6";
|
||||
};
|
||||
};
|
||||
bugs = [ "xmunet" "amdpstate" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
1013
flake.lock
generated
1013
flake.lock
generated
File diff suppressed because it is too large
Load Diff
616
flake.nix
616
flake.nix
@@ -4,7 +4,7 @@
|
||||
inputs =
|
||||
{
|
||||
nixpkgs.url = "github:CHN-beta/nixpkgs/nixos-23.11";
|
||||
nixpkgs-unstable.url = "github:CHN-beta/nixpkgs/nixos-unstable";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-2305.url = "github:CHN-beta/nixpkgs/nixos-23.05";
|
||||
home-manager = { url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
sops-nix =
|
||||
@@ -13,7 +13,7 @@
|
||||
inputs = { nixpkgs.follows = "nixpkgs"; nixpkgs-stable.follows = "nixpkgs"; };
|
||||
};
|
||||
aagl = { url = "github:ezKEa/aagl-gtk-on-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nix-index-database = { url = "github:Mic92/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nix-index-database = { url = "github:Mic92/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs-unstable"; };
|
||||
nur.url = "github:nix-community/NUR";
|
||||
nixos-cn = { url = "github:nixos-cn/flakes"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nur-xddxdd = { url = "github:xddxdd/nur-packages"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
@@ -24,13 +24,15 @@
|
||||
inputs = { nixpkgs.follows = "nixpkgs"; nix-index-database.follows = "nix-index-database"; };
|
||||
};
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
qchem = { url = "github:Nix-QChem/NixOS-QChem"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
qchem = { url = "github:Nix-QChem/NixOS-QChem/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nixd = { url = "github:nix-community/nixd"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
napalm = { url = "github:nix-community/napalm"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nixpak = { url = "github:nixpak/nixpak"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
deploy-rs = { url = "github:serokell/deploy-rs"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
pnpm2nix-nzbr = { url = "github:CHN-beta/pnpm2nix-nzbr"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
# oneapi
|
||||
lmix = { url = "github:CHN-beta/lmix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
# nvhpc
|
||||
dguibert-nur-packages = { url = "github:CHN-beta/dguibert-nur-packages"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
plasma-manager =
|
||||
{
|
||||
@@ -38,11 +40,39 @@
|
||||
inputs = { nixpkgs.follows = "nixpkgs"; home-manager.follows = "home-manager"; };
|
||||
};
|
||||
nix-doom-emacs = { url = "github:nix-community/nix-doom-emacs"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nur-linyinfeng = { url = "github:linyinfeng/nur-packages"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nixos-hardware.url = "github:CHN-beta/nixos-hardware";
|
||||
envfs = { url = "github:Mic92/envfs"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nix-fast-build = { url = "github:/Mic92/nix-fast-build"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
|
||||
misskey = { url = "git+https://github.com/CHN-beta/misskey?submodules=1"; flake = false; };
|
||||
rsshub = { url = "github:DIYgod/RSSHub"; flake = false; };
|
||||
zpp-bits = { url = "github:eyalz800/zpp_bits"; flake = false; };
|
||||
citation-style-language = { url = "git+https://github.com/zepinglee/citeproc-lua?submodules=1"; flake = false; };
|
||||
concurrencpp = { url = "github:David-Haim/concurrencpp"; flake = false; };
|
||||
cppcoro = { url = "github:Garcia6l20/cppcoro"; flake = false; };
|
||||
date = { url = "github:HowardHinnant/date"; flake = false; };
|
||||
eigen = { url = "gitlab:libeigen/eigen"; flake = false; };
|
||||
matplotplusplus = { url = "github:alandefreitas/matplotplusplus"; flake = false; };
|
||||
nameof = { url = "github:Neargye/nameof"; flake = false; };
|
||||
nodesoup = { url = "github:olvb/nodesoup"; flake = false; };
|
||||
tgbot-cpp = { url = "github:reo7sp/tgbot-cpp"; flake = false; };
|
||||
v-sim = { url = "gitlab:l_sim/v_sim"; flake = false; };
|
||||
win11os-kde = { url = "github:yeyushengfan258/Win11OS-kde"; flake = false; };
|
||||
fluent-kde = { url = "github:vinceliuice/Fluent-kde"; flake = false; };
|
||||
rycee = { url = "gitlab:rycee/nur-expressions"; flake = false; };
|
||||
cascade = { url = "github:CHN-beta/cascade"; flake = false; };
|
||||
blurred-wallpaper = { url = "github:bouteillerAlan/blurredwallpaper"; flake = false; };
|
||||
slate = { url = "github:TheBigWazz/Slate"; flake = false; };
|
||||
linux-surface = { url = "github:linux-surface/linux-surface"; flake = false; };
|
||||
lepton = { url = "github:black7375/Firefox-UI-Fix"; flake = false; };
|
||||
lmod = { url = "github:TACC/Lmod"; flake = false; };
|
||||
};
|
||||
|
||||
outputs = inputs:
|
||||
let
|
||||
localLib = import ./local/lib inputs.nixpkgs.lib;
|
||||
devices = builtins.attrNames (builtins.readDir ./devices);
|
||||
in
|
||||
{
|
||||
packages.x86_64-linux =
|
||||
@@ -50,7 +80,7 @@
|
||||
default = inputs.nixpkgs.legacyPackages.x86_64-linux.writeText "systems"
|
||||
(builtins.concatStringsSep "\n" (builtins.map
|
||||
(system: builtins.toString inputs.self.outputs.nixosConfigurations.${system}.config.system.build.toplevel)
|
||||
[ "pc" "vps6" "vps7" "nas" "yoga" ]));
|
||||
[ "pc" "vps6" "vps7" "nas" "surface" ]));
|
||||
}
|
||||
// (
|
||||
builtins.listToAttrs (builtins.map
|
||||
@@ -59,569 +89,32 @@
|
||||
name = system;
|
||||
value = inputs.self.outputs.nixosConfigurations.${system}.config.system.build.toplevel;
|
||||
})
|
||||
[ "pc" "vps6" "vps7" "nas" "yoga" "xmupc1" ])
|
||||
devices)
|
||||
);
|
||||
# ssh-keygen -t rsa -C root@pe -f /mnt/nix/persistent/etc/ssh/ssh_host_rsa_key
|
||||
# ssh-keygen -t ed25519 -C root@pe -f /mnt/nix/persistent/etc/ssh/ssh_host_ed25519_key
|
||||
# systemd-machine-id-setup --root=/mnt/nix/persistent
|
||||
nixosConfigurations =
|
||||
let
|
||||
system =
|
||||
nixosConfigurations = builtins.listToAttrs (builtins.map
|
||||
(system:
|
||||
{
|
||||
name = system;
|
||||
value = inputs.nixpkgs.lib.nixosSystem
|
||||
{
|
||||
pc =
|
||||
{
|
||||
system =
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { topInputs = inputs; inherit localLib; };
|
||||
modules = localLib.mkModules
|
||||
[
|
||||
(moduleInputs:
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
vfat."/dev/disk/by-uuid/3F57-0EBE" = "/boot/efi";
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/02e426ec-cfa2-4a18-b3a5-57ef04d66614"."/" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
decrypt.auto =
|
||||
{
|
||||
"/dev/disk/by-uuid/55fdd19f-0f1d-4c37-bd4e-6df44fc31f26" = { mapper = "root"; ssd = true; };
|
||||
"/dev/disk/by-uuid/4be45329-a054-4c20-8965-8c5b7ee6b35d" =
|
||||
{ mapper = "swap"; ssd = true; before = [ "root" ]; };
|
||||
};
|
||||
swap = [ "/dev/mapper/swap" ];
|
||||
resume = "/dev/mapper/swap";
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
grub =
|
||||
{
|
||||
windowsEntries = { "7317-1DB6" = "Windows"; "7321-FA9C" = "Windows for malware"; };
|
||||
installDevice = "efi";
|
||||
};
|
||||
nix =
|
||||
{
|
||||
marches =
|
||||
[
|
||||
"alderlake"
|
||||
# CX16
|
||||
"sandybridge"
|
||||
# CX16 SAHF FXSR
|
||||
"silvermont"
|
||||
# RDSEED MWAITX SHA CLZERO CX16 SSE4A ABM CLFLUSHOPT WBNOINVD
|
||||
"znver2" "znver3"
|
||||
# CX16 SAHF FXSR HLE RDSEED
|
||||
"broadwell"
|
||||
];
|
||||
keepOutputs = true;
|
||||
};
|
||||
nixpkgs =
|
||||
{ march = "alderlake"; cuda = { enable = true; capabilities = [ "8.6" ]; forwardCompat = false; }; };
|
||||
kernel.patches = [ "cjktty" "lantian" ];
|
||||
impermanence.enable = true;
|
||||
networking.hostname = "pc";
|
||||
sysctl.laptop-mode = 5;
|
||||
};
|
||||
hardware =
|
||||
{
|
||||
cpus = [ "intel" ];
|
||||
gpus = [ "intel" "nvidia" ];
|
||||
bluetooth.enable = true;
|
||||
joystick.enable = true;
|
||||
printer.enable = true;
|
||||
sound.enable = true;
|
||||
prime = { enable = true; mode = "offload"; busId = { intel = "PCI:0:2:0"; nvidia = "PCI:1:0:0"; }; };
|
||||
gamemode.drmDevice = 1;
|
||||
};
|
||||
packages.packageSet = "workstation";
|
||||
virtualization =
|
||||
{
|
||||
waydroid.enable = true;
|
||||
docker.enable = true;
|
||||
kvmHost = { enable = true; gui = true; autoSuspend = [ "win10" "hardconnect" ]; };
|
||||
# kvmGuest.enable = true;
|
||||
nspawn = [ "arch" "ubuntu-22.04" "fedora" ];
|
||||
};
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
samba =
|
||||
{
|
||||
enable = true;
|
||||
private = true;
|
||||
hostsAllowed = "192.168. 127.";
|
||||
shares =
|
||||
{
|
||||
media.path = "/run/media/chn";
|
||||
home.path = "/home/chn";
|
||||
mnt.path = "/mnt";
|
||||
share.path = "/home/chn/share";
|
||||
};
|
||||
};
|
||||
sshd.enable = true;
|
||||
xrayClient =
|
||||
{
|
||||
enable = true;
|
||||
serverAddress = "74.211.99.69";
|
||||
serverName = "vps6.xserver.chn.moe";
|
||||
dns =
|
||||
{
|
||||
extraInterfaces = [ "docker0" ];
|
||||
hosts =
|
||||
{
|
||||
"mirism.one" = "74.211.99.69";
|
||||
"beta.mirism.one" = "74.211.99.69";
|
||||
"ng01.mirism.one" = "74.211.99.69";
|
||||
"debug.mirism.one" = "127.0.0.1";
|
||||
"initrd.vps6.chn.moe" = "74.211.99.69";
|
||||
"nix-store.chn.moe" = "127.0.0.1";
|
||||
"initrd.nas.chn.moe" = "192.168.1.185";
|
||||
};
|
||||
};
|
||||
};
|
||||
firewall.trustedInterfaces = [ "virbr0" "waydroid0" ];
|
||||
acme = { enable = true; cert."debug.mirism.one" = {}; };
|
||||
frpClient =
|
||||
{
|
||||
enable = true;
|
||||
serverName = "frp.chn.moe";
|
||||
user = "pc";
|
||||
stcpVisitor."yy.vnc".localPort = 6187;
|
||||
};
|
||||
nix-serve = { enable = true; hostname = "nix-store.chn.moe"; };
|
||||
smartd.enable = true;
|
||||
misskey.instances.misskey.hostname = "xn--qbtm095lrg0bfka60z.chn.moe";
|
||||
beesd = { enable = true; instances.root = { device = "/"; hashTableSizeMB = 2048; }; };
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "l1gFSDCeBxyf/BipXNvoEvVvLqPgdil84nmr5q6+EEw=";
|
||||
wireguardIp = "192.168.83.3";
|
||||
};
|
||||
};
|
||||
bugs =
|
||||
[
|
||||
"suspend-hibernate-no-platform" "hibernate-iwlwifi" "suspend-lid-no-wakeup" "xmunet"
|
||||
"suspend-hibernate-waydroid" "power"
|
||||
];
|
||||
};
|
||||
vps6 =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/24577c0e-d56b-45ba-8b36-95a848228600"."/boot" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
decrypt.manual =
|
||||
{
|
||||
enable = true;
|
||||
devices."/dev/disk/by-uuid/4f8aca22-9ec6-4fad-b21a-fd9d8d0514e8" = { mapper = "root"; ssd = true; };
|
||||
delayedMount = [ "/" ];
|
||||
};
|
||||
swap = [ "/nix/swap/swap" ];
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
grub.installDevice = "/dev/disk/by-path/pci-0000:00:05.0-scsi-0:0:0:0";
|
||||
nixpkgs.march = "sandybridge";
|
||||
nix.substituters = [ "https://cache.nixos.org/" "https://nix-store.chn.moe" ];
|
||||
initrd.sshd.enable = true;
|
||||
impermanence.enable = true;
|
||||
networking.hostname = "vps6";
|
||||
};
|
||||
packages.packageSet = "server";
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
sshd.enable = true;
|
||||
xrayServer = { enable = true; serverName = "vps6.xserver.chn.moe"; };
|
||||
frpServer = { enable = true; serverName = "frp.chn.moe"; };
|
||||
nginx =
|
||||
{
|
||||
streamProxy.map =
|
||||
{
|
||||
"anchor.fm" = { upstream = "anchor.fm:443"; proxyProtocol = false; };
|
||||
"podcasters.spotify.com" = { upstream = "podcasters.spotify.com:443"; proxyProtocol = false; };
|
||||
"xlog.chn.moe" = { upstream = "cname.xlog.app:443"; proxyProtocol = false; };
|
||||
}
|
||||
// (builtins.listToAttrs (builtins.map
|
||||
(site: { name = "${site}.chn.moe"; value.upstream.address = "wireguard.pc.chn.moe"; })
|
||||
[ "nix-store" "xn--qbtm095lrg0bfka60z" ]))
|
||||
// (builtins.listToAttrs (builtins.map
|
||||
(site: { name = "${site}.chn.moe"; value.upstream.address = "wireguard.vps7.chn.moe"; })
|
||||
[
|
||||
"xn--s8w913fdga" "misskey" "synapse" "syncv3.synapse" "matrix" "syncv3.matrix"
|
||||
"send" "kkmeeting" "api" "git" "grafana"
|
||||
]));
|
||||
applications =
|
||||
{
|
||||
element.instances."element.chn.moe" = {};
|
||||
synapse-admin.instances."synapse-admin.chn.moe" = {};
|
||||
catalog.enable = true;
|
||||
blog.enable = true;
|
||||
main.enable = true;
|
||||
};
|
||||
};
|
||||
coturn.enable = true;
|
||||
httpua.enable = true;
|
||||
mirism.enable = true;
|
||||
fail2ban.enable = true;
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "pc" "nas" "vps7" ];
|
||||
publicKey = "AVOsYUKQQCvo3ctst3vNi8XSVWo1Wh15066aHh+KpF4=";
|
||||
wireguardIp = "192.168.83.1";
|
||||
externalIp = "74.211.99.69";
|
||||
lighthouse = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
vps7 =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/e36287f7-7321-45fa-ba1e-d126717a65f0"."/boot" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
decrypt.manual =
|
||||
{
|
||||
enable = true;
|
||||
devices."/dev/disk/by-uuid/db48c8de-bcf7-43ae-a977-60c4f390d5c4" = { mapper = "root"; ssd = true; };
|
||||
delayedMount = [ "/" ];
|
||||
};
|
||||
swap = [ "/nix/swap/swap" ];
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
grub.installDevice = "/dev/disk/by-path/pci-0000:00:05.0-scsi-0:0:0:0";
|
||||
nixpkgs.march = "broadwell";
|
||||
nix.substituters = [ "https://cache.nixos.org/" "https://nix-store.chn.moe" ];
|
||||
initrd.sshd.enable = true;
|
||||
impermanence.enable = true;
|
||||
networking.hostname = "vps7";
|
||||
gui.preferred = false;
|
||||
};
|
||||
packages.packageSet = "desktop";
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
sshd.enable = true;
|
||||
rsshub.enable = true;
|
||||
wallabag.enable = true;
|
||||
misskey.instances =
|
||||
{
|
||||
misskey.hostname = "xn--s8w913fdga.chn.moe";
|
||||
misskey-old = { port = 9727; redis.port = 3546; meilisearch.enable = false; };
|
||||
};
|
||||
synapse.instances =
|
||||
{
|
||||
synapse.matrixHostname = "synapse.chn.moe";
|
||||
matrix = { port = 8009; redisPort = 6380; slidingSyncPort = 9001; };
|
||||
};
|
||||
xrdp = { enable = true; hostname = [ "vps7.chn.moe" ]; };
|
||||
vaultwarden.enable = true;
|
||||
beesd = { enable = true; instances.root = { device = "/"; hashTableSizeMB = 1024; }; };
|
||||
photoprism.enable = true;
|
||||
nextcloud.enable = true;
|
||||
freshrss.enable = true;
|
||||
send.enable = true;
|
||||
huginn.enable = true;
|
||||
fz-new-order.enable = true;
|
||||
nginx.applications = { kkmeeting.enable = true; webdav.instances."webdav.chn.moe" = {}; };
|
||||
httpapi.enable = true;
|
||||
mastodon.enable = true;
|
||||
gitea.enable = true;
|
||||
grafana.enable = true;
|
||||
fail2ban.enable = true;
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "n056ppNxC9oECcW7wEbALnw8GeW7nrMImtexKWYVUBk=";
|
||||
wireguardIp = "192.168.83.2";
|
||||
externalIp = "95.111.228.40";
|
||||
};
|
||||
};
|
||||
};
|
||||
nas =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
vfat."/dev/disk/by-uuid/13BC-F0C9" = "/boot/efi";
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/0e184f3b-af6c-4f5d-926a-2559f2dc3063"."/boot" = "/boot";
|
||||
"/dev/mapper/nix"."/nix" = "/nix";
|
||||
"/dev/mapper/root1" =
|
||||
{
|
||||
"/nix/rootfs" = "/nix/rootfs";
|
||||
"/nix/persistent" = "/nix/persistent";
|
||||
"/nix/nodatacow" = "/nix/nodatacow";
|
||||
"/nix/rootfs/current" = "/";
|
||||
"/nix/backup" = "/nix/backup";
|
||||
};
|
||||
};
|
||||
};
|
||||
decrypt.manual =
|
||||
{
|
||||
enable = true;
|
||||
devices =
|
||||
{
|
||||
"/dev/disk/by-uuid/5cf1d19d-b4a5-4e67-8e10-f63f0d5bb649".mapper = "root1";
|
||||
"/dev/disk/by-uuid/aa684baf-fd8a-459c-99ba-11eb7636cb0d".mapper = "root2";
|
||||
"/dev/disk/by-uuid/a779198f-cce9-4c3d-a64a-9ec45f6f5495" = { mapper = "nix"; ssd = true; };
|
||||
};
|
||||
delayedMount = [ "/" "/nix" ];
|
||||
};
|
||||
swap = [ "/nix/swap/swap" ];
|
||||
rollingRootfs = { device = "/dev/mapper/root1"; path = "/nix/rootfs"; };
|
||||
};
|
||||
initrd.sshd.enable = true;
|
||||
grub.installDevice = "efi";
|
||||
nixpkgs.march = "silvermont";
|
||||
nix.substituters = [ "https://cache.nixos.org/" "https://nix-store.chn.moe" ];
|
||||
kernel.patches = [ "cjktty" ];
|
||||
impermanence.enable = true;
|
||||
networking.hostname = "nas";
|
||||
gui.preferred = false;
|
||||
};
|
||||
hardware = { cpus = [ "intel" ]; gpus = [ "intel" ]; };
|
||||
packages.packageSet = "desktop";
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
samba =
|
||||
{
|
||||
enable = true;
|
||||
hostsAllowed = "192.168. 127.";
|
||||
shares = { home.path = "/home"; root.path = "/"; };
|
||||
};
|
||||
sshd = { enable = true; passwordAuthentication = true; };
|
||||
xrayClient =
|
||||
{
|
||||
enable = true;
|
||||
serverAddress = "74.211.99.69";
|
||||
serverName = "vps6.xserver.chn.moe";
|
||||
dns.extraInterfaces = [ "docker0" ];
|
||||
};
|
||||
xrdp = { enable = true; hostname = [ "nas.chn.moe" "office.chn.moe" ]; };
|
||||
groupshare.enable = true;
|
||||
smartd.enable = true;
|
||||
beesd =
|
||||
{
|
||||
enable = true;
|
||||
instances =
|
||||
{
|
||||
root = { device = "/"; hashTableSizeMB = 2048; };
|
||||
nix = { device = "/nix"; hashTableSizeMB = 128; };
|
||||
};
|
||||
};
|
||||
frpClient =
|
||||
{
|
||||
enable = true;
|
||||
serverName = "frp.chn.moe";
|
||||
user = "nas";
|
||||
stcp.hpc = { localIp = "hpc.xmu.edu.cn"; localPort = 22; };
|
||||
};
|
||||
nginx = { enable = true; applications.webdav.instances."local.webdav.chn.moe" = {}; };
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "xCYRbZEaGloMk7Awr00UR3JcDJy4AzVp4QvGNoyEgFY=";
|
||||
wireguardIp = "192.168.83.4";
|
||||
};
|
||||
};
|
||||
users.users = [ "chn" "xll" "zem" "yjq" "yxy" ];
|
||||
};
|
||||
yoga =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
vfat."/dev/disk/by-uuid/86B8-CF80" = "/boot/efi";
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/e252f81d-b4b3-479f-8664-380a9b73cf83"."/boot" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
decrypt.auto."/dev/disk/by-uuid/8186d34e-005c-4461-94c7-1003a5bd86c0" =
|
||||
{ mapper = "root"; ssd = true; };
|
||||
swap = [ "/nix/swap/swap" ];
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
nixpkgs.march = "silvermont";
|
||||
grub.installDevice = "efi";
|
||||
nix.substituters = [ "https://cache.nixos.org/" "https://nix-store.chn.moe" ];
|
||||
kernel.patches = [ "cjktty" ];
|
||||
impermanence.enable = true;
|
||||
networking.hostname = "yoga";
|
||||
};
|
||||
hardware =
|
||||
{
|
||||
cpus = [ "intel" ];
|
||||
gpus = [ "intel" ];
|
||||
bluetooth.enable = true;
|
||||
joystick.enable = true;
|
||||
printer.enable = true;
|
||||
sound.enable = true;
|
||||
halo-keyboard.enable = true;
|
||||
};
|
||||
packages.packageSet = "desktop-fat";
|
||||
virtualization.docker.enable = true;
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
sshd.enable = true;
|
||||
xrayClient =
|
||||
{
|
||||
enable = true;
|
||||
serverAddress = "74.211.99.69";
|
||||
serverName = "vps6.xserver.chn.moe";
|
||||
dns.extraInterfaces = [ "docker0" ];
|
||||
};
|
||||
firewall.trustedInterfaces = [ "virbr0" ];
|
||||
};
|
||||
bugs = [ "xmunet" ];
|
||||
};
|
||||
xmupc1 =
|
||||
{
|
||||
system =
|
||||
{
|
||||
fileSystems =
|
||||
{
|
||||
mount =
|
||||
{
|
||||
vfat."/dev/disk/by-uuid/3F57-0EBE" = "/boot/efi";
|
||||
btrfs =
|
||||
{
|
||||
"/dev/disk/by-uuid/02e426ec-cfa2-4a18-b3a5-57ef04d66614"."/" = "/boot";
|
||||
"/dev/mapper/root" = { "/nix" = "/nix"; "/nix/rootfs/current" = "/"; };
|
||||
};
|
||||
};
|
||||
swap = [ "/dev/mapper/swap" ];
|
||||
resume = "/dev/mapper/swap";
|
||||
rollingRootfs = { device = "/dev/mapper/root"; path = "/nix/rootfs"; };
|
||||
};
|
||||
grub.installDevice = "efi";
|
||||
nixpkgs =
|
||||
{
|
||||
march = "znver3";
|
||||
cuda =
|
||||
{
|
||||
enable = true;
|
||||
capabilities =
|
||||
[
|
||||
# 2080 Ti
|
||||
"7.5"
|
||||
# 3090
|
||||
"8.6"
|
||||
# 4090
|
||||
"8.9"
|
||||
];
|
||||
forwardCompat = false;
|
||||
};
|
||||
};
|
||||
gui.preferred = false;
|
||||
kernel.patches = [ "cjktty" ];
|
||||
impermanence.enable = true;
|
||||
networking.hostname = "xmupc1";
|
||||
};
|
||||
hardware =
|
||||
{
|
||||
cpus = [ "amd" ];
|
||||
gpus = [ "nvidia" ];
|
||||
bluetooth.enable = true;
|
||||
joystick.enable = true;
|
||||
printer.enable = true;
|
||||
sound.enable = true;
|
||||
gamemode.drmDevice = 1;
|
||||
};
|
||||
packages.packageSet = "workstation";
|
||||
virtualization = { docker.enable = true; kvmHost = { enable = true; gui = true; }; };
|
||||
services =
|
||||
{
|
||||
snapper.enable = true;
|
||||
fontconfig.enable = true;
|
||||
samba =
|
||||
{
|
||||
enable = true;
|
||||
private = true;
|
||||
hostsAllowed = "192.168. 127.";
|
||||
shares =
|
||||
{
|
||||
media.path = "/run/media/chn";
|
||||
home.path = "/home/chn";
|
||||
mnt.path = "/mnt";
|
||||
share.path = "/home/chn/share";
|
||||
};
|
||||
};
|
||||
sshd.enable = true;
|
||||
xrayClient =
|
||||
{
|
||||
enable = true;
|
||||
serverAddress = "74.211.99.69";
|
||||
serverName = "vps6.xserver.chn.moe";
|
||||
dns.extraInterfaces = [ "docker0" ];
|
||||
};
|
||||
firewall.trustedInterfaces = [ "virbr0" "waydroid0" ];
|
||||
acme = { enable = true; cert."debug.mirism.one" = {}; };
|
||||
smartd.enable = true;
|
||||
beesd = { enable = true; instances.root = { device = "/nix/persistent"; hashTableSizeMB = 2048; }; };
|
||||
wireguard =
|
||||
{
|
||||
enable = true;
|
||||
peers = [ "vps6" ];
|
||||
publicKey = "JEY7D4ANfTpevjXNvGDYO6aGwtBGRXsf/iwNwjwDRQk=";
|
||||
wireguardIp = "192.168.83.5";
|
||||
};
|
||||
};
|
||||
bugs = [ "xmunet" "firefox" ];
|
||||
};
|
||||
config.nixpkgs.overlays = [(final: prev: { localPackages =
|
||||
import ./local/pkgs { inherit (moduleInputs) lib; pkgs = final; topInputs = inputs; };})];
|
||||
})
|
||||
./modules
|
||||
./devices/${system}
|
||||
];
|
||||
};
|
||||
in builtins.listToAttrs (builtins.map
|
||||
(system:
|
||||
{
|
||||
name = system.name;
|
||||
value = inputs.nixpkgs.lib.nixosSystem
|
||||
{
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { topInputs = inputs; inherit localLib; };
|
||||
modules = localLib.mkModules
|
||||
[
|
||||
(inputs: { config.nixpkgs.overlays = [(final: prev:
|
||||
{ localPackages = (import ./local/pkgs { inherit (inputs) lib; pkgs = final; }); })]; })
|
||||
./modules
|
||||
{ config.nixos = system.value; }
|
||||
];
|
||||
};
|
||||
})
|
||||
(localLib.attrsToList system));
|
||||
})
|
||||
devices);
|
||||
# sudo HTTPS_PROXY=socks5://127.0.0.1:10884 nixos-install --flake .#bootstrap --option substituters http://127.0.0.1:5000 --option require-sigs false --option system-features gccarch-silvermont
|
||||
# nix-serve -p 5000
|
||||
# nix copy --substitute-on-destination --to ssh://server /run/current-system
|
||||
@@ -657,10 +150,11 @@
|
||||
inputs.self.nixosConfigurations.${node};
|
||||
};
|
||||
})
|
||||
[ "vps6" "vps7" "nas" "yoga" ]);
|
||||
[ "vps6" "vps7" "nas" "surface" ]);
|
||||
};
|
||||
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks inputs.self.deploy) inputs.deploy-rs.lib;
|
||||
overlays.default = final: prev:
|
||||
{ localPackages = (import ./local/pkgs { inherit (inputs) lib; pkgs = final; }); };
|
||||
config.archive = false;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
lib:
|
||||
{
|
||||
attrsToList = Attrs: builtins.map ( name: { inherit name; value = Attrs.${name}; } ) ( builtins.attrNames Attrs );
|
||||
attrsToList = attrs: builtins.map (name: { inherit name; value = attrs.${name}; }) (builtins.attrNames attrs);
|
||||
mkConditional = condition: trueResult: falseResult: let inherit (lib) mkMerge mkIf; in
|
||||
mkMerge [ ( mkIf condition trueResult ) ( mkIf (!condition) falseResult ) ];
|
||||
|
||||
|
||||
11
local/pkgs/blurred-wallpaper/default.nix
Normal file
11
local/pkgs/blurred-wallpaper/default.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ stdenv, src }: stdenv.mkDerivation
|
||||
{
|
||||
name = "blurred-wallpaper";
|
||||
inherit src;
|
||||
phases = [ "installPhase" ];
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/share/plasma/wallpapers/a2n.blur
|
||||
cp -r $src/* $out/share/plasma/wallpapers/a2n.blur
|
||||
'';
|
||||
}
|
||||
@@ -1,22 +1,14 @@
|
||||
{ stdenvNoCC, texlive, fetchFromGitHub }: stdenvNoCC.mkDerivation (finalAttrs: rec
|
||||
{ stdenvNoCC, texlive, src }: stdenvNoCC.mkDerivation (finalAttrs:
|
||||
{
|
||||
pname = "citation-style-language";
|
||||
version = "0.4.5";
|
||||
passthru = {
|
||||
name = "citation-style-language";
|
||||
inherit src;
|
||||
passthru =
|
||||
{
|
||||
pkgs = [ finalAttrs.finalPackage ];
|
||||
tlDeps = with texlive; [ latex ];
|
||||
tlType = "run";
|
||||
};
|
||||
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "zepinglee";
|
||||
repo = "citeproc-lua";
|
||||
rev = "v${version}";
|
||||
sha256 = "XH+GH+t/10hr4bfaod8F9JPxmBnAQlDmpSvQNDQsslM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ texlive.combined.scheme-full ];
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
@@ -1,13 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake }: stdenv.mkDerivation rec
|
||||
{ stdenv, cmake, src }: stdenv.mkDerivation
|
||||
{
|
||||
pname = "concurrencpp";
|
||||
version = "0.1.7";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "David-Haim";
|
||||
repo = "concurrencpp";
|
||||
rev = "v.${version}";
|
||||
sha256 = "4qT29YVjKEWcMrI5R5Ps8aD4grAAgz5VOxANjpp1oTo=";
|
||||
};
|
||||
name = "concurrencpp";
|
||||
inherit src;
|
||||
nativeBuildInputs = [ cmake ];
|
||||
}
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake }: stdenv.mkDerivation
|
||||
{ stdenv, cmake, src }: stdenv.mkDerivation
|
||||
{
|
||||
name = "cppcoro";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "Garcia6l20";
|
||||
repo = "cppcoro";
|
||||
rev = "e1d53e620b0eee828915ada179cd7ca8e66ca855";
|
||||
sha256 = "luBkf1x5kqXaVbQM01yWRmA5QvrQNZkFVCjRctJdnXc=";
|
||||
};
|
||||
inherit src;
|
||||
nativeBuildInputs = [ cmake ];
|
||||
patches = [ ./cppcoro-include-utility.patch ];
|
||||
}
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
{ stdenv, fetchFromGitHub }: stdenv.mkDerivation
|
||||
{ stdenv, src }: stdenv.mkDerivation
|
||||
{
|
||||
name = "date";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "HowardHinnant";
|
||||
repo = "date";
|
||||
rev = "cc4685a21e4a4fdae707ad1233c61bbaff241f93";
|
||||
sha256 = "KilhBEeLMvHtS76Gu0UhzE8lhS1+sCwQ1UL4pswKXTs=";
|
||||
};
|
||||
inherit src;
|
||||
phases = [ "installPhase" ];
|
||||
installPhase =
|
||||
''
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -r $src/{include,src} $out
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{ lib, pkgs }: with pkgs; rec
|
||||
{ lib, pkgs, topInputs }: with pkgs; rec
|
||||
{
|
||||
typora = callPackage ./typora {};
|
||||
vesta = callPackage ./vesta {};
|
||||
oneapi = callPackage ./oneapi {};
|
||||
rsshub = callPackage ./rsshub {};
|
||||
misskey = callPackage ./misskey { nodejs = nodejs_21; };
|
||||
rsshub = callPackage ./rsshub { src = topInputs.rsshub; };
|
||||
misskey = callPackage ./misskey { nodejs = nodejs_21; src = topInputs.misskey; };
|
||||
mk-meili-mgn = callPackage ./mk-meili-mgn {};
|
||||
# vasp = callPackage ./vasp
|
||||
# {
|
||||
@@ -18,31 +18,38 @@
|
||||
openmpi = pkgs.openmpi.override { cudaSupport = false; };
|
||||
};
|
||||
vaspkit = callPackage ./vaspkit { attrsToList = (import ../lib lib).attrsToList; };
|
||||
v_sim = callPackage ./v_sim {};
|
||||
concurrencpp = callPackage ./concurrencpp { stdenv = gcc13Stdenv; };
|
||||
v-sim = callPackage ./v-sim { src = topInputs.v-sim; };
|
||||
concurrencpp = callPackage ./concurrencpp { stdenv = gcc13Stdenv; src = topInputs.concurrencpp; };
|
||||
eigengdb = python3Packages.callPackage ./eigengdb {};
|
||||
nodesoup = callPackage ./nodesoup {};
|
||||
matplotplusplus = callPackage ./matplotplusplus { inherit nodesoup glad; };
|
||||
zpp-bits = callPackage ./zpp-bits {};
|
||||
eigen = callPackage ./eigen {};
|
||||
nameof = callPackage ./nameof {};
|
||||
nodesoup = callPackage ./nodesoup { src = topInputs.nodesoup; };
|
||||
matplotplusplus = callPackage ./matplotplusplus { inherit nodesoup glad; src = topInputs.matplotplusplus; };
|
||||
zpp-bits = callPackage ./zpp-bits { src = topInputs.zpp-bits; };
|
||||
eigen = callPackage ./eigen { src = topInputs.eigen; };
|
||||
nameof = callPackage ./nameof { src = topInputs.nameof; };
|
||||
pslist = callPackage ./pslist {};
|
||||
glad = callPackage ./glad {};
|
||||
chromiumos-touch-keyboard = callPackage ./chromiumos-touch-keyboard {};
|
||||
yoga-support = callPackage ./yoga-support {};
|
||||
tgbot-cpp = callPackage ./tgbot-cpp {};
|
||||
tgbot-cpp = callPackage ./tgbot-cpp { src = topInputs.tgbot-cpp; };
|
||||
biu = callPackage ./biu { inherit concurrencpp tgbot-cpp nameof; stdenv = gcc13Stdenv; };
|
||||
citation-style-language = callPackage ./citation-style-language {};
|
||||
citation-style-language = callPackage ./citation-style-language { src = topInputs.citation-style-language; };
|
||||
mirism = callPackage ./mirism
|
||||
{
|
||||
inherit cppcoro nameof tgbot-cpp date;
|
||||
nghttp2 = nghttp2-2305.override { enableAsioLib = true; };
|
||||
};
|
||||
cppcoro = callPackage ./cppcoro {};
|
||||
date = callPackage ./date {};
|
||||
cppcoro = callPackage ./cppcoro { src = topInputs.cppcoro; };
|
||||
date = callPackage ./date { src = topInputs.date; };
|
||||
esbonio = python3Packages.callPackage ./esbonio {};
|
||||
pix2tex = python3Packages.callPackage ./pix2tex {};
|
||||
pyreadline3 = python3Packages.callPackage ./pyreadline3 {};
|
||||
torchdata = python3Packages.callPackage ./torchdata {};
|
||||
torchtext = python3Packages.callPackage ./torchtext { inherit torchdata; };
|
||||
win11os-kde = callPackage ./win11os-kde { src = topInputs.win11os-kde; };
|
||||
fluent-kde = callPackage ./fluent-kde { src = topInputs.fluent-kde; };
|
||||
blurred-wallpaper = callPackage ./blurred-wallpaper { src = topInputs.blurred-wallpaper; };
|
||||
slate = callPackage ./slate { src = topInputs.slate; };
|
||||
nvhpc = callPackage ./nvhpc {};
|
||||
lmod = callPackage ./lmod { src = topInputs.lmod; };
|
||||
vasp-gpu = callPackage ./vasp-gpu { inherit lmod; nvhpc = nvhpc."24.1"; };
|
||||
}
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
{ lib, stdenv, fetchFromGitLab, cmake }: stdenv.mkDerivation rec
|
||||
{ lib, stdenv, cmake, src }: stdenv.mkDerivation
|
||||
{
|
||||
name = "eigen";
|
||||
src = fetchFromGitLab
|
||||
{
|
||||
owner = "libeigen";
|
||||
repo = name;
|
||||
rev = "6d829e766ff1b1ab867d93631163cbc63ed5798f";
|
||||
sha256 = "BXUnizcRPrOyiPpoyYJ4VVOjlG49aj80mgzPKmEYPKU=";
|
||||
};
|
||||
inherit src;
|
||||
nativeBuildInputs = [ cmake ];
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{ lib, fetchPypi, buildPythonPackage }: buildPythonPackage rec
|
||||
{
|
||||
pname = "esbonio";
|
||||
version = "0.16.3";
|
||||
version = "0.16.4";
|
||||
src = fetchPypi
|
||||
{
|
||||
inherit pname version;
|
||||
sha256 = "1ggxdzl95fy0zxpyd1pcylhif1x604wk4wy7sv9322hc84b708zx";
|
||||
sha256 = "1MBNBLCEBD6HtlxEASc4iZaXYyNdih2MIHoxK84jMdI=";
|
||||
};
|
||||
doCheck = false;
|
||||
}
|
||||
|
||||
22
local/pkgs/fluent-kde/default.nix
Normal file
22
local/pkgs/fluent-kde/default.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ lib, stdenv, src }: stdenv.mkDerivation
|
||||
{
|
||||
name = "fluent-kde";
|
||||
inherit src;
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/share/aurorae/themes
|
||||
cp -r $src/aurorae/* $out/share/aurorae/themes
|
||||
mkdir -p $out/share/color-schemes
|
||||
cp -r $src/color-schemes/*.colors $out/share/color-schemes
|
||||
mkdir -p $out/share/Kvantum
|
||||
cp -r $src/Kvantum/Fluent* $out/share/Kvantum
|
||||
mkdir -p $out/share/plasma/desktoptheme
|
||||
cp -r $src/plasma/desktoptheme/* $out/share/plasma/desktoptheme
|
||||
mkdir -p $out/share/plasma/layout-templates
|
||||
cp -r $src/plasma/layout-templates/* $out/share/plasma/layout-templates
|
||||
mkdir -p $out/share/plasma/look-and-feel
|
||||
cp -r $src/plasma/look-and-feel/com.github.vinceliuice.Fluent* $out/share/plasma/look-and-feel
|
||||
mkdir -p $out/share/wallpapers
|
||||
cp -r $src/wallpaper/* $out/share/wallpapers
|
||||
'';
|
||||
}
|
||||
14
local/pkgs/lmod/default.nix
Normal file
14
local/pkgs/lmod/default.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
stdenv, src,
|
||||
tcl,
|
||||
procps, bc, lua
|
||||
}:
|
||||
stdenv.mkDerivation
|
||||
{
|
||||
name = "lmod";
|
||||
inherit src;
|
||||
buildInputs = [ tcl ];
|
||||
nativeBuildInputs = [ procps bc (lua.withPackages (ps: with ps; [ luaposix ])) ];
|
||||
configurePhase = ''./configure --prefix=$out/share'';
|
||||
postUnpack = "patchShebangs .";
|
||||
}
|
||||
@@ -1,17 +1,10 @@
|
||||
{
|
||||
stdenv, fetchFromGitHub, cmake, pkg-config, substituteAll,
|
||||
stdenv, src, cmake, pkg-config, substituteAll,
|
||||
gnuplot, libjpeg, libtiff, zlib, libpng, lapack, blas, fftw, opencv, nodesoup, cimg, glfw, libGL, python3, glad
|
||||
}: stdenv.mkDerivation
|
||||
{
|
||||
pname = "matplotplusplus";
|
||||
version = "1.2.0";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "alandefreitas";
|
||||
repo = "matplotplusplus";
|
||||
rev = "a40344efa9dc5ea0c312e6e9ef4eb7238d98dc12";
|
||||
sha256 = "6/dH/Rl2aAb8b+Ji5LwzkC+GWPOCBnYCrjy0qk8u/+I=";
|
||||
};
|
||||
name = "matplotplusplus";
|
||||
inherit src;
|
||||
cmakeFlags =
|
||||
[
|
||||
"-DBUILD_SHARED_LIBS=ON" "-DMATPLOTPP_BUILD_SHARED_LIBS=ON" "-DMATPLOTPP_BUILD_EXAMPLES=OFF"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
src = requireFile
|
||||
{
|
||||
inherit name;
|
||||
sha256 = "1q3f4q4ln9dz68dfc35jybgv861f7acqiiykkm7jxviz8jdgn8c7";
|
||||
sha256 = "0f50pvdafhlmrlbf341mkp9q50v4ld5pbx92d2w1633f18zghbzf";
|
||||
hashMode = "recursive";
|
||||
message = "Source file not found.";
|
||||
};
|
||||
|
||||
@@ -1,22 +1,14 @@
|
||||
{
|
||||
lib, stdenv, mkPnpmPackage, fetchFromGitHub, fetchurl, nodejs, writeShellScript, buildFHSEnv,
|
||||
bash, cypress, vips, pkg-config
|
||||
lib, stdenv, mkPnpmPackage, fetchurl, nodejs, writeShellScript, buildFHSEnv,
|
||||
bash, cypress, vips, pkg-config, src
|
||||
}:
|
||||
let
|
||||
pname = "misskey";
|
||||
version = "2023.12.0";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "CHN-beta";
|
||||
repo = "misskey";
|
||||
rev = "bec1dc37598b71c377643ee77330d4d6f7eb31f2";
|
||||
sha256 = "sha256-svLpG4xQ2mtsJ6gm+Ap8fZKTOl5V68XybGDvymsV4F4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
name = "misskey";
|
||||
originalPnpmPackage = mkPnpmPackage
|
||||
{
|
||||
inherit pname version src nodejs;
|
||||
inherit name src nodejs;
|
||||
copyPnpmStore = true;
|
||||
extraIntegritySha256."https://github.com/aiscript-dev/aiscript-languageserver/releases/download/0.1.5/aiscript-dev-aiscript-languageserver-0.1.5.tgz" = "1mhnwa8h48bc21f0zv8q93aphiqz9i70r7m4xsa4sd1mlncfgyl7";
|
||||
};
|
||||
startScript = writeShellScript "misskey"
|
||||
''
|
||||
@@ -28,7 +20,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec
|
||||
{
|
||||
inherit version src pname;
|
||||
inherit src name;
|
||||
buildInputs =
|
||||
[
|
||||
bash nodejs nodejs.pkgs.typescript nodejs.pkgs.pnpm nodejs.pkgs.gulp cypress vips pkg-config
|
||||
@@ -40,6 +32,7 @@ in
|
||||
''
|
||||
export HOME=$NIX_BUILD_TOP # Some packages need a writable HOME
|
||||
export npm_config_nodedir=${nodejs}
|
||||
pnpm config set reporter append-only
|
||||
|
||||
runHook preConfigure
|
||||
|
||||
|
||||
@@ -1,14 +1,7 @@
|
||||
{ lib, stdenv, fetchFromGitHub }: stdenv.mkDerivation rec
|
||||
{ lib, stdenv, src }: stdenv.mkDerivation
|
||||
{
|
||||
pname = "nameof";
|
||||
version = "0.10.3";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "Neargye";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "eHG0Y/BQGbwTrBHjq9SeSiIXaVqWp7PxIq7vCIECYPk=";
|
||||
};
|
||||
name = "nameof";
|
||||
inherit src;
|
||||
phases = [ "installPhase" ];
|
||||
installPhase =
|
||||
''
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkg-config, cairo, pcre2, xorg }: stdenv.mkDerivation rec
|
||||
{ stdenv, src, cmake, pkg-config, cairo, pcre2, xorg }: stdenv.mkDerivation
|
||||
{
|
||||
name = "nodesoup";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "olvb";
|
||||
repo = "nodesoup";
|
||||
rev = "3158ad082bb0cd1abee75418b12b35522dbca74f";
|
||||
sha256 = "tFLq6QC3U3uvcuWsdRy2wnwcmAfH2MkI2oMcAiUBHSo=";
|
||||
};
|
||||
inherit src;
|
||||
buildInputs = [ cairo pcre2.dev xorg.libXdmcp.dev ];
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
}
|
||||
|
||||
42
local/pkgs/nvhpc/default.nix
Normal file
42
local/pkgs/nvhpc/default.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
stdenvNoCC, fetchurl, buildFHSEnv,
|
||||
gfortran, flock
|
||||
}:
|
||||
let
|
||||
versions =
|
||||
{
|
||||
"24.1" = "1n0x1x7ywvr3623ylvrjagayn44mbvfas3c3062p7y3asmgjx697";
|
||||
"23.1" = "1xg933f4n1bw39y1x1vrjrbzpx36sbmjgvi332hfck3dbx0n982m";
|
||||
};
|
||||
releaseName = version:
|
||||
let versions = builtins.splitVersion version;
|
||||
in "nvhpc_20${builtins.elemAt versions 0}_${builtins.concatStringsSep "" versions}_Linux_x86_64_cuda_multi";
|
||||
builder = buildFHSEnv
|
||||
{
|
||||
name = "builder";
|
||||
targetPkgs = pkgs: with pkgs; [ coreutils ];
|
||||
extraBwrapArgs = [ "--bind" "$out" "$out" ];
|
||||
};
|
||||
in let buildNvhpc = version: stdenvNoCC.mkDerivation
|
||||
{
|
||||
pname = "nvhpc";
|
||||
inherit version;
|
||||
src = fetchurl
|
||||
{
|
||||
url = "https://developer.download.nvidia.com/hpc-sdk/${version}/${releaseName version}.tar.gz";
|
||||
sha256 = versions.${version};
|
||||
};
|
||||
dontFixup = true;
|
||||
dontBuild = true;
|
||||
buildInputs = [ gfortran flock ];
|
||||
installPhase =
|
||||
''
|
||||
export NVHPC_SILENT=true
|
||||
export NVHPC_INSTALL_TYPE=single
|
||||
export NVHPC_INSTALL_DIR=$out/share/nvhpc
|
||||
# $out should exist before bwrap
|
||||
mkdir -p $out
|
||||
${builder}/bin/builder ./install
|
||||
'';
|
||||
};
|
||||
in builtins.mapAttrs (version: _: buildNvhpc version) versions
|
||||
@@ -1,16 +1,9 @@
|
||||
{
|
||||
lib, stdenv, mkPnpmPackage, fetchFromGitHub, nodejs, writeShellScript,
|
||||
chromium, bash
|
||||
lib, stdenv, mkPnpmPackage, nodejs, writeShellScript,
|
||||
chromium, bash, src
|
||||
}:
|
||||
let
|
||||
name = "rsshub";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "DIYgod";
|
||||
repo = "RSSHub";
|
||||
rev = "38a5b0c193bf77d71c4eea33db6e76bc8b565d0b";
|
||||
hash = "sha256-gJsT9W2fFiy2IG89E5th49DpBHsPMfsdONyzAKDG48c=";
|
||||
};
|
||||
originalPnpmPackage = mkPnpmPackage { inherit name src nodejs; };
|
||||
nodeModules = originalPnpmPackage.nodeModules.overrideAttrs { PUPPETEER_SKIP_DOWNLOAD = true; };
|
||||
rsshub-unwrapped = stdenv.mkDerivation
|
||||
|
||||
10
local/pkgs/slate/default.nix
Normal file
10
local/pkgs/slate/default.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ stdenv, src }: stdenv.mkDerivation
|
||||
{
|
||||
name = "slate";
|
||||
src = "${src}/Slate.tar.gz";
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/share/yakuake/skins/Slate
|
||||
cp -r * $out/share/yakuake/skins/Slate
|
||||
'';
|
||||
}
|
||||
@@ -1,14 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkg-config, boost, openssl, zlib, curl }: stdenv.mkDerivation rec
|
||||
{ stdenv, src, cmake, pkg-config, boost, openssl, zlib, curl }: stdenv.mkDerivation rec
|
||||
{
|
||||
pname = "tgbot-cpp";
|
||||
version = "1.7.2";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "reo7sp";
|
||||
repo = "tgbot-cpp";
|
||||
rev = "v${version}";
|
||||
sha256 = "TKirSxEUqFB1WtzNEfU4EJK3p7V5xcFIvA2+QVX7TlA=";
|
||||
};
|
||||
name = "tgbot-cpp";
|
||||
inherit src;
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [ boost openssl zlib curl.dev ];
|
||||
propagatedBuildInputs = buildInputs;
|
||||
|
||||
@@ -3,11 +3,11 @@ let
|
||||
typora-dist = stdenv.mkDerivation rec
|
||||
{
|
||||
pname = "typora-dist";
|
||||
version = "1.7.6";
|
||||
version = "1.8.2-dev";
|
||||
src = fetchurl
|
||||
{
|
||||
url = "https://download.typora.io/linux/typora_${version}_amd64.deb";
|
||||
sha256 = "19xgv83zk3mhniswwrb341sr9j4sb9pqy47jamrmkc3w8famxpd3";
|
||||
sha256 = "0abi9m8h8k0228ajag26lxk756a7aqqixg608k85gnkdmibnq6mv";
|
||||
};
|
||||
|
||||
dontFixup = true;
|
||||
|
||||
@@ -1,19 +1,12 @@
|
||||
{
|
||||
stdenv, lib, fetchFromGitLab,
|
||||
stdenv, lib, src,
|
||||
wrapGAppsHook, autoreconfHook, autoconf, libtool, intltool, gettext, automake, gtk-doc, pkg-config, gfortran, libxslt,
|
||||
glib, gtk3, epoxy, libyaml
|
||||
}:
|
||||
stdenv.mkDerivation
|
||||
{
|
||||
pname = "v_sim";
|
||||
version = "3.8.0_p20230824";
|
||||
src = fetchFromGitLab
|
||||
{
|
||||
owner = "l_sim";
|
||||
repo = "v_sim";
|
||||
rev = "8abc67b56795c19a8e2357d442b556c71d2441cb";
|
||||
sha256 = "KQNd3BGvkZVsfIPVLEEMBptiFQYeCbWGR28ds2Y+w2Y=";
|
||||
};
|
||||
name = "v-sim";
|
||||
inherit src;
|
||||
buildInputs = [ glib gtk3 epoxy libyaml ];
|
||||
nativeBuildInputs =
|
||||
[
|
||||
63
local/pkgs/vasp-gpu/default.nix
Normal file
63
local/pkgs/vasp-gpu/default.nix
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
buildFHSEnv, writeScript, stdenvNoCC, requireFile, substituteAll,
|
||||
config, cudaCapabilities ? config.cudaCapabilities, nvhpcArch ? config.nvhpcArch or "px",
|
||||
nvhpc, lmod, mkl, gfortran, rsync, which
|
||||
}:
|
||||
let
|
||||
env = buildFHSEnv
|
||||
{
|
||||
name = "env";
|
||||
targetPkgs = pkgs: with pkgs; [ zlib ];
|
||||
};
|
||||
buildScript = writeScript "build"
|
||||
''
|
||||
. ${lmod}/share/lmod/lmod/init/bash
|
||||
module use ${nvhpc}/share/nvhpc/modulefiles
|
||||
module load nvhpc
|
||||
mkdir -p bin
|
||||
make DEPS=1 -j$NIX_BUILD_CORES
|
||||
'';
|
||||
include = substituteAll
|
||||
{
|
||||
src = ./makefile.include;
|
||||
cudaCapabilities = builtins.concatStringsSep "," (builtins.map
|
||||
(cap: "cc${builtins.replaceStrings ["."] [""] cap}")
|
||||
cudaCapabilities);
|
||||
inherit nvhpcArch;
|
||||
};
|
||||
vasp = stdenvNoCC.mkDerivation rec
|
||||
{
|
||||
pname = "vasp";
|
||||
version = "6.4.0";
|
||||
# nix-store --query --hash $(nix store add-path ./vasp-6.4.0)
|
||||
src = requireFile
|
||||
{
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "189i1l5q33ynmps93p2mwqf5fx7p4l50sls1krqlv8ls14s3m71f";
|
||||
hashMode = "recursive";
|
||||
message = "Source file not found.";
|
||||
};
|
||||
configurePhase = "cp ${include} makefile.include";
|
||||
enableParallelBuilding = true;
|
||||
buildInputs = [ gfortran mkl rsync which ];
|
||||
MKLROOT = "${mkl}";
|
||||
buildPhase = "${env}/bin/env ${buildScript}";
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
for i in std gam ncl; do cp bin/vasp_$i $out/bin/vasp-$i; done
|
||||
'';
|
||||
};
|
||||
startScript = writeScript "start"
|
||||
''
|
||||
. ${lmod}/share/lmod/lmod/init/bash
|
||||
module use ${nvhpc}/share/nvhpc/modulefiles
|
||||
module load nvhpc
|
||||
exec $@
|
||||
'';
|
||||
in buildFHSEnv
|
||||
{
|
||||
name = "vasp-gpu";
|
||||
targetPkgs = pkgs: with pkgs; [ zlib vasp ];
|
||||
runScript = startScript;
|
||||
}
|
||||
109
local/pkgs/vasp-gpu/makefile.include
Normal file
109
local/pkgs/vasp-gpu/makefile.include
Normal file
@@ -0,0 +1,109 @@
|
||||
# Default precompiler options
|
||||
CPP_OPTIONS = -DHOST=\"LinuxNV\" \
|
||||
-DMPI -DMPI_INPLACE -DMPI_BLOCK=8000 -Duse_collective \
|
||||
-DscaLAPACK \
|
||||
-DCACHE_SIZE=4000 \
|
||||
-Davoidalloc \
|
||||
-Dvasp6 \
|
||||
-Duse_bse_te \
|
||||
-Dtbdyn \
|
||||
-Dqd_emulate \
|
||||
-Dfock_dblbuf \
|
||||
-D_OPENMP \
|
||||
-D_OPENACC \
|
||||
-DUSENCCL -DUSENCCLP2P
|
||||
|
||||
CPP = nvfortran -Mpreprocess -Mfree -Mextend -E $(CPP_OPTIONS) $*$(FUFFIX) > $*$(SUFFIX)
|
||||
|
||||
# N.B.: you might need to change the cuda-version here
|
||||
# to one that comes with your NVIDIA-HPC SDK
|
||||
FC = mpif90 -acc -gpu=@cudaCapabilities@ -mp
|
||||
FCL = mpif90 -acc -gpu=@cudaCapabilities@ -mp -c++libs
|
||||
|
||||
FREE = -Mfree
|
||||
|
||||
FFLAGS = -Mbackslash -Mlarge_arrays
|
||||
|
||||
OFLAG = -fast
|
||||
|
||||
DEBUG = -Mfree -O0 -traceback
|
||||
|
||||
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
|
||||
|
||||
LLIBS = -cudalib=cublas,cusolver,cufft,nccl -cuda
|
||||
|
||||
# Redefine the standard list of O1 and O2 objects
|
||||
SOURCE_O1 := pade_fit.o minimax_dependence.o
|
||||
SOURCE_O2 := pead.o
|
||||
|
||||
# For what used to be vasp.5.lib
|
||||
CPP_LIB = $(CPP)
|
||||
FC_LIB = nvfortran
|
||||
CC_LIB = nvc -w
|
||||
CFLAGS_LIB = -O
|
||||
FFLAGS_LIB = -O1 -Mfixed
|
||||
FREE_LIB = $(FREE)
|
||||
|
||||
OBJECTS_LIB = linpack_double.o
|
||||
|
||||
# For the parser library
|
||||
CXX_PARS = nvc++ --no_warnings
|
||||
|
||||
##
|
||||
## Customize as of this point! Of course you may change the preceding
|
||||
## part of this file as well if you like, but it should rarely be
|
||||
## necessary ...
|
||||
##
|
||||
# When compiling on the target machine itself , change this to the
|
||||
# relevant target when cross-compiling for another architecture
|
||||
VASP_TARGET_CPU ?= -tp=@nvhpcArch@
|
||||
FFLAGS += $(VASP_TARGET_CPU)
|
||||
|
||||
# Specify your NV HPC-SDK installation (mandatory)
|
||||
#... first try to set it automatically
|
||||
NVROOT =$(shell which nvfortran | awk -F /compilers/bin/nvfortran '{ print $$1 }')
|
||||
|
||||
# If the above fails, then NVROOT needs to be set manually
|
||||
#NVHPC ?= /opt/nvidia/hpc_sdk
|
||||
#NVVERSION = 21.11
|
||||
#NVROOT = $(NVHPC)/Linux_x86_64/$(NVVERSION)
|
||||
|
||||
## Improves performance when using NV HPC-SDK >=21.11 and CUDA >11.2
|
||||
#OFLAG_IN = -fast -Mwarperf
|
||||
#SOURCE_IN := nonlr.o
|
||||
|
||||
# Software emulation of quadruple precsion (mandatory)
|
||||
QD ?= $(NVROOT)/compilers/extras/qd
|
||||
LLIBS += -L$(QD)/lib -lqdmod -lqd
|
||||
INCS += -I$(QD)/include/qd
|
||||
|
||||
# Intel MKL for FFTW, BLAS, LAPACK, and scaLAPACK
|
||||
MKLROOT ?= /path/to/your/mkl/installation
|
||||
LLIBS_MKL = -Mmkl -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64
|
||||
INCS += -I$(MKLROOT)/include/fftw
|
||||
|
||||
# Use a separate scaLAPACK installation (optional but recommended in combination with OpenMPI)
|
||||
# Comment out the two lines below if you want to use scaLAPACK from MKL instead
|
||||
# SCALAPACK_ROOT ?= /path/to/your/scalapack/installation
|
||||
# LLIBS_MKL = -L$(SCALAPACK_ROOT)/lib -lscalapack -Mmkl
|
||||
|
||||
LLIBS += $(LLIBS_MKL)
|
||||
|
||||
# HDF5-support (optional but strongly recommended)
|
||||
#CPP_OPTIONS+= -DVASP_HDF5
|
||||
#HDF5_ROOT ?= /path/to/your/hdf5/installation
|
||||
#LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
|
||||
#INCS += -I$(HDF5_ROOT)/include
|
||||
|
||||
# For the VASP-2-Wannier90 interface (optional)
|
||||
#CPP_OPTIONS += -DVASP2WANNIER90
|
||||
#WANNIER90_ROOT ?= /path/to/your/wannier90/installation
|
||||
#LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier
|
||||
|
||||
# For the fftlib library (hardly any benefit for the OpenACC GPU port, especially in combination with MKL's FFTs)
|
||||
#CPP_OPTIONS+= -Dsysv
|
||||
#FCL += fftlib.o
|
||||
#CXX_FFTLIB = nvc++ -mp --no_warnings -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE
|
||||
#INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw
|
||||
#LIBS += fftlib
|
||||
#LLIBS += -ldl
|
||||
20
local/pkgs/win11os-kde/default.nix
Normal file
20
local/pkgs/win11os-kde/default.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{ lib, stdenv, src }: stdenv.mkDerivation
|
||||
{
|
||||
name = "win11os-kde";
|
||||
inherit src;
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/share/aurorae/themes
|
||||
cp -r $src/aurorae/* $out/share/aurorae/themes
|
||||
mkdir -p $out/share/color-schemes
|
||||
cp -r $src/color-schemes/*.colors $out/share/color-schemes
|
||||
mkdir -p $out/share/Kvantum
|
||||
cp -r $src/Kvantum/* $out/share/Kvantum
|
||||
mkdir -p $out/share/plasma/desktoptheme
|
||||
cp -r $src/plasma/desktoptheme/* $out/share/plasma/desktoptheme
|
||||
mkdir -p $out/share/plasma/look-and-feel
|
||||
cp -r $src/plasma/look-and-feel/* $out/share/plasma/look-and-feel
|
||||
mkdir -p $out/share/wallpapers
|
||||
cp -r $src/wallpaper/* $out/share/wallpapers
|
||||
'';
|
||||
}
|
||||
@@ -1,14 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub }: stdenv.mkDerivation rec
|
||||
{ stdenv, src }: stdenv.mkDerivation
|
||||
{
|
||||
pname = "zpp-bits";
|
||||
version = "4.4.19";
|
||||
src = fetchFromGitHub
|
||||
{
|
||||
owner = "eyalz800";
|
||||
repo = "zpp_bits";
|
||||
rev = "v${version}";
|
||||
sha256 = "ejIwrvCFALuBQbQhTfzjBb11oMR/akKnboB60GWbjlQ=";
|
||||
};
|
||||
inherit src;
|
||||
name = "zpp-bits";
|
||||
phases = [ "installPhase" ];
|
||||
installPhase =
|
||||
''
|
||||
|
||||
@@ -79,6 +79,8 @@ inputs:
|
||||
};
|
||||
firefox.programs.firefox.enable = inputs.lib.mkForce false;
|
||||
power.boot.kernelParams = [ "cpufreq.default_governor=powersave" ];
|
||||
backlight.boot.kernelParams = [ "nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1" ];
|
||||
amdpstate.boot.kernelParams = [ "amd_pstate=active" ];
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
@@ -31,11 +31,13 @@ inputs:
|
||||
{
|
||||
nix-vscode-extensions = topInputs.nix-vscode-extensions.extensions."${prev.system}";
|
||||
nur-xddxdd = topInputs.nur-xddxdd.overlays.default final prev;
|
||||
nur-linyinfeng = (topInputs.nur-linyinfeng.overlays.default final prev).linyinfeng;
|
||||
deploy-rs =
|
||||
{ inherit (prev) deploy-rs; inherit ((topInputs.deploy-rs.overlay final prev).deploy-rs) lib; };
|
||||
# needed by mirism
|
||||
nghttp2-2305 =
|
||||
inputs.pkgs.callPackage "${inputs.topInputs.nixpkgs-2305}/pkgs/development/libraries/nghttp2" {};
|
||||
firefox-addons = (import "${topInputs.rycee}" { inherit (prev) pkgs; }).firefox-addons;
|
||||
})
|
||||
];
|
||||
home-manager.sharedModules =
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
imports = inputs.localLib.mkModules [ ./gpu.nix ./legion.nix ];
|
||||
options.nixos.hardware = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
bluetooth.enable = mkOption { type = types.bool; default = false; };
|
||||
@@ -7,14 +8,6 @@ inputs:
|
||||
printer.enable = mkOption { type = types.bool; default = false; };
|
||||
sound.enable = mkOption { type = types.bool; default = false; };
|
||||
cpus = mkOption { type = types.listOf (types.enum [ "intel" "amd" ]); default = []; };
|
||||
gpus = mkOption { type = types.listOf (types.enum [ "intel" "nvidia" "amd" ]); default = []; };
|
||||
prime =
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
mode = mkOption { type = types.enum [ "offload" "sync" ]; default = "offload"; };
|
||||
busId = mkOption { type = types.attrsOf types.str; default = {}; };
|
||||
};
|
||||
gamemode.drmDevice = mkOption { type = types.int; default = 0; };
|
||||
halo-keyboard.enable = mkOption { type = types.bool; default = false; };
|
||||
};
|
||||
config =
|
||||
@@ -81,73 +74,6 @@ inputs:
|
||||
concatLists (map (cpu: modules.${cpu}) hardware.cpus);
|
||||
}
|
||||
)
|
||||
# gpus
|
||||
(
|
||||
mkIf (hardware.gpus != [])
|
||||
{
|
||||
boot.initrd.availableKernelModules =
|
||||
let
|
||||
modules =
|
||||
{
|
||||
intel = [ "i915" ];
|
||||
nvidia = [ "nvidia" "nvidia_drm" "nvidia_modeset" "nvidia_uvm" ];
|
||||
amd = [ "amdgpu" ];
|
||||
};
|
||||
in
|
||||
concatLists (map (gpu: modules.${gpu}) hardware.gpus);
|
||||
hardware =
|
||||
{
|
||||
opengl =
|
||||
{
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
extraPackages =
|
||||
with inputs.pkgs;
|
||||
let
|
||||
packages =
|
||||
{
|
||||
intel = [ intel-compute-runtime intel-media-driver libvdpau-va-gl ]; # intel-vaapi-driver
|
||||
nvidia = [ vaapiVdpau ];
|
||||
amd = [];
|
||||
};
|
||||
in
|
||||
concatLists (map (gpu: packages.${gpu}) hardware.gpus);
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
nvidia.nvidiaSettings = builtins.elem "nvidia" hardware.gpus;
|
||||
};
|
||||
}
|
||||
)
|
||||
(mkIf (builtins.elem "intel" hardware.gpus) { services.xserver.deviceSection = ''Driver "modesetting"''; })
|
||||
# prime
|
||||
(
|
||||
mkIf hardware.prime.enable
|
||||
{
|
||||
hardware.nvidia = mkMerge
|
||||
[
|
||||
(
|
||||
mkIf (hardware.prime.mode == "offload")
|
||||
{
|
||||
prime.offload = { enable = true; enableOffloadCmd = true; };
|
||||
powerManagement = { finegrained = true; enable = true; };
|
||||
}
|
||||
)
|
||||
(
|
||||
mkIf (hardware.prime.mode == "sync")
|
||||
{
|
||||
prime = { sync.enable = true; };
|
||||
# prime.forceFullCompositionPipeline = true;
|
||||
}
|
||||
)
|
||||
{
|
||||
prime = listToAttrs
|
||||
(map (gpu: { inherit (gpu) value; name = "${gpu.name}BusId"; }) (attrsToList hardware.prime.busId));
|
||||
}
|
||||
|
||||
];
|
||||
}
|
||||
)
|
||||
{ programs.gamemode.settings.gpu.gpu_device = "${toString hardware.gamemode.drmDevice}"; }
|
||||
# halo-keyboard
|
||||
(mkIf hardware.halo-keyboard.enable
|
||||
(
|
||||
|
||||
85
modules/hardware/gpu.nix
Normal file
85
modules/hardware/gpu.nix
Normal file
@@ -0,0 +1,85 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.hardware.gpu = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
type = mkOption
|
||||
{
|
||||
type = types.nullOr (types.enum
|
||||
[
|
||||
# single gpu
|
||||
"intel" "nvidia" "amd"
|
||||
# hibrid gpu: use nvidia prime offload mode
|
||||
"intel+nvidia" "amd+nvidia"
|
||||
]);
|
||||
default = null;
|
||||
};
|
||||
prime.busId = mkOption { type = types.attrsOf types.nonEmptyStr; default = {}; };
|
||||
};
|
||||
config = let inherit (inputs.config.nixos.hardware) gpu; in inputs.lib.mkIf (gpu.type != null) (inputs.lib.mkMerge
|
||||
[
|
||||
# generic settings
|
||||
(
|
||||
let gpus = inputs.lib.strings.splitString "+" gpu.type; in
|
||||
{
|
||||
boot.initrd.availableKernelModules =
|
||||
let modules =
|
||||
{
|
||||
intel = [ "i915" ];
|
||||
nvidia = [ "nvidia" "nvidia_drm" "nvidia_modeset" ]; # nvidia-uvm should not be loaded
|
||||
amd = [ "amdgpu" ];
|
||||
};
|
||||
in builtins.concatLists (builtins.map (gpu: modules.${gpu}) gpus);
|
||||
hardware =
|
||||
{
|
||||
opengl =
|
||||
{
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
extraPackages =
|
||||
let packages = with inputs.pkgs;
|
||||
{
|
||||
intel = [ intel-vaapi-driver libvdpau-va-gl intel-media-driver ];
|
||||
nvidia = [ vaapiVdpau ];
|
||||
amd = [ amdvlk rocmPackages.clr rocmPackages.clr.icd ];
|
||||
};
|
||||
in builtins.concatLists (builtins.map (gpu: packages.${gpu}) gpus);
|
||||
extraPackages32 =
|
||||
let packages = { intel = []; nvidia = []; amd = [ inputs.pkgs.driversi686Linux.amdvlk ]; };
|
||||
in builtins.concatLists (builtins.map (gpu: packages.${gpu}) gpus);
|
||||
};
|
||||
nvidia = inputs.lib.mkIf (builtins.elem "nvidia" gpus)
|
||||
{
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
dynamicBoost.enable = true;
|
||||
nvidiaSettings = true;
|
||||
forceFullCompositionPipeline = true;
|
||||
# package = inputs.config.boot.kernelPackages.nvidiaPackages.production;
|
||||
};
|
||||
};
|
||||
boot =
|
||||
{
|
||||
kernelParams = inputs.lib.mkIf (builtins.elem "amd" gpus)
|
||||
[ "radeon.cik_support=0" "amdgpu.cik_support=1" "radeon.si_support=0" "amdgpu.si_support=1" "iommu=pt" ];
|
||||
blacklistedKernelModules = [ "nouveau" ];
|
||||
};
|
||||
environment.variables.VDPAU_DRIVER = inputs.lib.mkIf (builtins.elem "intel" gpus) "va_gl";
|
||||
services.xserver.videoDrivers =
|
||||
let driver = { intel = "modesetting"; amd = "amdgpu"; nvidia = "nvidia"; };
|
||||
in builtins.map (gpu: driver.${gpu}) gpus;
|
||||
}
|
||||
)
|
||||
# nvidia prime offload
|
||||
(
|
||||
inputs.lib.mkIf (inputs.lib.strings.hasSuffix "+nvidia" gpu.type) { hardware.nvidia =
|
||||
{
|
||||
prime = { offload = { enable = true; enableOffloadCmd = true; }; }
|
||||
// builtins.listToAttrs (builtins.map
|
||||
(gpu: { name = "${if gpu.name == "amd" then "amdgpu" else gpu.name}BusId"; value = "PCI:${gpu.value}"; })
|
||||
(inputs.localLib.attrsToList gpu.prime.busId));
|
||||
powerManagement.finegrained = true;
|
||||
};}
|
||||
)
|
||||
]);
|
||||
}
|
||||
16
modules/hardware/legion.nix
Normal file
16
modules/hardware/legion.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.hardware.legion = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
};
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
inherit (inputs.config.nixos.hardware) legion;
|
||||
in mkIf legion.enable
|
||||
{
|
||||
environment.systemPackages = [ inputs.pkgs.lenovo-legion ];
|
||||
boot.extraModulePackages = [ inputs.config.boot.kernelPackages.lenovo-legion-module ];
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
imports = inputs.localLib.mkModules
|
||||
[
|
||||
./chromium.nix
|
||||
];
|
||||
imports = inputs.localLib.mkModules [ ./steam.nix ];
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
@@ -16,7 +13,7 @@ inputs:
|
||||
_packages =
|
||||
[
|
||||
# system management
|
||||
etcher btrfs-assistant snapper-gui libsForQt5.qtstyleplugin-kvantum
|
||||
etcher btrfs-assistant snapper-gui libsForQt5.qtstyleplugin-kvantum ventoy-full cpu-x
|
||||
# password and key management
|
||||
yubikey-manager yubikey-manager-qt yubikey-personalization yubikey-personalization-gui bitwarden
|
||||
# download
|
||||
@@ -24,24 +21,29 @@ inputs:
|
||||
# development
|
||||
scrcpy weston cage openbox krita
|
||||
# media
|
||||
spotify yesplaymusic simplescreenrecorder imagemagick gimp netease-cloud-music-gtk vlc
|
||||
spotify yesplaymusic simplescreenrecorder imagemagick gimp netease-cloud-music-gtk vlc obs-studio
|
||||
waifu2x-converter-cpp inkscape blender
|
||||
# editor
|
||||
localPackages.typora
|
||||
typora
|
||||
# themes
|
||||
orchis-theme plasma-overdose-kde-theme materia-kde-theme graphite-kde-theme arc-kde-theme materia-theme
|
||||
# news
|
||||
fluent-reader
|
||||
# nix tools
|
||||
deploy-rs.deploy-rs nixpkgs-fmt
|
||||
deploy-rs.deploy-rs nixpkgs-fmt appimage-run nixd nix-serve node2nix nix-prefetch-github prefetch-npm-deps
|
||||
nix-prefetch-docker
|
||||
# instant messager
|
||||
element-desktop telegram-desktop discord fluffychat
|
||||
element-desktop telegram-desktop discord fluffychat zoom-us signal-desktop slack nur-linyinfeng.wemeet
|
||||
# browser
|
||||
google-chrome
|
||||
# office
|
||||
crow-translate zotero pandoc ydict
|
||||
crow-translate zotero pandoc ydict libreoffice-qt texstudio poppler_utils pdftk gnuplot pdfchain hdfview
|
||||
(texlive.combine { inherit (texlive) scheme-full; inherit (localPackages) citation-style-language; })
|
||||
# math, physics and chemistry
|
||||
octaveFull root ovito localPackages.vesta localPackages.vaspkit localPackages.v-sim
|
||||
] ++ (with inputs.lib; filter isDerivation (attrValues plasma5Packages.kdeGear));
|
||||
};
|
||||
};
|
||||
programs = { steam.enable = true; kdeconnect.enable = true; };
|
||||
programs.kdeconnect.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
23
modules/packages/desktop-fat/steam.nix
Normal file
23
modules/packages/desktop-fat/steam.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
inputs:
|
||||
{
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
in mkIf (builtins.elem "desktop-fat" inputs.config.nixos.packages._packageSets)
|
||||
{
|
||||
programs.steam =
|
||||
{
|
||||
enable = true;
|
||||
package = inputs.pkgs.steam.override (prev:
|
||||
{
|
||||
steam = prev.steam.overrideAttrs (prev:
|
||||
{
|
||||
postInstall = prev.postInstall +
|
||||
''
|
||||
sed -i 's#Comment\[zh_CN\]=.*$#Comment\[zh_CN\]=思题慕®学习平台#' $out/share/applications/steam.desktop
|
||||
'';
|
||||
});
|
||||
});
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -3,8 +3,9 @@ inputs:
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
in mkIf (builtins.elem "desktop-fat" inputs.config.nixos.packages._packageSets)
|
||||
in mkIf (builtins.elem "desktop" inputs.config.nixos.packages._packageSets)
|
||||
{
|
||||
programs.chromium = { enable = true; extraOpts.PasswordManagerEnabled = false; };
|
||||
nixos.users.sharedModules =
|
||||
[{
|
||||
config.programs.chromium =
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
imports = inputs.localLib.mkModules [ ./vscode.nix ];
|
||||
imports = inputs.localLib.mkModules [ ./vscode.nix ./firefox.nix ./chromium.nix ];
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
@@ -11,30 +11,46 @@ inputs:
|
||||
packages._packages = with inputs.pkgs;
|
||||
[
|
||||
# system management
|
||||
gparted wl-clipboard-x11 kio-fuse
|
||||
wayland-utils clinfo glxinfo vulkan-tools dracut
|
||||
gparted kio-fuse wayland-utils clinfo glxinfo vulkan-tools dracut
|
||||
(
|
||||
writeShellScriptBin "xclip"
|
||||
''
|
||||
#!${bash}/bin/bash
|
||||
if [ "$XDG_SESSION_TYPE" = "x11" ]; then
|
||||
exec ${xclip}/bin/xclip "-sel clip $@"
|
||||
else
|
||||
exec ${wl-clipboard-x11}/bin/xclip "$@"
|
||||
fi
|
||||
''
|
||||
)
|
||||
# color management
|
||||
argyllcms xcalib
|
||||
# networking
|
||||
remmina putty mtr-gui
|
||||
# media
|
||||
mpv nomacs
|
||||
# themes
|
||||
tela-circle-icon-theme
|
||||
tela-circle-icon-theme localPackages.win11os-kde localPackages.fluent-kde localPackages.blurred-wallpaper
|
||||
localPackages.slate utterly-nord-plasma
|
||||
];
|
||||
users.sharedModules =
|
||||
[{
|
||||
config.home.file.".config/baloofilerc".text =
|
||||
''
|
||||
[Basic Settings]
|
||||
Indexing-Enabled=false
|
||||
'';
|
||||
}];
|
||||
[(homeInputs: {
|
||||
config.home.file = mkIf (!homeInputs.config.programs.plasma.enable)
|
||||
{
|
||||
".config/baloofilerc".text =
|
||||
''
|
||||
[Basic Settings]
|
||||
Indexing-Enabled=false
|
||||
'';
|
||||
};
|
||||
})];
|
||||
};
|
||||
programs =
|
||||
{
|
||||
adb.enable = true;
|
||||
wireshark = { enable = true; package = inputs.pkgs.wireshark; };
|
||||
firefox = { enable = true; languagePacks = [ "zh-CN" "en-US" ]; };
|
||||
vim.package = inputs.pkgs.vim-full;
|
||||
yubikey-touch-detector.enable = true;
|
||||
};
|
||||
nixpkgs.config.packageOverrides = pkgs:
|
||||
{
|
||||
|
||||
58
modules/packages/desktop/firefox.nix
Normal file
58
modules/packages/desktop/firefox.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (builtins.elem "desktop" inputs.config.nixos.packages._packageSets)
|
||||
{
|
||||
nixos.users.sharedModules = [{ config =
|
||||
{
|
||||
programs.firefox =
|
||||
{
|
||||
enable = true;
|
||||
# TODO: switch to 24.05
|
||||
# nativeMessagingHosts = [ inputs.pkgs.plasma-browser-integration ];
|
||||
package = inputs.pkgs.firefox.override { nativeMessagingHosts = [ inputs.pkgs.plasma-browser-integration ]; };
|
||||
policies.DefaultDownloadDirectory = "\${home}/Downloads";
|
||||
profiles.default =
|
||||
{
|
||||
extensions = with inputs.pkgs.firefox-addons;
|
||||
[
|
||||
immersive-translate tampermonkey bitwarden cookies-txt dualsub firefox-color i-dont-care-about-cookies
|
||||
metamask pakkujs switchyomega rsshub-radar rsspreview tabliss tree-style-tab ublock-origin wallabagger
|
||||
wappalyzer grammarly plasma-integration
|
||||
(
|
||||
buildFirefoxXpiAddon
|
||||
{
|
||||
pname = "zotero-connector";
|
||||
version = "5.0.114";
|
||||
addonId = "zotero@chnm.gmu.edu";
|
||||
url = "https://download.zotero.org/connector/firefox/release/Zotero_Connector-5.0.114.xpi";
|
||||
sha256 = "1g9d991m4vfj5x6r86sw754bx7r4qi8g5ddlqp7rcw6wrgydhrhw";
|
||||
meta = {};
|
||||
}
|
||||
)
|
||||
];
|
||||
search = { default = "Google"; force = true; };
|
||||
userChrome = builtins.readFile "${inputs.topInputs.lepton}/userChrome.css";
|
||||
userContent = builtins.readFile "${inputs.topInputs.lepton}/userContent.css";
|
||||
extraConfig = builtins.readFile "${inputs.topInputs.lepton}/user.js";
|
||||
settings =
|
||||
{
|
||||
# general
|
||||
"browser.search.region" = "CN";
|
||||
"intl.locale.requested" = "zh-CN,en-US";
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.bookmarks.showMobileBookmarks" = true;
|
||||
"browser.download.panel.shown" = true;
|
||||
"browser.download.useDownloadDir" = true;
|
||||
"browser.newtab.extensionControlled" = true;
|
||||
"browser.toolbars.bookmarks.visibility" = "never";
|
||||
# allow to apply userChrome.css
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
home.file.".mozilla/firefox/profiles.ini".force = true;
|
||||
};}];
|
||||
# still enable global firefox, to install language packs
|
||||
programs.firefox = { enable = true; languagePacks = [ "zh-CN" "en-US" ]; };
|
||||
};
|
||||
}
|
||||
@@ -44,6 +44,8 @@ inputs:
|
||||
lextudio.restructuredtext trond-snekvik.simple-rst
|
||||
# markdown
|
||||
shd101wyy.markdown-preview-enhanced
|
||||
# vasp
|
||||
mystery.vasp-support
|
||||
];
|
||||
}
|
||||
)];
|
||||
|
||||
@@ -4,6 +4,7 @@ inputs:
|
||||
[
|
||||
./ssh
|
||||
./zsh
|
||||
./gpg.nix
|
||||
];
|
||||
config =
|
||||
let
|
||||
@@ -16,7 +17,7 @@ inputs:
|
||||
{
|
||||
packages = with inputs.pkgs;
|
||||
{
|
||||
_packages =
|
||||
_packages =
|
||||
[
|
||||
# shell
|
||||
ksh
|
||||
@@ -24,7 +25,7 @@ inputs:
|
||||
beep dos2unix gnugrep pv tmux screen parallel tldr cowsay jq zellij neofetch ipfetch localPackages.pslist
|
||||
fastfetch reptyr
|
||||
# lsxx
|
||||
pciutils usbutils lshw util-linux lsof
|
||||
pciutils usbutils lshw util-linux lsof dmidecode
|
||||
# top
|
||||
iotop iftop htop btop powertop s-tui
|
||||
# editor
|
||||
@@ -44,12 +45,17 @@ inputs:
|
||||
# networking
|
||||
ipset iptables iproute2 dig nettools traceroute tcping-go whois tcpdump nmap inetutils wireguard-tools
|
||||
# nix tools
|
||||
nix-output-monitor nix-tree ssh-to-age
|
||||
nix-output-monitor nix-tree ssh-to-age (callPackage "${inputs.topInputs.nix-fast-build}" {})
|
||||
# office
|
||||
todo-txt-cli
|
||||
todo-txt-cli pdfgrep
|
||||
# development
|
||||
gdb try inputs.topInputs.plasma-manager.packages.x86_64-linux.rc2nix hexo-cli
|
||||
] ++ (with inputs.config.boot.kernelPackages; [ cpupower usbip ]);
|
||||
_pythonPackages = [(pythonPackages: with pythonPackages;
|
||||
[
|
||||
openai python-telegram-bot fastapi pypdf2 pandas matplotlib plotly gunicorn redis jinja2
|
||||
certifi charset-normalizer idna orjson psycopg2 inquirerpy requests tqdm pydbus
|
||||
])];
|
||||
};
|
||||
users.sharedModules = [(home-inputs:
|
||||
{
|
||||
@@ -108,7 +114,6 @@ inputs:
|
||||
nix-index-database.comma.enable = true;
|
||||
nix-index.enable = true;
|
||||
command-not-found.enable = false;
|
||||
gnupg.agent = { enable = true; enableSSHSupport = true; };
|
||||
autojump.enable = true;
|
||||
git =
|
||||
{
|
||||
|
||||
10
modules/packages/server/gpg.nix
Normal file
10
modules/packages/server/gpg.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
inputs:
|
||||
{
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
in mkIf (builtins.elem "server" inputs.config.nixos.packages._packageSets)
|
||||
{
|
||||
programs.gnupg.agent = { enable = true; pinentryFlavor = "tty"; };
|
||||
};
|
||||
}
|
||||
@@ -41,6 +41,11 @@ inputs:
|
||||
ed25519 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAoMu0HEaFQsnlJL0L6isnkNZdRq0OiDXyaX3+fl3NjT";
|
||||
hostnames = [ "initrd.nas.chn.moe" "[office.chn.moe]:5440" "192.168.1.185" ];
|
||||
};
|
||||
surface =
|
||||
{
|
||||
ed25519 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFdm3DcfHdcLP0oSpVrWwIZ/b9lZuakBSPwCFz2BdTJ7";
|
||||
hostnames = [ "192.168.1.166" "wireguard.surface.chn.moe" "192.168.83.5" ];
|
||||
};
|
||||
pc =
|
||||
{
|
||||
ed25519 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSfREi19OSwQnhdsE8wiNwGSFFJwNGN0M5gN+sdrrLJ";
|
||||
@@ -96,6 +101,14 @@ inputs:
|
||||
else []
|
||||
))
|
||||
(attrsToList servers)));
|
||||
programs.ssh =
|
||||
{
|
||||
startAgent = true;
|
||||
enableAskPassword = true;
|
||||
askPassword = "${inputs.pkgs.systemd}/bin/systemd-ask-password";
|
||||
extraConfig = "AddKeysToAgent yes";
|
||||
};
|
||||
environment.sessionVariables.SSH_ASKPASS_REQUIRE = "prefer";
|
||||
nixos.users.sharedModules =
|
||||
[(hmInputs: {
|
||||
config.programs.ssh =
|
||||
@@ -108,7 +121,7 @@ inputs:
|
||||
(
|
||||
(builtins.map
|
||||
(host: { name = host; value = { inherit host; hostname = "${host}.chn.moe"; }; })
|
||||
[ "vps6" "wireguard.vps6" "vps7" "wireguard.vps7" "wireguard.pc" "wireguard.nas" ])
|
||||
[ "vps6" "wireguard.vps6" "vps7" "wireguard.vps7" "wireguard.pc" "wireguard.nas" "wireguard.surface" ])
|
||||
++ (builtins.map
|
||||
(host:
|
||||
{
|
||||
@@ -153,6 +166,7 @@ inputs:
|
||||
// {
|
||||
xmupc1 = { host = "xmupc1"; hostname = "office.chn.moe"; port = 6007; };
|
||||
nas = { host = "nas"; hostname = "office.chn.moe"; port = 5440; };
|
||||
surface = { host = "surface"; hostname = "192.168.1.166"; };
|
||||
gitea = { host = "gitea"; hostname = "ssh.git.chn.moe"; };
|
||||
};
|
||||
};
|
||||
|
||||
1
modules/packages/server/ssh/surface_rsa.pub
Normal file
1
modules/packages/server/ssh/surface_rsa.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDJAyDl52UVGFPTV/rXFERrXAMY5qZ3g+tpg9HOGdw86G4Nr8Xp/cTxZjF4kSfIkSrGblAV9Lm4US0fW3pGOQu5qQrSAENxqHxdlEyzt7izyF2CklDUeTjs3KHOIZMvSli4z014NPcswBbjwB9Lyrw0fCQ9P1vYkrUHEzL2SMxdack1EQPcMF4MxblDqc+eQhdMCkKE8T1Cb1ZqxeLVMPn9CwjG18JoxL+/xs+MjcsSXYWcoqYTfgfhguMbh0D4Eo32MHS/IzRSxnOHJxhG5xYePcyBlb/CxQuYA+RTqKNE85j7GcL2oEmeZ1b++/9qFT9grwVh+UOBRO2xiMzKDF24nXPJ+eLyd6Z/3swGT4rTVDnrXV5eZUkWLHN093IdLJCTtPVrKV9OxEKr5sU2W0edpirNrlGq7/MYkJX9EbQctDFA69XfQkZlGK9xGutqSgEaVlY54fS0Due+NDrNBPfMKJ9MTmFDOY+NYn05El2rMD39OKbGbCR5ASwSSBlcQeE=
|
||||
@@ -5,62 +5,67 @@ inputs:
|
||||
inherit (inputs.lib) mkIf;
|
||||
in mkIf (builtins.elem "server" inputs.config.nixos.packages._packageSets)
|
||||
{
|
||||
nixos.users.sharedModules = [(home-inputs: { config.programs.zsh =
|
||||
nixos.users.sharedModules = [(home-inputs: { config.programs =
|
||||
{
|
||||
enable = true;
|
||||
initExtraBeforeCompInit =
|
||||
''
|
||||
# p10k instant prompt
|
||||
P10K_INSTANT_PROMPT="$XDG_CACHE_HOME/p10k-instant-prompt-''${(%):-%n}.zsh"
|
||||
[[ ! -r "$P10K_INSTANT_PROMPT" ]] || source "$P10K_INSTANT_PROMPT"
|
||||
HYPHEN_INSENSITIVE="true"
|
||||
export PATH=~/bin:$PATH
|
||||
function br
|
||||
{
|
||||
local cmd cmd_file code
|
||||
cmd_file=$(mktemp)
|
||||
if broot --outcmd "$cmd_file" "$@"; then
|
||||
cmd=$(<"$cmd_file")
|
||||
command rm -f "$cmd_file"
|
||||
eval "$cmd"
|
||||
else
|
||||
code=$?
|
||||
command rm -f "$cmd_file"
|
||||
return "$code"
|
||||
fi
|
||||
}
|
||||
alias todo="todo.sh"
|
||||
'';
|
||||
plugins =
|
||||
[
|
||||
{
|
||||
file = "powerlevel10k.zsh-theme";
|
||||
name = "powerlevel10k";
|
||||
src = "${inputs.pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k";
|
||||
}
|
||||
{
|
||||
file = "p10k.zsh";
|
||||
name = "powerlevel10k-config";
|
||||
src = ./p10k-config;
|
||||
}
|
||||
{
|
||||
name = "zsh-lsd";
|
||||
src = inputs.pkgs.fetchFromGitHub
|
||||
{
|
||||
owner = "z-shell";
|
||||
repo = "zsh-lsd";
|
||||
rev = "029a9cb0a9b39c9eb6c5b5100dd9182813332250";
|
||||
sha256 = "sha256-oWjWnhiimlGBMaZlZB+OM47jd9hporKlPNwCx6524Rk=";
|
||||
};
|
||||
}
|
||||
];
|
||||
history =
|
||||
zsh =
|
||||
{
|
||||
path = "${home-inputs.config.xdg.dataHome}/zsh/zsh_history";
|
||||
extended = true;
|
||||
save = 100000000;
|
||||
size = 100000000;
|
||||
enable = true;
|
||||
initExtraBeforeCompInit =
|
||||
''
|
||||
# p10k instant prompt
|
||||
P10K_INSTANT_PROMPT="$XDG_CACHE_HOME/p10k-instant-prompt-''${(%):-%n}.zsh"
|
||||
[[ ! -r "$P10K_INSTANT_PROMPT" ]] || source "$P10K_INSTANT_PROMPT"
|
||||
HYPHEN_INSENSITIVE="true"
|
||||
export PATH=~/bin:$PATH
|
||||
function br
|
||||
{
|
||||
local cmd cmd_file code
|
||||
cmd_file=$(mktemp)
|
||||
if broot --outcmd "$cmd_file" "$@"; then
|
||||
cmd=$(<"$cmd_file")
|
||||
command rm -f "$cmd_file"
|
||||
eval "$cmd"
|
||||
else
|
||||
code=$?
|
||||
command rm -f "$cmd_file"
|
||||
return "$code"
|
||||
fi
|
||||
}
|
||||
alias todo="todo.sh"
|
||||
'';
|
||||
plugins =
|
||||
[
|
||||
{
|
||||
file = "powerlevel10k.zsh-theme";
|
||||
name = "powerlevel10k";
|
||||
src = "${inputs.pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k";
|
||||
}
|
||||
{
|
||||
file = "p10k.zsh";
|
||||
name = "powerlevel10k-config";
|
||||
src = ./p10k-config;
|
||||
}
|
||||
{
|
||||
name = "zsh-lsd";
|
||||
src = inputs.pkgs.fetchFromGitHub
|
||||
{
|
||||
owner = "z-shell";
|
||||
repo = "zsh-lsd";
|
||||
rev = "65bb5ac49190beda263aae552a9369127961632d";
|
||||
hash = "sha256-JSNsfpgiqWhtmGQkC3B0R1Y1QnDKp9n0Zaqzjhwt7Xk=";
|
||||
};
|
||||
}
|
||||
];
|
||||
history =
|
||||
{
|
||||
path = "${home-inputs.config.xdg.dataHome}/zsh/zsh_history";
|
||||
extended = true;
|
||||
save = 100000000;
|
||||
size = 100000000;
|
||||
};
|
||||
};
|
||||
# set bash history file path, avoid overwriting zsh history
|
||||
bash = { enable = true; historyFile = "${home-inputs.config.xdg.dataHome}/bash/bash_history"; };
|
||||
};})];
|
||||
programs.zsh =
|
||||
{
|
||||
@@ -72,7 +77,6 @@ inputs:
|
||||
{
|
||||
enable = true;
|
||||
plugins = [ "git" "colored-man-pages" "extract" "history-substring-search" "autojump" ];
|
||||
customPkgs = with inputs.pkgs; [ zsh-nix-shell ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -14,27 +14,21 @@ inputs:
|
||||
# password and key management
|
||||
electrum jabref
|
||||
# system management
|
||||
wl-mirror ventoy-full
|
||||
wl-mirror
|
||||
# nix tools
|
||||
nix-template appimage-run nil nixd nix-alien nix-serve node2nix nix-prefetch-github prefetch-npm-deps
|
||||
nix-prefetch-docker pnpm-lock-export bundix
|
||||
nix-template nil nix-alien pnpm-lock-export bundix
|
||||
# instant messager
|
||||
zoom-us signal-desktop qq nur-xddxdd.wechat-uos slack inputs.config.nur.repos.linyinfeng.wemeet
|
||||
cinny-desktop nheko
|
||||
# office
|
||||
libreoffice-qt texstudio poppler_utils pdftk gnuplot pdfchain hdfview
|
||||
(texlive.combine { inherit (texlive) scheme-full; inherit (localPackages) citation-style-language; })
|
||||
qq nur-xddxdd.wechat-uos cinny-desktop nheko
|
||||
# development
|
||||
jetbrains.clion android-studio dbeaver cling clang-tools_16 ccls fprettify aircrack-ng
|
||||
# media
|
||||
nur-xddxdd.svp obs-studio waifu2x-converter-cpp inkscape blender
|
||||
nur-xddxdd.svp
|
||||
# virtualization
|
||||
wineWowPackages.stagingFull virt-viewer bottles # wine64
|
||||
# text editor
|
||||
appflowy notion-app-enhanced joplin-desktop standardnotes logseq
|
||||
# math, physics and chemistry
|
||||
mathematica octaveFull root ovito paraview localPackages.vesta qchem.quantum-espresso
|
||||
localPackages.vasp localPackages.vaspkit jmol localPackages.v_sim
|
||||
mathematica paraview localPackages.vasp localPackages.vasp-gpu jmol # qchem.quantum-espresso
|
||||
# encryption and password management
|
||||
john crunch hashcat
|
||||
# container and vm
|
||||
@@ -43,13 +37,11 @@ inputs:
|
||||
microsoft-edge
|
||||
# news
|
||||
rssguard newsflash newsboat
|
||||
yuzu-early-access
|
||||
];
|
||||
_pythonPackages = [(pythonPackages: with pythonPackages;
|
||||
[
|
||||
phonopy tensorflow keras openai scipy scikit-learn jupyterlab autograd
|
||||
# localPackages.pix2tex
|
||||
inquirerpy requests python-telegram-bot tqdm fastapi pypdf2 pandas matplotlib plotly gunicorn redis jinja2
|
||||
certifi charset-normalizer idna orjson psycopg2 localPackages.eigengdb
|
||||
phonopy tensorflow keras scipy scikit-learn jupyterlab autograd # localPackages.pix2tex
|
||||
])];
|
||||
_prebuildPackages =
|
||||
[
|
||||
@@ -76,29 +68,6 @@ inputs:
|
||||
anime-game-launcher = { enable = true; package = inputs.pkgs.anime-game-launcher; };
|
||||
honkers-railway-launcher = { enable = true; package = inputs.pkgs.honkers-railway-launcher; };
|
||||
nix-ld.enable = true;
|
||||
gamemode =
|
||||
{
|
||||
enable = true;
|
||||
settings =
|
||||
{
|
||||
general.renice = 10;
|
||||
gpu =
|
||||
{
|
||||
apply_gpu_optimisations = "accept-responsibility";
|
||||
nv_powermizer_mode = 1;
|
||||
};
|
||||
custom = let notify-send = "${inputs.pkgs.libnotify}/bin/notify-send"; in
|
||||
{
|
||||
start = "${notify-send} 'GameMode started'";
|
||||
end = "${notify-send} 'GameMode ended'";
|
||||
};
|
||||
};
|
||||
};
|
||||
chromium =
|
||||
{
|
||||
enable = true;
|
||||
extraOpts.PasswordManagerEnabled = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,8 +8,14 @@ inputs:
|
||||
type = types.attrsOf (types.oneOf
|
||||
[
|
||||
types.nonEmptyStr
|
||||
(types.submodule { options =
|
||||
{ device = mkOption { type = types.nonEmptyStr; }; hashTableSizeMB = mkOption { type = types.int; }; };})
|
||||
(types.submodule
|
||||
{
|
||||
options =
|
||||
{
|
||||
device = mkOption { type = types.nonEmptyStr; };
|
||||
hashTableSizeMB = mkOption { type = types.ints.unsigned; default = 1024; };
|
||||
threads = mkOption { type = types.ints.unsigned; default = 1; };
|
||||
};})
|
||||
]);
|
||||
default = {};
|
||||
};
|
||||
@@ -30,7 +36,7 @@ inputs:
|
||||
{
|
||||
spec = instance.value.device or instance.value;
|
||||
hashTableSizeMB = instance.value.hashTableSizeMB or 1024;
|
||||
extraOptions = [ "--thread-count" "1" "--scan-mode" "3" ];
|
||||
extraOptions = [ "--thread-count" "${toString instance.value.threads or 1}" "--scan-mode" "3" ];
|
||||
};
|
||||
})
|
||||
(attrsToList beesd.instances));
|
||||
|
||||
@@ -40,6 +40,9 @@ inputs:
|
||||
./fail2ban.nix
|
||||
./wireguard.nix
|
||||
./akkoma.nix
|
||||
./gamemode.nix
|
||||
./vikunja.nix
|
||||
./slurm.nix
|
||||
];
|
||||
options.nixos.services = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
|
||||
@@ -23,5 +23,6 @@ inputs:
|
||||
serif = [ "Noto Serif CJK SC" "Source Han Serif SC" "DejaVu Serif" ];
|
||||
};
|
||||
};
|
||||
nixos.users.sharedModules = [{ config.xdg.configFile."fontconfig/conf.d/10-hm-fonts.conf".force = true; }];
|
||||
};
|
||||
}
|
||||
|
||||
30
modules/services/gamemode.nix
Normal file
30
modules/services/gamemode.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.services.gamemode = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
drmDevice = mkOption { type = types.int; };
|
||||
};
|
||||
config = let inherit (inputs.config.nixos.services) gamemode; in inputs.lib.mkIf gamemode.enable
|
||||
{
|
||||
programs.gamemode =
|
||||
{
|
||||
enable = true;
|
||||
settings =
|
||||
{
|
||||
general.renice = 10;
|
||||
gpu =
|
||||
{
|
||||
apply_gpu_optimisations = "accept-responsibility";
|
||||
nv_powermizer_mode = 1;
|
||||
gpu_device = builtins.toString gamemode.drmDevice;
|
||||
};
|
||||
custom = let notify-send = "${inputs.pkgs.libnotify}/bin/notify-send"; in
|
||||
{
|
||||
start = "${notify-send} 'GameMode started'";
|
||||
end = "${notify-send} 'GameMode ended'";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -32,6 +32,8 @@ inputs:
|
||||
User = inputs.config.users.users.mirism.name;
|
||||
Group = inputs.config.users.users.mirism.group;
|
||||
ExecStart = "${inputs.pkgs.localPackages.mirism}/bin/${instance}";
|
||||
RuntimeMaxSec = "1d";
|
||||
Restart = "always";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
@@ -7,7 +7,8 @@ inputs:
|
||||
config =
|
||||
let
|
||||
inherit (inputs.config.nixos.services.nginx.applications) main;
|
||||
in
|
||||
inherit (inputs.lib) mkIf;
|
||||
in mkIf main.enable
|
||||
{
|
||||
nixos.services.nginx.https."chn.moe".location =
|
||||
{
|
||||
|
||||
58
modules/services/slurm.nix
Normal file
58
modules/services/slurm.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.services.slurm = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
cpu =
|
||||
{
|
||||
cores = mkOption { type = types.ints.unsigned; };
|
||||
threads = mkOption { type = types.ints.unsigned; default = 1; };
|
||||
};
|
||||
memoryMB = mkOption { type = types.ints.unsigned; };
|
||||
};
|
||||
config = let inherit (inputs.config.nixos.services) slurm; in inputs.lib.mkIf slurm.enable
|
||||
{
|
||||
services =
|
||||
{
|
||||
slurm =
|
||||
{
|
||||
server.enable = true;
|
||||
clusterName = inputs.config.nixos.system.networking.hostname;
|
||||
# dbdserver =
|
||||
# {
|
||||
# enable = true;
|
||||
# dbdHost = "localhost";
|
||||
# # storagePassFile
|
||||
# # extraConfig
|
||||
# };
|
||||
client.enable = true;
|
||||
# package
|
||||
controlMachine = "localhost";
|
||||
nodeName = inputs.lib.singleton (builtins.concatStringsSep " "
|
||||
[
|
||||
"localhost"
|
||||
"RealMemory=${builtins.toString slurm.memoryMB}"
|
||||
"Sockets=1"
|
||||
"CoresPerSocket=${builtins.toString slurm.cpu.cores}"
|
||||
"ThreadsPerCore=${builtins.toString slurm.cpu.threads}"
|
||||
"State=UNKNOWN"
|
||||
]);
|
||||
partitionName = [ "localhost Nodes=localhost Default=YES MaxTime=INFINITE State=UP" ];
|
||||
procTrackType = "proctrack/cgroup";
|
||||
};
|
||||
munge = { enable = true; password = inputs.config.sops.secrets."munge.key".path; };
|
||||
};
|
||||
sops =
|
||||
{
|
||||
secrets =
|
||||
{
|
||||
"munge.key" =
|
||||
{
|
||||
format = "binary";
|
||||
sopsFile = "${builtins.dirOf inputs.config.sops.defaultSopsFile}/munge.key";
|
||||
owner = inputs.config.systemd.services.munged.serviceConfig.User;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
44
modules/services/vikunja.nix
Normal file
44
modules/services/vikunja.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.services.vikunja = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
autoStart = mkOption { type = types.bool; default = true; };
|
||||
port = mkOption { type = types.ints.unsigned; default = 3456; };
|
||||
hostname = mkOption { type = types.nonEmptyStr; default = "vikunja.chn.moe"; };
|
||||
};
|
||||
config = let inherit (inputs.config.nixos.services) vikunja; in inputs.lib.mkIf vikunja.enable
|
||||
{
|
||||
services.vikunja =
|
||||
{
|
||||
enable = true;
|
||||
environmentFiles = [ inputs.config.sops.templates."vikunja.env".path ];
|
||||
settings =
|
||||
{
|
||||
service.timezone = "Asia/Shanghai";
|
||||
mailer = { enable = true; host = "mail.chn.moe"; username = "bot@chn.moe"; fromemail = "bot@chn.moe"; };
|
||||
defaultsettings.discoverable_by_email = true;
|
||||
};
|
||||
inherit (vikunja) port;
|
||||
frontendScheme = "https";
|
||||
frontendHostname = vikunja.hostname;
|
||||
database.type = "postgres";
|
||||
};
|
||||
sops =
|
||||
{
|
||||
templates."vikunja.env".content = let placeholder = inputs.config.sops.placeholder; in
|
||||
''
|
||||
VIKUNJA_SERVICE_JWTSECRET=${placeholder."vikunja/jwtsecret"}
|
||||
VIKUNJA_DATABASE_PASSWORD=${placeholder."postgresql/vikunja"}
|
||||
VIKUNJA_MAILER_PASSWORD=${placeholder."mail/bot"}
|
||||
'';
|
||||
secrets = { "vikunja/jwtsecret" = {}; "mail/bot" = {}; };
|
||||
};
|
||||
systemd.services.vikunja-api.enable = vikunja.autoStart;
|
||||
nixos.services =
|
||||
{
|
||||
postgresql = { enable = true; instances.vikunja = {}; };
|
||||
nginx = { enable = true; https.${vikunja.hostname}.global.configName = vikunja.hostname; };
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -3,45 +3,88 @@ inputs:
|
||||
options.nixos.services.wireguard = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
peers = mkOption { type = types.nonEmptyListOf types.nonEmptyStr; default = []; };
|
||||
# wg genkey | wg pubkey
|
||||
publicKey = mkOption { type = types.nonEmptyStr; };
|
||||
wireguardIp = mkOption { type = types.nonEmptyStr; };
|
||||
externalIp = mkOption { type = types.nullOr types.nonEmptyStr; default = null; };
|
||||
lighthouse = mkOption { type = types.bool; default = false; };
|
||||
behindNat = mkOption
|
||||
{
|
||||
type = types.bool;
|
||||
default = inputs.config.nixos.services.xray.client.enable;
|
||||
};
|
||||
listenIp = mkOption { type = types.nullOr types.nonEmptyStr; default = null; };
|
||||
# if the host is behind xray, it should listen on another port, to make xray succeffully listen on 51820
|
||||
listenPort = mkOption
|
||||
{
|
||||
type = types.ints.unsigned;
|
||||
default = if inputs.config.nixos.services.wireguard.behindNat then 51821 else 51820;
|
||||
};
|
||||
wireguardIp = mkOption { type = types.nonEmptyStr; };
|
||||
peers = mkOption { type = types.nonEmptyListOf types.nonEmptyStr; default = []; };
|
||||
};
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
inherit (inputs.lib) mkIf mkMerge;
|
||||
inherit (inputs.config.nixos.services) wireguard;
|
||||
inherit (builtins) map toString;
|
||||
in mkIf wireguard.enable
|
||||
{
|
||||
networking =
|
||||
let
|
||||
# if the host is behind xray, it should listen on another port, to make xray succeffully listen on 51820
|
||||
port = 51820 + (if inputs.config.nixos.services.xrayClient.enable then 1 else 0);
|
||||
in
|
||||
inherit (builtins) map toString listToAttrs filter;
|
||||
in mkMerge
|
||||
[
|
||||
{
|
||||
assertions =
|
||||
[{
|
||||
assertion = !wireguard.behindNat -> wireguard.listenIp != null;
|
||||
message = "wireguard.listenIp should be not null when behindNat is false.";
|
||||
}];
|
||||
}
|
||||
(
|
||||
mkIf wireguard.enable
|
||||
{
|
||||
firewall = { allowedUDPPorts = [ port ]; trustedInterfaces = [ "wireguard" ]; };
|
||||
wireguard.interfaces.wireguard =
|
||||
networking =
|
||||
{
|
||||
ips = [ "${wireguard.wireguardIp}/24" ];
|
||||
listenPort = port;
|
||||
privateKeyFile = inputs.config.sops.secrets."wireguard/privateKey".path;
|
||||
peers = map
|
||||
firewall = { allowedUDPPorts = [ wireguard.listenPort ]; trustedInterfaces = [ "wireguard" ]; };
|
||||
wireguard.interfaces.wireguard =
|
||||
{
|
||||
ips = [ "${wireguard.wireguardIp}/24" ];
|
||||
inherit (wireguard) listenPort;
|
||||
privateKeyFile = inputs.config.sops.secrets."wireguard/privateKey".path;
|
||||
peers = map
|
||||
(peer:
|
||||
{
|
||||
publicKey = peer.publicKey;
|
||||
allowedIPs = [ (if peer.lighthouse then "192.168.83.0/24" else "${peer.wireguardIp}/32") ];
|
||||
endpoint = mkIf (!peer.behindNat) "${peer.listenIp}:${builtins.toString peer.listenPort}";
|
||||
persistentKeepalive = 3;
|
||||
})
|
||||
(map
|
||||
(peer: inputs.topInputs.self.nixosConfigurations.${peer}.config.nixos.services.wireguard)
|
||||
wireguard.peers);
|
||||
};
|
||||
};
|
||||
sops.secrets."wireguard/privateKey" = {};
|
||||
# somehow fix wireguard connection
|
||||
systemd.services = mkIf wireguard.behindNat (listToAttrs (map
|
||||
(peer:
|
||||
{
|
||||
name = "wireguard-ping-${peer.name}";
|
||||
value =
|
||||
{
|
||||
description = "ping ${peer.name}";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig =
|
||||
{
|
||||
ExecStart = "${inputs.pkgs.iputils}/bin/ping -i 3 ${peer.value.wireguardIp}";
|
||||
Restart = "always";
|
||||
};
|
||||
};
|
||||
})
|
||||
(filter (peer: !peer.value.behindNat) (map
|
||||
(peer:
|
||||
{
|
||||
publicKey = peer.publicKey;
|
||||
allowedIPs = [ (if peer.lighthouse then "192.168.83.0/24" else "${peer.wireguardIp}/32") ];
|
||||
endpoint = mkIf (peer.externalIp != null) "${peer.externalIp}:51820";
|
||||
persistentKeepalive = 3;
|
||||
name = peer;
|
||||
value = inputs.topInputs.self.nixosConfigurations.${peer}.config.nixos.services.wireguard;
|
||||
})
|
||||
(map
|
||||
(peer: inputs.topInputs.self.nixosConfigurations.${peer}.config.nixos.services.wireguard)
|
||||
wireguard.peers);
|
||||
};
|
||||
};
|
||||
sops.secrets."wireguard/privateKey" = {};
|
||||
};
|
||||
wireguard.peers))));
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.services = let inherit (inputs.lib) mkOption types; in
|
||||
options.nixos.services.xray = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
xrayClient =
|
||||
client =
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
serverAddress = mkOption { type = types.nonEmptyStr; };
|
||||
@@ -13,7 +13,7 @@ inputs:
|
||||
extraInterfaces = mkOption { type = types.listOf types.nonEmptyStr; default = []; };
|
||||
}; }; };
|
||||
};
|
||||
xrayServer =
|
||||
server =
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
serverName = mkOption { type = types.nonEmptyStr; };
|
||||
@@ -23,12 +23,19 @@ inputs:
|
||||
let
|
||||
inherit (inputs.lib) mkMerge mkIf;
|
||||
inherit (inputs.localLib) stripeTabs attrsToList;
|
||||
inherit (inputs.config.nixos.services) xrayClient xrayServer;
|
||||
inherit (inputs.config.nixos.services) xray;
|
||||
inherit (builtins) map listToAttrs toString genList length concatStringsSep;
|
||||
in mkMerge
|
||||
[
|
||||
{
|
||||
assertions =
|
||||
[{
|
||||
assertion = !(xray.client.enable && xray.server.enable);
|
||||
message = "Currenty xray.client and xray.server could not be simutaniusly enabled.";
|
||||
}];
|
||||
}
|
||||
(
|
||||
mkIf xrayClient.enable
|
||||
mkIf xray.client.enable
|
||||
{
|
||||
services =
|
||||
{
|
||||
@@ -40,14 +47,10 @@ inputs:
|
||||
no-poll = true;
|
||||
log-queries = true;
|
||||
server = [ "127.0.0.1#10853" ];
|
||||
interface = xrayClient.dns.extraInterfaces ++ [ "lo" ];
|
||||
interface = xray.client.dns.extraInterfaces ++ [ "lo" ];
|
||||
bind-dynamic = true;
|
||||
ipset =
|
||||
[
|
||||
"/developer.download.nvidia.com/noproxy_net"
|
||||
"/yuanshen.com/noproxy_net"
|
||||
];
|
||||
address = map (host: "/${host.name}/${host.value}") (attrsToList xrayClient.dns.hosts);
|
||||
ipset = [ "/yuanshen.com/noproxy_net" ];
|
||||
address = map (host: "/${host.name}/${host.value}") (attrsToList xray.client.dns.hosts);
|
||||
};
|
||||
};
|
||||
xray = { enable = true; settingsFile = inputs.config.sops.templates."xray-client.json".path; };
|
||||
@@ -130,7 +133,7 @@ inputs:
|
||||
protocol = "vless";
|
||||
settings.vnext =
|
||||
[{
|
||||
address = xrayClient.serverAddress;
|
||||
address = xray.client.serverAddress;
|
||||
port = 443;
|
||||
users =
|
||||
[{
|
||||
@@ -145,7 +148,7 @@ inputs:
|
||||
security = "reality";
|
||||
realitySettings =
|
||||
{
|
||||
serverName = xrayClient.serverName;
|
||||
serverName = xray.client.serverName;
|
||||
publicKey = "Nl0eVZoDF9d71_3dVsZGJl3UWR9LCv3B14gu7G6vhjk";
|
||||
fingerprint = "firefox";
|
||||
};
|
||||
@@ -308,7 +311,7 @@ inputs:
|
||||
}
|
||||
)
|
||||
(
|
||||
mkIf xrayServer.enable (let userList = genList (n: n) 30; in
|
||||
mkIf xray.server.enable (let userList = genList (n: n) 30; in
|
||||
{
|
||||
services.xray = { enable = true; settingsFile = inputs.config.sops.templates."xray-server.json".path; };
|
||||
sops =
|
||||
@@ -351,7 +354,7 @@ inputs:
|
||||
realitySettings =
|
||||
{
|
||||
dest = "127.0.0.1:${fallbackPort}";
|
||||
serverNames = [ xrayServer.serverName ];
|
||||
serverNames = [ xray.server.serverName ];
|
||||
privateKey = inputs.config.sops.placeholder."xray-server/private-key";
|
||||
minClientVer = "1.8.0";
|
||||
shortIds = [ "" ];
|
||||
@@ -493,12 +496,12 @@ inputs:
|
||||
};
|
||||
nixos.services =
|
||||
{
|
||||
acme = { enable = true; cert.${xrayServer.serverName}.group = inputs.config.users.users.nginx.group; };
|
||||
acme = { enable = true; cert.${xray.server.serverName}.group = inputs.config.users.users.nginx.group; };
|
||||
nginx =
|
||||
{
|
||||
enable = true;
|
||||
transparentProxy.map."${xrayServer.serverName}" = 4726;
|
||||
https."${xrayServer.serverName}" =
|
||||
transparentProxy.map."${xray.server.serverName}" = 4726;
|
||||
https."${xray.server.serverName}" =
|
||||
{
|
||||
listen.main = { proxyProtocol = false; addToTransparentProxy = false; };
|
||||
location."/".return.return = "400";
|
||||
|
||||
@@ -6,7 +6,7 @@ inputs:
|
||||
./fileSystems
|
||||
./grub.nix
|
||||
./initrd.nix
|
||||
./kernel.nix
|
||||
./kernel
|
||||
./impermanence.nix
|
||||
./gui.nix
|
||||
./nixpkgs.nix
|
||||
@@ -16,15 +16,16 @@ inputs:
|
||||
./sops.nix
|
||||
./user.nix
|
||||
./sysctl.nix
|
||||
./envfs.nix
|
||||
];
|
||||
config =
|
||||
{
|
||||
services = { dbus.implementation = "broker"; fstrim = { enable = true; interval = "daily"; }; };
|
||||
services = { dbus.implementation = "broker"; fstrim.enable = true; };
|
||||
time.timeZone = "Asia/Shanghai";
|
||||
boot =
|
||||
{
|
||||
supportedFilesystems = [ "ntfs" ];
|
||||
consoleLogLevel = 7;
|
||||
# consoleLogLevel = 7;
|
||||
};
|
||||
hardware.enableAllFirmware = true;
|
||||
environment.sessionVariables = rec
|
||||
@@ -51,5 +52,11 @@ inputs:
|
||||
# environment.variables.LIBRARY_PATH = "/run/current-system/sw/lib";
|
||||
virtualisation.oci-containers.backend = "docker";
|
||||
home-manager.sharedModules = [{ home.stateVersion = "22.11"; }];
|
||||
system =
|
||||
{
|
||||
stateVersion = "22.11";
|
||||
configurationRevision = inputs.topInputs.self.rev or "dirty";
|
||||
nixos.versionSuffix = inputs.lib.mkForce "";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
12
modules/system/envfs.nix
Normal file
12
modules/system/envfs.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.system.envfs = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = true; };
|
||||
};
|
||||
config = inputs.lib.mkMerge
|
||||
[
|
||||
(builtins.elemAt inputs.topInputs.envfs.nixosModules.envfs.imports 0 inputs)
|
||||
{ environment.variables.ENVFS_RESOLVE_ALWAYS = "1"; }
|
||||
];
|
||||
}
|
||||
@@ -7,44 +7,78 @@ inputs:
|
||||
# "efi" using efi, "efiRemovable" using efi with install grub removable, or dev path like "/dev/sda" using bios
|
||||
installDevice = mkOption { type = types.str; };
|
||||
};
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
inherit (inputs.localLib) mkConditional attrsToList stripeTabs;
|
||||
inherit (inputs.config.nixos.system) grub;
|
||||
inherit (builtins) concatStringsSep map;
|
||||
in { boot.loader =
|
||||
config = let inherit (inputs.config.nixos.system) grub; in inputs.lib.mkMerge
|
||||
[
|
||||
# general settings
|
||||
{ boot.loader.grub = { enable = true; useOSProber = false; }; }
|
||||
# grub timeout
|
||||
{ boot.loader.timeout = grub.timeout; }
|
||||
# grub install
|
||||
{
|
||||
timeout = grub.timeout;
|
||||
grub =
|
||||
boot.loader =
|
||||
{
|
||||
enable = true;
|
||||
useOSProber = false;
|
||||
extraEntries = concatStringsSep "\n" (map
|
||||
(system:
|
||||
''
|
||||
menuentry "${system.value}" {
|
||||
insmod part_gpt
|
||||
insmod fat
|
||||
insmod search_fs_uuid
|
||||
insmod chain
|
||||
search --fs-uuid --set=root ${system.name}
|
||||
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
|
||||
}
|
||||
'')
|
||||
(attrsToList grub.windowsEntries));
|
||||
device =
|
||||
if grub.installDevice == "efi" || grub.installDevice == "efiRemovable" then "nodev"
|
||||
else grub.installDevice;
|
||||
efiSupport = grub.installDevice == "efi" || grub.installDevice == "efiRemovable";
|
||||
efiInstallAsRemovable = grub.installDevice == "efiRemovable";
|
||||
grub =
|
||||
{
|
||||
device = if builtins.elem grub.installDevice [ "efi" "efiRemovable" ] then "nodev" else grub.installDevice;
|
||||
efiSupport = builtins.elem grub.installDevice [ "efi" "efiRemovable" ];
|
||||
efiInstallAsRemovable = grub.installDevice == "efiRemovable";
|
||||
};
|
||||
efi =
|
||||
{
|
||||
canTouchEfiVariables = grub.installDevice == "efi";
|
||||
efiSysMountPoint = inputs.lib.mkIf (builtins.elem grub.installDevice [ "efi" "efiRemovable" ]) "/boot/efi";
|
||||
};
|
||||
};
|
||||
efi =
|
||||
}
|
||||
# extra grub entries
|
||||
{
|
||||
boot.loader.grub =
|
||||
{
|
||||
canTouchEfiVariables = grub.installDevice == "efi";
|
||||
efiSysMountPoint =
|
||||
if grub.installDevice == "efi" || grub.installDevice == "efiRemovable" then "/boot/efi"
|
||||
else inputs.options.boot.loader.efi.efiSysMountPoint.default;
|
||||
memtest86.enable = true;
|
||||
extraFiles = inputs.lib.mkIf (builtins.elem grub.installDevice [ "efi" "efiRemovable" ])
|
||||
{ "shell.efi" = "${inputs.pkgs.edk2-uefi-shell}/shell.efi"; };
|
||||
extraEntries = inputs.lib.mkMerge (builtins.concatLists
|
||||
[
|
||||
(builtins.map
|
||||
(system:
|
||||
''
|
||||
menuentry "${system.value}" {
|
||||
insmod part_gpt
|
||||
insmod fat
|
||||
insmod search_fs_uuid
|
||||
insmod chain
|
||||
search --fs-uuid --set=root ${system.name}
|
||||
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
|
||||
}
|
||||
'')
|
||||
(inputs.localLib.attrsToList grub.windowsEntries))
|
||||
[
|
||||
''
|
||||
menuentry "System shutdown" {
|
||||
echo "System shutting down..."
|
||||
halt
|
||||
}
|
||||
menuentry "System restart" {
|
||||
echo "System rebooting..."
|
||||
reboot
|
||||
}
|
||||
''
|
||||
(
|
||||
inputs.lib.optionalString (builtins.elem grub.installDevice [ "efi" "efiRemovable" ])
|
||||
''
|
||||
menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
|
||||
fwsetup
|
||||
}
|
||||
menuentry "UEFI Shell" {
|
||||
insmod fat
|
||||
insmod chain
|
||||
chainloader @bootRoot@/shell.efi
|
||||
}
|
||||
''
|
||||
)
|
||||
]
|
||||
]);
|
||||
};
|
||||
};};
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ inputs:
|
||||
enable = true;
|
||||
displayManager = { sddm.enable = true; defaultSession = "plasmawayland"; };
|
||||
desktopManager.plasma5.enable = true;
|
||||
videoDrivers = inputs.config.nixos.hardware.gpus;
|
||||
};
|
||||
systemd.services.display-manager = { after = [ "network-online.target" ]; enable = gui.autoStart; };
|
||||
environment =
|
||||
|
||||
@@ -2,7 +2,7 @@ inputs:
|
||||
{
|
||||
options.nixos.system.impermanence = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
enable = mkOption { type = types.bool; default = true; };
|
||||
persistence = mkOption { type = types.nonEmptyStr; default = "/nix/persistent"; };
|
||||
root = mkOption { type = types.nonEmptyStr; default = "/nix/rootfs/current"; };
|
||||
nodatacow = mkOption { type = types.nullOr types.nonEmptyStr; default = "/nix/nodatacow"; };
|
||||
@@ -56,7 +56,7 @@ inputs:
|
||||
{
|
||||
users.chn =
|
||||
{
|
||||
directories = [ ".cache" ];
|
||||
directories = [ ".cache" ".config/fontconfig" ];
|
||||
};
|
||||
} else {});
|
||||
"${impermanence.nodatacow}" =
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.system.kernel = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
patches = mkOption { type = types.listOf types.nonEmptyStr; default = []; };
|
||||
modules =
|
||||
{
|
||||
install = mkOption { type = types.listOf types.str; default = []; };
|
||||
load = mkOption { type = types.listOf types.str; default = []; };
|
||||
initrd = mkOption { type = types.listOf types.str; default = []; };
|
||||
modprobeConfig = mkOption { type = types.listOf types.str; default = []; };
|
||||
};
|
||||
};
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkMerge mkIf;
|
||||
inherit (inputs.localLib) mkConditional;
|
||||
inherit (inputs.config.nixos.system) kernel;
|
||||
in { boot =
|
||||
{
|
||||
kernelModules = [ "br_netfilter" ] ++ kernel.modules.load;
|
||||
# modprobe --show-depends
|
||||
initrd.availableKernelModules =
|
||||
[
|
||||
"ahci" "ata_piix" "bfq" "failover" "net_failover" "nls_cp437" "nls_iso8859-1" "nvme" "sdhci_acpi" "sd_mod"
|
||||
"sr_mod" "usbcore" "usbhid" "usbip-core" "usb-common" "usb_storage" "vhci-hcd" "virtio" "virtio_blk"
|
||||
"virtio_net" "virtio_pci" "xhci_pci" "virtio_ring" "virtio_scsi" "cryptd" "crypto_simd" "libaes"
|
||||
# networking for nas
|
||||
"igb"
|
||||
# yoga
|
||||
"lenovo_yogabook"
|
||||
];
|
||||
extraModulePackages = (with inputs.config.boot.kernelPackages; [ v4l2loopback ]) ++ kernel.modules.install;
|
||||
extraModprobeConfig = builtins.concatStringsSep "\n" kernel.modules.modprobeConfig;
|
||||
kernelParams = [ "delayacct" "acpi_osi=Linux" ];
|
||||
kernelPackages = inputs.pkgs.linuxPackages_xanmod_latest;
|
||||
kernelPatches =
|
||||
let
|
||||
patches =
|
||||
{
|
||||
cjktty =
|
||||
{
|
||||
patch =
|
||||
let
|
||||
version = builtins.splitVersion inputs.config.boot.kernelPackages.kernel.version;
|
||||
major = builtins.elemAt version 0;
|
||||
minor = builtins.elemAt version 1;
|
||||
in inputs.pkgs.fetchurl
|
||||
{
|
||||
url = "https://raw.githubusercontent.com/zhmars/cjktty-patches/master/"
|
||||
+ "v${major}.x/cjktty-${major}.${minor}.patch";
|
||||
sha256 =
|
||||
let
|
||||
hashes =
|
||||
{
|
||||
"6.1" = "11ddiammvjxx2m9v32p25l1ai759a1d6xhdpszgnihv7g2fzigf5";
|
||||
"6.6" = "19ib0syj3207ifr315gdrnpv6nhh435fmgl05c7k715nng40i827";
|
||||
};
|
||||
in hashes."${major}.${minor}";
|
||||
};
|
||||
extraStructuredConfig =
|
||||
{ FONT_CJK_16x16 = inputs.lib.kernel.yes; FONT_CJK_32x32 = inputs.lib.kernel.yes; };
|
||||
};
|
||||
lantian =
|
||||
{
|
||||
patch = null;
|
||||
# pick from xddxdd/nur-packages dce93a
|
||||
extraStructuredConfig = with inputs.lib.kernel;
|
||||
{
|
||||
ACPI_PCI_SLOT = yes;
|
||||
ENERGY_MODEL = yes;
|
||||
PARAVIRT_TIME_ACCOUNTING = yes;
|
||||
PM_AUTOSLEEP = yes;
|
||||
WQ_POWER_EFFICIENT_DEFAULT = yes;
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
builtins.map (name: { inherit name; } // patches.${name}) kernel.patches;
|
||||
};};
|
||||
}
|
||||
128
modules/system/kernel/default.nix
Normal file
128
modules/system/kernel/default.nix
Normal file
@@ -0,0 +1,128 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.system.kernel = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
patches = mkOption { type = types.listOf types.nonEmptyStr; default = []; };
|
||||
modules =
|
||||
{
|
||||
install = mkOption { type = types.listOf types.str; default = []; };
|
||||
load = mkOption { type = types.listOf types.str; default = []; };
|
||||
initrd = mkOption { type = types.listOf types.str; default = []; };
|
||||
modprobeConfig = mkOption { type = types.listOf types.str; default = []; };
|
||||
};
|
||||
};
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkMerge mkIf;
|
||||
inherit (inputs.localLib) mkConditional;
|
||||
inherit (inputs.config.nixos.system) kernel;
|
||||
in { boot =
|
||||
{
|
||||
kernelModules = [ "br_netfilter" ] ++ kernel.modules.load;
|
||||
# modprobe --show-depends
|
||||
initrd.availableKernelModules =
|
||||
[
|
||||
"ahci" "ata_piix" "bfq" "failover" "net_failover" "nls_cp437" "nls_iso8859-1" "nvme" "sdhci_acpi" "sd_mod"
|
||||
"sr_mod" "usbcore" "usbhid" "usbip-core" "usb-common" "usb_storage" "vhci-hcd" "virtio" "virtio_blk"
|
||||
"virtio_net" "virtio_pci" "xhci_pci" "virtio_ring" "virtio_scsi" "cryptd" "crypto_simd" "libaes"
|
||||
# networking for nas
|
||||
"igb"
|
||||
# yoga
|
||||
"lenovo_yogabook"
|
||||
];
|
||||
extraModulePackages = (with inputs.config.boot.kernelPackages; [ v4l2loopback ]) ++ kernel.modules.install;
|
||||
extraModprobeConfig = builtins.concatStringsSep "\n" kernel.modules.modprobeConfig;
|
||||
kernelParams = [ "delayacct" "acpi_osi=Linux" "acpi.ec_no_wakeup=1" ];
|
||||
kernelPackages = inputs.pkgs.linuxPackages_xanmod_latest;
|
||||
kernelPatches =
|
||||
let
|
||||
patches =
|
||||
{
|
||||
cjktty =
|
||||
[{
|
||||
name = "cjktty";
|
||||
patch =
|
||||
let
|
||||
version = builtins.splitVersion inputs.config.boot.kernelPackages.kernel.version;
|
||||
major = builtins.elemAt version 0;
|
||||
minor = builtins.elemAt version 1;
|
||||
in inputs.pkgs.fetchurl
|
||||
{
|
||||
url = "https://raw.githubusercontent.com/zhmars/cjktty-patches/master/"
|
||||
+ "v${major}.x/cjktty-${major}.${minor}.patch";
|
||||
sha256 =
|
||||
let
|
||||
hashes =
|
||||
{
|
||||
"6.1" = "11ddiammvjxx2m9v32p25l1ai759a1d6xhdpszgnihv7g2fzigf5";
|
||||
"6.7" = "1yfsmc0873xiwlirir0xfp9zyrpd09q1srgr3z4rl7i7lxzaqls8";
|
||||
};
|
||||
in hashes."${major}.${minor}";
|
||||
};
|
||||
extraStructuredConfig =
|
||||
{ FONT_CJK_16x16 = inputs.lib.kernel.yes; FONT_CJK_32x32 = inputs.lib.kernel.yes; };
|
||||
}];
|
||||
lantian =
|
||||
[{
|
||||
name = "lantian";
|
||||
patch = null;
|
||||
# pick from xddxdd/nur-packages dce93a
|
||||
extraStructuredConfig = with inputs.lib.kernel;
|
||||
{
|
||||
ACPI_PCI_SLOT = yes;
|
||||
ENERGY_MODEL = yes;
|
||||
PARAVIRT_TIME_ACCOUNTING = yes;
|
||||
PM_AUTOSLEEP = yes;
|
||||
WQ_POWER_EFFICIENT_DEFAULT = yes;
|
||||
PREEMPT_VOLUNTARY = inputs.lib.mkForce no;
|
||||
PREEMPT = inputs.lib.mkForce yes;
|
||||
NO_HZ_FULL = yes;
|
||||
HZ_1000 = inputs.lib.mkForce yes;
|
||||
HZ_250 = inputs.lib.mkForce no;
|
||||
HZ = inputs.lib.mkForce (freeform "1000");
|
||||
};
|
||||
}];
|
||||
surface =
|
||||
let
|
||||
version =
|
||||
let versionArray = builtins.splitVersion inputs.config.boot.kernelPackages.kernel.version;
|
||||
in "${builtins.elemAt versionArray 0}.${builtins.elemAt versionArray 1}";
|
||||
kernelPatches = builtins.map
|
||||
(file:
|
||||
{
|
||||
name = "surface-${file.name}";
|
||||
patch = "${inputs.topInputs.linux-surface}/patches/${version}/${file.name}";
|
||||
})
|
||||
(builtins.filter
|
||||
(file: file.value == "regular")
|
||||
(inputs.localLib.attrsToList (builtins.readDir
|
||||
"${inputs.topInputs.linux-surface}/patches/${version}")));
|
||||
kernelConfig = builtins.removeAttrs
|
||||
(builtins.listToAttrs (builtins.concatLists (builtins.map
|
||||
(configString:
|
||||
if builtins.match "CONFIG_.*=." configString == [] then
|
||||
(
|
||||
let match = builtins.match "CONFIG_(.*)=(.)" configString; in with inputs.lib.kernel;
|
||||
[{
|
||||
name = builtins.elemAt match 0;
|
||||
value = { m = module; y = yes; }.${builtins.elemAt match 1};
|
||||
}]
|
||||
)
|
||||
else if builtins.match "# CONFIG_.* is not set" configString == [] then
|
||||
[{
|
||||
name = builtins.elemAt (builtins.match "# CONFIG_(.*) is not set" configString) 0;
|
||||
value = inputs.lib.kernel.unset;
|
||||
}]
|
||||
else if builtins.match "#.*" configString == [] then []
|
||||
else if configString == "" then []
|
||||
else throw "could not parse: ${configString}"
|
||||
)
|
||||
(inputs.lib.strings.splitString "\n"
|
||||
(builtins.readFile "${inputs.topInputs.linux-surface}/configs/surface-${version}.config")))))
|
||||
[ "VIDEO_IPU3_IMGU" ];
|
||||
in kernelPatches ++ [{ name = "surface-config"; patch = null; extraStructuredConfig = kernelConfig; }];
|
||||
hibernate-progress = [{ name = "hibernate-progress"; patch = ./hibernate-progress.patch; }];
|
||||
};
|
||||
in builtins.concatLists (builtins.map (name: patches.${name}) kernel.patches);
|
||||
};};
|
||||
}
|
||||
116
modules/system/kernel/hibernate-progress.patch
Normal file
116
modules/system/kernel/hibernate-progress.patch
Normal file
@@ -0,0 +1,116 @@
|
||||
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
|
||||
index d44f5937f1e5..8905c0438b64 100644
|
||||
--- a/kernel/power/swap.c
|
||||
+++ b/kernel/power/swap.c
|
||||
@@ -552,7 +552,7 @@ static int save_image(struct swap_map_handle *handle,
|
||||
|
||||
hib_init_batch(&hb);
|
||||
|
||||
- pr_info("Saving image data pages (%u pages)...\n",
|
||||
+ pr_err("Saving image data pages (%u pages)...\n",
|
||||
nr_to_write);
|
||||
m = nr_to_write / 10;
|
||||
if (!m)
|
||||
@@ -567,7 +567,7 @@ static int save_image(struct swap_map_handle *handle,
|
||||
if (ret)
|
||||
break;
|
||||
if (!(nr_pages % m))
|
||||
- pr_info("Image saving progress: %3d%%\n",
|
||||
+ pr_err("Image saving progress: %3d%%\n",
|
||||
nr_pages / m * 10);
|
||||
nr_pages++;
|
||||
}
|
||||
@@ -577,7 +577,7 @@ static int save_image(struct swap_map_handle *handle,
|
||||
if (!ret)
|
||||
ret = err2;
|
||||
if (!ret)
|
||||
- pr_info("Image saving done\n");
|
||||
+ pr_err("Image saving done\n");
|
||||
swsusp_show_speed(start, stop, nr_to_write, "Wrote");
|
||||
return ret;
|
||||
}
|
||||
@@ -767,8 +767,8 @@ static int save_image_lzo(struct swap_map_handle *handle,
|
||||
*/
|
||||
handle->reqd_free_pages = reqd_free_pages();
|
||||
|
||||
- pr_info("Using %u thread(s) for compression\n", nr_threads);
|
||||
- pr_info("Compressing and saving image data (%u pages)...\n",
|
||||
+ pr_err("Using %u thread(s) for compression\n", nr_threads);
|
||||
+ pr_err("Compressing and saving image data (%u pages)...\n",
|
||||
nr_to_write);
|
||||
m = nr_to_write / 10;
|
||||
if (!m)
|
||||
@@ -789,7 +789,7 @@ static int save_image_lzo(struct swap_map_handle *handle,
|
||||
data_of(*snapshot), PAGE_SIZE);
|
||||
|
||||
if (!(nr_pages % m))
|
||||
- pr_info("Image saving progress: %3d%%\n",
|
||||
+ pr_err("Image saving progress: %3d%%\n",
|
||||
nr_pages / m * 10);
|
||||
nr_pages++;
|
||||
}
|
||||
@@ -860,7 +860,7 @@ static int save_image_lzo(struct swap_map_handle *handle,
|
||||
if (!ret)
|
||||
ret = err2;
|
||||
if (!ret)
|
||||
- pr_info("Image saving done\n");
|
||||
+ pr_err("Image saving done\n");
|
||||
swsusp_show_speed(start, stop, nr_to_write, "Wrote");
|
||||
out_clean:
|
||||
hib_finish_batch(&hb);
|
||||
@@ -1071,7 +1071,7 @@ static int load_image(struct swap_map_handle *handle,
|
||||
hib_init_batch(&hb);
|
||||
|
||||
clean_pages_on_read = true;
|
||||
- pr_info("Loading image data pages (%u pages)...\n", nr_to_read);
|
||||
+ pr_err("Loading image data pages (%u pages)...\n", nr_to_read);
|
||||
m = nr_to_read / 10;
|
||||
if (!m)
|
||||
m = 1;
|
||||
@@ -1089,7 +1089,7 @@ static int load_image(struct swap_map_handle *handle,
|
||||
if (ret)
|
||||
break;
|
||||
if (!(nr_pages % m))
|
||||
- pr_info("Image loading progress: %3d%%\n",
|
||||
+ pr_err("Image loading progress: %3d%%\n",
|
||||
nr_pages / m * 10);
|
||||
nr_pages++;
|
||||
}
|
||||
@@ -1099,7 +1099,7 @@ static int load_image(struct swap_map_handle *handle,
|
||||
if (!ret)
|
||||
ret = err2;
|
||||
if (!ret) {
|
||||
- pr_info("Image loading done\n");
|
||||
+ pr_err("Image loading done\n");
|
||||
snapshot_write_finalize(snapshot);
|
||||
if (!snapshot_image_loaded(snapshot))
|
||||
ret = -ENODATA;
|
||||
@@ -1283,8 +1283,8 @@ static int load_image_lzo(struct swap_map_handle *handle,
|
||||
}
|
||||
want = ring_size = i;
|
||||
|
||||
- pr_info("Using %u thread(s) for decompression\n", nr_threads);
|
||||
- pr_info("Loading and decompressing image data (%u pages)...\n",
|
||||
+ pr_err("Using %u thread(s) for decompression\n", nr_threads);
|
||||
+ pr_err("Loading and decompressing image data (%u pages)...\n",
|
||||
nr_to_read);
|
||||
m = nr_to_read / 10;
|
||||
if (!m)
|
||||
@@ -1414,7 +1414,7 @@ static int load_image_lzo(struct swap_map_handle *handle,
|
||||
data[thr].unc + off, PAGE_SIZE);
|
||||
|
||||
if (!(nr_pages % m))
|
||||
- pr_info("Image loading progress: %3d%%\n",
|
||||
+ pr_err("Image loading progress: %3d%%\n",
|
||||
nr_pages / m * 10);
|
||||
nr_pages++;
|
||||
|
||||
@@ -1440,7 +1440,7 @@ static int load_image_lzo(struct swap_map_handle *handle,
|
||||
}
|
||||
stop = ktime_get();
|
||||
if (!ret) {
|
||||
- pr_info("Image loading done\n");
|
||||
+ pr_err("Image loading done\n");
|
||||
snapshot_write_finalize(snapshot);
|
||||
if (!snapshot_image_loaded(snapshot))
|
||||
ret = -ENODATA;
|
||||
@@ -4,62 +4,82 @@ inputs:
|
||||
{
|
||||
# marches allowed to be compiled on this machine
|
||||
marches = mkOption { type = types.nullOr (types.listOf types.nonEmptyStr); default = null; };
|
||||
keepOutputs = mkOption { type = types.bool; default = false; };
|
||||
includeBuildDependencies = mkOption { type = types.bool; default = inputs.topInputs.self.config.archive; };
|
||||
substituters = mkOption { type = types.nullOr (types.listOf types.nonEmptyStr); default = null; };
|
||||
autoOptimiseStore = mkOption { type = types.bool; default = true; };
|
||||
autoOptimiseStore = mkOption { type = types.bool; default = false; };
|
||||
};
|
||||
config =
|
||||
let
|
||||
inherit (inputs.config.nixos.system) nix;
|
||||
in
|
||||
config = let inherit (inputs.config.nixos.system) nix; in inputs.lib.mkMerge
|
||||
[
|
||||
# general nix config
|
||||
{
|
||||
nix.settings =
|
||||
{
|
||||
nix =
|
||||
system-features = [ "big-parallel" "nixos-test" "benchmark" ];
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
keep-failed = true;
|
||||
max-substitution-jobs = 4;
|
||||
trusted-public-keys = [ "chn:Cc+nowW1LIpe1kyXOZmNaznFDiH1glXmpb4A+WD/DTE=" ];
|
||||
show-trace = true;
|
||||
max-jobs = 4;
|
||||
cores = 0;
|
||||
keep-going = true;
|
||||
};
|
||||
systemd.services.nix-daemon = { serviceConfig.CacheDirectory = "nix"; environment.TMPDIR = "/var/cache/nix"; };
|
||||
}
|
||||
# nix daemon use lower io/cpu priority
|
||||
{
|
||||
nix = { daemonIOSchedClass = "idle"; daemonCPUSchedPolicy = "idle"; };
|
||||
systemd.services.nix-daemon.serviceConfig = { Slice = "-.slice"; Nice = "19"; };
|
||||
}
|
||||
# nix channel & nix flake registry
|
||||
{
|
||||
nix =
|
||||
{
|
||||
registry =
|
||||
{
|
||||
settings =
|
||||
{
|
||||
system-features = [ "big-parallel" "nixos-test" "benchmark" ] ++ (map
|
||||
(march: "gccarch-${march}")
|
||||
(
|
||||
if nix.marches == null then
|
||||
(with inputs.config.nixos.system.nixpkgs; if march == null then [] else [ march ])
|
||||
else nix.marches
|
||||
));
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
keep-outputs = nix.keepOutputs;
|
||||
keep-failed = true;
|
||||
auto-optimise-store = nix.autoOptimiseStore;
|
||||
substituters = if nix.substituters == null then [ "https://cache.nixos.org/" ] else nix.substituters;
|
||||
trusted-public-keys = [ "chn:Cc+nowW1LIpe1kyXOZmNaznFDiH1glXmpb4A+WD/DTE=" ];
|
||||
show-trace = true;
|
||||
max-jobs = 2;
|
||||
cores = 0;
|
||||
keep-going = true;
|
||||
};
|
||||
daemonIOSchedClass = "idle";
|
||||
daemonCPUSchedPolicy = "idle";
|
||||
registry =
|
||||
{
|
||||
nixpkgs.flake = inputs.topInputs.nixpkgs;
|
||||
nixpkgs-unstable.flake = inputs.topInputs.nixpkgs-unstable;
|
||||
nixos.flake = inputs.topInputs.self;
|
||||
};
|
||||
nixPath = [ "nixpkgs=${inputs.topInputs.nixpkgs}" ];
|
||||
nixpkgs.flake = inputs.topInputs.nixpkgs;
|
||||
nixpkgs-unstable.flake = inputs.topInputs.nixpkgs-unstable;
|
||||
nixos.flake = inputs.topInputs.self;
|
||||
};
|
||||
system = { stateVersion = "22.11"; configurationRevision = inputs.topInputs.self.rev or "dirty"; };
|
||||
systemd.services.nix-daemon =
|
||||
{
|
||||
serviceConfig = { CacheDirectory = "nix"; Slice = "-.slice"; Nice = "19"; };
|
||||
environment = { TMPDIR = "/var/cache/nix"; };
|
||||
};
|
||||
environment.etc =
|
||||
nixPath = [ "nixpkgs=${inputs.topInputs.nixpkgs}" ];
|
||||
};
|
||||
environment =
|
||||
{
|
||||
etc =
|
||||
{
|
||||
"channels/nixpkgs".source = inputs.topInputs.nixpkgs.outPath;
|
||||
"channels/nixpkgs-unstable".source = inputs.topInputs.nixpkgs-unstable.outPath;
|
||||
"nixos".source = inputs.topInputs.self.outPath;
|
||||
};
|
||||
# environment.pathsToLink = [ "/include" ];
|
||||
# environment.variables.CPATH = "/run/current-system/sw/include";
|
||||
# environment.variables.LIBRARY_PATH = "/run/current-system/sw/lib";
|
||||
# gui.enable
|
||||
variables.COMMA_NIXPKGS_FLAKE = "nixpkgs-unstable";
|
||||
};
|
||||
}
|
||||
# marches
|
||||
{
|
||||
nix.settings.system-features = map
|
||||
(march: "gccarch-${march}")
|
||||
(
|
||||
if nix.marches == null then
|
||||
(with inputs.config.nixos.system.nixpkgs; if march == null then [] else [ march ])
|
||||
else nix.marches
|
||||
);
|
||||
}
|
||||
# includeBuildDependencies
|
||||
{
|
||||
nix.settings.keep-outputs = nix.includeBuildDependencies;
|
||||
system.includeBuildDependencies = nix.includeBuildDependencies;
|
||||
}
|
||||
# substituters
|
||||
{
|
||||
nix.settings.substituters = if nix.substituters == null then [ "https://cache.nixos.org/" ] else nix.substituters;
|
||||
}
|
||||
# autoOptimiseStore
|
||||
{
|
||||
nix.settings.auto-optimise-store = nix.autoOptimiseStore;
|
||||
}
|
||||
# c++ include path
|
||||
# environment.pathsToLink = [ "/include" ];
|
||||
# environment.variables.CPATH = "/run/current-system/sw/include";
|
||||
# environment.variables.LIBRARY_PATH = "/run/current-system/sw/lib";
|
||||
];
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ inputs:
|
||||
nixpkgs =
|
||||
let
|
||||
permittedInsecurePackages =
|
||||
[ "openssl_1_1" "electron_19" "python2" "electron_12" "electron_24" "zotero" ];
|
||||
[ "openssl_1_1" "electron_19" "python2" "electron_12" "electron_24" "zotero" "electron_25" ];
|
||||
hostPlatform = mkConditional (nixpkgs.march != null)
|
||||
{ system = "x86_64-linux"; gcc = { arch = nixpkgs.march; tune = nixpkgs.march; }; }
|
||||
"x86_64-linux";
|
||||
@@ -138,19 +138,23 @@ inputs:
|
||||
sandybridge = "MSANDYBRIDGE";
|
||||
silvermont = "MSILVERMONT";
|
||||
broadwell = "MBROADWELL";
|
||||
skylake = "MSKYLAKE";
|
||||
znver2 = "MZEN2";
|
||||
znver3 = "MZEN3";
|
||||
znver4 = "MZEN4";
|
||||
};
|
||||
in { GENERIC_CPU = inputs.lib.kernel.no; ${kernelConfig.${nixpkgs.march}} = inputs.lib.kernel.yes; };
|
||||
}];
|
||||
}
|
||||
{
|
||||
nixpkgs.config = mkIf nixpkgs.cuda.enable
|
||||
(
|
||||
{ cudaSupport = true; }
|
||||
(
|
||||
mkIf nixpkgs.cuda.enable
|
||||
{
|
||||
nixpkgs.config = { cudaSupport = true; }
|
||||
// (if nixpkgs.cuda.capabilities != null then { cudaCapabilities = nixpkgs.cuda.capabilities; } else {})
|
||||
// (if nixpkgs.cuda.forwardCompat != null then { cudaForwardCompat = nixpkgs.cuda.forwardCompat; }
|
||||
else {}));
|
||||
}
|
||||
// (if nixpkgs.cuda.forwardCompat != null then { cudaForwardCompat = nixpkgs.cuda.forwardCompat; } else {})
|
||||
// (if nixpkgs.march != null then { nvhpcArch = nixpkgs.march; } else {});
|
||||
environment.systemPackages = [ inputs.pkgs.cudatoolkit ];
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
inputs:
|
||||
{
|
||||
# imports = inputs.localLib.mkModules [ ./plasma.nix ];
|
||||
imports = inputs.localLib.mkModules [ ./plasma ];
|
||||
config =
|
||||
let
|
||||
inherit (inputs.lib) mkIf;
|
||||
inherit (inputs.config.nixos) users;
|
||||
inherit (builtins) listToAttrs;
|
||||
in mkIf (builtins.elem "chn" users.users)
|
||||
{
|
||||
users.users.chn =
|
||||
@@ -42,7 +43,13 @@ inputs:
|
||||
# identityFile = "~/.ssh/xmuhk_id_rsa";
|
||||
xmuhk = { host = "xmuhk"; hostname = "10.26.14.56"; user = "xmuhk"; };
|
||||
xmuhk2 = { host = "xmuhk2"; hostname = "183.233.219.132"; user = "xmuhk"; port = 62022; };
|
||||
};
|
||||
}
|
||||
// (listToAttrs (map
|
||||
(system: { name = system; value.forwardAgent = true; })
|
||||
[
|
||||
"vps6" "wireguard.vps6" "vps7" "wireguard.vps7" "wireguard.pc" "nas" "wireguard.nas"
|
||||
"wireguard.surface"
|
||||
]));
|
||||
};
|
||||
home.packages =
|
||||
[
|
||||
|
||||
@@ -1,853 +0,0 @@
|
||||
{
|
||||
config.home-manager.users.chn.config.programs.plasma =
|
||||
{
|
||||
enable = true;
|
||||
shortcuts =
|
||||
{
|
||||
# crow translate
|
||||
"io.crow_translate.CrowTranslate.desktop"."TranslateSelectedText" = "Ctrl+Alt+E";
|
||||
|
||||
# display
|
||||
"kded5"."display" = [ "Display" "Meta+P" ];
|
||||
"kwin"."view_actual_size" = "Meta+0";
|
||||
"kwin"."view_zoom_in" = ["Meta++" "Meta+="];
|
||||
"kwin"."view_zoom_out" = "Meta+-";
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
|
||||
|
||||
# volume
|
||||
"kmix" =
|
||||
{
|
||||
"decrease_volume" = "Volume Down";
|
||||
"increase_volume" = "Volume Up";
|
||||
"mic_mute" = [ "Meta+Volume Mute" ];
|
||||
"mute" = "Volume Mute";
|
||||
};
|
||||
|
||||
# session
|
||||
"ksmserver" =
|
||||
{
|
||||
"Lock Session" = [ "Meta+L" "Screensaver" ];
|
||||
"Log Out" = "Ctrl+Alt+Del";
|
||||
};
|
||||
"org_kde_powerdevil"."Turn Off Screen" = "Meta+Ctrl+L";
|
||||
|
||||
# mouse
|
||||
"kwin"."MoveMouseToCenter" = "Meta+F6";
|
||||
|
||||
# window
|
||||
"kwin"."Overview" = "Meta+Tab";
|
||||
"kwin"."Show Desktop" = "Meta+D";
|
||||
"kwin"."Suspend Compositing" = "Alt+Shift+F12";
|
||||
"kwin"."Walk Through Windows" = "Alt+Tab";
|
||||
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Backtab";
|
||||
"kwin"."Window Above Other Windows" = "Meta+Shift+PgUp";
|
||||
"kwin"."Window Below Other Windows" = "Meta+Shift+PgDown";
|
||||
"kwin"."Window Close" = "Alt+F4";
|
||||
"kwin"."Window Maximize" = "Meta+PgUp";
|
||||
"kwin"."Window Minimize" = "Meta+PgDown";
|
||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
||||
"kwin"."Window Quick Tile Bottom" = "Meta+Down";
|
||||
"kwin"."Window Quick Tile Left" = "Meta+Left";
|
||||
"kwin"."Window Quick Tile Right" = "Meta+Right";
|
||||
"kwin"."Window Quick Tile Top" = "Meta+Up";
|
||||
|
||||
# virtual desktop
|
||||
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||
|
||||
# media
|
||||
"mediacontrol"."nextmedia" = "Media Next";
|
||||
"mediacontrol"."pausemedia" = "Media Pause";
|
||||
"mediacontrol"."playpausemedia" = [ "Pause" "Media Play" ];
|
||||
"mediacontrol"."previousmedia" = "Media Previous";
|
||||
"mediacontrol"."stopmedia" = "Media Stop";
|
||||
|
||||
# dolphin
|
||||
"org.kde.dolphin.desktop"."_launch" = "Meta+E";
|
||||
|
||||
# konsole
|
||||
"org.kde.konsole.desktop"."_launch" = "Ctrl+Alt+T";
|
||||
|
||||
# krunner
|
||||
"org.kde.krunner.desktop"."_launch" = "Alt+Space";
|
||||
|
||||
# screenshot
|
||||
"org.kde.spectacle.desktop"."ActiveWindowScreenShot" = "Meta+Print";
|
||||
"org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = [ ];
|
||||
"org.kde.spectacle.desktop"."FullScreenScreenShot" = "Shift+Print";
|
||||
"org.kde.spectacle.desktop"."OpenWithoutScreenshot" = [ ];
|
||||
"org.kde.spectacle.desktop"."RectangularRegionScreenShot" = "Meta+Shift+Print";
|
||||
"org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = "Meta+Ctrl+Print";
|
||||
"org.kde.spectacle.desktop"."_launch" = "Print";
|
||||
|
||||
# settings
|
||||
"systemsettings.desktop"."_launch" = "Meta+I";
|
||||
|
||||
# yakuake
|
||||
"yakuake"."toggle-window-state" = "Meta+Space";
|
||||
};
|
||||
configFile =
|
||||
{
|
||||
# baloo
|
||||
# "baloofilerc"."Basic Settings"."Indexing-Enabled" = false;
|
||||
|
||||
# dolphin
|
||||
"dolphinrc"."General"."ShowFullPath" = true;
|
||||
"dolphinrc"."PreviewSettings"."Plugins" = "blenderthumbnail,comicbookthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,marble_thumbnail_geojson,marble_thumbnail_gpx,jpegthumbnail,marble_thumbnail_kmz,marble_thumbnail_kml,kraorathumbnail,windowsimagethumbnail,windowsexethumbnail,mltpreview,mobithumbnail,opendocumentthumbnail,marble_thumbnail_osm,palathumbcreator,gsthumbnail,rawthumbnail,svgthumbnail,imagethumbnail,fontthumbnail,directorythumbnail,textthumbnail,webarchivethumbnail,ffmpegthumbs,audiothumbnail";
|
||||
|
||||
"kactivitymanagerdrc"."activities"."f305b694-8f87-46ec-a9b1-4425c55a077e" = "Default";
|
||||
"kactivitymanagerdrc"."activities-icons"."242e672c-3145-4b8f-acc4-7663d17dabcc" = "activities";
|
||||
"kactivitymanagerdrc"."main"."currentActivity" = "f305b694-8f87-46ec-a9b1-4425c55a077e";
|
||||
"kactivitymanagerdrc"."main"."runningActivities" = "f305b694-8f87-46ec-a9b1-4425c55a077e";
|
||||
"kactivitymanagerdrc"."main"."stoppedActivities" = "";
|
||||
"kcminputrc"."ButtonRebinds.Mouse"."ExtraButton1" = "Key,PgDown";
|
||||
"kcminputrc"."ButtonRebinds.Mouse"."ExtraButton2" = "Key,PgUp";
|
||||
"kcminputrc"."Libinput.2321.21128.HTIX5288:00 0911:5288 Touchpad"."ClickMethod" = 2;
|
||||
"kcminputrc"."Libinput.2321.21128.HTIX5288:00 0911:5288 Touchpad"."MiddleButtonEmulation" = true;
|
||||
"kcminputrc"."Libinput.2321.21128.HTIX5288:00 0911:5288 Touchpad"."TapToClick" = true;
|
||||
"kcminputrc"."Mouse"."X11LibInputXAccelProfileFlat" = false;
|
||||
"kcminputrc"."Mouse"."XLbInptAccelProfileFlat" = true;
|
||||
"kcminputrc"."Mouse"."XLbInptPointerAcceleration" = 0.6;
|
||||
"kcminputrc"."Mouse"."cursorTheme" = "breeze_cursors";
|
||||
"kcminputrc"."Tmp"."update_info" = "delete_cursor_old_default_size.upd:DeleteCursorOldDefaultSize";
|
||||
"kded5rc"."Module-browserintegrationreminder"."autoload" = false;
|
||||
"kded5rc"."Module-device_automounter"."autoload" = false;
|
||||
"kded5rc"."PlasmaBrowserIntegration"."shownCount" = 4;
|
||||
"kdeglobals"."DirSelect Dialog"."DirSelectDialog Size" = "1920,1050";
|
||||
"kdeglobals"."General"."AllowKDEAppsToRememberWindowPositions" = true;
|
||||
"kdeglobals"."General"."BrowserApplication" = "firefox.desktop";
|
||||
"kdeglobals"."General"."LastUsedCustomAccentColor" = "61,212,37";
|
||||
"kdeglobals"."General"."XftAntialias" = true;
|
||||
"kdeglobals"."General"."XftHintStyle" = "hintslight";
|
||||
"kdeglobals"."General"."XftSubPixel" = "rgb";
|
||||
"kdeglobals"."KDE"."SingleClick" = true;
|
||||
"kdeglobals"."KDE"."widgetStyle" = "kvantum";
|
||||
"kdeglobals"."KFileDialog Settings"."Allow Expansion" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Automatically select filename extension" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Breadcrumb Navigation" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Decoration position" = 2;
|
||||
"kdeglobals"."KFileDialog Settings"."LocationCombo Completionmode" = 5;
|
||||
"kdeglobals"."KFileDialog Settings"."PathCombo Completionmode" = 5;
|
||||
"kdeglobals"."KFileDialog Settings"."Preview Width" = 688;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Bookmarks" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Full Path" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Inline Previews" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Preview" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Speedbar" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Show hidden files" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort by" = "Name";
|
||||
"kdeglobals"."KFileDialog Settings"."Sort directories first" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort hidden files last" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort reversed" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Speedbar Width" = 89;
|
||||
"kdeglobals"."KFileDialog Settings"."View Style" = "DetailTree";
|
||||
"kdeglobals"."KScreen"."ScreenScaleFactors" = "eDP-1=1;DP-1=1;";
|
||||
"kdeglobals"."KShortcutsDialog Settings"."Dialog Size" = "600,480";
|
||||
"kdeglobals"."PreviewSettings"."MaximumRemoteSize" = 0;
|
||||
"kdeglobals"."WM"."activeBackground" = "247,247,247";
|
||||
"kdeglobals"."WM"."activeBlend" = "153,153,153";
|
||||
"kdeglobals"."WM"."activeForeground" = "120,120,120";
|
||||
"kdeglobals"."WM"."inactiveBackground" = "242,242,242";
|
||||
"kdeglobals"."WM"."inactiveBlend" = "221,221,221";
|
||||
"kdeglobals"."WM"."inactiveForeground" = "170,170,170";
|
||||
"kgammarc"."ConfigFile"."use" = "kgammarc";
|
||||
"kglobalshortcutsrc"."ActivityManager"."_k_friendly_name" = "活动管理器";
|
||||
"kglobalshortcutsrc"."KDE Keyboard Layout Switcher"."_k_friendly_name" = "键盘布局切换器";
|
||||
"kglobalshortcutsrc"."io.crow_translate.CrowTranslate.desktop"."_k_friendly_name" = "Crow Translate";
|
||||
"kglobalshortcutsrc"."juk"."_k_friendly_name" = "JuK";
|
||||
"kglobalshortcutsrc"."kaccess"."_k_friendly_name" = "无障碍辅助";
|
||||
"kglobalshortcutsrc"."kcm_touchpad"."_k_friendly_name" = "触摸板";
|
||||
"kglobalshortcutsrc"."kded5"."_k_friendly_name" = "KDE Daemon";
|
||||
"kglobalshortcutsrc"."khotkeys"."_k_friendly_name" = "Custom Shortcuts Service";
|
||||
"kglobalshortcutsrc"."kmix"."_k_friendly_name" = "音频音量";
|
||||
"kglobalshortcutsrc"."ksmserver"."_k_friendly_name" = "会话管理";
|
||||
"kglobalshortcutsrc"."kwin"."_k_friendly_name" = "KWin";
|
||||
"kglobalshortcutsrc"."mediacontrol"."_k_friendly_name" = "媒体控制器";
|
||||
"kglobalshortcutsrc"."org.kde.dolphin.desktop"."_k_friendly_name" = "Dolphin";
|
||||
"kglobalshortcutsrc"."org.kde.kcalc.desktop"."_k_friendly_name" = "KCalc";
|
||||
"kglobalshortcutsrc"."org.kde.konsole.desktop"."_k_friendly_name" = "Konsole";
|
||||
"kglobalshortcutsrc"."org.kde.krunner.desktop"."_k_friendly_name" = "KRunner";
|
||||
"kglobalshortcutsrc"."org.kde.plasma.emojier.desktop"."_k_friendly_name" = "Emoji Selector";
|
||||
"kglobalshortcutsrc"."org.kde.spectacle.desktop"."_k_friendly_name" = "Spectacle 截图工具";
|
||||
"kglobalshortcutsrc"."org_kde_powerdevil"."_k_friendly_name" = "电源管理";
|
||||
"kglobalshortcutsrc"."plasmashell"."_k_friendly_name" = "Plasma";
|
||||
"kglobalshortcutsrc"."systemsettings.desktop"."_k_friendly_name" = "System Settings";
|
||||
"kglobalshortcutsrc"."yakuake"."_k_friendly_name" = "Yakuake";
|
||||
"khotkeysrc"."Data"."DataCount" = 3;
|
||||
"khotkeysrc"."Data_1"."Comment" = "KMenuEdit Global Shortcuts";
|
||||
"khotkeysrc"."Data_1"."DataCount" = 1;
|
||||
"khotkeysrc"."Data_1"."Enabled" = true;
|
||||
"khotkeysrc"."Data_1"."Name" = "KMenuEdit";
|
||||
"khotkeysrc"."Data_1"."SystemGroup" = 1;
|
||||
"khotkeysrc"."Data_1"."Type" = "ACTION_DATA_GROUP";
|
||||
"khotkeysrc"."Data_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_1_1"."Comment" = "Comment";
|
||||
"khotkeysrc"."Data_1_1"."Enabled" = true;
|
||||
"khotkeysrc"."Data_1_1"."Name" = "Search";
|
||||
"khotkeysrc"."Data_1_1"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_1_1Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_1_1Actions0"."CommandURL" = "http://google.com";
|
||||
"khotkeysrc"."Data_1_1Actions0"."Type" = "COMMAND_URL";
|
||||
"khotkeysrc"."Data_1_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_1_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_1_1Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_1_1Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_1_1Triggers0"."Key" = "";
|
||||
"khotkeysrc"."Data_1_1Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_1_1Triggers0"."Uuid" = "{d03619b6-9b3c-48cc-9d9c-a2aadb485550}";
|
||||
"khotkeysrc"."Data_2"."Comment" = "This group contains various examples demonstrating most of the features of KHotkeys. (Note that this group and all its actions are disabled by default.)";
|
||||
"khotkeysrc"."Data_2"."DataCount" = 8;
|
||||
"khotkeysrc"."Data_2"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2"."ImportId" = "kde32b1";
|
||||
"khotkeysrc"."Data_2"."Name" = "Examples";
|
||||
"khotkeysrc"."Data_2"."SystemGroup" = 0;
|
||||
"khotkeysrc"."Data_2"."Type" = "ACTION_DATA_GROUP";
|
||||
"khotkeysrc"."Data_2Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_1"."Comment" = "After pressing Ctrl+Alt+I, the KSIRC window will be activated, if it exists. Simple.";
|
||||
"khotkeysrc"."Data_2_1"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_1"."Name" = "Activate KSIRC Window";
|
||||
"khotkeysrc"."Data_2_1"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_1Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_1Actions0"."Type" = "ACTIVATE_WINDOW";
|
||||
"khotkeysrc"."Data_2_1Actions0Window"."Comment" = "KSIRC window";
|
||||
"khotkeysrc"."Data_2_1Actions0Window"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Class" = "ksirc";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."ClassType" = 1;
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Comment" = "KSIRC";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Role" = "";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Title" = "";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."TitleType" = 0;
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."WindowTypes" = 33;
|
||||
"khotkeysrc"."Data_2_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_1Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_1Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_1Triggers0"."Key" = "Ctrl+Alt+I";
|
||||
"khotkeysrc"."Data_2_1Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_1Triggers0"."Uuid" = "{24dd86db-8cad-4cfe-90c1-4dc99fd82b3c}";
|
||||
"khotkeysrc"."Data_2_2"."Comment" = "After pressing Alt+Ctrl+H the input of 'Hello' will be simulated, as if you typed it. This is especially useful if you have call to frequently type a word (for instance, 'unsigned'). Every keypress in the input is separated by a colon ':'. Note that the keypresses literally mean keypresses, so you have to write what you would press on the keyboard. In the table below, the left column shows the input and the right column shows what to type.\n\n\"enter\" (i.e. new line) Enter or Return\na (i.e. small a) A\nA (i.e. capital a) Shift+A\n: (colon) Shift+;\n' ' (space) Space";
|
||||
"khotkeysrc"."Data_2_2"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_2"."Name" = "Type 'Hello'";
|
||||
"khotkeysrc"."Data_2_2"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_2Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_2Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_2Actions0"."Input" = "Shift+H:E:L:L:O\n";
|
||||
"khotkeysrc"."Data_2_2Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_2Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_2Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_2Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_2Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_2Triggers0"."Key" = "Ctrl+Alt+H";
|
||||
"khotkeysrc"."Data_2_2Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_2Triggers0"."Uuid" = "{9a310197-d2b6-4ef8-a227-072d734024ab}";
|
||||
"khotkeysrc"."Data_2_3"."Comment" = "This action runs Konsole, after pressing Ctrl+Alt+T.";
|
||||
"khotkeysrc"."Data_2_3"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_3"."Name" = "Run Konsole";
|
||||
"khotkeysrc"."Data_2_3"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_3Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_3Actions0"."CommandURL" = "konsole";
|
||||
"khotkeysrc"."Data_2_3Actions0"."Type" = "COMMAND_URL";
|
||||
"khotkeysrc"."Data_2_3Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_3Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_3Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_3Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_3Triggers0"."Key" = "Ctrl+Alt+T";
|
||||
"khotkeysrc"."Data_2_3Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_3Triggers0"."Uuid" = "{a07e67fe-65e3-4ea3-a533-9cbb1e14b221}";
|
||||
"khotkeysrc"."Data_2_4"."Comment" = "Read the comment on the \"Type 'Hello'\" action first.\n\nQt Designer uses Ctrl+F4 for closing windows. In KDE, however, Ctrl+F4 is the shortcut for going to virtual desktop 4, so this shortcut does not work in Qt Designer. Further, Qt Designer does not use KDE's standard Ctrl+W for closing the window.\n\nThis problem can be solved by remapping Ctrl+W to Ctrl+F4 when the active window is Qt Designer. When Qt Designer is active, every time Ctrl+W is pressed, Ctrl+F4 will be sent to Qt Designer instead. In other applications, the effect of Ctrl+W is unchanged.\n\nWe now need to specify three things: A new shortcut trigger on 'Ctrl+W', a new keyboard input action sending Ctrl+F4, and a new condition that the active window is Qt Designer.\nQt Designer seems to always have title 'Qt Designer by Trolltech', so the condition will check for the active window having that title.";
|
||||
"khotkeysrc"."Data_2_4"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_4"."Name" = "Remap Ctrl+W to Ctrl+F4 in Qt Designer";
|
||||
"khotkeysrc"."Data_2_4"."Type" = "GENERIC_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_4Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_4Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_4Actions0"."Input" = "Ctrl+F4";
|
||||
"khotkeysrc"."Data_2_4Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_4Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_4Conditions"."ConditionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_4Conditions0"."Type" = "ACTIVE_WINDOW";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window"."Comment" = "Qt Designer";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Class" = "";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."ClassType" = 0;
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Role" = "";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Title" = "Qt Designer by Trolltech";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."TitleType" = 2;
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."WindowTypes" = 33;
|
||||
"khotkeysrc"."Data_2_4Triggers"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_4Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_4Triggers0"."Key" = "Ctrl+W";
|
||||
"khotkeysrc"."Data_2_4Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_4Triggers0"."Uuid" = "{bb31801d-1f7e-497a-acdd-d6ac4dc651b9}";
|
||||
"khotkeysrc"."Data_2_5"."Comment" = "By pressing Alt+Ctrl+W a D-Bus call will be performed that will show the minicli. You can use any kind of D-Bus call, just like using the command line 'qdbus' tool.";
|
||||
"khotkeysrc"."Data_2_5"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_5"."Name" = "Perform D-Bus call 'qdbus org.kde.krunner /App display'";
|
||||
"khotkeysrc"."Data_2_5"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_5Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_5Actions0"."Arguments" = "";
|
||||
"khotkeysrc"."Data_2_5Actions0"."Call" = "popupExecuteCommand";
|
||||
"khotkeysrc"."Data_2_5Actions0"."RemoteApp" = "org.kde.krunner";
|
||||
"khotkeysrc"."Data_2_5Actions0"."RemoteObj" = "/App";
|
||||
"khotkeysrc"."Data_2_5Actions0"."Type" = "DBUS";
|
||||
"khotkeysrc"."Data_2_5Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_5Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_5Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_5Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_5Triggers0"."Key" = "Ctrl+Alt+W";
|
||||
"khotkeysrc"."Data_2_5Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_5Triggers0"."Uuid" = "{811d3453-4611-4e42-864b-e7325b45969b}";
|
||||
"khotkeysrc"."Data_2_6"."Comment" = "Read the comment on the \"Type 'Hello'\" action first.\n\nJust like the \"Type 'Hello'\" action, this one simulates keyboard input, specifically, after pressing Ctrl+Alt+B, it sends B to XMMS (B in XMMS jumps to the next song). The 'Send to specific window' checkbox is checked and a window with its class containing 'XMMS_Player' is specified; this will make the input always be sent to this window. This way, you can control XMMS even if, for instance, it is on a different virtual desktop.\n\n(Run 'xprop' and click on the XMMS window and search for WM_CLASS to see 'XMMS_Player').";
|
||||
"khotkeysrc"."Data_2_6"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_6"."Name" = "Next in XMMS";
|
||||
"khotkeysrc"."Data_2_6"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_6Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_6Actions0"."DestinationWindow" = 1;
|
||||
"khotkeysrc"."Data_2_6Actions0"."Input" = "B";
|
||||
"khotkeysrc"."Data_2_6Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow"."Comment" = "XMMS window";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Class" = "XMMS_Player";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."ClassType" = 1;
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Comment" = "XMMS Player window";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Role" = "";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Title" = "";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."TitleType" = 0;
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."WindowTypes" = 33;
|
||||
"khotkeysrc"."Data_2_6Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_6Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_6Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_6Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_6Triggers0"."Key" = "Ctrl+Alt+B";
|
||||
"khotkeysrc"."Data_2_6Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_6Triggers0"."Uuid" = "{14de0367-f2e2-4535-a8b0-3a4aa9acc58b}";
|
||||
"khotkeysrc"."Data_2_7"."Comment" = "Konqueror in KDE3.1 has tabs, and now you can also have gestures.\n\nJust press the middle mouse button and start drawing one of the gestures, and after you are finished, release the mouse button. If you only need to paste the selection, it still works, just click the middle mouse button. (You can change the mouse button to use in the global settings).\n\nRight now, there are the following gestures available:\nmove right and back left - Forward (Alt+Right)\nmove left and back right - Back (Alt+Left)\nmove up and back down - Up (Alt+Up)\ncircle counterclockwise - Reload (F5)\n\nThe gesture shapes can be entered by performing them in the configuration dialog. You can also look at your numeric pad to help you: gestures are recognized like a 3x3 grid of fields, numbered 1 to 9.\n\nNote that you must perform exactly the gesture to trigger the action. Because of this, it is possible to enter more gestures for the action. You should try to avoid complicated gestures where you change the direction of mouse movement more than once. For instance, 45654 or 74123 are simple to perform, but 1236987 may be already quite difficult.\n\nThe conditions for all gestures are defined in this group. All these gestures are active only if the active window is Konqueror (class contains 'konqueror').";
|
||||
"khotkeysrc"."Data_2_7"."DataCount" = 4;
|
||||
"khotkeysrc"."Data_2_7"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7"."Name" = "Konqi Gestures";
|
||||
"khotkeysrc"."Data_2_7"."SystemGroup" = 0;
|
||||
"khotkeysrc"."Data_2_7"."Type" = "ACTION_DATA_GROUP";
|
||||
"khotkeysrc"."Data_2_7Conditions"."Comment" = "Konqueror window";
|
||||
"khotkeysrc"."Data_2_7Conditions"."ConditionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7Conditions0"."Type" = "ACTIVE_WINDOW";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window"."Comment" = "Konqueror";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Class" = "konqueror";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."ClassType" = 1;
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Comment" = "Konqueror";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Role" = "";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Title" = "";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."TitleType" = 0;
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."WindowTypes" = 33;
|
||||
"khotkeysrc"."Data_2_7_1"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_1"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7_1"."Name" = "Back";
|
||||
"khotkeysrc"."Data_2_7_1"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_7_1Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7_1Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_7_1Actions0"."Input" = "Alt+Left";
|
||||
"khotkeysrc"."Data_2_7_1Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_7_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_7_1Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_2_7_1Triggers"."TriggersCount" = 3;
|
||||
"khotkeysrc"."Data_2_7_1Triggers0"."GesturePointData" = "0,0.0625,1,1,0.5,0.0625,0.0625,1,0.875,0.5,0.125,0.0625,1,0.75,0.5,0.1875,0.0625,1,0.625,0.5,0.25,0.0625,1,0.5,0.5,0.3125,0.0625,1,0.375,0.5,0.375,0.0625,1,0.25,0.5,0.4375,0.0625,1,0.125,0.5,0.5,0.0625,0,0,0.5,0.5625,0.0625,0,0.125,0.5,0.625,0.0625,0,0.25,0.5,0.6875,0.0625,0,0.375,0.5,0.75,0.0625,0,0.5,0.5,0.8125,0.0625,0,0.625,0.5,0.875,0.0625,0,0.75,0.5,0.9375,0.0625,0,0.875,0.5,1,0,0,1,0.5";
|
||||
"khotkeysrc"."Data_2_7_1Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_1Triggers1"."GesturePointData" = "0,0.0833333,1,0.5,0.5,0.0833333,0.0833333,1,0.375,0.5,0.166667,0.0833333,1,0.25,0.5,0.25,0.0833333,1,0.125,0.5,0.333333,0.0833333,0,0,0.5,0.416667,0.0833333,0,0.125,0.5,0.5,0.0833333,0,0.25,0.5,0.583333,0.0833333,0,0.375,0.5,0.666667,0.0833333,0,0.5,0.5,0.75,0.0833333,0,0.625,0.5,0.833333,0.0833333,0,0.75,0.5,0.916667,0.0833333,0,0.875,0.5,1,0,0,1,0.5";
|
||||
"khotkeysrc"."Data_2_7_1Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_1Triggers2"."GesturePointData" = "0,0.0833333,1,1,0.5,0.0833333,0.0833333,1,0.875,0.5,0.166667,0.0833333,1,0.75,0.5,0.25,0.0833333,1,0.625,0.5,0.333333,0.0833333,1,0.5,0.5,0.416667,0.0833333,1,0.375,0.5,0.5,0.0833333,1,0.25,0.5,0.583333,0.0833333,1,0.125,0.5,0.666667,0.0833333,0,0,0.5,0.75,0.0833333,0,0.125,0.5,0.833333,0.0833333,0,0.25,0.5,0.916667,0.0833333,0,0.375,0.5,1,0,0,0.5,0.5";
|
||||
"khotkeysrc"."Data_2_7_1Triggers2"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_2"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_2"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7_2"."Name" = "Forward";
|
||||
"khotkeysrc"."Data_2_7_2"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_7_2Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7_2Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_7_2Actions0"."Input" = "Alt+Right";
|
||||
"khotkeysrc"."Data_2_7_2Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_7_2Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_2Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_7_2Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_2_7_2Triggers"."TriggersCount" = 3;
|
||||
"khotkeysrc"."Data_2_7_2Triggers0"."GesturePointData" = "0,0.0625,0,0,0.5,0.0625,0.0625,0,0.125,0.5,0.125,0.0625,0,0.25,0.5,0.1875,0.0625,0,0.375,0.5,0.25,0.0625,0,0.5,0.5,0.3125,0.0625,0,0.625,0.5,0.375,0.0625,0,0.75,0.5,0.4375,0.0625,0,0.875,0.5,0.5,0.0625,1,1,0.5,0.5625,0.0625,1,0.875,0.5,0.625,0.0625,1,0.75,0.5,0.6875,0.0625,1,0.625,0.5,0.75,0.0625,1,0.5,0.5,0.8125,0.0625,1,0.375,0.5,0.875,0.0625,1,0.25,0.5,0.9375,0.0625,1,0.125,0.5,1,0,0,0,0.5";
|
||||
"khotkeysrc"."Data_2_7_2Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_2Triggers1"."GesturePointData" = "0,0.0833333,0,0.5,0.5,0.0833333,0.0833333,0,0.625,0.5,0.166667,0.0833333,0,0.75,0.5,0.25,0.0833333,0,0.875,0.5,0.333333,0.0833333,1,1,0.5,0.416667,0.0833333,1,0.875,0.5,0.5,0.0833333,1,0.75,0.5,0.583333,0.0833333,1,0.625,0.5,0.666667,0.0833333,1,0.5,0.5,0.75,0.0833333,1,0.375,0.5,0.833333,0.0833333,1,0.25,0.5,0.916667,0.0833333,1,0.125,0.5,1,0,0,0,0.5";
|
||||
"khotkeysrc"."Data_2_7_2Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_2Triggers2"."GesturePointData" = "0,0.0833333,0,0,0.5,0.0833333,0.0833333,0,0.125,0.5,0.166667,0.0833333,0,0.25,0.5,0.25,0.0833333,0,0.375,0.5,0.333333,0.0833333,0,0.5,0.5,0.416667,0.0833333,0,0.625,0.5,0.5,0.0833333,0,0.75,0.5,0.583333,0.0833333,0,0.875,0.5,0.666667,0.0833333,1,1,0.5,0.75,0.0833333,1,0.875,0.5,0.833333,0.0833333,1,0.75,0.5,0.916667,0.0833333,1,0.625,0.5,1,0,0,0.5,0.5";
|
||||
"khotkeysrc"."Data_2_7_2Triggers2"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_3"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_3"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7_3"."Name" = "Up";
|
||||
"khotkeysrc"."Data_2_7_3"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_7_3Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7_3Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_7_3Actions0"."Input" = "Alt+Up";
|
||||
"khotkeysrc"."Data_2_7_3Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_7_3Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_3Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_7_3Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_2_7_3Triggers"."TriggersCount" = 3;
|
||||
"khotkeysrc"."Data_2_7_3Triggers0"."GesturePointData" = "0,0.0625,-0.5,0.5,1,0.0625,0.0625,-0.5,0.5,0.875,0.125,0.0625,-0.5,0.5,0.75,0.1875,0.0625,-0.5,0.5,0.625,0.25,0.0625,-0.5,0.5,0.5,0.3125,0.0625,-0.5,0.5,0.375,0.375,0.0625,-0.5,0.5,0.25,0.4375,0.0625,-0.5,0.5,0.125,0.5,0.0625,0.5,0.5,0,0.5625,0.0625,0.5,0.5,0.125,0.625,0.0625,0.5,0.5,0.25,0.6875,0.0625,0.5,0.5,0.375,0.75,0.0625,0.5,0.5,0.5,0.8125,0.0625,0.5,0.5,0.625,0.875,0.0625,0.5,0.5,0.75,0.9375,0.0625,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_2_7_3Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_3Triggers1"."GesturePointData" = "0,0.0833333,-0.5,0.5,1,0.0833333,0.0833333,-0.5,0.5,0.875,0.166667,0.0833333,-0.5,0.5,0.75,0.25,0.0833333,-0.5,0.5,0.625,0.333333,0.0833333,-0.5,0.5,0.5,0.416667,0.0833333,-0.5,0.5,0.375,0.5,0.0833333,-0.5,0.5,0.25,0.583333,0.0833333,-0.5,0.5,0.125,0.666667,0.0833333,0.5,0.5,0,0.75,0.0833333,0.5,0.5,0.125,0.833333,0.0833333,0.5,0.5,0.25,0.916667,0.0833333,0.5,0.5,0.375,1,0,0,0.5,0.5";
|
||||
"khotkeysrc"."Data_2_7_3Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_3Triggers2"."GesturePointData" = "0,0.0833333,-0.5,0.5,0.5,0.0833333,0.0833333,-0.5,0.5,0.375,0.166667,0.0833333,-0.5,0.5,0.25,0.25,0.0833333,-0.5,0.5,0.125,0.333333,0.0833333,0.5,0.5,0,0.416667,0.0833333,0.5,0.5,0.125,0.5,0.0833333,0.5,0.5,0.25,0.583333,0.0833333,0.5,0.5,0.375,0.666667,0.0833333,0.5,0.5,0.5,0.75,0.0833333,0.5,0.5,0.625,0.833333,0.0833333,0.5,0.5,0.75,0.916667,0.0833333,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_2_7_3Triggers2"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_4"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_4"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7_4"."Name" = "Reload";
|
||||
"khotkeysrc"."Data_2_7_4"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_7_4Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7_4Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_7_4Actions0"."Input" = "F5";
|
||||
"khotkeysrc"."Data_2_7_4Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_7_4Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_4Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_7_4Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_2_7_4Triggers"."TriggersCount" = 3;
|
||||
"khotkeysrc"."Data_2_7_4Triggers0"."GesturePointData" = "0,0.03125,0,0,1,0.03125,0.03125,0,0.125,1,0.0625,0.03125,0,0.25,1,0.09375,0.03125,0,0.375,1,0.125,0.03125,0,0.5,1,0.15625,0.03125,0,0.625,1,0.1875,0.03125,0,0.75,1,0.21875,0.03125,0,0.875,1,0.25,0.03125,-0.5,1,1,0.28125,0.03125,-0.5,1,0.875,0.3125,0.03125,-0.5,1,0.75,0.34375,0.03125,-0.5,1,0.625,0.375,0.03125,-0.5,1,0.5,0.40625,0.03125,-0.5,1,0.375,0.4375,0.03125,-0.5,1,0.25,0.46875,0.03125,-0.5,1,0.125,0.5,0.03125,1,1,0,0.53125,0.03125,1,0.875,0,0.5625,0.03125,1,0.75,0,0.59375,0.03125,1,0.625,0,0.625,0.03125,1,0.5,0,0.65625,0.03125,1,0.375,0,0.6875,0.03125,1,0.25,0,0.71875,0.03125,1,0.125,0,0.75,0.03125,0.5,0,0,0.78125,0.03125,0.5,0,0.125,0.8125,0.03125,0.5,0,0.25,0.84375,0.03125,0.5,0,0.375,0.875,0.03125,0.5,0,0.5,0.90625,0.03125,0.5,0,0.625,0.9375,0.03125,0.5,0,0.75,0.96875,0.03125,0.5,0,0.875,1,0,0,0,1";
|
||||
"khotkeysrc"."Data_2_7_4Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_4Triggers1"."GesturePointData" = "0,0.0277778,0,0,1,0.0277778,0.0277778,0,0.125,1,0.0555556,0.0277778,0,0.25,1,0.0833333,0.0277778,0,0.375,1,0.111111,0.0277778,0,0.5,1,0.138889,0.0277778,0,0.625,1,0.166667,0.0277778,0,0.75,1,0.194444,0.0277778,0,0.875,1,0.222222,0.0277778,-0.5,1,1,0.25,0.0277778,-0.5,1,0.875,0.277778,0.0277778,-0.5,1,0.75,0.305556,0.0277778,-0.5,1,0.625,0.333333,0.0277778,-0.5,1,0.5,0.361111,0.0277778,-0.5,1,0.375,0.388889,0.0277778,-0.5,1,0.25,0.416667,0.0277778,-0.5,1,0.125,0.444444,0.0277778,1,1,0,0.472222,0.0277778,1,0.875,0,0.5,0.0277778,1,0.75,0,0.527778,0.0277778,1,0.625,0,0.555556,0.0277778,1,0.5,0,0.583333,0.0277778,1,0.375,0,0.611111,0.0277778,1,0.25,0,0.638889,0.0277778,1,0.125,0,0.666667,0.0277778,0.5,0,0,0.694444,0.0277778,0.5,0,0.125,0.722222,0.0277778,0.5,0,0.25,0.75,0.0277778,0.5,0,0.375,0.777778,0.0277778,0.5,0,0.5,0.805556,0.0277778,0.5,0,0.625,0.833333,0.0277778,0.5,0,0.75,0.861111,0.0277778,0.5,0,0.875,0.888889,0.0277778,0,0,1,0.916667,0.0277778,0,0.125,1,0.944444,0.0277778,0,0.25,1,0.972222,0.0277778,0,0.375,1,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_2_7_4Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_4Triggers2"."GesturePointData" = "0,0.0277778,0.5,0,0.5,0.0277778,0.0277778,0.5,0,0.625,0.0555556,0.0277778,0.5,0,0.75,0.0833333,0.0277778,0.5,0,0.875,0.111111,0.0277778,0,0,1,0.138889,0.0277778,0,0.125,1,0.166667,0.0277778,0,0.25,1,0.194444,0.0277778,0,0.375,1,0.222222,0.0277778,0,0.5,1,0.25,0.0277778,0,0.625,1,0.277778,0.0277778,0,0.75,1,0.305556,0.0277778,0,0.875,1,0.333333,0.0277778,-0.5,1,1,0.361111,0.0277778,-0.5,1,0.875,0.388889,0.0277778,-0.5,1,0.75,0.416667,0.0277778,-0.5,1,0.625,0.444444,0.0277778,-0.5,1,0.5,0.472222,0.0277778,-0.5,1,0.375,0.5,0.0277778,-0.5,1,0.25,0.527778,0.0277778,-0.5,1,0.125,0.555556,0.0277778,1,1,0,0.583333,0.0277778,1,0.875,0,0.611111,0.0277778,1,0.75,0,0.638889,0.0277778,1,0.625,0,0.666667,0.0277778,1,0.5,0,0.694444,0.0277778,1,0.375,0,0.722222,0.0277778,1,0.25,0,0.75,0.0277778,1,0.125,0,0.777778,0.0277778,0.5,0,0,0.805556,0.0277778,0.5,0,0.125,0.833333,0.0277778,0.5,0,0.25,0.861111,0.0277778,0.5,0,0.375,0.888889,0.0277778,0.5,0,0.5,0.916667,0.0277778,0.5,0,0.625,0.944444,0.0277778,0.5,0,0.75,0.972222,0.0277778,0.5,0,0.875,1,0,0,0,1";
|
||||
"khotkeysrc"."Data_2_7_4Triggers2"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_8"."Comment" = "After pressing Win+E (Tux+E) a WWW browser will be launched, and it will open http://www.kde.org . You may run all kind of commands you can run in minicli (Alt+F2).";
|
||||
"khotkeysrc"."Data_2_8"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_8"."Name" = "Go to KDE Website";
|
||||
"khotkeysrc"."Data_2_8"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_8Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_8Actions0"."CommandURL" = "http://www.kde.org";
|
||||
"khotkeysrc"."Data_2_8Actions0"."Type" = "COMMAND_URL";
|
||||
"khotkeysrc"."Data_2_8Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_8Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_8Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_8Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_8Triggers0"."Key" = "Meta+E";
|
||||
"khotkeysrc"."Data_2_8Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_8Triggers0"."Uuid" = "{01088b4f-cb8e-4f32-9b6e-fc5c20408aa1}";
|
||||
"khotkeysrc"."Data_3"."Comment" = "Basic Konqueror gestures.";
|
||||
"khotkeysrc"."Data_3"."DataCount" = 14;
|
||||
"khotkeysrc"."Data_3"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3"."ImportId" = "konqueror_gestures_kde321";
|
||||
"khotkeysrc"."Data_3"."Name" = "Konqueror Gestures";
|
||||
"khotkeysrc"."Data_3"."SystemGroup" = 0;
|
||||
"khotkeysrc"."Data_3"."Type" = "ACTION_DATA_GROUP";
|
||||
"khotkeysrc"."Data_3Conditions"."Comment" = "Konqueror window";
|
||||
"khotkeysrc"."Data_3Conditions"."ConditionsCount" = 1;
|
||||
"khotkeysrc"."Data_3Conditions0"."Type" = "ACTIVE_WINDOW";
|
||||
"khotkeysrc"."Data_3Conditions0Window"."Comment" = "Konqueror";
|
||||
"khotkeysrc"."Data_3Conditions0Window"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Class" = "^konqueror\s";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."ClassType" = 3;
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Comment" = "Konqueror";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Role" = "konqueror-mainwindow#1";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Title" = "file:/ - Konqueror";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."TitleType" = 0;
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."WindowTypes" = 1;
|
||||
"khotkeysrc"."Data_3_1"."Comment" = "Press, move left, release.";
|
||||
"khotkeysrc"."Data_3_1"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_1"."Name" = "Back";
|
||||
"khotkeysrc"."Data_3_1"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_10"."Comment" = "Opera-style: Press, move up, release.\nNOTE: Conflicts with 'New Tab', and as such is disabled by default.";
|
||||
"khotkeysrc"."Data_3_10"."Enabled" = false;
|
||||
"khotkeysrc"."Data_3_10"."Name" = "Stop Loading";
|
||||
"khotkeysrc"."Data_3_10"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_10Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_10Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_10Actions0"."Input" = "Escape\n";
|
||||
"khotkeysrc"."Data_3_10Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_10Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_10Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_10Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_10Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_10Triggers0"."GesturePointData" = "0,0.125,-0.5,0.5,1,0.125,0.125,-0.5,0.5,0.875,0.25,0.125,-0.5,0.5,0.75,0.375,0.125,-0.5,0.5,0.625,0.5,0.125,-0.5,0.5,0.5,0.625,0.125,-0.5,0.5,0.375,0.75,0.125,-0.5,0.5,0.25,0.875,0.125,-0.5,0.5,0.125,1,0,0,0.5,0";
|
||||
"khotkeysrc"."Data_3_10Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_11"."Comment" = "Going up in URL/directory structure.\nMozilla-style: Press, move up, move left, move up, release.";
|
||||
"khotkeysrc"."Data_3_11"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_11"."Name" = "Up";
|
||||
"khotkeysrc"."Data_3_11"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_11Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_11Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_11Actions0"."Input" = "Alt+Up";
|
||||
"khotkeysrc"."Data_3_11Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_11Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_11Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_11Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_11Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_11Triggers0"."GesturePointData" = "0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,1,1,0.5,0.3125,0.0625,1,0.875,0.5,0.375,0.0625,1,0.75,0.5,0.4375,0.0625,1,0.625,0.5,0.5,0.0625,1,0.5,0.5,0.5625,0.0625,1,0.375,0.5,0.625,0.0625,1,0.25,0.5,0.6875,0.0625,1,0.125,0.5,0.75,0.0625,-0.5,0,0.5,0.8125,0.0625,-0.5,0,0.375,0.875,0.0625,-0.5,0,0.25,0.9375,0.0625,-0.5,0,0.125,1,0,0,0,0";
|
||||
"khotkeysrc"."Data_3_11Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_12"."Comment" = "Going up in URL/directory structure.\nOpera-style: Press, move up, move left, move up, release.\nNOTE: Conflicts with \"Activate Previous Tab\", and as such is disabled by default.";
|
||||
"khotkeysrc"."Data_3_12"."Enabled" = false;
|
||||
"khotkeysrc"."Data_3_12"."Name" = "Up #2";
|
||||
"khotkeysrc"."Data_3_12"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_12Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_12Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_12Actions0"."Input" = "Alt+Up\n";
|
||||
"khotkeysrc"."Data_3_12Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_12Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_12Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_12Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_12Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_12Triggers0"."GesturePointData" = "0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,-0.5,1,0.5,0.3125,0.0625,-0.5,1,0.375,0.375,0.0625,-0.5,1,0.25,0.4375,0.0625,-0.5,1,0.125,0.5,0.0625,1,1,0,0.5625,0.0625,1,0.875,0,0.625,0.0625,1,0.75,0,0.6875,0.0625,1,0.625,0,0.75,0.0625,1,0.5,0,0.8125,0.0625,1,0.375,0,0.875,0.0625,1,0.25,0,0.9375,0.0625,1,0.125,0,1,0,0,0,0";
|
||||
"khotkeysrc"."Data_3_12Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_13"."Comment" = "Press, move up, move right, release.";
|
||||
"khotkeysrc"."Data_3_13"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_13"."Name" = "Activate Next Tab";
|
||||
"khotkeysrc"."Data_3_13"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_13Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_13Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_13Actions0"."Input" = "Ctrl+.\n";
|
||||
"khotkeysrc"."Data_3_13Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_13Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_13Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_13Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_13Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_13Triggers0"."GesturePointData" = "0,0.0625,-0.5,0,1,0.0625,0.0625,-0.5,0,0.875,0.125,0.0625,-0.5,0,0.75,0.1875,0.0625,-0.5,0,0.625,0.25,0.0625,-0.5,0,0.5,0.3125,0.0625,-0.5,0,0.375,0.375,0.0625,-0.5,0,0.25,0.4375,0.0625,-0.5,0,0.125,0.5,0.0625,0,0,0,0.5625,0.0625,0,0.125,0,0.625,0.0625,0,0.25,0,0.6875,0.0625,0,0.375,0,0.75,0.0625,0,0.5,0,0.8125,0.0625,0,0.625,0,0.875,0.0625,0,0.75,0,0.9375,0.0625,0,0.875,0,1,0,0,1,0";
|
||||
"khotkeysrc"."Data_3_13Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_14"."Comment" = "Press, move up, move left, release.";
|
||||
"khotkeysrc"."Data_3_14"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_14"."Name" = "Activate Previous Tab";
|
||||
"khotkeysrc"."Data_3_14"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_14Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_14Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_14Actions0"."Input" = "Ctrl+,";
|
||||
"khotkeysrc"."Data_3_14Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_14Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_14Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_14Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_14Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_14Triggers0"."GesturePointData" = "0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,-0.5,1,0.5,0.3125,0.0625,-0.5,1,0.375,0.375,0.0625,-0.5,1,0.25,0.4375,0.0625,-0.5,1,0.125,0.5,0.0625,1,1,0,0.5625,0.0625,1,0.875,0,0.625,0.0625,1,0.75,0,0.6875,0.0625,1,0.625,0,0.75,0.0625,1,0.5,0,0.8125,0.0625,1,0.375,0,0.875,0.0625,1,0.25,0,0.9375,0.0625,1,0.125,0,1,0,0,0,0";
|
||||
"khotkeysrc"."Data_3_14Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_1Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_1Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_1Actions0"."Input" = "Alt+Left";
|
||||
"khotkeysrc"."Data_3_1Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_1Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_1Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_1Triggers0"."GesturePointData" = "0,0.125,1,1,0.5,0.125,0.125,1,0.875,0.5,0.25,0.125,1,0.75,0.5,0.375,0.125,1,0.625,0.5,0.5,0.125,1,0.5,0.5,0.625,0.125,1,0.375,0.5,0.75,0.125,1,0.25,0.5,0.875,0.125,1,0.125,0.5,1,0,0,0,0.5";
|
||||
"khotkeysrc"."Data_3_1Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_2"."Comment" = "Press, move down, move up, move down, release.";
|
||||
"khotkeysrc"."Data_3_2"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_2"."Name" = "Duplicate Tab";
|
||||
"khotkeysrc"."Data_3_2"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_2Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_2Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_2Actions0"."Input" = "Ctrl+Shift+D\n";
|
||||
"khotkeysrc"."Data_3_2Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_2Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_2Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_2Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_2Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_2Triggers0"."GesturePointData" = "0,0.0416667,0.5,0.5,0,0.0416667,0.0416667,0.5,0.5,0.125,0.0833333,0.0416667,0.5,0.5,0.25,0.125,0.0416667,0.5,0.5,0.375,0.166667,0.0416667,0.5,0.5,0.5,0.208333,0.0416667,0.5,0.5,0.625,0.25,0.0416667,0.5,0.5,0.75,0.291667,0.0416667,0.5,0.5,0.875,0.333333,0.0416667,-0.5,0.5,1,0.375,0.0416667,-0.5,0.5,0.875,0.416667,0.0416667,-0.5,0.5,0.75,0.458333,0.0416667,-0.5,0.5,0.625,0.5,0.0416667,-0.5,0.5,0.5,0.541667,0.0416667,-0.5,0.5,0.375,0.583333,0.0416667,-0.5,0.5,0.25,0.625,0.0416667,-0.5,0.5,0.125,0.666667,0.0416667,0.5,0.5,0,0.708333,0.0416667,0.5,0.5,0.125,0.75,0.0416667,0.5,0.5,0.25,0.791667,0.0416667,0.5,0.5,0.375,0.833333,0.0416667,0.5,0.5,0.5,0.875,0.0416667,0.5,0.5,0.625,0.916667,0.0416667,0.5,0.5,0.75,0.958333,0.0416667,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_3_2Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_3"."Comment" = "Press, move down, move up, release.";
|
||||
"khotkeysrc"."Data_3_3"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_3"."Name" = "Duplicate Window";
|
||||
"khotkeysrc"."Data_3_3"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_3Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_3Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_3Actions0"."Input" = "Ctrl+D\n";
|
||||
"khotkeysrc"."Data_3_3Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_3Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_3Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_3Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_3Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_3Triggers0"."GesturePointData" = "0,0.0625,0.5,0.5,0,0.0625,0.0625,0.5,0.5,0.125,0.125,0.0625,0.5,0.5,0.25,0.1875,0.0625,0.5,0.5,0.375,0.25,0.0625,0.5,0.5,0.5,0.3125,0.0625,0.5,0.5,0.625,0.375,0.0625,0.5,0.5,0.75,0.4375,0.0625,0.5,0.5,0.875,0.5,0.0625,-0.5,0.5,1,0.5625,0.0625,-0.5,0.5,0.875,0.625,0.0625,-0.5,0.5,0.75,0.6875,0.0625,-0.5,0.5,0.625,0.75,0.0625,-0.5,0.5,0.5,0.8125,0.0625,-0.5,0.5,0.375,0.875,0.0625,-0.5,0.5,0.25,0.9375,0.0625,-0.5,0.5,0.125,1,0,0,0.5,0";
|
||||
"khotkeysrc"."Data_3_3Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_4"."Comment" = "Press, move right, release.";
|
||||
"khotkeysrc"."Data_3_4"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_4"."Name" = "Forward";
|
||||
"khotkeysrc"."Data_3_4"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_4Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_4Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_4Actions0"."Input" = "Alt+Right";
|
||||
"khotkeysrc"."Data_3_4Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_4Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_4Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_4Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_4Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_4Triggers0"."GesturePointData" = "0,0.125,0,0,0.5,0.125,0.125,0,0.125,0.5,0.25,0.125,0,0.25,0.5,0.375,0.125,0,0.375,0.5,0.5,0.125,0,0.5,0.5,0.625,0.125,0,0.625,0.5,0.75,0.125,0,0.75,0.5,0.875,0.125,0,0.875,0.5,1,0,0,1,0.5";
|
||||
"khotkeysrc"."Data_3_4Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_5"."Comment" = "Press, move down, move half up, move right, move down, release.\n(Drawing a lowercase 'h'.)";
|
||||
"khotkeysrc"."Data_3_5"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_5"."Name" = "Home";
|
||||
"khotkeysrc"."Data_3_5"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_5Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_5Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_5Actions0"."Input" = "Alt+Home\n";
|
||||
"khotkeysrc"."Data_3_5Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_5Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_5Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_5Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_5Triggers"."TriggersCount" = 2;
|
||||
"khotkeysrc"."Data_3_5Triggers0"."GesturePointData" = "0,0.0461748,0.5,0,0,0.0461748,0.0461748,0.5,0,0.125,0.0923495,0.0461748,0.5,0,0.25,0.138524,0.0461748,0.5,0,0.375,0.184699,0.0461748,0.5,0,0.5,0.230874,0.0461748,0.5,0,0.625,0.277049,0.0461748,0.5,0,0.75,0.323223,0.0461748,0.5,0,0.875,0.369398,0.065301,-0.25,0,1,0.434699,0.065301,-0.25,0.125,0.875,0.5,0.065301,-0.25,0.25,0.75,0.565301,0.065301,-0.25,0.375,0.625,0.630602,0.0461748,0,0.5,0.5,0.676777,0.0461748,0,0.625,0.5,0.722951,0.0461748,0,0.75,0.5,0.769126,0.0461748,0,0.875,0.5,0.815301,0.0461748,0.5,1,0.5,0.861476,0.0461748,0.5,1,0.625,0.90765,0.0461748,0.5,1,0.75,0.953825,0.0461748,0.5,1,0.875,1,0,0,1,1";
|
||||
"khotkeysrc"."Data_3_5Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_5Triggers1"."GesturePointData" = "0,0.0416667,0.5,0,0,0.0416667,0.0416667,0.5,0,0.125,0.0833333,0.0416667,0.5,0,0.25,0.125,0.0416667,0.5,0,0.375,0.166667,0.0416667,0.5,0,0.5,0.208333,0.0416667,0.5,0,0.625,0.25,0.0416667,0.5,0,0.75,0.291667,0.0416667,0.5,0,0.875,0.333333,0.0416667,-0.5,0,1,0.375,0.0416667,-0.5,0,0.875,0.416667,0.0416667,-0.5,0,0.75,0.458333,0.0416667,-0.5,0,0.625,0.5,0.0416667,0,0,0.5,0.541667,0.0416667,0,0.125,0.5,0.583333,0.0416667,0,0.25,0.5,0.625,0.0416667,0,0.375,0.5,0.666667,0.0416667,0,0.5,0.5,0.708333,0.0416667,0,0.625,0.5,0.75,0.0416667,0,0.75,0.5,0.791667,0.0416667,0,0.875,0.5,0.833333,0.0416667,0.5,1,0.5,0.875,0.0416667,0.5,1,0.625,0.916667,0.0416667,0.5,1,0.75,0.958333,0.0416667,0.5,1,0.875,1,0,0,1,1";
|
||||
"khotkeysrc"."Data_3_5Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_6"."Comment" = "Press, move right, move down, move right, release.\nMozilla-style: Press, move down, move right, release.";
|
||||
"khotkeysrc"."Data_3_6"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_6"."Name" = "Close Tab";
|
||||
"khotkeysrc"."Data_3_6"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_6Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_6Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_6Actions0"."Input" = "Ctrl+W\n";
|
||||
"khotkeysrc"."Data_3_6Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_6Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_6Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_6Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_6Triggers"."TriggersCount" = 2;
|
||||
"khotkeysrc"."Data_3_6Triggers0"."GesturePointData" = "0,0.0625,0,0,0,0.0625,0.0625,0,0.125,0,0.125,0.0625,0,0.25,0,0.1875,0.0625,0,0.375,0,0.25,0.0625,0.5,0.5,0,0.3125,0.0625,0.5,0.5,0.125,0.375,0.0625,0.5,0.5,0.25,0.4375,0.0625,0.5,0.5,0.375,0.5,0.0625,0.5,0.5,0.5,0.5625,0.0625,0.5,0.5,0.625,0.625,0.0625,0.5,0.5,0.75,0.6875,0.0625,0.5,0.5,0.875,0.75,0.0625,0,0.5,1,0.8125,0.0625,0,0.625,1,0.875,0.0625,0,0.75,1,0.9375,0.0625,0,0.875,1,1,0,0,1,1";
|
||||
"khotkeysrc"."Data_3_6Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_6Triggers1"."GesturePointData" = "0,0.0625,0.5,0,0,0.0625,0.0625,0.5,0,0.125,0.125,0.0625,0.5,0,0.25,0.1875,0.0625,0.5,0,0.375,0.25,0.0625,0.5,0,0.5,0.3125,0.0625,0.5,0,0.625,0.375,0.0625,0.5,0,0.75,0.4375,0.0625,0.5,0,0.875,0.5,0.0625,0,0,1,0.5625,0.0625,0,0.125,1,0.625,0.0625,0,0.25,1,0.6875,0.0625,0,0.375,1,0.75,0.0625,0,0.5,1,0.8125,0.0625,0,0.625,1,0.875,0.0625,0,0.75,1,0.9375,0.0625,0,0.875,1,1,0,0,1,1";
|
||||
"khotkeysrc"."Data_3_6Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_7"."Comment" = "Press, move up, release.\nConflicts with Opera-style 'Up #2', which is disabled by default.";
|
||||
"khotkeysrc"."Data_3_7"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_7"."Name" = "New Tab";
|
||||
"khotkeysrc"."Data_3_7"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_7Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_7Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_7Actions0"."Input" = "Ctrl+Shift+N";
|
||||
"khotkeysrc"."Data_3_7Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_7Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_7Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_7Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_7Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_7Triggers0"."GesturePointData" = "0,0.125,-0.5,0.5,1,0.125,0.125,-0.5,0.5,0.875,0.25,0.125,-0.5,0.5,0.75,0.375,0.125,-0.5,0.5,0.625,0.5,0.125,-0.5,0.5,0.5,0.625,0.125,-0.5,0.5,0.375,0.75,0.125,-0.5,0.5,0.25,0.875,0.125,-0.5,0.5,0.125,1,0,0,0.5,0";
|
||||
"khotkeysrc"."Data_3_7Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_8"."Comment" = "Press, move down, release.";
|
||||
"khotkeysrc"."Data_3_8"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_8"."Name" = "New Window";
|
||||
"khotkeysrc"."Data_3_8"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_8Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_8Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_8Actions0"."Input" = "Ctrl+N\n";
|
||||
"khotkeysrc"."Data_3_8Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_8Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_8Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_8Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_8Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_8Triggers0"."GesturePointData" = "0,0.125,0.5,0.5,0,0.125,0.125,0.5,0.5,0.125,0.25,0.125,0.5,0.5,0.25,0.375,0.125,0.5,0.5,0.375,0.5,0.125,0.5,0.5,0.5,0.625,0.125,0.5,0.5,0.625,0.75,0.125,0.5,0.5,0.75,0.875,0.125,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_3_8Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_9"."Comment" = "Press, move up, move down, release.";
|
||||
"khotkeysrc"."Data_3_9"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_9"."Name" = "Reload";
|
||||
"khotkeysrc"."Data_3_9"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_9Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_9Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_9Actions0"."Input" = "F5";
|
||||
"khotkeysrc"."Data_3_9Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_9Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_9Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_9Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_9Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_9Triggers0"."GesturePointData" = "0,0.0625,-0.5,0.5,1,0.0625,0.0625,-0.5,0.5,0.875,0.125,0.0625,-0.5,0.5,0.75,0.1875,0.0625,-0.5,0.5,0.625,0.25,0.0625,-0.5,0.5,0.5,0.3125,0.0625,-0.5,0.5,0.375,0.375,0.0625,-0.5,0.5,0.25,0.4375,0.0625,-0.5,0.5,0.125,0.5,0.0625,0.5,0.5,0,0.5625,0.0625,0.5,0.5,0.125,0.625,0.0625,0.5,0.5,0.25,0.6875,0.0625,0.5,0.5,0.375,0.75,0.0625,0.5,0.5,0.5,0.8125,0.0625,0.5,0.5,0.625,0.875,0.0625,0.5,0.5,0.75,0.9375,0.0625,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_3_9Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."DirSelect Dialog"."DirSelectDialog Size[$d]" = "";
|
||||
"khotkeysrc"."General"."AccentColor[$d]" = "";
|
||||
"khotkeysrc"."General"."AllowKDEAppsToRememberWindowPositions[$d]" = "";
|
||||
"khotkeysrc"."General"."BrowserApplication[$d]" = "";
|
||||
"khotkeysrc"."General"."ColorSchemeHash[$d]" = "";
|
||||
"khotkeysrc"."General"."ColorScheme[$d]" = "";
|
||||
"khotkeysrc"."General"."LastUsedCustomAccentColor[$d]" = "";
|
||||
"khotkeysrc"."General"."XftAntialias[$d]" = "";
|
||||
"khotkeysrc"."General"."XftHintStyle[$d]" = "";
|
||||
"khotkeysrc"."General"."XftSubPixel[$d]" = "";
|
||||
"khotkeysrc"."General"."accentColorFromWallpaper[$d]" = "";
|
||||
"khotkeysrc"."Gestures"."Disabled" = true;
|
||||
"khotkeysrc"."Gestures"."MouseButton" = 2;
|
||||
"khotkeysrc"."Gestures"."Timeout" = 300;
|
||||
"khotkeysrc"."GesturesExclude"."Comment" = "";
|
||||
"khotkeysrc"."GesturesExclude"."WindowsCount" = 0;
|
||||
"khotkeysrc"."Icons"."Theme[$d]" = "";
|
||||
"khotkeysrc"."KDE"."LookAndFeelPackage[$d]" = "";
|
||||
"khotkeysrc"."KDE"."SingleClick[$d]" = "";
|
||||
"khotkeysrc"."KDE"."widgetStyle[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Allow Expansion[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Automatically select filename extension[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Breadcrumb Navigation[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Decoration position[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."LocationCombo Completionmode[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."PathCombo Completionmode[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Preview Width[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Bookmarks[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Full Path[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Inline Previews[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Preview[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Speedbar[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show hidden files[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Sort by[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Sort directories first[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Sort hidden files last[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Sort reversed[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Speedbar Width[$d]" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."View Style[$d]" = "";
|
||||
"khotkeysrc"."KScreen"."ScreenScaleFactors[$d]" = "";
|
||||
"khotkeysrc"."KShortcutsDialog Settings"."Dialog Size[$d]" = "";
|
||||
"khotkeysrc"."Main"."AlreadyImported" = "defaults,kde32b1,konqueror_gestures_kde321";
|
||||
"khotkeysrc"."Main"."Disabled" = false;
|
||||
"khotkeysrc"."PreviewSettings"."MaximumRemoteSize[$d]" = "";
|
||||
"khotkeysrc"."Voice"."Shortcut" = "";
|
||||
"khotkeysrc"."WM"."activeBackground[$d]" = "";
|
||||
"khotkeysrc"."WM"."activeBlend[$d]" = "";
|
||||
"khotkeysrc"."WM"."activeForeground[$d]" = "";
|
||||
"khotkeysrc"."WM"."inactiveBackground[$d]" = "";
|
||||
"khotkeysrc"."WM"."inactiveBlend[$d]" = "";
|
||||
"khotkeysrc"."WM"."inactiveForeground[$d]" = "";
|
||||
"kiorc"."Confirmations"."ConfirmDelete" = true;
|
||||
"kiorc"."Confirmations"."ConfirmEmptyTrash" = true;
|
||||
"kiorc"."Confirmations"."ConfirmTrash" = false;
|
||||
"kiorc"."Executable scripts"."behaviourOnLaunch" = "alwaysAsk";
|
||||
"klipperrc"."General"."IgnoreImages" = false;
|
||||
"klipperrc"."General"."MaxClipItems" = 100;
|
||||
"kmixrc"."Global"."AllowDocking" = false;
|
||||
"kmixrc"."Global"."AutoStart" = false;
|
||||
"kmixrc"."Global"."ConfigVersion" = 3;
|
||||
"kmixrc"."Global"."MasterMixer" = "PulseAudio::Playback_Devices:1";
|
||||
"kmixrc"."Global"."MasterMixerDevice" = "auto_null";
|
||||
"kmixrc"."Global"."MixerIgnoreExpression" = "Modem";
|
||||
"kmixrc"."Global"."Size" = "0,0";
|
||||
"kmixrc"."Global"."Visible" = false;
|
||||
"kmixrc"."Profiles"."PulseAudio::Capture_Devices:1" = "PulseAudio.捕获设备.1.default";
|
||||
"kmixrc"."Profiles"."PulseAudio::Capture_Streams:1" = "PulseAudio.捕获流.1.default";
|
||||
"kmixrc"."Profiles"."PulseAudio::Playback_Devices:1" = "PulseAudio.播放设备.1.default";
|
||||
"kmixrc"."Profiles"."PulseAudio::Playback_Streams:1" = "PulseAudio.播放流.1.default";
|
||||
"kmixrc"."View.PulseAudio.捕获设备.1.default.PulseAudio::Capture_Devices:1.alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_6__source"."Split" = false;
|
||||
"kmixrc"."View.PulseAudio.捕获设备.1.default.PulseAudio::Capture_Devices:1.alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__source"."Split" = false;
|
||||
"kmixrc"."View.PulseAudio.播放流.1.default.PulseAudio::Playback_Streams:1.restore:sink-input-by-media-role:event"."Split" = false;
|
||||
"kmixrc"."View.PulseAudio.播放设备.1.default.PulseAudio::Playback_Devices:1.alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink"."Split" = false;
|
||||
"kmixrc"."View.PulseAudio.播放设备.1.default.PulseAudio::Playback_Devices:1.alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_4__sink"."Split" = false;
|
||||
"kmixrc"."View.PulseAudio.播放设备.1.default.PulseAudio::Playback_Devices:1.alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_5__sink"."Split" = false;
|
||||
"kmixrc"."View.PulseAudio.播放设备.1.default.PulseAudio::Playback_Devices:1.alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink"."Split" = false;
|
||||
"kmixrc"."View.PulseAudio.播放设备.1.default.PulseAudio::Playback_Devices:1.auto_null"."Split" = false;
|
||||
"kmixrc"."配置"."Height 1600" = 455;
|
||||
"kmixrc"."配置"."Width 2560" = 554;
|
||||
"krunnerrc"."General"."FreeFloating" = true;
|
||||
"krunnerrc"."Plugins"."baloosearchEnabled" = false;
|
||||
"kscreenlockerrc"."Daemon"."Autolock" = false;
|
||||
"kscreenlockerrc"."Greeter.Wallpaper.org.kde.image.General"."Image" = "/home/chn/Desktop/.桌面/HlszomyrfyxKLtpkVixEtikq_x4_chop.png";
|
||||
"kscreenlockerrc"."Greeter.Wallpaper.org.kde.image.General"."PreviewImage" = "/home/chn/Desktop/.桌面/HlszomyrfyxKLtpkVixEtikq_x4_chop.png";
|
||||
"ksmserverrc"."General"."loginMode" = "emptySession";
|
||||
"ksmserverrc"."SubSession: 3435a388-a8b3-4d1d-9794-b8c30162ce16"."count" = 0;
|
||||
"ksmserverrc"."SubSession: 6a473a77-85df-4e49-8c74-bdb06d1f0efd"."count" = 0;
|
||||
"kwalletrc"."Wallet"."First Use" = false;
|
||||
"kwinrc"."Compositing"."AllowTearing" = false;
|
||||
"kwinrc"."Desktops"."Id_1" = "59c97a39-ae86-42a2-a6a2-e355b275189a";
|
||||
"kwinrc"."Desktops"."Id_2" = "46153339-1363-403c-9622-35430b0557e5";
|
||||
"kwinrc"."Desktops"."Id_3" = "d1990814-e34a-4d65-b29d-9869aa390130";
|
||||
"kwinrc"."Desktops"."Id_4" = "55b646ba-2f52-4af6-84ad-6e83b93c0669";
|
||||
"kwinrc"."Desktops"."Number" = 4;
|
||||
"kwinrc"."Desktops"."Rows" = 2;
|
||||
"kwinrc"."Effect-blur"."BlurStrength" = 10;
|
||||
"kwinrc"."Effect-kwin4_effect_translucency"."MoveResize" = 75;
|
||||
"kwinrc"."Effect-wobblywindows"."AdvancedMode" = true;
|
||||
"kwinrc"."Effect-wobblywindows"."Drag" = 85;
|
||||
"kwinrc"."Effect-wobblywindows"."Stiffness" = 10;
|
||||
"kwinrc"."Effect-wobblywindows"."WobblynessLevel" = 1;
|
||||
"kwinrc"."Plugins"."blurEnabled" = true;
|
||||
"kwinrc"."Plugins"."contrastEnabled" = false;
|
||||
"kwinrc"."Plugins"."kwin4_effect_dimscreenEnabled" = true;
|
||||
"kwinrc"."Plugins"."kwin4_effect_translucencyEnabled" = true;
|
||||
"kwinrc"."Plugins"."padding" = 4;
|
||||
"kwinrc"."Plugins"."wobblywindowsEnabled" = true;
|
||||
"kwinrc"."SubSession: 3435a388-a8b3-4d1d-9794-b8c30162ce16"."active" = "-1";
|
||||
"kwinrc"."SubSession: 3435a388-a8b3-4d1d-9794-b8c30162ce16"."count" = 0;
|
||||
"kwinrc"."SubSession: 6a473a77-85df-4e49-8c74-bdb06d1f0efd"."active" = "-1";
|
||||
"kwinrc"."SubSession: 6a473a77-85df-4e49-8c74-bdb06d1f0efd"."count" = 0;
|
||||
"kwinrc"."Tiling"."padding" = 4;
|
||||
"kwinrc"."Tiling.0d3998b5-12fb-5e5d-9844-298a9a2f96a3"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.213a9620-187e-58a6-b80b-85d8fb95dfce"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.285712a6-31d1-5e3a-95e8-b6f4629caf9f"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.2aa85c1b-f9f4-51c2-831e-dbbd6aea2576"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.3e6a13d3-7d29-5922-82c3-84e8bdf10429"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.40fb0ae6-4d25-5480-b243-0f4924570b92"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.41dbdd7d-3355-5b44-a3d8-6b9d76bd8f49"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.4c85f5bb-4dcb-5bec-8433-5c0e6860d679"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.5b7a5ba4-43cc-5910-8e98-f358f9d54b43"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.68ef4fec-9971-5899-9f5a-9bafaac6d016"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.7b033d70-7be4-564a-8cb5-131fc76f4517"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.8abeadb8-e20c-502f-a422-649967e677bd"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.930227d2-176d-55ae-b42d-99afaeafa61d"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.94554398-f51f-5d08-8909-838a65d2021f"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.9ce2bb81-955c-5eca-bf8f-a2b96c1bd574"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.9fff9751-4241-5809-b520-d1e4f7ee6716"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.a0d5ed6f-d993-5652-af90-8090aaea58f1"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.af1f9f4e-7675-5e65-b3ad-cab439cd3ed4"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.b08bfea5-80c9-53b4-a9ac-29c5c722ee85"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.b31b477c-d7e2-5305-b59d-f5c58bb123c5"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.c9dcef5c-605f-5b87-bbbf-1a493981abea"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.ed4b5b12-e8f0-5571-a0dd-1bf2e3d208f2"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Tiling.fe059470-320a-5189-aef7-d3a016f73584"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"kwinrc"."Wayland"."InputMethod[$e]" = "/run/current-system/sw/share/applications/org.fcitx.Fcitx5.desktop";
|
||||
"kwinrc"."Windows"."RollOverDesktops" = true;
|
||||
"kwinrc"."Xwayland"."Scale" = 1;
|
||||
"kwinrc"."Xwayland"."XwaylandEavesdrops" = "Combinations";
|
||||
"kwinrc"."org.kde.kdecoration2"."ButtonsOnLeft" = "M";
|
||||
"kwinrc"."org.kde.kdecoration2"."ButtonsOnRight" = "BFIAX";
|
||||
"kwinrulesrc"."06734e18-08f2-47f9-a6dc-9085d95fe9b0"."Description" = "org.kde.kruler 的设置";
|
||||
"kwinrulesrc"."06734e18-08f2-47f9-a6dc-9085d95fe9b0"."above" = true;
|
||||
"kwinrulesrc"."06734e18-08f2-47f9-a6dc-9085d95fe9b0"."aboverule" = 2;
|
||||
"kwinrulesrc"."06734e18-08f2-47f9-a6dc-9085d95fe9b0"."skipswitcher" = true;
|
||||
"kwinrulesrc"."06734e18-08f2-47f9-a6dc-9085d95fe9b0"."skipswitcherrule" = 2;
|
||||
"kwinrulesrc"."06734e18-08f2-47f9-a6dc-9085d95fe9b0"."wmclass" = "org.kde.kruler";
|
||||
"kwinrulesrc"."06734e18-08f2-47f9-a6dc-9085d95fe9b0"."wmclassmatch" = 1;
|
||||
"kwinrulesrc"."1"."Description" = "element 的设置";
|
||||
"kwinrulesrc"."1"."activity" = "00000000-0000-0000-0000-000000000000";
|
||||
"kwinrulesrc"."1"."activityrule" = 2;
|
||||
"kwinrulesrc"."1"."wmclass" = "element";
|
||||
"kwinrulesrc"."1"."wmclassmatch" = 1;
|
||||
"kwinrulesrc"."2"."Description" = "org.telegram.desktop 的设置";
|
||||
"kwinrulesrc"."2"."activity" = "00000000-0000-0000-0000-000000000000";
|
||||
"kwinrulesrc"."2"."activityrule" = 2;
|
||||
"kwinrulesrc"."2"."wmclass" = "org.telegram.desktop";
|
||||
"kwinrulesrc"."2"."wmclassmatch" = 1;
|
||||
"kwinrulesrc"."3"."Description" = "org.kde.kruler 的设置";
|
||||
"kwinrulesrc"."3"."above" = true;
|
||||
"kwinrulesrc"."3"."aboverule" = 2;
|
||||
"kwinrulesrc"."3"."skipswitcher" = true;
|
||||
"kwinrulesrc"."3"."skipswitcherrule" = 2;
|
||||
"kwinrulesrc"."3"."wmclass" = "org.kde.kruler";
|
||||
"kwinrulesrc"."3"."wmclassmatch" = 1;
|
||||
"kwinrulesrc"."8c1ccf0b-abf4-4d24-a848-522a76a2440d"."Description" = "element 的设置";
|
||||
"kwinrulesrc"."8c1ccf0b-abf4-4d24-a848-522a76a2440d"."activity" = "00000000-0000-0000-0000-000000000000";
|
||||
"kwinrulesrc"."8c1ccf0b-abf4-4d24-a848-522a76a2440d"."activityrule" = 2;
|
||||
"kwinrulesrc"."8c1ccf0b-abf4-4d24-a848-522a76a2440d"."wmclass" = "element";
|
||||
"kwinrulesrc"."8c1ccf0b-abf4-4d24-a848-522a76a2440d"."wmclassmatch" = 1;
|
||||
"kwinrulesrc"."General"."count" = 3;
|
||||
"kwinrulesrc"."General"."rules" = "1,2,3";
|
||||
"kwinrulesrc"."e75e010c-c094-4e6c-a98e-fe011e563466"."Description" = "org.telegram.desktop 的设置";
|
||||
"kwinrulesrc"."e75e010c-c094-4e6c-a98e-fe011e563466"."activity" = "00000000-0000-0000-0000-000000000000";
|
||||
"kwinrulesrc"."e75e010c-c094-4e6c-a98e-fe011e563466"."activityrule" = 2;
|
||||
"kwinrulesrc"."e75e010c-c094-4e6c-a98e-fe011e563466"."wmclass" = "org.telegram.desktop";
|
||||
"kwinrulesrc"."e75e010c-c094-4e6c-a98e-fe011e563466"."wmclassmatch" = 1;
|
||||
"kxkbrc"."Layout"."DisplayNames" = "";
|
||||
"kxkbrc"."Layout"."LayoutList" = "us";
|
||||
"kxkbrc"."Layout"."Use" = true;
|
||||
"kxkbrc"."Layout"."VariantList" = "";
|
||||
"plasma-localerc"."Formats"."LANG" = "en_US.UTF-8";
|
||||
"plasma-localerc"."Translations"."LANGUAGE" = "zh_CN";
|
||||
"plasmanotifyrc"."Notifications"."PopupPosition" = "BottomRight";
|
||||
"plasmarc"."Wallpapers"."usersWallpapers" = "/home/chn/Desktop/.桌面/twin_96734339_x2.png,/home/chn/Desktop/.桌面/E_yCTfDUUAgykjX_x8.jpeg,/home/chn/Desktop/.桌面/102692178_p0_[L1][x2.00].png,/home/chn/Desktop/.桌面/111392869_p0.png,/home/chn/Desktop/.桌面/HlszomyrfyxKLtpkVixEtikq_x4_chop.png";
|
||||
"systemsettingsrc"."KFileDialog Settings"."detailViewIconSize" = 16;
|
||||
};
|
||||
};
|
||||
}
|
||||
77
modules/users/chn/plasma/autostart/default.nix
Normal file
77
modules/users/chn/plasma/autostart/default.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf inputs.config.nixos.system.gui.enable
|
||||
{
|
||||
home-manager.users.chn.config.home.file =
|
||||
let
|
||||
programs =
|
||||
{
|
||||
nheko = rec
|
||||
{
|
||||
fileName = "nheko.desktop";
|
||||
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
|
||||
[ "Exec=nheko %u" ] [ "Exec=bash -c 'sleep 5 && nheko'" ]
|
||||
(builtins.readFile "${inputs.pkgs.nheko}/share/applications/${fileName}"));
|
||||
};
|
||||
kclockd = rec
|
||||
{
|
||||
fileName = "org.kde.kclockd-autostart.desktop";
|
||||
path = "${inputs.pkgs.plasma5Packages.kdeGear.kclock}/etc/xdg/autostart/${fileName}";
|
||||
};
|
||||
yakuake = rec
|
||||
{
|
||||
fileName = "org.kde.yakuake.desktop";
|
||||
path = "${inputs.pkgs.yakuake}/share/applications/${fileName}";
|
||||
};
|
||||
telegram = rec
|
||||
{
|
||||
fileName = "org.telegram.desktop.desktop";
|
||||
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
|
||||
[ "Exec=telegram-desktop -- %u" ] [ "Exec=bash -c 'sleep 5 && telegram-desktop -autostart'" ]
|
||||
(builtins.readFile "${inputs.pkgs.telegram-desktop}/share/applications/${fileName}"));
|
||||
};
|
||||
element = rec
|
||||
{
|
||||
fileName = "element-desktop.desktop";
|
||||
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
|
||||
[ "Exec=element-desktop %u" ] [ "Exec=element-desktop --hidden" ]
|
||||
(builtins.readFile "${inputs.pkgs.element-desktop.desktopItem}/share/applications/${fileName}"));
|
||||
};
|
||||
kmail = rec
|
||||
{
|
||||
fileName = "org.kde.kmail2.desktop";
|
||||
path = "${inputs.pkgs.kmail}/share/applications/${fileName}";
|
||||
};
|
||||
discord = rec
|
||||
{
|
||||
fileName = "discord.desktop";
|
||||
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
|
||||
[ "Exec=Discord" ] [ "Exec=Discord --start-minimized" ]
|
||||
(builtins.readFile "${inputs.pkgs.discord.desktopItem}/share/applications/${fileName}"));
|
||||
};
|
||||
crow-translate = rec
|
||||
{
|
||||
fileName = "io.crow_translate.CrowTranslate.desktop";
|
||||
path = "${inputs.pkgs.crow-translate}/share/applications/${fileName}";
|
||||
};
|
||||
};
|
||||
devices =
|
||||
{
|
||||
pc = [ "nheko" "kclockd" "yakuake" "telegram" "element" "kmail" "discord" "crow-translate" ];
|
||||
surface = [ "kclockd" "yakuake" "telegram" "element" ];
|
||||
};
|
||||
in builtins.listToAttrs (builtins.map
|
||||
(file:
|
||||
{
|
||||
name = ".config/autostart/${programs.${file}.fileName}";
|
||||
value.source = programs.${file}.path;
|
||||
})
|
||||
(devices.${inputs.config.nixos.system.networking.hostname} or []));
|
||||
environment.persistence =
|
||||
let impermanence = inputs.config.nixos.system.impermanence;
|
||||
in inputs.lib.mkIf impermanence.enable
|
||||
{
|
||||
"${impermanence.root}".users.chn.directories = [ ".config/autostart" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
[Desktop Entry]
|
||||
Name=Telegram Desktop
|
||||
Comment=Official desktop version of Telegram messaging app
|
||||
TryExec=telegram-desktop
|
||||
Exec=bash -c "sleep 5 && telegram-desktop -autostart"
|
||||
Icon=telegram
|
||||
Terminal=false
|
||||
StartupWMClass=TelegramDesktop
|
||||
Type=Application
|
||||
Categories=Chat;Network;InstantMessaging;Qt;
|
||||
MimeType=x-scheme-handler/tg;
|
||||
Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;
|
||||
Actions=quit;
|
||||
DBusActivatable=true
|
||||
SingleMainWindow=true
|
||||
X-GNOME-UsesNotifications=true
|
||||
X-GNOME-SingleWindow=true
|
||||
94
modules/users/chn/plasma/default.nix
Normal file
94
modules/users/chn/plasma/default.nix
Normal file
@@ -0,0 +1,94 @@
|
||||
inputs:
|
||||
{
|
||||
imports = inputs.localLib.mkModules [ ./autostart ./wallpaper ./konsole.nix ./shortcuts.nix ./theme.nix ];
|
||||
config = inputs.lib.mkIf inputs.config.nixos.system.gui.enable
|
||||
{
|
||||
home-manager.users.chn.config.programs.plasma = inputs.lib.mkMerge
|
||||
[
|
||||
# TODO: autostart, panel, discard user changed settings
|
||||
# general
|
||||
{
|
||||
enable = true;
|
||||
configFile.plasma-localerc = { Formats.LANG = "en_US.UTF-8"; Translations.LANGUAGE = "zh_CN"; };
|
||||
}
|
||||
# kwin
|
||||
{
|
||||
kwin.titlebarButtons.right = [ "help" "keep-below-windows" "keep-above-windows" "minimize" "maximize" "close" ];
|
||||
windows.allowWindowsToRememberPositions = false;
|
||||
configFile =
|
||||
{
|
||||
plasmanotifyrc.Notifications.PopupPosition = "BottomRight";
|
||||
kwinrc =
|
||||
{
|
||||
Tiling.padding = 4;
|
||||
Wayland."InputMethod[$e]" = "/run/current-system/sw/share/applications/org.fcitx.Fcitx5.desktop";
|
||||
Windows.RollOverDesktops = true;
|
||||
Compositing = { AllowTearing = false; WindowsBlockCompositing = false; };
|
||||
};
|
||||
};
|
||||
}
|
||||
# baloo
|
||||
{ configFile.baloofilerc."Basic Settings".Indexing-Enabled = false; }
|
||||
# dolphin and file chooser
|
||||
{
|
||||
configFile =
|
||||
{
|
||||
dolphinrc =
|
||||
{
|
||||
General = { ShowFullPath = true; FilterBar = true; RememberOpenedTabs = false; };
|
||||
PreviewSettings.Plugins = builtins.concatStringsSep ","
|
||||
[
|
||||
"blenderthumbnail"
|
||||
"comicbookthumbnail"
|
||||
"djvuthumbnail"
|
||||
"ebookthumbnail"
|
||||
"exrthumbnail"
|
||||
"marble_thumbnail_geojson"
|
||||
"marble_thumbnail_gpx"
|
||||
"jpegthumbnail"
|
||||
"marble_thumbnail_kmz"
|
||||
"marble_thumbnail_kml"
|
||||
"kraorathumbnail"
|
||||
"windowsimagethumbnail"
|
||||
"windowsexethumbnail"
|
||||
"mltpreview"
|
||||
"mobithumbnail"
|
||||
"opendocumentthumbnail"
|
||||
"marble_thumbnail_osm"
|
||||
"palathumbcreator"
|
||||
"gsthumbnail"
|
||||
"rawthumbnail"
|
||||
"svgthumbnail"
|
||||
"imagethumbnail"
|
||||
"fontthumbnail"
|
||||
"directorythumbnail"
|
||||
"textthumbnail"
|
||||
"webarchivethumbnail"
|
||||
"ffmpegthumbs"
|
||||
"audiothumbnail"
|
||||
];
|
||||
};
|
||||
kdeglobals."KFileDialog Settings" =
|
||||
{
|
||||
"Allow Expansion" = true;
|
||||
"Automatically select filename extension" = true;
|
||||
"Show Bookmarks" = true;
|
||||
"Show Full Path" = true;
|
||||
"Show Inline Previews" = true;
|
||||
"Show Preview" = true;
|
||||
"Show Speedbar" = true;
|
||||
"Show hidden files" = true;
|
||||
"Sort by" = "Name";
|
||||
"Sort directories first" = true;
|
||||
"Sort hidden files last" = true;
|
||||
"View Style" = "DetailTree";
|
||||
};
|
||||
};
|
||||
}
|
||||
# krunner
|
||||
{ configFile.krunnerrc = { General.FreeFloating = true; Plugins.baloosearchEnabled = false; }; }
|
||||
# lock screen
|
||||
{ configFile.kscreenlockerrc.Daemon.Autolock = false; }
|
||||
];
|
||||
};
|
||||
}
|
||||
81
modules/users/chn/plasma/konsole.nix
Normal file
81
modules/users/chn/plasma/konsole.nix
Normal file
@@ -0,0 +1,81 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf inputs.config.nixos.system.gui.enable
|
||||
{
|
||||
home-manager.users.chn.config =
|
||||
{
|
||||
programs.plasma =
|
||||
{
|
||||
overrideConfig = true;
|
||||
overrideConfigFiles = [ "konsolerc" "yakuakerc" ];
|
||||
configFile =
|
||||
{
|
||||
yakuakerc =
|
||||
{
|
||||
Appearance =
|
||||
{
|
||||
HideSkinBorders = true;
|
||||
Skin = "Slate";
|
||||
Translucency = true;
|
||||
};
|
||||
"Desktop Entry".DefaultProfile = "plasma-manager.profile";
|
||||
Dialogs.FirstRun = false;
|
||||
Window =
|
||||
{
|
||||
KeepOpen = false;
|
||||
KeepOpenAfterLastSessionCloses = true;
|
||||
ShowSystrayIcon = false;
|
||||
};
|
||||
};
|
||||
konsolerc =
|
||||
{
|
||||
"Desktop Entry".DefaultProfile = "plasma-manager.profile";
|
||||
"MainWindow.Toolbar sessionToolbar".ToolButtonStyle = "IconOnly";
|
||||
};
|
||||
};
|
||||
dataFile."konsole/plasma-manager.profile" =
|
||||
{
|
||||
Appearance =
|
||||
{
|
||||
AntiAliasFonts = true;
|
||||
BoldIntense = true;
|
||||
ColorScheme = "Breeze";
|
||||
Font = "FiraCode Nerd Font Mono,10,-1,5,50,0,0,0,0,0";
|
||||
UseFontLineChararacters = true;
|
||||
WordModeAttr = false;
|
||||
};
|
||||
"Cursor Options".CursorShape = 1;
|
||||
General =
|
||||
{
|
||||
Name = "plasma-manager";
|
||||
Parent = "FALLBACK/";
|
||||
TerminalCenter = true;
|
||||
TerminalMargin = 1;
|
||||
};
|
||||
"Interaction Options" =
|
||||
{
|
||||
AutoCopySelectedText = true;
|
||||
TrimLeadingSpacesInSelectedText = true;
|
||||
TrimTrailingSpacesInSelectedText = true;
|
||||
UnderlineFilesEnabled = true;
|
||||
};
|
||||
Scrolling =
|
||||
{
|
||||
HistoryMode = 2;
|
||||
ReflowLines = false;
|
||||
};
|
||||
"Terminal Features".BlinkingCursorEnabled = true;
|
||||
};
|
||||
};
|
||||
home.file.".local/share/konsole/Breeze.colorscheme".text = builtins.replaceStrings
|
||||
[ "Opacity=1" ] [ "Opacity=0.9\nBlur=true" ]
|
||||
(builtins.readFile "${inputs.pkgs.konsole}/share/konsole/Breeze.colorscheme");
|
||||
};
|
||||
environment.persistence =
|
||||
let impermanence = inputs.config.nixos.system.impermanence;
|
||||
in inputs.lib.mkIf impermanence.enable
|
||||
{
|
||||
"${impermanence.root}".users.chn.directories = [ ".local/share/konsole" ".local/share/yakuake" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
100
modules/users/chn/plasma/shortcuts.nix
Normal file
100
modules/users/chn/plasma/shortcuts.nix
Normal file
@@ -0,0 +1,100 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf inputs.config.nixos.system.gui.enable
|
||||
{
|
||||
home-manager.users.chn.config.programs.plasma =
|
||||
{
|
||||
overrideConfig = true;
|
||||
overrideConfigFiles = [ "kglobalshortcutsrc" "khotkeysrc" ];
|
||||
spectacle.shortcuts.captureRectangularRegion = "Print";
|
||||
shortcuts = inputs.lib.mkMerge
|
||||
[
|
||||
# firefox
|
||||
{ "firefox.desktop"._launch = "Meta+B"; }
|
||||
# crow translate
|
||||
{ "io.crow_translate.CrowTranslate.desktop".TranslateSelectedText = "Ctrl+Alt+E"; }
|
||||
# display
|
||||
{
|
||||
kded5.display = [ "Display" "Meta+P" ];
|
||||
kwin = { view_actual_size = "Meta+0"; view_zoom_in = [ "Meta++" "Meta+=" ]; view_zoom_out = "Meta+-"; };
|
||||
org_kde_powerdevil =
|
||||
{
|
||||
"Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||
"Increase Screen Brightness" = "Monitor Brightness Up";
|
||||
};
|
||||
}
|
||||
# volume
|
||||
{
|
||||
kmix =
|
||||
{
|
||||
decrease_volume = "Volume Down";
|
||||
increase_volume = "Volume Up";
|
||||
mic_mute = [ "Meta+Volume Mute" ];
|
||||
mute = "Volume Mute";
|
||||
};
|
||||
}
|
||||
# session
|
||||
{
|
||||
ksmserver = { "Lock Session" = [ "Meta+L" "Screensaver" ]; "Log Out" = "Ctrl+Alt+Del"; };
|
||||
org_kde_powerdevil."Turn Off Screen" = "Meta+Ctrl+L";
|
||||
}
|
||||
# window
|
||||
{
|
||||
kwin =
|
||||
{
|
||||
ExposeAll = "Meta+Tab";
|
||||
"Show Desktop" = "Meta+D";
|
||||
"Suspend Compositing" = "Alt+Shift+F12";
|
||||
"Walk Through Windows" = "Alt+Tab";
|
||||
"Walk Through Windows (Reverse)" = "Alt+Shift+Backtab";
|
||||
"Window Above Other Windows" = "Meta+Shift+Up";
|
||||
"Window Below Other Windows" = "Meta+Shift+Down";
|
||||
"Window Close" = "Alt+F4";
|
||||
"Window Maximize" = "Meta+Ctrl+Up";
|
||||
"Window Minimize" = "Meta+Ctrl+Down";
|
||||
"Window Operations Menu" = "Alt+F3";
|
||||
"Window Quick Tile Bottom" = "Meta+Down";
|
||||
"Window Quick Tile Left" = "Meta+Left";
|
||||
"Window Quick Tile Right" = "Meta+Right";
|
||||
"Window Quick Tile Top" = "Meta+Up";
|
||||
};
|
||||
}
|
||||
# virtual desktop
|
||||
{
|
||||
kwin =
|
||||
{
|
||||
"Switch One Desktop to the Left" = [ "Ctrl+PgUp" "Ctrl+Num+PgUp" ];
|
||||
"Switch One Desktop to the Right" = [ "Ctrl+PgDown" "Ctrl+Num+PgDown" ];
|
||||
"Window One Desktop to the Left" = [ "Meta+Ctrl+PgUp" "Meta+Ctrl+Num+PgUp" ];
|
||||
"Window One Desktop to the Right" = [ "Meta+Ctrl+PgDown" "Meta+Ctrl+Num+PgDown" ];
|
||||
};
|
||||
}
|
||||
# media
|
||||
{
|
||||
mediacontrol =
|
||||
{
|
||||
nextmedia = "Media Next";
|
||||
pausemedia = "Media Pause";
|
||||
playpausemedia = [ "Pause" "Media Play" ];
|
||||
previousmedia = "Media Previous";
|
||||
stopmedia = "Media Stop";
|
||||
};
|
||||
}
|
||||
# dolphin
|
||||
{ "org.kde.dolphin.desktop"._launch = "Meta+E"; }
|
||||
# konsole
|
||||
{ "org.kde.konsole.desktop"._launch = "Ctrl+Alt+T"; }
|
||||
# krunner
|
||||
{ "org.kde.krunner.desktop"._launch = "Alt+Space"; }
|
||||
# settings
|
||||
{ "systemsettings.desktop"._launch = "Meta+I"; }
|
||||
# yakuake
|
||||
{ yakuake.toggle-window-state = "Meta+Space"; }
|
||||
# virt-manager
|
||||
{ "virt-manager.desktop"._launch = "Meta+V"; }
|
||||
# system monitor
|
||||
{ "org.kde.plasma-systemmonitor.desktop"._launch = "Meta+Esc"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
36
modules/users/chn/plasma/theme.nix
Normal file
36
modules/users/chn/plasma/theme.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf inputs.config.nixos.system.gui.enable
|
||||
{
|
||||
home-manager.users.chn.config.programs.plasma =
|
||||
{
|
||||
workspace =
|
||||
{
|
||||
theme = "Fluent-round-light";
|
||||
colorScheme = "FluentLight";
|
||||
cursorTheme = "Breeze_Snow";
|
||||
lookAndFeel = "com.github.vinceliuice.Fluent-round-light";
|
||||
iconTheme = "Tela-circle";
|
||||
};
|
||||
configFile =
|
||||
{
|
||||
kdeglobals.KDE.widgetStyle = "kvantum";
|
||||
"Kvantum/kvantum.kvconfig".General.theme = "Fluent-round";
|
||||
kwinrc =
|
||||
{
|
||||
Effect-blur.BlurStrength = 10;
|
||||
Effect-kwin4_effect_translucency.MoveResize = 75;
|
||||
Effect-wobblywindows = { AdvancedMode = true; Drag = 85; Stiffness = 10; WobblynessLevel = 1; };
|
||||
Plugins =
|
||||
{
|
||||
blurEnabled = true;
|
||||
kwin4_effect_dimscreenEnabled = true;
|
||||
kwin4_effect_translucencyEnabled = true;
|
||||
padding = 4;
|
||||
wobblywindowsEnabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
modules/users/chn/plasma/wallpaper/default.nix
Normal file
13
modules/users/chn/plasma/wallpaper/default.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
inputs:
|
||||
{
|
||||
config.home-manager.users.chn.config.programs.plasma.configFile =
|
||||
let wallpaper = "${./pixiv-96734339-x2.png}"; in
|
||||
{
|
||||
"plasma-org.kde.plasma.desktop-appletsrc" =
|
||||
{
|
||||
"Containments.1".wallpaperplugin = "a2n.blur";
|
||||
"Containments.1.Wallpaper.a2n\\.blur.General".Image = wallpaper;
|
||||
};
|
||||
kscreenlockerrc."Greeter.Wallpaper.org\\.kde\\.image.General" = { Image = wallpaper; PreviewImage = wallpaper; };
|
||||
};
|
||||
}
|
||||
BIN
modules/users/chn/plasma/wallpaper/fanbox-5405326-x4-chop.png
LFS
Normal file
BIN
modules/users/chn/plasma/wallpaper/fanbox-5405326-x4-chop.png
LFS
Normal file
Binary file not shown.
BIN
modules/users/chn/plasma/wallpaper/fanbox-5405326.png
LFS
Normal file
BIN
modules/users/chn/plasma/wallpaper/fanbox-5405326.png
LFS
Normal file
Binary file not shown.
BIN
modules/users/chn/plasma/wallpaper/fanbox-6682738.png
LFS
Normal file
BIN
modules/users/chn/plasma/wallpaper/fanbox-6682738.png
LFS
Normal file
Binary file not shown.
BIN
modules/users/chn/plasma/wallpaper/pixiv-111392869.png
LFS
Normal file
BIN
modules/users/chn/plasma/wallpaper/pixiv-111392869.png
LFS
Normal file
Binary file not shown.
BIN
modules/users/chn/plasma/wallpaper/pixiv-84287955.png
LFS
Normal file
BIN
modules/users/chn/plasma/wallpaper/pixiv-84287955.png
LFS
Normal file
Binary file not shown.
BIN
modules/users/chn/plasma/wallpaper/pixiv-96734339-x2.png
LFS
Normal file
BIN
modules/users/chn/plasma/wallpaper/pixiv-96734339-x2.png
LFS
Normal file
Binary file not shown.
BIN
modules/users/chn/plasma/wallpaper/pixiv-96734339.png
LFS
Normal file
BIN
modules/users/chn/plasma/wallpaper/pixiv-96734339.png
LFS
Normal file
Binary file not shown.
BIN
modules/users/chn/plasma/wallpaper/twitter-1476842308473868289-x4.png
LFS
Normal file
BIN
modules/users/chn/plasma/wallpaper/twitter-1476842308473868289-x4.png
LFS
Normal file
Binary file not shown.
@@ -2,6 +2,13 @@ inputs:
|
||||
{
|
||||
options.nixos.virtualization = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
# /var/lib/waydroid/waydroid_base.prop
|
||||
# default:
|
||||
# ro.hardware.gralloc=gbm
|
||||
# ro.hardware.egl=mesa
|
||||
# nvidia:
|
||||
# ro.hardware.gralloc=default
|
||||
# ro.hardware.egl=swiftshader
|
||||
waydroid.enable = mkOption { default = false; type = types.bool; };
|
||||
docker.enable = mkOption { default = false; type = types.bool; };
|
||||
kvmHost =
|
||||
@@ -30,7 +37,9 @@ inputs:
|
||||
setSocketVariable = true;
|
||||
daemon.settings = { features.buildkit = true; dns = [ "1.1.1.1" ]; storage-driver = "overlay2"; };
|
||||
};
|
||||
enableNvidia = builtins.elem "nvidia" inputs.config.nixos.hardware.gpus;
|
||||
enableNvidia =
|
||||
let gpu = inputs.config.nixos.hardware.gpu.type;
|
||||
in inputs.lib.mkIf (gpu != null && inputs.lib.strings.hasInfix "nvidia" gpu) true;
|
||||
storageDriver = "overlay2";
|
||||
};
|
||||
nixos.services.firewall.trustedInterfaces = [ "docker0" ];
|
||||
|
||||
24
secrets/pc/munge.key
Normal file
24
secrets/pc/munge.key
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:ftogJ/2oPME8sVbyNAuI3t3GEzUmdCadyjf2g/bjGNx3AoV0jU0SDxnBLDFfoR1rEtV00zfgCMPDGsEXavg+QVvoICpvvhckXMOLXe37H3Ff0wDVJtL4BBIK3oVh/SiYaRm/+uR0x6HW37KX50RRvKvpQoRdMVNnvtKbMjmQVIA=,iv:MOHfTIavoU643K10jSR3HruzoofOqqVspYgiaLc294o=,tag:zjDTPKwAOh/nqkquvAQpbw==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age19ax6vm3pv8rph5tq3mmehd9sy9jk823tw8svsd790r0lkslycquqvlwz9m",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5TTB1bHFXcDhoMk1QVzJ0\nUUplcGVBVUhoOEt0Rnc2ZStDUUpjZmV0eGpvCjFQSGl4TjlMT2R5RExNZWxwOUtz\nSWhhSUtFN0JISzJhclpCMFZDQ09jK28KLS0tIGJydDNoY3hBbEhBYUNYZGZCaWpQ\nQnVDalJCcWpIRTdVaWkzeGVNSGpDRWsKWXoMC8NApfenn191aRwdAjD0iM5+C3R6\nXKpHxfhc1Gf6paxBhketFU+AwWsKiBDKh0gntV49F+YSriPa7uI3FA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1ffvr5pqd2lfj24e3fh53s92z6h76fda3du4y4k6r3yjumdwvpfgqzj033a",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzclYwVjdOZnQ1Y2dlUi9n\naXQya21QVHZ0KzMxTkVuTEJuazB4WklqdFdvCmpMd0h6OXUvZSttOFpmeUdsSlNs\nQkhQaVJqVFdidFNMejljV2h3WUFTaFUKLS0tIGNBemY5R1N3T00zMEthZjBsWXZh\nVXRtNG5UV3I3WG5LYUphNUNyUDI5WXcKVQpMe3zYgzHOtQQvo8Vvz94lYR6TBFuV\nD7ztr4rD/Vdk3hkSGZQvdzGjNDdGpac38LUN9vtFQbzMofykcn/etw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-02-24T05:48:31Z",
|
||||
"mac": "ENC[AES256_GCM,data:kCLcS6xeMijD8Bxa0MBUbFH2pdXX6BdGL1SztHHPet8loMkiCfgEiyp9l/QjszWa3G6zx3K+0wXXtRXmrNAxThnIgMZQVGCy4Ucw7fp8Pral/5eaJNlZGb56JQPF9ZDHb9YQPDPImaEAKYUtzayyaZAGJGlCmIIhVVhXTx7iiig=,iv:MXRDA/6YnVUbLdYAIrMvrdb2iPsi4Bmr06SPCU8CCVc=,tag:9hT7Xo0tRnHTgAaivKj4QQ==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.8.1"
|
||||
}
|
||||
}
|
||||
33
secrets/surface/default.yaml
Normal file
33
secrets/surface/default.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
xray-client:
|
||||
uuid: ENC[AES256_GCM,data:WEBAH3PQM5ahNpH/kvTtcjcJ2GllmmRlBR2oclG6AimGenSg,iv:TMp0WTOe9fuELSZoVGenl5XSZUFoiYUBEMWMn4NFv1g=,tag:GJTE0EELcZkrnGAKLYer1g==,type:str]
|
||||
wireguard:
|
||||
privateKey: ENC[AES256_GCM,data:P/tyZHaEAahZUBF22dJEZb6mACm/wmUunPDG0vS7SNW3sWbzxRSut0haR/g=,iv:8VMv5iotmDrYDLiszcOvJHkD8l6uE+SboPSILr6KuzU=,tag:U/FIBhvghwDTvFtUWEqr4g==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age19ax6vm3pv8rph5tq3mmehd9sy9jk823tw8svsd790r0lkslycquqvlwz9m
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzV1pvWkVGSFg5TVAvRlhu
|
||||
TnFnMEszcDRWWHlQanAyRkRpQWdqQkdhTzFvCjBqUG4xNFBiRnlSeTNQSmdkVkdD
|
||||
UlVCQjRFVExuZHdrSnViajZGZ3c2dWsKLS0tIHlQYU5VeGpEQzllMmxLSnJZZzZx
|
||||
N1R3Mkhxa0dOVlJiU0V2OEZVVzZVMFkKae3c1axl22uxh9wMygAHs6q1WA5ImOS8
|
||||
uzKSthWSqtC7DMqgUFaaSjBYM2TN3l402syx71xVFyyAmCcGZbbJcg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1ck5vzs0xqx0jplmuksrkh45xwmkm2t05m2wyq5k2w2mnkmn79fxs6tvl3l
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCSHJVRGIwQUFpVER5SWxq
|
||||
YjJOT0lXN3dFOFpjMFlWV3JCbmZFN0hnNEJBClpQUEczK2RWTGlVTmJRbVZaUC8y
|
||||
bEFrL1RjTTNlYVNnRVRBZlRjaTlnUEEKLS0tIE5GM01pTGFFcWVVSWEvUHE3Z08r
|
||||
a2xybTRFUFZZN20zajZJTVNwVEpGcEEKglmFMk7z1q5IlZ+lZf9M0HtknmvcYt/P
|
||||
2/z5e8wLN1Hy0Zsbv0yIL/NmqwxAOGJOdzz7ElJszk/Y4kUr9aRasg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-02-16T14:25:17Z"
|
||||
mac: ENC[AES256_GCM,data:lpZ+Jd5LF35ESBOmOoq7pbNHze7rJiQsiq8cOgf8+cWnAqVh1bccG0cFe7R8uBhmuKIqp7TwkORDFuD+KFCZW14cbR4SP3vndSoYzKxIBdKTObR95w2ETst+prUtQ3fvFeEtlJexeljikfprWf2pGo1OzPophAyocgT31z2iMjs=,iv:Bryz+kqRvXYPj6YuxeDhQfLsgYqHXrA+lHFX18m2GGE=,tag:A7mvmguWoOir2JoIprgL4A==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
@@ -10,8 +10,7 @@ xray-server:
|
||||
user1: ENC[AES256_GCM,data:S3IHO9FcVHTJOsRxjSohM9MgnrEwLdDpFU+efLkQaXT2jNJG,iv:KOesvPzjDfm1EDLFiegbk0wgjp7di5mUwUuuY2hwvOQ=,tag:ZsYyUyyEhO5S3weCw/gPMw==,type:str]
|
||||
#ENC[AES256_GCM,data:OQOPobpbbhajgA==,iv:4jG3bHKzWcR+JnvSlJsc0Qlv5kywqVN5UE96J31CP7Q=,tag:P+jJkRxPu99tLXyO5k6dRA==,type:comment]
|
||||
user2: ENC[AES256_GCM,data:e7ITe2ZouKr8dXT7SYATyzbzHaVeu6AKt1OcQKk3U0nsQgoa,iv:UbOOuojy6OAFEH8lGhKe5Hs+2K6FX5MZ8Br9AB007gs=,tag:5XeB4YngzTcHZvCpXe/ZXA==,type:str]
|
||||
#ENC[AES256_GCM,data:vEit6GESM5G+Xw==,iv:A7uisdmzB2qiPeYkut6k8D3xxpVIBy/JE9cctC/cDQQ=,tag:ZY7Ttu5AUqjIxB4BIHEucQ==,type:comment]
|
||||
user3: ENC[AES256_GCM,data:Q3GlAiELNXurVN3nv5k8Zt1/zqctYb3gvHZ4KnXApCRdShHT,iv:ihJ76k4NcwitdYCS0y4/UlH4K63vwmAY63bCWSi9dkk=,tag:XaH97gpAdaFkUiUTb50aLw==,type:str]
|
||||
user3: ENC[AES256_GCM,data:r+6jXaIj4HJoYLnJcnjJB+WEZlGaoSy/ktc1Aw77hFtNrrGp,iv:P+YUKns1yaOZokH5WkDB0jssGyHg3ncc54tF1PyA7Oc=,tag:/pxMEr7l4ye5EDAOsllxJA==,type:str]
|
||||
#ENC[AES256_GCM,data:4gqZh391hg==,iv:No22DrD6EBs2FA4/qH8msWEjs20fc+ZpEeZep+HIv+c=,tag:aHrYNbI83POI4PRj1nd+Yw==,type:comment]
|
||||
user4: ENC[AES256_GCM,data:ujiml/r4aFiKOkSJkaD/KE8rKuBtLSnpZREBH3vRJUzDT0QM,iv:a3VFlXpMLNFihvFa7gloANtHmBLg4szTL5LTm8E2kNs=,tag:W9KZ1GAVx9IBKfda7Zedng==,type:str]
|
||||
#ENC[AES256_GCM,data:bnnxo/I=,iv:8jOo0P+8gk05O1vnxOiyGhaeD4wyuaaA3CCr8/DbzII=,tag:J6VSJZoko3EiWyn0ATcmqA==,type:comment]
|
||||
@@ -101,8 +100,8 @@ sops:
|
||||
ZXFTU3ZCaW1pTVh0RUJzdDdGdHlPYTgK2mlgcX2kEc8+2UDdBnhUm6IIuh8V6agW
|
||||
ooxH9OEPXUVI/4JcDo4v8ZUhAyU1ehLH0Ef7PJCChOZe2KZmWSNbhA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2023-12-08T08:32:56Z"
|
||||
mac: ENC[AES256_GCM,data:mE2I5XIv+xcbaaZmnXfxCYmb5BMGc+D4AqdmFeYDrUPLZgtaSZvJkP0pVDhJcRy7L5VooGgBaI/OFWrQMLgP0Oz2s092AwiDmCV8jLQQrXs1X+ABdHLXTLvjhnOMTk8ZV0KizWJLEuCFgZ0lS6mjVHQNDW1d2TNxAhM7JvTyOVw=,iv:BZw32WlqgQzz6j5gxS1U4l10K8C5YBZAvYotilBXPA0=,tag:oc4EqeWQK9kkPgiIHfiLjQ==,type:str]
|
||||
lastmodified: "2024-01-15T11:39:07Z"
|
||||
mac: ENC[AES256_GCM,data:cjP8ZDujb+RhdK5fa51if+mlx2EpfA4TTmlRbExfIDnahM8deF7qmXhOXeRIF7TrdK7HrxxOsNm2F300sbtEV0CJBsu0Wf9V3JuCuf2deEhABVSEh5f44ZCg4fLCFKCidn6GZPGjk+nEbFd+U5elcDHaqbdhdMeu3iMIf/xncac=,iv:uTv//gOvqdOKWWFvDsvdix66UiHmKzf2Dz2FuJYCfcY=,tag:qzXfKyyltjZVN8sux5mElA==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
|
||||
@@ -27,6 +27,7 @@ postgresql:
|
||||
grafana: ENC[AES256_GCM,data:ZLtDIZ3oKasE4r1WNllNe/rkXxqRS+QAJI7EGPKhiFF1BtAxD46UpGQnUag3yg0gP/8+3COQs6camVSxcKFL1A==,iv:wMj3keVjNpVwNMwlt4E3ds1EYjLNIZ/S3RydhOlmYWU=,tag:ZRn7NWaUPbf2rHYLoLYw+w==,type:str]
|
||||
akkoma: ENC[AES256_GCM,data:6piRt7BbMBLVGdot+VyoJN3/S8DoPNTYHFh/1coHSLNmiA6kU/6sca4Bts1Up/Vu164oTsFAr1JsKx6tzNzAPg==,iv:qplA1GXHwzVrmjm7eagCk3PFa7DRdwaf+p7N1HLb6mw=,tag:W6WedSK3R1IgZVo/0Hr9vA==,type:str]
|
||||
synapse_matrix: ENC[AES256_GCM,data:5j+TYJ3vYUqu6CdRDYAT558DsTWbX4Rh+HuukPog5HGXlhneL3RnxVeGBR9CV1rlCP1NY99Nm8roBG+BcyPYHQ==,iv:CboB6lzqxAE/8ZlzaTU3bxw94N6OAhrq8pZ0AfxQiUc=,tag:z6cM3ufgbMn5n5PzgqdRjw==,type:str]
|
||||
vikunja: ENC[AES256_GCM,data:syb4NYBxL3DdmZmcC+em0klmm6bkkIL/DH/gnzShYRiaezRFskT+yay9govn++SpbuvkoCJq/GYAFxNL+hcVtw==,iv:TQUgdzYQ0gqsAmux9v3BAQFNzHnCTZ+X/OC0b9Bfya8=,tag:b1AsiAW5XzA3DzGdf8J03g==,type:str]
|
||||
meilisearch:
|
||||
misskey-misskey: ENC[AES256_GCM,data:4s+qqd6mmstioC0XmG/vA6ED9mzu1vRJVPFFalRiqnnsFy0dYEU87H+y12eOp/KDSLdTNvpp6Z6jCNvxnpDXzQ==,iv:x6L9OPu/dwVsD9pYb4dqavw9NesMbo7LB+rwz6veAR4=,tag:/BBqV2sHIgPas7XsZydh2g==,type:str]
|
||||
rsshub:
|
||||
@@ -105,6 +106,8 @@ grafana:
|
||||
chn: ENC[AES256_GCM,data:0bbjggWS1MdcUIQiQyPlBTULm+faKDpJbmZmV6vSw8k=,iv:am65WQzUE+AvQrQV+NSF5u6RCWn7EetyPsdy4Cuvyyw=,tag:lxNUM1cIYVSXVgwEnS1Hdw==,type:str]
|
||||
wireguard:
|
||||
privateKey: ENC[AES256_GCM,data:TS+toaJRgAvC78XVwTciXe2IG8++vaqXVCi/u/8Aej6qq1B9Cb6f20cp5K0=,iv:T/NkLvcYiWzIDG3jWtuhe/sH2GT4z5f0xdUGbSL901I=,tag:qN7YokFBj3Kbbx4ijHTRnw==,type:str]
|
||||
vikunja:
|
||||
jwtsecret: ENC[AES256_GCM,data:p6e22qPJzTGB21oWhSr8AA4bfrele9ZOHVtZ8BHgX21IhoKdm58coGtSX1CGXR7J6+1/74RdLY9K88nGrM1F1w==,iv:DGUO8rhf7Lg9dTqSmzlR/Jd2K4oUjO8w9E5bihwsykI=,tag:SpX6UI0QIju/tC1fIL9CCg==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
@@ -129,8 +132,8 @@ sops:
|
||||
SnFHS1Z0SXUzTFdEd29KTy9DU3Y3R0UKfhh+rUmWDrf+UGjclP57dHipPLFoXSqy
|
||||
HdelmfV6q4/c7ppx2E+oZw3VNgoZCsrxxzYZfwxHJiZb+5vkE0D8iA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2023-12-20T06:27:19Z"
|
||||
mac: ENC[AES256_GCM,data:i7AN+Sd4C61GSzT409mYd6D2tQzDyONIUsto52b1mV8hIJ4Q/U9VT5wumRjm4dGUWqrq9oFdD0/iUL1CmEdasBN7VFwNEpSYl6yhzU7zX3Re3N/0mffeW0Fx/38LdvywusJAHC9yWvsNMblKDnYxGm/UI2W/7QRMDyr8jnU6La0=,iv:Ua+K1m27GkkrUn+wcylkwrdWnq1yzFG1NMVzYAiW/6k=,tag:Gqqk5zOU3Ax2Al5CvXEV7g==,type:str]
|
||||
lastmodified: "2024-02-17T14:13:10Z"
|
||||
mac: ENC[AES256_GCM,data:zHSDJx6v1POGNcqH6/kBnFCSVmtQqK/+IarTdRJyKO7humRWNxfzORmFbu7cHpkwHLc1fTXFTWjOgzERL2To6w89U3elSGMadIbk5wSu/45Zjd+sqNiO+74teZxYskD371MXsz69OzXhnjOAgQBtK8+JC+H6gM5S5xErBg+Oqr4=,iv:ViETycX10iIkFXb5HCoBwsfM7+vhmI3zkdhvSbrEIaM=,tag:a6TdA/hR1cyDivXpBFJu3A==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user