all recent config changes

This commit is contained in:
Sebastian Moser
2026-09-16 21:34:44 +00:00
parent 8898b126cd
commit 28986507c9
109 changed files with 10715 additions and 8859 deletions

View File

@@ -1 +1 @@
flake-profile-16-link
flake-profile-21-link

View File

@@ -1 +0,0 @@
/nix/store/3yjs9x851rdcql4lrlhb77075l1a8zn4-nix-shell-env

View File

@@ -0,0 +1 @@
/nix/store/kksnrclzwlp7avsk09x40gp26g989fsc-nix-shell-env

3
.gitmodules vendored
View File

@@ -13,3 +13,6 @@
[submodule "forked-zed"]
path = forked-zed
url = git@github.com:c2vi/zed.git
[submodule "src/zmk"]
path = src/zmk
url = https://github.com/zmkfirmware/zmk.git

24
.zed/settings.json Normal file
View File

@@ -0,0 +1,24 @@
// Folder-specific settings
//
// For a full list of overridable settings, and general information on folder-specific settings,
// see the documentation: https://zed.dev/docs/configuring-zed#settings-files
{
"lsp": {
"rust-analyzer": {
"initialization_options": {
"linkedProjects": [
//"mize/Cargo.toml",
//"forked-zed/Cargo.toml",
],
"cargo": {
"features": [ "target-js", "target-obsidian" ]
//"features": "all"
},
"check": {
"features": [ "target-js", "target-obsidian" ]
//"features": "all"
},
}
}
}
}

8683
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +0,0 @@
[workspace]
members = [
"mize/mize",
"mize/marts",
"mize/macros",
"generated",
"dev-part",
"mize/marts/spacetime",
]
resolver = "2"

3
apps/wireshark Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
exec sudo -E /usr/sbin/wireshark -P "persconf:$CONFIG_DIR/apps/wireshark-config" -P "persdata:$DATA_DIR/wireshark" "$@"

View File

@@ -0,0 +1,10 @@
local config_dir = os.getenv("CONFIG_DIR")
critical("This is a critical issue message!")
print("hello world!")
global run_user_scripts_when_superuser=true
-- qmi plugin
dofile(config_dir .. "/apps/wireshark-config/qmi.lua")

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,155 @@
# Recent settings file for Wireshark 4.7.3.
#
# This file is regenerated each time Wireshark is quit
# and when changing configuration profile.
# So be careful, if you want to make manual changes here.
# Main Toolbar show (hide).
# true or false (case-insensitive).
gui.toolbar_main_show: true
# Filter Toolbar show (hide).
# true or false (case-insensitive).
gui.filter_toolbar_show: true
# Wireless Settings Toolbar show (hide).
# true or false (case-insensitive).
gui.wireless_toolbar_show: false
# Packet list show (hide).
# true or false (case-insensitive).
gui.packet_list_show: true
# Tree view show (hide).
# true or false (case-insensitive).
gui.tree_view_show: true
# Byte view show (hide).
# true or false (case-insensitive).
gui.byte_view_show: true
# Packet diagram show (hide).
# true or false (case-insensitive).
gui.packet_diagram_show: true
# Statusbar show (hide).
# true or false (case-insensitive).
gui.statusbar_show: true
# Packet list colorize (hide).
# true or false (case-insensitive).
gui.packet_list_colorize: true
# Auto scroll packet list when capturing.
# true or false (case-insensitive).
capture.auto_scroll: true
# use as aggregation view.
# true or false (case-insensitive).
capture.aggregation_view: false
# Timestamp display format.
# One of: RELATIVE, RELATIVE_CAP, ABSOLUTE, ABSOLUTE_WITH_YMD, ABSOLUTE_WITH_YDOY, ABSOLUTE_WITH_DATE, DELTA, DELTA_DIS, EPOCH, UTC, UTC_WITH_YMD, UTC_WITH_YDOY, UTC_WITH_DATE
gui.time_format: RELATIVE
# Timestamp display precision.
# One of: AUTO, SEC, DSEC, CSEC, MSEC, USEC, NSEC, or a number between 0 and 9
gui.time_precision: AUTO
# Seconds display format.
# One of: SECONDS, HOUR_MIN_SEC
gui.seconds_format: SECONDS
# Zoom level.
# A decimal number.
gui.zoom_level: 0
# Bytes view display type.
# One of: HEX, BITS, DEC, OCT
gui.bytes_view: HEX
# Bytes view text encoding.
# One of: FROM_PACKET, ASCII, EBCDIC
gui.bytes_encoding: FROM_PACKET
# Packet diagram field values show (hide).
# true or false (case-insensitive).
gui.packet_diagram_field_values: false
# Allow hover selection in byte view.
# true or false (case-insensitive).
gui.allow_hover_selection: true
# Follow stream show as.
# One of: ASCII, ASCII_CONTROL, C_ARRAYS, EBCDIC, HEX_DUMP, HTML, IMAGE, JSON, RAW, RUST_ARRAY, UTF-8, YAML
gui.follow_show: ASCII
# Follow stream delta times.
# One of: NONE, TURN, ALL
gui.follow_delta: NONE
# Show packet bytes decode as.
# One of: NONE, BASE64, COMPRESSED, HEX_DIGITS, PERCENT_ENCODING, QUOTED_PRINTABLE, ROT13
gui.show_bytes_decode: NONE
# Show packet bytes show as.
# One of: ASCII, ASCII_CONTROL, C_ARRAYS, EBCDIC, HEX_DUMP, HTML, IMAGE, JSON, RAW, RUST_ARRAY, UTF-8, YAML
gui.show_bytes_show: ASCII
# Main window upper (or leftmost) pane size.
# Decimal number.
# Main window middle pane size.
# Decimal number.
# Packet list column pixel widths.
# Each pair of strings consists of a column format and its pixel width.
column.width:
%m, -1,
%t, -1,
%Gt, -1,
%s, -1,
%d, -1,
%p, -1,
%L, -1,
%i, -1
# Open conversation dialog tabs.
# List of conversation names, e.g. "TCP", "IPv6".
gui.conversation_tabs:
# Conversation dialog tabs columns.
# List of conversation columns numbers.
gui.conversation_tabs_columns:
# Open endpoint dialog tabs.
# List of endpoint names, e.g. "TCP", "IPv6".
gui.endpoint_tabs:
# Endpoint dialog tabs columns.
# List of endpoint columns numbers.
gui.endpoint_tabs_columns:
# For RLC stats, whether to use RLC PDUs found inside MAC frames.
# true or false (case-insensitive).
gui.rlc_pdus_from_mac_frames: false
# Additional Toolbars shown
# List of additional toolbars to show.
gui.additional_toolbar_show:
# Interface Toolbars show.
# List of interface toolbars to show.
gui.interface_toolbar_show:
# TCP Stream Graphs Moving Average Window Size.
gui.tsd_ma_window_size: 1
# TCP Stream Graphs Dialog Throughput show (hide).
# true or false (case-insensitive).
gui.tsd_throughput_show: true
# TCP Stream Graphs Dialog Goodput show (hide).
# true or false (case-insensitive).
gui.tsd_goodput_show: false

View File

@@ -0,0 +1,141 @@
# Common recent settings file for Wireshark 4.7.3.
#
# This file is regenerated each time Wireshark is quit
# and when changing configuration profile.
# So be careful, if you want to make manual changes here.
######## Recent capture files (latest last), cannot be altered through command line ########
recent.capture_file: /home/me/hi.pcapng
recent.capture_file: /home/me/nm-connection-up.pcapng
recent.capture_file: /home/me/nm-connection-down.pcapng
recent.capture_file: /home/me/modemmanager-stop.pcapng
######## Recent capture filters (latest first), cannot be altered through command line ########
######## Recent display filters (latest last), cannot be altered through command line ########
recent.display_filter: qmi
recent.display_filter: qmi.message_id == 0x0020 && qmi.service_id == 0x01
recent.display_filter: qmi.service_id
recent.display_filter: qmi.message_id == 0x0020
recent.display_filter: qmi.message_id
recent.display_filter: qmi &&
recent.display_filter: usb.device_address == 18
recent.display_filter: usb.device_address
# Main window geometry.
# Decimal numbers.
gui.geometry_main_x: 1920
gui.geometry_main_y: 0
gui.geometry_main_width: 619
gui.geometry_main_height: 436
# Main window maximized.
# true or false (case-insensitive).
gui.geometry_main_maximized: true
# Leftalign Action Buttons.
# true or false (case-insensitive).
gui.geometry_leftalign_actions: false
# Last used Configuration Profile.
gui.last_used_profile: Default
# Number of packets or events to check for automatic profile switching.
# Decimal number. Zero disables switching.
#gui.profile_switch_check_count: 1000
# Warn if running with elevated permissions (e.g. as root).
# true or false (case-insensitive).
privs.warn_if_elevated: true
# Warn if Wireshark is unable to capture.
# true or false (case-insensitive).
sys.warn_if_no_capture: true
# Find packet search in.
# One of: PACKET_LIST, PACKET_DETAILS, PACKET_BYTES
gui.search_in: PACKET_LIST
# Find packet character set.
# One of: NARROW_AND_WIDE, NARROW, WIDE
gui.search_char_set: NARROW_AND_WIDE
# Find packet case sensitive search.
# true or false (case-insensitive).
gui.search_case_sensitive: false
# Find packet search reverse direction.
# true or false (case-insensitive).
gui.search_reverse_dir: false
# Find packet search multiple occurrences.
# true or false (case-insensitive).
gui.search_multiple_occurs: false
# Find packet search type.
# One of: DISPLAY_FILTER, HEX_VALUE, STRING, REGEX
gui.search_type: DISPLAY_FILTER
# Welcome page sidebar Learn section visible.
# true or false (case-insensitive).
gui.welcome_page.sidebar.learn_visible: true
# Welcome page sidebar Tips section visible.
# true or false (case-insensitive).
gui.welcome_page.sidebar.tips_visible: true
# Welcome page sidebar Tips event slides.
# true or false (case-insensitive).
gui.welcome_page.sidebar.tips_events: true
# Welcome page sidebar Tips sponsorship slides.
# true or false (case-insensitive).
gui.welcome_page.sidebar.tips_sponsorship: true
# Welcome page sidebar Tips tip-of-the-day slides.
# true or false (case-insensitive).
gui.welcome_page.sidebar.tips_tips: true
# Welcome page sidebar Tips auto advance slides.
# true or false (case-insensitive).
gui.welcome_page.sidebar.tips_auto_advance: true
# Welcome page sidebar Tips slide auto-advance interval in seconds.
gui.welcome_page.sidebar.tips_interval: 8
# Active theme (directory name under resources/themes).
gui.theme_name: wireshark
# Appearance mode.
# One of: system, light, dark
gui.color_scheme: system
# Welcome page sidebar Tips slides test.
# true or false (case-insensitive).
gui.welcome_page.sidebar.tips_slides_test: false
# Geometry and maximized state of Lua Console window.
# Decimal integers.
gui.geom.Lua Console.x: 1920
gui.geom.Lua Console.y: 0
gui.geom.Lua Console.width: 523
gui.geom.Lua Console.height: 865
# true or false (case-insensitive).
gui.geom.Lua Console.maximized: false
# Qt Geometry State (hex byte string).
gui.geom.Lua Console.qt_geometry: 01d9d0cb0003000000000780000000000000098a0000036000000780000000000000098a000003600000000102000000078000000780000000000000098a00000360
# Custom colors.
# List of custom colors selected in Qt color picker.
gui.custom_colors:
"ffffffff", "ffffffff",
"ffffffff", "ffffffff",
"ffffffff", "ffffffff",
"ffffffff", "ffffffff",
"ffffffff", "ffffffff",
"ffffffff", "ffffffff",
"ffffffff", "ffffffff",
"ffffffff", "ffffffff"

