From 2002da4dcf8e8f117b673187c0da45eb56c8628c Mon Sep 17 00:00:00 2001 From: Matt Nish-Lapidus Date: Sun, 16 Feb 2025 16:24:34 -0500 Subject: [PATCH] working on screens and power stuff --- flake.lock | 66 +++++------ .../fish/functions/dim-all-monitors.fish | 5 + .../dotfiles/dot_config/shikane/config.toml | 8 +- .../dotfiles/dot_config/wezterm/wezterm.lua | 15 ++- hosts/eddie/configuration.nix | 108 ++---------------- hosts/eddie/razer-speaker-fix.nix | 9 +- modules/home/hypridle.nix | 19 ++- modules/home/niri.nix | 4 +- modules/home/shell-conf.nix | 3 +- modules/home/shikane.nix | 4 +- modules/system/filesystems.nix | 41 +++++++ modules/system/kanata.nix | 67 +++++++++++ {hosts/eddie => modules/system}/secrets.yaml | 5 +- modules/system/sops-config.nix | 33 ++++++ 14 files changed, 237 insertions(+), 150 deletions(-) create mode 100644 homes/emenel/dotfiles/dot_config/fish/functions/dim-all-monitors.fish create mode 100644 modules/system/filesystems.nix create mode 100644 modules/system/kanata.nix rename {hosts/eddie => modules/system}/secrets.yaml (64%) create mode 100644 modules/system/sops-config.nix diff --git a/flake.lock b/flake.lock index b91ec3a..693a56d 100644 --- a/flake.lock +++ b/flake.lock @@ -69,11 +69,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1739553792, - "narHash": "sha256-W/VqlGtMXv4cQ1V5j1Sbfu59x8DWntEkTJWJNHo9P+Q=", + "lastModified": 1739725136, + "narHash": "sha256-UCFiCR/DiWbOYlhlGr941rg8fHh32iE188FJ5NiQFU4=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "3a93a0a8f94fd52260b39aefc05e7bc667ded0ab", + "rev": "c356eb83c3461c19c2bf355d351354a0dcf76655", "type": "github" }, "original": { @@ -323,11 +323,11 @@ ] }, "locked": { - "lastModified": 1739559906, - "narHash": "sha256-iK5BXN5uDXVe76ssYTkFHl7oNZe+hhwcO3N7EN9yxqQ=", + "lastModified": 1739735835, + "narHash": "sha256-S4VskZCNjRX6saW7GtVb4MD3kWdfvRvLurLj9QcM4Wg=", "owner": "nix-community", "repo": "home-manager", - "rev": "9daae9a67af7b4d341e2c806fa274a9c0925d7cf", + "rev": "b15e9ec6769d770879759f086dd4e51fae7f2394", "type": "github" }, "original": { @@ -485,11 +485,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1739183634, - "narHash": "sha256-z//x2artwXwoCKc1QEqu4wbP6K8QheFUH6EZemlFqxo=", + "lastModified": 1739687392, + "narHash": "sha256-x1NU3jIYCpju8QCzIdLmS9bvLh9ATwYlMbA/TYfDsHs=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "82b63a6930931f9a10db578d30bb868b0e91a211", + "rev": "c4b2175822eaa13f8fd014b4763cdd10a7b69493", "type": "github" }, "original": { @@ -612,11 +612,11 @@ "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1739346879, - "narHash": "sha256-Sq2mCT0LVrH6aVGkSZRVdUXnhT1FqiiYEEn7vpY/T7o=", + "lastModified": 1739737907, + "narHash": "sha256-b5wH4NiFBqQSKRHnAkYrhJBugnr/czUHJdH73dAXWzg=", "owner": "isd-project", "repo": "isd", - "rev": "a820650e5a6210cbaa8dc48a5043fcce507014b7", + "rev": "73df766d2014b9190fe3bc7456bd8b8269886049", "type": "github" }, "original": { @@ -712,11 +712,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1739516087, - "narHash": "sha256-X3WTcaL/9O3C03TZ+8PmXcn3sqCgig1RIYY/J27ZsLQ=", + "lastModified": 1739627445, + "narHash": "sha256-fl1kOwskXXa5dJsRcly9e+UaOTdjdvy8Jqg9WhKe0Nw=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "9669e839805737ce7c66c9c05a3f97017f84cf24", + "rev": "b4f7ae09bc209e76944fed4648191dac8381ca76", "type": "github" }, "original": { @@ -745,11 +745,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1739513000, - "narHash": "sha256-LDSApEzhz3I9441ocnkkEVJu18OnGSj4a4MaxvuJYMk=", + "lastModified": 1739625307, + "narHash": "sha256-BVTlrmelSAq+rlxwlRvsyZxHrmcviRu3aHJYG37Yq8c=", "owner": "YaLTeR", "repo": "niri", - "rev": "7816f20e6a3ddc4057aa1ab35742dc7f67453bc2", + "rev": "f01c840ebe71f152906dbc6212f077fc72626f89", "type": "github" }, "original": { @@ -912,11 +912,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1739357830, - "narHash": "sha256-9xim3nJJUFbVbJCz48UP4fGRStVW5nv4VdbimbKxJ3I=", + "lastModified": 1739484910, + "narHash": "sha256-wjWLzdM7PIq4ZAe7k3vyjtgVJn6b0UeodtRFlM/6W5U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0ff09db9d034a04acd4e8908820ba0b410d7a33a", + "rev": "0b73e36b1962620a8ac551a37229dd8662dac5c8", "type": "github" }, "original": { @@ -928,11 +928,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1739357830, - "narHash": "sha256-9xim3nJJUFbVbJCz48UP4fGRStVW5nv4VdbimbKxJ3I=", + "lastModified": 1739484910, + "narHash": "sha256-wjWLzdM7PIq4ZAe7k3vyjtgVJn6b0UeodtRFlM/6W5U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0ff09db9d034a04acd4e8908820ba0b410d7a33a", + "rev": "0b73e36b1962620a8ac551a37229dd8662dac5c8", "type": "github" }, "original": { @@ -960,11 +960,11 @@ }, "nixpkgs-stable_4": { "locked": { - "lastModified": 1739357830, - "narHash": "sha256-9xim3nJJUFbVbJCz48UP4fGRStVW5nv4VdbimbKxJ3I=", + "lastModified": 1739624908, + "narHash": "sha256-f84lBmLl4tkDp1ZU5LBTSFzlxXP4926DVW3KnXrke10=", "owner": "nixos", "repo": "nixpkgs", - "rev": "0ff09db9d034a04acd4e8908820ba0b410d7a33a", + "rev": "a60651b217d2e529729cbc7d989c19f3941b9250", "type": "github" }, "original": { @@ -1040,11 +1040,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1739446958, - "narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=", + "lastModified": 1739580444, + "narHash": "sha256-+/bSz4EAVbqz8/HsIGLroF8aNaO8bLRL7WfACN+24g4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2ff53fe64443980e139eaa286017f53f88336dd0", + "rev": "8bb37161a0488b89830168b81c48aed11569cb93", "type": "github" }, "original": { @@ -1429,11 +1429,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1739546226, - "narHash": "sha256-d7zNnAovgxugkZabfRffp0eOf6GPUmSlNyd/XOPZOlQ=", + "lastModified": 1739718339, + "narHash": "sha256-JlU4RBbzqqCWyxvPNaroiIYatMCgvMOfjFKBW0oGBEg=", "owner": "sxyazi", "repo": "yazi", - "rev": "38e45c647b9e93a9d837b6f4e3f345d85608cc1a", + "rev": "f25ef0f07b99130261caf5a1605188b61ed6f617", "type": "github" }, "original": { diff --git a/homes/emenel/dotfiles/dot_config/fish/functions/dim-all-monitors.fish b/homes/emenel/dotfiles/dot_config/fish/functions/dim-all-monitors.fish new file mode 100644 index 0000000..a9ebc2a --- /dev/null +++ b/homes/emenel/dotfiles/dot_config/fish/functions/dim-all-monitors.fish @@ -0,0 +1,5 @@ +#!/usr/bin/env fish + +function dim-all-monitors + brillo -e -O && brillo -e -u 150000 -S 15 +end diff --git a/homes/emenel/dotfiles/dot_config/shikane/config.toml b/homes/emenel/dotfiles/dot_config/shikane/config.toml index 259bc72..2c12f65 100644 --- a/homes/emenel/dotfiles/dot_config/shikane/config.toml +++ b/homes/emenel/dotfiles/dot_config/shikane/config.toml @@ -2,7 +2,7 @@ name = "desk-clam" exec = ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\""] [[profile.output]] - search = ["n=eDP-1"] + search = "eDP-1" enable = false [[profile.output]] @@ -10,6 +10,7 @@ exec = ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\"" enable = true mode = "3840x2160@59.997Hz" position = "0,0" + scale = 1 [[profile]] @@ -21,13 +22,14 @@ exec = ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\"" mode = "2560x1600@240Hz" position = "3840,0" adaptive_sync = true + scale = 1 [[profile.output]] enable = true search = ["m=BenQ PD2725U", "s=N2N00414019", "v=PNP(BNQ)"] mode = "3840x2160@59.997Hz" position = "0,0" - + scale = 1 [[profile]] name = "laptop" @@ -38,7 +40,7 @@ exec = ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\"" mode = "2560x1600@240Hz" position = "0,0" adaptive_sync = true - + scale = 1 # [[profile]] # name = "laptop-mirror" diff --git a/homes/emenel/dotfiles/dot_config/wezterm/wezterm.lua b/homes/emenel/dotfiles/dot_config/wezterm/wezterm.lua index 6bb1c93..6578f70 100644 --- a/homes/emenel/dotfiles/dot_config/wezterm/wezterm.lua +++ b/homes/emenel/dotfiles/dot_config/wezterm/wezterm.lua @@ -87,6 +87,8 @@ config.enable_kitty_keyboard = true config.unzoom_on_switch_pane = true +config.leader = { key = 'Space', mods = 'SHIFT', timeout_milliseconds = 1000 } + config.keys = { { key = 'Enter', @@ -123,7 +125,7 @@ config.keys = { }, { key = 'E', - mods = 'CTRL', + mods = 'CTRL|SHIFT', action = act.EmitEvent 'trigger-emacs-with-scrollback', }, { @@ -146,6 +148,17 @@ config.keys = { { key='l', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Right"} }, { key='j', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Up"} }, { key='k', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Down"} }, + + { + key = "s", + mods = "CTRL|SHIFT", + action = workspace_switcher.switch_workspace(), + }, + { + key = "s", + mods = "CTRL|META", + action = workspace_switcher.switch_to_prev_workspace(), + } } tabline.setup({ diff --git a/hosts/eddie/configuration.nix b/hosts/eddie/configuration.nix index 671099d..aaa1f4a 100644 --- a/hosts/eddie/configuration.nix +++ b/hosts/eddie/configuration.nix @@ -1,7 +1,3 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - { nix-config, config, @@ -13,11 +9,13 @@ { imports = with nix-config.nixosModules; [ - # Include the results of the hardware scan. ./hardware-configuration.nix ./razer-speaker-fix.nix + sops-config niri + kanata + filesystems ]; nixpkgs = { @@ -42,8 +40,6 @@ }; nix = { - # registry.nixpkgs.flake = nixpkgs; - # channel.enable = false; settings = { experimental-features = [ "nix-command" @@ -57,79 +53,14 @@ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" ]; - # Workaround for https://github.com/NixOS/nix/issues/9574 - nix-path = config.nix.nixPath; }; }; - sops = { - age.keyFile = "/home/emenel/.config/sops/age/keys.txt"; # must have no password! - defaultSopsFile = ./secrets.yaml; - secrets = { - filez = {}; - }; - templates."smb-secrets".content = '' -username=admin -password=${config.sops.placeholder.filez} -# ''; - }; - - - environment.etc = { - "nixos/smb-secrets" = { - source = config.sops.templates."smb-secrets".path; - group = "users"; - }; - }; - - fileSystems = - let - automount_opts = "x-systemd.automount,noauto,users,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,uid=1000,credentials=/etc/nixos/smb-secrets"; - in { - - "/mnt/filez/media" = { - device = "//100.70.114.113/Media"; - fsType = "smb3"; - options = [ - "${automount_opts}" - ]; - }; - - "/mnt/filez/music-production" = { - device = "//100.70.114.113/Music Production"; - fsType = "smb3"; - options = [ - "${automount_opts}" - ]; - }; - - "/mnt/filez/storage" = { - device = "//100.70.114.113/Storage"; - fsType = "smb3"; - options = [ - "${automount_opts}" - ]; - }; - - "/mnt/filez/photos" = { - device = "//100.70.114.113/Photo Storage"; - fsType = "smb3"; - options = [ - "${automount_opts}" - ]; - }; - }; - - # fileSystems."/mnt/beets-import" = { - # device = "//100.103.170.132/media"; - # fsType = "smb3"; - # options = let - # automount_opts = "x-systemd.automount,noauto,users,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,uid=1000"; - # in [ - # "${automount_opts}" - # ]; - # }; + # Set your time zone. + time.timeZone = "America/Toronto"; + # Select internationalisation properties. + i18n.defaultLocale = "en_CA.UTF-8"; environment.systemPackages = with pkgs; [ wget @@ -264,10 +195,11 @@ password=${config.sops.placeholder.filez} services.udev = { extraRules = '' DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660" - ACTION=="add", SUBSYSTEM=="i2c-dev", ATTR{name}=="AMDGPU DM*", TAG+="ddcci", TAG+="systemd", ENV{SYSTEMD_WANTS}+="ddcci@$kernel.service" ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="ddcci*", RUN+="${pkgs.coreutils-full}/bin/chgrp video /sys/class/backlight/%k/brightness" ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="ddcci*", RUN+="${pkgs.coreutils-full}/bin/chmod a+w /sys/class/backlight/%k/brightness" + ACTION=="add", SUBSYSTEM=="i2c-dev", ATTR{name}=="AMDGPU DM*", TAG+="ddcci", TAG+="systemd", ENV{SYSTEMD_WANTS}+="ddcci@$kernel.service" ACTION=="add", SUBSYSTEM=="i2c-dev", ATTR{name}=="NVIDIA i2c adapter*", TAG+="ddcci", TAG+="systemd", ENV{SYSTEMD_WANTS}+="ddcci@$kernel.service" + SUBSYSTEM=="i2c", ACTION=="add", ATTR{name}=="AMDGPU DM aux hw bus 3", RUN+="${pkgs.bash}/bin/bash -c 'sleep 30; printf ddcci\ 0x37 > /sys/bus/i2c/devices/i2c-17/new_device'" ''; packages = [ pkgs.via @@ -313,6 +245,7 @@ password=${config.sops.placeholder.filez} security.rtkit.enable = true; security.pam.services.swaylock = { }; security.pam.services.hyprlock = { }; + security.pam.services.greetd.enableGnomeKeyring = true; services.xserver.videoDrivers = [ "nvidia" @@ -356,12 +289,6 @@ password=${config.sops.placeholder.filez} ''; }; - # Set your time zone. - time.timeZone = "America/Toronto"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_CA.UTF-8"; - services.xserver.enable = true; # Enable the GNOME Desktop Environment. @@ -541,21 +468,6 @@ password=${config.sops.placeholder.filez} services.accounts-daemon.enable = true; services.gnome.gnome-online-accounts.enable = true; - services.kmonad = { - enable = true; - keyboards = { - sinc = { - device = "/dev/input/by-id/usb-Keebio_Sinc_Rev._4-event-kbd"; - config = builtins.readFile ../../homes/emenel/dotfiles/dot_config/kmonad/sinc.kbd; - }; - razer = { - extraGroups = [ "openrazer" ]; - device = "/dev/input/by-id/usb-Razer_Razer_Blade-if01-event-kbd"; - config = builtins.readFile ../../homes/emenel/dotfiles/dot_config/kmonad/razer.kbd; - }; - }; - }; - programs.virt-manager.enable = true; virtualisation = { diff --git a/hosts/eddie/razer-speaker-fix.nix b/hosts/eddie/razer-speaker-fix.nix index 1fecb70..1278aa1 100644 --- a/hosts/eddie/razer-speaker-fix.nix +++ b/hosts/eddie/razer-speaker-fix.nix @@ -1,5 +1,4 @@ -{ config, lib, pkgs, ... }: - +{ ... }: { systemd.services.razer-speaker-fix = { enable = true; @@ -2010,10 +2009,10 @@ hda-verb /dev/snd/hwC3D0 0x20 0x400 0xb031 hda-verb /dev/snd/hwC3D0 0x20 0x400 0x0 hda-verb /dev/snd/hwC3D0 0x20 0x500 0x23 hda-verb /dev/snd/hwC3D0 0x20 0x400 0xdd00 + +wpctl set-volume 95 1 + ''; }; } -# amixer sset Master unmute -# amixer sset Speaker unmute -# amixer sset Headphone unmute diff --git a/modules/home/hypridle.nix b/modules/home/hypridle.nix index b4875e1..959582b 100644 --- a/modules/home/hypridle.nix +++ b/modules/home/hypridle.nix @@ -15,25 +15,40 @@ # TODO add screen dimming and test configurations with different monitors listener = [ # battery timers + { + timeout = "60"; + on-timeout = "systemd-ac-power || dim-all-monitors"; + on-resume = "brillo -e -u 150000 -I"; + } { timeout = "120"; on-timeout = "systemd-ac-power || lock-power-off-monitors"; } - { timeout = "300"; on-timeout = "systemd-ac-power || lock-suspend"; } # ac power timers + { + timeout = "90"; + on-timeout = "systemd-ac-power && dim-all-monitors"; + on-resume = "brillo -e -u 150000 -I"; + } + { timeout = "180"; on-timeout = "systemd-ac-power && loginctl lock-session"; } + { + timeout = "200"; + on-timeout = "systemd-ac-power && lock-power-off-monitors"; + } + { timeout = "600"; - on-timeout = "systemd-ac-power && loginctl lock-session && systemctl suspend"; + on-timeout = "systemd-ac-power && lock-suspend"; } ]; diff --git a/modules/home/niri.nix b/modules/home/niri.nix index e546512..4819c6e 100644 --- a/modules/home/niri.nix +++ b/modules/home/niri.nix @@ -14,7 +14,7 @@ in { { command = ["maestral_qt"]; } { command = ["clipse" "-listen"]; } { command = ["waybar"]; } - { command = [ "systemctl" "--user" "restart" "xwayland-satellite.service" ]; } + { command = [ "systemctl" "--user" "restart" "xwayland-satellite.service" "shikane.service" ]; } ]; workspaces = { @@ -222,8 +222,6 @@ in { action = spawn "swayosd-client" "--input-volume" "mute-toggle"; }; - - # TODO write shell script that sets swayosd and light -O to store new value for recall "XF86MonBrightnessUp" = { allow-when-locked=true; action = spawn "swayosd-client" "--brightness" "raise"; diff --git a/modules/home/shell-conf.nix b/modules/home/shell-conf.nix index 2995f8d..be1964b 100644 --- a/modules/home/shell-conf.nix +++ b/modules/home/shell-conf.nix @@ -24,7 +24,7 @@ tldr glow delta - btop + btop-rocm gnupg imagemagick gnutls @@ -61,6 +61,7 @@ powertop age kdotool + manix caligula diff --git a/modules/home/shikane.nix b/modules/home/shikane.nix index 3098e68..726bc45 100644 --- a/modules/home/shikane.nix +++ b/modules/home/shikane.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ pkgs, ... }: { home.packages = [ pkgs.shikane ]; @@ -6,7 +6,7 @@ systemd.user.services.shikane = { Unit = { Description = "Shikane"; - PartOf = [ "graphical-session.target" ]; + After = [ "graphical-session.target" ]; }; Install = { WantedBy = [ "graphical-session.target" ]; diff --git a/modules/system/filesystems.nix b/modules/system/filesystems.nix new file mode 100644 index 0000000..f1f8573 --- /dev/null +++ b/modules/system/filesystems.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: + +{ + fileSystems = + let + automount-opts = "x-systemd.automount,noauto,users,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,uid=1000"; + filez-opts = automount-opts + ",credentials=/etc/nixos/filez-secrets"; + media-server-opts = automount-opts + ",credentials=/etc/nixos/media-server-secrets"; + in { + + "/mnt/filez/media" = { + device = "//100.70.114.113/Media"; + fsType = "smb3"; + options = [ "${filez-opts}" ]; + }; + + "/mnt/filez/music-production" = { + device = "//100.70.114.113/Music Production"; + fsType = "smb3"; + options = [ "${filez-opts}" ]; + }; + + "/mnt/filez/storage" = { + device = "//100.70.114.113/Storage"; + fsType = "smb3"; + options = [ "${filez-opts}" ]; + }; + + "/mnt/filez/photos" = { + device = "//100.70.114.113/Photo Storage"; + fsType = "smb3"; + options = [ "${filez-opts}" ]; + }; + + "/mnt/beets-import" = { + device = "//100.103.170.132/media"; + fsType = "smb3"; + options = [ "${media-server-opts}" ]; + }; + }; +} diff --git a/modules/system/kanata.nix b/modules/system/kanata.nix new file mode 100644 index 0000000..dc50545 --- /dev/null +++ b/modules/system/kanata.nix @@ -0,0 +1,67 @@ +{ config, lib, pkgs, ... }: + +{ + services.kanata = { + enable = true; + keyboards = { + sinc = { + devices = [ "/dev/input/by-id/usb-Keebio_Sinc_Rev._4-event-kbd" ]; + config = '' +(defsrc + esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtsc ins + grv 1 2 3 4 5 6 7 8 9 0 - = \ del home + tab q w e r t y u i o p [ ] bspc end + caps a s d f g h j k l ; ' ret pgup + lsft z x c v b n m , . / rsft up pgdn + lctl slck lmet lalt spc ralt rmet rctrl left down right) + +(defalias + supesc (tap-hold-press 100 200 esc lmet) + sp-lsft (tap-hold-press 100 200 S-9 lsft) + sp-rsft (tap-hold-press 100 200 S-0 lsft) + controls (layer-while-held controls)) + +(deflayer qwerty + esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtsc ins + grv 1 2 3 4 5 6 7 8 9 0 - = \ del home + tab q w e r t y u i o p [ ] bspc end + @supesc a s d f g h j k l ; ' ret pgup + @sp-lsft z x c v b n m , . / @sp-rsft up pgdn + lmet @controls lalt lctrl spc rctrl ralt rmet left down right) + +(deflayer controls + esc VolumeMute VolumeDown VolumeUp f4 f5 MediaPlayPause MediaTrackPrevious MediaTrackNext f9 f10 f11 f12 prtsc ins + grv 1 2 3 4 5 6 7 8 9 0 - = \ del home + tab q w e r t y u i o p [ ] bspc end + @supesc a s d f g h j k l ; ' ret pgup + @sp-lsft z x c v b n m , . / @sp-rsft pgup _ + lmet lmet lalt lctrl spc rctrl ralt rmet home pgdn end) + +''; + }; + razer = { + devices = []; + config = '' +(defsrc + grv 1 2 3 4 5 6 7 8 9 0 - = bspc + tab q w e r t y u i o p [ ] \ + caps a s d f g h j k l ; ' ret + lsft z x c v b n m , . / rsft + lctrl lmet lalt spc ralt rctrl) + +(defalias + supesc (tap-hold-press 200 200 esc lmet) + sp-lsft (tap-hold-press 200 200 S-9 lsft) + sp-rsft (tap-hold-press 200 200 S-0 lsft)) + +(deflayer qwerty + grv 1 2 3 4 5 6 7 8 9 0 - = bspc + tab q w e r t y u i o p [ ] \ + @supesc a s d f g h j k l ; ' ret + @sp-lsft z x c v b n m , . / @sp-rsft + lmet lalt lctrl spc rctrl ralt) +''; + }; + }; + }; +} diff --git a/hosts/eddie/secrets.yaml b/modules/system/secrets.yaml similarity index 64% rename from hosts/eddie/secrets.yaml rename to modules/system/secrets.yaml index 6b58eec..695a5fd 100644 --- a/hosts/eddie/secrets.yaml +++ b/modules/system/secrets.yaml @@ -1,4 +1,5 @@ filez: ENC[AES256_GCM,data:pOnl/B+dFc+Fks7Yb3c=,iv:V99CfTUmFq9ijFHU88OIvySvKw91a9hx0fXLikaAOdY=,tag:L1E2Wur2yVYaGeY+3Ku1WA==,type:str] +media-server: ENC[AES256_GCM,data:dqwbLUXItYrx7w==,iv:lo356taPBlPPD4CqtlbQzvUJRcym0SQc1sHMYW593vw=,tag:nzhLMzVnOc0eDa/7cfnLuA==,type:str] sops: kms: [] gcp_kms: [] @@ -14,8 +15,8 @@ sops: OFJGS2ljaTVFcWJDL3h2S0tLR3pyekkKBY4veCtc5cmVxoDeFf1LufbFhMHnYu7U jWaEgDUHHPpiR7+4XZI+Es71kyM+0q2UK0KSU5227eDCLkFvRN5uYg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-02-12T01:06:05Z" - mac: ENC[AES256_GCM,data:H6vfNxeGOBFtKpQr/sdtbbUX6WmV7dFN37QdAhfYJlVnUJbJqhzuyfVKUCceTwZVf18MIXKJAaGzoDUr0bL5ljA2immqmvWGSVAhmztHueRXIzWbOQVYLP5djSvFzp0yWttzG9W7j9hANkyaLsyrC9PArucWnvrwQuFf9ZA0TGM=,iv:4KcjbarJFpUcNUE06jiA43cMGGYE4GY8DgPMsnNn3iY=,tag:MWn+q4SwxWltNEfFN6HZgQ==,type:str] + lastmodified: "2025-02-15T16:32:18Z" + mac: ENC[AES256_GCM,data:drTH1sdk/KUXfeFXJVyB+21orb7maspVaDr2zZRT2z3PqLKtXVUHqSTaXKb7hETi052ibLqSfyrSCgpNcLMB4yAPrLz/u7nADcxvrnmugAkGgR/w4sK8YPNqw0F04Xx1GQV1SNcFi5lj2xBhRI862sUUiEkUEGM8UieVMgx5pFM=,iv:qBwza6BLls0WiW2DpDkb7PIt5vpjj3LmQaArDGgRXIo=,tag:W/REzW4zCNpptvbXDVCpCA==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.9.4 diff --git a/modules/system/sops-config.nix b/modules/system/sops-config.nix new file mode 100644 index 0000000..80f5a9c --- /dev/null +++ b/modules/system/sops-config.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... }: + +{ + sops = { + age.keyFile = "/home/emenel/.config/sops/age/keys.txt"; # must have no password! + defaultSopsFile = ./secrets.yaml; + secrets = { + filez = {}; + media-server = {}; + }; + templates."media-server-secrets".content = '' +username=media +password=${config.sops.placeholder.media-server} +''; + templates."filez-secrets".content = '' +username=admin +password=${config.sops.placeholder.filez} +''; + }; + + + environment.etc = { + "nixos/filez-secrets" = { + source = config.sops.templates."filez-secrets".path; + group = "users"; + }; + "nixos/media-server-secrets" = { + source = config.sops.templates."media-server-secrets".path; + group = "users"; + }; + }; + +}