This commit is contained in:
Sebastian Moser
2025-03-03 12:59:53 +01:00
parent 7204592732
commit 6a546d9f86
19 changed files with 696 additions and 116 deletions

View File

@@ -2,14 +2,9 @@
# special thanks to: https://github.com/lostMia/nixos-config
# TODOs
# - monitor scaling
# - fix copying
# - flameshot
# - rofi config
# - rofi show ssh as well
# - fix audio next,prev
# - backgroudn and transperency
# - background and transperency
# - hibernation
# - swapfile not found in stage1
# - win + D command
# - kernel output for luks pwd on all displays
@@ -66,6 +61,7 @@
];
sound.enable = true;
home-manager.users.me.services.swayosd.enable = true;
services.blueman.enable = true;
hardware.bluetooth.enable = true;
@@ -80,6 +76,32 @@
};
environment.systemPackages = with pkgs; [
# flameshot where clipboard works with wayland
(flameshot.overrideAttrs (prev: {
nativeBuildInputs = prev.nativeBuildInputs or [] ++ [ libsForQt5.kguiaddons ];
cmakeFlags = prev.nativeBuildInputs or [] ++ [ "-DUSE_WAYLAND_CLIPBOARD=true" "-DUSE_WAYLAND_GRIM=ON" ];
patches = prev.patches or [] ++ [ ../overlays/patches/flameshot-wayland.patch ];
}))
waybar
/*
(waybar.overrideAttrs (prev: {
//patches = prev.patches or [] ++ [
//(pkgs.fetchpatch {
//url = "https://github.com/alebastr/Waybar/commit/reload-signal-fix.patch";
//hash = "sha256-c4+A7biF1FOLemjcr+TobWMLUnha8zbHIkLaW24iUcQ=";
//})
//];
patches = [];
src = pkgs.fetchFromGitHub {
owner = "alebastr";
repo = "Waybar";
rev = "d8a7f429e756f4dc378ed1cb9824d47ea46edab5";
hash = "sha256-EB7tA2mHv67Hq1yMMDJ7YuQdAinrcpI0GkLxsTguWac=";
};
}))
*/
xdg-desktop-portal
wlr-randr
rofi-wayland
@@ -87,7 +109,7 @@
swayfx
wl-clipboard
zoxide
waybar
power-profiles-daemon
brightnessctl
autotiling
@@ -103,7 +125,6 @@
sway-audio-idle-inhibit
dunst
libnotify
nur.repos.kira-bruneau.swaylock-fprintd
swayidle
corrupter
swayosd
@@ -157,7 +178,7 @@
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
### Variables
set $mod Mod1
set $mod Mod4
set $left h
set $down j
set $up k
@@ -174,9 +195,9 @@
### Input configuration
input type:keyboard {
xkb_layout de,de
repeat_delay 160,160
repeat_rate 80,80
xkb_options altwin:swap_lalt_lwin
repeat_delay 130,130
repeat_rate 90,90
# xkb_options altwin:swap_lalt_lwin
}
# altwin:swap_lalt_lwin swaps the left alt and windows keys, so the win key is on the right and the alt is on the left.
@@ -206,35 +227,51 @@
## Autostart
exec autotiling # Automatically tiles in whatever direction is the longest
exec "/usr/bin/env bash ${./..}/scripts/idlescript" # Manages suspending and locking
exec "/usr/bin/env bash ${./..}/scripts/batteryscript.sh" # Sends battery notifications when necessary
#exec "/usr/bin/env bash ${./..}/scripts/idlescript" # Manages suspending and locking
exec ${pkgs.bash}/bin/bash ${./..}/scripts/batteryscript.sh # Sends battery notifications when necessary
exec nm-applet # Networkmanager applet
exec blueman-applet # Bluetoothmanager applet
exec blueman-tray # Bluetoothmanager tray icon
exec shikane # Manages displays and known display setups
exec sway-audio-idle-inhibit # Prevents sleep when audio is playing
exec swayosd-server # OSD server for audio and screen brightness popups
exec waybar # Status bar for sway
exec swayosd-server
assign [class="vesktop"] workspace 1
assign [class="Signal"] workspace 1
assign [app_id="firefox"] workspace 2
assign [app_id="thunderbird"] workspace 10
exec swayidle lock ${pkgs.writeScriptBin "my-lock" ''
swaylock
systemctl suspend-then-hibernate
''}/bin/my-lock
#assign [class="vesktop"] workspace 1
#assign [class="Signal"] workspace 1
#assign [app_id="firefox"] workspace 2
#assign [app_id="thunderbird"] workspace 10
### Key bindings
bindsym Mod4+Shift+Return exec $term
#bindsym Mod4+Shift+Return exec $term
bindsym --locked $mod+d exec wlr-randr --output eDP-1 --on
bindsym --locked $mod+Shift+d exec wlr-randr --output eDP-1 --off
bindsym $mod+Shift+Return exec $term
bindsym $mod+delete exec $term
bindsym $mod+Shift+c kill
bindsym $mod+q reload
bindsym $mod+x exec ${./..}/scripts/lockscript
bindsym $mod+x exec swaylock
bindsym $mod+Shift+x exec bash -c "swaylock; systemctl suspend-then-hibernate"
#exec swayidle -w \
#timeout 300 'swaylock -f -c 000000 -i $lock_bg' \
#timeout 600 'swaymsg "output * dpms off"' \
#resume 'swaymsg "output * dpms on"' \
#before-sleep 'swaylock -f -c 000000 -i $lock_bg'
bindsym $mod+Shift+s exec "${./..}/scripts/screenshot.sh"
#bindsym $mod+p exec $menu -show combi -combi-modes "run" -modi combi -monitor "eDP-1" # rofi
bindsym $mod+p exec $menu -show combi -combi-modes "run" -modi combi
bindsym $mod+Shift+p exec $menu -show ssh -monitor "eDP-1"
bindsym $mod+p exec $menu -show combi -combi-modes "ssh,run"
bindsym $mod+Shift+q exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
@@ -248,13 +285,17 @@
#bindsym $mod+p exec ${./..}/scripts/toggle_freeze_process.sh
# Function Keys
bindsym $mod+Shift+m exec sleep 0.1 && swaymsg output eDP-1 dpms toggle
#bindsym $mod+Shift+m exec sleep 0.1 && swaymsg output eDP-1 dpms toggle
bindsym $mod+Shift+y exec swayosd-client --brightness -2
bindsym $mod+y exec swayosd-client --brightness +2
bindsym $mod+Shift+y exec swayosd-client --brightness -8
bindsym $mod+y exec swayosd-client --brightness +8
#bindsym $mod+m exec swayosd-client --output-volume mute-toggle --max-volume 200
bindsym $mod+n exec playerctl next
bindsym $mod+Shift+n exec playerctl previous
bindsym $mod+c exec playerctl play-pause
bindsym $mod+Shift+v exec swayosd-client --output-volume -2 --max-volume 200
bindsym $mod+v exec swayosd-client --output-volume +2 --max-volume 200
@@ -335,9 +376,9 @@
# Layout stuff:
gaps inner 2
gaps outer 2
gaps outer 0
gaps top 5
gaps top 0
#smart_borders on
#smart_gaps on
@@ -353,9 +394,10 @@
bindsym $mod+Comma layout tabbed
bindsym $mod+Period layout toggle split
bindsym $mod+Return fullscreen
bindsym $mod+space fullscreen
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
#bindsym $mod+r focus mode_toggle
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.
@@ -376,15 +418,15 @@
# down will grow the containers height
set $move_amount 175px
bindsym $mod+Mod4+$right resize grow width $move_amount
bindsym $mod+Mod4+$up resize shrink height $move_amount
bindsym $mod+Mod4+$down resize grow height $move_amount
bindsym $mod+Mod4+$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+Mod4+Left resize grow width $move_amount
bindsym $mod+Mod4+Down resize shrink height $move_amount
bindsym $mod+Mod4+Up resize grow height $move_amount
bindsym $mod+Mod4+Right 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
# Return to default mode
# bindsym Return mode "default"
@@ -1044,42 +1086,58 @@
'';
};
home-manager.users.me.home.file.".config/swaylock/config".text = ''
daemonize
show-failed-attempts
show-keyboard-layout
ignore-empty-password
fingerprint
image=$HOME/Pictures/Screenshots/screen.png
indicator-radius=200
indicator-thickness=10
inside-color=#00000000
line-color=#00000000
ring-color=#00000000
text-color=#00000000
layout-bg-color=#00000000
layout-text-color=#00000000
inside-clear-color=#00000000
line-clear-color=#00000000
ring-clear-color=#ffff99
text-clear-color=#00000000
inside-ver-color=#00000000
line-ver-color=#00000000
ring-ver-color=#70ffff
text-ver-color=#00000000
inside-wrong-color=#00000000
line-wrong-color=#00000000
ring-wrong-color=#ff5555
text-wrong-color=#00000000
bs-hl-color=#ff5555
key-hl-color=#99ff99
text-caps-lock-color=#ffffff
security.pam.services.swaylock = {
text = ''
auth include login
'';
};
home-manager.users.me.programs.swaylock = {
package = pkgs.writeScriptBin "swaylock" ''
path=/tmp/lock_screen_picture.png
grim "$path" &&
corrupter -add 0 -bheight 20 -stdabber 10 -boffset 50 "$path" "$path" &&
#swaymsg "output * dpms on"
${nur.repos.kira-bruneau.swaylock-fprintd}/bin/swaylock
'';
enable = true;
settings = {
daemonize = true;
show-failed-attempts = true;
show-keyboard-layout = true;
ignore-empty-password = true;
fingerprint = true;
image = "/tmp/lock_screen_picture.png";
indicator-radius = 200;
indicator-thickness = 10;
inside-color = "#00000000";
line-color = "#00000000";
ring-color = "#00000000";
text-color = "#00000000";
layout-bg-color = "#00000000";
layout-text-color = "#00000000";
inside-clear-color = "#555755";
line-clear-color = "#00000000";
ring-clear-color = "#ffff99";
text-clear-color = "#00000000";
inside-ver-color = "#00000000";
line-ver-color = "#00000000";
ring-ver-color = "#70ffff";
text-ver-color = "#00000000";
inside-wrong-color = "#00000000";
line-wrong-color = "#00000000";
ring-wrong-color = "#ff5555";
text-wrong-color = "#00000000";
bs-hl-color = "#ff5555";
key-hl-color = "#99ff99";
text-caps-lock-color = "#ffffff";
};
};
}