View File

@@ -11,7 +11,7 @@
{ lib, pkgs, nur, unstable, inputs, config, ... }:
let
newerUnstableSrc = builtins.getFlake "nixpkgs/d0fc30899600b9b3466ddb260fd83deb486c32f1";
newerUnstableSrc = builtins.getFlake "nixpkgs/d23e2536a100b5108d22367a9c28785f48e3e4c8";
newerUnstable = import newerUnstableSrc.outPath {};
mySway = newerUnstable.sway;

View File

@@ -67,7 +67,7 @@ pub fn lush_os_main() -> MizeResult<()> {
marts::spacetime(&mut mize)?;
marts::timetrack::timetrack(&mut mize)?;
marts::c2vi(&mut mize)?;
marts::part_c2vi(&mut mize)?;
mize.run()
}
@@ -320,8 +320,8 @@ pub fn obsidian_deploy(_: &ArgMatches, _: Mize) -> MizeResult<()> {
else
echo "using existing session..."
fi
tmux send-keys -t mize-deploy "deno run --config {SRC}/mize/packages/ppc/platform/obsidian/deno.json build" Enter
tmux send-keys -t mize-deploy "cp -r {SRC}/mize/packages/ppc/platform/obsidian/dist/* ~/work/things/.obsidian/plugins/mize/" Enter
tmux send-keys -t mize-deploy "deno run --config {SRC}/mize/apps/obsidian-plugin/deno.json build" Enter
tmux send-keys -t mize-deploy "cp -r {SRC}/mize/apps/obsidian-plugin/dist/* ~/work/things/.obsidian/plugins/mize/" Enter
"#
);
sh!(/bin/sh -c "$cmd")?;
@@ -388,7 +388,7 @@ pub fn main_os_main() -> MizeResult<()> {
marts::timetrack::timetrack(&mut mize)?;
part_add_thought(&mut mize)?;
marts::c2vi(&mut mize)?;
marts::part_c2vi(&mut mize)?;
//ppc::daemon(&mut mize)?;
@@ -617,7 +617,7 @@ pub fn mac_os_main() -> MizeResult<()> {
marts::timetrack::timetrack(&mut mize)?;
part_add_thought(&mut mize)?;
marts::c2vi(&mut mize)?;
marts::part_c2vi(&mut mize)?;
mize.run()?;
mize.wait();
@@ -658,7 +658,7 @@ pub fn nico_os_main() -> MizeResult<()> {
mize.spawn_background("nico_notes_sync", || nico_notes_sync_thread(mize_clone))?;
marts::c2vi(&mut mize)?;
marts::part_c2vi(&mut mize)?;
mize.run()?;
mize.wait();

6
flake.lock generated
View File

@@ -3869,11 +3869,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1772624091,
"narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=",
"lastModified": 1788531059,
"narHash": "sha256-hLD4l3QOGBQhkVp3mQ2lJ/YbEi99qUgKapb40KovZ88=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "80bdc1e5ce51f56b19791b52b2901187931f5353",
"rev": "801bef6abd86b91e51083066b83fb354a11fc640",
"type": "github"
},
"original": {

View File

@@ -509,7 +509,7 @@
inherit specialArgs;
system = "x86_64-linux";
modules = [
./hosts/main.nix
./hosts/main/default.nix
./hardware/hpm-laptop.nix
];
};

View File

@@ -34,26 +34,6 @@
};
};
/*
fileSystems."/" = {
device = "/dev/disk/by-uuid/6518e61e-7120-48ef-81a3-5eae0f67297e";
fsType = "btrfs";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/0E6C-F209";
fsType = "vfat";
};
*/
fileSystems."/" = {
device = "/dev/disk/by-label/main-root";
fsType = "btrfs";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/MAIN-BOOT";
fsType = "vfat";
};
#swapDevices = [
#{ device = "/dev/disk/by-uuid/418bf0d8-e548-45d5-802a-53de72707ebc"; }

View File

