feat: switched desktop
feat: sway is running
This commit is contained in:
parent
b0a8e65480
commit
a4a076b901
|
@ -83,6 +83,11 @@
|
||||||
- Alternatively boot an official nixos image connect with password
|
- Alternatively boot an official nixos image connect with password
|
||||||
3. Copy ISO to usb using dd
|
3. Copy ISO to usb using dd
|
||||||
3. After booting copy the installer to the live system using `nix copy --to <target> .#packages.<target-system>.installer-package.<target>`
|
3. After booting copy the installer to the live system using `nix copy --to <target> .#packages.<target-system>.installer-package.<target>`
|
||||||
|
4. Run the installer script from the nix store of the live system
|
||||||
|
- you can get the path using `nix path-info .#packages.<target-system>.installer-package.<target>`
|
||||||
|
4. Export all zpools and reboot into system
|
||||||
|
6. Retrieve hostkeys using `ssh-keyscan <host> | grep -o 'ssh-ed25519.*' > host/<target>/secrets/host.pub
|
||||||
|
5. Deploy system using colmena
|
||||||
|
|
||||||
|
|
||||||
## Deploy
|
## Deploy
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{lib, ...}: {
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = true;
|
useNetworkd = true;
|
||||||
dhcpcd.enable = false;
|
dhcpcd.enable = false;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
boot = {
|
boot = {
|
||||||
initrd.systemd.enable = true;
|
initrd.systemd.enable = true;
|
||||||
initrd.systemd.emergencyAccess = true;
|
initrd.systemd.emergencyAccess = true;
|
||||||
initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" "rtsx_pci_sdmmc"];
|
initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" "rtsx_pci_sdmmc" "ahci" "uas"];
|
||||||
supportedFilesystems = ["ntfs"];
|
supportedFilesystems = ["ntfs"];
|
||||||
kernelModules = ["kvm-intel"];
|
kernelModules = ["kvm-intel"];
|
||||||
tmp.useTmpfs = true;
|
tmp.useTmpfs = true;
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland = {
|
||||||
|
enableNvidiaPatches = true;
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
services.dbus.enable = true;
|
services.dbus.enable = true;
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -4,14 +4,13 @@
|
||||||
hardware = {
|
hardware = {
|
||||||
opengl = {
|
opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
};
|
};
|
||||||
nvidia = {
|
nvidia = {
|
||||||
powerManagement = {
|
powerManagement.enable = true;
|
||||||
enable = true;
|
|
||||||
finegrained = true;
|
|
||||||
};
|
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
|
open = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
../common/hardware/bluetooth.nix
|
../common/hardware/bluetooth.nix
|
||||||
../common/hardware/intel.nix
|
../common/hardware/intel.nix
|
||||||
|
../common/hardware/nvidia.nix
|
||||||
../common/hardware/physical.nix
|
../common/hardware/physical.nix
|
||||||
../common/hardware/pipewire.nix
|
../common/hardware/pipewire.nix
|
||||||
../common/hardware/yubikey.nix
|
../common/hardware/yubikey.nix
|
||||||
|
|
|
@ -47,4 +47,6 @@
|
||||||
panzer = defaultZpoolOptions // {datasets = {};};
|
panzer = defaultZpoolOptions // {datasets = {};};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
boot.initrd.luks.devices.enc-rpool.allowDiscards = true;
|
||||||
|
boot.initrd.luks.devices.enc-infantry-fighting-vehicle.allowDiscards = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,10 @@
|
||||||
DHCP = "yes";
|
DHCP = "yes";
|
||||||
matchConfig.MACAddress = config.secrets.secrets.local.networking.lan1.mac;
|
matchConfig.MACAddress = config.secrets.secrets.local.networking.lan1.mac;
|
||||||
dns = ["192.168.178.2"];
|
dns = ["192.168.178.2"];
|
||||||
|
networkConfig = {
|
||||||
|
IPv6PrivacyExtensions = "yes";
|
||||||
|
MulticastDNS = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
0
hosts/desktopnix/secrets/host.pub
Normal file
0
hosts/desktopnix/secrets/host.pub
Normal file
Binary file not shown.
|
@ -23,4 +23,5 @@
|
||||||
rpool = defaultZpoolOptions // {datasets = defaultZfsDatasets;};
|
rpool = defaultZpoolOptions // {datasets = defaultZfsDatasets;};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
boot.initrd.luks.devices.enc-rpool.allowDiscards = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
partitions = [
|
partitions = [
|
||||||
(partEfiBoot "boot" "0%" "1GiB")
|
(partEfiBoot "boot" "0%" "1GiB")
|
||||||
(partSwap "swap" "1GiB" "17GiB")
|
(partSwap "swap" "1GiB" "17GiB")
|
||||||
(partLuksZfs "rpool" "rpool" "17GiB" "100%")
|
(lib.attrsets.recursiveUpdate (partLuksZfs "rpool" "rpool" "17GiB" "100%") {content.extraFormatArgs = ["--pbkdf pbkdf2"];})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
type = "table";
|
type = "table";
|
||||||
format = "gpt";
|
format = "gpt";
|
||||||
partitions = [
|
partitions = [
|
||||||
(partLuksZfs "panzer-1" "panzer" "0%" "100%")
|
(lib.attrsets.recursiveUpdate (partLuksZfs "panzer-1" "panzer" "0%" "100%") {content.extraFormatArgs = ["--pbkdf pbkdf2"];})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
type = "table";
|
type = "table";
|
||||||
format = "gpt";
|
format = "gpt";
|
||||||
partitions = [
|
partitions = [
|
||||||
(partLuksZfs "panzer-2" "panzer" "0%" "100%")
|
(lib.attrsets.recursiveUpdate (partLuksZfs "panzer-2" "panzer" "0%" "100%") {content.extraFormatArgs = ["--pbkdf pbkdf2"];})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -54,4 +54,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices.enc-rpool.allowDiscards = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,10 @@
|
||||||
DHCP = "yes";
|
DHCP = "yes";
|
||||||
matchConfig.MACAddress = config.secrets.secrets.local.networking.lan1.mac;
|
matchConfig.MACAddress = config.secrets.secrets.local.networking.lan1.mac;
|
||||||
dns = ["192.168.178.2"];
|
dns = ["192.168.178.2"];
|
||||||
|
networkConfig = {
|
||||||
|
IPv6PrivacyExtensions = "yes";
|
||||||
|
MulticastDNS = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
1
hosts/testienix/secrets/host.pub
Normal file
1
hosts/testienix/secrets/host.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB9g6E+f7XMSE4V2YDdw5kZjWpV9o1G4JPKb6f3SHjO4
|
|
@ -28,7 +28,7 @@ inputs: self: super: {
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "enc-${name}";
|
name = "enc-${name}";
|
||||||
extraOpenArgs = ["--allow-discard"];
|
extraOpenArgs = ["--allow-discards"];
|
||||||
content = {
|
content = {
|
||||||
type = "zfs";
|
type = "zfs";
|
||||||
inherit pool;
|
inherit pool;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./graphical/kitty.nix
|
./kitty.nix
|
||||||
./graphical/hyprland
|
./sway
|
||||||
./graphical/rofi.nix
|
./rofi.nix
|
||||||
./graphical/firefox.nix
|
./firefox.nix
|
||||||
];
|
];
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
|
@ -1,88 +1,94 @@
|
||||||
MOD: TAGS: pkgs:
|
MOD: TAGS: pkgs:
|
||||||
''
|
''
|
||||||
general {
|
general {
|
||||||
gaps_in = 1
|
gaps_in = 1
|
||||||
gaps_out = 0
|
gaps_out = 0
|
||||||
no_cursor_warps = true
|
no_cursor_warps = true
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
sensitivity = 0
|
||||||
|
kb_layout = de,de
|
||||||
|
kb_variant = bone,
|
||||||
|
repeat_rate = 60
|
||||||
|
repeat_delay = 235
|
||||||
|
# Only change focus on mouse click
|
||||||
|
follow_mouse = 2
|
||||||
|
float_switch_override_focus = 0
|
||||||
|
accel_profile = flat
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = true
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
input {
|
gestures {
|
||||||
sensitivity = 0
|
workspace_swipe = true
|
||||||
kb_layout = de,de
|
workspace_swipe_numbered = true
|
||||||
kb_variant = bone,
|
}
|
||||||
repeat_rate = 60
|
|
||||||
repeat_delay = 235
|
|
||||||
# Only change focus on mouse click
|
|
||||||
follow_mouse = 2
|
|
||||||
float_switch_override_focus = 0
|
|
||||||
accel_profile = flat
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gestures {
|
misc {
|
||||||
workspace_swipe = true
|
disable_hyprland_logo = true
|
||||||
workspace_swipe_numbered = true
|
mouse_move_focuses_monitor = false
|
||||||
}
|
}
|
||||||
|
|
||||||
misc {
|
binds {
|
||||||
disable_hyprland_logo = true
|
focus_preferred_method = 1
|
||||||
mouse_move_focuses_monitor = false
|
}
|
||||||
}
|
|
||||||
|
|
||||||
binds {
|
# keybinds
|
||||||
focus_preferred_method = 1
|
bind=${MOD},q,killactive,
|
||||||
}
|
bind=${MOD},return,fullscreen,
|
||||||
|
bind=${MOD},f,togglefloating
|
||||||
|
bind=${MOD},tab,cyclenext,
|
||||||
|
bind=ALT,tab,cyclenext,
|
||||||
|
bind=,Menu,exec,rofi -show drun
|
||||||
|
|
||||||
# keybinds
|
bind=${MOD},left,movefocus,l
|
||||||
bind=${MOD},q,killactive,
|
bind=${MOD},right,movefocus,r
|
||||||
bind=${MOD},return,fullscreen,
|
bind=${MOD},up,movefocus,u
|
||||||
bind=${MOD},f,togglefloating
|
bind=${MOD},down,movefocus,d
|
||||||
bind=${MOD},tab,cyclenext,
|
|
||||||
bind=ALT,tab,cyclenext,
|
|
||||||
bind=,Menu,exec,rofi -show drun
|
|
||||||
|
|
||||||
bind=${MOD},left,movefocus,l
|
bind=${MOD},n,movefocus,l
|
||||||
bind=${MOD},right,movefocus,r
|
bind=${MOD},s,movefocus,r
|
||||||
bind=${MOD},up,movefocus,u
|
bind=${MOD},l,movefocus,u
|
||||||
bind=${MOD},down,movefocus,d
|
bind=${MOD},r,movefocus,d
|
||||||
|
|
||||||
bind=${MOD},n,movefocus,l
|
bind=${MOD} + SHIFT,left,movewindow,l
|
||||||
bind=${MOD},s,movefocus,r
|
bind=${MOD} + SHIFT,right,movewindow,r
|
||||||
bind=${MOD},l,movefocus,u
|
bind=${MOD} + SHIFT,up,movewindow,u
|
||||||
bind=${MOD},r,movefocus,d
|
bind=${MOD} + SHIFT,down,movewindow,d
|
||||||
|
|
||||||
bind=${MOD} + SHIFT,left,movewindow,l
|
bindm=${MOD},mouse:272,movewindow
|
||||||
bind=${MOD} + SHIFT,right,movewindow,r
|
|
||||||
bind=${MOD} + SHIFT,up,movewindow,u
|
|
||||||
bind=${MOD} + SHIFT,down,movewindow,d
|
|
||||||
|
|
||||||
bindm=${MOD},mouse:272,movewindow
|
bind=${MOD} + SHIFT,n,movewindow,l
|
||||||
|
bind=${MOD} + SHIFT,s,movewindow,r
|
||||||
|
bind=${MOD} + SHIFT,l,movewindow,u
|
||||||
|
bind=${MOD} + SHIFT,r,movewindow,d
|
||||||
|
|
||||||
bind=${MOD} + SHIFT,n,movewindow,l
|
bind=${MOD},comma,workspace,-1
|
||||||
bind=${MOD} + SHIFT,s,movewindow,r
|
bind=${MOD},period,workspace,+1
|
||||||
bind=${MOD} + SHIFT,l,movewindow,u
|
|
||||||
bind=${MOD} + SHIFT,r,movewindow,d
|
|
||||||
|
|
||||||
bind=${MOD},comma,workspace,-1
|
|
||||||
bind=${MOD},period,workspace,+1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bind=${MOD},b,exec,firefox
|
bind=${MOD},b,exec,firefox
|
||||||
bind=${MOD},t,exec,kitty
|
bind=${MOD},t,exec,kitty
|
||||||
bind=${MOD} + SHIFT,l,exec,systemctl suspend -i
|
bind=${MOD} + SHIFT,l,exec,systemctl suspend -i
|
||||||
bind=${MOD} + SHIFT,Escape,exit
|
bind=${MOD} + SHIFT,Escape,exit
|
||||||
#fix xwayland hidpi
|
#fix xwayland hidpi
|
||||||
exec-once = ${pkgs.xorg.xprop}/bin/xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2
|
exec-once = ${pkgs.xorg.xprop}/bin/xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2
|
||||||
env = GDK_SCALE,2
|
env = GDK_SCALE,2
|
||||||
env = XCURSOR_SIZE,48
|
env = XCURSOR_SIZE,48
|
||||||
|
|
||||||
workspace = eDP-1, 42
|
workspace = eDP-1, 42
|
||||||
|
|
||||||
|
exec-once=bash -c "waybar >/tmp/waybar_error.log"
|
||||||
|
env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
env = GBM_BACKEND,nvidia-drm
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
env = WLR_NO_HARDWARE_CURSORS,1
|
||||||
|
|
||||||
exec-once=bash -c "waybar >/tmp/waybar_error.log"
|
|
||||||
''
|
''
|
||||||
+ builtins.concatStringsSep "\n" (map (
|
+ builtins.concatStringsSep "\n" (map (
|
||||||
x: ''
|
x: ''
|
||||||
|
|
9
users/common/graphical/sway/default.nix
Normal file
9
users/common/graphical/sway/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{config, ...}: {
|
||||||
|
wayland.windowManager.sway = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
modifier = "Mod4";
|
||||||
|
terminal = "kitty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -24,6 +24,5 @@ _: {
|
||||||
rg = "rg -S";
|
rg = "rg -S";
|
||||||
|
|
||||||
zf = "zathura --fork";
|
zf = "zathura --fork";
|
||||||
hypr = "Hyprland";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
}: {
|
}: {
|
||||||
# enable nixos wide hyprland config
|
# enable nixos wide hyprland config
|
||||||
imports = [
|
imports = [
|
||||||
../../hosts/common/graphical/hyprland.nix
|
#../../hosts/common/graphical/hyprland.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
users.users.patrick = {
|
users.users.patrick = {
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
./impermanence.nix
|
./impermanence.nix
|
||||||
../common
|
../common
|
||||||
../common/interactive.nix
|
../common/interactive.nix
|
||||||
../common/graphical.nix
|
../common/graphical
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,12 +16,25 @@
|
||||||
user = "root";
|
user = "root";
|
||||||
inherit identityFile;
|
inherit identityFile;
|
||||||
};
|
};
|
||||||
|
|
||||||
"patricknix" = {
|
"patricknix" = {
|
||||||
hostname = "patricknix.local";
|
hostname = "patricknix.local";
|
||||||
user = "root";
|
user = "root";
|
||||||
inherit identityFile;
|
inherit identityFile;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"testienix" = {
|
||||||
|
hostname = "192.168.178.74";
|
||||||
|
user = "root";
|
||||||
|
inherit identityFile;
|
||||||
|
};
|
||||||
|
|
||||||
|
"desktopnix" = {
|
||||||
|
hostname = "192.168.178.176";
|
||||||
|
user = "root";
|
||||||
|
inherit identityFile;
|
||||||
|
};
|
||||||
|
|
||||||
"WSALVM" = {
|
"WSALVM" = {
|
||||||
hostname = "172.10.8.156";
|
hostname = "172.10.8.156";
|
||||||
user = "root";
|
user = "root";
|
||||||
|
|
Loading…
Reference in a new issue