21
flake.lock generated
View File

@@ -3667,6 +3667,7 @@
"robotnix": "robotnix",
"systems": "systems_5",
"victorinix": "victorinix",
"waveforms": "waveforms",
"zephyr-nix": "zephyr-nix",
"zmk-nix": "zmk-nix"
}
@@ -4157,6 +4158,26 @@
"type": "github"
}
},
"waveforms": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1740296893,
"narHash": "sha256-8FQRWdQXqRI7EfDjx9EkQMpnEEQXmK/m/PSRWcRIagc=",
"owner": "liff",
"repo": "waveforms-flake",
"rev": "d210e3a743349a659a1cfdc202cba32bae6f2dbc",
"type": "github"
},
"original": {
"owner": "liff",
"repo": "waveforms-flake",
"type": "github"
}
},
"ws-butler": {
"flake": false,
"locked": {

View File

@@ -82,6 +82,11 @@
url = "github:lilyinstarlight/zmk-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
waveforms = {
url = "github:liff/waveforms-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nixpkgs-unstable, nixos-generators, flake-utils, systems, ... }@inputs:

View File

@@ -1,5 +1,5 @@
{ inputs, pkgs, ... }:
{ inputs, pkgs, secretsDir, ... }:
{
imports = [
../common/all.nix
@@ -30,6 +30,8 @@
#];
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.package = pkgs.zfs_unstable;
boot.zfs.forceImportRoot = false;
@@ -89,6 +91,21 @@
8080 # for mitm proxy
5901 # vnc
5357 # wsdd
8080 # for mitm proxy
49388
49389
49390
49391
49392
49393
];
networking.firewall.allowedUDPPorts = [
3702 # wsdd
67 # allow DHCP traffic
53 # allow dns
];
networking.networkmanager.enable = false; # Easiest to use and most distros use this by default.
@@ -101,6 +118,11 @@
environment.systemPackages = with pkgs; [
ntfs3g
virtiofsd
bcache-tools
su
fuse3
terraform
usbutils
];
nix.settings = {
@@ -131,4 +153,203 @@
nameservers = [ "1.1.1.1" "8.8.8.8" ];
};
############################ update ip service
systemd.services.update-ip =
let
update-ip = pkgs.writeShellApplication {
name = "update-ip";
runtimeInputs = with pkgs; [ curl w3m ];
text = ''
ip=$(curl my.ip.fi)
curl "http://dynv6.com/api/update?hostname=${builtins.readFile "${secretsDir}/dns-name-two"}&ipv4=$ip&token=${builtins.readFile "${secretsDir}/dns-name-two-token"}"
curl "https://dynamicdns.park-your-domain.com/update?host=home&domain=${builtins.readFile "${secretsDir}/dns-name"}&password=${builtins.readFile "${secretsDir}/dns-name-token"}&ip=$ip"
# https://www.namecheap.com/support/knowledgebase/article.aspx/29/11/how-to-dynamically-update-the-hosts-ip-with-an-https-request/
'';
};
#curl "https://dynamicdns.park-your-domain.com/update?host=mc&domain=c2vi.dev&password=${builtins.readFile "${secretsDir}/dns-name-token"}&ip=$ip"
in
{
enable = true;
description = "dyndns ip updates";
unitConfig = {
Type = "simple";
};
serviceConfig = {
Restart = "always";
RestartSec = "500s";
ExecStart = "${update-ip}/bin/update-ip";
};
wantedBy = [ "multi-user.target" ];
};
###################################### get oci ampere vm ####################################
systemd.services.oci-ampere =
let
oci-ampere = pkgs.writeShellApplication {
name = "oci-ampere";
runtimeInputs = with pkgs; [ terraform ];
text = ''
if [[ -f /home/me/here/oci-ampere-vm/not_gotten ]]
then
echo not gotten....................................
pwd
cd /home/me/here/oci-ampere-vm
terraform apply -auto-approve && rm /home/me/here/oci-ampere-vm/not_gotten
else
echo gotten!!!!!!!!!!!!!!!!!!!!!
fi
'';
};
in
{
enable = false;
description = "get a oci ampere vm";
unitConfig = {
Type = "simple";
};
serviceConfig = {
Restart = "always";
RestartSec = "500s";
ExecStart = "${oci-ampere}/bin/oci-ampere";
};
wantedBy = [ "multi-user.target" ];
};
################################ samba ######################################
services.samba-wsdd.enable = true; # make shares visible for windows 10 clients
# needed see: [[samba problems]] in my obsidian vault
users.users.files.group = "files";
users.groups.files = {};
services.samba = {
enable = true;
securityType = "user";
extraConfig = ''
server role = standalone server
map to guest = bad user
usershare allow guests = yes
hosts allow = 192.168.0.0/16
hosts deny = 0.0.0.0
workgroup = WORKGROUP
security = user
'';
shares = {
files = {
"valid users" = "files";
"comment" = "all my files";
"path" = "/home/files/storage/files";
"browsable" = "no";
"read only" = "no";
"guest ok" = "no";
"force user" = "files";
"force group" = "files";
"force create mode" = "0777";
# Papierkorb
"vfs object" = "recycle";
"recycle:repository" = "/home/files/storage/files/trash-files";
"recycle:keeptree" = "Yes";
"recycle:versions" = "Yes";
"recycle:touch" = "Yes";
"recycle:touch_mtime" = "Yes";
"recycle:maxsize" = "80000";
};
lan = {
"comment" = "gastordner";
"path" = "/home/files/storage/lan";
"read only" = "no";
"guest ok" = "yes";
"force user" = "files";
"force group" = "files";
"force create mode" = "0777";
# Papierkorb
"vfs object" = "recycle";
"recycle:repository" = "/home/files/storage/files/trash-lan";
"recycle:keeptree" = "No";
"recycle:versions" = "Yes";
"recycle:touch" = "Yes";
"recycle:touch_mtime" = "Yes";
"recycle:maxsize" = "8000";
};
mama = {
"comment" = "Meine Dateien auf Mamas Laptop";
"path" = "/home/files/storage/files/stuff/Mamas-Laptop";
"browsable" = "no";
"read only" = "no";
"guest ok" = "no";
"valid users" = "mamafiles";
"force user" = "files";
"force group" = "files";
"force create mode" = "0777";
};
};
};
############################## backup to onedrive ##################################
# needs that
programs.fuse.userAllowOther = true; # otherwise the root user has no acces to the mount
systemd.services.rclone-mount-backup = {
enable = false;
description = "Mount rclone backup folder";
unitConfig = {
Type = "simple";
};
serviceConfig = {
ExecStart = "${pkgs.bash}/bin/bash -c 'export PATH=/run/wrappers/bin:$PATH; id; ${pkgs.rclone}/bin/rclone mount --allow-non-empty --allow-other --vfs-cache-max-size 2G --vfs-cache-mode full backup: /home/files/backup'";
User = "files";
Group = "files";
};
wantedBy = [ "multi-user.target" ];
};
services.borgbackup.jobs.files = {
#user = "files";
extraCreateArgs = "--verbose --list --filter=AMECbchfs --stats --checkpoint-interval 600";
extraArgs = "--progress";
paths = "/home/files/storage";
doInit = false;
repo = "/home/files/backup/dateien-backup-borg-repo";
compression = "lzma,9";
startAt = "weekly";
user = "files";
group = "files";
postCreate = ''
echo create done!!!!!
'';
extraPruneArgs = "--stats --list --save-space";
patterns = [
"- /home/files/storage/files/no-backup"
];
encryption.mode = "repokey-blake2";
encryption.passCommand = "cat /home/files/secrets/borg-passphrase";
environment.BORG_KEY_FILE = "/home/files/secrets/borg-key";
prune.keep = {
#within = "1w"; # Keep all archives from the last day
daily = 7;
weekly = 7;
monthly = -1; # Keep at least one archive for each month
};
};
}

View File

@@ -145,6 +145,7 @@
uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c";
type = "wifi";
interface-name = "wlan0";
autoconnect = true;
};
wifi = {
@@ -164,6 +165,31 @@
};
};
hh40 = {
connection = {
id = "hh40";
uuid = "73a61cef-8f7b-4f42-ab3f-0066e0295bbc";
type = "wifi";
interface-name = "wlan0";
autoconnect = true;
};
wifi = {
hidden = "false";
mode = "infrastructure";
ssid = builtins.readFile "${secretsDir}/home-wifi-ssid";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/home-wifi-password";
};
ipv4 = {
method = "auto";
};
};
share = {
connection = {
id = "share";

View File

@@ -38,6 +38,9 @@
virtualisation.vmVariant.services.timesyncd.enable = lib.mkForce false;
virtualisation.waydroid.enable = true;
services.nscd.enable = lib.mkForce false;
virtualisation.docker.enable = true;
@@ -55,6 +58,10 @@
programs.nix-ld.enable = true;
programs.steam.enable = true;
# disable touch clicks because i always tap while typing
#services.xserver.libinput.touchpad.tappingButtonMap = null;
services.xserver.libinput.touchpad.tapping = false;
@@ -76,10 +83,20 @@
# see: https://github.com/NixOS/nixpkgs/issues/300081
#"${inputs.nixpkgs-unstable}/nixos/modules/virtualisation/incus.nix"
#../scripts/yt-block/module.nix
# add waveforms flake module
#inputs.waveforms.nixosModule
];
services.udev.packages = [ inputs.waveforms.packages.${system}.adept2-runtime ];
environment.systemPackages = with pkgs; [
inputs.waveforms.packages.${system}.waveforms
# add pyclip for waydroid
python310Packages.pyclip
grim # screenshot functionality
slurp # screenshot functionality
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
@@ -91,6 +108,14 @@
];
})
# waveforms
# my keyboar flash script, that opens as an alacritty window
(pkgs.writeShellScriptBin "keyboard-flash" "alacritty --command ${pkgs.writeShellScriptBin "keyboard-flash-internal" "${./..}/scripts/keyboard-flash; bash"}/bin/keyboard-flash-internal")
# my keyboar flash script, that opens as an alacritty window
(pkgs.writeShellScriptBin "keyboard-flash-left" "alacritty --command ${pkgs.writeShellScriptBin "keyboard-flash-internal" "${./..}/scripts/keyboard-flash left; bash"}/bin/keyboard-flash-internal")
slint-lsp
cifs-utils
nfs-utils
@@ -104,6 +129,8 @@
# 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;
# enable ntp
@@ -513,14 +540,22 @@
virtualisation.incus.enable = true;
systemd.services.incus.path = [ pkgs.swtpm ];
#virtualisation.incus.package = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.incus;
users.users.me.extraGroups = [ "incus-admin" ];
# add myself to plugdev group for waveforms
# and incus-admin to use incus without sudo
users.users.me.extraGroups = [ "incus-admin" "plugdev" ];
virtualisation.podman.enable = true;
virtualisation.kvmgt.enable = true;
boot.extraModprobeConfig = "options i915 enable_guc=2";
boot.kernelParams = [ "intel_iommu=on" "pcie_aspm=force" ];
boot.resumeDevice = "/dev/disk/by-uuid/20002ed7-1431-4992-90f6-730bdc6eef2c";
boot.kernelParams = [
"resume_offset=45743809"
"intel_iommu=on"
"pcie_aspm=force"
];
virtualisation.kvmgt.vgpus = {
"i915-GVTg_V5_8" = {
@@ -544,17 +579,18 @@
############################## swap and hibernate ###################################
swapDevices = [ { device = "/swapfile"; } ];
boot.resumeDevice = "/swapfile";
# boot.resumeDevice = "/swapfile";
services.logind = {
extraConfig = ''
HandlePowerKey=suspend-then-hibernate
'';
lidSwitch = "suspend-then-hibernate";
lidSwitchExternalPower = "suspend-then-hibernate";
lidSwitch = "lock";
lidSwitchExternalPower = "lock";
lidSwitchDocked = "ignore";
};
systemd.sleep.extraConfig = ''
HibernateDelaySec=27h
HibernateDelaySec=4h
HibernateMode=shutdown
'';
}

View File

@@ -1,3 +1,4 @@
home.c2vi.dev rpi
home.c2vi.dev fusu
home.c2vi.dev rpis
home.c2vi.dev files

View File

@@ -1,20 +1,23 @@
{ stdenv
, fetchFromGitHub
, meson
, lib
, ninja
}:
stdenv.mkDerivation rec {
name = "exitß";
name = "exit0";
src = fetchFromGitHub {
owner = "richardweinberger";
repo = "exit0";
rev = "f6cdeeb858ad9717b698a21e6fec3bb94b2aa2dd";
sha256 = "";
sha256 = "sha256-NCNPO4XCdCwPLSQuW4AT6vskqvu1ks/yHGUzzI+l3hE=";
};
nativeBuildInputs = [
meson
ninja
];
buildInputs = [

View File

@@ -1,7 +1,8 @@
#!/bin/sh
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)
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 -- $@
else
nix run github:c2vi/htldoc/master -- $@

View File

@@ -104,6 +104,7 @@ cat /sys/class/power_supply/BAT1/status
elif [ "$1" == "hibernate" ]
then
swaylock
sudo systemctl hibernate

View File

@@ -1,3 +1,3 @@
#!/bin/bash
~/work/config/scripts/win -o main-win 192.168.122.98 sebastian $@
~/work/config/scripts/win -o win 192.168.122.141 me $@

View File

@@ -395,6 +395,20 @@
" ###### rust ###### "
" specially for mize...
cnoreabbrev md call Set_Mize_RunBuild()
function! Set_Mize_RunBuild()
cnoreabbrev c call Mize_RunBuild()
endfunction
function! Mize_RunBuild()
:w
silent ! echo Run > ~/.mize/mize_dev_module/pipe
endfunction
function! Setup_rust()
vnoremap s :call Rust_toggle_comment()<Enter>

View File

@@ -1,5 +1,6 @@
{ ... }:
{
/*
programs.rofi = {
enable = true;
theme = "Arc-Dark";
@@ -11,4 +12,175 @@
color-window = "#1c2023, #919ba0, #1c2023";
};
};
*/
# credit https://github.com/lostMia/nixos-config/blob/f1654caf8572f25f9de9216cfe402995187f3c27/programs/rofi.nix
home.file.".config/rofi/config.rasi".text = ''
* {
selected-normal-foreground: #282a36;
foreground: #f8f8f2;
item-normal: #1e1e1e;
item-alternative: #222222;
normal-foreground: @foreground;
alternate-normal-background: rgba ( 45, 48, 59, 1 % );
red: rgba ( 220, 50, 47, 100 % );
selected-urgent-foreground: rgba ( 249, 249, 249, 100 % );
blue: rgba ( 38, 139, 210, 100 % );
urgent-foreground: rgba ( 204, 102, 102, 100 % );
alternate-urgent-background: rgba ( 75, 81, 96, 90 % );
active-foreground: rgba ( 101, 172, 255, 100 % );
lightbg: rgba ( 238, 232, 213, 100 % );
selected-active-foreground: @foreground;
alternate-active-background: rgba ( 45, 48, 59, 88 % );
background: #1b1b1b;
alternate-normal-foreground: @foreground;
normal-background: rgba ( 45, 48, 59, 1 % );
lightfg: rgba ( 88, 104, 117, 100 % );
selected-normal-background: #f8f8f2;
border-color: #ff3060;
spacing: 10;
separatorcolor: rgba ( 45, 48, 59, 1 % );
urgent-background: rgba ( 45, 48, 59, 15 % );
selected-urgent-background: rgba ( 165, 66, 66, 100 % );
alternate-urgent-foreground: @urgent-foreground;
background-color: rgba ( 0, 0, 0, 0 % );
alternate-active-foreground: @active-foreground;
active-background: rgba ( 29, 31, 33, 17 % );
selected-active-background: rgba ( 26, 28, 35, 100 % );
}
configuration {
font: "HackNerdFont Regular 14";
show-icons: true;
icon-theme: "Tela circle purple dark";
drun-display-format: "{name}";
scroll-method: 0;
disable-history: false;
sidebar-mode: false;
}
window {
background-color: @background;
border: 2;
border-color: @border-color;
padding: 15;
width: 500px;
}
listview {
lines: 12;
columns: 1;
}
mainbox {
border: 0;
padding: 0;
}
message {
border: 2px 0px 0px ;
border-color: @separatorcolor;
padding: 1px ;
}
textbox {
text-color: @foreground;
}
listview {
fixed-height: 0;
border: 8px 0px 0px ;
border-color: @separatorcolor;
spacing: 8px ;
scrollbar: false;
padding: 2px 0px 0px ;
}
element {
border: 1px;
border-radius: 12px;
border-color: #333333;
padding: 4px ;
}
element-text {
background-color: inherit;
text-color: inherit;
}
element.normal.normal {
background-color: @item-normal;
text-color: @normal-foreground;
}
element.normal.urgent {
background-color: @urgent-background;
text-color: @urgent-foreground;
}
element.normal.active {
background-color: @active-background;
text-color: @active-foreground;
}
element.selected.normal {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
element.selected.urgent {
background-color: @selected-urgent-background;
text-color: @selected-urgent-foreground;
}
element.selected.active {
background-color: @selected-active-background;
text-color: @selected-active-foreground;
}
element.alternate.normal {
background-color: @item-alternative;
text-color: @alternate-normal-foreground;
}
element.alternate.urgent {
background-color: @alternate-urgent-background;
text-color: @alternate-urgent-foreground;
}
element.alternate.active {
background-color: @alternate-active-background;
text-color: @alternate-active-foreground;
}
scrollbar {
width: 4px ;
border: 0;
handle-color: @normal-foreground;
handle-width: 8px ;
padding: 0;
}
mode-switcher {
border: 2px 0px 0px ;
border-color: @separatorcolor;
}
button {
spacing: 0;
text-color: @normal-foreground;
}
button.selected {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
inputbar {
spacing: 0;
text-color: @normal-foreground;
padding: 1px ;
}
case-indicator {
spacing: 0;
text-color: @normal-foreground;
}
entry {
spacing: 0;
text-color: @normal-foreground;
}
prompt {
spacing: 0;
text-color: @normal-foreground;
}
inputbar {
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
textbox-prompt-colon {
expand: false;
str: " ";
margin: 0px 0.3em 0em 0em ;
text-color: @normal-foreground;
}
'';
}

View File

@@ -140,8 +140,12 @@ in rec {
# the charybdis has a left and right, so the default parts works
shield = "charybdis_right";
#zephyrDepsHash = "sha256-n7xX/d8RLqDyPOX4AEo5hl/3tQtY6mZ6s8emYYtOYOg=";
zephyrDepsHash = "sha256-/ECQR3x0hzVGB7icGuWeyyNC9HuWmCgS5xA8r30gCAw=";
postPatch = ''
mkdir -p ./zmk/app/boards/
cp -r ./boards/* ./zmk/app/boards/
'';
zephyrDepsHash = "sha256-4enAzZRvlV0ni1+rv7PUsRI6Rhb+zweuFBLeb/sflBc=";
};
@@ -155,8 +159,13 @@ in rec {
# the charybdis has a left and right, so the default parts works
shield = "charybdis_left";
postPatch = ''
mkdir -p ./zmk/app/boards/
cp -r ./boards/* ./zmk/app/boards/
'';
#zephyrDepsHash = "sha256-n7xX/d8RLqDyPOX4AEo5hl/3tQtY6mZ6s8emYYtOYOg=";
zephyrDepsHash = "sha256-/ECQR3x0hzVGB7icGuWeyyNC9HuWmCgS5xA8r30gCAw=";
zephyrDepsHash = "sha256-4enAzZRvlV0ni1+rv7PUsRI6Rhb+zweuFBLeb/sflBc=";
};
@@ -172,7 +181,7 @@ in rec {
shield = "charybdis_%PART%";
#zephyrDepsHash = "sha256-n7xX/d8RLqDyPOX4AEo5hl/3tQtY6mZ6s8emYYtOYOg=";
zephyrDepsHash = "sha256-/ECQR3x0hzVGB7icGuWeyyNC9HuWmCgS5xA8r30gCAw=";
zephyrDepsHash = "sha256-r4SIPCLqBT/y2bblHUUZtNRwrhXFWY8wWtkplbG3coo=";
};

View File

@@ -2,14 +2,14 @@
# Settings
battery_percent_MODULUS=5 # How many percent difference are required for another update
INTERVAL=5 # The interval at which to check the battery percentage
INTERVAL=20 # The interval at which to check the battery percentage
ALERT_SCRIPT="sudo /home/mia/Scripts/keyboard_alert.sh"
# Battery Levels
BAT_RECOMMENDED_UPPER_LIMIT=80
BAT_RECOMMENDED_LOWER_LIMIT=40
BAT_SLIGHTLY_LOW=30
BAT_LOW=20
BAT_RECOMMENDED_LOWER_LIMIT=30
BAT_SLIGHTLY_LOW=25
BAT_LOW=17
BAT_VERY_LOW=10
BAT_HIB=5
@@ -23,13 +23,13 @@ get_percentage()
countdown()
{
for i in $(seq 1 10);
for i in $(seq 1 15);
do
if [[ $(cat /sys/bus/acpi/drivers/battery/*/power_supply/BAT?/status) = "Charging" ]]; then
return
fi
sleep 1
sleep 4
notify-send $((10-$i)) -u critical
done
systemctl hibernate

View File

@@ -1,11 +1,13 @@
#!/usr/bin/env bash
set -e
CONFIG_REPO_LOCATION=~/work/config
CHARYBDIS_DISK_LOCATION=/dev/disk/by-uuid/0042-0042
# use the fusefatfs packaged in my nurPkgs
alias fusefatfs="$(nix build ${CONFIG_REPO_LOCATION}#mynurPkgs.fusefatfs --no-keep-outputs --print-out-paths)/bin/fusefatfs"
export fusefatfs="$(nix build ${CONFIG_REPO_LOCATION}#mynurPkgs.fusefatfs --no-keep-outputs --print-out-paths)/bin/fusefatfs"
# if we have a keyboard config like thing in the clipboard.... use that
@@ -15,18 +17,34 @@ if [[ "$(wl-paste | head -n 4)" == '#include <dt-bindings/zmk/mouse.h>
#include <dt-bindings/zmk/keys.h>' ]]
then
echo pasting keyboard config from clipboard
wl-paste > $CONFIG_REPO_LOCATION/zmk-config/config/charybdis.keymap
wl-paste | grep -v "bindings/zmk/pointing" > $CONFIG_REPO_LOCATION/zmk-config/config/charybdis.keymap
fi
mkdir -p $TMP/keyboard-flash-mnt
exit
sudo mkdir -p /tmp/keyboard-flash-mnt
sudo fusefatfs $CHARYBDIS_DISK_LOCATION $TMP/keyboard-flash-mnt
# error checking if device exists
if [[ ! -L $CHARYBDIS_DISK_LOCATION ]]
then
echo err: keyboard not in bootloader mode
exit 1
fi
echo before build
firmware_out_path=$(nix build .#random.keyboardRight -L --no-keep-outputs --print-out-paths)
if [[ $1 == "left" ]]
then
firmware_out_path=$(nix build ${CONFIG_REPO_LOCATION}#random.keyboardLeft -L --no-keep-outputs --print-out-paths)
else
firmware_out_path=$(nix build ${CONFIG_REPO_LOCATION}#random.keyboardRight -L --no-keep-outputs --print-out-paths)
fi
echo firmware at: $firmware_out_path
sudo cp $firmware_out_path #NEXT: what to copy where
# flashing by writing to device directly
#sudo dd if=$firmware_out_path/zmk.uf2 of=$CHARYBDIS_DISK_LOCATION
sudo umount $TMP/keyboard-flash-mnt
# flashing by mounting
sudo $fusefatfs -o rw+ $CHARYBDIS_DISK_LOCATION /tmp/keyboard-flash-mnt
sudo cp $firmware_out_path/zmk.uf2 /tmp/keyboard-flash-mnt/CURRENT.UF2 || true
sudo umount /tmp/keyboard-flash-mnt

View File

@@ -1,8 +0,0 @@
#!/usr/bin/env bash
path="/home/mia/Pictures/Screenshots/screen.png"
grim "$path" &&
corrupter -add 0 -bheight 20 -stdabber 10 -boffset 50 "$path" "$path" &&
swaylock -c /home/mia/.config/swaylock/config &&
swaymsg "output * dpms on"

View File

@@ -9,7 +9,7 @@ default_vm_uuid=win
#default_vm_uuid=6a412143-871f-4838-bacd-5dcfa5fa95c3
username=me
password=$(cat ~/work/here/secrets/win-vm-pwd)
password=$(cat ~/secrets/win-vm-pwd)
if [ "$1" == "-o" ];then
cmd=$5
@@ -119,6 +119,9 @@ elif [ "$cmd" == "f" ];then
#xfreerdp ${RDP_FLAGS} /u:"${RDP_USER}" /p:"${RDP_PASS}" /v:${RDP_IP} /scale:${RDP_SCALE} /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows" -grab-keyboard
#
elif [ "$cmd" == "fl" ];then
echo username: $username
echo ip: $default_vm_ip
RDP_SCALE=100
MULTI_FLAG="span"
RDP_USER=$username

View File

@@ -71,7 +71,6 @@
blueman
pavucontrol
spotify
flameshot
networkmanagerapplet
haskellPackages.xmobar
dolphin