@@ -38,6 +38,7 @@ in {
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 kvm_intel nested=1
'';
security.polkit.enable = true;
programs.obs-studio.enableVirtualCamera = true;
#services.pid-fan-controller.enable = true;
@@ -220,7 +221,8 @@ in {
newerUnstableSrc = builtins.getFlake "nixpkgs/d0fc30899600b9b3466ddb260fd83deb486c32f1";
newerUnstable = import newerUnstableSrc.outPath {};
mySway = newerUnstable.sway.override {
mySway = newerUnstable.sway;
myOtherSway = newerUnstable.sway.override {
sway-unwrapped = (newerUnstable.sway-unwrapped.overrideAttrs (prev: {
/*
src = pkgs.fetchFromGitHub {

108
hosts/main/alacritty.toml Normal file
View File

@@ -0,0 +1,108 @@
[colors.bright]
black = "#6272a4"
blue = "#d6acff"
cyan = "#a4ffff"
green = "#69ff94"
magenta = "#ff92df"
red = "#ff6e6e"
white = "#ffffff"
yellow = "#ffffa5"
[colors.cursor]
cursor = "CellForeground"
text = "CellBackground"
[colors.footer_bar]
background = "#282a36"
foreground = "#f8f8f2"
[colors.hints.end]
background = "#282a36"
foreground = "#f1fa8c"
[colors.hints.start]
background = "#f1fa8c"
foreground = "#282a36"
[colors.line_indicator]
background = "None"
foreground = "None"
[colors.normal]
black = "#21222c"
blue = "#bd93f9"
cyan = "#8be9fd"
green = "#50fa7b"
magenta = "#ff79c6"
red = "#ff5555"
white = "#f8f8f2"
yellow = "#f1fa8c"
[colors.primary]
background = "#282a36"
bright_foreground = "#ffffff"
foreground = "#f8f8f2"
[colors.search.focused_match]
background = "#ffb86c"
foreground = "#44475a"
[colors.search.matches]
background = "#50fa7b"
foreground = "#44475a"
[colors.selection]
background = "#44475a"
text = "CellForeground"
[colors.vi_mode_cursor]
cursor = "CellForeground"
text = "CellBackground"
[font]
size = 22
#[font.bold]
#family = "Hack"
#style = "Bold"
#[font.bold_italic]
#family = "Hack"
#style = "Bold Italic"
#[font.italic]
#family = "Hack"
#style = "Italic"
#[font.normal]
#family = "Hack"
#style = "Regular"
[[keyboard.bindings]]
action = "Paste"
key = "V"
mods = "Control|Shift"
[[keyboard.bindings]]
action = "Copy"
key = "C"
mods = "Control|Shift"
[[keyboard.bindings]]
chars = "\u001b\u005b\u0042"
key = "J"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001b\u005b\u0041"
key = "K"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001b\u005b\u0044"
key = "H"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001b\u005b\u0043"
key = "L"
mods = "Control"

100
hosts/main/bashrc Normal file
View File

@@ -0,0 +1,100 @@
export CONFIG_DIR=/home/me/work/config
export DATA_DIR=/home/me/work/app-data
export HERE_DIR=/home/me/here
export LOG_DIR=/tmp/mlog
export SVDIR=$CONFIG_DIR/hosts/main/services
export BASH_ENV=$CONFIG_DIR/hosts/main/bashrc
export HOSTNAME=main
mkdir -p $LOG_DIR
# arch path
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH=$PATH:$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin # nix path
# main stuff
export PATH=$CONFIG_DIR/hosts/main/bin:$PATH
export SECRETS_DIR=/home/me/secrets
# nix lock
export NIXPKGS_REV=04e1ec9c5dbf94ab78b6b755b5ec28c1d6dd5392 # nix eval ${CONFIG_DIR}#inputs.nixpkgs.rev
export NIXPKGS_UNSTABLE_REV=ac6b2166e7a9375683b8e98f860f273222337b16 # nix eval ${CONFIG_DIR}#inputs.nixpkgs.rev
export NIX_PATH=nixpkgs=/nix/store/jpf38g508p4njqzbfkvdfjj7v3s795k9-source # nix flake prefetch nixpkgs/$(nix eval $CONFIG_DIR#inputs.nixpkgs.rev --raw) --json | jq '.storePath' -r
# bin paths
if [ -d /run/current-system ]; then # in case of nixos
export BIN_ZED=~/work/path-extra/zed
else
export BIN_ZED=/usr/sbin/zeditor
fi
## #### detect distro
detect_distro() {
local -n reply_distro=$1
local line key value
reply_distro="unknown"
# Read file line by line without spawning external commands
if [[ -f /etc/os-release ]]; then
while IFS='=' read -r key value; do
# Clean up the key name
key="${key##*([[:space:]])}"
key="${key%%*([[:space:]])}"
if [[ "$key" == "ID" ]]; then
# Strip potential surrounding quotes from the value
value="${value#\"}"
value="${value%\"}"
value="${value#\'}"
value="${value%\'}"
reply_distro="$value"
return 0
fi
done < /etc/os-release
fi
}
# get_config
function get_config() {
if [[ "$2" == "" ]]; then
local -n reply_config=OUT
else
local -n reply_config=$2
fi
declare -A myconfig
detect_distro DISTRO
myconfig["hyprland.bin"]="~/work/src/hyprland/build/Hyprland"
myconfig["prismlauncher.bin"]="/usr/sbin/prismlauncher"
myconfig["hyprland.configFile"]="$CONFIG_DIR/hosts/main/hyprland.lua"
myconfig["steam.homeDir"]="$HERE_DIR/steam-home"
myconfig["steam.bin"]="/home/me/.nix-profile/bin/steam"
myconfig["git.bin"]="/bin/git"
myconfig["ssh.bin"]="/bin/ssh"
myconfig["mize.configFile"]="$CONFIG_DIR/hosts/main/"
myconfig["mize.secretsFile"]="~/secrets/mize-config.toml"
# nixos case
if [[ "$DISTRO" == "nixos" ]]; then
myconfig["zed.bin"]="~/work/path-extra/zed"
fi
# arch case
if [[ "$DISTRO" == "arch" ]]; then
myconfig["zed.bin"]="/usr/sbin/zeditor"
fi
reply_config=${myconfig["$1"]}
}
# auto start hyprland in tty
if [[ $TERM == "linux" ]]; then
sudo loadkeys de
fi
if [[ $- == *i* ]]; then
source $CONFIG_DIR/mods/bashrc-common
fi

3
hosts/main/bin/alacritty Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /usr/sbin/alacritty --config-file $CONFIG_DIR/hosts/main/alacritty.toml

7
hosts/main/bin/config-zed Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
#export RA_LOG_FILE="/home/me/rust-analyzer.log"
export XDG_DATA_HOME=~/work/app-data/config-zed
export WAYLAND_DISPLAY=
sudo renice -n -5 -p $$
exec $BIN_ZED ~/work/config ~/work/things
#zed "$@"

3
hosts/main/bin/dms Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
/usr/bin/dms -c /home/me/work/config/hosts/main/ "$@"

8
hosts/main/bin/elephant Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
if [[ -v IS_RUNIT ]]; then
exec 2>$LOG_DIR/elephant
exec 1>$LOG_DIR/elephant
fi
exec /usr/sbin/elephant -c $CONFIG_DIR/hosts/main/elephant "$@"

5
hosts/main/bin/git Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
export GIT_CONFIG_GLOBAL=$CONFIG_DIR/hosts/main/git_config
get_config git.bin BIN
exec $BIN "$@"

19
hosts/main/bin/hyprland Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
if [[ -v IS_RUNIT ]]; then
exec 2>$LOG_DIR/hyprland
exec 1>$LOG_DIR/hyprland
sudo renice -n -10 -p $$
fi
export XDG_CURRENT_DESKTOP=hyprland
export XDG_SESSION_TYPE=wayland
export XDG_SESSION_DESKTOP=hyprland
systemctl --user import-environment XDG_CURRENT_DESKTOP XDG_SESSION_TYPE XDG_SESSION_DESKTOP PATH
dbus-update-activation-environment --systemd XDG_CURRENT_DESKTOP XDG_SESSION_TYPE XDG_SESSION_DESKTOP PATH
get_config hyprland.bin BIN
get_config hyprland.configFile CONFIG
exec $BIN --config $CONFIG "$@"

3
hosts/main/bin/lan-mouse Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec $HOME/.nix-profile/bin/lan-mouse --config $CONFIG_DIR/hosts/main/lan-mouse.toml "$@"

10
hosts/main/bin/mize Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
if [[ -v IS_RUNIT ]]; then
exec 2>$LOG_DIR/mize
exec 1>$LOG_DIR/mize
exec /home/me/work/config/mize/target/debug/mize --config $CONFIG_DIR/hosts/main/mize.toml --secrets $SECRETS_DIR/mize-secrets.toml run
exit 0
fi
exec /home/me/work/config/mize/target/debug/mize --config $CONFIG_DIR/hosts/main/mize.toml --secrets $SECRETS_DIR/mize-secrets.toml "$@"

4
hosts/main/bin/msession Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
export IS_RUNIT=1
exec runsvdir $CONFIG_DIR/hosts/main/services

3
hosts/main/bin/nix Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /nix/var/nix/profiles/default/bin/nix --option experimental-features "nix-command flakes" "$@" --option flake-registry $CONFIG_DIR/hosts/main/flake-registry.json

3
hosts/main/bin/nwg-displays Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /usr/sbin/nwg-displays -m $CONFIG_DIR/hosts/main/hypr-monitors.lua

3
hosts/main/bin/pacman Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec sudo /usr/sbin/pacman "$@"

4
hosts/main/bin/prismlauncher Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
get_config prismlauncher.bin BIN
exec nixGL $BIN -d ~/work/app-data/prism-launcher "$@"

3
hosts/main/bin/scp Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
exec /bin/scp -F $CONFIG_DIR/hosts/main/ssh_config "$@"

4
hosts/main/bin/ssh Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
get_config ssh.bin BIN
exec $BIN -F $CONFIG_DIR/hosts/main/ssh_config "$@"

7
hosts/main/bin/steam Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
get_config steam.homeDir HOME
export HOME
get_config steam.bin BIN
exec $BIN

1
hosts/main/bin/wireshark Symbolic link
View File

@@ -0,0 +1 @@
../../../apps/wireshark

24
hosts/main/bin/zmk Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
export ZMK_CLI_CONFIG=$CONFIG_DIR/hosts/main/zmk-config
if [[ "$1" == "docker" ]] || [[ "$1" == "d" ]];
then
if [ ! $(docker ps -a -q -f name=my-zmk-builder) ]; then
docker build -t my-zmk-builder $CONFIG_DIR/zmk-config
fi
docker run -v $CONFIG_DIR:/config -it --rm my-zmk-builder
# build cmd: west build -- -DBOARD=nice_nano_v2 -DSHIELD=charybdis_left -DZMK_CONFIG=/config/zmk-config/config/ -DZMK_EXTRA_MODULES=/config/zmk-config
exit 0
fi
if [[ "$1" == "flash" ]] || [[ "$1" == "f" ]];
then
if [ ! $(docker ps -a -q -f name=my-zmk-builder) ]; then
docker build -t my-zmk-builder $CONFIG_DIR/zmk-config
fi
docker run -v $CONFIG_DIR:/config --workdir /config/src/zmk/app -it --rm my-zmk-builder --entrypoint /bin/bash -c 'west build -- -DBOARD=nice_nano_v2 -DSHIELD=charybdis_left -DZMK_CONFIG=/config/zmk-config/config/ -DZMK_EXTRA_MODULES=/config/zmk-config'
exit 0
fi
exec /home/me/work/src/zmk-cli/.venv/bin/zmk "$@"

View File

@@ -0,0 +1 @@
[{"socket":"/path/to/bw.socket","contents":[],"aliases":["default"]}]

View File

@@ -48,10 +48,57 @@
documentation.enable = true;
documentation.man.enable = true;
fileSystems."/home/me/nico" = {
device = "100.88.28.123:/data/incus/default-pool/containers/nico/rootfs/root/work/";
fsType = "nfs";
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
#fileSystems."/home/me/nico" = {
#device = "100.88.28.123:/data/incus/default-pool/containers/nico/rootfs/root/work/";
#fsType = "nfs";
#options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" "nofail" ];
#};
fileSystems."/" = {
device = "/dev/disk/by-label/main-root";
fsType = "btrfs";
options = [ "subvol=nixos" ];
};
fileSystems."/nix" = {
device = "/dev/disk/by-label/main-root";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/home/me/work" = {
device = "/dev/disk/by-label/main-root";
fsType = "btrfs";
options = [ "subvol=work" ];
};
fileSystems."/home/me/secrets" = {
device = "/dev/disk/by-label/main-root";
fsType = "btrfs";
options = [ "subvol=secrets" ];
};
fileSystems."/cachy" = {
device = "/dev/disk/by-label/main-root";
fsType = "btrfs";
options = [ "subvol=cachy" ];
};
fileSystems."/swap" = {
device = "/dev/disk/by-label/main-root";
fsType = "btrfs";
options = [ "subvol=swap" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/MAIN-BOOT";
fsType = "vfat";
};
boot.loader.grub = {
enable = true;
#default = "cachy";
extraEntries = ''
menuentry 'cachy' {
linux /vmlinuz-linux rootflags=subvol=cachy rw rd.luks.name=f93d0e0c-c620-4d39-bd6a-a7c0c90fb850=root root=/dev/mapper/root systemd.setenv=SYSTEMD_SULOGIN_FORCE=1
initrd /initramfs-linux.img
}
'';
};
@@ -177,6 +224,7 @@ fileSystems."/home/me/nico" = {
/*
home-manager.users.me.programs.lan-mouse = {
enable = true;
settings = {
@@ -194,6 +242,7 @@ fileSystems."/home/me/nico" = {
};
};
home-manager.users.me.systemd.user.services.lan-mouse.Service.Environment = "PATH=/bin";
*/
@@ -247,18 +296,18 @@ fileSystems."/home/me/nico" = {
imports = [
../common/all.nix
../common/nixos-headless.nix
../../common/all.nix
../../common/nixos-headless.nix
#../common/nixos-graphical.nix
../common/nixos-wayland.nix
../common/building.nix
../common/nixos.nix
../mods/battery_monitor.nix
../../common/nixos-wayland.nix
../../common/building.nix
../../common/nixos.nix
../../mods/battery_monitor.nix
inputs.networkmanager.nixosModules.networkmanager
inputs.home-manager.nixosModules.home-manager
../users/me/gui.nix
../users/root/default.nix
../../users/me/gui.nix
../../users/root/default.nix
# see: https://github.com/NixOS/nixpkgs/issues/300081
#"${inputs.nixpkgs-unstable}/nixos/modules/virtualisation/incus.nix"
@@ -298,7 +347,7 @@ fileSystems."/home/me/nico" = {
((builtins.getFlake "nixpkgs/96bc8fec15133d6056410ed3abae2fb9419fb545").legacyPackages.${system}.affine.overrideAttrs {
patches = [
../overlays/patches/affin-edgeless-right-click-drag.patch
../../overlays/patches/affin-edgeless-right-click-drag.patch
];
})

View File

@@ -0,0 +1,9 @@
auto_detect_launch_prefix = true
before_load = []
git_on_demand = true
ignored_providers = []
launch_prefix = ''
overload_local_env = false
terminal_cmd = ''
[provider_hosts]

View File

@@ -0,0 +1,10 @@
explicits = []
generic_text = 'run: '
history = true
history_when_empty = false
[Config]
hide_from_providerlist = false
icon = 'utilities-terminal'
min_score = 50
name_pretty = ''

View File

@@ -0,0 +1,519 @@
{
"flakes": [
{
"from": {
"id": "agda",
"type": "indirect"
},
"to": {
"owner": "agda",
"repo": "agda",
"type": "github"
}
},
{
"from": {
"id": "agenix",
"type": "indirect"
},
"to": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
{
"from": {
"id": "arion",
"type": "indirect"
},
"to": {
"owner": "hercules-ci",
"repo": "arion",
"type": "github"
}
},
{
"from": {
"id": "blender-bin",
"type": "indirect"
},
"to": {
"dir": "blender",
"owner": "edolstra",
"repo": "nix-warez",
"type": "github"
}
},
{
"from": {
"id": "bundlers",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "bundlers",
"type": "github"
}
},
{
"from": {
"id": "cachix",
"type": "indirect"
},
"to": {
"owner": "cachix",
"repo": "cachix",
"type": "github"
}
},
{
"from": {
"id": "composable",
"type": "indirect"
},
"to": {
"owner": "ComposableFi",
"repo": "composable",
"type": "github"
}
},
{
"from": {
"id": "disko",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "disko",
"type": "github"
}
},
{
"from": {
"id": "dreampkgs",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "dreampkgs",
"type": "github"
}
},
{
"from": {
"id": "dwarffs",
"type": "indirect"
},
"to": {
"owner": "edolstra",
"repo": "dwarffs",
"type": "github"
}
},
{
"from": {
"id": "emacs-overlay",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
{
"from": {
"id": "fenix",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
{
"from": {
"id": "flake-parts",
"type": "indirect"
},
"to": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
{
"from": {
"id": "flake-utils",
"type": "indirect"
},
"to": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
{
"from": {
"id": "helix",
"type": "indirect"
},
"to": {
"owner": "helix-editor",
"repo": "helix",
"type": "github"
}
},
{
"from": {
"id": "hercules-ci-agent",
"type": "indirect"
},
"to": {
"owner": "hercules-ci",
"repo": "hercules-ci-agent",
"type": "github"
}
},
{
"from": {
"id": "hercules-ci-effects",
"type": "indirect"
},
"to": {
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"type": "github"
}
},
{
"from": {
"id": "home-manager",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
{
"from": {
"id": "hydra",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "hydra",
"type": "github"
}
},
{
"from": {
"id": "mach-nix",
"type": "indirect"
},
"to": {
"owner": "DavHau",
"repo": "mach-nix",
"type": "github"
}
},
{
"from": {
"id": "ngipkgs",
"type": "indirect"
},
"to": {
"owner": "ngi-nix",
"repo": "ngipkgs",
"type": "github"
}
},
{
"from": {
"id": "nickel",
"type": "indirect"
},
"to": {
"owner": "tweag",
"repo": "nickel",
"type": "github"
}
},
{
"from": {
"id": "nix",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "nix",
"type": "github"
}
},
{
"from": {
"id": "nix-darwin",
"type": "indirect"
},
"to": {
"owner": "nix-darwin",
"repo": "nix-darwin",
"type": "github"
}
},
{
"from": {
"id": "nix-serve",
"type": "indirect"
},
"to": {
"owner": "edolstra",
"repo": "nix-serve",
"type": "github"
}
},
{
"from": {
"id": "nixops",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "nixops",
"type": "github"
}
},
{
"from": {
"id": "nixos-anywhere",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "nixos-anywhere",
"type": "github"
}
},
{
"from": {
"id": "nixos-hardware",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "nixos-hardware",
"type": "github"
}
},
{
"from": {
"id": "nixos-homepage",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "nixos-homepage",
"type": "github"
}
},
{
"from": {
"id": "nixos-search",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "nixos-search",
"type": "github"
}
},
{
"from": {
"id": "nixpkgs",
"type": "indirect"
},
"exact": true,
"to": {
"type": "tarball",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
}
},
{
"from": {
"id": "nixpkgs",
"type": "indirect",
"ref": "nixpkgs-unstable"
},
"exact": true,
"to": {
"type": "tarball",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
}
},
{
"from": {
"id": "nixpkgs",
"type": "indirect",
"ref": "nixos-unstable"
},
"exact": true,
"to": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
{
"from": {
"id": "nixpkgs",
"type": "indirect",
"ref": "nixos-unstable-small"
},
"exact": true,
"to": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz"
}
},
{
"from": {
"id": "nixpkgs",
"type": "indirect",
"ref": "nixos-26.05"
},
"exact": true,
"to": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-26.05/nixexprs.tar.xz"
}
},
{
"from": {
"id": "nixpkgs",
"type": "indirect",
"ref": "nixos-26.05-small"
},
"exact": true,
"to": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-26.05-small/nixexprs.tar.xz"
}
},
{
"from": {
"id": "nixpkgs",
"type": "indirect",
"ref": "nixpkgs-26.05-darwin"
},
"exact": true,
"to": {
"type": "tarball",
"url": "https://channels.nixos.org/nixpkgs-26.05-darwin/nixexprs.tar.xz"
}
},
{
"from": {
"id": "nixpkgs",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
{
"from": {
"id": "nixvim",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
{
"from": {
"id": "nur",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
{
"from": {
"id": "patchelf",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "patchelf",
"type": "github"
}
},
{
"from": {
"id": "poetry2nix",
"type": "indirect"
},
"to": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
{
"from": {
"id": "pridefetch",
"type": "indirect"
},
"to": {
"owner": "SpyHoodle",
"repo": "pridefetch",
"type": "github"
}
},
{
"from": {
"id": "sops-nix",
"type": "indirect"
},
"to": {
"owner": "Mic92",
"repo": "sops-nix",
"type": "github"
}
},
{
"from": {
"id": "systems",
"type": "indirect"
},
"to": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
{
"from": {
"id": "templates",
"type": "indirect"
},
"to": {
"owner": "NixOS",
"repo": "templates",
"type": "github"
}
}
],
"version": 2
}

20
hosts/main/git_config Normal file
View File

@@ -0,0 +1,20 @@
[core]
editor = "nvim"
pager = "delta"
[core "color"]
ui = true
[credential]
credentialStore = "cache"
helper = "manager"
[gpg]
format = "openpgp"
[gpg "openpgp"]
program = "gpg"
[user]
email = "me@c2vi.dev"
name = "Sebastian Moser"

18
hosts/main/hosts Normal file
View File

@@ -0,0 +1,18 @@
127.0.0.1 localhost
192.168.3.1 gw.c2vi.dev
192.168.0.3 gw
192.168.0.3 gw.c2vi.dev
# netbird
100.88.137.49 te
100.93.225.52 fasu
100.88.42.194 fwin
100.88.28.123 fe
100.88.79.207 fusu
100.88.79.207 files
100.88.164.39 lush
100.88.112.181 mac
100.88.116.225 nico
100.88.245.227 phone
100.88.69.32 ti

View File

@@ -0,0 +1,3 @@
# Generated by nwg-displays on 2026-08-28 at 16:00:58. Do not edit manually.
monitor=eDP-1,1920x1080@60.0,0x0,0.9999999999999997

243
hosts/main/hyprland.lua Normal file
View File

@@ -0,0 +1,243 @@
--#### vars
local mod = "SUPER"
--### idk
--hl.bind(mod .. "+p", hl.dsp.exec_cmd("nc -U /run/user/1000/walker/walker.sock"))
hl.bind(mod .. "+p", hl.dsp.exec_cmd("rofi -show run"))
hl.bind(mod .. "+space", hl.dsp.window.fullscreen_state({ internal=2, client=0, action="toggle", layout_aware=false, }))
hl.bind(mod .. "+SHIFT+c", hl.dsp.window.close())
hl.bind(mod .. "+ SHIFT + Return", hl.dsp.exec_cmd("alacritty"))
hl.config({
dwindle = {
preserve_split = true,
},
misc = {
},
input = {
touchpad = {
tap_to_click = false,
disable_while_typing = true, -- Highly recommended to prevent palm jumps
}
}
})
hl.config({
general = {
layout = "dwindle",
border_size = 2,
gaps_in = 0,
gaps_out = 0,
col = {
active_border = { colors = {"rgba(33ccffee)", "rgba(00ff99ee)"}, angle = 45 },
inactive_border = "rgba(595959aa)",
},
},
decoration = {
-- Change transparency of focused and unfocused windows
active_opacity = 1.0,
inactive_opacity = 1.0,
},
})
--#### focus movement
-- refullscreens window when the old window was fullscreen
hl.on("window.active", function (new_window, reason)
if REDO_FULLSCREEN then
REDO_FULLSCREEN = false
hl.dispatch(hl.dsp.window.fullscreen_state({ action="set", internal=2, client=0 }))
end
end)
function my_move_focus(direction)
return function()
local window = hl.get_active_window()
if window == nil then return end
REDO_FULLSCREEN = window.fullscreen ~= 0
if REDO_FULLSCREEN then
hl.dispatch(hl.dsp.window.fullscreen_state({ action="unset", internal=2, client=0 }))
end
return hl.dispatch(hl.dsp.focus({ direction = direction }))
end
end
hl.bind(mod .. " + h", my_move_focus("left"))
hl.bind(mod .. " + l", my_move_focus("right"))
hl.bind(mod .. " + j", my_move_focus("down"))
hl.bind(mod .. " + k", my_move_focus("up"))
--#### brightnes controls
hl.bind("F1", hl.dsp.exec_cmd("brightnessctl set 5%-"), { repeating = true })
hl.bind("F2", hl.dsp.exec_cmd("brightnessctl set +5%"), { repeating = true })
--#### volume controls
hl.bind("F3", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"), { repeating = true })
hl.bind("F4", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1.0"), { repeating = true })
--#### playback controls
hl.bind("F5", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
hl.bind("F6", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("F7", hl.dsp.exec_cmd("playerctl next"), { locked = true })
--#### disable background
hl.config({
misc = {
force_default_wallpaper = 0,
disable_hyprland_logo = false,
disable_splash_rendering = true,
},
})
--#### workspaces
-- Workspaces (1,7,8,9,0)
--for _, i in ipairs({1, 7, 8, 9, 0}) do
for _, i in ipairs({1,2, 3, 4, 5, 6, 7, 8, 9, 0}) do
hl.bind(mod .. "+" .. tostring(i), hl.dsp.focus({ workspace = i, }))
hl.bind(mod .. "+SHIFT+" .. tostring(i), hl.dsp.window.move({ workspace = i, }))
end
hl.workspace_rule({ workspace = "0", monitor = "eDP-1"})
--hl.workspace_rule({ workspace = "1", monitor = "eDP-1"})
hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1"})
hl.workspace_rule({ workspace = "7", monitor = "eDP-1", default = true, layout = "scrolling"})
hl.workspace_rule({ workspace = "9", monitor = "DP-1"})
hl.workspace_rule({ workspace = "2", monitor = "DP-1", default = true})
hl.workspace_rule({ workspace = "3", monitor = "DP-1"})
hl.workspace_rule({ workspace = "4", monitor = "DP-1"})
hl.workspace_rule({ workspace = "5", monitor = "DP-1"})
hl.workspace_rule({ workspace = "6", monitor = "DP-1"})
hl.workspace_rule({ workspace = "8", monitor = "DP-1"})
hl.workspace_rule({ workspace = "2", monitor = "HDMI-A-1", default = true})
hl.workspace_rule({ workspace = "3", monitor = "HDMI-A-1"})
hl.workspace_rule({ workspace = "4", monitor = "HDMI-A-1"})
hl.workspace_rule({ workspace = "5", monitor = "HDMI-A-1"})
hl.workspace_rule({ workspace = "6", monitor = "HDMI-A-1"})
hl.workspace_rule({ workspace = "8", monitor = "HDMI-A-1"})
hl.workspace_rule({
workspace = "7",
layout = "scrolling",
layout_opts = {
direction = "down",
fullscreen_on_one_column = true,
column_width = 1,
},
})
hl.config({
scrolling = {
column_width = 1;
fullscreen_on_one_column = true,
},
binds = {
movefocus_cycles_fullscreen = false,
},
misc = {
on_focus_under_fullscreen = 1,
},
render = {
direct_scanout = false,
},
})
-- Workrooms (2–6 on d, m, a, b, c)
--[[
local workrooms = {"d", "m", "a", "b", "c"}
for _, prefix in ipairs(workrooms) do
for i = 2, 6 do
local ws = prefix .. tostring(i)
hl.bind(mod .. "+" .. tostring(i), function()
hl.dsp.workspace.change_id(ws)
end)
hl.bind(mod .. "+SHIFT+" .. tostring(i), function()
hl.dsp.window.move(ws)
end)
end
end
]]
--#### keyboard layout
hl.config({ input = {
kb_layout = "de",
}})
--#### keyboard repeat
hl.config({ input = {
repeat_delay = 130,
repeat_rate = 90,
}})
--#### disable all animations
hl.config({
animations = {
enabled = false,
},
})
--#### autostart dms
hl.on("hyprland.start", function ()
hl.exec_cmd("dms run")
end)
--#### move windows
hl.bind(mod .. " + SHIFT + H", hl.dsp.window.move({ direction = "left" }))
hl.bind(mod .. " + SHIFT + J", hl.dsp.window.move({ direction = "down" }))
hl.bind(mod .. " + SHIFT + K", hl.dsp.window.move({ direction = "up" }))
hl.bind(mod .. " + SHIFT + L", hl.dsp.window.move({ direction = "right" }))
-- resize
hl.bind(mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
hl.bind(mod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
--#### animation settings
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } })
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} } })
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
-- Default springs
hl.curve("easy", { type = "spring", mass = 1, stiffness = 238.1191, dampening = 24.21279333 })
--#### end stuff
--require("hypr-monitors")
hl.monitor({
output = "eDP-1",
scale = 1,
})
-- ppc ne
hl.bind("F12", hl.dsp.exec_cmd("ppc ne"))
hl.bind("F11", hl.dsp.exec_cmd("ppc ne -b"))
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("ppc ne"))
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("ppc ne -b"))
-- Layout toggles
-- hl.bind(mod .. "+comma", hl.dsp.layout)
-- hl.bind(mod .. "+period", hl.dsp.layout.toggle_split)
-- scratchpad
--hl.bind(mod .. "+SHIFT+tab", hl.dsp.window.)
--hl.bind(mod .. "+tab", hl.dsp.scratchpad.show)
-- ### Scratchpad terminal (super+f)
--[[
hl.on("hyprland.start", function()
hl.exec_cmd("alacritty --class scratchterm")
end)
hl.window_rule({
match = { class = "scratchterm" },
float = true,
move = "center",
size = "2400 1400",
workspace = "special:scratch",
})
hl.bind(mod .. "+f", function()
hl.dsp.workspace.toggle_special("scratch")
end)
]]

48
hosts/main/installing.sh Normal file
View File

@@ -0,0 +1,48 @@
# empty nix based chroot... install variant
function inst_create_dir() {
mkdir -p /cachy
}
function inst_mount() {
if findmnt /cachy/nix; then
return
fi
mkdir -p /cachy/nix
mkdir -p /cachy/proc
mkdir -p /cachy/sys
mkdir -p /cachy/out
mkdir -p /cachy/dev
mount -o bind /nix /cachy/nix
mount -o bind /proc /cachy/proc
mount -o bind /sys /cachy/sys
mount -o bind /dev /cachy/dev
mount -o bind / /cachy/out
}
function inst_enter() {
NIX=$(realpath $(which nix))
SHELL=$(realpath $(which bash))
CHROOT=$(which chroot)
ENV=$(dirname $(realpath $(which env)))/env
PATH=$(nix eval --impure --raw --expr 'let pkgs = import <nixpkgs> {}; in with pkgs; lib.makeBinPath [ vim nix pacman busybox curl bash gawk ]')
echo -en 'source /to-source; echo hooooooo; rm /rcfile' > /cachy/rcfile
$CHROOT /cachy $ENV -i PATH="$PATH" $SHELL --rcfile /rcfile
# export SSL_CERT_FILE=/out/etc/static/ssl/certs/ca-certificates.crt
mkdir -p /etc
echo "nameserver 1.1.1.1" > /etc/resolv.conf
}
function inst_setup() {
curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz
tar -xf cachyos-repo.tar.xz
touch /etc/pacman.conf
pacman-key --init
mkdir -p /var/lib/pacman
bash ./cachyos-repo/cachyos-repo.sh
mkdir -p /lib
ln -fs $(nix eval --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#glibc.out --raw)/lib64/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2
}

View File

@@ -0,0 +1,15 @@
[Unit]
Description=Bitwarden keyring daemon
After=graphical-session.target
PartOf=graphical-session.target
[Service]
Type=simple
# initialize the default working directory
ExecStartPre=mkdir -p %h/snap/bw/common/bw-keyring-daemon/
ExecStartPre=chmod 700 %h/snap/bw/common/bw-keyring-daemon/
# start the keyring
ExecStart=%h/work/src/bw-keyring-daemon/target/release/bw-keyring-daemon -c %h/work/config/hosts/main/bw-keyring.json -d
[Install]
WantedBy=graphical-session.target

View File

@@ -0,0 +1,10 @@
[Unit]
Description=Systemd service for Lan Mouse
[Service]
Environment=PATH=/bin:/home/me/work/config/hosts/main/bin
ExecStart=lan-mouse daemon
Type=simple
[Install]
WantedBy=graphical-session.target

View File

@@ -0,0 +1,7 @@
port = 4410
[[clients]]
position = "right"
hostname = "mac"
activate_on_startup = true
ips = ["192.168.4.3"]

22
hosts/main/run Executable file
View File

@@ -0,0 +1,22 @@
#!/bin/sh
qemu-system-x86_64 \
-enable-kvm \
-kernel /cachy/boot/vmlinuz-linux-cachyos \
-initrd /cachy/boot/initramfs-linux-cachyos.img \
-fsdev local,id=rootfs,path=/cachy,security_model=none \
-device virtio-9p-pci,fsdev=rootfs,mount_tag=rootfstype \
-append "rootfstype=9p root=arch_root rootflags=trans=virtio,version=9p2000.L,msize=1048576 rw console=ttyS0 console=tty loglevel=7 " \
-device virtio-9p-pci,fsdev=rootfs,mount_tag=arch_root \
-fsdev local,id=workfs,path=/home/me/work,security_model=none \
-device virtio-9p-pci,fsdev=workfs,mount_tag=work_share \
-netdev user,id=vmnat,hostfwd=tcp::2222-:22 -device e1000,netdev=vmnat \
-m 4G -cpu host "$@"\
#-append "console=ttyS0 console=tty rootflags=subvol=cachy rw rd.luks.name=f93d0e0c-c620-4d39-bd6a-a7c0c90fb850=root root=/dev/mapper/root systemd.setenv=SYSTEMD_SULOGIN_FORCE=1" \
#-append "init=/bin/bash systemd.setenv=SYSTEMD_SULOGIN_FORCE=1 rootfstype=9p root=arch_root rootflags=trans=virtio,version=9p2000.L,msize=1048576 rw console=ttyS0 loglevel=7" \
#-nographic \
#-device virtio-scsi-pci,id=scsi0 \
#-drive file=/dev/disk/by-id/nvme-CT2000T500SSD8_240446CB0BC2,format=raw,if=none,id=hd0,cache=none,aio=native \
#-device scsi-hd,drive=hd0,bus=scsi0.0 \

View File

@@ -0,0 +1 @@
../../bin/elephant

View File

@@ -0,0 +1 @@
949

View File

@@ -0,0 +1 @@
run

Binary file not shown.

View File

@@ -0,0 +1 @@
../../bin/hyprland

View File

@@ -0,0 +1 @@
950

View File

@@ -0,0 +1 @@
run

Binary file not shown.

148
hosts/main/setup.md Normal file
View File

@@ -0,0 +1,148 @@
## chroot on host
```bash
btrfs subvolume create /cachy
mkdir -p /cachy/nix
mkdir -p /cachy/proc
mkdir -p /cachy/sys
mkdir -p /cachy/dev
mkdir -p /cachy/out
mkdir -p /cachy/home/me/work
mount -o bind /proc /cachy/proc
mount -o bind /sys /cachy/sys
mount -o bind /dev /cachy/dev
mount -o bind /nix /cachy/nix
mount -o bind / /cachy/out
mount -o bind /home/me/work /cachy/home/me/work
mount -o bind /run/user/1000 /cachy/run/user/1000
mount -t devpts -o gid=5,mode=620 devpts /cachy/dev/pts
docker run -it -v /cachy:/cachy -v /:/out --privileged cachyos/cachyos /bin/bash
```
## in container:
```bash
pacstrap -K /cachy base base-devel vim nix less direnv nvim
pacstrap -K /cachy wayland firefox alacritty dms-shell git cmake paru
pacstrap -K /cachy freerdp remmina
pacstrap -K /cachy brightnessctl playerctl nm-connection-editor ttf-hack zenity prismlauncher docker inetutils
```
## chroot
```bash
SHELL=/bin/bash chroot /cachy
unset XDG_CONFIG_DIR XDG_DATA_DIRS
export WAYLAND_DISPLAY=wayland-1
```
## in chroot
```bash
# you sometimes need to .... so that df -h can find /
mount /
ln -sf /proc/self/mounts /etc/mtab
```
## link and copy stuff
```bash
echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" > /root/.bashrc
echo "me ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers
echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
ln -sf /home/me/work/config/hosts/main/bashrc /home/me/.bashrc
ln -sf /home/me/work/config/hosts/main/bashrc /root/.bashrc
ln -fs ~/work/app-data/firefox-data/places.sqlite ~/.mozilla/firefox/me/places.sqlite
ln -fs ~/work/app-data/firefox-data/places.sqlite-wal ~/.mozilla/firefox/me/places.sqlite-wal
ln -fs ~/work/app-data/firefox-data/onetab-folder ~/.mozilla/firefox/me/storage/default/moz-extension+++e2297551-90b4-4da0-92c8-1d00cda2d080^userContextId=4294967295
ln -fs $CONFIG_DIR/hosts/main/firefox-user.js ~/.mozilla/firefox/me/user.js
sd ln -fs $CONFIG_DIR/hosts/main/lan-mouse.service /lib/systemd/user/lan-mouse.service
sd ln -fs $CONFIG_DIR/hosts/main/elephant.service /lib/systemd/user/elephant.service
mkdir -p ~/.config/walker
sd ln -fs $CONFIG_DIR/hosts/main/walker.toml ~/.config/walker/config.toml
sudo ln -sf /home/me/work/app-data/network-manager /etc/NetworkManager
sudo ln -sf $HERE_DIR/waydroid-lib /var/lib/waydroid
sudo ln -sf $HERE_DIR/waydroid-data $HOME/.local/share/waydroid
ln -s ~/work/app-data/thunderbird ~/.mozilla/thunderbird
sudo ln -sf $CONFIG_DIR/hosts/main/hosts /etc/hosts
# docker
sudo pacman -S docker
sudo systemctl enable --now docker
sudo usermod -a -G docker me
# screencast
pacman -S xdg-desktop-portal-hyprland pipewire wireplumber qt6-wayland
# netbird
curl -fsSL https://pkgs.netbird.io/install.sh | sh
# move over /var/lib/netbird
# nixpkgs
nix profile add ni#rustdesk ni#yt-dlp ni#delta
```
## fstab
```
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
#arch_root / 9p trans=virtio,version=9p2000.L,msize=1048576,rw 0 0
#work_share /home/me/work 9p trans=virtio,version=9p2000.L,msize=1048576,rw 0 0
/dev/mapper/root / btrfs rw,relatime,ssd,discard=async,space_cache=v2,compress=zstd:3,subvol=cachy 0 0
/dev/mapper/root /home/me/work btrfs rw,relatime,ssd,discard=async,space_cache=v2,compress=zstd:3,subvol=work 0 0
/dev/mapper/root /home/me/secrets btrfs rw,relatime,ssd,discard=async,space_cache=v2,compress=zstd:3,subvol=secrets 0 0
/dev/mapper/root /home/me/here btrfs rw,relatime,ssd,discard=async,space_cache=v2,compress=zstd:3,subvol=here 0 0
/dev/mapper/root /out btrfs rw,relatime,ssd,discard=async,space_cache=v2,compress=zstd:3,subvol=nixos 0 0
/dev/mapper/root /nix btrfs rw,relatime,ssd,discard=async,space_cache=v2,compress=zstd:3,subvol=nix 0 0
/dev/mapper/root /swap btrfs rw,relatime,ssd,discard=async,space_cache=v2,compress=zstd:3,subvol=swap 0 0
LABEL=MAIN-BOOT /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
/swapfile none swap defaults 0 0
/home/me/work/app-data/network-manager /etc/NetworkManager none bind 0 0
```
# VM
```bash
sudo systemctl edit getty@tty1 # and put the following in the correct place (read comments)
#[Service]
#ExecStart=
#ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin your_username %I $TERM
```
## parts
- mounts/disk setup
- keyd
- lan-mouse
- keyring service
```
sudo ln -fs $CONFIG_DIR/hosts/main/bw.service /lib/systemd/user/bw.service
sudo ln -fs $CONFIG_DIR/hosts/main/keyring.service /lib/systemd/user/keyring.service
systemctl --user enable --now bw
systemctl --user enable --now keyring
sudo ln -fs $CONFIG_DIR/zed ~/.config/
```
## log
- first tried to run the pacman from nixpkgs (problems)
- then a nixpkgs basic chroot see ./install.sh (problems)
- then had the idea to use the cachyos docker container (worked)
- there are some finicky things with chroot
- you need to mount / from in the chroot again... so that df -h can diaplay usage of / (required by pacman)
- you need to mount /dev/pts for sudo to work
- and this: ln -sf /proc/self/mounts /etc/mtab
- hyprland can not run in the chroot as it wants the xdg shell wayland proto v6 and the sway outside only has 5
- so let's go VM

30
hosts/main/shell.qml Normal file
View File

@@ -0,0 +1,30 @@
import Quickshell
import QtQuick
ShellRoot {
Variants {
model: Quickshell.screens
PanelWindow {
required property var modelData
screen: modelData
anchors {
top: true
left: true
right: true
}
implicitHeight: 32
color: "#202020"
Text {
anchors.centerIn: parent
text: "DMS test shell"
color: "white"
}
}
}
}

119
hosts/main/ssh_config Normal file
View File

@@ -0,0 +1,119 @@
Host *
IdentityFile /home/me/secrets/private-key
Host gw
User root
Host acern
Port 2222
User me
Host fasu
User me
HostName fasu
Host fasus
User server
HostName fasu
Host fe
Port 22
User me
HostName fe
Host feh
Port 9000
User root
HostName 100.88.93.24
Host fes
Port 22
User server
HostName fe
Host files
Port 49388
User files
Host fusu
Port 49388
User me
HostName fusu
Host fusus
Port 49388
User server
HostName fusu
Host fwin
User me
HostName fwin
Host github.com
HostName github.com
Host hec-builder
User root
HostName 10.5.5.72
Host here
Port 8888
User me
HostName 127.0.0.1
Host hetzner2
Port 2222
User c2vi
HostName hetzner2.ecbb.cc
Host hpm
User me
Host ligai
User s_01j7xkk335kbnr7r19zhssxn29
HostName ssh.lightning.ai
IdentityFile ~/secrets/lightning-ai-key
Host mac
Port 22
User me
Host mandroid
Port 4401
User u0_a77
HostName mac
Host mosatop
Port 2222
User me
Host nico
User root
Host ocib
User ubuntu
HostName 140.238.213.48
Host ocih
User ubuntu
HostName 152.67.70.13
Host old-hec-builder
User root
HostName 10.5.5.56
Host ouranos
User root
HostName 195.201.148.94
Host pcmc
Port 9000
User root
HostName 100.88.33.187
Host phone
Port 8022
User u0_a345
Host ppc-hosting
Port 9000
User root
HostName 100.88.46.87
Host rpis
Port 49388
User server
HostName rpi
Host storage
User root
HostName 10.5.5.50
Host tab
Port 8022
User nix-on-droid
Host ti
Port 2222
User root
HostName localhost
Host *
ForwardAgent no
AddKeysToAgent no
Compression no
ServerAliveInterval 0
ServerAliveCountMax 3
HashKnownHosts no
UserKnownHostsFile ~/.ssh/known_hosts
ControlMaster no
ControlPath ~/.ssh/master-%r@%n:%p
ControlPersist no

63
hosts/main/user.js Normal file
View File

@@ -0,0 +1,63 @@
// Generated by Home Manager.
user_pref("browser.aboutConfig.showWarning", false);
user_pref("browser.cache.check_doc_frequency", 2);
user_pref("browser.cache.disk.capacity", 4560000);
user_pref("browser.cache.disk.smart_size.enabled", false);
user_pref("browser.download.autohideButton", false);
user_pref("browser.download.dir", "/home/me/work/downloads");
user_pref("browser.download.folderList", 1);
user_pref("browser.eme.ui.firstContentShown", true);
user_pref("browser.engagement.ctrlTab.has-used", true);
user_pref("browser.engagement.downloads-button.has-used", true);
user_pref("browser.engagement.fxa-toolbar-menu-button.has-used", true);
user_pref("browser.engagement.home-button.has-used", true);
user_pref("browser.engagement.library-button.has-used", true);
user_pref("browser.engagement.sidebar-button.has-used", true);
user_pref("browser.firefox-view.feature-tour", "{\"message\":\"FIREFOX_VIEW_FEATURE_TOUR\",\"screen\":\"\",\"complete\":true}");
user_pref("browser.low_commit_space_threshold_mb", 3000);
user_pref("browser.search.region", "AT");
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("browser.startup.couldRestoreSession.count", 5);
user_pref("browser.tabs.inTitlebar", 0);
user_pref("browser.tabs.insertAfterCurrent", true);
user_pref("browser.tabs.unloadOnLowMemory", true);
user_pref("browser.theme.content-theme", 0);
user_pref("browser.theme.toolbar-theme", 0);
user_pref("browser.toolbars.bookmarks.visibility", "never");
user_pref("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}");
user_pref("devtools.chrome.enabled", true);
user_pref("devtools.everOpened", true);
user_pref("distribution.archlinux.bookmarksProcessed", true);
user_pref("distribution.canonical.bookmarksProcessed", true);
user_pref("distribution.iniFile.exists.appversion", "122.0a1");
user_pref("distribution.iniFile.exists.value", false);
user_pref("distribution.nixos.bookmarksProcessed", true);
user_pref("extensions.activeThemeID", "{8d38d24a-dd1b-4142-8873-bbaa32e4e44f}");
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.enabledScopes", 15);
user_pref("extensions.langpacks.signatures.required", false);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.adguardadblocker@adguard.com", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.extension@one-tab.com", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.grepper@codegrepper.com", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.screenshots@mozilla.org", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{446900e4-71c2-419f-a6a7-df9c091e268b}", true);
user_pref("extensions.webextensions.uuids", "{\"adguardadblocker@adguard.com\":\"b73239bf-cb93-4985-8f3b-71b32a3b3527\",\"extension@one-tab.com\":\"e2297551-90b4-4da0-92c8-1d00cda2d080\",\"grepper@codegrepper.com\":\"7cfa9e68-fba7-4eb9-8f3b-d4562a31b476\",\"{446900e4-71c2-419f-a6a7-df9c091e268b}\":\"e563a533-4e66-4b75-bbec-176bb803d96c\"}");
user_pref("javascript.options.mem.gc_parallel_marking", true);
user_pref("middlemouse.paste", false);
user_pref("network.dnsCacheExpiration", 0);
user_pref("services.sync.prefs.sync.extensions.activeThemeID", false);
user_pref("signon.autofillForms", false);
user_pref("signon.firefoxRelay.feature", "offered");
user_pref("signon.generation.enabled", false);
user_pref("signon.management.page.breach-alerts.enabled", false);
user_pref("signon.rememberSignons", false);
user_pref("trailhead.firstrun.didSeeAboutWelcome", true);
user_pref("xpinstall.signatures.required", false);
user_pref("xpinstall.whitelist.required", true);
lockPref("browser.theme.content-theme", 0)

298
hosts/main/walker.toml Normal file
View File

@@ -0,0 +1,298 @@
force_keyboard_focus = false # forces keyboard forcus to stay in Walker
close_when_open = true # close walker when invoking while already opened
click_to_close = true # closes walker if clicking outside of the main content area
as_window = false # launch walker as a regular window instead of layer shell application
single_click_activation = true # activate items with a single click opposed to a double click
selection_wrap = false # wrap list if at bottom or top
global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config
exact_search_prefix = "'" # disable fuzzy searching
theme = "default" # theme to use
disable_mouse = false # disable mouse (on input and list only)
debug = false # enables debug printing for some stuff, f.e. keybinds
page_jump_items = 10 # number of items to skip with Page Up/Down
hide_quick_activation = false # globally hide the quick activation buttons
hide_action_hints = false # globally hide the action hints
hide_action_hints_dmenu = true # hide the actions hints for dmenu
hide_return_action = false # hide actions that are bound to Return
keybind_symbols = true # render keybind hints with key symbols (e.g. ⌃+⏎) instead of plain text ("ctrl Return")
resume_last_query = false # open walker with the last query in place
actions_as_menu = false # display all possible actions in a submenu
autoplay_videos = false # auto-play video previews
ext_background_effect_blur = false # request the compositor to blur behind the box-wrapper via ext-background-effect-v1 (compositor must support it)
[shell]
exclusive_zone = -1
layer = "overlay"
anchor_top = true
anchor_bottom = true
anchor_left = true
anchor_right = true
[columns]
"symbols" = 3
[placeholders]
"default" = { input = "hi", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
[keybinds]
close = ["Escape"]
next = ["Down"]
previous = ["Up"]
left = ["Left"]
right = ["Right"]
down = ["Down"]
up = ["Up"]
toggle_exact = ["ctrl e"]
resume_last_query = ["ctrl r"]
quick_activate = ["F1", "F2", "F3", "F4"]
page_down = ["Page_Down"]
page_up = ["Page_Up"]
show_actions = ["alt j"]
[providers]
default = [
"desktopapplications",
"calc",
"runner",
"websearch",
] # providers to be queried by default
empty = ["runner"] # providers to be queried when query is empty
ignore_preview = [] # providers that should not show previews
max_results = 50 # global max results
[providers.argument_delimiter] # define the argument delimiter per provider
# runner = " "
[providers.sets] # define your own defaults/empty sets of providers
[providers.max_results_provider] # define max results per provider in here
[[providers.prefixes]]
prefix = ";"
provider = "providerlist"
#[[providers.prefixes]]
#prefix = ">"
#provider = "runner"
[[providers.prefixes]]
prefix = "/"
provider = "files"
[[providers.prefixes]]
prefix = "."
provider = "symbols"
[[providers.prefixes]]
prefix = "!"
provider = "todo"
[[providers.prefixes]]
prefix = "%"
provider = "bookmarks"
[[providers.prefixes]]
prefix = "="
provider = "calc"
[[providers.prefixes]]
prefix = "@"
provider = "websearch"
[[providers.prefixes]]
prefix = ":"
provider = "clipboard"
[[providers.prefixes]]
prefix = "$"
provider = "windows"
[providers.clipboard]
time_format = "relative" # format for the clipboard item date
[providers.actions] # This will be MERGED/OVERWRITTEN with what the user specifies
fallback = [
{ action = "menus:open", label = "open", after = "Nothing" },
{ action = "menus:default", label = "run", after = "Close" },
{ action = "menus:parent", label = "back", bind = "Escape", after = "Nothing" },
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" },
]
dmenu = [{ action = "select", default = true, bind = "Return" }]
providerlist = [
{ action = "activate", default = true, bind = "Return", after = "ClearReload" },
]
bluetooth = [
{ action = "find", bind = "ctrl f", after = "AsyncClearReload" },
{ action = "remove", bind = "ctrl d", after = "AsyncReload" },
{ action = "trust", bind = "ctrl t", after = "AsyncReload" },
{ action = "untrust", bind = "ctrl t", after = "AsyncReload" },
{ action = "pair", bind = "Return", after = "AsyncReload" },
{ action = "connect", default = true, bind = "Return", after = "AsyncReload" },
{ action = "disconnect", default = true, bind = "Return", after = "AsyncReload" },
{ action = "power_on", label = "Power On", bind = "ctrl e", after = "AsyncReload" },
{ action = "power_off", label = "Power Off", bind = "ctrl e", after = "AsyncReload" },
]
archlinuxpkgs = [
{ action = "install", bind = "Return", default = true },
{ action = "remove", bind = "Return", default = true },
{ action = "show_all", label = "show all", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "refresh", label = "refresh", bind = "ctrl r", after = "AsyncReload" },
{ action = "visit_url", label = "open URL", bind = "ctrl o" },
{ action = "show_installed", label = "show installed", bind = "ctrl i", after = "AsyncClearReload" },
]
calc = [
{ action = "copy", default = true, bind = "Return" },
{ action = "delete", bind = "ctrl d", after = "AsyncReload" },
{ action = "delete_all", bind = "ctrl shift d", after = "AsyncReload" },
{ action = "save", bind = "ctrl s", after = "AsyncClearReload" },
]
websearch = [
{ action = "search", default = true, bind = "Return" },
{ action = "open_url", label = "open url", default = true, bind = "Return" },
]
desktopapplications = [
{ action = "start", default = true, bind = "Return" },
{ action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" },
{ action = "new_instance", label = "new instance", bind = "ctrl Return" },
{ action = "new_instance:keep", label = "new+next", bind = "ctrl alt Return", after = "KeepOpen" },
{ action = "pin", bind = "ctrl p", after = "AsyncReload" },
{ action = "unpin", bind = "ctrl p", after = "AsyncReload" },
{ action = "pinup", bind = "ctrl n", after = "AsyncReload" },
{ action = "pindown", bind = "ctrl m", after = "AsyncReload" },
]
dnfpackages = [
{ action = "install", label = "Install Package", bind = "Return", default = true },
{ action = "remove", label = "Remove Package", bind = "Return", default = true },
{ action = "show_all", label = "Show All", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "show_installed", label = "Show Installed", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "refresh", label = "Refresh", bind = "ctrl r", after = "AsyncClearReload" },
{ action = "visit_url", label = "Open URL", bind = "ctrl o" },
]
files = [
{ action = "open", default = true, bind = "Return" },
{ action = "opendir", label = "open dir", bind = "ctrl Return" },
{ action = "copypath", label = "copy path", bind = "ctrl shift c" },
{ action = "copyfile", label = "copy file", bind = "ctrl c" },
{ action = "localsend", label = "localsend", bind = "ctrl l" },
{ action = "refresh_index", label = "reload", bind = "ctrl r", after = "AsyncReload" },
]
1password = [
{ action = "copy_password", label = "copy password", default = true, bind = "Return" },
{ action = "copy_username", label = "copy username", bind = "shift Return" },
{ action = "copy_2fa", label = "copy 2fa", bind = "ctrl Return" },
]
protonpass = [
{ action = "copy_password", label = "copy password", default = true, bind = "Return" },
{ action = "copy_username", label = "copy username", bind = "shift Return" },
{ action = "copy_2fa", label = "copy 2fa", bind = "ctrl Return" },
]
bitwarden = [
{ action = "copypassword", label = "copy password", default = true, bind = "Return" },
{ action = "typepassword", label = "type password", default = true, bind = "ctrl p" },
{ action = "copyusername", label = "copy username", bind = "shift Return" },
{ action = "typeusername", label = "type username", bind = "ctrl u" },
{ action = "copytotp", label = "copy 2fa", bind = "ctrl Return" },
{ action = "typetotp", label = "type 2fa", bind = "ctrl t" },
{ action = "syncvault", label = "sync", bind = "ctrl s" },
]
todo = [
{ action = "save", default = true, bind = "Return", after = "AsyncClearReload" },
{ action = "save_next", label = "save & new", bind = "shift Return", after = "AsyncClearReload" },
{ action = "delete", bind = "ctrl d", after = "AsyncClearReload" },
{ action = "active", default = true, bind = "Return", after = "Nothing" },
{ action = "inactive", default = true, bind = "Return", after = "Nothing" },
{ action = "done", bind = "ctrl f", after = "Nothing" },
{ action = "change_category", bind = "ctrl y", label = "change category", after = "Nothing" },
{ action = "clear", bind = "ctrl x", after = "AsyncClearReload" },
{ action = "create", bind = "ctrl a", after = "AsyncClearReload" },
{ action = "search", bind = "ctrl a", after = "AsyncClearReload" },
]
runner = [
{ action = "run", default = true, bind = "Return" },
{ action = "runterminal", label = "run in terminal", bind = "shift Return" },
]
symbols = [
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
]
unicode = [
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
]
nirisessions = [
{ action = "start", label = "start", default = true, bind = "Return" },
{ action = "start_new", label = "start blank", bind = "ctrl Return" },
]
clipboard = [
{ action = "copy", default = true, bind = "Return" },
{ action = "remove", bind = "ctrl d", after = "AsyncClearReload" },
{ action = "remove_all", label = "clear", bind = "ctrl shift d", after = "AsyncClearReload" },
{ action = "show_images_only", label = "only images", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "show_pinned_only", label = "only pinned", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "show_text_only", label = "only text", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "show_combined", label = "show all", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "pause", bind = "ctrl shift p" },
{ action = "unpause", bind = "ctrl shift p" },
{ action = "unpin", bind = "ctrl p", after = "AsyncClearReload" },
{ action = "pin", bind = "ctrl p", after = "AsyncClearReload" },
{ action = "edit", bind = "ctrl o" },
{ action = "localsend", bind = "ctrl l" },
]
bookmarks = [
{ action = "save", bind = "Return", after = "AsyncClearReload" },
{ action = "open", default = true, bind = "Return" },
{ action = "delete", bind = "ctrl d", after = "AsyncClearReload" },
{ action = "change_category", label = "Change category", bind = "ctrl y", after = "Nothing" },
{ action = "change_browser", label = "Change browser", bind = "ctrl b", after = "Nothing" },
{ action = "import", label = "Import", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "create", bind = "ctrl a", after = "AsyncClearReload" },
{ action = "search", bind = "ctrl a", after = "AsyncClearReload" },
]
wireplumber = [
{ action = "increase_volume", label = "+volume", bind = "ctrl y", after = "Nothing" },
{ action = "decrease_volume", label = "-volume", bind = "ctrl n", after = "Nothing" },
{ action = "mute", bind = "ctrl m", after = "Nothing" },
{ action = "unmute", bind = "ctrl m", after = "Nothing" },
{ action = "set_default_device", label = "set default", bind = "ctrl d", after = "Nothing" },
]
playerctl = [
{ action = "pause", label = "pause", bind = "Return", after = "Nothing", default = true },
{ action = "play", label = "play", bind = "Return", after = "Nothing", default = true },
{ action = "prev", label = "prev", bind = "ctrl p", after = "Nothing" },
{ action = "next", label = "next", bind = "ctrl n", after = "Nothing" },
{ action = "vol_up", label = "vol+", bind = "ctrl y", after = "Nothing" },
{ action = "vol_down", label = "vol-", bind = "ctrl h", after = "Nothing" },
{ action = "mute", label = "mute", bind = "ctrl m", after = "Nothing" },
{ action = "unmute", label = "unmute", bind = "ctrl m", after = "Nothing" },
{ action = "seek_back", label = "backward", bind = "ctrl b", after = "Nothing" },
{ action = "seek_forward", label = "forward", bind = "ctrl f", after = "Nothing" },
]
niriactions = [{ action = "execute", bind = "Return" }]
aptpackages = [
{ action = "install", label = "Install Package", bind = "Return", default = true },
{ action = "remove", label = "Remove Package", bind = "Return", default = true },
{ action = "show_all", label = "Show All", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "show_installed", label = "Show Installed", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "refresh", label = "Refresh", bind = "ctrl r", after = "AsyncClearReload" },
{ action = "visit_url", label = "Open URL", bind = "ctrl o" },
]

3
hosts/main/zmk-config Normal file
View File

@@ -0,0 +1,3 @@
[user]
home = /home/me/work/config/zmk-config

2
mize

Submodule mize updated: b2ed9efff2...d559159397

273
mods/bashrc-common Normal file
View File

@@ -0,0 +1,273 @@
export PATH=$CONFIG_DIR/mybin:$PATH
export TERM="xterm-color"
export NIXPKGS_ALLOW_UNFREE=1
# 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
cd ~
# nix build hosts
export acern="ssh://acern x86_64-linux,aarch64-linux - 20 10 big-parallel - -"
export fe="ssh://fe x86_64-linux,aarch64-linux - 20 10 big-parallel - -"
export fusu="ssh://fusu x86_64-linux,aarch64-linux - 20 10 big-parallel - -"
export mac="ssh://mac x86_64-linux,aarch64-linux - 8 5 big-parallel - -"
export mosatop="ssh://mosatop x86_64-linux,aarch64-linux - 8 5 big-parallel - -"
export hpm="ssh://hpm x86_64-linux,aarch64-linux - 8 5 big-parallel - -"
## ssh completions
_ssh_completion() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
# Grabs hostnames from both ssh config and known_hosts
opts=$(awk '/^Host / && $2 !~ /[*?]/ {print $2}' $CONFIG_DIR/hosts/main/ssh_config 2>/dev/null; \
awk '{split($1,a,","); print a[1]}' ~/.ssh/known_hosts 2>/dev/null | tr -d '[]')
COMPREPLY=( $(compgen -W "$opts" -- "$cur") )
return 0
}
complete -F _ssh_completion ssh scp sftp
# my prompt
if [[ "main" == "main" ]]
then
#export PS1="\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ "
#export PS1="\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] > "
# \n\[\033[1;34m\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$\[\033[0m\]
#export PS1="\W > ";
export PS1="cachy \[\033[01;34m\]\W\033[00m ❯❯❯ "
else
#export PS1="\033[1;32mmain❯ \[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ "
export PS1="\033[1;32mmain\[\033[01;34m\] \W\033[00m ❯❯❯ "
fi
# 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 () {
export TOPDIR=$HOME/tmp
mkdir -p $TOPDIR
cd $(python $CONFIG_DIR/scripts/quick-tmp-dir.py "$@")
}
# 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
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# making reverse search "going back" work with strg+s
stty -ixon
#################### functions ####################
# nix shell with
nrepl(){
nix repl --expr "rec { nixpkgs = builtins.getFlake \"nixpkgs/$NIXPKGS_REV\"; pkgs = import nixpkgs {}; flake = builtins.getFlake \"git+file://$(pwd)\"; config = builtins.getFlake \"git+file://$CONFIG_DIR\"; } $@"
}
# A shortcut function that simplifies usage of xclip.
# - Accepts input from either stdin (pipe), or params.
# ------------------------------------------------
cb() {
local _scs_col="\e[0;32m"; local _wrn_col='\e[1;31m'; local _trn_col='\e[0;33m'
# Check user is not root (root doesn't have access to user xorg server)
if [[ "$USER" == "root" ]]; then
echo -e "$_wrn_col""Must be regular user (not root) to copy a file to the clipboard.\e[0m"
else
# If no tty, data should be available on stdin
if ! [[ "$( tty )" == /dev/* ]]; then
input="$(< /dev/stdin)"
# Else, fetch input from params
else
input="$*"
fi
if [ -z "$input" ]; then # If no input, print usage message.
echo "Copies a string to the clipboard."
echo "Usage: cb <string>"
echo " echo <string> | cb"
else
# Copy input to clipboard
echo -n "$input" | wl-copy
# Truncate text for status
if [ ${#input} -gt 80 ]; then input="$(echo $input | cut -c1-80)$_trn_col...\e[0m"; fi
# Print status.
echo -e "$_scs_col""Copied to clipboard:\e[0m $input"
fi
fi
}
# git commit func
function gc(){
tmp=$(echo -en $@)
git commit -m "$tmp"
}
# while true -> do cat.....
function follow (){
while true;
do
cat $@;
done
}
# little looping func
function loop (){
if [ "$1" == "-s" ]
then
for (( i=1; i<=$3; i++ )); do sleep $2; ${@:4}; done
return
fi
case $1 in
''|*[!0-9]*)
# infinit iterations
while true; do $@; done
return
;;
*) ;;
esac
for (( i=1; i<=$1; i++ ));do ${@:2}; done
}
function psk(){
ps -e | grep $1 | awk '{print $1}' | xargs kill
}
sd() {
if [ "$1" == "" ]
then
sudo -E $(history | tail -n 2 | head -n 1 | awk '{$1=""; print $0}')
else
sudo -E $@
fi
}
# rech
function rech(){
python3 -c "print($@)"
}
# cf - copy file
function cf() { cat "$1" | cb; }
# shorter zathura
function zath(){
zathura "$@" 2>/dev/null &
}
#################### completions ####################
complete -cf sudo
complete -cf sd
complete -W "start stop restart status daemon-reload" stl
# ru
complete -W "mnt-wechner sync-school wstunnel hibernate p speed-test-nixos-iso speed-test-upload speed-test-download bat bstat mnt-files-local mnt-lan-local mnt-files-remote mnt-lan-remote suspend rm-tab-cur rm-last-char mnt-school mnt-host davinci-resolve-convert-videos" ru
# function to open remote desktops of my hosts
complete -W "mosatop acern phone mwin win fwin ki mac mandroid" rp
function rp () {
host=$1
if [[ "$host" == "mosatop" ]]
then
xfreerdp /u:"c2vi" /v:mosatop /p:$(cat $SECRETS_DIR/mosatop-rdp-password) /dynamic-resolution +clipboard +auto-reconnect /wm-class:"Microsoft Windows"
elif [[ "$host" == "acern" ]]
then
xfreerdp /u:"seb" /v:acern /p:$(cat $SECRETS_DIR/acern-rdp-password) /dynamic-resolution +clipboard +auto-reconnect /wm-class:"Microsoft Windows"
elif [[ "$host" == "mwin" ]]
then
xfreerdp /u:"me" /v:mac:4400 /p:$(cat $SECRETS_DIR/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "win" ]]
then
xfreerdp /u:"me" /v:192.168.122.141 /p:$(cat $SECRETS_DIR/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "phone" ]]
then
ssh phone "source ~/.bashrc && on" &
rustdesk --connect 100.88.245.227
elif [[ "$host" == "vnc-fwin" ]]
then
remmina -c $DATA_DIR/remmina/fwin.remmina
elif [[ "$host" == "fwin" ]]
then
xfreerdp /u:"me" /v:fusu:9002 /p:$(cat $SECRETS_DIR/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "ki" ]]
then
remmina -c $DATA_DIR/remmina/ki.remmina
elif [[ "$host" == "mac" ]]
then
remmina -c $DATA_DIR/remmina/mac.remmina
elif [[ "$host" == "mandroid" ]]
then
remmina -c $DATA_DIR/remmina/mandroid.remmina
fi
}
HISTCONTROL=ignoredups
HISTFILE="$DATA_DIR/$HOSTNAME/bash-history"
HISTFILESIZE=10000000
HISTIGNORE=ls:cd:exit
HISTSIZE=10000
mkdir -p "$(dirname "$HISTFILE")"
shopt -s histappend
shopt -s checkwinsize
shopt -s globstar
# aliases
alias bl=bluetoothctl
alias oebb=~/work/src/oebb/oebb.sh
alias hl=hyprctl
alias ls='ls --color=auto'
alias archive-video='yt-dlp -f "bv*+ba/b" --merge-output-format mp4 --embed-thumbnail --write-thumbnail --convert-thumbnails png --add-metadata -o "%(title)s.%(ext)s"'
alias c='cd ..'
alias cbs='history | tail -n 2 | head -n 1 | awk '\''{$1=""; print $0}'\'' | cut -c 2- | cb'
alias gitlog='git log --all --graph'
alias gs='git status'
alias ipa=' echo -e "IPv4:\n-----------------"
ip -o a show | cut -d " " -f 2,7 | grep -v : | column -t
echo -e "\nIPv6:\n-----------------"
ip -o a show | cut -d " " -f 2,7 | grep : | column -t
'
alias kwoche='curl -k https://kalenderwoche.celll.net/?api=1; echo'
alias ports='/nix/store/8a1gk78021ashna4c2hmk8xxwb1pkwwm-lsof-4.99.4/bin/lsof -i -P -n'
alias psg='ps -e | grep'
alias shutdown='echo try harder.... xD'
alias sl=ls
alias stl='sudo systemctl'
alias u='sudo umount ~/mnt'
alias vim=nvim
alias virsh='virsh -c qemu:///system'
eval "$(direnv hook bash)"

View File

@@ -45,6 +45,8 @@
- 8004 matrix http
- 8005 ppc spacetime instance
- 8006 atproto pds http
- 8007 mautrix-discord bridge appservice
- 8008 vikunja todo (task.ppc.social)
## hosting container ips (on the interface br-proxy)
- fusu 192.168.1.2
@@ -471,10 +473,10 @@ in {
{ name = "instant-backend"; domain = "instant-backend.ppc.social"; host = "me-hosting"; port = 8005; }
{ name = "isotoke-website"; domain = "isotoke.ppc.social"; host = "192.168.1.26"; port = 80; }
{ name = "affine"; domain = "affine.ppc.social"; host = "ppc-hosting"; port = 8001; }
{ name = "gitea"; domain = "git.ppc.social"; host = "ppc-hosting"; port = 8002; }
{ name = "nico"; domain = "nico.ppc.social"; host = "192.168.1.14"; port = 18789; middlewares = [ "oidc-nico" ]; }
{ name = "ppc-matrix"; domain = "matrix.ppc.social"; host = "ppc-hosting"; port = 8004; }
{ name = "ppc-pds"; domain = "pds.ppc.social"; host = "ppc-hosting"; port = 8006; }
{ name = "vikunja"; domain = "task.ppc.social"; host = "ppc-hosting"; port = 8008; }
#{ name = "spacetime"; domain = "spacetime.ppc.social"; host = "ppc-hosting"; port = 8005; extraRouterConfig = {
# rule = "Host(`spacetime.ppc.social`) && PathPrefix(`/v1/database`)";
# };

View File

@@ -1,4 +1,4 @@
100.107.67.76 te
100.88.137.49 te
100.93.225.52 fasu
100.88.42.194 fwin
100.88.28.123 fe

36
mods/nurPkgs/zmk-cli.nix Normal file
View File

@@ -0,0 +1,36 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.python3Packages.buildPythonApplication rec {
pname = "zmk-cli";
version = "0.5.0";
pyproject = true; # Tells Nix to expect a pyproject.toml instead of setup.py
src = pkgs.fetchFromGitHub {
owner = "zmkfirmware";
repo = "zmk-cli";
rev = "v${version}";
hash = "sha256-GhECLAvs4qkUGeINDSF4oJtZnXHxljmVVERyoezt35w=";
};
nativeBuildInputs = with pkgs.python3Packages; [
setuptools
setuptools-scm
wheel
];
propagatedBuildInputs = with pkgs.python3Packages; [
dacite
giturlparse
mako
rich
ruamel-yaml
shellingham
typer
west
];
meta = {
description = "Command line tool for the ZMK Firmware";
homepage = "https://github.com/zmkfirmware/zmk-cli";
};
}

View File

@@ -73,7 +73,7 @@ do_switch(){
[[ "$boot" == "false" ]] && ssh $host "sudo nixos-rebuild switch --flake \$HOME/my-nixos-config --impure"
[[ "$boot" == "true" ]] && ssh $host "sudo nixos-rebuild boot --flake \$HOME/my-nixos-config --impure"
else
nix path-info $out_path -r | xargs sudo nix store sign -k ~/work/here/secrets/nix-private
#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
[[ "$boot" == "false" ]] && ssh $host "sudo $out_path/bin/switch-to-configuration switch"
[[ "$boot" == "true" ]] && ssh $host "sudo $out_path/bin/switch-to-configuration boot"

1
obsidian-brat Submodule

Submodule obsidian-brat added at abec866f6b

1
programs Symbolic link
View File

@@ -0,0 +1 @@
apps

1
src/zmk Submodule

Submodule src/zmk added at 641514a97d

View File

@@ -25,6 +25,9 @@
else if hostName == "nico" then "/root/work/app-data/mize"
else if hostName == "fusu" && config.home.username == "files" then "/home/files/storage/files/mize"
else "/home/me/host/mize";
MIZE_CONFIG_FILES =
if hostName == "main" then "/home/me/secrets/mize-config.toml"
else "/home/me/host/mize-config.toml";
};
home.sessionPath = [
"/home/me/work/path-extra"

Some files were not shown because too many files have changed in this diff Show More