This commit is contained in:
Sebastian Moser
2025-06-19 10:32:25 +02:00
parent 618f678235
commit 919673e994
14 changed files with 530 additions and 183 deletions

View File

@@ -38,6 +38,8 @@
nix.channel.enable = false;
services.openssh.settings.GatewayPorts = "clientspecified";
# This value determines the NixOS release from which the default

View File

@@ -8,12 +8,12 @@
# - win + D command
# - kernel output for luks pwd on all displays
{ pkgs, nur, unstable, ... }: {
{ lib, pkgs, nur, unstable, ... }: {
services.greetd = {
enable = true;
settings = {
default_session = {
settings = rec {
initial_session = {
#command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time -d --env WLR_RENDERER_ALLOW_SOFTWARE=1 --cmd sway";
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd ${pkgs.writeScriptBin "run-sway" ''
export WLR_RENDERER_ALLOW_SOFTWARE=1
@@ -26,6 +26,7 @@
''}/bin/run-sway";
user = "me";
};
default_session = initial_session;
};
};
@@ -194,35 +195,40 @@
### Output configuration
output * scale 1 bg #121212 solid_color
output "HEADLESS-1" {
mode 1920x1080@1.0Hz
pos 5760 532
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
#################### from nwg-display
output "eDP-1" {
mode 1920x1080@60.001Hz
pos 0 1181
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "HEADLESS-1" {
mode 1920x1080@1.0Hz
pos 5760 532
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "DP-1" {
mode 3840x2160@59.997Hz
pos 1920 0
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
#################### end from nwg-display
output "eDP-1" {
mode 1920x1080@60.001Hz
pos 0 884
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "DP-1" {
mode 3840x2160@59.997Hz
pos 1920 0
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
workspace 5 output eDP-1
set $disp2 "DP-1"
set $disp1 "eDP-1"
workspace 7 output eDP-1
workspace 0 output HEADLESS-1
### Input configuration
@@ -276,6 +282,8 @@
systemctl suspend-then-hibernate
''}/bin/my-lock
exec '/usr/bin/env bash -c "sleep 10; systemctl --user start lan-mouse"'
#assign [class="vesktop"] workspace 1
#assign [class="Signal"] workspace 1
#assign [app_id="firefox"] workspace 2
@@ -284,6 +292,7 @@
### Key bindings
#bindsym Mod4+Shift+Return exec $term
bindsym $mod exec alacritty
bindsym --locked $mod+d exec wlr-randr --output eDP-1 --on
bindsym --locked $mod+Shift+d exec wlr-randr --output eDP-1 --off
@@ -343,61 +352,86 @@
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
bindsym $mod+Shift+$left mark swap, focus left, swap container with mark swap, focus left, unmark swap
bindsym $mod+Shift+$right mark swap, focus right, swap container with mark swap, focus right, unmark swap
bindsym $mod+Shift+$up mark swap, focus up, swap container with mark swap, focus up, unmark swap
bindsym $mod+Shift+$down mark swap, focus down, swap container with mark swap, focus down, unmark swap
# the old way of moving around
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
#bindsym $mod+u workspace prev
#bindsym $mod+i workspace next
# Workspaces:
############################ Workspaces:
# the sticky workspaces, that are the same in all workrooms
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# define display output names
set $disp1 "eDP-1"
set $disp2 "DP-1"
# default display outputs for workspaces with fallback to disp1
workspace 1 output $disp2 $disp1
workspace 2 output $disp2 $disp1
workspace 3 output $disp2 $disp1
workspace 4 output $disp2 $disp1
workspace 5 output $disp2 $disp1
workspace 6 output $disp2 $disp1
workspace 7 output $disp2 $disp1
workspace 8 output $disp2 $disp1
workspace 9 output $disp2 $disp1
workspace 10 output $disp2 $disp1
workspace 7 output eDP-1
workspace 0 output HEADLESS-1
workspace_auto_back_and_forth false
focus_wrapping workspace
# Fx stuff:
# Workrooms:
set $workroom d
set $workspace 0
# nav to workspaces in workrooms
bindsym $mod+2 set $$workspace 2; workspace $$workroom$$workspace
bindsym $mod+3 set $$workspace 3; workspace $$workroom$$workspace
bindsym $mod+4 set $$workspace 4; workspace $$workroom$$workspace
bindsym $mod+5 set $$workspace 5; workspace $$workroom$$workspace
bindsym $mod+6 set $$workspace 6; workspace $$workroom$$workspace
# move windows to workspaces in workrooms
bindsym $mod+Shift+2 set $$tmp-workspace 2; move container to workspace $$workroom$$tmp-workspace
bindsym $mod+Shift+3 set $$tmp-workspace 3; move container to workspace $$workroom$$tmp-workspace
bindsym $mod+Shift+4 set $$tmp-workspace 4; move container to workspace $$workroom$$tmp-workspace
bindsym $mod+Shift+5 set $$tmp-workspace 5; move container to workspace $$workroom$$tmp-workspace
bindsym $mod+Shift+6 set $$tmp-workspace 6; move container to workspace $$workroom$$tmp-workspace
# set outputs for workspaces in workrooms
${
let
mkLine = workroom: workspace: "workspace ${workroom}${workspace} output $disp2 $disp1\n";
in
lib.strings.concatStringsSep "\n" (builtins.map (workroom: lib.strings.concatStringsSep "\n" (builtins.map (workspace: mkLine workroom workspace) [ "2" "3" "4" "5" "6" ])) [ "d" "m" "a" "b" "c" ])
}
# change workrooms
mode ChangeWorkroom {
bindsym Escape mode "default"
bindsym $mod+d set $$workroom d; workspace $$workroom$$workspace; mode "default"
bindsym $mod+m set $$workroom m; workspace $$workroom$$workspace; mode "default"
bindsym $mod+a set $$workroom a; workspace $$workroom$$workspace; mode "default"
bindsym $mod+b set $$workroom b; workspace $$workroom$$workspace; mode "default"
bindsym $mod+c set $$workroom c; workspace $$workroom$$workspace; mode "default"
}
bindsym $mod+m mode ChangeWorkroom
############################# Fx stuff:
blur disable
blur_passes 0
blur_radius 1
@@ -428,9 +462,10 @@
bindsym $mod+Period layout toggle split
bindsym $mod+space fullscreen
bindsym $mod+Shift+space floating toggle
bindsym $mod+Shift+m floating toggle
#bindsym $mod+r focus mode_toggle
bindsym $mod+r exec sh -c "echo Run > ~/.mize/mize_dev_module/pipe"
#bindsym $mod+r exec sh -c "echo Run > ~/.mize/mize_dev_module/pipe"
# Scratchpad:
# Sway has a "scratchpad", which is a bag of holding for windows.
@@ -444,27 +479,30 @@
bindsym $mod+Tab scratchpad show
# Resizing containers:
#mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
set $move_amount 175px
#mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
set $move_amount 175px
bindsym $mod+Mod1+$right resize grow width $move_amount
bindsym $mod+Mod1+$up resize shrink height $move_amount
bindsym $mod+Mod1+$down resize grow height $move_amount
bindsym $mod+Mod1+$left resize shrink width $move_amount
bindsym $mod+Mod1+$right resize grow width $move_amount
bindsym $mod+Mod1+$up resize shrink height $move_amount
bindsym $mod+Mod1+$down resize grow height $move_amount
bindsym $mod+Mod1+$left resize shrink width $move_amount
bindsym $mod+Mod1+Left resize grow width $move_amount
bindsym $mod+Mod1+Down resize shrink height $move_amount
bindsym $mod+Mod1+Up resize grow height $move_amount
bindsym $mod+Mod1+Right resize shrink width $move_amount
bindsym $mod+Mod1+Right resize grow width $move_amount
bindsym $mod+Mod1+Up resize shrink height $move_amount
bindsym $mod+Mod1+Down resize grow height $move_amount
bindsym $mod+Mod1+Left resize shrink width $move_amount
# Return to default mode
# bindsym Return mode "default"
# bindsym Escape mode "default"
# bindsym $mod+r mode "resize"
# bindsym Return mode "default"
# bindsym Escape mode "default"
# bindsym $mod+r mode "resize"
# window rules
for_window [app_id="satty"] floating enable
'';
};

193
flake.lock generated
View File

@@ -4,7 +4,7 @@
"inputs": {
"devshell": "devshell",
"flake-utils": "flake-utils_7",
"nixpkgs": "nixpkgs_6"
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1638562808,
@@ -25,7 +25,7 @@
"inputs": {
"devshell": "devshell_2",
"flake-utils": "flake-utils_14",
"nixpkgs": "nixpkgs_13"
"nixpkgs": "nixpkgs_14"
},
"locked": {
"lastModified": 1638562808,
@@ -46,7 +46,7 @@
"inputs": {
"devshell": "devshell_3",
"flake-utils": "flake-utils_21",
"nixpkgs": "nixpkgs_21"
"nixpkgs": "nixpkgs_22"
},
"locked": {
"lastModified": 1638562808,
@@ -76,7 +76,7 @@
"nix-wsl": "nix-wsl_2",
"nixos-generators": "nixos-generators_2",
"nixos-hardware": "nixos-hardware_2",
"nixpkgs": "nixpkgs_11",
"nixpkgs": "nixpkgs_12",
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_4",
"nixpkgs-unstable": "nixpkgs-unstable_2",
"nur": "nur_2",
@@ -113,7 +113,7 @@
"nix-wsl": "nix-wsl_3",
"nixos-generators": "nixos-generators_3",
"nixos-hardware": "nixos-hardware_3",
"nixpkgs": "nixpkgs_19",
"nixpkgs": "nixpkgs_20",
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_6",
"nixpkgs-unstable": "nixpkgs-unstable_3",
"podman": "podman_3",
@@ -811,7 +811,7 @@
"flake-compat": "flake-compat_4",
"lib-aggregate": "lib-aggregate_2",
"mozilla": "mozilla_2",
"nixpkgs": "nixpkgs_8"
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1714587578,
@@ -833,7 +833,7 @@
"flake-compat": "flake-compat_7",
"lib-aggregate": "lib-aggregate_3",
"mozilla": "mozilla_3",
"nixpkgs": "nixpkgs_15"
"nixpkgs": "nixpkgs_16"
},
"locked": {
"lastModified": 1714047754,
@@ -1552,6 +1552,25 @@
"type": "github"
}
},
"lan-mouse": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1743554389,
"narHash": "sha256-+Pd63NmfbuksNw+vJh+jJbXcx/PdCxVDXHGWaAfNDKo=",
"owner": "feschber",
"repo": "lan-mouse",
"rev": "b8063a813884b7444fe567deee8f61ff7931d351",
"type": "github"
},
"original": {
"owner": "feschber",
"repo": "lan-mouse",
"type": "github"
}
},
"lib-aggregate": {
"inputs": {
"flake-utils": "flake-utils",
@@ -1686,7 +1705,7 @@
},
"my-log": {
"inputs": {
"nixpkgs": "nixpkgs_16"
"nixpkgs": "nixpkgs_17"
},
"locked": {
"lastModified": 1712193044,
@@ -1759,7 +1778,7 @@
"flake-utils": "flake-utils_4",
"format-all": "format-all",
"nix-straight": "nix-straight",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs_3",
"nose": "nose",
"ob-racket": "ob-racket",
"org": "org",
@@ -1801,7 +1820,7 @@
"flake-utils": "flake-utils_11",
"format-all": "format-all_2",
"nix-straight": "nix-straight_2",
"nixpkgs": "nixpkgs_9",
"nixpkgs": "nixpkgs_10",
"nose": "nose_2",
"ob-racket": "ob-racket_2",
"org": "org_2",
@@ -1843,7 +1862,7 @@
"flake-utils": "flake-utils_18",
"format-all": "format-all_3",
"nix-straight": "nix-straight_3",
"nixpkgs": "nixpkgs_17",
"nixpkgs": "nixpkgs_18",
"nose": "nose_3",
"ob-racket": "ob-racket_3",
"org": "org_3",
@@ -2178,7 +2197,7 @@
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1729203674,
@@ -2198,7 +2217,7 @@
"inputs": {
"flake-compat": "flake-compat_6",
"flake-utils": "flake-utils_12",
"nixpkgs": "nixpkgs_10"
"nixpkgs": "nixpkgs_11"
},
"locked": {
"lastModified": 1714355896,
@@ -2218,7 +2237,7 @@
"inputs": {
"flake-compat": "flake-compat_9",
"flake-utils": "flake-utils_19",
"nixpkgs": "nixpkgs_18"
"nixpkgs": "nixpkgs_19"
},
"locked": {
"lastModified": 1713947658,
@@ -2685,6 +2704,21 @@
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1695806987,
"narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixpkgs-unstable",
"type": "indirect"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1714272655,
"narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=",
@@ -2700,7 +2734,7 @@
"type": "github"
}
},
"nixpkgs_11": {
"nixpkgs_12": {
"locked": {
"lastModified": 1714564312,
"narHash": "sha256-+Pu+QmY5u33E+PMulmvLiyAgZDi2bgbV5LEtiVXa0c4=",
@@ -2716,7 +2750,7 @@
"type": "github"
}
},
"nixpkgs_12": {
"nixpkgs_13": {
"locked": {
"lastModified": 1613434981,
"narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=",
@@ -2730,7 +2764,7 @@
"type": "indirect"
}
},
"nixpkgs_13": {
"nixpkgs_14": {
"locked": {
"lastModified": 1637841632,
"narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=",
@@ -2746,7 +2780,7 @@
"type": "github"
}
},
"nixpkgs_14": {
"nixpkgs_15": {
"locked": {
"lastModified": 1638371214,
"narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=",
@@ -2762,7 +2796,7 @@
"type": "github"
}
},
"nixpkgs_15": {
"nixpkgs_16": {
"locked": {
"lastModified": 1713895582,
"narHash": "sha256-cfh1hi+6muQMbi9acOlju3V1gl8BEaZBXBR9jQfQi4U=",
@@ -2778,7 +2812,7 @@
"type": "github"
}
},
"nixpkgs_16": {
"nixpkgs_17": {
"locked": {
"lastModified": 1702830618,
"narHash": "sha256-lvhwIvRwhOLgzbRuYkqHy4M5cQHYs4ktL6/hyuBS6II=",
@@ -2794,7 +2828,7 @@
"type": "github"
}
},
"nixpkgs_17": {
"nixpkgs_18": {
"locked": {
"lastModified": 1695806987,
"narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
@@ -2809,7 +2843,7 @@
"type": "indirect"
}
},
"nixpkgs_18": {
"nixpkgs_19": {
"locked": {
"lastModified": 1713013257,
"narHash": "sha256-ZEfGB3YCBVggvk0BQIqVY7J8XF/9jxQ68fCca6nib+8=",
@@ -2825,7 +2859,23 @@
"type": "github"
}
},
"nixpkgs_19": {
"nixpkgs_2": {
"locked": {
"lastModified": 1740560979,
"narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5135c59491985879812717f4c9fea69604e7f26f",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_20": {
"locked": {
"lastModified": 1714082080,
"narHash": "sha256-ntuxg7lSDr6HNZ9/3fVf6qFy/FNGvEAHYM0lXgyrW5w=",
@@ -2841,22 +2891,7 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1695806987,
"narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixpkgs-unstable",
"type": "indirect"
}
},
"nixpkgs_20": {
"nixpkgs_21": {
"locked": {
"lastModified": 1613434981,
"narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=",
@@ -2870,7 +2905,7 @@
"type": "indirect"
}
},
"nixpkgs_21": {
"nixpkgs_22": {
"locked": {
"lastModified": 1637841632,
"narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=",
@@ -2886,7 +2921,7 @@
"type": "github"
}
},
"nixpkgs_22": {
"nixpkgs_23": {
"locked": {
"lastModified": 1638371214,
"narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=",
@@ -2903,6 +2938,21 @@
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1695806987,
"narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixpkgs-unstable",
"type": "indirect"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1728740863,
"narHash": "sha256-u+rxA79a0lyhG+u+oPBRtTDtzz8kvkc9a6SWSt9ekVc=",
@@ -2918,7 +2968,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1741892592,
"narHash": "sha256-ai0XSujeUYInQtp1u6TQfrTx9Vtv9bAOkK63lWcttzk=",
@@ -2934,7 +2984,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1613434981,
"narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=",
@@ -2948,7 +2998,7 @@
"type": "indirect"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1637841632,
"narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=",
@@ -2964,7 +3014,7 @@
"type": "github"
}
},
"nixpkgs_7": {
"nixpkgs_8": {
"locked": {
"lastModified": 1638371214,
"narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=",
@@ -2980,7 +3030,7 @@
"type": "github"
}
},
"nixpkgs_8": {
"nixpkgs_9": {
"locked": {
"lastModified": 1714253743,
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
@@ -2996,21 +3046,6 @@
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1695806987,
"narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixpkgs-unstable",
"type": "indirect"
}
},
"nmd": {
"flake": false,
"locked": {
@@ -3476,7 +3511,7 @@
"podman": {
"inputs": {
"flake-utils": "flake-utils_6",
"nixpkgs": "nixpkgs_5"
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1661906180,
@@ -3495,7 +3530,7 @@
"podman_2": {
"inputs": {
"flake-utils": "flake-utils_13",
"nixpkgs": "nixpkgs_12"
"nixpkgs": "nixpkgs_13"
},
"locked": {
"lastModified": 1661906180,
@@ -3514,7 +3549,7 @@
"podman_3": {
"inputs": {
"flake-utils": "flake-utils_20",
"nixpkgs": "nixpkgs_20"
"nixpkgs": "nixpkgs_21"
},
"locked": {
"lastModified": 1661906180,
@@ -3605,7 +3640,7 @@
"robotnix": {
"inputs": {
"androidPkgs": "androidPkgs",
"nixpkgs": "nixpkgs_7",
"nixpkgs": "nixpkgs_8",
"nixpkgsUnstable": "nixpkgsUnstable"
},
"locked": {
@@ -3625,7 +3660,7 @@
"robotnix_2": {
"inputs": {
"androidPkgs": "androidPkgs_2",
"nixpkgs": "nixpkgs_14",
"nixpkgs": "nixpkgs_15",
"nixpkgsUnstable": "nixpkgsUnstable_2"
},
"locked": {
@@ -3645,7 +3680,7 @@
"robotnix_3": {
"inputs": {
"androidPkgs": "androidPkgs_3",
"nixpkgs": "nixpkgs_22",
"nixpkgs": "nixpkgs_23",
"nixpkgsUnstable": "nixpkgsUnstable_3"
},
"locked": {
@@ -3669,6 +3704,7 @@
"flake-utils": "flake-utils_3",
"home-manager": "home-manager",
"home-manager-old": "home-manager-old",
"lan-mouse": "lan-mouse",
"networkmanager": "networkmanager",
"nix-doom-emacs": "nix-doom-emacs",
"nix-index-database": "nix-index-database",
@@ -3676,7 +3712,7 @@
"nix-wsl": "nix-wsl",
"nixos-generators": "nixos-generators",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_2",
"nixpkgs-old": "nixpkgs-old",
"nixpkgs-unstable": "nixpkgs-unstable",
@@ -3756,6 +3792,27 @@
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"lan-mouse",
"nixpkgs"
]
},
"locked": {
"lastModified": 1740623427,
"narHash": "sha256-3SdPQrZoa4odlScFDUHd4CUPQ/R1gtH4Mq9u8CBiK8M=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "d342e8b5fd88421ff982f383c853f0fc78a847ab",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"sln-mode": {
"flake": false,
"locked": {

View File

@@ -44,6 +44,8 @@
networkmanager.url = "github:c2vi/nixos-networkmanager-profiles";
lan-mouse.url = "github:feschber/lan-mouse";
robotnix = {
#url = "github:nix-community/robotnix";
url = "github:c2vi/robotnix";

View File

@@ -146,6 +146,7 @@
];
environment.systemPackages = with pkgs; [
sshfs
ntfs3g
virtiofsd
bcache-tools
@@ -390,5 +391,108 @@
};
############################## backups to fusu ##################################
users.users.borgs = {
uid = 2000;
isNormalUser = true;
group = "borgs";
};
users.groups.borgs = {
gid = 2000;
};
home-manager.users.borgs = { secretsDir, ... }: {
imports = [
../users/common/home.nix
];
home.file.".ssh/known_hosts".text = ''
195.201.148.94 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBuxoYAjNYi3q2SFlzoVQTePcsnmT+qFHuaiiclC+S5I
195.201.148.94 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCtDgdBTd8apRMBTweK9ZMRTdFqkU1mbKQDmyXSXbhSQAYwlgkmh1ee4TBE4nt/2b28QT5AqWOazVraqlAoSp+n7GwdsPH26lhbuF+ZVHq05X3RuJLmbhOsa6QlPzjSHiyj+Onkmj9DyXwKhhMErGcT1n2nhC4Oi007qsqcYQIB/YJ7hmMDABMzm9Bwd5Rk6xsDfz+9umvSMpwtfctpKixoVq90Fe3X6wloo5sgXpqfdP1IDFxfiaDp6nOQuOhvcA1Z67oGpW3T8CbZ5aDqA8e1vtpkl7oT3YolR+5153B/e0zOSAk8AabfkLdvrReECg2AHloH7hf9TOBVH0RVZluK+GRVJoaO2b3EspwIlThdQthiZH5/6vwDLsY6zNw6bUlKNntcNbJ5ZHc7zVv03Zlbpp6aWye0O3HR1PkaOo7pragEX9VAGj8Af2fNinSZVtd30gZlRFhLXQRAad+gC9R/5Q9X7V9BZBbWZ3J9DCP5zFoM9Y2R2YySjHX8Dmy7Jps=
195.201.148.94 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAFh44c1Efqv/g8lvjDSY6uBYevByf1fg4BhLVcfYudqrSSSwbeaPrv6B+M5psrHo6/zthciDzp4oYUG8ANVRWs=
[localhost]:49388 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFr1jHueUdsh4Bc9meR1Var4hbZKLCnZGfCSpsP0oOeS
[localhost]:49388 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDHr9ZzEzC+2s1YNfPsFqDMbZv+o4XG2tEWlAF3DzzgdDawwxSj963qR46OqefPO+yiPBR/x3tFjXtSQ96qDcum9fzuiSzB+z5+/Zhs7VWEPi9ugGTDLFpX823EQrgcVKFE4jWnGsx6Ek8C9YojKgKf5afHG+ww2jNhTPHgVTrQkqo0JzUEnfjhJ/1/WluzpiGHfIy9re5MU10f2z9Vja7M0oDZ/Je+zavA4tlQpZ3URQnCEKC2vf7DhtwYBAOuyXKMdUSaTNdeTytmDjxdhJ38q8bwTHtfLUBzyYjW012Q5d1+/g1dqInu99uN/+UjTJc/GFiqLCE0tmco1GafptnKHJLgDC93vE832G5qvxhykfUAJdNW58kbWugeQm6Rb0i1UL5ckVHurMZT9BL6E9LKV0SewozyBtnA21RKu1vsheN86N0uBLwn3v1r0H3xPL4+S1WbmpXpIoCAoyTLc2janw2Gt22W1p08tv+a+lntFVqBn5ZSpcaUxQ6wRQQAfokqDh5YUzb+Tu9Fxi483qb6bd18io3kMLDre3G4xXqlvAB386Uj8iAYivmZIPBEFDCWBVki9LzWPfQGumgYN0CqSM6Gpqk0RnyU1CNPACEGaRpE1ph4Dgl9NQzRCiw/fEUiMZy1CTkly1YCiqSpp2iMmsJw+QJjfAbehEP+Tl8NIQ==
'';
programs.ssh = {
enable = true;
matchBlocks = {
"*" = {
identityFile = "/home/borgs/backups/borgs-private";
};
ouranos = {
hostname = "195.201.148.94";
user = "root";
};
fusus = {
hostname = "localhost";
user = "server";
port = 49388;
};
};
};
};
# automatically creates the mountpoint as well!!
fileSystems."/home/borgs/backups" = {
device = "/home/files/storage/backups/servers";
options = [ "bind" ];
};
# ouranus
systemd.services.backup-ouranos-minecraft = {
enable = true;
description = "backup the /var/minecraft folder on ouranus to fusu";
unitConfig = {
Type = "simple";
};
path = with pkgs; [ socat borgbackup openssh ];
serviceConfig = {
ExecStart = "/home/borgs/backups/ouranos-minecraft.sh";
User = "borgs";
Group = "borgs";
WorkingDirectory = "/home/borgs/backups";
};
wants = [ "home-files-storage.mount" ];
};
systemd.timers.backup-ouranos-minecraft = {
wantedBy = [ "timers.target" ];
timerConfig = {
#OnBootSec = "5m";
#nUnitActiveSec = "1d";
OnCalendar = "*-*-* 04:00:00";
Persistent = "True";
Unit = "backup-ouranos-minecraft.service";
};
};
# ouranus
systemd.services.backup-fusu-server = {
enable = true;
description = "backup the ~/server folder on fusus";
unitConfig = {
Type = "simple";
};
path = with pkgs; [ socat borgbackup openssh ];
serviceConfig = {
ExecStart = "/home/borgs/backups/fusu-server.sh";
User = "borgs";
Group = "borgs";
WorkingDirectory = "/home/borgs/backups";
};
wants = [ "home-files-storage.mount" ];
};
systemd.timers.backup-fusu-server = {
wantedBy = [ "timers.target" ];
timerConfig = {
#OnBootSec = "5m";
#OnUnitActiveSec = "1d";
OnCalendar = "*-*-* 04:00:00";
Persistent = "True";
Unit = "backup-fusu-server.service";
};
};
}

View File

@@ -70,6 +70,7 @@
environment.systemPackages = with pkgs; [
linuxPackages.usbip
vim
bluez
git

View File

@@ -1,4 +1,4 @@
{ secretsDir, pkgs, inputs, ... }: let
{ lib, secretsDir, pkgs, inputs, ... }: let
myobs = pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [
@@ -17,8 +17,9 @@ in {
inputs.home-manager.nixosModules.home-manager
inputs.networkmanager.nixosModules.networkmanager
../users/me/headless.nix
../users/me/gui.nix
../users/root/default.nix
../common/nixos-wayland.nix
];
networking.hostName = "mac";
@@ -39,12 +40,25 @@ in {
8888 # for general usage
9999 # for general usage
6000 # Xserver
6666 # vnc sway
5900 # vnc for win VM
5901 # vnc
5902 # vnc
4400 # rdp win VM
4401 # ssh for mandroid
4402 # random
4403 # random
4404 # random
4405 # clipboard sync
];
networking.firewall.allowedUDPPorts = [
48899 # GoodWe inverter discovery
4410 # lan-mouse
];
swapDevices = [ { device = "/swapfile"; } ];
boot.kernelModules = [ "usbip_core" ];
boot.extraModprobeConfig = "options kvm_intel nested=1";
@@ -72,6 +86,8 @@ in {
};
environment.systemPackages = with pkgs; [
linuxPackages.usbip
helvum
passt
mount
pkgs.hicolor-icon-theme
@@ -121,6 +137,64 @@ in {
'';
};
home-manager.users.me.home.file.".config/sway/config".text = ''
exec ${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 6666
#exec 'wl-paste -w ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405'
#exec 'sh -c "while true; do ${pkgs.netcat-openbsd}/bin/nc -l 4405 | wl-copy; done"'
#exec 'sh -c "while true; do cat ~/clipboard | wl-paste; done"'
'';
home-manager.users.me.programs.lan-mouse = {
enable = true;
systemd = true;
settings = {
authorized_fingerprints."f1:f2:c8:38:fd:e9:34:2f:a0:79:49:b4:ca:d6:4e:c6:31:10:42:1b:9f:ba:61:6f:41:9a:b7:ce:1a:32:47:a1" = "main";
port = 4410;
clients = [
{
position = "left";
hostname = "main";
activate_on_startup = true;
ips = [ "192.168.1.11" ];
port = 4410;
#enter_hook = "${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405";
enter_hook = "/run/current-system/sw/bin/cat /home/me/.cache/clipboard | ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405 -N";
}
];
};
};
home-manager.users.me.systemd.user.services.lan-mouse.Service.Environment = "PATH=/bin";
users.users.me.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPgKLRF9iYRH3Y8hPjLX1ZY6GyavruqcQ0Q0Y8bnmpv9 me@tab"
];
#services.greetd.enable = lib.mkForce false;
services.greetd = lib.mkForce {
enable = true;
settings = rec {
terminal.vt = 2;
initial_session = {
command = "${pkgs.writeScriptBin "run-sway" ''
export WLR_RENDERER_ALLOW_SOFTWARE=1
export SDL_VIDEODRIVER=wayland
export _JAVA_AWT_WM_NONREPARENTING=1
export QT_QPA_PLATFORM=wayland
export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_DESKTOP=sway
exec sway > /tmp/sway-log 2>&1
''}/bin/run-sway";
user = "me";
};
default_session = initial_session;
};
};
systemd.extraConfig = "DefaultLimitNOFILE=2048";
###################################################### the kiosk stuff
boot.plymouth.enable = true;
@@ -184,21 +258,6 @@ in {
networking.networkmanager.enable = true;
networking.networkmanager.profiles = {
home = {
connection = {
id = "home";
uuid = "a02273d9-ad12-395e-8372-f61129635b6f";
type = "ethernet";
autoconnect-priority = "-999";
interface-name = "enp2s0";
};
ipv4 = {
address1 = "192.168.1.33/24,192.168.1.1";
dns = "1.1.1.1;";
method = "manual";
};
};
pw = {
connection = {
id = "pw";
@@ -234,11 +293,15 @@ in {
interface-name = "wlp3s0";
};
wifi = {
mac-address = "0C:96:E6:E3:64:03";
mode = "ap";
ssid = "c2vi-mac";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/wifi-password";
};
ipv4 = {
method = "shared";
};
@@ -273,7 +336,7 @@ in {
id = "dhcp";
uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
type = "ethernet";
autoconnect = "false";
autoconnect = true;
interface-name = "enp2s0";
};
@@ -283,6 +346,7 @@ in {
ipv4 = {
method = "auto";
address1 = "192.168.1.33/24,192.168.1.1";
};
};

View File

@@ -36,8 +36,14 @@
#services.openssh.enable = true;
programs.fuse.userAllowOther = true;
services.sunshine = {
enable = false;
autoStart = true;
capSysAdmin = true;
openFirewall = true;
/*
package = pkgs.sunshine.overrideAttrs {
src = pkgs.fetchFromGitHub {
@@ -73,11 +79,6 @@
fetchSubmodules = true;
};
});
enable = true;
autoStart = true;
capSysAdmin = true;
openFirewall = true;
};
@@ -88,6 +89,26 @@
home-manager.users.me.programs.lan-mouse = {
enable = true;
settings = {
authorized_fingerprints."0d:4f:2c:8a:46:d5:6a:e2:22:c9:02:89:39:da:75:69:2d:e9:32:39:d7:dc:e6:e2:50:d6:20:22:a5:26:d4:44" = "mac";
port = 4410;
clients = [
{
position = "right";
hostname = "mac";
activate_on_startup = true;
ips = [ "192.168.1.33" ];
port = 4410;
#enter_hook = "${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.openssh}/bin/ssh mac 'cat > ~/clipboard'";
#enter_hook = "/run/current-system/sw/bin/echo hooooooooooo > /home/me/p1";
enter_hook = "/run/current-system/sw/bin/cat /home/me/.cache/clipboard | /run/current-system/sw/bin/ssh mac 'cat >~/clipboard'";
}
];
};
};
home-manager.users.me.systemd.user.services.lan-mouse.Service.Environment = "PATH=/bin";
@@ -123,9 +144,17 @@
programs.nix-ld.enable = true;
programs.steam.enable = true;
home-manager.users.me.home.file.".config/sway/config".text = ''
exec ${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 6666
#exec wl-paste -w ${pkgs.netcat-openbsd}/bin/nc 192.168.1.33 4405
#exec 'wl-paste -w ssh mac "cat > ~/clipboard"'
#exec 'sh -c "while true; do ${pkgs.netcat-openbsd}/bin/nc -l 4405 | wl-copy; done"'
'';
################# make firefox default browser
environment.sessionVariables.DEFAULT_BROWSER = "firefox"; # for electron apps
xdg.mime.defaultApplications = {
"text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
@@ -223,8 +252,27 @@
# shedule nix builds with low priority, so the laptop is still usable while building something
nix.daemonCPUSchedPolicy = "idle";
nix.daemonIONiceLevel = 7;
systemd.services.nix-daemon.serviceConfig.Nice = 9;
nix.daemonIOSchedClass = "idle";
systemd.services.nix-daemon.serviceConfig.CPUSchedulingPolicy = lib.mkForce "idle";
systemd.services.nix-daemon.serviceConfig.IOSchedulingPriority = lib.mkForce "idle";
systemd.services.nix-daemon.serviceConfig.CPUWeight= lib.mkForce "idle";
/*
systemd.services.nix-daemon.serviceConfig.CPUQuota = lib.mkForce "100%";
systemd.services.nix-daemon.environment = {
LD_PRELOAD = "${pkgs.trickle}/lib/trickle/trickle-overload.so";
TRICKLE_WINDOW_SIZE = "200";
TRICKLE_UPLOAD_LIMIT = "10";
TRICKLE_LSMOOTH = "20";
TRICKLE_VERBOSE = "0";
TRICKLE_SOCKNAME = "";
TRICKLE_ARGV = "alacritty";
TRICKLE_TSMOOTH = "3.0";
TRICKLE_DOWNLOAD_LIMIT = "30";
};
nix.extraOptions = ''
download-speed = 30
'';
*/
# enable ntp
#services.ntp.enable = true;
@@ -360,6 +408,7 @@
51820 # wireguard
6000 # Xserver
10000 # tailscale tcp funnel
4405 # clipboard sync with imac
];
networking.firewall.allowedUDPPorts = [
@@ -367,6 +416,8 @@
51820 # wireguard
67 # allow DHCP traffic
53 # allow dns
48899 # GoodWe inverter discovery
4410 # lan-mouse
];
#networking.search = [ "c2vi.local" ];
@@ -544,6 +595,7 @@
};
ipv4 = {
address1 = "192.168.1.11/24,192.168.1.1";
method = "auto";
};
};

View File

@@ -1,7 +1,5 @@
127.0.0.1 youtube.com
127.0.0.1 www.youtube.com
192.168.122.194 uwu
192.168.122.126 lako
127.0.0.1 localhost
100.70.54.18 obsidian.c2vi.dev
192.168.1.2 mc.c2vi.dev
192.168.1.2 mc.ppc.social

View File

@@ -7,4 +7,4 @@
192.168.1.1 router
192.168.1.33 mac
192.168.1.36 mosatop
192.168.1.37 lush
192.168.1.44 lush

View File

@@ -1,10 +1,17 @@
#!/bin/sh
NIX_EXTRA_FEATURE_ARGS="--extra-experimental-features nix-command --extra-experimental-features flakes"
## check if nix is found in the PATH
command -V nix || ( echo '"nix" is required for htldoc, but was not found in your PATH.'; echo "nix install instructions: https://nixos.org/download/"; exit 1)
if [ -f "htldoc.nix" ]; then
htldocUrl=$(nix eval --expr 'let config = (import ./htldoc.nix {}); in if builtins.hasAttr "htldocVersion" config then config.htldocVersion else "github:c2vi/htldoc/master"' --impure --raw)
echo htldocUrl: $htldocUrl
nix run $htldocUrl -- $@
htldocUrl=$(nix $NIX_EXTRA_FEATURE_ARGS eval --expr 'let config = (import ./htldoc.nix {}); in if builtins.hasAttr "htldocVersion" config then config.htldocVersion else "github:c2vi/htldoc/master"' --impure --raw)
echo running htldoc version: $htldocUrl >&2
exec nix $NIX_EXTRA_FEATURE_ARGS run $htldocUrl -- $@
else
nix run github:c2vi/htldoc/master -- $@
exec nix $NIX_EXTRA_FEATURE_ARGS run github:c2vi/htldoc/master -- $@
fi

View File

@@ -42,6 +42,10 @@
};
shellAliases = {
md="~/work/modules/modules/dev/run";
mize="~/work/mize/mize";
m="~/work/mize/mize";
ports = "${pkgs.lsof}/bin/lsof -i -P -n";
losetup = "${pkgs.util-linux}/bin/losetup";
u = "sudo umount ~/mnt";
@@ -84,6 +88,9 @@
'';
};
profileExtra = ''
'';
bashrcExtra = ''
export PATH=${self}/mybin:$PATH
export TERM="xterm-color"
@@ -91,7 +98,7 @@
export NIX_PATH=nixpkgs=${self.inputs.nixpkgs.outPath}
export NIXPKGS_ALLOW_UNFREE=1
# the commit hash of nixpkgs 23.11
# the commit hash of the nixpkgs revs i use
export nip="nixpkgs/${self.inputs.nixpkgs.rev}"
export nup="nixpkgs/${self.inputs.nixpkgs-unstable.rev}"
@@ -121,6 +128,10 @@
}
function vic() {
source ~/work/victorinix/vic
}
@@ -148,6 +159,7 @@
complete -W "mosatop acern" rp
# function to create a tmpdir, to use for some temporary work....
# made this, to not just keep cluttering my $HOME... with all kinds of projects
function mt () {
@@ -159,7 +171,6 @@
# so that programms i spawn from my shell don't have so high cpu priority
[ which renice 2>/dev/null ] && renice -n 9 $$ > /dev/null

View File

@@ -88,6 +88,11 @@
hostname = "152.67.70.13";
user = "ubuntu";
};
mandroid = {
hostname = "mac";
user = "u0_a77";
port = 4401;
};
ocib = {
hostname = "140.238.213.48";
user = "ubuntu";
@@ -107,6 +112,7 @@
};
};
/*
home.file.".ssh/known_hosts".force = true;
home.file.".ssh/known_hosts".text = ''
hpm ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ+FpaNOf+ao6RCa6e43vAHFcQZTGu45rIqAG3Vx0/M8
@@ -124,4 +130,5 @@
[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==
'';
*/
}

View File

@@ -7,6 +7,10 @@
lib = pkgs.lib;
in rec {
runc = pkgs.runc.overrideAttrs ({
src = /home/me/work/config/gitignore/runc;
});
qtrs = pkgs.stdenv.mkDerivation {
name = "qt rust bindings";