a bunch of random changes again
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
gitignore
|
||||||
1
common/all.nix
Normal file → Executable file
1
common/all.nix
Normal file → Executable file
@@ -28,6 +28,7 @@
|
|||||||
experimental-features = lib.mkDefault "nix-command flakes";
|
experimental-features = lib.mkDefault "nix-command flakes";
|
||||||
trusted-users = [ "root" "@wheel" ];
|
trusted-users = [ "root" "@wheel" ];
|
||||||
};
|
};
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
home-manager.backupFileExtension = "backup";
|
home-manager.backupFileExtension = "backup";
|
||||||
|
|
||||||
|
|||||||
0
common/building.nix
Normal file → Executable file
0
common/building.nix
Normal file → Executable file
@@ -7,37 +7,43 @@
|
|||||||
modules.battery_monitor.enable = true;
|
modules.battery_monitor.enable = true;
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
displayManager = {
|
displayManager = {
|
||||||
defaultSession = "none+xmonad";
|
defaultSession = "none+xmonad";
|
||||||
sessionCommands = ''
|
sessionCommands = ''
|
||||||
xmobar ${self}/misc/xmobar.hs &
|
xmobar ${self}/misc/xmobar.hs &
|
||||||
|
|
||||||
# aparently needed, so that xmonad works
|
# aparently needed, so that xmonad works
|
||||||
sleep 2 && \
|
sleep 2 && \
|
||||||
${pkgs.xorg.xmodmap}/bin/xmodmap \
|
${pkgs.xorg.xmodmap}/bin/xmodmap \
|
||||||
-e "clear control" \
|
-e "clear control" \
|
||||||
-e "clear mod1" \
|
-e "clear mod1" \
|
||||||
-e "keycode 64 = Control_L" \
|
-e "keycode 64 = Control_L" \
|
||||||
-e "keycode 37 = Alt_L" \
|
-e "keycode 37 = Alt_L" \
|
||||||
-e "add control = Control_L" \
|
-e "add control = Control_L" \
|
||||||
-e "add mod1 = Alt_L" \
|
-e "add mod1 = Alt_L" \
|
||||||
&
|
&
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
displayManager.lightdm = {
|
#displayManager.gdm = {
|
||||||
enable = true;
|
#enable = true;
|
||||||
greeters.enso = {
|
#};
|
||||||
enable = true;
|
|
||||||
blur = true;
|
#/*
|
||||||
extraConfig = ''
|
displayManager.lightdm = {
|
||||||
default-wallpaper=/usr/share/streets_of_gruvbox.png
|
enable = true;
|
||||||
'';
|
greeters.enso = {
|
||||||
};
|
enable = true;
|
||||||
};
|
blur = true;
|
||||||
layout = "at";
|
extraConfig = ''
|
||||||
|
default-wallpaper=/usr/share/streets_of_gruvbox.png
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# */
|
||||||
|
layout = "at";
|
||||||
};
|
};
|
||||||
|
|
||||||
# xdg portals
|
# xdg portals
|
||||||
@@ -61,7 +67,7 @@
|
|||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
hardware.pulseaudio.enable = true;
|
hardware.pulseaudio.enable = true;
|
||||||
|
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
|
|||||||
0
common/nixos-headless.nix
Normal file → Executable file
0
common/nixos-headless.nix
Normal file → Executable file
6
common/nixos.nix
Normal file → Executable file
6
common/nixos.nix
Normal file → Executable file
@@ -14,5 +14,11 @@
|
|||||||
#keyMap = "at";
|
#keyMap = "at";
|
||||||
useXkbConfig = true; # use xkbOptions in tty.
|
useXkbConfig = true; # use xkbOptions in tty.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
system.activationScripts.addBinBash = lib.stringAfter [ "var" ] ''
|
||||||
|
# there is no /bin/bash
|
||||||
|
# https://discourse.nixos.org/t/add-bin-bash-to-avoid-unnecessary-pain/5673
|
||||||
|
ln -nsf /run/current-system/sw/bin/bash /bin/bash
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
0
common/wg-peers.nix
Normal file → Executable file
0
common/wg-peers.nix
Normal file → Executable file
BIN
docs/running-in-vm.png
Executable file
BIN
docs/running-in-vm.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 244 KiB |
291
flake.lock
generated
291
flake.lock
generated
@@ -3,8 +3,8 @@
|
|||||||
"androidPkgs": {
|
"androidPkgs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell",
|
"devshell": "devshell",
|
||||||
"flake-utils": "flake-utils_4",
|
"flake-utils": "flake-utils_6",
|
||||||
"nixpkgs": "nixpkgs_5"
|
"nixpkgs": "nixpkgs_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1638562808,
|
"lastModified": 1638562808,
|
||||||
@@ -207,11 +207,11 @@
|
|||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698927895,
|
"lastModified": 1702556729,
|
||||||
"narHash": "sha256-7zz7AkRRmKHMRcr6RMSJkhCoZqE6n2vQ9tYb5St0NJw=",
|
"narHash": "sha256-dklM/TgTKMem+ee1EFRmu2mefwIwIW6ZJ4pT+dMekiA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "flake-firefox-nightly",
|
"repo": "flake-firefox-nightly",
|
||||||
"rev": "0ce7df614a5fd38f89a95e78cddd251028f8ad48",
|
"rev": "2cba3c0f457d795cdb8769419052f12e55ae32d4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -220,6 +220,29 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"firefox-addons": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"dir": "pkgs/firefox-addons",
|
||||||
|
"lastModified": 1703676226,
|
||||||
|
"narHash": "sha256-4xT4GM1cZSpjqox0g6g33/6ig4RZsk69wzF/sXR9Wcs=",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nur-expressions",
|
||||||
|
"rev": "03285ecbe3217db5469aebca969462ebd6198b9a",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"dir": "pkgs/firefox-addons",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nur-expressions",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1688025799,
|
"lastModified": 1688025799,
|
||||||
@@ -272,11 +295,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1694529238,
|
"lastModified": 1701680307,
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -286,6 +309,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1629284811,
|
||||||
|
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
@@ -303,16 +341,16 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_3": {
|
"flake-utils_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1694529238,
|
"lastModified": 1701680307,
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -321,7 +359,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_4": {
|
"flake-utils_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1610051610,
|
||||||
|
"narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1638122382,
|
"lastModified": 1638122382,
|
||||||
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
||||||
@@ -360,16 +413,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1695108154,
|
"lastModified": 1702195709,
|
||||||
"narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=",
|
"narHash": "sha256-+zRjWkm5rKqQ57PuLZ3JF3xi3vPMiOJzItb1m/43Cq4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "07682fff75d41f18327a871088d20af2710d4744",
|
"rev": "6761b8188b860f374b457eddfdb05c82eef9752f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-23.05",
|
"ref": "release-23.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -380,11 +433,11 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698581311,
|
"lastModified": 1702210144,
|
||||||
"narHash": "sha256-27whmW7vBrNruotHJyMuXOWiDdqWyuBhntngpw5bktc=",
|
"narHash": "sha256-s0IJiLUxnf9PNl+lARwCBo5UzNgfNjTrlVwJG27VsLA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "lib-aggregate",
|
"repo": "lib-aggregate",
|
||||||
"rev": "0fa525dd0b4f45cabcd510ab83a4d1df3b30d56c",
|
"rev": "9237b96c80c556f28d13cfa8e3e6bc4d95e437fa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -409,6 +462,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"my-log": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703959746,
|
||||||
|
"narHash": "sha256-eLwYN2n7EPL6VgN05OGOjwx6WSEhGn6Xv5gw8mPuCKk=",
|
||||||
|
"path": "/home/me/work/log/new",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"path": "/home/me/work/log/new",
|
||||||
|
"type": "path"
|
||||||
|
}
|
||||||
|
},
|
||||||
"networkmanager": {
|
"networkmanager": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1700593965,
|
"lastModified": 1700593965,
|
||||||
@@ -436,10 +504,10 @@
|
|||||||
"evil-quick-diff": "evil-quick-diff",
|
"evil-quick-diff": "evil-quick-diff",
|
||||||
"explain-pause-mode": "explain-pause-mode",
|
"explain-pause-mode": "explain-pause-mode",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_3",
|
||||||
"format-all": "format-all",
|
"format-all": "format-all",
|
||||||
"nix-straight": "nix-straight",
|
"nix-straight": "nix-straight",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nose": "nose",
|
"nose": "nose",
|
||||||
"ob-racket": "ob-racket",
|
"ob-racket": "ob-racket",
|
||||||
"org": "org",
|
"org": "org",
|
||||||
@@ -453,11 +521,11 @@
|
|||||||
"ws-butler": "ws-butler"
|
"ws-butler": "ws-butler"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1697814738,
|
"lastModified": 1701264882,
|
||||||
"narHash": "sha256-mwQmykamvRuHmO6I2VTm8+TOIhhmgy2g5YrMjoCHawY=",
|
"narHash": "sha256-MBXR7x7Ua8qystlGr+lenwjQd7dsFNFpEFmtHhh10zM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-doom-emacs",
|
"repo": "nix-doom-emacs",
|
||||||
"rev": "c1c99cf41694440d76e31126dc394f52faeb691e",
|
"rev": "f7413022370f24bb53cb450bfb2803233510113e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -476,11 +544,11 @@
|
|||||||
"nmt": "nmt"
|
"nmt": "nmt"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1694984852,
|
"lastModified": 1666720474,
|
||||||
"narHash": "sha256-A1x55uLb2LT9evsTWYc1U9+iki1AmE5ROxOuCKPf3JE=",
|
"narHash": "sha256-iWojjDS1D19zpeZXbBdjWb9MiKmVVFQCqtJmtTXgPx8=",
|
||||||
"owner": "Gerschtli",
|
"owner": "Gerschtli",
|
||||||
"repo": "nix-formatter-pack",
|
"repo": "nix-formatter-pack",
|
||||||
"rev": "23795a4daf29ce784b3edc13b9776c7b445c453b",
|
"rev": "14876cc8fe94a3d329964ecb073b4c988c7b61f5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -496,11 +564,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698550809,
|
"lastModified": 1702291765,
|
||||||
"narHash": "sha256-Um8+Wi6EAH5dCgfgl7OqaVd4wFJn6FKLafcP5QPr/98=",
|
"narHash": "sha256-kfxavgLKPIZdYVPUPcoDZyr5lleymrqbr5G9PVfQ2NY=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "1f0981f5baeb78e3c89a8980ff1a39f06876fa8c",
|
"rev": "45d82e0a8b9dd6c5dd9da835ac0c072239af7785",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -555,15 +623,15 @@
|
|||||||
"nix-wsl": {
|
"nix-wsl": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_4",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1700096639,
|
"lastModified": 1702287306,
|
||||||
"narHash": "sha256-FVOTqjwjLX4El7n3jErrWWQ4gR5NVcL7B8cvGRGFQSo=",
|
"narHash": "sha256-vEb2DAao89M92LjufnRkIRxUsm8KHb94l786r923a7E=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "NixOS-WSL",
|
||||||
"rev": "83ce0dbe362b9b866414bbc31a2dc9f1d41be649",
|
"rev": "83c419a8c5db581e83cba3726760608e55d11e58",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -595,11 +663,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696058303,
|
"lastModified": 1701689616,
|
||||||
"narHash": "sha256-eNqKWpF5zG0SrgbbtljFOrRgFgRzCc4++TMFADBMLnc=",
|
"narHash": "sha256-ewnfgvRy73HoP5KnYmy1Rcr4m4yShvsb6TCCaKoW8pc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "150f38bd1e09e20987feacb1b0d5991357532fb5",
|
"rev": "246219bc21b943c6f6812bb7744218ba0df08600",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -610,11 +678,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1700392353,
|
"lastModified": 1702453208,
|
||||||
"narHash": "sha256-KARn8aVJu5fdW0jdJYoOQ1SPqWlNdz4l7r90NbArWSY=",
|
"narHash": "sha256-0wRi9SposfE2wHqjuKt8WO2izKB/ASDOV91URunIqgo=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "2b00bc76dc893cd996a3d76a2f059d657a5ef37a",
|
"rev": "7763c6fd1f299cb9361ff2abf755ed9619ef01d6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -625,11 +693,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698611440,
|
"lastModified": 1702312524,
|
||||||
"narHash": "sha256-jPjHjrerhYDy3q9+s5EAsuhyhuknNfowY6yt6pjn9pc=",
|
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0cbe9f69c234a7700596e943bfae7ef27a31b735",
|
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -673,11 +741,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698540503,
|
"lastModified": 1702169224,
|
||||||
"narHash": "sha256-YN6DJQc7SMe6ep9FhD2BGl92bo24NPNRWjADEJE4xeU=",
|
"narHash": "sha256-aOrQq0zzEMcaxXoiA7VWWJlwp7F50cOfTj6LkU59RQg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "ce2acb20a405bf6f910081c2adc988bbc8100e4c",
|
"rev": "2be0b7c27456d30195f65eafd029074f731f1978",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -686,6 +754,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1702312524,
|
||||||
|
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgsUnstable": {
|
"nixpkgsUnstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1638376152,
|
"lastModified": 1638376152,
|
||||||
@@ -703,6 +787,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1702830618,
|
||||||
|
"narHash": "sha256-lvhwIvRwhOLgzbRuYkqHy4M5cQHYs4ktL6/hyuBS6II=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "91a00709aebb3602f172a0bf47ba1ef013e34835",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1695806987,
|
"lastModified": 1695806987,
|
||||||
"narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
|
"narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
|
||||||
@@ -717,39 +817,53 @@
|
|||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1697851979,
|
|
||||||
"narHash": "sha256-lJ8k4qkkwdvi+t/Xc6Fn74kUuobpu9ynPGxNZR6OwoA=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "5550a85a087c04ddcace7f892b0bdc9d8bb080c8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-23.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1699191053,
|
"lastModified": 1701952659,
|
||||||
"narHash": "sha256-S/J3x3CiT09ywrdE17IueZz+BX/qBqMYTjJmOqg8WPY=",
|
"narHash": "sha256-TJv2srXt6fYPUjxgLAL0cy4nuf1OZD4KuA1TrCiQqg0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9b73e49eb3965eba8b4ffcd9b9a0e8d63bb6f7e2",
|
"rev": "b4372c4924d9182034066c823df76d6eaf1f4ec4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "release-23.05",
|
"ref": "nixos-23.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703957214,
|
||||||
|
"narHash": "sha256-VBiQAJaGnksf9na2rtOvxliKuK+Bn8LMyz2gzyNowc4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ab3d01706825b1291a77187f2756c8fac3da2ca9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "release-23.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1613434981,
|
||||||
|
"narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "82abb66345f583001009f1be36f81c4082098011",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1637841632,
|
"lastModified": 1637841632,
|
||||||
"narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=",
|
"narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=",
|
||||||
@@ -765,7 +879,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1638371214,
|
"lastModified": 1638371214,
|
||||||
"narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=",
|
"narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=",
|
||||||
@@ -800,11 +914,11 @@
|
|||||||
"nmd_2": {
|
"nmd_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1680213367,
|
"lastModified": 1666190571,
|
||||||
"narHash": "sha256-NbSXxpFAK5IMcsQTK0vSGy099HExx3SEagqW4Lpc+X8=",
|
"narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nmd",
|
"repo": "nmd",
|
||||||
"rev": "abb15317ebd17e5a0a7dd105e2ce52f2700185a8",
|
"rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -925,6 +1039,25 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"podman": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_5",
|
||||||
|
"nixpkgs": "nixpkgs_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1661906180,
|
||||||
|
"narHash": "sha256-x5+aOuzlMhlXoEPs2f/jAn9TG4oQ+sfCtdwn+3gDkHY=",
|
||||||
|
"owner": "ES-Nix",
|
||||||
|
"repo": "podman-rootless",
|
||||||
|
"rev": "7b45d94ce78c297dae6d0435f0b2e9dae2e719ce",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ES-Nix",
|
||||||
|
"repo": "podman-rootless",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"revealjs": {
|
"revealjs": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -944,15 +1077,15 @@
|
|||||||
"robotnix": {
|
"robotnix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"androidPkgs": "androidPkgs",
|
"androidPkgs": "androidPkgs",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_8",
|
||||||
"nixpkgsUnstable": "nixpkgsUnstable"
|
"nixpkgsUnstable": "nixpkgsUnstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698517646,
|
"lastModified": 1699510635,
|
||||||
"narHash": "sha256-ttKJDUE8wJ6XYfn06eU8Fb3p82IUvNUV2Hj9cgX3MUI=",
|
"narHash": "sha256-OpScLedUNJ6xyEyd5PeAMNKaoi8LMI7RT1lzXPp+UaY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "robotnix",
|
"repo": "robotnix",
|
||||||
"rev": "73d6b0b142e3f2844e6caaf820e8be3bd8cde2c6",
|
"rev": "f941a20537384418c22000f6e6487c92441e0a7f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -964,7 +1097,9 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"firefox": "firefox",
|
"firefox": "firefox",
|
||||||
|
"firefox-addons": "firefox-addons",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"my-log": "my-log",
|
||||||
"networkmanager": "networkmanager",
|
"networkmanager": "networkmanager",
|
||||||
"nix-doom-emacs": "nix-doom-emacs",
|
"nix-doom-emacs": "nix-doom-emacs",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
@@ -972,8 +1107,10 @@
|
|||||||
"nix-wsl": "nix-wsl",
|
"nix-wsl": "nix-wsl",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_2",
|
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_2",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
"podman": "podman",
|
||||||
"robotnix": "robotnix"
|
"robotnix": "robotnix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
147
flake.nix
147
flake.nix
@@ -2,16 +2,24 @@
|
|||||||
description = "Sebastian (c2vi)'s NixOS";
|
description = "Sebastian (c2vi)'s NixOS";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
# don't forget to also change the hash of the used nixpkgs in programs/bash.nix the export nip
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/release-23.11";
|
||||||
#nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
#nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
|
|
||||||
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
#old-nixpkgs.url = "github:NixOS/nixpkgs/release-22.11";
|
#old-nixpkgs.url = "github:NixOS/nixpkgs/release-22.11";
|
||||||
|
|
||||||
firefox.url = "github:nix-community/flake-firefox-nightly";
|
firefox.url = "github:nix-community/flake-firefox-nightly";
|
||||||
|
firefox-addons = {
|
||||||
|
# ref: https://github.com/Misterio77/nix-config/blob/main/flake.nix#L66
|
||||||
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-23.05";
|
url = "github:nix-community/home-manager/release-23.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -51,20 +59,27 @@
|
|||||||
|
|
||||||
nix-wsl.url = "github:nix-community/NixOS-WSL";
|
nix-wsl.url = "github:nix-community/NixOS-WSL";
|
||||||
|
|
||||||
|
my-log.url = "path:/home/me/work/log/new";
|
||||||
|
#my-log.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
podman.url = "github:ES-Nix/podman-rootless";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... }@inputs:
|
outputs = { self, nixpkgs, nixos-generators, ... }@inputs:
|
||||||
let
|
let
|
||||||
confDir = "/home/me/work/config";
|
confDir = "/home/me/work/config";
|
||||||
workDir = "/home/me/work";
|
workDir = "/home/me/work";
|
||||||
secretsDir = "/home/me/.mysecrets";
|
secretsDir = "/home/me/work/here/secrets";
|
||||||
persistentDir = "/home/me/work/app-data";
|
persistentDir = "/home/me/work/app-data";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs confDir workDir secretsDir persistentDir self;
|
inherit inputs confDir workDir secretsDir persistentDir self;
|
||||||
|
system = "x86_64-linux";
|
||||||
pkgs = import nixpkgs { system = "x86_64-linux"; config = {
|
pkgs = import nixpkgs { system = "x86_64-linux"; config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
permittedInsecurePackages = [
|
permittedInsecurePackages = [
|
||||||
"electron-24.8.6"
|
"electron-24.8.6"
|
||||||
|
"electron-25.9.0"
|
||||||
];
|
];
|
||||||
}; };
|
}; };
|
||||||
};
|
};
|
||||||
@@ -89,10 +104,47 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"gui" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit specialArgs;
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
nixos-generators.nixosModules.all-formats
|
||||||
|
({ ... }: {
|
||||||
|
boot.kernelParams = [ "console=tty0" ];
|
||||||
|
boot.loader.grub.device = "nodev";
|
||||||
|
virtualisation.libvirtd.enable = true;
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
label = "nixos";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
#"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-x86_64.nix"
|
||||||
|
./common/all.nix
|
||||||
|
./common/nixos.nix
|
||||||
|
./common/nixos-graphical.nix
|
||||||
|
./common/building.nix
|
||||||
|
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
./users/me/gui.nix
|
||||||
|
./users/root/default.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"fusu" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit specialArgs;
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
./hosts/fusu.nix
|
||||||
|
./hardware/fusu.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# my server at home
|
# my server at home
|
||||||
"rpi" = nixpkgs.lib.nixosSystem {
|
"rpi" = nixpkgs.lib.nixosSystem rec {
|
||||||
#inherit specialArgs;
|
#inherit specialArgs;
|
||||||
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self; };
|
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; };
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/rpi.nix
|
./hosts/rpi.nix
|
||||||
@@ -100,11 +152,12 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# my raspberry to try out stuff with
|
# my raspberry to try out stuff with
|
||||||
"lush" = nixpkgs.lib.nixosSystem {
|
"lush" = nixpkgs.lib.nixosSystem rec {
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self; };
|
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; };
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/lush.nix
|
./hosts/lush.nix
|
||||||
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -135,15 +188,37 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"the-most-default" = nixpkgs.lib.nixosSystem {
|
"the-most-default" = nixpkgs.lib.nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self; };
|
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; };
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/the-most-default.nix
|
#./hosts/the-most-default.nix
|
||||||
|
./users/root/default.nix
|
||||||
|
./users/me/headless.nix
|
||||||
|
({ ... }: {
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/6518e61e-7120-48ef-81a3-5eae0f67297e";
|
||||||
|
fsType = "btrfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
boot.loader.grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "nodev";
|
||||||
|
efiSupport = true;
|
||||||
|
extraConfig = ''
|
||||||
|
set timeout=2
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
#./users/me/headless.nix
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
./common/all.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"test" = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self; };
|
"test" = nixpkgs.lib.nixosSystem rec {
|
||||||
|
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; };
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
#inherit specialArgs;
|
#inherit specialArgs;
|
||||||
modules = [
|
modules = [
|
||||||
@@ -195,33 +270,23 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
test = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
|
|
||||||
modules = [ ./hosts/nix-on-phone.nix ];
|
|
||||||
|
|
||||||
# list of extra special args for Nix-on-Droid modules
|
|
||||||
extraSpecialArgs = {
|
|
||||||
# rootPath = ./.;
|
|
||||||
};
|
|
||||||
|
|
||||||
# set nixpkgs instance, it is recommended to apply `nix-on-droid.overlays.default`
|
|
||||||
pkgs = import nixpkgs {
|
|
||||||
system = "aarch64-linux";
|
|
||||||
|
|
||||||
overlays = [
|
|
||||||
inputs.nix-on-droid.overlays.default
|
|
||||||
# add other overlays
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# set path to home-manager flake
|
|
||||||
home-manager-path = inputs.home-manager.outPath;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
homeModules = {
|
||||||
|
#me-headless = import ./users/me/headless.nix;
|
||||||
|
me-headless = import ./users/common/home.nix;
|
||||||
|
};
|
||||||
|
|
||||||
packages.x86_64-linux = {
|
packages.x86_64-linux = {
|
||||||
#test = self.nixosConfigurations.test.config.system.build.sdImage;
|
hi = self.nixosConfigurations.the-most-default.config.system.build.toplevel;
|
||||||
testing = nixpkgs.legacyPackages.x86_64-linux;
|
#testing = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
testing = (nixpkgs.legacyPackages.x86_64-linux.writeShellApplication {
|
||||||
|
name = "log";
|
||||||
|
#runtimeInputs = [ inputs.my-log.packages.${system}.pythonForLog ];
|
||||||
|
#text = "cd /home/me/work/log/new; nix develop -c 'python ${workDir}/log/new/client.py'";
|
||||||
|
text = ''${inputs.my-log.packages.x86_64-linux.pythonForLog}/bin/python ${workDir}/log/new/client.py "$@"'';
|
||||||
|
});
|
||||||
|
|
||||||
test = nixpkgs.legacyPackages.x86_64-linux.firefox-devedition-unwrapped.overrideAttrs (old: {
|
test = nixpkgs.legacyPackages.x86_64-linux.firefox-devedition-unwrapped.overrideAttrs (old: {
|
||||||
NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" "-fPIC" ];
|
NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" "-fPIC" ];
|
||||||
#hi = builtins.trace ("hello world: " + old.passthru.unwrapped.name) 4;
|
#hi = builtins.trace ("hello world: " + old.passthru.unwrapped.name) 4;
|
||||||
@@ -235,19 +300,19 @@
|
|||||||
#});
|
#});
|
||||||
|
|
||||||
cbm = nixpkgs.legacyPackages.x86_64-linux.callPackage ./mods/cbm.nix { };
|
cbm = nixpkgs.legacyPackages.x86_64-linux.callPackage ./mods/cbm.nix { };
|
||||||
supabase = nixpkgs.legacyPackages.x86_64-linux.callPackage ./mods/supabase.nix { };
|
|
||||||
#default... TODO
|
|
||||||
run-vm = specialArgs.pkgs.writeScriptBin "run-vm" ''
|
run-vm = specialArgs.pkgs.writeScriptBin "run-vm" ''
|
||||||
${self.nixosConfigurations.hpm.config.system.build.vm}/bin/run-hpm-vm -m 4G -cpu host -smp 4
|
${self.nixosConfigurations.hpm.config.system.build.vm}/bin/run-hpm-vm -m 4G -cpu host -smp 4
|
||||||
'';
|
'';
|
||||||
acern = self.nixosConfigurations.acern.config.system.build.tarballBuilder;
|
|
||||||
#luna = (self.nixosConfigurations.luna.extendModules {
|
#luna = (self.nixosConfigurations.luna.extendModules {
|
||||||
#modules = [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel-no-zfs-installer.nix" ];
|
#modules = [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel-no-zfs-installer.nix" ];
|
||||||
#}).config.system.build.sdImage;
|
#}).config.system.build.sdImage;
|
||||||
|
|
||||||
|
acern = self.nixosConfigurations.acern.config.system.build.tarballBuilder;
|
||||||
lush = self.nixosConfigurations.lush.config.system.build.sdImage;
|
lush = self.nixosConfigurations.lush.config.system.build.sdImage;
|
||||||
rpi = self.nixosConfigurations.rpi.config.system.build.sdImage;
|
rpi = self.nixosConfigurations.rpi.config.system.build.sdImage;
|
||||||
prootTermux = inputs.nix-on-droid.outputs.packages.x86_64-linux.prootTermux;
|
|
||||||
|
|
||||||
|
|
||||||
|
prootTermux = inputs.nix-on-droid.outputs.packages.x86_64-linux.prootTermux;
|
||||||
docker = let pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs; in pkgs.dockerTools.buildImage {
|
docker = let pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs; in pkgs.dockerTools.buildImage {
|
||||||
name = "hello";
|
name = "hello";
|
||||||
tag = "0.1.0";
|
tag = "0.1.0";
|
||||||
@@ -264,7 +329,7 @@
|
|||||||
|
|
||||||
wsl = {
|
wsl = {
|
||||||
type = "app";
|
type = "app";
|
||||||
program = "${self.nixosConfigurations.wsl.config.system.build.tarballBuilder}/bin/nixos-wsl-tarball-builder";
|
program = "${self.nixosConfigurations.acern.config.system.build.tarballBuilder}/bin/nixos-wsl-tarball-builder";
|
||||||
};
|
};
|
||||||
default = {
|
default = {
|
||||||
type = "app";
|
type = "app";
|
||||||
|
|||||||
37
hardware/fusu.nix
Executable file
37
hardware/fusu.nix
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/old" =
|
||||||
|
{ device = "/dev/disk/by-uuid/adbb1f76-7661-4c36-a603-ff510112114d";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-label/fusu-root";
|
||||||
|
fsType = "btrfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
@@ -4,21 +4,57 @@
|
|||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
# Setup keyfile
|
# Setup keyfile
|
||||||
boot.initrd.secrets = {
|
#boot.initrd.secrets = {
|
||||||
"/crypto_keyfile.bin" = null;
|
#"/crypto_keyfile.bin" = null;
|
||||||
};
|
#};
|
||||||
|
|
||||||
fileSystems."/home/me/work" = {
|
swapDevices = [ ];
|
||||||
#label = "work";
|
|
||||||
device = "/dev/disk/by-uuid/fd3c6393-b6fd-4065-baf9-5690eb6ebbed";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
fsType = "btrfs";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
neededForBoot = false;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
};
|
|
||||||
|
######################## filesystems #########################
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
label = "main";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd" "subvol=root" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/home" = {
|
||||||
|
label = "main";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd" "subvol=home" ];
|
||||||
|
};
|
||||||
|
"/nix" = {
|
||||||
|
label = "main";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd" "noatime" "subvol=nix" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/home/me/work" = {
|
||||||
|
fsType = "btrfs";
|
||||||
|
neededForBoot = false;
|
||||||
|
label = "main";
|
||||||
|
options = [ "compress=zstd" "noatime" "subvol=work" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/2588-2509";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##################### bootloader #################################
|
||||||
|
|
||||||
# Use the GRUB 2 boot loader.
|
# Use the GRUB 2 boot loader.
|
||||||
boot.loader.grub = {
|
boot.loader.grub = {
|
||||||
@@ -33,10 +69,12 @@
|
|||||||
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
##################### misc #################################
|
||||||
|
|
||||||
boot.initrd.luks.devices = {
|
boot.initrd.luks.devices = {
|
||||||
root = {
|
root = {
|
||||||
#name = "root";
|
#name = "root";
|
||||||
device = "/dev/disk/by-uuid/142d2d21-2998-4eb7-9853-ab6554ba061f";
|
device = "/dev/disk/by-label/crypt";
|
||||||
preLVM = true;
|
preLVM = true;
|
||||||
allowDiscards = true;
|
allowDiscards = true;
|
||||||
};
|
};
|
||||||
@@ -47,27 +85,4 @@
|
|||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/d4ca1ea3-4b73-45e8-8575-560ade53cade";
|
|
||||||
fsType = "btrfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/2588-2509";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
settings.KbdInteractiveAuthentication = false;
|
settings.KbdInteractiveAuthentication = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.bash.loginShellInit = "nixos-wsl-welcome";
|
programs.bash.loginShellInit = "";
|
||||||
|
|
||||||
# to build rpi images
|
# to build rpi images
|
||||||
boot.binfmt.emulatedSystems = [
|
boot.binfmt.emulatedSystems = [
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
######################### networking #####################################
|
######################### networking #####################################
|
||||||
|
|
||||||
|
networking.hostName = "acern";
|
||||||
networking.firewall.allowPing = true;
|
networking.firewall.allowPing = true;
|
||||||
networking.firewall.enable = true;
|
networking.firewall.enable = true;
|
||||||
networking.firewall.allowedUDPPorts = [
|
networking.firewall.allowedUDPPorts = [
|
||||||
|
|||||||
107
hosts/fusu.nix
Normal file
107
hosts/fusu.nix
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
{ inputs, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../common/all.nix
|
||||||
|
../common/nixos.nix
|
||||||
|
../common/building.nix
|
||||||
|
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
../users/me/headless.nix
|
||||||
|
../users/root/default.nix
|
||||||
|
../users/server/headles.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# mac address for wakeonlan: 00:19:99:fd:28:23
|
||||||
|
|
||||||
|
# allow acern to ssh into server
|
||||||
|
users.users.server.openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTV1VoNAjMha5IP+qb8XABDo02pW3iN0yPBIbSqZA27 me@acern"
|
||||||
|
];
|
||||||
|
|
||||||
|
# allow server user to shutdown fusu
|
||||||
|
security.sudo.extraRules = [
|
||||||
|
{
|
||||||
|
users = [ "server" ];
|
||||||
|
commands = [ { command = "/run/current-system/sw/bin/shutdown"; options = [ "SETENV" "NOPASSWD" ]; } ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Use the GRUB 2 boot loader.
|
||||||
|
boot.loader.grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "/dev/sda";
|
||||||
|
efiSupport = false;
|
||||||
|
extraConfig = ''
|
||||||
|
set timeout=2
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
#fileSystems."/boot" = {
|
||||||
|
# device = "/dev/disk/by-label/fusu-boot";
|
||||||
|
# fsType = "fat32";
|
||||||
|
#};
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
# require public key authentication for better security
|
||||||
|
settings.PasswordAuthentication = false;
|
||||||
|
settings.KbdInteractiveAuthentication = false;
|
||||||
|
settings.PermitRootLogin = "yes";
|
||||||
|
|
||||||
|
#settings.X11UseLocalhost = "no";
|
||||||
|
settings.X11Forwarding = true;
|
||||||
|
#settings.AddressFamily = "inet";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowPing = true;
|
||||||
|
networking.firewall.enable = true;
|
||||||
|
|
||||||
|
services.samba.openFirewall = true;
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
8888 # for general usage
|
||||||
|
9999 # for general usage
|
||||||
|
8080 # for mitm proxy
|
||||||
|
|
||||||
|
25565 # mc server
|
||||||
|
25566 # mc server
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||||
|
|
||||||
|
# to build rpi images
|
||||||
|
boot.binfmt.emulatedSystems = [
|
||||||
|
"aarch64-linux"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ntfs3g
|
||||||
|
];
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
trusted-public-keys = [
|
||||||
|
"sebastian@c2vi.dev:0tIXGRJMLaI9H1ZPdU4gh+BikUuBVHtk+e1B5HggdZo="
|
||||||
|
];
|
||||||
|
trusted-users = [ "me" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
#usePredictableInterfaceNames = false;
|
||||||
|
defaultGateway = {
|
||||||
|
address = "192.168.1.1";
|
||||||
|
interface = "eth0";
|
||||||
|
};
|
||||||
|
hostName = "fusu";
|
||||||
|
nameservers = [ "1.1.1.1" "8.8.8.8" ];
|
||||||
|
interfaces = {
|
||||||
|
"enp0s25" = {
|
||||||
|
name = "eth0";
|
||||||
|
ipv4.addresses = [
|
||||||
|
{ address = "192.168.1.3"; prefixLength = 24;}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
7
hosts/hpm.nix
Normal file → Executable file
7
hosts/hpm.nix
Normal file → Executable file
@@ -53,5 +53,12 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.logind = {
|
||||||
|
lidSwitch = "ignore";
|
||||||
|
lidSwitchExternalPower = "ignore";
|
||||||
|
lidSwitchDocked = "ignore";
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
24
hosts/lush.nix
Normal file → Executable file
24
hosts/lush.nix
Normal file → Executable file
@@ -1,4 +1,4 @@
|
|||||||
{ lib, pkgs, inputs, secretsDir, ... }:
|
{ lib, pkgs, inputs, secretsDir, workDir, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
#system.stateVersion = "23.05"; # Did you read the comment?
|
#system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
@@ -11,7 +11,15 @@
|
|||||||
../common/all.nix
|
../common/all.nix
|
||||||
|
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
../users/me/headless.nix
|
#../users/me/headless.nix
|
||||||
|
|
||||||
|
##### project modules
|
||||||
|
|
||||||
|
# the module for the zwave setup
|
||||||
|
#"${workDir}/htl/labor/hackl/zwave.nix"
|
||||||
|
|
||||||
|
# labor nas project
|
||||||
|
"${workDir}/htl/labor/nas/nixos/lush-module.nix"
|
||||||
];
|
];
|
||||||
|
|
||||||
# home-manager.users.me = import ../users/me/home-headless.nix;
|
# home-manager.users.me = import ../users/me/home-headless.nix;
|
||||||
@@ -36,13 +44,19 @@
|
|||||||
];
|
];
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
services.blueman.enable = true;
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
# This causes an overlay which causes a lot of rebuilding
|
# This causes an overlay which causes a lot of rebuilding
|
||||||
environment.noXlibs = lib.mkForce false;
|
environment.noXlibs = lib.mkForce false;
|
||||||
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ vim git ];
|
environment.systemPackages = with pkgs; [
|
||||||
|
vim
|
||||||
|
bluez
|
||||||
|
git
|
||||||
|
];
|
||||||
|
|
||||||
# "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" creates a
|
# "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" creates a
|
||||||
# disk with this label on first boot. Therefore, we need to keep it. It is the
|
# disk with this label on first boot. Therefore, we need to keep it. It is the
|
||||||
@@ -124,7 +138,7 @@
|
|||||||
id = "pt";
|
id = "pt";
|
||||||
uuid = "f028117e-9eef-47c1-8483-574f7ee798a4";
|
uuid = "f028117e-9eef-47c1-8483-574f7ee798a4";
|
||||||
type = "bluetooth";
|
type = "bluetooth";
|
||||||
autoconnect = "false";
|
autoconnect = "true";
|
||||||
};
|
};
|
||||||
|
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
@@ -133,7 +147,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ipv4 = {
|
ipv4 = {
|
||||||
address1 = "192.168.20.21/24";
|
address1 = "192.168.44.22/24";
|
||||||
method = "auto";
|
method = "auto";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -10,6 +10,9 @@
|
|||||||
# ??????????? TODO
|
# ??????????? TODO
|
||||||
# fileSystems."/".options = [ "noatime" "nodiratime" "discard" ];
|
# fileSystems."/".options = [ "noatime" "nodiratime" "discard" ];
|
||||||
|
|
||||||
|
services.nscd.enable = lib.mkForce false;
|
||||||
|
system.nssModules = lib.mkForce [];
|
||||||
|
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../common/all.nix
|
../common/all.nix
|
||||||
@@ -23,11 +26,22 @@
|
|||||||
../users/root/default.nix
|
../users/root/default.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
cifs-utils
|
cifs-utils
|
||||||
ntfs3g
|
ntfs3g
|
||||||
|
dhcpcd
|
||||||
|
looking-glass-client
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# enable ntp
|
||||||
|
#services.ntp.enable = true;
|
||||||
|
# if i hibernate and ren unhibernate in the school network ... the time will be off, because 0.nixos.pool.ntp.org can't be reached
|
||||||
|
services.timesyncd.enable = true;
|
||||||
|
|
||||||
################################### optimisations ####################################
|
################################### optimisations ####################################
|
||||||
#boot.kernelPackages = pkgs.linuxPackages; # .overrideAttrs (old: {
|
#boot.kernelPackages = pkgs.linuxPackages; # .overrideAttrs (old: {
|
||||||
#NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" ];
|
#NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" ];
|
||||||
@@ -37,15 +51,16 @@
|
|||||||
NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" ];
|
NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" ];
|
||||||
})));
|
})));
|
||||||
*/
|
*/
|
||||||
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_6_1.override {
|
#boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_6_1.override {
|
||||||
argsOverride = rec {
|
#argsOverride = rec {
|
||||||
NIX_CFLAGS_COMPILE = [ "-O3" "-march=native" ];
|
#NIX_CFLAGS_COMPILE = [ "-O3" "-march=native" ];
|
||||||
};
|
#};
|
||||||
});
|
#});
|
||||||
#*/
|
#*/
|
||||||
#(old: {
|
#(old: {
|
||||||
#}));
|
#}));
|
||||||
|
|
||||||
|
/*
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
optimizeWithFlags = pkg: flags:
|
optimizeWithFlags = pkg: flags:
|
||||||
@@ -59,6 +74,7 @@
|
|||||||
firefox = final.optimizeForThisHost prev.firefox;
|
firefox = final.optimizeForThisHost prev.firefox;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
hardware.bluetooth.settings = {
|
hardware.bluetooth.settings = {
|
||||||
@@ -77,6 +93,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
# some bind mounts
|
# some bind mounts
|
||||||
|
/*
|
||||||
fileSystems."${workDir}/priv-share/things" = {
|
fileSystems."${workDir}/priv-share/things" = {
|
||||||
device = "${workDir}/things";
|
device = "${workDir}/things";
|
||||||
options = [ "bind" ];
|
options = [ "bind" ];
|
||||||
@@ -89,6 +106,7 @@
|
|||||||
device = "${workDir}/diplomarbeit";
|
device = "${workDir}/diplomarbeit";
|
||||||
options = [ "bind" ];
|
options = [ "bind" ];
|
||||||
};
|
};
|
||||||
|
# */
|
||||||
|
|
||||||
################################ my youtube blocking service #############################
|
################################ my youtube blocking service #############################
|
||||||
environment.etc."host.conf" = {
|
environment.etc."host.conf" = {
|
||||||
@@ -109,8 +127,19 @@
|
|||||||
if [ -f "/etc/hosts-youtube-block" ];
|
if [ -f "/etc/hosts-youtube-block" ];
|
||||||
then
|
then
|
||||||
timeout=$(cat /etc/hosts-youtube-block)
|
timeout=$(cat /etc/hosts-youtube-block)
|
||||||
|
|
||||||
|
# check our daily limit
|
||||||
|
if [ -f "/etc/hosts-youtube-daily" ];
|
||||||
|
then
|
||||||
|
echo hi
|
||||||
|
#today=$(cat /etc/hosts-youtube-daily)
|
||||||
|
|
||||||
|
# set timeout to 0 when dayli limit is over 90m
|
||||||
|
# and also write
|
||||||
|
fi
|
||||||
|
|
||||||
echo "read timeout $timeout"
|
echo "read timeout $timeout"
|
||||||
if [[ "$timeout" == "1" ]] || [[ "$timeout" == "1\n" ]]
|
if [[ "$timeout" == "1" ]] || [[ "$timeout" == "1\n" ]] || [[ "$timeout" == "-1" ]] || [[ "$timeout" == "0" ]]
|
||||||
then
|
then
|
||||||
rm -rf /etc/hosts-youtube-block
|
rm -rf /etc/hosts-youtube-block
|
||||||
else
|
else
|
||||||
@@ -153,9 +182,15 @@
|
|||||||
services.avahi.enable = true;
|
services.avahi.enable = true;
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
#networking.networkmanager.extraConfig = ''
|
||||||
|
#[main]
|
||||||
|
#dhcp=dhcpcd
|
||||||
|
#'';
|
||||||
|
#networking.useDHCP = lib.mkForce true;
|
||||||
|
|
||||||
networking.firewall.allowPing = true;
|
networking.firewall.allowPing = true;
|
||||||
networking.firewall.enable = true;
|
networking.firewall.enable = true;
|
||||||
|
|
||||||
services.samba.openFirewall = true;
|
services.samba.openFirewall = true;
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
@@ -215,6 +250,7 @@
|
|||||||
};
|
};
|
||||||
wifi-security = {
|
wifi-security = {
|
||||||
key-mgmt = "wpa-eap";
|
key-mgmt = "wpa-eap";
|
||||||
|
auth-alg = "open";
|
||||||
};
|
};
|
||||||
"802-1x" = {
|
"802-1x" = {
|
||||||
eap = "peap";
|
eap = "peap";
|
||||||
@@ -288,6 +324,24 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dhcp = {
|
||||||
|
connection = {
|
||||||
|
id = "dhcp";
|
||||||
|
uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
|
||||||
|
type = "ethernet";
|
||||||
|
autoconnect = "false";
|
||||||
|
interface-name = "enp1s0";
|
||||||
|
};
|
||||||
|
|
||||||
|
ethernet = {
|
||||||
|
mac-address = "F4:39:09:4A:DF:0E";
|
||||||
|
};
|
||||||
|
|
||||||
|
ipv4 = {
|
||||||
|
method = "auto";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
me = {
|
me = {
|
||||||
connection = {
|
connection = {
|
||||||
@@ -309,6 +363,7 @@
|
|||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
networking.wireguard.interfaces = {
|
networking.wireguard.interfaces = {
|
||||||
me1 = {
|
me1 = {
|
||||||
ips = [ "10.1.1.11/24" ];
|
ips = [ "10.1.1.11/24" ];
|
||||||
@@ -319,6 +374,7 @@
|
|||||||
peers = import ../common/wg-peers.nix { inherit secretsDir; };
|
peers = import ../common/wg-peers.nix { inherit secretsDir; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -363,19 +419,34 @@
|
|||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
virtualisation.podman.enable = true;
|
virtualisation.podman.enable = true;
|
||||||
|
|
||||||
system.activationScripts.setupLibvirt = lib.stringAfter [ "var" ] ''
|
virtualisation.kvmgt.enable = true;
|
||||||
mkdir -p /var/lib/libvirt/storage
|
boot.extraModprobeConfig = "options i915 enable_guc=2";
|
||||||
ln -nsf ${workDir}/vm/libvirt/my-image-pool.xml /var/lib/libvirt/storage/my-image-pool.xml
|
boot.kernelParams = [ "intel_iommu=on" ];
|
||||||
rm -rf /var/lib/libvirt/qemu/networks
|
|
||||||
ls ${workDir}/vm/qemu | while read path
|
|
||||||
do
|
|
||||||
ln -nsf ${workDir}/vm/qemu/$path /var/lib/libvirt/qemu/$path
|
|
||||||
done
|
|
||||||
|
|
||||||
|
virtualisation.kvmgt.vgpus = {
|
||||||
|
"i915-GVTg_V5_8" = {
|
||||||
|
uuid = [ "1382e8c5-b033-481b-99b8-e553ef6a0056" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# /*
|
||||||
|
system.activationScripts.setupLibvirt = lib.stringAfter [ "var" ] ''
|
||||||
|
mkdir -p /var/lib/libvirt/storage
|
||||||
|
ln -nsf ${workDir}/vm/libvirt/my-image-pool.xml /var/lib/libvirt/storage/my-image-pool.xml
|
||||||
|
rm -rf /var/lib/libvirt/qemu/networks
|
||||||
|
ls ${workDir}/vm/qemu | while read path
|
||||||
|
do
|
||||||
|
ln -nsf ${workDir}/vm/qemu/$path /var/lib/libvirt/qemu/$path
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
# */
|
||||||
|
system.activationScripts.makeBinBash = lib.stringAfter [ "var" ] ''
|
||||||
# there is no /bin/bash
|
# there is no /bin/bash
|
||||||
# https://discourse.nixos.org/t/add-bin-bash-to-avoid-unnecessary-pain/5673
|
# https://discourse.nixos.org/t/add-bin-bash-to-avoid-unnecessary-pain/5673
|
||||||
ln -nsf /run/current-system/sw/bin/bash /bin/bash
|
ln -nsf /run/current-system/sw/bin/bash /bin/bash
|
||||||
'';
|
'';
|
||||||
|
# */
|
||||||
|
|
||||||
|
|
||||||
############################## swap and hibernate ###################################
|
############################## swap and hibernate ###################################
|
||||||
|
|||||||
0
hosts/nix-on-phone.nix
Normal file → Executable file
0
hosts/nix-on-phone.nix
Normal file → Executable file
0
hosts/phone/default.nix
Normal file → Executable file
0
hosts/phone/default.nix
Normal file → Executable file
0
hosts/phone/nix-on-droid.nix
Normal file → Executable file
0
hosts/phone/nix-on-droid.nix
Normal file → Executable file
0
hosts/phone/stuff.md
Normal file → Executable file
0
hosts/phone/stuff.md
Normal file → Executable file
0
hosts/privision-main.nix
Normal file → Executable file
0
hosts/privision-main.nix
Normal file → Executable file
70
hosts/rpi.md
70
hosts/rpi.md
@@ -1,70 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
# get pi to boot from usb-source
|
|
||||||
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
|
|
||||||
https://www.elektronik-kompendium.de/sites/raspberry-pi/2404241.htm
|
|
||||||
|
|
||||||
# setup
|
|
||||||
## set static ip (192.168.1.2)
|
|
||||||
used /etc/network/interfaces (seems to be debian only)
|
|
||||||
|
|
||||||
|
|
||||||
## enable ssh (touch ssh file in the boot partition)
|
|
||||||
|
|
||||||
## set root pwd (copy hash from local /etc/shadow)
|
|
||||||
|
|
||||||
CMD: apt update
|
|
||||||
CMD: apt install nodejs npm
|
|
||||||
CMD: npm i -g @bitwarden/cli
|
|
||||||
|
|
||||||
## set hostname
|
|
||||||
|
|
||||||
## setup bcache
|
|
||||||
- if "sudo make-bcache -C /dev/sda3 -B /dev/md0" then no need for registering (i think)
|
|
||||||
PKG: bcache-tools git build-essential uuid-dev mdadm
|
|
||||||
CMD: sudo make-bcache -C /dev/sda3
|
|
||||||
CMD: sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
|
|
||||||
CMD: sudo make-bcache -B /dev/md0
|
|
||||||
|
|
||||||
## other bcache things
|
|
||||||
- you can echo 1 > /sys/fs/bcache/<UUID>/unregister
|
|
||||||
- but there also is: echo 1 > /sys/block/bcache0/bcache/stop
|
|
||||||
- if seccond is not done, volumes used by this bcache device will show as "<dev> is apparently in use by the system; will not make a filesystem here!", when mkfs.ext5 <dev>
|
|
||||||
|
|
||||||
## mdadm things
|
|
||||||
- do a check: https://www.thomas-krenn.com/de/wiki/Mdadm_checkarray
|
|
||||||
|
|
||||||
## add swap file maybe
|
|
||||||
CMD: sudo vim /etc/dphys-swapfile
|
|
||||||
CMD: sudo dphys-swapfile setup
|
|
||||||
CMD: sudo dphys-swapfile swapon
|
|
||||||
|
|
||||||
# things
|
|
||||||
- mdadm
|
|
||||||
- bcache
|
|
||||||
- mount /home/files/storage
|
|
||||||
- so that other users can't read it
|
|
||||||
|
|
||||||
- podman containers
|
|
||||||
|
|
||||||
- me-net (wireguard)
|
|
||||||
|
|
||||||
- rclone mount onedrive backups
|
|
||||||
- borgmatic
|
|
||||||
|
|
||||||
## things done
|
|
||||||
- smb shares
|
|
||||||
- swap
|
|
||||||
- users
|
|
||||||
admin - sudo without password and access to bitwarden
|
|
||||||
files - for managing files (old: dateimanager)
|
|
||||||
server - for deployed servers (podman)
|
|
||||||
mamafiles - for the mamafiles share
|
|
||||||
- ssh acces
|
|
||||||
- ssh config: PermitRootAccess and PasswordAuthentication
|
|
||||||
- dyndns
|
|
||||||
- wstunnel for wireguard
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
184
hosts/rpi.nix
184
hosts/rpi.nix
@@ -1,4 +1,4 @@
|
|||||||
{ lib, pkgs, inputs, secretsDir, ... }:
|
{ lib, pkgs, inputs, secretsDir, system, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
|
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
../common/all.nix
|
../common/all.nix
|
||||||
../common/nixos-headless.nix
|
../common/nixos-headless.nix
|
||||||
|
../common/nixos.nix
|
||||||
|
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
../users/me/headless.nix
|
../users/me/headless.nix
|
||||||
@@ -15,8 +16,6 @@
|
|||||||
../users/files/headless.nix
|
../users/files/headless.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
system.stateVersion = "23.05";
|
|
||||||
|
|
||||||
# to cross compile
|
# to cross compile
|
||||||
#nixpkgs.hostPlatform.system = "aarch64-linux";
|
#nixpkgs.hostPlatform.system = "aarch64-linux";
|
||||||
#nixpkgs.buildPlatform.system = "x86_64-linux";
|
#nixpkgs.buildPlatform.system = "x86_64-linux";
|
||||||
@@ -31,6 +30,8 @@
|
|||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
bcache-tools
|
bcache-tools
|
||||||
|
su
|
||||||
|
fuse3
|
||||||
];
|
];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
@@ -38,6 +39,16 @@
|
|||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/home/files/storage" =
|
||||||
|
{ device = "/dev/bcache0p1";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/svn" = {
|
||||||
|
device = "/home/files/storage/files/stuff/svn";
|
||||||
|
options = [ "bind" ];
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [ {
|
swapDevices = [ {
|
||||||
device = "/swapfile";
|
device = "/swapfile";
|
||||||
size = 10*1024;
|
size = 10*1024;
|
||||||
@@ -98,7 +109,7 @@
|
|||||||
uuid = "a02273d9-ad12-395e-8372-f61129635b6f";
|
uuid = "a02273d9-ad12-395e-8372-f61129635b6f";
|
||||||
type = "ethernet";
|
type = "ethernet";
|
||||||
autoconnect-priority = "-999";
|
autoconnect-priority = "-999";
|
||||||
interface-name = "eth0";
|
interface-name = "end0";
|
||||||
};
|
};
|
||||||
ipv4 = {
|
ipv4 = {
|
||||||
address1 = "192.168.1.2/24,192.168.1.1";
|
address1 = "192.168.1.2/24,192.168.1.1";
|
||||||
@@ -107,6 +118,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
me = {
|
me = {
|
||||||
connection = {
|
connection = {
|
||||||
id = "me";
|
id = "me";
|
||||||
@@ -124,6 +136,7 @@
|
|||||||
method = "manual";
|
method = "manual";
|
||||||
};
|
};
|
||||||
} // (import ../common/wg-peers.nix { inherit secretsDir; }) ;
|
} // (import ../common/wg-peers.nix { inherit secretsDir; }) ;
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
######################################### wstunnel #######################################
|
######################################### wstunnel #######################################
|
||||||
@@ -155,13 +168,14 @@
|
|||||||
ip=$(curl my.ip.fi)
|
ip=$(curl my.ip.fi)
|
||||||
curl "http://dynv6.com/api/update?hostname=${builtins.readFile "${secretsDir}/dns-name-two"}&ipv4=$ip&token=${builtins.readFile "${secretsDir}/dns-name-two-token"}"
|
curl "http://dynv6.com/api/update?hostname=${builtins.readFile "${secretsDir}/dns-name-two"}&ipv4=$ip&token=${builtins.readFile "${secretsDir}/dns-name-two-token"}"
|
||||||
curl "https://dynamicdns.park-your-domain.com/update?host=@&domain=${builtins.readFile "${secretsDir}/dns-name"}&password=${builtins.readFile "${secretsDir}/dns-name-token"}&ip=$ip"
|
curl "https://dynamicdns.park-your-domain.com/update?host=@&domain=${builtins.readFile "${secretsDir}/dns-name"}&password=${builtins.readFile "${secretsDir}/dns-name-token"}&ip=$ip"
|
||||||
|
|
||||||
# https://www.namecheap.com/support/knowledgebase/article.aspx/29/11/how-to-dynamically-update-the-hosts-ip-with-an-https-request/
|
# https://www.namecheap.com/support/knowledgebase/article.aspx/29/11/how-to-dynamically-update-the-hosts-ip-with-an-https-request/
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
description = "block Youtube";
|
description = "dyndns ip updates";
|
||||||
unitConfig = {
|
unitConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
};
|
};
|
||||||
@@ -249,4 +263,164 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
############################## files backup ##################################
|
||||||
|
# needs that
|
||||||
|
programs.fuse.userAllowOther = true;
|
||||||
|
systemd.services.rclone-mount-backup = {
|
||||||
|
enable = true;
|
||||||
|
description = "Mount rclone backup folder";
|
||||||
|
unitConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.bash}/bin/bash -c 'export PATH=/run/wrappers/bin:$PATH; id; ${pkgs.rclone}/bin/rclone mount --allow-non-empty --allow-other --vfs-cache-max-size 2G --vfs-cache-mode full backup: /home/files/backup'";
|
||||||
|
User = "files";
|
||||||
|
Group = "files";
|
||||||
|
};
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.borgbackup.jobs.files = {
|
||||||
|
#user = "files";
|
||||||
|
extraCreateArgs = "--verbose --list --filter=AMECbchfsx --stats --checkpoint-interval 600";
|
||||||
|
extraArgs = "--progress";
|
||||||
|
paths = "/home/files/storage";
|
||||||
|
doInit = false;
|
||||||
|
repo = "/home/files/backup/dateien-backup-borg-repo";
|
||||||
|
compression = "lzma,9";
|
||||||
|
startAt = "weekly";
|
||||||
|
user = "files";
|
||||||
|
group = "files";
|
||||||
|
postCreate = ''
|
||||||
|
echo create done!!!!!
|
||||||
|
'';
|
||||||
|
extraPruneArgs = "--stats --list --save-space";
|
||||||
|
patterns = [
|
||||||
|
"- /home/files/storage/files/no-backup"
|
||||||
|
];
|
||||||
|
|
||||||
|
encryption.mode = "repokey-blake2";
|
||||||
|
encryption.passCommand = "cat /home/files/secrets/borg-passphrase";
|
||||||
|
|
||||||
|
environment.BORG_KEY_FILE = "/home/files/secrets/borg-key";
|
||||||
|
|
||||||
|
prune.keep = {
|
||||||
|
#within = "1w"; # Keep all archives from the last day
|
||||||
|
daily = 7;
|
||||||
|
weekly = 7;
|
||||||
|
monthly = -1; # Keep at least one archive for each month
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
################################ server ######################################
|
||||||
|
/*
|
||||||
|
systemd.services.nginx-pod = {
|
||||||
|
enable = true;
|
||||||
|
description = "pod for nginx proxy manager";
|
||||||
|
unitConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = let prg = pkgs.writeShellApplication {
|
||||||
|
name = "nginx-pod";
|
||||||
|
runtimeInputs = with pkgs; [ su shadow ];
|
||||||
|
text = lib.strings.concatStringsSep " " [
|
||||||
|
"${inputs.podman.packages.${system}.podman}/bin/podman" "pod" "create"
|
||||||
|
"--name=nginx"
|
||||||
|
"--share net"
|
||||||
|
"-p 81:81"
|
||||||
|
"-p 80:80"
|
||||||
|
"-p 443:443"
|
||||||
|
];
|
||||||
|
}; in "${prg}/bin/nginx-pod";
|
||||||
|
User = "server";
|
||||||
|
Group = "server";
|
||||||
|
};
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.nginx-db = {
|
||||||
|
enable = true;
|
||||||
|
description = "bar";
|
||||||
|
unitConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = let prg = pkgs.writeShellApplication {
|
||||||
|
name = "nginx-db";
|
||||||
|
runtimeInputs = with pkgs; [ su shadow ];
|
||||||
|
text = lib.strings.concatStringsSep " " [
|
||||||
|
# make data dir if non existent
|
||||||
|
"${pkgs.coreutils}/bin/mkdir -p /home/server/here/nginx/data;"
|
||||||
|
|
||||||
|
"${inputs.podman.packages.${system}.podman}/bin/podman" "container" "run"
|
||||||
|
"--name=nginx_db"
|
||||||
|
"--pod=nginx"
|
||||||
|
"-e MYSQL_ROOT_PASSWORD=HAg!HZiZQ9ydGlFK7KP4"
|
||||||
|
"-e MYSQL_DATABASE=nginx-proxy-manager"
|
||||||
|
"-e MYSQL_USER=webserver"
|
||||||
|
''"-e MYSQL_PASSWORD=n1jK69EQEBOiJ&YPmbeW"''
|
||||||
|
"-v /home/server/here/nginx/data/mysql:/var/lib/mysql:Z"
|
||||||
|
"--add-host app:127.0.0.1"
|
||||||
|
"--add-host nginx_app:127.0.0.1"
|
||||||
|
"--add-host db:127.0.0.1"
|
||||||
|
"--add-host nginx_db:127.0.0.1"
|
||||||
|
"--restart unless-stopped"
|
||||||
|
|
||||||
|
# last image name
|
||||||
|
"nginx-proxy-manager"
|
||||||
|
];
|
||||||
|
}; in "${prg}/bin/nginx-db";
|
||||||
|
User = "server";
|
||||||
|
Group = "server";
|
||||||
|
};
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
description = "bar";
|
||||||
|
unitConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = let prg = pkgs.writeShellApplication {
|
||||||
|
name = "nginx";
|
||||||
|
runtimeInputs = with pkgs; [ su shadow ];
|
||||||
|
text = lib.strings.concatStringsSep " " [
|
||||||
|
# make data dir if non existent
|
||||||
|
"${pkgs.coreutils}/bin/mkdir -p /home/server/here/nginx/data;"
|
||||||
|
|
||||||
|
"${inputs.podman.packages.${system}.podman}/bin/podman" "container" "run"
|
||||||
|
"--name=nginx_app"
|
||||||
|
"--pod=nginx"
|
||||||
|
|
||||||
|
"-e DB_MYSQL_HOST=db"
|
||||||
|
"-e DB_MYSQL_PORT=3306"
|
||||||
|
"-e DB_MYSQL_USER=webserver"
|
||||||
|
''"e DB_MYSQL_PASSWORD=n1jK69EQEBOiJ&YPmbeW"''
|
||||||
|
"-e DB_MYSQL_NAME=nginx-proxy-manager"
|
||||||
|
"-v /home/server/here/nginx/data:/data"
|
||||||
|
"-v /home/server/here/nginx/data/letsencrypt:/etc/letsencrypt"
|
||||||
|
"--add-host app:127.0.0.1"
|
||||||
|
"--add-host nginx_app:127.0.0.1"
|
||||||
|
"--add-host db:127.0.0.1"
|
||||||
|
"--add-host nginx_db:127.0.0.1"
|
||||||
|
|
||||||
|
"--restart unless-stopped"
|
||||||
|
|
||||||
|
# last image name
|
||||||
|
"mariadb-aria"
|
||||||
|
];
|
||||||
|
}; in "${prg}/bin/nginx";
|
||||||
|
User = "server";
|
||||||
|
Group = "users";
|
||||||
|
};
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|||||||
0
hosts/tab/nix-on-droid.nix
Normal file → Executable file
0
hosts/tab/nix-on-droid.nix
Normal file → Executable file
@@ -11,8 +11,8 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
#boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
#boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
# networking.hostName = "nixos"; # Define your hostname.
|
# networking.hostName = "nixos"; # Define your hostname.
|
||||||
# Pick only one of the below networking options.
|
# Pick only one of the below networking options.
|
||||||
@@ -35,12 +35,12 @@
|
|||||||
# };
|
# };
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
services.xserver.enable = true;
|
#services.xserver.enable = true;
|
||||||
|
|
||||||
|
|
||||||
# Enable the GNOME Desktop Environment.
|
# Enable the GNOME Desktop Environment.
|
||||||
services.xserver.displayManager.gdm.enable = true;
|
#services.xserver.displayManager.gdm.enable = true;
|
||||||
services.xserver.desktopManager.gnome.enable = true;
|
#services.xserver.desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
|
|||||||
0
misc/my-hosts
Normal file → Executable file
0
misc/my-hosts
Normal file → Executable file
8
misc/my-hosts-h
Normal file → Executable file
8
misc/my-hosts-h
Normal file → Executable file
@@ -1,5 +1,9 @@
|
|||||||
192.168.1.6 hpm
|
192.168.1.6 hpm
|
||||||
192.168.1.3 server
|
192.168.1.3 fusu
|
||||||
192.168.1.2 rpi
|
192.168.1.2 rpi
|
||||||
|
192.168.1.2 files
|
||||||
|
192.168.1.2 rpis
|
||||||
192.168.1.5 acern
|
192.168.1.5 acern
|
||||||
192.168.1.122 lush
|
192.168.1.22 lush
|
||||||
|
192.168.1.1 rou
|
||||||
|
192.168.1.1 router
|
||||||
|
|||||||
0
misc/my-hosts-me
Normal file → Executable file
0
misc/my-hosts-me
Normal file → Executable file
1
misc/my-hosts-pt
Normal file → Executable file
1
misc/my-hosts-pt
Normal file → Executable file
@@ -1,3 +1,4 @@
|
|||||||
192.168.44.1 phone
|
192.168.44.1 phone
|
||||||
192.168.44.11 main
|
192.168.44.11 main
|
||||||
|
192.168.44.22 lush
|
||||||
|
|
||||||
|
|||||||
0
misc/my-hosts-pw
Normal file → Executable file
0
misc/my-hosts-pw
Normal file → Executable file
2
misc/my-hosts-r
Normal file → Executable file
2
misc/my-hosts-r
Normal file → Executable file
@@ -1 +1,3 @@
|
|||||||
c2vi.dev rpi
|
c2vi.dev rpi
|
||||||
|
c2vi.dev rpis
|
||||||
|
c2vi.dev files
|
||||||
|
|||||||
0
misc/xmobar.hs
Normal file → Executable file
0
misc/xmobar.hs
Normal file → Executable file
0
misc/xmonad.hs
Normal file → Executable file
0
misc/xmonad.hs
Normal file → Executable file
0
mods/battery_monitor.nix
Normal file → Executable file
0
mods/battery_monitor.nix
Normal file → Executable file
2
mods/cbm.nix
Normal file → Executable file
2
mods/cbm.nix
Normal file → Executable file
@@ -1,6 +1,7 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, ncurses
|
, ncurses
|
||||||
|
, autoreconfHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@@ -16,5 +17,6 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
ncurses
|
ncurses
|
||||||
|
autoreconfHook
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
0
mods/my-nixpkgs-overlay.nix
Normal file → Executable file
0
mods/my-nixpkgs-overlay.nix
Normal file → Executable file
0
mods/supabase.nix
Normal file → Executable file
0
mods/supabase.nix
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/default.nix
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/default.nix
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/flake.nix
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/flake.nix
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/lf-wrapper.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/lf-wrapper.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/meson-build.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/meson-build.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/test.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/test.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/test2.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/test2.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/xdg-desktop-portal-termfilechooser-add-x11.patch
Normal file → Executable file
0
mods/xdg-desktop-portal-termfilechooser/xdg-desktop-portal-termfilechooser-add-x11.patch
Normal file → Executable file
25
mybin/nixre
25
mybin/nixre
@@ -5,7 +5,8 @@
|
|||||||
|
|
||||||
|
|
||||||
build_from_github(){
|
build_from_github(){
|
||||||
export out_path=$(nix build --refresh "github:c2vi/nixos#nixosConfigurations.$host.config.system.build.toplevel" --impure --no-link --print-out-paths $args_to_pass)
|
export NIXPKGS_ALLOW_UNFREE=1
|
||||||
|
export out_path=$(nix build --refresh "github:c2vi/nixos#nixosConfigurations.$host.config.system.build.toplevel" --impure --no-link --print-out-paths "${args_to_pass[@]}")
|
||||||
|
|
||||||
if [[ "$out_path" == "" ]]
|
if [[ "$out_path" == "" ]]
|
||||||
then
|
then
|
||||||
@@ -21,7 +22,8 @@ build_from_github(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
build_from_local(){
|
build_from_local(){
|
||||||
export out_path=$(sudo nix build "$HOME/work/config#nixosConfigurations.$host.config.system.build.toplevel" --impure --no-link --print-out-paths $args_to_pass)
|
export NIXPKGS_ALLOW_UNFREE=1
|
||||||
|
export out_path=$(nix build "$HOME/work/config#nixosConfigurations.$host.config.system.build.toplevel" --impure --no-link --print-out-paths "${args_to_pass[@]}")
|
||||||
|
|
||||||
if [[ "$out_path" == "" ]]
|
if [[ "$out_path" == "" ]]
|
||||||
then
|
then
|
||||||
@@ -42,13 +44,20 @@ do_switch(){
|
|||||||
[[ "$boot" == "false" ]] && sudo $out_path/bin/switch-to-configuration switch
|
[[ "$boot" == "false" ]] && sudo $out_path/bin/switch-to-configuration switch
|
||||||
[[ "$boot" == "true" ]] && sudo $out_path/bin/switch-to-configuration boot
|
[[ "$boot" == "true" ]] && sudo $out_path/bin/switch-to-configuration boot
|
||||||
else
|
else
|
||||||
nix path-info $out_path -r | xargs sudo nix store sign -k ~/.mysecrets/nix-private-key
|
nix path-info $out_path -r | xargs sudo nix store sign -k ~/work/here/secrets/nix-private
|
||||||
nix copy --no-check-sigs --no-require-sigs --to ssh-ng://$host $out_path
|
nix copy --no-check-sigs --no-require-sigs --to ssh-ng://$host $out_path
|
||||||
[[ "$boot" == "false" ]] && ssh $host "sudo $out_path/bin/switch-to-configuration switch"
|
[[ "$boot" == "false" ]] && ssh $host "sudo $out_path/bin/switch-to-configuration switch"
|
||||||
[[ "$boot" == "true" ]] && ssh $host "sudo $out_path/bin/switch-to-configuration boot"
|
[[ "$boot" == "true" ]] && ssh $host "sudo $out_path/bin/switch-to-configuration boot"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test(){
|
||||||
|
for arg in "$@";
|
||||||
|
do
|
||||||
|
echo got: $arg
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# main
|
# main
|
||||||
|
|
||||||
@@ -63,10 +72,18 @@ while getopts ':gbh:' flag; do
|
|||||||
h) host="${OPTARG}";;
|
h) host="${OPTARG}";;
|
||||||
b) boot=true;;
|
b) boot=true;;
|
||||||
g) use_github=true;;
|
g) use_github=true;;
|
||||||
*) break;; # makes it so, that at the first unknown option we start passing the rest of the arguments to the nix build command....
|
*) export args_to_pass=( "${@:OPTIND}" ); break;; # makes it so, that at the first unknown option we start passing the rest of the arguments to the nix build command....
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# mahem with correctly passing args to the nix build command
|
||||||
|
#args_to_pass=$(for arg in "${args_to_pass[@]}"; do echo -en " \\\"$arg\\\""; done)
|
||||||
|
#for arg in "${args_to_pass[@]}"; do echo loop: "$arg"; done
|
||||||
|
#echo hiii: $args_to_pass
|
||||||
|
#test "${args_to_pass[@]}"
|
||||||
|
#exit
|
||||||
|
|
||||||
|
|
||||||
if [[ "$use_github" == "true" ]]
|
if [[ "$use_github" == "true" ]]
|
||||||
then
|
then
|
||||||
echo rebuild from github
|
echo rebuild from github
|
||||||
|
|||||||
16
mybin/ru
16
mybin/ru
@@ -2,7 +2,19 @@
|
|||||||
|
|
||||||
if [ "$1" == "sync-school" ]
|
if [ "$1" == "sync-school" ]
|
||||||
then
|
then
|
||||||
~/work/config/rclone/sync-school.sh
|
~/work/config/scripts/sync-school.sh
|
||||||
|
|
||||||
|
elif [ "$1" == "rm-last-char" ]
|
||||||
|
then
|
||||||
|
truncate -s-1 $2
|
||||||
|
|
||||||
|
# total rubish
|
||||||
|
# cat $1 | xxd -ps | sed '$ s/.$//' $2 | xxd -r -ps > /tmp/1234; mv /tmp/1234 $2
|
||||||
|
|
||||||
|
|
||||||
|
elif [ "$1" == "rm-tab-cur" ]
|
||||||
|
then
|
||||||
|
ssh tab "rm /sdcard/note/CUR/*"
|
||||||
|
|
||||||
|
|
||||||
elif [ "$1" == "mnt-wechner" ]
|
elif [ "$1" == "mnt-wechner" ]
|
||||||
@@ -29,7 +41,7 @@ ping orf.at
|
|||||||
|
|
||||||
elif [ "$1" == "mnt-files-local" ]
|
elif [ "$1" == "mnt-files-local" ]
|
||||||
then
|
then
|
||||||
sudo mount -t cifs //192.168.1.2/files /home/me/files -o x-gvfs-hide,rw,defaults,nofail,credentials=/home/me/.mysecrets/rpi-share-files,uid=1000,iocharset=utf8,gid=1000
|
sudo mount -t cifs //192.168.1.2/files /home/me/files -o x-gvfs-hide,rw,defaults,nofail,credentials=/home/me/work/here/secrets/rpi-share-files,uid=1000,iocharset=utf8,gid=1000
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
~/work/config/scripts/win -o main-win 192.168.122.5 sebastian $@
|
~/work/config/scripts/win -o main-win 192.168.122.190 sebastian $@
|
||||||
|
|||||||
0
programs/alacritty.nix
Normal file → Executable file
0
programs/alacritty.nix
Normal file → Executable file
@@ -1,4 +1,4 @@
|
|||||||
{ persistentDir, confDir, hostname, self, pkgs, config, ... }:
|
{ persistentDir, confDir, hostname, self, pkgs, config, system, inputs, workDir, ... }:
|
||||||
{
|
{
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
|
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
|
inherit system;
|
||||||
# this does not work aparently....
|
# this does not work aparently....
|
||||||
|
|
||||||
# is needed to that ssh works
|
# is needed to that ssh works
|
||||||
@@ -39,9 +40,20 @@
|
|||||||
PS1 = ''\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ '';
|
PS1 = ''\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ '';
|
||||||
|
|
||||||
TEST = "hiiiiiiiiiiiiiiiiiiiiiiiiiii";
|
TEST = "hiiiiiiiiiiiiiiiiiiiiiiiiiii";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
|
losetup = "${pkgs.util-linux}/bin/losetup";
|
||||||
|
log = let
|
||||||
|
log = pkgs.writeShellApplication {
|
||||||
|
name = "log";
|
||||||
|
#runtimeInputs = [ inputs.my-log.packages.${system}.pythonForLog ];
|
||||||
|
#text = "cd /home/me/work/log/new; nix develop -c 'python ${workDir}/log/new/client.py'";
|
||||||
|
text = if system == "x86_64-linux" then ''${inputs.my-log.packages.${system}.pythonForLog}/bin/python ${workDir}/log/new/client.py "$@"'' else "echo system not x86_84-linux";
|
||||||
|
};
|
||||||
|
in "${log}/bin/log";
|
||||||
|
mi = "${workDir}/mize/run";
|
||||||
cdd = "/sdcard";
|
cdd = "/sdcard";
|
||||||
n = "${pkgs.python3} ${self}/scripts/nav/main.py";
|
n = "${pkgs.python3} ${self}/scripts/nav/main.py";
|
||||||
shutdown = "echo try harder.... xD";
|
shutdown = "echo try harder.... xD";
|
||||||
@@ -75,6 +87,18 @@
|
|||||||
bashrcExtra = ''
|
bashrcExtra = ''
|
||||||
export PATH=${self}/mybin:$PATH
|
export PATH=${self}/mybin:$PATH
|
||||||
export TERM="xterm-color"
|
export TERM="xterm-color"
|
||||||
|
export system=${system}
|
||||||
|
|
||||||
|
# the commit hash of nixpkgs 23.11
|
||||||
|
export nip="nixpkgs/71db8c7a02f3be7cb49b495786050ce1913246d3"
|
||||||
|
|
||||||
|
# needed to make ssh -X work
|
||||||
|
# see: https://unix.stackexchange.com/questions/412065/ssh-connection-x11-connection-rejected-because-of-wrong-authentication
|
||||||
|
export XAUTHORITY=$HOME/.Xauthority
|
||||||
|
|
||||||
|
export nl="--log-format bar-with-logs"
|
||||||
|
export acern="ssh://acern x86_64-linux,aarch64-linux - 20 10 big-parallel - -"
|
||||||
|
export hpm="ssh://hpm x86_64-linux,aarch64-linux - 8 5 big-parallel - -"
|
||||||
|
|
||||||
# my prompt
|
# my prompt
|
||||||
if [[ "${hostname}" == "main" ]]
|
if [[ "${hostname}" == "main" ]]
|
||||||
@@ -115,10 +139,10 @@
|
|||||||
tta(){
|
tta(){
|
||||||
if [[ "$1" == "" ]]
|
if [[ "$1" == "" ]]
|
||||||
then
|
then
|
||||||
rsync ~/work/priv-share/fast tab:/sdcard/fast
|
rsync -rv --delete ~/work/priv-share/fast/* tab:/sdcard/fast
|
||||||
elif [[ "$1" == "p" ]]
|
elif [[ "$1" == "p" ]]
|
||||||
then
|
then
|
||||||
rsync tab:/sdcard/fast ~/work/priv-share/fast
|
rsync -rv tab:/sdcard/fast/* ~/work/priv-share/fast
|
||||||
elif [[ "$1" == "k" ]]
|
elif [[ "$1" == "k" ]]
|
||||||
then
|
then
|
||||||
scp -O "$1" tab:/sdcard/keep
|
scp -O "$1" tab:/sdcard/keep
|
||||||
@@ -130,10 +154,10 @@
|
|||||||
tph(){
|
tph(){
|
||||||
if [[ "$1" == "" ]]
|
if [[ "$1" == "" ]]
|
||||||
then
|
then
|
||||||
rsync ~/work/priv-share/fast phone:/sdcard/fast
|
rsync -rv --delete ~/work/priv-share/fast/* phone:/sdcard/fast
|
||||||
elif [[ "$1" == "p" ]]
|
elif [[ "$1" == "p" ]]
|
||||||
then
|
then
|
||||||
rsync phone:/sdcard/fast ~/work/priv-share/fast
|
rsync -rv phone:/sdcard/fast/* ~/work/priv-share/fast
|
||||||
elif [[ "$1" == "k" ]]
|
elif [[ "$1" == "k" ]]
|
||||||
then
|
then
|
||||||
scp -O "$1" tab:/sdcard/keep
|
scp -O "$1" tab:/sdcard/keep
|
||||||
@@ -281,7 +305,7 @@
|
|||||||
complete -W "start stop restart status daemon-reload" stl
|
complete -W "start stop restart status daemon-reload" stl
|
||||||
|
|
||||||
# run
|
# run
|
||||||
complete -W "mnt-wechner sync-school wstunnel hibernate p speed-test-nixos-iso bat bstat mnt-files-local mnt-lan-local mnt-files-remote mnt-lan-remote suspend" ru
|
complete -W "mnt-wechner sync-school wstunnel hibernate p speed-test-nixos-iso bat bstat mnt-files-local mnt-lan-local mnt-files-remote mnt-lan-remote suspend rm-tab-cur rm-last-char" ru
|
||||||
|
|
||||||
|
|
||||||
'';
|
'';
|
||||||
|
|||||||
0
programs/emacs/config.el
Normal file → Executable file
0
programs/emacs/config.el
Normal file → Executable file
0
programs/emacs/default.nix
Normal file → Executable file
0
programs/emacs/default.nix
Normal file → Executable file
0
programs/emacs/init.el
Normal file → Executable file
0
programs/emacs/init.el
Normal file → Executable file
0
programs/emacs/packages.el
Normal file → Executable file
0
programs/emacs/packages.el
Normal file → Executable file
76
programs/firefox/default.nix
Normal file
76
programs/firefox/default.nix
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
{ pkgs, inputs, system, lib, persistentDir, config, secretsDir, ... }:
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
package = inputs.firefox.packages.${pkgs.system}.firefox-nightly-bin.overrideAttrs (old: {
|
||||||
|
NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" "-fPIC" ];
|
||||||
|
});
|
||||||
|
profiles.me = {
|
||||||
|
isDefault = true;
|
||||||
|
id = 0;
|
||||||
|
extensions =
|
||||||
|
with inputs.firefox-addons.packages.${system};
|
||||||
|
with (import ./my-extensions.nix {
|
||||||
|
inherit fetchurl lib stdenv;
|
||||||
|
buildFirefoxXpiAddon = inputs.firefox-addons.lib.${system}.buildFirefoxXpiAddon;
|
||||||
|
});
|
||||||
|
[
|
||||||
|
# from extra-firefox-extensions.nix
|
||||||
|
adguard-adblocker
|
||||||
|
grepper
|
||||||
|
visionary-bold-fixed
|
||||||
|
|
||||||
|
|
||||||
|
# to search: https://gitlab.com/rycee/nur-expressions/-/blob/master/pkgs/firefox-addons/generated-firefox-addons.nix?ref_type=heads
|
||||||
|
# ref: https://github.com/Misterio77/nix-config/blob/main/home/misterio/features/desktop/common/firefox.nix#L5
|
||||||
|
# ref: https://github.com/Misterio77/nix-config/blob/main/flake.nix#L66
|
||||||
|
onetab
|
||||||
|
bitwarden
|
||||||
|
|
||||||
|
];
|
||||||
|
settings = import ./user-settings.nix {};
|
||||||
|
extraConfig = ''
|
||||||
|
lockPref("browser.theme.content-theme", 0)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
profiles.old = {
|
||||||
|
isDefault = false;
|
||||||
|
id = 1;
|
||||||
|
path = "../../old/app-data/firefox/me";
|
||||||
|
};
|
||||||
|
# */
|
||||||
|
profiles.testing = {
|
||||||
|
id = 2;
|
||||||
|
isDefault = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
############ persistent folders of my profile ##################
|
||||||
|
home.file = {
|
||||||
|
".mozilla/firefox/me/places.sqlite" = {
|
||||||
|
force = true;
|
||||||
|
source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/firefox-data/places.sqlite";
|
||||||
|
# ref: https://github.com/nix-community/home-manager/issues/676
|
||||||
|
# - link goes into the store, and then out again.... xD
|
||||||
|
};
|
||||||
|
".mozilla/firefox/me/places.sqlite-wal" = {
|
||||||
|
force = true;
|
||||||
|
source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/firefox-data/places.sqlite-wal";
|
||||||
|
};
|
||||||
|
|
||||||
|
# one tab storage path
|
||||||
|
".mozilla/firefox/me/storage/default/moz-extension+++e2297551-90b4-4da0-92c8-1d00cda2d080^userContextId=4294967295" = {
|
||||||
|
force = true;
|
||||||
|
source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/firefox-data/onetab-folder";
|
||||||
|
};
|
||||||
|
|
||||||
|
# bitwareden storage path
|
||||||
|
".mozilla/firefox/me/storage/default/moz-extension+++e563a533-4e66-4b75-bbec-176bb803d96c^userContextId=4294967295" = {
|
||||||
|
force = true;
|
||||||
|
source = config.lib.file.mkOutOfStoreSymlink "${secretsDir}/firefox-bitwarden-folder";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
184
programs/firefox/my-extensions.nix
Executable file
184
programs/firefox/my-extensions.nix
Executable file
@@ -0,0 +1,184 @@
|
|||||||
|
{ buildFirefoxXpiAddon, fetchurl, lib, stdenv }@args:
|
||||||
|
let
|
||||||
|
buildFirefoxXpiAddonFromFile = lib.makeOverridable ({ stdenv ? args.stdenv
|
||||||
|
, fetchurl ? args.fetchurl, pname, version, addonId, path, meta, ...
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
inherit meta;
|
||||||
|
|
||||||
|
preferLocalBuild = true;
|
||||||
|
allowSubstitutes = true;
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
|
||||||
|
mkdir -p "$dst"
|
||||||
|
install -v -m644 "$path" "$dst/${addonId}.xpi"
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
packages = import ./generated-firefox-addons.nix {
|
||||||
|
inherit buildFirefoxXpiAddon fetchurl lib stdenv;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
"onetab" = buildFirefoxXpiAddonFromFile {
|
||||||
|
pname = "onetab";
|
||||||
|
version = "4.2.240";
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"visionary-bold-fixed" = buildFirefoxXpiAddon {
|
||||||
|
pname = "visionary-bold-fixed";
|
||||||
|
version = "1.0";
|
||||||
|
addonId = "{8d38d24a-dd1b-4142-8873-bbaa32e4e44f}";
|
||||||
|
url = "https://addons.mozilla.org/firefox/downloads/file/4122855/visionary_bold_fixed-1.0.xpi";
|
||||||
|
sha256 = "c4aed779329b980c7e59cf2353e54108713d60b515b918bf7a535f9944c01ae8";
|
||||||
|
meta = with lib;
|
||||||
|
{
|
||||||
|
description = "As you could notice almost all new mozilla's dark themes (colorways bold) are little broken (dark tabs on dark background). I decided to fix this moment in Visionary Bold theme.";
|
||||||
|
license = licenses.cc-by-30;
|
||||||
|
mozPermissions = [];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"visionary-bold" = buildFirefoxXpiAddon {
|
||||||
|
pname = "visionary-bold";
|
||||||
|
version = "2.1";
|
||||||
|
addonId = "visionary-bold-colorway@mozilla.org";
|
||||||
|
url = "https://addons.mozilla.org/firefox/downloads/file/4066246/visionary_bold-2.1.xpi";
|
||||||
|
sha256 = "73b6a25f41877f2c199c0b07ef28d25f69b067ab56bc08cf238e9fb89dfa92d9";
|
||||||
|
meta = with lib;
|
||||||
|
{
|
||||||
|
description = "You question the status quo and move others to imagine a better future.";
|
||||||
|
license = licenses.cc-by-30;
|
||||||
|
mozPermissions = [];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"atom-one-dark-theme2" = buildFirefoxXpiAddon {
|
||||||
|
pname = "atom-one-dark-theme2";
|
||||||
|
version = "2.0";
|
||||||
|
addonId = "{53de5a1e-f54c-45f7-b86e-09f0161b85f3}";
|
||||||
|
url = "https://addons.mozilla.org/firefox/downloads/file/3369239/atom_one_dark_theme2-2.0.xpi";
|
||||||
|
sha256 = "3168163ab8bf2da4a64d10f266c50fd0a03226c6260b60cbcbb4e8779db53b02";
|
||||||
|
meta = with lib;
|
||||||
|
{
|
||||||
|
description = "the atom dark theme extrack for the oponime software";
|
||||||
|
mozPermissions = [];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"simple-style-fox" = buildFirefoxXpiAddon {
|
||||||
|
pname = "simple-style-fox";
|
||||||
|
version = "4.0";
|
||||||
|
addonId = "{05914925-648e-42bc-9024-3b4ea9ec379e}";
|
||||||
|
url = "https://addons.mozilla.org/firefox/downloads/file/3890846/simple_style_fox-4.0.xpi";
|
||||||
|
sha256 = "2d8369ca5215030db03dcce61c3bf4c358fe0c97b6a3e89a64a146063195c038";
|
||||||
|
meta = with lib;
|
||||||
|
{
|
||||||
|
description = "Simple style fox";
|
||||||
|
license = licenses.cc-by-30;
|
||||||
|
mozPermissions = [];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"adguard-adblocker" = buildFirefoxXpiAddon {
|
||||||
|
pname = "adguard-adblocker";
|
||||||
|
version = "4.2.240";
|
||||||
|
addonId = "adguardadblocker@adguard.com";
|
||||||
|
url = "https://addons.mozilla.org/firefox/downloads/file/4209021/adguard_adblocker-4.2.240.xpi";
|
||||||
|
sha256 = "30790a6d58a2ccc31dc703544f25ef193a8a60074bf2f5775097739db4bcc2e0";
|
||||||
|
meta = with lib;
|
||||||
|
{
|
||||||
|
homepage = "https://adguard.com/";
|
||||||
|
description = "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, Youtube and all other websites.";
|
||||||
|
license = licenses.lgpl3;
|
||||||
|
mozPermissions = [
|
||||||
|
"tabs"
|
||||||
|
"<all_urls>"
|
||||||
|
"webRequest"
|
||||||
|
"webRequestBlocking"
|
||||||
|
"webNavigation"
|
||||||
|
"storage"
|
||||||
|
"contextMenus"
|
||||||
|
"cookies"
|
||||||
|
"privacy"
|
||||||
|
"http://*/*"
|
||||||
|
"https://*/*"
|
||||||
|
"*://*.adguard.com/*/thankyou.html*"
|
||||||
|
"*://*.adguard.info/*/thankyou.html*"
|
||||||
|
"*://*.adguard.app/*/thankyou.html*"
|
||||||
|
];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"grepper" = buildFirefoxXpiAddon {
|
||||||
|
pname = "grepper";
|
||||||
|
version = "0.0.8.9";
|
||||||
|
addonId = "grepper@codegrepper.com";
|
||||||
|
url = "https://addons.mozilla.org/firefox/downloads/file/4069054/grepper-0.0.8.9.xpi";
|
||||||
|
sha256 = "17db8b2f138f442882f7db5ba40e6d2af591c45e322cf3262628705c76af1b04";
|
||||||
|
meta = with lib;
|
||||||
|
{
|
||||||
|
description = "The Query & Answer System for the Coder Community";
|
||||||
|
mozPermissions = [
|
||||||
|
"storage"
|
||||||
|
"webRequest"
|
||||||
|
"activeTab"
|
||||||
|
"<all_urls>"
|
||||||
|
"alarms"
|
||||||
|
"https://www.google.com/*"
|
||||||
|
"https://www.google.co.uk/*"
|
||||||
|
"https://www.google.co.za/*"
|
||||||
|
"https://www.google.co.th/*"
|
||||||
|
"https://www.google.co.jp/*"
|
||||||
|
"https://www.google.co.il/*"
|
||||||
|
"https://www.google.es/*"
|
||||||
|
"https://www.google.ca/*"
|
||||||
|
"https://www.google.de/*"
|
||||||
|
"https://www.google.it/*"
|
||||||
|
"https://www.google.fr/*"
|
||||||
|
"https://www.google.com.au/*"
|
||||||
|
"https://www.google.com.ph/*"
|
||||||
|
"https://www.google.com.tw/*"
|
||||||
|
"https://www.google.com.br/*"
|
||||||
|
"https://www.google.com.ua/*"
|
||||||
|
"https://www.google.com.my/*"
|
||||||
|
"https://www.google.com.hk/*"
|
||||||
|
"https://www.google.ru/*"
|
||||||
|
"https://www.google.com.tr/*"
|
||||||
|
"https://www.google.be/*"
|
||||||
|
"https://www.google.com.gr/*"
|
||||||
|
"https://www.google.co.in/*"
|
||||||
|
"https://www.google.com.mx/*"
|
||||||
|
"https://www.google.dk/*"
|
||||||
|
"https://www.google.com.ar/*"
|
||||||
|
"https://www.google.ch/*"
|
||||||
|
"https://www.google.cl/*"
|
||||||
|
"https://www.google.co.kr/*"
|
||||||
|
"https://www.google.com.co/*"
|
||||||
|
"https://www.google.pl/*"
|
||||||
|
"https://www.google.pt/*"
|
||||||
|
"https://www.google.com.pk/*"
|
||||||
|
"https://www.google.co.id/*"
|
||||||
|
"https://www.google.com.vn/*"
|
||||||
|
"https://www.google.nl/*"
|
||||||
|
"https://www.google.se/*"
|
||||||
|
"https://www.google.com.sg/*"
|
||||||
|
"http://*/*"
|
||||||
|
"https://*/*"
|
||||||
|
"http://localhost:8888/grepper_app/*"
|
||||||
|
"https://www.codegrepper.com/*"
|
||||||
|
"https://www.grepper.com/*"
|
||||||
|
"https://staging.codegrepper.com/*"
|
||||||
|
"https://www.grepper.com/app/notifications.php"
|
||||||
|
];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
156
programs/firefox/user-settings.nix
Normal file
156
programs/firefox/user-settings.nix
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
{ ... }: {
|
||||||
|
|
||||||
|
# general
|
||||||
|
"extensions.autoDisableScopes" = 0;
|
||||||
|
"extensions.enabledScopes" = 15;
|
||||||
|
"browser.search.region" = "AT";
|
||||||
|
"browser.aboutConfig.showWarning" = false;
|
||||||
|
"javascript.options.mem.gc_parallel_marking" = true;
|
||||||
|
"browser.download.dir" = "/home/me/work/downloads";
|
||||||
|
"browser.startup.couldRestoreSession.count" = 5;
|
||||||
|
"browser.toolbars.bookmarks.visibility" = "never";
|
||||||
|
"devtools.everOpened" = true;
|
||||||
|
"middlemouse.paste" = false;
|
||||||
|
"browser.download.folderList" = 1;
|
||||||
|
"extensions.langpacks.signatures.required" = false;
|
||||||
|
"browser.shell.checkDefaultBrowser" = false;
|
||||||
|
|
||||||
|
# better widnow settings for tiling vm
|
||||||
|
"browser.tabs.inTitlebar" = 0;
|
||||||
|
|
||||||
|
# so that firefox reacts fast to changes in /etc/hosts
|
||||||
|
"network.dnsCacheExpiration" = 0;
|
||||||
|
|
||||||
|
# dont sync theme
|
||||||
|
# so that "browser.theme.content-theme" is not always set to 2
|
||||||
|
"services.sync.prefs.sync.extensions.activeThemeID" = false;
|
||||||
|
|
||||||
|
# allow to install my own addons
|
||||||
|
"xpinstall.signatures.required" = false;
|
||||||
|
"xpinstall.whitelist.required" = true;
|
||||||
|
|
||||||
|
# set theme
|
||||||
|
#"extensions.activeThemeID" = "visionary-bold-colorway@mozilla.org";
|
||||||
|
# - this one does not work
|
||||||
|
"extensions.activeThemeID" = "{8d38d24a-dd1b-4142-8873-bbaa32e4e44f}";
|
||||||
|
"browser.theme.content-theme" = 0; # content dark theme
|
||||||
|
"browser.theme.toolbar-theme" = 0; # toolbar dark theme
|
||||||
|
|
||||||
|
|
||||||
|
# have acces to browser console
|
||||||
|
"devtools.chrome.enabled" = true;
|
||||||
|
|
||||||
|
#always show downloads button
|
||||||
|
"browser.download.autohideButton" = false;
|
||||||
|
|
||||||
|
# better cache
|
||||||
|
"browser.cache.disk.capacity" = 4560000;
|
||||||
|
"browser.cache.disk.smart_size.enabled" = false;
|
||||||
|
"browser.cache.check_doc_frequency" = 2;
|
||||||
|
# http://kb.mozillazine.org/Browser.cache.check_doc_frequency
|
||||||
|
|
||||||
|
|
||||||
|
# the header customisation
|
||||||
|
"browser.uiCustomization.state" = ''{"placements":{"widget-overflow-fixed-list":["sync-button"],"unified-extensions-area":["jid1-93cwpmrbvpjrqa_jetpack-browser-action","_react-devtools-browser-action","grepper_codegrepper_com-browser-action","simple-translate_sienori-browser-action","_d04b0b40-3dab-4f0b-97a6-04ec3eddbfb0_-browser-action","_b0721213-dc0b-4ae0-8436-8c14f0022a37_-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","home-button","customizableui-special-spring1","urlbar-container","zoom-controls","customizableui-special-spring7","screenshot-button","fullscreen-button","developer-button","bookmarks-menu-button","downloads-button","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","adguardadblocker_adguard_com-browser-action","extension_one-tab_com-browser-action","side-view_mozilla_org-browser-action","unified-extensions-button","reset-pbm-toolbar-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["preferences-button","personal-bookmarks"]},"seen":["developer-button","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","extension_one-tab_com-browser-action","_d04b0b40-3dab-4f0b-97a6-04ec3eddbfb0_-browser-action","grepper_codegrepper_com-browser-action","save-to-pocket-button","_react-devtools-browser-action","jid1-93cwpmrbvpjrqa_jetpack-browser-action","adguardadblocker_adguard_com-browser-action","side-view_mozilla_org-browser-action","simple-translate_sienori-browser-action","profiler-button","reset-pbm-toolbar-button","_b0721213-dc0b-4ae0-8436-8c14f0022a37_-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","widget-overflow-fixed-list","unified-extensions-area"],"currentVersion":20,"newElementCount":26}'';
|
||||||
|
|
||||||
|
|
||||||
|
# keep extension uuids the same ... so that the bitwaredne pass-store and onetab stores stay the same
|
||||||
|
|
||||||
|
"extensions.webextensions.uuids" = builtins.toJSON {
|
||||||
|
"extension@one-tab.com" = "e2297551-90b4-4da0-92c8-1d00cda2d080";
|
||||||
|
"adguardadblocker@adguard.com" = "b73239bf-cb93-4985-8f3b-71b32a3b3527";
|
||||||
|
"grepper@codegrepper.com" = "7cfa9e68-fba7-4eb9-8f3b-d4562a31b476";
|
||||||
|
|
||||||
|
# bitwarden
|
||||||
|
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = "e563a533-4e66-4b75-bbec-176bb803d96c";
|
||||||
|
};
|
||||||
|
|
||||||
|
"extensions.webextensions.ExtensionStorageIDB.migrated.adguardadblocker@adguard.com" = true;
|
||||||
|
"extensions.webextensions.ExtensionStorageIDB.migrated.extension@one-tab.com" = true;
|
||||||
|
"extensions.webextensions.ExtensionStorageIDB.migrated.grepper@codegrepper.com" = true;
|
||||||
|
"extensions.webextensions.ExtensionStorageIDB.migrated.screenshots@mozilla.org" = true;
|
||||||
|
"extensions.webextensions.ExtensionStorageIDB.migrated.{446900e4-71c2-419f-a6a7-df9c091e268b}" = true;
|
||||||
|
|
||||||
|
|
||||||
|
# to not show startup dialogs
|
||||||
|
"browser.eme.ui.firstContentShown" = true;
|
||||||
|
"browser.engagement.ctrlTab.has-used" = true;
|
||||||
|
"browser.engagement.downloads-button.has-used" = true;
|
||||||
|
"browser.engagement.fxa-toolbar-menu-button.has-used" = true;
|
||||||
|
"browser.engagement.home-button.has-used" = true;
|
||||||
|
"browser.engagement.library-button.has-used" = true;
|
||||||
|
"browser.engagement.sidebar-button.has-used" = true;
|
||||||
|
"distribution.archlinux.bookmarksProcessed" = true;
|
||||||
|
"distribution.canonical.bookmarksProcessed" = true;
|
||||||
|
"distribution.iniFile.exists.appversion" = "122.0a1";
|
||||||
|
"distribution.iniFile.exists.value" = false;
|
||||||
|
"distribution.nixos.bookmarksProcessed" = true;
|
||||||
|
"browser.firefox-view.feature-tour" = ''{"message":"FIREFOX_VIEW_FEATURE_TOUR","screen":"","complete":true}'';
|
||||||
|
"trailhead.firstrun.didSeeAboutWelcome" = true;
|
||||||
|
|
||||||
|
|
||||||
|
# disable autofill
|
||||||
|
"signon.autofillForms" = false;
|
||||||
|
"signon.firefoxRelay.feature" = "offered";
|
||||||
|
"signon.generation.enabled" = false;
|
||||||
|
"signon.management.page.breach-alerts.enabled" = false;
|
||||||
|
"signon.rememberSignons" = false;
|
||||||
|
|
||||||
|
|
||||||
|
# interesting
|
||||||
|
# browser.bookmarks.defaultLocation toolbar_____
|
||||||
|
# browser.migration.version 142
|
||||||
|
# browser.fixup.dns_first_for_single_words true
|
||||||
|
# browser.fixup.domainwhitelist.router true
|
||||||
|
# browser.startup.homepage about:blank
|
||||||
|
# extensions.activeThemeID visionary-bold-colorway@mozilla.org
|
||||||
|
# network.dns.offline-localhost false
|
||||||
|
# network.dnsCacheExpiration 0
|
||||||
|
# pref.privacy.disable_button.cookie_exceptions false
|
||||||
|
# pref.privacy.disable_button.tracking_protection_exceptions false
|
||||||
|
# pref.privacy.disable_button.view_passwords false
|
||||||
|
|
||||||
|
|
||||||
|
################### devtools not used ##########################
|
||||||
|
#devtools.aboutdebugging.collapsibilities.processes false
|
||||||
|
|
||||||
|
#devtools.debugger.end-panel-size 57
|
||||||
|
#devtools.debugger.event-listeners-visible true
|
||||||
|
#devtools.debugger.pause-on-caught-exceptions false
|
||||||
|
|
||||||
|
#devtools.debugger.prefs-schema-version 11
|
||||||
|
#devtools.debugger.remote-enabled true
|
||||||
|
#devtools.debugger.start-panel-size 155
|
||||||
|
|
||||||
|
|
||||||
|
#devtools.netmonitor.msg.visibleColumns ["data","time"]
|
||||||
|
#devtools.netmonitor.panes-network-details-height 403
|
||||||
|
#devtools.netmonitor.panes-network-details-width 549
|
||||||
|
#devtools.netmonitor.panes-search-height 237
|
||||||
|
#devtools.netmonitor.panes-search-width 250
|
||||||
|
#devtools.performance.new-panel-onboarding false
|
||||||
|
#devtools.performance.recording.entries 134217728
|
||||||
|
#devtools.performance.recording.features ["screenshots","js","stackwalk","cpu","processcpu"]
|
||||||
|
#devtools.performance.recording.threads ["GeckoMain","Compositor","Renderer","SwComposite","DOM Worker"]
|
||||||
|
#devtools.responsive.reloadNotification.enabled false
|
||||||
|
#devtools.responsive.viewport.height 732
|
||||||
|
#devtools.responsive.viewport.width 680
|
||||||
|
#devtools.theme auto
|
||||||
|
#devtools.theme.show-auto-theme-info false
|
||||||
|
#devtools.toolbox.footer.height 633
|
||||||
|
#devtools.toolbox.host right
|
||||||
|
#devtools.toolbox.previousHost bottom
|
||||||
|
#devtools.toolbox.sidebar.width 431
|
||||||
|
#devtools.toolbox.splitconsoleHeight 98
|
||||||
|
#devtools.toolbox.tabsOrder inspector,webconsole,netmonitor,jsdebugger,styleeditor,performance,memory,storage,accessibility,application
|
||||||
|
#devtools.toolbox.zoomValue 1.2
|
||||||
|
#devtools.toolsidebar-height.inspector 345
|
||||||
|
#devtools.toolsidebar-width.inspector 383
|
||||||
|
#devtools.toolsidebar-width.inspector.splitsidebar 225
|
||||||
|
#devtools.webconsole.filter.debug false
|
||||||
|
#devtools.webconsole.filter.info false
|
||||||
|
#devtools.webconsole.input.editorOnboarding false
|
||||||
|
#devtools.webconsole.input.editorWidth 393
|
||||||
|
#devtools.webextensions.@react-devtools.enabled true
|
||||||
|
|
||||||
|
}
|
||||||
2
programs/git.nix
Normal file → Executable file
2
programs/git.nix
Normal file → Executable file
@@ -3,7 +3,7 @@
|
|||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "Sebastian Moser";
|
userName = "Sebastian Moser";
|
||||||
userEmail = "me@c2vi.dev";
|
userEmail = "sebastian@c2vi.dev";
|
||||||
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
core.editor = "nvim";
|
core.editor = "nvim";
|
||||||
|
|||||||
0
programs/lf/colors
Normal file → Executable file
0
programs/lf/colors
Normal file → Executable file
4
programs/lf/default.nix
Normal file → Executable file
4
programs/lf/default.nix
Normal file → Executable file
@@ -113,6 +113,10 @@
|
|||||||
|
|
||||||
|
|
||||||
keybindings = {
|
keybindings = {
|
||||||
|
# sort by time
|
||||||
|
mt = ":set sortby time; set info time; set reverse";
|
||||||
|
# sort normally
|
||||||
|
ms = ":set sortby natural; set info; set reverse!";
|
||||||
F = "setfilter";
|
F = "setfilter";
|
||||||
P = "%pwd";
|
P = "%pwd";
|
||||||
W = "nav-work";
|
W = "nav-work";
|
||||||
|
|||||||
0
programs/lf/icons
Normal file → Executable file
0
programs/lf/icons
Normal file → Executable file
Submodule programs/lf/lf-config deleted from 1c295ce7bc
0
programs/lf/lf-filter.patch
Normal file → Executable file
0
programs/lf/lf-filter.patch
Normal file → Executable file
0
programs/lf/opener
Normal file → Executable file
0
programs/lf/opener
Normal file → Executable file
@@ -10,11 +10,12 @@
|
|||||||
# typst ... TODO
|
# typst ... TODO
|
||||||
rust-vim
|
rust-vim
|
||||||
dracula-vim
|
dracula-vim
|
||||||
lf-vim
|
lf-vim
|
||||||
];
|
];
|
||||||
|
|
||||||
coc.enable = true;
|
coc.enable = true;
|
||||||
coc.settings = {
|
coc.settings = {
|
||||||
|
"rust-analyzer.cargo.sysroot" = "discover";
|
||||||
"rust-analyzer.server.path" = "/etc/profiles/per-user/me/bin/rust-analyzer";
|
"rust-analyzer.server.path" = "/etc/profiles/per-user/me/bin/rust-analyzer";
|
||||||
"coc.preferences.extensionUpdateCheck" = "never";
|
"coc.preferences.extensionUpdateCheck" = "never";
|
||||||
"cSpellExt.enableDictionaries" = [ "german" ];
|
"cSpellExt.enableDictionaries" = [ "german" ];
|
||||||
@@ -442,15 +443,26 @@
|
|||||||
function Cargo_jump()
|
function Cargo_jump()
|
||||||
local line,c = unpack(vim.api.nvim_win_get_cursor(0))
|
local line,c = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
|
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
|
||||||
|
print("hiiiiiiiiiii")
|
||||||
|
print("hiiiiiiiiiii")
|
||||||
|
print("hiiiiiiiiiii")
|
||||||
|
print("hiiiiiiiiiii")
|
||||||
|
print("hiiiiiiiiiii")
|
||||||
|
print("lines", lines)
|
||||||
|
print("line", line)
|
||||||
|
|
||||||
local line_iter = line
|
local line_iter = line
|
||||||
local line_to_jump = nil
|
local line_to_jump = nil
|
||||||
local file_to_jump = nil
|
local file_to_jump = nil
|
||||||
|
if line == 1 then
|
||||||
|
line_iter = 2
|
||||||
|
end
|
||||||
while true do
|
while true do
|
||||||
if (lines[line_iter]:sub(1,6) == "error[") then
|
if (lines[line_iter]:sub(1,5) == "error") then
|
||||||
local split_line = mysplit(lines[line_iter +1], ":")
|
local split_line = mysplit(lines[line_iter +1], ":")
|
||||||
line_to_jump = split_line[2]
|
line_to_jump = split_line[2]
|
||||||
file_to_jump = split_line[1]:sub(6, -1)
|
file_to_jump = split_line[1]:sub(7, -1)
|
||||||
|
file_to_jump = file_to_jump:gsub("%s+", "")
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
line_iter = line_iter - 1
|
line_iter = line_iter - 1
|
||||||
@@ -460,26 +472,50 @@
|
|||||||
local abs_file_to_jump = vim.fn.getcwd() .. "/" .. file_to_jump
|
local abs_file_to_jump = vim.fn.getcwd() .. "/" .. file_to_jump
|
||||||
|
|
||||||
for i,buf in pairs(buffers) do
|
for i,buf in pairs(buffers) do
|
||||||
local name = vim.api.nvim_buf_get_name(buf)
|
-- local status, name = pcall(function () vim.api.nvim_buf_get_name(buf) end)
|
||||||
if name == abs_file_to_jump then
|
-- if status then print("error getting buf name"); goto continue else print("got name: " .. name) end
|
||||||
|
|
||||||
|
local name = vim.fn["bufname"](buf)
|
||||||
|
if name == "" then
|
||||||
|
-- print("buf name empty")
|
||||||
|
goto continue
|
||||||
|
end
|
||||||
|
|
||||||
|
-- print("name: " .. name .. " file_to_jump: " .. file_to_jump)
|
||||||
|
if name == file_to_jump then
|
||||||
local tab_num = get_tab(name)
|
local tab_num = get_tab(name)
|
||||||
--vim.cmd("tabn 2")
|
print("jumping to" .. tostring(tab_num))
|
||||||
|
-- vim.cmd(tab_num .. "gt")
|
||||||
|
-- local keys = vim.api.nvim_replace_termcodes("<ENTER>"..tab_num.."gt", false, false, false)
|
||||||
|
-- vim.api.nvim_feedkeys("<ENTER>", "m", true)
|
||||||
|
vim.cmd("q")
|
||||||
|
vim.api.nvim_feedkeys(tab_num .. "gt", "m", false)
|
||||||
|
vim.api.nvim_feedkeys(line_to_jump .. "G", "m", false)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
end
|
end
|
||||||
|
|
||||||
|
::continue::
|
||||||
end
|
end
|
||||||
vim.cmd(":tabnew" .. abs_file_to_jump)
|
-- vim.cmd(":tabnew" .. abs_file_to_jump)
|
||||||
end
|
end
|
||||||
|
|
||||||
function get_tab(name)
|
function get_tab(name)
|
||||||
print("there")
|
print("the messssssssssssssssss")
|
||||||
local listing = vim.api.nvim_command_output("tabs")
|
local listing = vim.api.nvim_command_output("tabs")
|
||||||
|
local tab
|
||||||
|
local file
|
||||||
for i,line in pairs(mysplit(listing, "\n")) do
|
for i,line in pairs(mysplit(listing, "\n")) do
|
||||||
|
print("line: " .. line)
|
||||||
if line:sub(1,8) == "Tab page" then
|
if line:sub(1,8) == "Tab page" then
|
||||||
local tab = line:sub(-1)
|
tab = line:sub(-1)
|
||||||
print("tab:", tab)
|
print("tab:", tab)
|
||||||
else
|
else
|
||||||
local file = line:sub(5,-1)
|
file = line:sub(5,-1)
|
||||||
|
print("file: " .. file .. " on tab: " .. tostring(tab))
|
||||||
|
if file == name then
|
||||||
|
return tab
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -521,6 +557,7 @@
|
|||||||
return buffers
|
return buffers
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
0
programs/rofi/default.nix
Normal file → Executable file
0
programs/rofi/default.nix
Normal file → Executable file
137
programs/ssh.nix
137
programs/ssh.nix
@@ -8,12 +8,20 @@
|
|||||||
};
|
};
|
||||||
"github.com" = {
|
"github.com" = {
|
||||||
hostname = "github.com";
|
hostname = "github.com";
|
||||||
identityFile = "${secretsDir}/private-key-main";
|
|
||||||
};
|
};
|
||||||
rpi = {
|
rpi = {
|
||||||
port = 49388;
|
port = 49388;
|
||||||
user = "me";
|
user = "me";
|
||||||
};
|
};
|
||||||
|
files = {
|
||||||
|
port = 49388;
|
||||||
|
user = "files";
|
||||||
|
};
|
||||||
|
rpis = {
|
||||||
|
hostname = "rpi";
|
||||||
|
port = 49388;
|
||||||
|
user = "server";
|
||||||
|
};
|
||||||
phone = {
|
phone = {
|
||||||
user = "u0_a345";
|
user = "u0_a345";
|
||||||
port = 8022;
|
port = 8022;
|
||||||
@@ -33,26 +41,26 @@
|
|||||||
user = "me";
|
user = "me";
|
||||||
};
|
};
|
||||||
|
|
||||||
servers = {
|
fusus = {
|
||||||
hostname = "server";
|
hostname = "fusu";
|
||||||
user = "server";
|
user = "server";
|
||||||
};
|
};
|
||||||
|
|
||||||
server = {
|
fusu = {
|
||||||
hostname = "server";
|
hostname = "fusu";
|
||||||
user = "admin";
|
user = "me";
|
||||||
};
|
};
|
||||||
|
|
||||||
ocia = {
|
ocia = {
|
||||||
hostname = "140.238.212.229";
|
hostname = "140.238.212.229";
|
||||||
user = "root";
|
user = "root";
|
||||||
identityFile = "${secretsDir}/private-key-ocia";
|
#identityFile = "${secretsDir}/private-key-ocia";
|
||||||
};
|
};
|
||||||
|
|
||||||
ocib = {
|
ocib = {
|
||||||
hostname = "140.238.211.43";
|
hostname = "140.238.211.43";
|
||||||
user = "root";
|
user = "root";
|
||||||
identityFile = "${secretsDir}/private-key-ocib";
|
#identityFile = "${secretsDir}/private-key-ocib";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -63,112 +71,15 @@
|
|||||||
lush ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFevbQp0XTZOVFZTDMKzgsZn4NNEIN+SFMqUhSbF5WFo
|
lush ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFevbQp0XTZOVFZTDMKzgsZn4NNEIN+SFMqUhSbF5WFo
|
||||||
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
|
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
|
||||||
rpi ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOX+6B6Axx7AqgCm1H1rrou/3yOLeOLcTd8s0In0mOIY
|
rpi ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOX+6B6Axx7AqgCm1H1rrou/3yOLeOLcTd8s0In0mOIY
|
||||||
|
files ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOX+6B6Axx7AqgCm1H1rrou/3yOLeOLcTd8s0In0mOIY
|
||||||
phone ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHxg0HKtGAkwymll8r17d9cXdt40dJgRkSAzB699pWke+edne4Ildcnbde2yle01nEL7GOg92vh5t1sh6vkCzJQ=
|
phone ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHxg0HKtGAkwymll8r17d9cXdt40dJgRkSAzB699pWke+edne4Ildcnbde2yle01nEL7GOg92vh5t1sh6vkCzJQ=
|
||||||
uwu ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE6H4kcLXH5hvXN8Ablcfo4q2MwdvVBiAdYWlc4qUiCj
|
uwu ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE6H4kcLXH5hvXN8Ablcfo4q2MwdvVBiAdYWlc4qUiCj
|
||||||
|
[phone]:8022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN30DqIE7AMYBoKnmbDw+U01LAEC25JZjIXB+T76LBp9
|
||||||
|
[phone]:8022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDSWFzU8GrAJD/CKJby8IbUzLtbXxwYBF+QQzSRIlbx5kCS2MQjjNtLjAMdt2c8z0O2+qX9abEZXmtYfYlHCo2nCFOhhkjuzT7t6lb14wjAK2HBBWOsh2Y1WSK35FzKtWJvmYcu1uWdDZrvu44PoFITJhCAoZG6QaGlhXVGk1lpasP1qA1/guX/LJYVUGww7oSjQeeAxjKFxrLK01iD1aS60IxIHZIT4yKe//YhppC8LkJc0OnRIzmCMdNIHNXIsg0dL/8to5vA85hqJlTJAZ9qhw542Ul5C34F2z69h4hf3eslIqvVL/tci86jgX4eYiVsUZ81jFtGN3As2RpcOLz8mrC1qZgHTLqix6PaNRrQeRcfvMIH0VOiyzAFEzBI/v0wj1zthRHOg+xKfAq1hKhXarJRYw0c0wmgPUoAOUQGwoF2JGIss7D7ulKTUd7ALn8fdS8+CboFSQ709OA44pSEsAl6IfXT/gh4zHwubfT3mRbla8iQAXYD/nKF5xPQ+Jc=
|
||||||
|
[phone]:8022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEN+gaX1uwr5oY98hJYGWwBQEEDpmbJsKLY7vIfWRQo02IH36ZC0p14GOnfPLtXuHz8AoNUp7UYyNu8oXxuU/fE=
|
||||||
|
[tab]:8022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCWnKy5TnPukGMkxYGLjs4Tpu/v3x8JfxaU7dcaAcp3KhxtUDPjdSQLGEIS08L781nGpIJZRdy+jNqKiolQRRTuy7eQaZnCO+ddYQldW2OpqVGbOjS/7T7cHy+aHFJdPiltdgagfPIPColYCGCCoMi3wN7VkR49MAYOr1a0YIlfh1y0PgCbGqkYCPKO90woXPYxI+v5trYHaqNDz9O5ug7k93AHQuTQroqfyzM9vhcg8z42EpDzTs+ypdgXJYOuc4ZbH1mWkou+1SPEZxMSoNUipmwkjQ5GCEwPIpSgRoRHh2WnXU8TmLLDVteJ7zUJlLR8p93rgmp2Uo1gePCsQNiqd4XrmdgdNypUifUE5M7V5LOcuCtZJfX0XZHoo+cvVKgQqpz8MIJAFOJzCXt39/gxcytDwSbN+B4oh9CR4kGGCST/griKpR3rl+PKDap1rpGZYBlPv0ss6RNZTVnIKuv6MaFXLmmrkpaKiFX3Bmze6820BO/LXz5qoLbL8dIf0s=
|
||||||
|
[tab]:8022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKY8+fJoEuAh0KlB9/g40ImJVcFEuksckgCA5BNK1gdhGsRBkN9LE16Wu07bzVbtBhdYoGDdflI9Hr6l1Y6gu0I=
|
||||||
|
[tab]:8022 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBPVAyWNCCzQSOzeYibuXNPExD7YKcNczvJfc44a3zeo
|
||||||
|
[tab]:8022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDdwFZf3IRa4YZyrNseofTRIDbkmdMiIXa3Gxs7wFzZN+ICwXeipfqV1Lh9C1sI4YnRIqfZlCSU+SE2dqVoQB6Uj64cdLrdslHYvgsR9PY3vVtrYypGfE1XTkLvD516x4mFofo22A9j8fK95fcMwpWLtNnv9SVBIT3V+4fUlbRCngdJ1V2cOd41JIwBrIxmRJ6X5v/SEqajmnVneqEmsqGgGA7JBJBCMSz5wwmZzWrTpzwj4SAD5b1z/R12DZfFHmgJCZYcMbjDgUiD5khsOwCCflH8DtO41PkOZRqDlpPPT9al7qhhESwxE6w5gIvaVh6HJljSCNw9OCQWONotv3gF9tVs6sZXsWxRZ2R0oIeA3rnM+mZxEtxElc2MKLVlsQ9SM2Xcr3J4Y43cWm7m03cDOz+iZecxs2qKAgn5Au72fudapDAtiCuYjKlMGEgbWX3CmxL0n/Uo32yfTRXnEHWMzXezmdGsuHUzk/sHTL8z5RVyzIBNl2HGlhldFbATuwRxXyBW9JIuEll+rW9Jm0MvpT3KoD/Q5aXDVH+21l6SSNBcjvZu00WNiYDD+gFR4BlewobtacGNOR4ErjxVZ10d8p6S5smadmo/RmbjhrVJK8EzigJPsVxEEjtuVq+jAQCvLTZCpEyDF/cBv60vIu4CyZkoAq1UaL64m7nIhR/8Yw==
|
||||||
'';
|
'';
|
||||||
|
|
||||||
home.file.".ssh/rpi/local".text = ''
|
|
||||||
Host config
|
|
||||||
HostName 192.168.1.2
|
|
||||||
User config
|
|
||||||
Port 49388
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
#RemoteCommand cd /svn/config; bash
|
|
||||||
|
|
||||||
Host rpi
|
|
||||||
HostName 192.168.1.2
|
|
||||||
User admin
|
|
||||||
Port 49388
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
|
|
||||||
Host files
|
|
||||||
HostName 192.168.1.2
|
|
||||||
User files
|
|
||||||
Port 49388
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
|
|
||||||
Host rpis
|
|
||||||
HostName 192.168.1.2
|
|
||||||
User server
|
|
||||||
Port 49388
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.file.".ssh/rpi/remote".text = ''
|
|
||||||
Host config
|
|
||||||
HostName sebastian.dns.army
|
|
||||||
User config
|
|
||||||
Port 49388
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
#RemoteCommand cd /svn/config; bash
|
|
||||||
|
|
||||||
Host rpi
|
|
||||||
HostName sebastian.dns.army
|
|
||||||
User admin
|
|
||||||
Port 49388
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
|
|
||||||
Host files
|
|
||||||
HostName sebastian.dns.army
|
|
||||||
User files
|
|
||||||
Port 49388
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
|
|
||||||
Host rpis
|
|
||||||
HostName sebastian.dns.army
|
|
||||||
User server
|
|
||||||
Port 49388
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.file.".ssh/rpi/wstunnel".text = ''
|
|
||||||
Host config
|
|
||||||
HostName localhost
|
|
||||||
User config
|
|
||||||
Port 55555
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
#RemoteCommand cd /svn/config; bash
|
|
||||||
|
|
||||||
Host rpi
|
|
||||||
HostName localhost
|
|
||||||
User admin
|
|
||||||
Port 55555
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
|
|
||||||
Host files
|
|
||||||
HostName localhost
|
|
||||||
User files
|
|
||||||
Port 55555
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
|
|
||||||
Host rpis
|
|
||||||
HostName localhost
|
|
||||||
User server
|
|
||||||
Port 55555
|
|
||||||
AddKeysToAgent yes
|
|
||||||
#UseKeychain yes
|
|
||||||
IdentityFile ${secretsDir}/private-key-main
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|||||||
0
programs/zathura.nix
Normal file → Executable file
0
programs/zathura.nix
Normal file → Executable file
0
scripts/nav/.nav_db
Normal file → Executable file
0
scripts/nav/.nav_db
Normal file → Executable file
0
scripts/nav/db
Normal file → Executable file
0
scripts/nav/db
Normal file → Executable file
0
scripts/nav/lf-raw-mode-shell-pipe/main.py
Normal file → Executable file
0
scripts/nav/lf-raw-mode-shell-pipe/main.py
Normal file → Executable file
0
scripts/nav/lf-raw-mode-shell-pipe/test.py
Normal file → Executable file
0
scripts/nav/lf-raw-mode-shell-pipe/test.py
Normal file → Executable file
0
scripts/nav/main.py
Normal file → Executable file
0
scripts/nav/main.py
Normal file → Executable file
0
scripts/size.py
Normal file → Executable file
0
scripts/size.py
Normal file → Executable file
34
scripts/sync-school.sh
Executable file
34
scripts/sync-school.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
filter=--exclude="./Forms"
|
||||||
|
|
||||||
|
# Geschichte
|
||||||
|
#echo "###################### Geschichte ######################"
|
||||||
|
#rclone copy -vv --exclude share-geschichte:Kursmaterialien/Forms share-geschichte:Kursmaterialien ~/work/htl/geschichte/class-materials/ 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/class-materials: /'
|
||||||
|
|
||||||
|
# DE
|
||||||
|
echo "########################## DE ##########################"
|
||||||
|
rclone copy -vv $filter share-de-class-materials: ~/work/htl/de/class-materials/ 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/class-materials: /'
|
||||||
|
|
||||||
|
|
||||||
|
# HWE
|
||||||
|
#echo "########################## HWE #########################"
|
||||||
|
#rclone copy -vv $fliter share-hwe:Freigegebene\ Dokumente/General ~/work/htl/projekt/teams-documents/ 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/teams-documents: /'
|
||||||
|
|
||||||
|
|
||||||
|
#rclone copy -vv $filter share-hwe:Class\ Files/Assignments ~/work/htl/projekt/assignments-teams 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/assignments-teams: /'
|
||||||
|
|
||||||
|
# DIC
|
||||||
|
echo "########################## DIC #########################"
|
||||||
|
rclone copy -vv $filter share-dic-teams-documents:General ~/work/htl/dic/teams-documents 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/teams-documents: /'
|
||||||
|
|
||||||
|
rclone copy -vv $filter share-dic-class-materials: ~/work/htl/dic/class-materials 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/class-materials: /'
|
||||||
|
|
||||||
|
|
||||||
|
# KSN
|
||||||
|
echo "########################## KSN #########################"
|
||||||
|
rclone copy -vv --exclude share-ksn-class-materials:Kursmaterialien/Forms $filter share-ksn-class-materials: ~/work/htl/ksn/class-materials 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/class-materials: /'
|
||||||
|
|
||||||
|
# M
|
||||||
|
echo "########################### M ##########################"
|
||||||
|
rclone copy -vv $filter share-math-teams-documents:General ~/work/htl/math/teams-documents 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/teams-documents: /'
|
||||||
|
rclone copy -vv $filter share-math-class-materials: ~/work/htl/math/class-materials 2>&1 >/dev/null | grep Copied --color=never | awk -F':' '{print $4}' | cut -c 2- | sed 's/^/class-materials: /'
|
||||||
@@ -9,7 +9,7 @@ default_vm_uuid=win
|
|||||||
#default_vm_uuid=6a412143-871f-4838-bacd-5dcfa5fa95c3
|
#default_vm_uuid=6a412143-871f-4838-bacd-5dcfa5fa95c3
|
||||||
|
|
||||||
username=me
|
username=me
|
||||||
password=$(cat ~/.mysecrets/win-vm-pwd)
|
password=$(cat ~/work/here/secrets/win-vm-pwd)
|
||||||
|
|
||||||
if [ "$1" == "-o" ];then
|
if [ "$1" == "-o" ];then
|
||||||
cmd=$5
|
cmd=$5
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{ config, pkgs, self, secretsDir, inputs, persistentDir, ... }:
|
{ config, pkgs, self, secretsDir, inputs, hostname, ... }:
|
||||||
{
|
{
|
||||||
# The home.stateVersion option does not have a default and must be set
|
# The home.stateVersion option does not have a default and must be set
|
||||||
home.stateVersion = "23.05";
|
home.stateVersion = "23.05";
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
@@ -24,15 +25,21 @@
|
|||||||
|
|
||||||
home.sessionPath = [ "${self}/mybin" ];
|
home.sessionPath = [ "${self}/mybin" ];
|
||||||
home.file = {
|
home.file = {
|
||||||
".rclone.conf".source = config.lib.file.mkOutOfStoreSymlink "${secretsDir}/rclone-conf";
|
|
||||||
".subversion/config".text = ''
|
".subversion/config".text = ''
|
||||||
[miscellany]
|
[miscellany]
|
||||||
global-ignores = node_modules target
|
global-ignores = node_modules target
|
||||||
''; # documentation for this config file: https://svnbook.red-bean.com/en/1.7/svn.advanced.confarea.html
|
''; # documentation for this config file: https://svnbook.red-bean.com/en/1.7/svn.advanced.confarea.html
|
||||||
};
|
|
||||||
|
# rclone.conf only on main
|
||||||
|
} // (if hostname == "main" then { ".rclone.conf".source = config.lib.file.mkOutOfStoreSymlink "${secretsDir}/rclone-conf"; } else {});
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
hostname
|
borgbackup
|
||||||
|
rclone
|
||||||
|
archivemount
|
||||||
|
nmon
|
||||||
|
pkgs.hostname
|
||||||
vim
|
vim
|
||||||
tree
|
tree
|
||||||
htop
|
htop
|
||||||
@@ -52,6 +59,9 @@
|
|||||||
wget
|
wget
|
||||||
tmux
|
tmux
|
||||||
wireguard-tools
|
wireguard-tools
|
||||||
|
xorg.xauth
|
||||||
|
wakeonlan
|
||||||
|
|
||||||
# python....
|
# python....
|
||||||
(python310.withPackages (p: with p; [
|
(python310.withPackages (p: with p; [
|
||||||
pandas
|
pandas
|
||||||
@@ -75,6 +85,10 @@
|
|||||||
'';
|
'';
|
||||||
}))
|
}))
|
||||||
# */
|
# */
|
||||||
|
|
||||||
|
# self packaged colored bandwith meter
|
||||||
|
(pkgs.callPackage ../../mods/cbm.nix {})
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# */
|
# */
|
||||||
|
|||||||
@@ -3,7 +3,9 @@
|
|||||||
users.users.files = {
|
users.users.files = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
password = "changeme";
|
password = "changeme";
|
||||||
|
group = "files";
|
||||||
};
|
};
|
||||||
|
users.groups.files = {};
|
||||||
|
|
||||||
home-manager.extraSpecialArgs = {
|
home-manager.extraSpecialArgs = {
|
||||||
inherit self;
|
inherit self;
|
||||||
@@ -13,9 +15,9 @@
|
|||||||
home-manager.users.files = import ../common/home.nix;
|
home-manager.users.files = import ../common/home.nix;
|
||||||
|
|
||||||
users.users.files.openssh.authorizedKeys.keys = [
|
users.users.files.openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFjgXf9S9hxjyph2EEFh1el0z4OUT9fMoFAaDanjiuKa me@main"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICWsqiz0gEepvPONYxqhKKq4Vxfe1h+jo11k88QozUch me@bitwarden"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAioUu4ow6k+OMjjLdzogiQM4ZEM3TNekGNasaSDzQQE me@phone"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone"
|
||||||
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPmwi4ovyqhX/5YwGUZqntVD+i44qL+Nxf9Ubj4XxV9n me@acern"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPmwi4ovyqhX/5YwGUZqntVD+i44qL+Nxf9Ubj4XxV9n me@acern"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAIh7LDjwojcjJM8puPqFibx9zPn/k1cYgWXNQf0ZbC4 me@hpm"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAIh7LDjwojcjJM8puPqFibx9zPn/k1cYgWXNQf0ZbC4 me@hpm"
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
{ pkgs, secretsDir, inputs, ... }:
|
|
||||||
{
|
|
||||||
users.users.me = {
|
|
||||||
isNormalUser = true;
|
|
||||||
#passwordFile = "${secretsDir}/me-pwd";
|
|
||||||
password = "changeme";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" "libvirtd" ]; # Enable ‘sudo’ for the user.
|
|
||||||
};
|
|
||||||
|
|
||||||
#home-manager._module.args = { inherit inputs; };
|
|
||||||
home-manager.users.me = import ./home.nix;
|
|
||||||
|
|
||||||
fonts.fonts = with pkgs; [
|
|
||||||
hack-font
|
|
||||||
];
|
|
||||||
}
|
|
||||||
86
users/me/home.nix → users/me/gui-home.nix
Normal file → Executable file
86
users/me/home.nix → users/me/gui-home.nix
Normal file → Executable file
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
{ config, pkgs, self, secretsDir, inputs, persistentDir, ... }:
|
{ config, pkgs, self, workDir, inputs, persistentDir, system, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -7,9 +7,11 @@
|
|||||||
|
|
||||||
# my gui programs
|
# my gui programs
|
||||||
../../programs/alacritty.nix
|
../../programs/alacritty.nix
|
||||||
../../programs/emacs/default.nix
|
# stalls the build
|
||||||
|
#../../programs/emacs/default.nix
|
||||||
../../programs/rofi/default.nix
|
../../programs/rofi/default.nix
|
||||||
../../programs/zathura.nix
|
../../programs/zathura.nix
|
||||||
|
../../programs/firefox/default.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
gtk.cursorTheme = {
|
gtk.cursorTheme = {
|
||||||
@@ -23,19 +25,24 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
inherit system;
|
||||||
|
};
|
||||||
|
|
||||||
services.dunst.enable = true;
|
services.dunst.enable = true;
|
||||||
|
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".mysecrets/root-pwd".text = "changeme";
|
".mysecrets/root-pwd".text = "changemehiiii";
|
||||||
".mysecrets/me-pwd".text = "changeme";
|
".mysecrets/me-pwd".text = "changeme";
|
||||||
|
|
||||||
".mozilla/firefox".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/firefox";
|
#".mozilla/firefox".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/firefox";
|
||||||
".cache/rofi-3.runcache".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/rofi-run-cache";
|
".cache/rofi-3.runcache".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/rofi-run-cache";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
btrfs-progs
|
||||||
|
|
||||||
# packages that i might not need everywhere??
|
# packages that i might not need everywhere??
|
||||||
wstunnel
|
wstunnel
|
||||||
@@ -77,20 +84,18 @@
|
|||||||
gparted
|
gparted
|
||||||
xorg.xkill
|
xorg.xkill
|
||||||
xorg.xmodmap
|
xorg.xmodmap
|
||||||
|
inkscape
|
||||||
|
|
||||||
# my own packages
|
# my own packages
|
||||||
supabase-cli
|
supabase-cli
|
||||||
|
|
||||||
(inputs.firefox.packages.${pkgs.system}.firefox-nightly-bin.overrideAttrs (old: {
|
|
||||||
NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" "-fPIC" ];
|
|
||||||
}))
|
|
||||||
|
|
||||||
# base-devel
|
# base-devel
|
||||||
gcc
|
gcc
|
||||||
|
|
||||||
# rust
|
# rust
|
||||||
cargo
|
cargo
|
||||||
rust-analyzer
|
rust-analyzer
|
||||||
|
rustc
|
||||||
|
|
||||||
#localPacketTracer8
|
#localPacketTracer8
|
||||||
|
|
||||||
@@ -101,26 +106,52 @@
|
|||||||
libvirt
|
libvirt
|
||||||
virt-manager
|
virt-manager
|
||||||
freerdp
|
freerdp
|
||||||
|
(pkgs.writeShellApplication {
|
||||||
|
name = "log";
|
||||||
|
#runtimeInputs = [ inputs.my-log.packages.${system}.pythonForLog ];
|
||||||
|
#text = "cd /home/me/work/log/new; nix develop -c 'python ${workDir}/log/new/client.py'";
|
||||||
|
text = ''${inputs.my-log.packages.${system}.pythonForLog}/bin/python ${workDir}/log/new/client.py "$@"'';
|
||||||
|
})
|
||||||
(pkgs.writeShellApplication {
|
(pkgs.writeShellApplication {
|
||||||
name = "rpi";
|
name = "rpi";
|
||||||
text = let
|
text = let
|
||||||
myPythonRpi = pkgs.writers.writePython3Bin "myPythonRpi" { libraries = [pkgs.python310Packages.dnspython]; } ''
|
myPythonRpi = pkgs.writers.writePython3Bin "myPythonRpi" { libraries = [pkgs.python311Packages.dnspython]; } ''
|
||||||
# flake8: noqa
|
# flake8: noqa
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
import dns.resolver
|
import dns.resolver
|
||||||
|
|
||||||
|
import socket, struct
|
||||||
|
|
||||||
|
def get_default_gateway_linux():
|
||||||
|
"""Read the default gateway directly from /proc."""
|
||||||
|
with open("/proc/net/route") as fh:
|
||||||
|
for line in fh:
|
||||||
|
fields = line.strip().split()
|
||||||
|
if fields[1] != '00000000' or not int(fields[3], 16) & 2:
|
||||||
|
# If not default route or not RTF_GATEWAY, skip it
|
||||||
|
continue
|
||||||
|
if fields[0] != "wlp2s0":
|
||||||
|
# only check on wlan interface
|
||||||
|
continue
|
||||||
|
|
||||||
|
return socket.inet_ntoa(struct.pack("<L", int(fields[2], 16)))
|
||||||
|
|
||||||
pw_map = {
|
pw_map = {
|
||||||
"tab": "00:0a:50:90:f1:00",
|
"tab": "00:0a:50:90:f1:00",
|
||||||
"phone": "86:9d:6a:bc:ca:1b",
|
# "phone": "86:9d:6a:bc:ca:1b", # can't do that, because phone changes mac address on reactivation of hotspot
|
||||||
|
"lush": "dc:a6:32:cb:4d:5f",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if len(sys.argv) == 1:
|
if len(sys.argv) == 1:
|
||||||
print("one arg needed")
|
with open("/etc/hosts", "r") as file:
|
||||||
|
for line in file.readlines():
|
||||||
|
print(line, end="")
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
net = sys.argv[1]
|
net = sys.argv[1]
|
||||||
|
|
||||||
|
|
||||||
@@ -154,8 +185,32 @@
|
|||||||
|
|
||||||
|
|
||||||
if net == "pw":
|
if net == "pw":
|
||||||
|
# get phone from default route
|
||||||
|
old["phone"] = get_default_gateway_linux()
|
||||||
|
print("default route: phone with ip ", old["phone"])
|
||||||
|
|
||||||
|
# search arp table
|
||||||
|
with os.popen('arp -a') as f:
|
||||||
|
data = f.read()
|
||||||
|
for line in data.split("\n"):
|
||||||
|
try:
|
||||||
|
parts = line.split(" ")
|
||||||
|
mac = parts[3]
|
||||||
|
ip = parts[1][1:-1]
|
||||||
|
for name, mac_table in pw_map.items():
|
||||||
|
#print("trying mac:", mac, "from arp table:", parts)
|
||||||
|
if mac == mac_table:
|
||||||
|
# found name
|
||||||
|
print(f"arp table: {name} with ip {ip}")
|
||||||
|
old[name] = ip
|
||||||
|
except:
|
||||||
|
print("arp table line failed:", line)
|
||||||
|
continue
|
||||||
|
|
||||||
|
# do arp scan
|
||||||
ips = subprocess.run(["sudo", "${pkgs.arp-scan}/bin/arp-scan", "-l", "-x", "-I", "wlp2s0"], capture_output=True)
|
ips = subprocess.run(["sudo", "${pkgs.arp-scan}/bin/arp-scan", "-l", "-x", "-I", "wlp2s0"], capture_output=True)
|
||||||
for line in ips.stdout.decode("utf-8").split("\n"):
|
for line in ips.stdout.decode("utf-8").split("\n"):
|
||||||
|
#print("arp-scan line:", line)
|
||||||
try:
|
try:
|
||||||
split = line.split("\t")
|
split = line.split("\t")
|
||||||
ip = split[0]
|
ip = split[0]
|
||||||
@@ -167,10 +222,15 @@
|
|||||||
for name, mac_table in pw_map.items():
|
for name, mac_table in pw_map.items():
|
||||||
if mac == mac_table:
|
if mac == mac_table:
|
||||||
# found name
|
# found name
|
||||||
print(f"found {name} with ip {ip}")
|
print(f"arp-scan: {name} with ip {ip}")
|
||||||
old[name] = ip
|
old[name] = ip
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
os.system("rm -rf /etc/hosts")
|
os.system("rm -rf /etc/hosts")
|
||||||
with open("/etc/hosts", "w") as file:
|
with open("/etc/hosts", "w") as file:
|
||||||
lines = []
|
lines = []
|
||||||
@@ -12,16 +12,18 @@
|
|||||||
hostname = config.networking.hostName;
|
hostname = config.networking.hostName;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.me = import ./home.nix;
|
home-manager.users.me = import ./gui-home.nix;
|
||||||
|
#home-manager.useGlobalPkgs = true;
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
fonts.fonts = with pkgs; [
|
fonts.fonts = with pkgs; [
|
||||||
hack-font
|
hack-font
|
||||||
];
|
];
|
||||||
|
|
||||||
users.users.me.openssh.authorizedKeys.keys = [
|
users.users.me.openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFjgXf9S9hxjyph2EEFh1el0z4OUT9fMoFAaDanjiuKa me@main"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICWsqiz0gEepvPONYxqhKKq4Vxfe1h+jo11k88QozUch me@bitwarden"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAioUu4ow6k+OMjjLdzogiQM4ZEM3TNekGNasaSDzQQE me@phone"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone"
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ self, config, inputs, ... }:
|
{ self, config, inputs, system, ... }:
|
||||||
{
|
{
|
||||||
users.users.me = {
|
users.users.me = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
@@ -8,16 +8,16 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
home-manager.extraSpecialArgs = {
|
home-manager.extraSpecialArgs = {
|
||||||
inherit self;
|
inherit self system;
|
||||||
hostname = config.networking.hostName;
|
hostname = config.networking.hostName;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.me = import ../common/home.nix;
|
home-manager.users.me = import ../common/home.nix;
|
||||||
|
|
||||||
users.users.me.openssh.authorizedKeys.keys = [
|
users.users.me.openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFjgXf9S9hxjyph2EEFh1el0z4OUT9fMoFAaDanjiuKa me@main"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICWsqiz0gEepvPONYxqhKKq4Vxfe1h+jo11k88QozUch me@bitwarden"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAioUu4ow6k+OMjjLdzogiQM4ZEM3TNekGNasaSDzQQE me@phone"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
7
users/root/default.nix
Normal file → Executable file
7
users/root/default.nix
Normal file → Executable file
@@ -1,4 +1,9 @@
|
|||||||
{ ... }:
|
{ self, config, secretsDir, ... }:
|
||||||
{
|
{
|
||||||
home-manager.users.root = import ./home.nix;
|
home-manager.users.root = import ./home.nix;
|
||||||
|
home-manager.extraSpecialArgs = {
|
||||||
|
inherit self secretsDir;
|
||||||
|
hostname = config.networking.hostName;
|
||||||
|
test = 3;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,5 +7,4 @@
|
|||||||
../../programs/ssh.nix
|
../../programs/ssh.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.file.test.text = "hello world\n";
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,10 @@
|
|||||||
users.users.server = {
|
users.users.server = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
#passwordFile = "${secretsDir}/me-pwd";
|
#passwordFile = "${secretsDir}/me-pwd";
|
||||||
|
group = "server";
|
||||||
password = "changeme";
|
password = "changeme";
|
||||||
};
|
};
|
||||||
|
users.groups.server = {};
|
||||||
|
|
||||||
home-manager.extraSpecialArgs = {
|
home-manager.extraSpecialArgs = {
|
||||||
inherit self;
|
inherit self;
|
||||||
@@ -14,9 +16,9 @@
|
|||||||
home-manager.users.server = import ../common/home.nix;
|
home-manager.users.server = import ../common/home.nix;
|
||||||
|
|
||||||
users.users.server.openssh.authorizedKeys.keys = [
|
users.users.server.openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFjgXf9S9hxjyph2EEFh1el0z4OUT9fMoFAaDanjiuKa me@main"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICWsqiz0gEepvPONYxqhKKq4Vxfe1h+jo11k88QozUch me@bitwarden"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAioUu4ow6k+OMjjLdzogiQM4ZEM3TNekGNasaSDzQQE me@phone"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1
virtchord/all-list
Executable file
1
virtchord/all-list
Executable file
@@ -0,0 +1 @@
|
|||||||
|
think with take things only know work because the that have actually maybe just your name there this amazing does want down here doing sebastian hello there heart though her mountain what going good night mount almost also always animal another answer being begin between change children different picture plant quick quickly read say said second sentence should something sometimes
|
||||||
1
virtchord/chords-de.conf
Executable file
1
virtchord/chords-de.conf
Executable file
@@ -0,0 +1 @@
|
|||||||
|
hl=hallo
|
||||||
103
virtchord/chords-en.conf
Executable file
103
virtchord/chords-en.conf
Executable file
@@ -0,0 +1,103 @@
|
|||||||
|
wht=what
|
||||||
|
engli=english
|
||||||
|
thy=they
|
||||||
|
most=most
|
||||||
|
frm=from
|
||||||
|
mst=must
|
||||||
|
wh=who
|
||||||
|
who=without
|
||||||
|
mak=make
|
||||||
|
abu=about
|
||||||
|
hap=happen
|
||||||
|
wi=will
|
||||||
|
time=time
|
||||||
|
yer=year
|
||||||
|
new=new
|
||||||
|
whn=when
|
||||||
|
not=nothing
|
||||||
|
wor=worry
|
||||||
|
som=some
|
||||||
|
int=into
|
||||||
|
se=see
|
||||||
|
him=him
|
||||||
|
com=come
|
||||||
|
coud=could
|
||||||
|
now=now
|
||||||
|
tha=than
|
||||||
|
thn=then
|
||||||
|
mor=more
|
||||||
|
lk=look
|
||||||
|
find=find
|
||||||
|
gi=give
|
||||||
|
many=many
|
||||||
|
whr=where
|
||||||
|
thk=think
|
||||||
|
wih=with
|
||||||
|
tak=take
|
||||||
|
thi=thing
|
||||||
|
this=things
|
||||||
|
onl=only
|
||||||
|
impt=important
|
||||||
|
poe=people
|
||||||
|
wud=would
|
||||||
|
prbe=problems
|
||||||
|
ab=able
|
||||||
|
whic=which
|
||||||
|
rel=really
|
||||||
|
#
|
||||||
|
#
|
||||||
|
knw=know
|
||||||
|
wk=work
|
||||||
|
bc=because
|
||||||
|
th=the
|
||||||
|
ta=that
|
||||||
|
hv=have
|
||||||
|
acu=actually
|
||||||
|
my=maybe
|
||||||
|
jst=just
|
||||||
|
yu=your
|
||||||
|
nme=name
|
||||||
|
the=there
|
||||||
|
ths=this
|
||||||
|
amz=amazing
|
||||||
|
ds=does
|
||||||
|
wnt=want
|
||||||
|
dwn=down
|
||||||
|
her=here
|
||||||
|
dn=doing
|
||||||
|
sbn=sebastian
|
||||||
|
hl=hello
|
||||||
|
the=there
|
||||||
|
hrt=heart
|
||||||
|
tho=though
|
||||||
|
hr=her
|
||||||
|
mnta=mountain
|
||||||
|
gn=going
|
||||||
|
gd=good
|
||||||
|
gni=night
|
||||||
|
mnt=mount
|
||||||
|
alm=almost
|
||||||
|
als=also
|
||||||
|
alw=always
|
||||||
|
ani=animal
|
||||||
|
anot=another
|
||||||
|
anwer=answer
|
||||||
|
be=being
|
||||||
|
bg=begin
|
||||||
|
bwn=between
|
||||||
|
chan=change
|
||||||
|
chil=children
|
||||||
|
dfi=different
|
||||||
|
pic=picture
|
||||||
|
pnt=plant
|
||||||
|
quk=quick
|
||||||
|
qukl=quickly
|
||||||
|
rd=read
|
||||||
|
sa=say
|
||||||
|
sad=said
|
||||||
|
sec=second
|
||||||
|
sent=sentence
|
||||||
|
shd=should
|
||||||
|
smth=something
|
||||||
|
smti=sometimes
|
||||||
|
|
||||||
1
virtchord/current-list
Executable file
1
virtchord/current-list
Executable file
@@ -0,0 +1 @@
|
|||||||
|
english they most from must who make about happen will time year new when nothing worry some into see him come could now more look find give many only important able amazing also always another answer being begin between change
|
||||||
123
virtchord/de-chords-backup
Executable file
123
virtchord/de-chords-backup
Executable file
@@ -0,0 +1,123 @@
|
|||||||
|
#Angebot
|
||||||
|
#Anspruch
|
||||||
|
#Einschätzung
|
||||||
|
#Derjenige
|
||||||
|
#Indem
|
||||||
|
#Kunden
|
||||||
|
#Konsequenzen
|
||||||
|
#
|
||||||
|
gts=Gestern
|
||||||
|
hl=hallo
|
||||||
|
nme=Name
|
||||||
|
brg=Berg
|
||||||
|
ab=aber
|
||||||
|
au=außer
|
||||||
|
aum=außerdem
|
||||||
|
bld=Bild
|
||||||
|
ds=das
|
||||||
|
dr=der
|
||||||
|
di=die
|
||||||
|
dsh=Deshalb
|
||||||
|
dat=Daten
|
||||||
|
ding=Dinge
|
||||||
|
end=Ende
|
||||||
|
efah=Erfahrungen
|
||||||
|
fot=Fotos
|
||||||
|
gda=Gedanken
|
||||||
|
gesn=Gegensatz
|
||||||
|
gd=Geld
|
||||||
|
hrz=Herzen
|
||||||
|
hnd=Hand
|
||||||
|
ic=ich
|
||||||
|
irga=Irgendwann
|
||||||
|
jd=jeder
|
||||||
|
leut=Leute
|
||||||
|
men=Menü
|
||||||
|
mitar=Mitarbeiter
|
||||||
|
mnat=Monat
|
||||||
|
mogl=Möglichkeit
|
||||||
|
onl=online
|
||||||
|
pers=Person
|
||||||
|
prs=Preis
|
||||||
|
risk=Risiko
|
||||||
|
sbn=Sebastian
|
||||||
|
shr=Sehr
|
||||||
|
slb=Selbst
|
||||||
|
verl=Vergleich
|
||||||
|
vid=Video
|
||||||
|
wn=Wenn
|
||||||
|
werb=Werbung
|
||||||
|
wi=Wie
|
||||||
|
ab=aber
|
||||||
|
akze=akzeptabel
|
||||||
|
al=alle
|
||||||
|
als=also
|
||||||
|
ansch=anschauen
|
||||||
|
auc=auch
|
||||||
|
auf=auf
|
||||||
|
be=bei
|
||||||
|
bei=beim
|
||||||
|
bek=bekommen
|
||||||
|
bem=bemerken
|
||||||
|
bst=beste
|
||||||
|
bev=bevor
|
||||||
|
bi=bin
|
||||||
|
bleit=bleibt
|
||||||
|
brau=brauchen
|
||||||
|
dam=damit
|
||||||
|
dan=dann
|
||||||
|
dar=darauf
|
||||||
|
dari=darin
|
||||||
|
dav=davon
|
||||||
|
daz=dazu
|
||||||
|
dm=dem
|
||||||
|
dn=den
|
||||||
|
dis=diese
|
||||||
|
einf=einfach
|
||||||
|
ents=entsprechen
|
||||||
|
fls=falls
|
||||||
|
ge=gegen
|
||||||
|
gen=genau
|
||||||
|
ges=gesund
|
||||||
|
gbt=gibt
|
||||||
|
haben
|
||||||
|
gt=gut
|
||||||
|
hofe=hoffe
|
||||||
|
jdn=jeden
|
||||||
|
jdr=jeder
|
||||||
|
jzt=jetzt
|
||||||
|
kn=kann
|
||||||
|
ken=kein
|
||||||
|
kmpt=komplett
|
||||||
|
mac=machen
|
||||||
|
nemh=nehmen
|
||||||
|
nic=nicht
|
||||||
|
naml=nämlich
|
||||||
|
ohn=ohne
|
||||||
|
past=passiert
|
||||||
|
shn=schon
|
||||||
|
hsr=sehr
|
||||||
|
sich=sicher
|
||||||
|
snd=sind
|
||||||
|
soch=solche
|
||||||
|
son=sondern
|
||||||
|
tagl=täglichen
|
||||||
|
nd=und
|
||||||
|
viel=viel
|
||||||
|
vm=vom
|
||||||
|
vn=von
|
||||||
|
weg=wegen
|
||||||
|
weng=weniger
|
||||||
|
wenig=wenigstens
|
||||||
|
wen=wenn
|
||||||
|
wer=werden
|
||||||
|
wi=wie
|
||||||
|
wid=wieder
|
||||||
|
wir=wir
|
||||||
|
wr=wird
|
||||||
|
wis=wissen
|
||||||
|
wol=wollen
|
||||||
|
wur=würde
|
||||||
|
zahl=zahlen
|
||||||
|
zeig=zeigen
|
||||||
|
uber=über
|
||||||
1
virtchord/easy-list
Executable file
1
virtchord/easy-list
Executable file
@@ -0,0 +1 @@
|
|||||||
|
country different picture plant quick quickly read say said second sentence should something sometimes know work because the that have actually maybe just should your name there this amazing does want down
|
||||||
4
virtchord/en-future
Executable file
4
virtchord/en-future
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
same
|
||||||
|
obviously
|
||||||
|
would
|
||||||
|
more
|
||||||
7
virtchord/get-chords.sh
Executable file
7
virtchord/get-chords.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
if [ "$1" == "" ]
|
||||||
|
then
|
||||||
|
num=0
|
||||||
|
else
|
||||||
|
num=$1
|
||||||
|
fi
|
||||||
|
cat chords-en.conf | grep -v "^#" | awk -F = '{print $2}' | tr "\n" " "
|
||||||
50
virtchord/key-map.conf
Executable file
50
virtchord/key-map.conf
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
#KEY_ESC = 1,
|
||||||
|
2=1
|
||||||
|
3=2
|
||||||
|
4=3
|
||||||
|
5=4
|
||||||
|
6=5
|
||||||
|
7=6
|
||||||
|
8=7
|
||||||
|
9=8
|
||||||
|
10=9
|
||||||
|
11=0
|
||||||
|
12=-
|
||||||
|
#13==......Problems
|
||||||
|
#14=
|
||||||
|
#15=
|
||||||
|
16=q
|
||||||
|
17=w
|
||||||
|
18=e
|
||||||
|
19=r
|
||||||
|
20=t
|
||||||
|
21=z
|
||||||
|
22=u
|
||||||
|
23=i
|
||||||
|
24=o
|
||||||
|
25=p
|
||||||
|
#26=
|
||||||
|
#27=
|
||||||
|
#28=
|
||||||
|
#29=
|
||||||
|
30=a
|
||||||
|
31=s
|
||||||
|
32=d
|
||||||
|
33=f
|
||||||
|
34=g
|
||||||
|
35=h
|
||||||
|
36=j
|
||||||
|
37=k
|
||||||
|
38=l
|
||||||
|
#39=;
|
||||||
|
#40=
|
||||||
|
#41=
|
||||||
|
#42=
|
||||||
|
#43=
|
||||||
|
44=y
|
||||||
|
45=x
|
||||||
|
46=c
|
||||||
|
47=v
|
||||||
|
48=b
|
||||||
|
49=n
|
||||||
|
50=m
|
||||||
8
virtchord/main.conf
Executable file
8
virtchord/main.conf
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
chord.active-key-map=my
|
||||||
|
chord.active-profile=en
|
||||||
|
# laptop keyboard
|
||||||
|
keyboard.device-path=/dev/input/by-path/platform-i8042-serio-0-event-kbd
|
||||||
|
# 4 is laptop keyboard
|
||||||
|
# external keyboard
|
||||||
|
#keyboard.device-path=/dev/input/by-id/usb-SEMICO_USB_Keyboard-event-kbd
|
||||||
|
chord.max-time=30
|
||||||
Reference in New Issue
Block a user