From 8785247675b16eae4b72faf7aba8f692b4ef6d81 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Thu, 12 Jun 2025 13:01:59 -0400 Subject: [PATCH 01/26] added git merge backup settings --- home/git.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/git.nix b/home/git.nix index 3f70aaa..7c3504a 100644 --- a/home/git.nix +++ b/home/git.nix @@ -17,6 +17,7 @@ push.autoSetupRemote = true; pull.merge = true; merge.tool = "nvimdiff"; + mergetool.keepBackup = false; }; ignores = [ From fefa6dd3de742cb10a247b56f8146fad972006ef Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Mon, 16 Jun 2025 21:55:22 -0400 Subject: [PATCH 02/26] added presence.nvim --- defaults/nvim/lua/plugins/discord.lua | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 defaults/nvim/lua/plugins/discord.lua diff --git a/defaults/nvim/lua/plugins/discord.lua b/defaults/nvim/lua/plugins/discord.lua new file mode 100644 index 0000000..3a99b3a --- /dev/null +++ b/defaults/nvim/lua/plugins/discord.lua @@ -0,0 +1,5 @@ +return { + { + 'andweeb/presence.nvim', + } +} From 30a72d9e741e217c74e63fe370390c7d88ef3a3d Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Fri, 27 Jun 2025 00:05:10 -0400 Subject: [PATCH 03/26] added common environment file, fixed sudo issue --- modules/common/default.nix | 1 + modules/common/environment.nix | 20 +++++++++++++++++ modules/common/users.nix | 18 +++++++++++----- modules/machine/cloud/configuration.nix | 26 ++++++++--------------- modules/machine/valefor/configuration.nix | 12 ----------- 5 files changed, 43 insertions(+), 34 deletions(-) create mode 100644 modules/common/environment.nix diff --git a/modules/common/default.nix b/modules/common/default.nix index 195ad06..27bcede 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -5,6 +5,7 @@ }: { imports = [ ./core.nix + ./environment.nix ./fonts.nix ./users.nix ]; diff --git a/modules/common/environment.nix b/modules/common/environment.nix new file mode 100644 index 0000000..d4e931c --- /dev/null +++ b/modules/common/environment.nix @@ -0,0 +1,20 @@ +{ lib, pkgs, ... }: { + # Common packages that every system will use + environment.systemPackages = with pkgs; [ + git + vim + neovim + usbutils + coreutils + lshw + systemd + dmidecode + pciutils + nix-ld + patchelf + htop + ]; + + # Common environment variables that every system will use + environment.variables.EDITOR = "nvim"; +} diff --git a/modules/common/users.nix b/modules/common/users.nix index 60c2735..1663a61 100644 --- a/modules/common/users.nix +++ b/modules/common/users.nix @@ -5,10 +5,6 @@ hostname, ... } @ args: { - imports = [ - ../security/sudo.nix - ]; - networking.hostName = hostname; # Don't forget to set a password with ‘passwd’! @@ -27,7 +23,19 @@ }) ]; - security.sudo.needsPassword = false; + security.sudo = { + extraRules = [ + { + groups = [ "wheel" ]; + commands = [ + { + command = "ALL"; + options = [ "NOPASSWD" "SETENV" ]; + } + ]; + } + ]; + }; users.groups.wyatt = {}; diff --git a/modules/machine/cloud/configuration.nix b/modules/machine/cloud/configuration.nix index eb691c5..777fdf1 100644 --- a/modules/machine/cloud/configuration.nix +++ b/modules/machine/cloud/configuration.nix @@ -46,25 +46,17 @@ in { # Install packages to be installed system-wide environment.systemPackages = with pkgs; [ - vim - neovim - git wireguard-tools grim slurp playerctl light brightnessctl - firefox wttrbar cliphist - patchelf - nix-ld + xdg-desktop-portal-gtk ]; - # Set the EDITOR global environment variable to neovim - environment.variables.EDITOR = "nvim"; - # Enable OpenSSH services.openssh.enable = true; @@ -160,14 +152,14 @@ in { xdg = { portal = { enable = true; - wlr.enable = true; - config = { - common = { - default = [ - "wlr" - ]; - }; - }; + # wlr.enable = true; + # config = { + # common = { + # default = [ + # "wlr" + # ]; + # }; + # }; xdgOpenUsePortal = true; extraPortals = with pkgs; [ xdg-desktop-portal-wlr diff --git a/modules/machine/valefor/configuration.nix b/modules/machine/valefor/configuration.nix index 53930bf..7848de6 100644 --- a/modules/machine/valefor/configuration.nix +++ b/modules/machine/valefor/configuration.nix @@ -27,18 +27,6 @@ # Set your timezone time.timeZone = "America/Detroit"; - # Install packages to be installed system-wide - environment.systemPackages = with pkgs; [ - vim - neovim - git - patchelf - nix-ld - ]; - - # Set the EDITOR global environment variable to neovim - environment.variables.EDITOR = "nvim"; - # Enable OpenSSH services.openssh.enable = true; From 2c6765bb5b1f360be4ef30da4a9715368e348323 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Fri, 27 Jun 2025 00:05:28 -0400 Subject: [PATCH 04/26] added godot, aseprite --- home/packages/linux.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/packages/linux.nix b/home/packages/linux.nix index e26def3..1992f9f 100644 --- a/home/packages/linux.nix +++ b/home/packages/linux.nix @@ -11,6 +11,8 @@ mcrcon xfce.thunar pavucontrol + godot + aseprite # ungoogled-chromium ]); } From 57cd69a15377feb1db2c58129b04f6f81c1a8209 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 28 Jun 2025 14:29:00 -0400 Subject: [PATCH 05/26] added zellij, settings --- home/zellij.nix | 293 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 293 insertions(+) create mode 100644 home/zellij.nix diff --git a/home/zellij.nix b/home/zellij.nix new file mode 100644 index 0000000..5e0ef9b --- /dev/null +++ b/home/zellij.nix @@ -0,0 +1,293 @@ +{ ... }: { + programs.zellij = { + enable = true; + settings = { + keybinds = { + clear-defaults = true; + + locked = [ + { key = "Ctrl g"; action = "SwitchToMode \"normal\""; } + ]; + + pane = [ + { key = "left"; action = "MoveFocus \"left\""; } + { key = "down"; action = "MoveFocus \"down\""; } + { key = "up"; action = "MoveFocus \"up\""; } + { key = "right"; action = "MoveFocus \"right\""; } + { key = "c"; action = "SwitchToMode \"renamepane\"; PaneNameInput 0"; } + { key = "d"; action = "NewPane \"down\"; SwitchToMode \"normal\""; } + { key = "e"; action = "TogglePaneEmbedOrFloating; SwitchToMode \"normal\""; } + { key = "f"; action = "ToggleFocusFullscreen; SwitchToMode \"normal\""; } + { key = "h"; action = "MoveFocus \"left\""; } + { key = "j"; action = "MoveFocus \"down\""; } + { key = "k"; action = "MoveFocus \"up\""; } + { key = "l"; action = "MoveFocus \"right\""; } + { key = "n"; action = "NewPane; SwitchToMode \"normal\""; } + { key = "p"; action = "SwitchFocus"; } + { key = "Ctrl p"; action = "SwitchToMode \"normal\""; } + { key = "r"; action = "NewPane \"right\"; SwitchToMode \"normal\""; } + { key = "w"; action = "ToggleFloatingPanes; SwitchToMode \"normal\""; } + { key = "z"; action = "TogglePaneFrames; SwitchToMode \"normal\""; } + ]; + + tab = [ + { key = "left"; action = "GoToPreviousTab"; } + { key = "down"; action = "GoToNextTab"; } + { key = "up"; action = "GoToPreviousTab"; } + { key = "right"; action = "GoToNextTab"; } + { key = "1"; action = "GoToTab 1; SwitchToMode \"normal\""; } + { key = "2"; action = "GoToTab 2; SwitchToMode \"normal\""; } + { key = "3"; action = "GoToTab 3; SwitchToMode \"normal\""; } + { key = "4"; action = "GoToTab 4; SwitchToMode \"normal\""; } + { key = "5"; action = "GoToTab 5; SwitchToMode \"normal\""; } + { key = "6"; action = "GoToTab 6; SwitchToMode \"normal\""; } + { key = "7"; action = "GoToTab 7; SwitchToMode \"normal\""; } + { key = "8"; action = "GoToTab 8; SwitchToMode \"normal\""; } + { key = "9"; action = "GoToTab 9; SwitchToMode \"normal\""; } + { key = "["; action = "BreakPaneLeft; SwitchToMode \"normal\""; } + { key = "]"; action = "BreakPaneRight; SwitchToMode \"normal\""; } + { key = "b"; action = "BreakPane; SwitchToMode \"normal\""; } + { key = "h"; action = "GoToPreviousTab"; } + { key = "j"; action = "GoToNextTab"; } + { key = "k"; action = "GoToPreviousTab"; } + { key = "l"; action = "GoToNextTab"; } + { key = "n"; action = "NewTab; SwitchToMode \"normal\""; } + { key = "r"; action = "SwitchToMode \"renametab\"; TabNameInput 0"; } + { key = "s"; action = "ToggleActiveSyncTab; SwitchToMode \"normal\""; } + { key = "Ctrl t"; action = "SwitchToMode \"normal\""; } + { key = "x"; action = "CloseTab; SwitchToMode \"normal\""; } + { key = "tab"; action = "ToggleTab"; } + ]; + + resize = [ + { key = "left"; action = "Resize \"Increase left\""; } + { key = "down"; action = "Resize \"Increase down\""; } + { key = "up"; action = "Resize \"Increase up\""; } + { key = "right"; action = "Resize \"Increase right\""; } + { key = "+"; action = "Resize \"Increase\""; } + { key = "-"; action = "Resize \"Decrease\""; } + { key = "="; action = "Resize \"Increase\""; } + { key = "H"; action = "Resize \"Decrease left\""; } + { key = "J"; action = "Resize \"Decrease down\""; } + { key = "K"; action = "Resize \"Decrease up\""; } + { key = "L"; action = "Resize \"Decrease right\""; } + { key = "h"; action = "Resize \"Increase left\""; } + { key = "j"; action = "Resize \"Increase down\""; } + { key = "k"; action = "Resize \"Increase up\""; } + { key = "l"; action = "Resize \"Increase right\""; } + { key = "Ctrl n"; action = "SwitchToMode \"normal\""; } + ]; + + move = [ + { key = "left"; action = "MovePane \"left\""; } + { key = "down"; action = "MovePane \"down\""; } + { key = "up"; action = "MovePane \"up\""; } + { key = "right"; action = "MovePane \"right\""; } + { key = "h"; action = "MovePane \"left\""; } + { key = "Ctrl h"; action = "SwitchToMode \"normal\""; } + { key = "j"; action = "MovePane \"down\""; } + { key = "k"; action = "MovePane \"up\""; } + { key = "l"; action = "MovePane \"right\""; } + { key = "n"; action = "MovePane"; } + { key = "p"; action = "MovePaneBackwards"; } + { key = "tab"; action = "MovePane"; } + ]; + + scroll = [ + { key = "Alt left"; action = "MoveFocusOrTab \"left\"; SwitchToMode \"normal\""; } + { key = "Alt down"; action = "MoveFocus \"down\"; SwitchToMode \"normal\""; } + { key = "Alt up"; action = "MoveFocus \"up\"; SwitchToMode \"normal\""; } + { key = "Alt right"; action = "MoveFocusOrTab \"right\"; SwitchToMode \"normal\""; } + { key = "e"; action = "EditScrollback; SwitchToMode \"normal\""; } + { key = "Alt h"; action = "MoveFocusOrTab \"left\"; SwitchToMode \"normal\""; } + { key = "Alt j"; action = "MoveFocus \"down\"; SwitchToMode \"normal\""; } + { key = "Alt k"; action = "MoveFocus \"up\"; SwitchToMode \"normal\""; } + { key = "Alt l"; action = "MoveFocusOrTab \"right\"; SwitchToMode \"normal\""; } + { key = "s"; action = "SwitchToMode \"entersearch\"; SearchInput 0"; } + ]; + + search = [ + { key = "c"; action = "SearchToggleOption \"CaseSensitivity\""; } + { key = "n"; action = "Search \"down\""; } + { key = "o"; action = "SearchToggleOption \"WholeWord\""; } + { key = "p"; action = "Search \"up\""; } + { key = "w"; action = "SearchToggleOption \"Wrap\""; } + ]; + + session = [ + { + key = "c"; + action = "LaunchOrFocusPlugin \"configuration\" { floating true; move_to_focused_tab true }; SwitchToMode \"normal\""; + } + { key = "Ctrl o"; action = "SwitchToMode \"normal\""; } + { + key = "p"; + action = "LaunchOrFocusPlugin \"plugin-manager\" { floating true; move_to_focused_tab true }; SwitchToMode \"normal\""; + } + { + key = "w"; + action = "LaunchOrFocusPlugin \"session-manager\" { floating true; move_to_focused_tab true }; SwitchToMode \"normal\""; + } + ]; + + "shared_except \"locked\"" = [ + { key = "Alt +"; action = "Resize \"Increase\""; } + { key = "Alt -"; action = "Resize \"Decrease\""; } + { key = "Alt ="; action = "Resize \"Increase\""; } + { key = "Alt ["; action = "PreviousSwapLayout"; } + { key = "Alt ]"; action = "NextSwapLayout"; } + { key = "Alt f"; action = "ToggleFloatingPanes"; } + { key = "Ctrl g"; action = "SwitchToMode \"locked\""; } + { key = "Alt i"; action = "MoveTab \"left\""; } + { key = "Alt n"; action = "NewPane"; } + { key = "Alt o"; action = "MoveTab \"right\""; } + { key = "Ctrl q"; action = "Quit"; } + ]; + + "shared_except \"locked\" \"move\"" = [ + { key = "Ctrl h"; action = "SwitchToMode \"move\""; } + ]; + + "shared_except \"locked\" \"session\"" = [ + { key = "Ctrl o"; action = "SwitchToMode \"session\""; } + ]; + + "shared_except \"locked\" \"scroll\"" = [ + { key = "Alt left"; action = "MoveFocusOrTab \"left\""; } + { key = "Alt down"; action = "MoveFocus \"down\""; } + { key = "Alt up"; action = "MoveFocus \"up\""; } + { key = "Alt right"; action = "MoveFocusOrTab \"right\""; } + { key = "Alt h"; action = "MoveFocusOrTab \"left\""; } + { key = "Alt j"; action = "MoveFocus \"down\""; } + { key = "Alt k"; action = "MoveFocus \"up\""; } + { key = "Alt l"; action = "MoveFocusOrTab \"right\""; } + ]; + + "shared_except \"locked\" \"scroll\" \"search\" \"tmux\"" = [ + { key = "Ctrl b"; action = "SwitchToMode \"tmux\""; } + ]; + + "shared_except \"locked\" \"tab\"" = [ + { key = "Ctrl t"; action = "SwitchToMode \"tab\""; } + ]; + + "shared_except \"locked\" \"pane\"" = [ + { key = "Ctrl p"; action = "SwitchToMode \"pane\""; } + ]; + + "shared_except \"locked\" \"resize\"" = [ + { key = "Ctrl n"; action = "SwitchToMode \"resize\""; } + ]; + + "shared_except \"normal\" \"locked\" \"entersearch\"" = [ + { key = "enter"; action = "SwitchToMode \"normal\""; } + ]; + + "shared_except \"normal\" \"locked\" \"entersearch\" \"renametab\" \"renamepane\"" = [ + { key = "esc"; action = "SwitchToMode \"normal\""; } + ]; + + "shared_among \"pane\" \"tmux\"" = [ + { key = "x"; action = "CloseFocus; SwitchToMode \"normal\""; } + ]; + + "shared_among \"scroll\" \"search\"" = [ + { key = "PageDown"; action = "PageScrollDown"; } + { key = "PageUp"; action = "PageScrollUp"; } + { key = "left"; action = "PageScrollUp"; } + { key = "down"; action = "ScrollDown"; } + { key = "up"; action = "ScrollUp"; } + { key = "right"; action = "PageScrollDown"; } + { key = "Ctrl b"; action = "PageScrollUp"; } + { key = "Ctrl c"; action = "ScrollToBottom; SwitchToMode \"normal\""; } + { key = "d"; action = "HalfPageScrollDown"; } + { key = "Ctrl f"; action = "PageScrollDown"; } + { key = "h"; action = "PageScrollUp"; } + { key = "j"; action = "ScrollDown"; } + { key = "k"; action = "ScrollUp"; } + { key = "l"; action = "PageScrollDown"; } + { key = "u"; action = "HalfPageScrollUp"; } + ]; + + entersearch = [ + { key = "Ctrl c"; action = "SwitchToMode \"scroll\""; } + { key = "esc"; action = "SwitchToMode \"scroll\""; } + { key = "enter"; action = "SwitchToMode \"search\""; } + ]; + + renametab = [ + { key = "esc"; action = "UndoRenameTab; SwitchToMode \"tab\""; } + ]; + + "shared_among \"renametab\" \"renamepane\"" = [ + { key = "Ctrl c"; action = "SwitchToMode \"normal\""; } + ]; + + renamepane = [ + { key = "esc"; action = "UndoRenamePane; SwitchToMode \"pane\""; } + ]; + + "shared_among \"session\" \"tmux\"" = [ + { key = "d"; action = "Detach"; } + ]; + + tmux = [ + { key = "left"; action = "MoveFocus \"left\"; SwitchToMode \"normal\""; } + { key = "down"; action = "MoveFocus \"down\"; SwitchToMode \"normal\""; } + { key = "up"; action = "MoveFocus \"up\"; SwitchToMode \"normal\""; } + { key = "right"; action = "MoveFocus \"right\"; SwitchToMode \"normal\""; } + { key = "space"; action = "NextSwapLayout"; } + { key = "\""; action = "NewPane \"down\"; SwitchToMode \"normal\""; } + { key = "%"; action = "NewPane \"right\"; SwitchToMode \"normal\""; } + { key = ","; action = "SwitchToMode \"renametab\""; } + { key = "["; action = "SwitchToMode \"scroll\""; } + { key = "Ctrl b"; action = "Write 2; SwitchToMode \"normal\""; } + { key = "c"; action = "NewTab; SwitchToMode \"normal\""; } + { key = "h"; action = "MoveFocus \"left\"; SwitchToMode \"normal\""; } + { key = "j"; action = "MoveFocus \"down\"; SwitchToMode \"normal\""; } + { key = "k"; action = "MoveFocus \"up\"; SwitchToMode \"normal\""; } + { key = "l"; action = "MoveFocus \"right\"; SwitchToMode \"normal\""; } + { key = "n"; action = "GoToNextTab; SwitchToMode \"normal\""; } + { key = "o"; action = "FocusNextPane"; } + { key = "p"; action = "GoToPreviousTab; SwitchToMode \"normal\""; } + { key = "z"; action = "ToggleFocusFullscreen; SwitchToMode \"normal\""; } + ]; + }; + + plugins = { + compact-bar = { + location = "zellij:compact-bar"; + }; + configuration = { + location = "zellij:configuration"; + }; + filepicker = { + location = "zellij:strider"; + cwd = "/"; + }; + plugin-manager = { + location = "zellij:plugin-manager"; + }; + session-manager = { + location = "zellij:session-manager"; + }; + status-bar = { + location = "zellij:status-bar"; + }; + strider = { + location = "zellij:strider"; + }; + tab-bar = { + location = "zellij:tab-bar"; + }; + }; + + load_plugins = {}; + + theme = "catppuccin-mocha"; + show_startup_tips = false; + show_release_notes = false; + default_mode = "normal"; + }; + }; +} From fccb1ab4ae19eddf45ed692847ee8df6d4af4cd4 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 28 Jun 2025 15:50:20 -0400 Subject: [PATCH 06/26] fix zellij --- home/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/default.nix b/home/default.nix index 57a46b7..18a9906 100644 --- a/home/default.nix +++ b/home/default.nix @@ -25,6 +25,7 @@ in { ./sway.nix ./terminal.nix ./browser.nix + ./zellij.nix ]; # Home Manager needs a bit of information about you and the @@ -39,6 +40,7 @@ in { sessionVariables = { XDG_CURRENT_DESKTOP = "sway"; XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP="sway"; XDG_CONFIG_HOME = "$HOME/.config"; XDG_CACHE_HOME = "$HOME/.cache"; XDG_DATA_HOME = "$HOME/.local/share"; From 69e6329dea7ce537fbdd80375194c544734b0c3d Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 28 Jun 2025 15:50:34 -0400 Subject: [PATCH 07/26] flake update --- flake.lock | 90 +++++++++++++++++++++--------------------------------- 1 file changed, 35 insertions(+), 55 deletions(-) diff --git a/flake.lock b/flake.lock index 316ce5a..d1b8fb2 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1748044287, - "narHash": "sha256-9bJzyUX5+HXYmI60WMGYXXDdhGbSh1Le6yBM4og3K7E=", + "lastModified": 1749744770, + "narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "2456ff5c95edfc3b197cb012b947012faed77591", + "rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb", "type": "github" }, "original": { @@ -24,11 +24,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -59,17 +59,16 @@ "inputs": { "flake-compat": "flake-compat", "flake-utils": "flake-utils", - "nixpkgs-stable": "nixpkgs-stable", - "nixpkgs-unstable": "nixpkgs-unstable", + "nixpkgs": "nixpkgs", "zig": "zig", "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1748207486, - "narHash": "sha256-4kR7VyauWpNMrBePHMM8yzQvUzHHGRVkQpJ3DyoKcH0=", + "lastModified": 1751123364, + "narHash": "sha256-Nb3pxs1onnbdhhnoNc+IfHzrW9dM+UbEdjK0AguR2J4=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "3f6c02b49e08aed51e4be85d87b79b9dbea34a85", + "rev": "f6d1c274b9c0e095dc0a1b411dec7410ad779bf5", "type": "github" }, "original": { @@ -85,11 +84,11 @@ ] }, "locked": { - "lastModified": 1747556831, - "narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=", + "lastModified": 1750792728, + "narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=", "owner": "nix-community", "repo": "home-manager", - "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33", + "rev": "366f00797b1efb70f2882d3da485e3c10fd3d557", "type": "github" }, "original": { @@ -117,11 +116,24 @@ }, "nixpkgs": { "locked": { - "lastModified": 1747953325, - "narHash": "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ=", + "lastModified": 1748189127, + "narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=", + "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1750969886, + "narHash": "sha256-zW/OFnotiz/ndPFdebpo3X0CrbVNf22n4DjN2vxlb58=", "owner": "nixos", "repo": "nixpkgs", - "rev": "55d1f923c480dadce40f5231feb472e81b0bab48", + "rev": "a676066377a2fe7457369dd37c31fd2263b662f4", "type": "github" }, "original": { @@ -131,45 +143,13 @@ "type": "github" } }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1741992157, - "narHash": "sha256-nlIfTsTrMSksEJc1f7YexXiPVuzD1gOfeN1ggwZyUoc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "da4b122f63095ca1199bd4d526f9e26426697689", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1741865919, - "narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "darwin": "darwin", "ghostty": "ghostty", "home-manager": "home-manager", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" } }, "systems": { @@ -198,15 +178,15 @@ ], "nixpkgs": [ "ghostty", - "nixpkgs-stable" + "nixpkgs" ] }, "locked": { - "lastModified": 1741825901, - "narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=", + "lastModified": 1748261582, + "narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "0b14285e283f5a747f372fb2931835dd937c4383", + "rev": "aafb1b093fb838f7a02613b719e85ec912914221", "type": "github" }, "original": { @@ -223,7 +203,7 @@ ], "nixpkgs": [ "ghostty", - "nixpkgs-unstable" + "nixpkgs" ] }, "locked": { From 760d686499294f9fb251d2c61c1dd825b19fef36 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 28 Jun 2025 15:50:51 -0400 Subject: [PATCH 08/26] finally fixed xdg portals --- modules/machine/cloud/configuration.nix | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/modules/machine/cloud/configuration.nix b/modules/machine/cloud/configuration.nix index 777fdf1..91b3497 100644 --- a/modules/machine/cloud/configuration.nix +++ b/modules/machine/cloud/configuration.nix @@ -55,6 +55,10 @@ in { wttrbar cliphist xdg-desktop-portal-gtk + xdg-utils + flatpak-xdg-utils + desktop-file-utils + shared-mime-info ]; # Enable OpenSSH @@ -152,15 +156,16 @@ in { xdg = { portal = { enable = true; - # wlr.enable = true; - # config = { - # common = { - # default = [ - # "wlr" - # ]; - # }; - # }; - xdgOpenUsePortal = true; + config = { + sway = { + default = [ "wlr" "gtk" ]; + "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; + }; + common = { + default = [ "gtk" ]; + "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; + }; + }; extraPortals = with pkgs; [ xdg-desktop-portal-wlr xdg-desktop-portal-gtk From 4113b3ea5723c8d97cbf1f6d510d21266182a52f Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 28 Jun 2025 15:51:24 -0400 Subject: [PATCH 09/26] added yazi might add file later to add overrides and settings if needed --- home/packages/common.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/home/packages/common.nix b/home/packages/common.nix index bf5e39a..bd2de2a 100644 --- a/home/packages/common.nix +++ b/home/packages/common.nix @@ -4,7 +4,7 @@ ... }: { home.packages = with pkgs; [ - nnn # terminal file manager + yazi # terminal file manager # archives zip @@ -13,7 +13,6 @@ p7zip # utils - zellij tmux bat lazygit From 109684d09c6c89f061b0587ffec2ade61bc5a18b Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 28 Jun 2025 17:59:39 -0400 Subject: [PATCH 10/26] fixed zellij again? don't trust ai to convert kdl to nix for you --- defaults/zellij/config.kdl | 254 +++++++++++++++++++++++++++++++ home/zellij.nix | 299 ++----------------------------------- 2 files changed, 264 insertions(+), 289 deletions(-) create mode 100644 defaults/zellij/config.kdl diff --git a/defaults/zellij/config.kdl b/defaults/zellij/config.kdl new file mode 100644 index 0000000..61a01bc --- /dev/null +++ b/defaults/zellij/config.kdl @@ -0,0 +1,254 @@ +keybinds clear-defaults=true { + locked { + bind "Ctrl g" { SwitchToMode "normal"; } + } + pane { + bind "left" { MoveFocus "left"; } + bind "down" { MoveFocus "down"; } + bind "up" { MoveFocus "up"; } + bind "right" { MoveFocus "right"; } + bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; } + bind "d" { NewPane "down"; SwitchToMode "normal"; } + bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; } + bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; } + bind "h" { MoveFocus "left"; } + bind "j" { MoveFocus "down"; } + bind "k" { MoveFocus "up"; } + bind "l" { MoveFocus "right"; } + bind "n" { NewPane; SwitchToMode "normal"; } + bind "p" { SwitchFocus; } + bind "Ctrl p" { SwitchToMode "normal"; } + bind "r" { NewPane "right"; SwitchToMode "normal"; } + bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; } + bind "z" { TogglePaneFrames; SwitchToMode "normal"; } + } + tab { + bind "left" { GoToPreviousTab; } + bind "down" { GoToNextTab; } + bind "up" { GoToPreviousTab; } + bind "right" { GoToNextTab; } + bind "1" { GoToTab 1; SwitchToMode "normal"; } + bind "2" { GoToTab 2; SwitchToMode "normal"; } + bind "3" { GoToTab 3; SwitchToMode "normal"; } + bind "4" { GoToTab 4; SwitchToMode "normal"; } + bind "5" { GoToTab 5; SwitchToMode "normal"; } + bind "6" { GoToTab 6; SwitchToMode "normal"; } + bind "7" { GoToTab 7; SwitchToMode "normal"; } + bind "8" { GoToTab 8; SwitchToMode "normal"; } + bind "9" { GoToTab 9; SwitchToMode "normal"; } + bind "[" { BreakPaneLeft; SwitchToMode "normal"; } + bind "]" { BreakPaneRight; SwitchToMode "normal"; } + bind "b" { BreakPane; SwitchToMode "normal"; } + bind "h" { GoToPreviousTab; } + bind "j" { GoToNextTab; } + bind "k" { GoToPreviousTab; } + bind "l" { GoToNextTab; } + bind "n" { NewTab; SwitchToMode "normal"; } + bind "r" { SwitchToMode "renametab"; TabNameInput 0; } + bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; } + bind "Ctrl t" { SwitchToMode "normal"; } + bind "x" { CloseTab; SwitchToMode "normal"; } + bind "tab" { ToggleTab; } + } + resize { + bind "left" { Resize "Increase left"; } + bind "down" { Resize "Increase down"; } + bind "up" { Resize "Increase up"; } + bind "right" { Resize "Increase right"; } + bind "+" { Resize "Increase"; } + bind "-" { Resize "Decrease"; } + bind "=" { Resize "Increase"; } + bind "H" { Resize "Decrease left"; } + bind "J" { Resize "Decrease down"; } + bind "K" { Resize "Decrease up"; } + bind "L" { Resize "Decrease right"; } + bind "h" { Resize "Increase left"; } + bind "j" { Resize "Increase down"; } + bind "k" { Resize "Increase up"; } + bind "l" { Resize "Increase right"; } + bind "Ctrl n" { SwitchToMode "normal"; } + } + move { + bind "left" { MovePane "left"; } + bind "down" { MovePane "down"; } + bind "up" { MovePane "up"; } + bind "right" { MovePane "right"; } + bind "h" { MovePane "left"; } + bind "Ctrl h" { SwitchToMode "normal"; } + bind "j" { MovePane "down"; } + bind "k" { MovePane "up"; } + bind "l" { MovePane "right"; } + bind "n" { MovePane; } + bind "p" { MovePaneBackwards; } + bind "tab" { MovePane; } + } + scroll { + bind "Alt left" { MoveFocusOrTab "left"; SwitchToMode "normal"; } + bind "Alt down" { MoveFocus "down"; SwitchToMode "normal"; } + bind "Alt up" { MoveFocus "up"; SwitchToMode "normal"; } + bind "Alt right" { MoveFocusOrTab "right"; SwitchToMode "normal"; } + bind "e" { EditScrollback; SwitchToMode "normal"; } + bind "Alt h" { MoveFocusOrTab "left"; SwitchToMode "normal"; } + bind "Alt j" { MoveFocus "down"; SwitchToMode "normal"; } + bind "Alt k" { MoveFocus "up"; SwitchToMode "normal"; } + bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "normal"; } + bind "s" { SwitchToMode "entersearch"; SearchInput 0; } + } + search { + bind "c" { SearchToggleOption "CaseSensitivity"; } + bind "n" { Search "down"; } + bind "o" { SearchToggleOption "WholeWord"; } + bind "p" { Search "up"; } + bind "w" { SearchToggleOption "Wrap"; } + } + session { + bind "c" { + LaunchOrFocusPlugin "configuration" { + floating true + move_to_focused_tab true + } + SwitchToMode "normal" + } + bind "Ctrl o" { SwitchToMode "normal"; } + bind "p" { + LaunchOrFocusPlugin "plugin-manager" { + floating true + move_to_focused_tab true + } + SwitchToMode "normal" + } + bind "w" { + LaunchOrFocusPlugin "session-manager" { + floating true + move_to_focused_tab true + } + SwitchToMode "normal" + } + } + shared_except "locked" { + bind "Alt +" { Resize "Increase"; } + bind "Alt -" { Resize "Decrease"; } + bind "Alt =" { Resize "Increase"; } + bind "Alt [" { PreviousSwapLayout; } + bind "Alt ]" { NextSwapLayout; } + bind "Alt f" { ToggleFloatingPanes; } + bind "Ctrl g" { SwitchToMode "locked"; } + bind "Alt i" { MoveTab "left"; } + bind "Alt n" { NewPane; } + bind "Alt o" { MoveTab "right"; } + bind "Ctrl q" { Quit; } + } + shared_except "locked" "move" { + bind "Ctrl h" { SwitchToMode "move"; } + } + shared_except "locked" "session" { + bind "Ctrl o" { SwitchToMode "session"; } + } + shared_except "locked" "scroll" { + bind "Alt left" { MoveFocusOrTab "left"; } + bind "Alt down" { MoveFocus "down"; } + bind "Alt up" { MoveFocus "up"; } + bind "Alt right" { MoveFocusOrTab "right"; } + bind "Alt h" { MoveFocusOrTab "left"; } + bind "Alt j" { MoveFocus "down"; } + bind "Alt k" { MoveFocus "up"; } + bind "Alt l" { MoveFocusOrTab "right"; } + } + shared_except "locked" "scroll" "search" "tmux" { + bind "Ctrl b" { SwitchToMode "tmux"; } + } + shared_except "locked" "tab" { + bind "Ctrl t" { SwitchToMode "tab"; } + } + shared_except "locked" "pane" { + bind "Ctrl p" { SwitchToMode "pane"; } + } + shared_except "locked" "resize" { + bind "Ctrl n" { SwitchToMode "resize"; } + } + shared_except "normal" "locked" "entersearch" { + bind "enter" { SwitchToMode "normal"; } + } + shared_except "normal" "locked" "entersearch" "renametab" "renamepane" { + bind "esc" { SwitchToMode "normal"; } + } + shared_among "pane" "tmux" { + bind "x" { CloseFocus; SwitchToMode "normal"; } + } + shared_among "scroll" "search" { + bind "PageDown" { PageScrollDown; } + bind "PageUp" { PageScrollUp; } + bind "left" { PageScrollUp; } + bind "down" { ScrollDown; } + bind "up" { ScrollUp; } + bind "right" { PageScrollDown; } + bind "Ctrl b" { PageScrollUp; } + bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; } + bind "d" { HalfPageScrollDown; } + bind "Ctrl f" { PageScrollDown; } + bind "h" { PageScrollUp; } + bind "j" { ScrollDown; } + bind "k" { ScrollUp; } + bind "l" { PageScrollDown; } + bind "u" { HalfPageScrollUp; } + } + entersearch { + bind "Ctrl c" { SwitchToMode "scroll"; } + bind "esc" { SwitchToMode "scroll"; } + bind "enter" { SwitchToMode "search"; } + } + renametab { + bind "esc" { UndoRenameTab; SwitchToMode "tab"; } + } + shared_among "renametab" "renamepane" { + bind "Ctrl c" { SwitchToMode "normal"; } + } + renamepane { + bind "esc" { UndoRenamePane; SwitchToMode "pane"; } + } + shared_among "session" "tmux" { + bind "d" { Detach; } + } + tmux { + bind "left" { MoveFocus "left"; SwitchToMode "normal"; } + bind "down" { MoveFocus "down"; SwitchToMode "normal"; } + bind "up" { MoveFocus "up"; SwitchToMode "normal"; } + bind "right" { MoveFocus "right"; SwitchToMode "normal"; } + bind "space" { NextSwapLayout; } + bind "\"" { NewPane "down"; SwitchToMode "normal"; } + bind "%" { NewPane "right"; SwitchToMode "normal"; } + bind "," { SwitchToMode "renametab"; } + bind "[" { SwitchToMode "scroll"; } + bind "Ctrl b" { Write 2; SwitchToMode "normal"; } + bind "c" { NewTab; SwitchToMode "normal"; } + bind "h" { MoveFocus "left"; SwitchToMode "normal"; } + bind "j" { MoveFocus "down"; SwitchToMode "normal"; } + bind "k" { MoveFocus "up"; SwitchToMode "normal"; } + bind "l" { MoveFocus "right"; SwitchToMode "normal"; } + bind "n" { GoToNextTab; SwitchToMode "normal"; } + bind "o" { FocusNextPane; } + bind "p" { GoToPreviousTab; SwitchToMode "normal"; } + bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; } + } +} + +plugins { + compact-bar location="zellij:compact-bar" + configuration location="zellij:configuration" + filepicker location="zellij:strider" { + cwd "/" + } + plugin-manager location="zellij:plugin-manager" + session-manager location="zellij:session-manager" + status-bar location="zellij:status-bar" + strider location="zellij:strider" + tab-bar location="zellij:tab-bar" +} + +load_plugins { +} + +theme "catppuccin-mocha" +show_startup_tips false +show_release_notes false +default_mode "normal" diff --git a/home/zellij.nix b/home/zellij.nix index 5e0ef9b..ec9ab0a 100644 --- a/home/zellij.nix +++ b/home/zellij.nix @@ -1,293 +1,14 @@ -{ ... }: { +{ + lib, + ... +}: let + dirs = { + defaults = ../defaults; + }; +in { programs.zellij = { enable = true; - settings = { - keybinds = { - clear-defaults = true; - - locked = [ - { key = "Ctrl g"; action = "SwitchToMode \"normal\""; } - ]; - - pane = [ - { key = "left"; action = "MoveFocus \"left\""; } - { key = "down"; action = "MoveFocus \"down\""; } - { key = "up"; action = "MoveFocus \"up\""; } - { key = "right"; action = "MoveFocus \"right\""; } - { key = "c"; action = "SwitchToMode \"renamepane\"; PaneNameInput 0"; } - { key = "d"; action = "NewPane \"down\"; SwitchToMode \"normal\""; } - { key = "e"; action = "TogglePaneEmbedOrFloating; SwitchToMode \"normal\""; } - { key = "f"; action = "ToggleFocusFullscreen; SwitchToMode \"normal\""; } - { key = "h"; action = "MoveFocus \"left\""; } - { key = "j"; action = "MoveFocus \"down\""; } - { key = "k"; action = "MoveFocus \"up\""; } - { key = "l"; action = "MoveFocus \"right\""; } - { key = "n"; action = "NewPane; SwitchToMode \"normal\""; } - { key = "p"; action = "SwitchFocus"; } - { key = "Ctrl p"; action = "SwitchToMode \"normal\""; } - { key = "r"; action = "NewPane \"right\"; SwitchToMode \"normal\""; } - { key = "w"; action = "ToggleFloatingPanes; SwitchToMode \"normal\""; } - { key = "z"; action = "TogglePaneFrames; SwitchToMode \"normal\""; } - ]; - - tab = [ - { key = "left"; action = "GoToPreviousTab"; } - { key = "down"; action = "GoToNextTab"; } - { key = "up"; action = "GoToPreviousTab"; } - { key = "right"; action = "GoToNextTab"; } - { key = "1"; action = "GoToTab 1; SwitchToMode \"normal\""; } - { key = "2"; action = "GoToTab 2; SwitchToMode \"normal\""; } - { key = "3"; action = "GoToTab 3; SwitchToMode \"normal\""; } - { key = "4"; action = "GoToTab 4; SwitchToMode \"normal\""; } - { key = "5"; action = "GoToTab 5; SwitchToMode \"normal\""; } - { key = "6"; action = "GoToTab 6; SwitchToMode \"normal\""; } - { key = "7"; action = "GoToTab 7; SwitchToMode \"normal\""; } - { key = "8"; action = "GoToTab 8; SwitchToMode \"normal\""; } - { key = "9"; action = "GoToTab 9; SwitchToMode \"normal\""; } - { key = "["; action = "BreakPaneLeft; SwitchToMode \"normal\""; } - { key = "]"; action = "BreakPaneRight; SwitchToMode \"normal\""; } - { key = "b"; action = "BreakPane; SwitchToMode \"normal\""; } - { key = "h"; action = "GoToPreviousTab"; } - { key = "j"; action = "GoToNextTab"; } - { key = "k"; action = "GoToPreviousTab"; } - { key = "l"; action = "GoToNextTab"; } - { key = "n"; action = "NewTab; SwitchToMode \"normal\""; } - { key = "r"; action = "SwitchToMode \"renametab\"; TabNameInput 0"; } - { key = "s"; action = "ToggleActiveSyncTab; SwitchToMode \"normal\""; } - { key = "Ctrl t"; action = "SwitchToMode \"normal\""; } - { key = "x"; action = "CloseTab; SwitchToMode \"normal\""; } - { key = "tab"; action = "ToggleTab"; } - ]; - - resize = [ - { key = "left"; action = "Resize \"Increase left\""; } - { key = "down"; action = "Resize \"Increase down\""; } - { key = "up"; action = "Resize \"Increase up\""; } - { key = "right"; action = "Resize \"Increase right\""; } - { key = "+"; action = "Resize \"Increase\""; } - { key = "-"; action = "Resize \"Decrease\""; } - { key = "="; action = "Resize \"Increase\""; } - { key = "H"; action = "Resize \"Decrease left\""; } - { key = "J"; action = "Resize \"Decrease down\""; } - { key = "K"; action = "Resize \"Decrease up\""; } - { key = "L"; action = "Resize \"Decrease right\""; } - { key = "h"; action = "Resize \"Increase left\""; } - { key = "j"; action = "Resize \"Increase down\""; } - { key = "k"; action = "Resize \"Increase up\""; } - { key = "l"; action = "Resize \"Increase right\""; } - { key = "Ctrl n"; action = "SwitchToMode \"normal\""; } - ]; - - move = [ - { key = "left"; action = "MovePane \"left\""; } - { key = "down"; action = "MovePane \"down\""; } - { key = "up"; action = "MovePane \"up\""; } - { key = "right"; action = "MovePane \"right\""; } - { key = "h"; action = "MovePane \"left\""; } - { key = "Ctrl h"; action = "SwitchToMode \"normal\""; } - { key = "j"; action = "MovePane \"down\""; } - { key = "k"; action = "MovePane \"up\""; } - { key = "l"; action = "MovePane \"right\""; } - { key = "n"; action = "MovePane"; } - { key = "p"; action = "MovePaneBackwards"; } - { key = "tab"; action = "MovePane"; } - ]; - - scroll = [ - { key = "Alt left"; action = "MoveFocusOrTab \"left\"; SwitchToMode \"normal\""; } - { key = "Alt down"; action = "MoveFocus \"down\"; SwitchToMode \"normal\""; } - { key = "Alt up"; action = "MoveFocus \"up\"; SwitchToMode \"normal\""; } - { key = "Alt right"; action = "MoveFocusOrTab \"right\"; SwitchToMode \"normal\""; } - { key = "e"; action = "EditScrollback; SwitchToMode \"normal\""; } - { key = "Alt h"; action = "MoveFocusOrTab \"left\"; SwitchToMode \"normal\""; } - { key = "Alt j"; action = "MoveFocus \"down\"; SwitchToMode \"normal\""; } - { key = "Alt k"; action = "MoveFocus \"up\"; SwitchToMode \"normal\""; } - { key = "Alt l"; action = "MoveFocusOrTab \"right\"; SwitchToMode \"normal\""; } - { key = "s"; action = "SwitchToMode \"entersearch\"; SearchInput 0"; } - ]; - - search = [ - { key = "c"; action = "SearchToggleOption \"CaseSensitivity\""; } - { key = "n"; action = "Search \"down\""; } - { key = "o"; action = "SearchToggleOption \"WholeWord\""; } - { key = "p"; action = "Search \"up\""; } - { key = "w"; action = "SearchToggleOption \"Wrap\""; } - ]; - - session = [ - { - key = "c"; - action = "LaunchOrFocusPlugin \"configuration\" { floating true; move_to_focused_tab true }; SwitchToMode \"normal\""; - } - { key = "Ctrl o"; action = "SwitchToMode \"normal\""; } - { - key = "p"; - action = "LaunchOrFocusPlugin \"plugin-manager\" { floating true; move_to_focused_tab true }; SwitchToMode \"normal\""; - } - { - key = "w"; - action = "LaunchOrFocusPlugin \"session-manager\" { floating true; move_to_focused_tab true }; SwitchToMode \"normal\""; - } - ]; - - "shared_except \"locked\"" = [ - { key = "Alt +"; action = "Resize \"Increase\""; } - { key = "Alt -"; action = "Resize \"Decrease\""; } - { key = "Alt ="; action = "Resize \"Increase\""; } - { key = "Alt ["; action = "PreviousSwapLayout"; } - { key = "Alt ]"; action = "NextSwapLayout"; } - { key = "Alt f"; action = "ToggleFloatingPanes"; } - { key = "Ctrl g"; action = "SwitchToMode \"locked\""; } - { key = "Alt i"; action = "MoveTab \"left\""; } - { key = "Alt n"; action = "NewPane"; } - { key = "Alt o"; action = "MoveTab \"right\""; } - { key = "Ctrl q"; action = "Quit"; } - ]; - - "shared_except \"locked\" \"move\"" = [ - { key = "Ctrl h"; action = "SwitchToMode \"move\""; } - ]; - - "shared_except \"locked\" \"session\"" = [ - { key = "Ctrl o"; action = "SwitchToMode \"session\""; } - ]; - - "shared_except \"locked\" \"scroll\"" = [ - { key = "Alt left"; action = "MoveFocusOrTab \"left\""; } - { key = "Alt down"; action = "MoveFocus \"down\""; } - { key = "Alt up"; action = "MoveFocus \"up\""; } - { key = "Alt right"; action = "MoveFocusOrTab \"right\""; } - { key = "Alt h"; action = "MoveFocusOrTab \"left\""; } - { key = "Alt j"; action = "MoveFocus \"down\""; } - { key = "Alt k"; action = "MoveFocus \"up\""; } - { key = "Alt l"; action = "MoveFocusOrTab \"right\""; } - ]; - - "shared_except \"locked\" \"scroll\" \"search\" \"tmux\"" = [ - { key = "Ctrl b"; action = "SwitchToMode \"tmux\""; } - ]; - - "shared_except \"locked\" \"tab\"" = [ - { key = "Ctrl t"; action = "SwitchToMode \"tab\""; } - ]; - - "shared_except \"locked\" \"pane\"" = [ - { key = "Ctrl p"; action = "SwitchToMode \"pane\""; } - ]; - - "shared_except \"locked\" \"resize\"" = [ - { key = "Ctrl n"; action = "SwitchToMode \"resize\""; } - ]; - - "shared_except \"normal\" \"locked\" \"entersearch\"" = [ - { key = "enter"; action = "SwitchToMode \"normal\""; } - ]; - - "shared_except \"normal\" \"locked\" \"entersearch\" \"renametab\" \"renamepane\"" = [ - { key = "esc"; action = "SwitchToMode \"normal\""; } - ]; - - "shared_among \"pane\" \"tmux\"" = [ - { key = "x"; action = "CloseFocus; SwitchToMode \"normal\""; } - ]; - - "shared_among \"scroll\" \"search\"" = [ - { key = "PageDown"; action = "PageScrollDown"; } - { key = "PageUp"; action = "PageScrollUp"; } - { key = "left"; action = "PageScrollUp"; } - { key = "down"; action = "ScrollDown"; } - { key = "up"; action = "ScrollUp"; } - { key = "right"; action = "PageScrollDown"; } - { key = "Ctrl b"; action = "PageScrollUp"; } - { key = "Ctrl c"; action = "ScrollToBottom; SwitchToMode \"normal\""; } - { key = "d"; action = "HalfPageScrollDown"; } - { key = "Ctrl f"; action = "PageScrollDown"; } - { key = "h"; action = "PageScrollUp"; } - { key = "j"; action = "ScrollDown"; } - { key = "k"; action = "ScrollUp"; } - { key = "l"; action = "PageScrollDown"; } - { key = "u"; action = "HalfPageScrollUp"; } - ]; - - entersearch = [ - { key = "Ctrl c"; action = "SwitchToMode \"scroll\""; } - { key = "esc"; action = "SwitchToMode \"scroll\""; } - { key = "enter"; action = "SwitchToMode \"search\""; } - ]; - - renametab = [ - { key = "esc"; action = "UndoRenameTab; SwitchToMode \"tab\""; } - ]; - - "shared_among \"renametab\" \"renamepane\"" = [ - { key = "Ctrl c"; action = "SwitchToMode \"normal\""; } - ]; - - renamepane = [ - { key = "esc"; action = "UndoRenamePane; SwitchToMode \"pane\""; } - ]; - - "shared_among \"session\" \"tmux\"" = [ - { key = "d"; action = "Detach"; } - ]; - - tmux = [ - { key = "left"; action = "MoveFocus \"left\"; SwitchToMode \"normal\""; } - { key = "down"; action = "MoveFocus \"down\"; SwitchToMode \"normal\""; } - { key = "up"; action = "MoveFocus \"up\"; SwitchToMode \"normal\""; } - { key = "right"; action = "MoveFocus \"right\"; SwitchToMode \"normal\""; } - { key = "space"; action = "NextSwapLayout"; } - { key = "\""; action = "NewPane \"down\"; SwitchToMode \"normal\""; } - { key = "%"; action = "NewPane \"right\"; SwitchToMode \"normal\""; } - { key = ","; action = "SwitchToMode \"renametab\""; } - { key = "["; action = "SwitchToMode \"scroll\""; } - { key = "Ctrl b"; action = "Write 2; SwitchToMode \"normal\""; } - { key = "c"; action = "NewTab; SwitchToMode \"normal\""; } - { key = "h"; action = "MoveFocus \"left\"; SwitchToMode \"normal\""; } - { key = "j"; action = "MoveFocus \"down\"; SwitchToMode \"normal\""; } - { key = "k"; action = "MoveFocus \"up\"; SwitchToMode \"normal\""; } - { key = "l"; action = "MoveFocus \"right\"; SwitchToMode \"normal\""; } - { key = "n"; action = "GoToNextTab; SwitchToMode \"normal\""; } - { key = "o"; action = "FocusNextPane"; } - { key = "p"; action = "GoToPreviousTab; SwitchToMode \"normal\""; } - { key = "z"; action = "ToggleFocusFullscreen; SwitchToMode \"normal\""; } - ]; - }; - - plugins = { - compact-bar = { - location = "zellij:compact-bar"; - }; - configuration = { - location = "zellij:configuration"; - }; - filepicker = { - location = "zellij:strider"; - cwd = "/"; - }; - plugin-manager = { - location = "zellij:plugin-manager"; - }; - session-manager = { - location = "zellij:session-manager"; - }; - status-bar = { - location = "zellij:status-bar"; - }; - strider = { - location = "zellij:strider"; - }; - tab-bar = { - location = "zellij:tab-bar"; - }; - }; - - load_plugins = {}; - - theme = "catppuccin-mocha"; - show_startup_tips = false; - show_release_notes = false; - default_mode = "normal"; - }; }; + + xdg.configFile."zellij/config.kdl".source = lib.mkForce (dirs.defaults + zellij/config.kdl); } From cb2edf6afb18a783555d179033ab657fdc02ffe5 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 28 Jun 2025 18:11:49 -0400 Subject: [PATCH 11/26] fixed zellij for the final time --- home/zellij.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/zellij.nix b/home/zellij.nix index ec9ab0a..fe24e9a 100644 --- a/home/zellij.nix +++ b/home/zellij.nix @@ -10,5 +10,5 @@ in { enable = true; }; - xdg.configFile."zellij/config.kdl".source = lib.mkForce (dirs.defaults + zellij/config.kdl); + xdg.configFile."zellij/config.kdl".source = lib.mkForce (dirs.defaults + /zellij/config.kdl); } From f06b17a336a1b650b1c6ef8a4934df55f706c531 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Tue, 8 Jul 2025 23:30:05 -0400 Subject: [PATCH 12/26] added wl-clipboard, wl-clip-persist, gpu-screen-recorder --- home/packages/linux.nix | 2 ++ modules/machine/cloud/configuration.nix | 2 ++ 2 files changed, 4 insertions(+) diff --git a/home/packages/linux.nix b/home/packages/linux.nix index 1992f9f..eb7c33a 100644 --- a/home/packages/linux.nix +++ b/home/packages/linux.nix @@ -13,6 +13,8 @@ pavucontrol godot aseprite + gpu-screen-recorder + gpu-screen-recorder-gtk # ungoogled-chromium ]); } diff --git a/modules/machine/cloud/configuration.nix b/modules/machine/cloud/configuration.nix index 91b3497..1ec6029 100644 --- a/modules/machine/cloud/configuration.nix +++ b/modules/machine/cloud/configuration.nix @@ -59,6 +59,8 @@ in { flatpak-xdg-utils desktop-file-utils shared-mime-info + wl-clipboard + wl-clip-persist ]; # Enable OpenSSH From 936b4bbf442a9e3ae2400abcb3a0586f7c3bede8 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Tue, 8 Jul 2025 23:40:02 -0400 Subject: [PATCH 13/26] added mako settings to sway --- home/sway.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/home/sway.nix b/home/sway.nix index 7646596..061291f 100644 --- a/home/sway.nix +++ b/home/sway.nix @@ -30,7 +30,22 @@ in { xdg.configFile."waybar/config".source = lib.mkForce (dirs.defaults + /waybar/config); xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css); programs.rofi.enable = pkgs.stdenv.isLinux; - services.mako.enable = pkgs.stdenv.isLinux; + services.mako = { + enable = pkgs.stdenv.isLinux; + settings = { + text-color="#cad3f5"; + border-color="#c6d0f5"; + background-color="#24273a"; + width=420; + height=110; + padding=10; + border-size=2; + font="Monaspace Krypton 9"; + anchor="top-right"; + default-timeout=5000; + max-icon-size=32; + }; + }; programs.waybar = { enable = pkgs.stdenv.isLinux; From 27c114b8017bd02a1bb80c4f659a86731081f7b6 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Wed, 9 Jul 2025 20:08:16 -0400 Subject: [PATCH 14/26] little sway update --- defaults/sway/config | 23 +++++----- home/sway.nix | 99 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 111 insertions(+), 11 deletions(-) diff --git a/defaults/sway/config b/defaults/sway/config index 30775df..40c4ff0 100644 --- a/defaults/sway/config +++ b/defaults/sway/config @@ -10,8 +10,7 @@ set $right l set $term alacritty # Menu (rofi) -set $rofi_cmd rofi -terminal '$term' -set $menu $rofi_cmd -show combi -combi-modes drun#run -modes combi +set $menu wofi --term '$term' ### Output configuration output DP-3 pos 3840 0 res 1920x1080@59Hz @@ -28,13 +27,17 @@ output DP-3 bg ~/.wallpaper/.wallpaper.png fill ## DP-3 bindings workspace 1 output DP-2 workspace 2 output DP-2 +workspace 4 output DP-2 +workspace 5 output DP-2 ## HDMI-A-1 bindings -workspace 3 output HDMI-A-1 +workspace 3 output HDMI-A-1 +workspace 9 output HDMI-A-1 ## DP-2 bindings workspace 6 output DP-3 workspace 7 output DP-3 +workspace 8 output DP-3 ### Colour options set $bg #24283b @@ -87,8 +90,9 @@ floating_modifier $mod normal # Reload the configuration file bindsym $mod+Shift+c reload - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e 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' + # Shutdown and reboot hotkeys + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the shutdown shortcut. Do you really want to shutdown your computer?' -b 'Yes, shutdown' 'systemctl poweroff' + bindsym $mod+Shift+r exec swaynag -t warning -m 'You pressed the reboot shortcut. Do you really want to reboot your computer?' -b 'Yes, reboot' 'systemctl reboot' ### Navigation # Move your focus around @@ -182,8 +186,9 @@ mode "resize" { bindsym Return mode "default" bindsym Escape mode "default" } -bindsym $mod+r mode "resize" +### resize +bindsym $mod+r mode "resize" ### Audio and brightness keybinds bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% @@ -196,16 +201,14 @@ bindsym XF86AudioPrev exec playerctl previous bindsym XF86MonBrightnessUp exec light -A 5 bindsym XF86MonBrightnessDown exec light -U 5 -### Lock the screen so my brother -### won't dick with my computer -bindsym $mod+Ctrl+l 'swaylock -f -i /home/wyatt/.wallpaper_lock.jpeg' +### Lock the screen +bindsym $mod+Ctrl+q 'swaylock -f -i /home/wyatt/.wallpaper/.wallpaper_lock.png' ### Status Bar: bar { swaybar_command waybar } - ### Font settings: font pango:FiraCode: 14px diff --git a/home/sway.nix b/home/sway.nix index 061291f..5778135 100644 --- a/home/sway.nix +++ b/home/sway.nix @@ -29,7 +29,104 @@ in { xdg.configFile."sway/config".source = lib.mkForce (dirs.defaults + /sway/config); xdg.configFile."waybar/config".source = lib.mkForce (dirs.defaults + /waybar/config); xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css); - programs.rofi.enable = pkgs.stdenv.isLinux; + + programs.wofi = { + enable = pkgs.stdenv.isLinux; + settings = { + width=600; + height=350; + location="center"; + show="drun"; + prompt="Search..."; + filter_rate=100; + allow_markup=true; + no_actions=true; + halign="fill"; + orientation="vertical"; + content_halign="fill"; + insensitive=true; + allow_images=true; + image_size=40; + gtk_dark=true; + }; + style = '' + @define-color selected-text #8caaee; + @define-color text #c6d0f5; + @define-color base #24273a; + + * { + font-family: 'Monaspace Krypton 9', monospace; + font-size: 18px; + } + + window { + margin: 0px; + padding: 20px; + background-color: @base; + opacity: 0.95; + } + + #inner-box { + margin: 0; + padding: 0; + border: none; + background-color: @base; + } + + #outer-box { + margin: 0; + padding: 20px; + border: none; + background-color: @base; + } + + #scroll { + margin: 0; + padding: 0; + border: none; + background-color: @base; + } + + #input { + margin: 0; + padding: 10px; + border: none; + background-color: @base; + color: @text; + } + + #input:focus { + outline: none; + box-shadow: none; + border: none; + } + + #text { + margin: 5px; + border: none; + color: @text; + } + + #entry { + background-color: @base; + } + + #entry:selected { + outline: none; + border: none; + } + + #entry:selected #text { + color: @selected-text; + } + + #entry image { + -gtk-icon-transform: scale(0.7); + } + ''; + }; + programs.swaylock.enable = pkgs.stdenv.isLinux; + services.mako = { enable = pkgs.stdenv.isLinux; settings = { From 66eddc0345bb5a7a53e1cae351e0f3c86cd5dadc Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Wed, 9 Jul 2025 20:08:48 -0400 Subject: [PATCH 15/26] added catppuccin theme for bat also the default --- home/bat.nix | 17 +++++++++++++++++ home/default.nix | 1 + home/packages/common.nix | 1 - 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 home/bat.nix diff --git a/home/bat.nix b/home/bat.nix new file mode 100644 index 0000000..dacf8b6 --- /dev/null +++ b/home/bat.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: { + programs.bat = { + enable = true; + config.theme = "catppuccin"; + + themes.catppuccin = { + src = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "bat"; + rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1"; + hash = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw="; + }; + + file = "/Catppuccin-mocha.tmTheme"; + }; + }; +} diff --git a/home/default.nix b/home/default.nix index 18a9906..c463789 100644 --- a/home/default.nix +++ b/home/default.nix @@ -26,6 +26,7 @@ in { ./terminal.nix ./browser.nix ./zellij.nix + ./bat.nix ]; # Home Manager needs a bit of information about you and the diff --git a/home/packages/common.nix b/home/packages/common.nix index bd2de2a..03034f2 100644 --- a/home/packages/common.nix +++ b/home/packages/common.nix @@ -14,7 +14,6 @@ # utils tmux - bat lazygit bottom ripgrep From 13fc210f8bab60c2bd9c643b21b35063cc0f789a Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Tue, 15 Jul 2025 21:41:56 -0500 Subject: [PATCH 16/26] update valefor readme --- modules/machine/valefor/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/machine/valefor/README.md b/modules/machine/valefor/README.md index 1f2e918..f595b47 100644 --- a/modules/machine/valefor/README.md +++ b/modules/machine/valefor/README.md @@ -6,4 +6,4 @@ Licensed by the Mozilla Public License v2 ## Synopsis -This directory is currently empty so, currently, there's nothing to see! However, this is where the machine-specific configuration files for hostname `valefor` live, my apartment appliance server. These files get called by the root `flake.nix` file. +This is where the machine-specific configuration files for hostname `valefor` live, my apartment appliance server. These files get called by the root `flake.nix` file. \ No newline at end of file From 6ff4e13b03a1eb00bd313610a4d24433149fc9bb Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Tue, 12 Aug 2025 09:14:50 -0400 Subject: [PATCH 17/26] flake update --- flake.lock | 23 ++++++++++++----------- home/sway.nix | 15 --------------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/flake.lock b/flake.lock index d1b8fb2..0b81522 100644 --- a/flake.lock +++ b/flake.lock @@ -64,11 +64,11 @@ "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1751123364, - "narHash": "sha256-Nb3pxs1onnbdhhnoNc+IfHzrW9dM+UbEdjK0AguR2J4=", + "lastModified": 1754941490, + "narHash": "sha256-2AJf0q4u1zakqjr0y4dCyqzdDSil8P5m2YpZxAAzJJw=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "f6d1c274b9c0e095dc0a1b411dec7410ad779bf5", + "rev": "5bf632e9cc0e77a578bad983b0cbdf0451ce87d4", "type": "github" }, "original": { @@ -84,11 +84,11 @@ ] }, "locked": { - "lastModified": 1750792728, - "narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=", + "lastModified": 1753592768, + "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=", "owner": "nix-community", "repo": "home-manager", - "rev": "366f00797b1efb70f2882d3da485e3c10fd3d557", + "rev": "fc3add429f21450359369af74c2375cb34a2d204", "type": "github" }, "original": { @@ -129,11 +129,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1750969886, - "narHash": "sha256-zW/OFnotiz/ndPFdebpo3X0CrbVNf22n4DjN2vxlb58=", + "lastModified": 1754767907, + "narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a676066377a2fe7457369dd37c31fd2263b662f4", + "rev": "c5f08b62ed75415439d48152c2a784e36909b1bc", "type": "github" }, "original": { @@ -170,7 +170,8 @@ "zig": { "inputs": { "flake-compat": [ - "ghostty" + "ghostty", + "flake-compat" ], "flake-utils": [ "ghostty", @@ -216,8 +217,8 @@ }, "original": { "owner": "jcollie", - "ref": "56c159be489cc6c0e73c3930bd908ddc6fe89613", "repo": "zon2nix", + "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", "type": "github" } } diff --git a/home/sway.nix b/home/sway.nix index 5778135..8e81b1d 100644 --- a/home/sway.nix +++ b/home/sway.nix @@ -147,20 +147,5 @@ in { programs.waybar = { enable = pkgs.stdenv.isLinux; systemd.enable = true; - - package = pkgs.waybar.overrideAttrs (old: { - version = "0.11.0"; - - src = pkgs.fetchFromGitHub { - owner = "Alexays"; - repo = "Waybar"; - rev = "d56dd6ee7fdf8c5ba4e90790af62b7f7829d3a47"; - sha256 = "sha256-3lc0voMU5RS+mEtxKuRayq/uJO09X7byq6Rm5NZohq8="; - fetchSubmodules = true; - }; - - buildInputs = old.buildInputs ++ [ pkgs.fftw pkgs.libcava ]; - # mesonFlags = (old.mesonFlags or []) ++ [ "-Dcava=disabled" ]; - }); }; } From ddd3fb39e4c92dba014241d9cad0851fffb6f62d Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Wed, 27 Aug 2025 11:31:06 -0400 Subject: [PATCH 18/26] bulk of the refactor --- modules/common/environment.nix | 15 +++++++---- modules/common/users.nix | 49 +++++++++++++++------------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/modules/common/environment.nix b/modules/common/environment.nix index d4e931c..826ad32 100644 --- a/modules/common/environment.nix +++ b/modules/common/environment.nix @@ -6,14 +6,19 @@ neovim usbutils coreutils - lshw - systemd - dmidecode pciutils - nix-ld patchelf htop - ]; + ] ++ + lib.optionals pkgs.stdenv.isLinux (with pkgs; [ + systemd + lshw + dmidecode + nix-ld + ]) ++ + lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ + # nothing here, yet + ]); # Common environment variables that every system will use environment.variables.EDITOR = "nvim"; diff --git a/modules/common/users.nix b/modules/common/users.nix index 1663a61..0ac1fb9 100644 --- a/modules/common/users.nix +++ b/modules/common/users.nix @@ -1,30 +1,23 @@ +{ lib, pkgs, userName, hostname, ... }: + { - lib, - pkgs, - userName, - hostname, - ... -} @ args: { networking.hostName = hostname; + + users.users."${userName}" = { + home = if pkgs.stdenv.isDarwin + then "/Users/${userName}" + else "/home/${userName}"; + description = userName; + } // lib.optionalAttrs pkgs.stdenv.isLinux { + group = "${userName}"; + isNormalUser = true; + }; + + users.groups.wyatt = {}; + nix.settings.trusted-users = [userName]; - # Don't forget to set a password with ‘passwd’! - users.users."${userName}" = lib.mkMerge [ - { - home = - if pkgs.stdenv.isDarwin - then "/Users/${userName}" - else "/home/${userName}"; - description = userName; - } - - (lib.mkIf (pkgs.stdenv.isLinux) { - group = "${userName}"; - isNormalUser = true; - }) - ]; - - security.sudo = { - extraRules = [ + security = lib.optionalAttrs pkgs.stdenv.isLinux { + sudo.extraRules = [ { groups = [ "wheel" ]; commands = [ @@ -37,7 +30,9 @@ ]; }; - users.groups.wyatt = {}; - - nix.settings.trusted-users = [userName]; + environment = lib.optionalAttrs pkgs.stdenv.isDarwin { + etc."sudoers.d/wheel-nopasswd".text = '' + %wheel ALL=(ALL:ALL) NOPASSWD: SETENV: ALL + ''; + }; } From 3af5061a7933e8ddbefd20dd4d123b5cd508a099 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Wed, 27 Aug 2025 11:31:11 -0400 Subject: [PATCH 19/26] system update --- flake.lock | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 0b81522..93bf57e 100644 --- a/flake.lock +++ b/flake.lock @@ -64,11 +64,11 @@ "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1754941490, - "narHash": "sha256-2AJf0q4u1zakqjr0y4dCyqzdDSil8P5m2YpZxAAzJJw=", + "lastModified": 1756131615, + "narHash": "sha256-rmmsEZglqzgxIePTKe5wCIQ3syzAb4jE3RpNxD/2tzY=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "5bf632e9cc0e77a578bad983b0cbdf0451ce87d4", + "rev": "8aa0b4c92a54f822043e134d2b84ee29844f944e", "type": "github" }, "original": { @@ -84,11 +84,11 @@ ] }, "locked": { - "lastModified": 1753592768, - "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=", + "lastModified": 1755928099, + "narHash": "sha256-OILVkfhRCm8u18IZ2DKR8gz8CVZM2ZcJmQBXmjFLIfk=", "owner": "nix-community", "repo": "home-manager", - "rev": "fc3add429f21450359369af74c2375cb34a2d204", + "rev": "4a44fb9f7555da362af9d499817084f4288a957f", "type": "github" }, "original": { @@ -129,11 +129,24 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1754767907, - "narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=", + "lastModified": 1755972213, + "narHash": "sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko=", + "rev": "73e96df7cff5783f45e21342a75a1540c4eddce4", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1755922037, + "narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c5f08b62ed75415439d48152c2a784e36909b1bc", + "rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c", "type": "github" }, "original": { @@ -149,7 +162,7 @@ "ghostty": "ghostty", "home-manager": "home-manager", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" } }, "systems": { @@ -202,23 +215,20 @@ "ghostty", "flake-utils" ], - "nixpkgs": [ - "ghostty", - "nixpkgs" - ] + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1742104771, - "narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=", + "lastModified": 1756000480, + "narHash": "sha256-fR5pdcjO0II5MNdCzqvyokyuFkmff7/FyBAjUS6sMfA=", "owner": "jcollie", "repo": "zon2nix", - "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", + "rev": "d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60", "type": "github" }, "original": { "owner": "jcollie", "repo": "zon2nix", - "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", + "rev": "d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60", "type": "github" } } From faed026258ca6301e66526dcf635f57791540cd3 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Thu, 4 Sep 2025 14:05:36 -0400 Subject: [PATCH 20/26] some formatting modifications --- modules/common/environment.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/common/environment.nix b/modules/common/environment.nix index 826ad32..2c7c8b9 100644 --- a/modules/common/environment.nix +++ b/modules/common/environment.nix @@ -1,5 +1,4 @@ { lib, pkgs, ... }: { - # Common packages that every system will use environment.systemPackages = with pkgs; [ git vim @@ -17,9 +16,8 @@ nix-ld ]) ++ lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ - # nothing here, yet + # nothing here, yet ;) ]); - # Common environment variables that every system will use environment.variables.EDITOR = "nvim"; } From 51beed138e6b6de4ef6fe2eaa8a8803a08600b6b Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 13 Sep 2025 16:09:21 -0400 Subject: [PATCH 21/26] added dedicated focusrite scarlett, appimage modules, modified cloud these new modules include only packages, no other configuration. maybe later but none currently --- modules/apps/appimage.nix | 19 +++++++ modules/machine/cloud/configuration.nix | 68 +++++++++++++++---------- modules/sound/focusrite.nix | 33 ++++++++++++ 3 files changed, 94 insertions(+), 26 deletions(-) create mode 100644 modules/apps/appimage.nix create mode 100644 modules/sound/focusrite.nix diff --git a/modules/apps/appimage.nix b/modules/apps/appimage.nix new file mode 100644 index 0000000..2b6261e --- /dev/null +++ b/modules/apps/appimage.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.appimage; +in { + options.appimage = { + enable = mkEnableOption "AppImage support"; + }; + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + appimageupdate + appimage-run + ]; + }; +} diff --git a/modules/machine/cloud/configuration.nix b/modules/machine/cloud/configuration.nix index 1ec6029..4aa3fc8 100644 --- a/modules/machine/cloud/configuration.nix +++ b/modules/machine/cloud/configuration.nix @@ -21,11 +21,13 @@ in { inherit lib pkgs flatpakPackages; }) ../../apps/gaming.nix + ../../apps/appimage.nix ../../graphics ../../pwrMgmt ../../networking/core.nix ../../sound/pipewire.nix ../../sound/shairport.nix + ../../sound/focusrite.nix ../../virtualization/podman.nix ../../virtualization/hardware.nix ]; @@ -34,9 +36,13 @@ in { nix.settings.experimental-features = ["nix-command" "flakes"]; # Custom kernel/boot stuff - boot.kernelPackages = pkgs.linuxPackages_latest; - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; + boot = { + kernelPackages = pkgs.linuxPackages_latest; + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + }; # Enable Bluetooth if present hardware.bluetooth.enable = true; @@ -63,21 +69,6 @@ in { wl-clip-persist ]; - # Enable OpenSSH - services.openssh.enable = true; - - # Enable keyring - services.gnome.gnome-keyring.enable = true; - - # Enable GnuPG - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - - # Enable SUID wrappers (some programs need them) - programs.mtr.enable = true; - # Enable Polkit security.polkit.enable = true; @@ -145,14 +136,39 @@ in { networkManager.enable = true; }; - # Enable dconf - programs.dconf.enable = true; + programs = { + # Enable GnuPG + gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + # Enable SUID wrappers (some programs need them) + mtr.enable = true; + + # Enable dconf + dconf.enable = true; + }; # Add username to groups "wheel" and "video" - more may be added here later users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"]; - # Flatpak packages (see ../../apps/flatpak.nix) - services.flatpak.packages = flatpakPackages; + services = { + # Enable OpenSSH + openssh.enable = true; + + # Enable keyring + gnome.gnome-keyring.enable = true; + + # Flatpak packages (see ../../apps/flatpak.nix) + flatpak.packages = flatpakPackages; + }; + + # Focusrite Scarlett audio interface support (see ../../sound/focusrite.nix) + sound.hardware.focusrite.enable = true; + + # AppImage support + appimage.enable = true; # XDG stuff xdg = { @@ -160,12 +176,12 @@ in { enable = true; config = { sway = { - default = [ "wlr" "gtk" ]; - "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; + default = ["wlr" "gtk"]; + "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; }; common = { - default = [ "gtk" ]; - "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; + default = ["gtk"]; + "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; }; }; extraPortals = with pkgs; [ diff --git a/modules/sound/focusrite.nix b/modules/sound/focusrite.nix new file mode 100644 index 0000000..24a6f00 --- /dev/null +++ b/modules/sound/focusrite.nix @@ -0,0 +1,33 @@ +# Must be paired with the pipewire Nix module, this does nothing but install packages +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.sound.hardware.focusrite; +in { + options.focusrite = { + enable = mkEnableOption "Focusrite audio interface support"; + guiSupport = mkOption { + type = types.bool; + default = false; + description = "Enable GUI support for Focusrite Scarlett audio interface (installs alsa-scarlett-gui)"; + }; + }; + config = mkIf cfg.enable (mkMerge [ + { + environment.systemPackages = with pkgs; + [ + scarlett2 + alsa-scarlett-gui + ] + ++ ( + if cfg.guiSupport + then [pkgs.alsa-scarlett-gui] + else [] + ); + } + ]); +} From 93052529b82d5c977b693cfe9fc1bec134074da7 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 13 Sep 2025 16:30:26 -0400 Subject: [PATCH 22/26] modified things --- modules/security/sudo.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/security/sudo.nix b/modules/security/sudo.nix index 79360e8..e71b56d 100644 --- a/modules/security/sudo.nix +++ b/modules/security/sudo.nix @@ -5,7 +5,7 @@ }: with lib; { options = { - security.sudo = { + security.sudoers = { needsPassword = mkOption { type = types.bool; default = true; From 7bc7749f51c6f440ca48febbd81969970f655aab Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sun, 21 Sep 2025 11:55:14 -0400 Subject: [PATCH 23/26] fixed focusrite module --- modules/sound/focusrite.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sound/focusrite.nix b/modules/sound/focusrite.nix index 24a6f00..39de544 100644 --- a/modules/sound/focusrite.nix +++ b/modules/sound/focusrite.nix @@ -8,7 +8,7 @@ with lib; let cfg = config.sound.hardware.focusrite; in { - options.focusrite = { + options.sound.hardware.focusrite = { enable = mkEnableOption "Focusrite audio interface support"; guiSupport = mkOption { type = types.bool; From 29feb9223e354351d71b8b8d95fc96b433279b45 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sun, 21 Sep 2025 11:55:46 -0400 Subject: [PATCH 24/26] fixed git config i think i am reverting a false fix, idk --- home/git.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/git.nix b/home/git.nix index 7c3504a..db30f9d 100644 --- a/home/git.nix +++ b/home/git.nix @@ -15,7 +15,7 @@ extraConfig = { init.defaultBranch = "master"; push.autoSetupRemote = true; - pull.merge = true; + pull.rebase = false; merge.tool = "nvimdiff"; mergetool.keepBackup = false; }; From bfa957adcd27960c77d42f9148a249748524698e Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Thu, 2 Oct 2025 09:58:03 -0400 Subject: [PATCH 25/26] flake update --- flake.lock | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/flake.lock b/flake.lock index 93bf57e..e482aa1 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1749744770, - "narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=", + "lastModified": 1757432263, + "narHash": "sha256-qHn+/0+IOz5cG68BZUwL9BV3EO/e9eNKCjH3+N7wMdI=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb", + "rev": "1fef4404de4d1596aa5ab2bd68078370e1b9dcdb", "type": "github" }, "original": { @@ -64,11 +64,11 @@ "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1756131615, - "narHash": "sha256-rmmsEZglqzgxIePTKe5wCIQ3syzAb4jE3RpNxD/2tzY=", + "lastModified": 1759330332, + "narHash": "sha256-ZKyOgOOm9Itjbc5xi89xMtw+cnnOFfl79zndPMTzKpU=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "8aa0b4c92a54f822043e134d2b84ee29844f944e", + "rev": "a5aff0e347b0016e2735d4ec4b4cdca96b5438d1", "type": "github" }, "original": { @@ -84,11 +84,11 @@ ] }, "locked": { - "lastModified": 1755928099, - "narHash": "sha256-OILVkfhRCm8u18IZ2DKR8gz8CVZM2ZcJmQBXmjFLIfk=", + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "owner": "nix-community", "repo": "home-manager", - "rev": "4a44fb9f7555da362af9d499817084f4288a957f", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "type": "github" }, "original": { @@ -129,24 +129,24 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1755972213, - "narHash": "sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko=", - "rev": "73e96df7cff5783f45e21342a75a1540c4eddce4", + "lastModified": 1758360447, + "narHash": "sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs=", + "rev": "8eaee110344796db060382e15d3af0a9fc396e0e", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz" }, "original": { "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz" + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" } }, "nixpkgs_3": { "locked": { - "lastModified": 1755922037, - "narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=", + "lastModified": 1759281824, + "narHash": "sha256-FIBE1qXv9TKvSNwst6FumyHwCRH3BlWDpfsnqRDCll0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c", + "rev": "5b5be50345d4113d04ba58c444348849f5585b4a", "type": "github" }, "original": { @@ -211,24 +211,20 @@ }, "zon2nix": { "inputs": { - "flake-utils": [ - "ghostty", - "flake-utils" - ], "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1756000480, - "narHash": "sha256-fR5pdcjO0II5MNdCzqvyokyuFkmff7/FyBAjUS6sMfA=", + "lastModified": 1758405547, + "narHash": "sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG+62znXctWM=", "owner": "jcollie", "repo": "zon2nix", - "rev": "d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60", + "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245", "type": "github" }, "original": { "owner": "jcollie", "repo": "zon2nix", - "rev": "d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60", + "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245", "type": "github" } } From a3c53820b19318c707f2796e423ec2df36b5322d Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Thu, 2 Oct 2025 18:44:58 -0400 Subject: [PATCH 26/26] added sleep inhibiting aliases to fish --- home/shell.nix | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/home/shell.nix b/home/shell.nix index 9941b9f..a2b4f98 100644 --- a/home/shell.nix +++ b/home/shell.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{pkgs, lib, ...}: { programs.fish = { enable = true; # initExtra = '' @@ -52,6 +52,27 @@ ''; onEvent = "fish_greeting"; }; + } // lib.optionalAttrs pkgs.stdenv.isLinux { + block = { + body = '' + systemd-inhibit --what=sleep --who="$USER" --why="manual invocation" --mode=block sleep infinity & + set -g INHIBIT_PID $last_pid + echo "Sleep inhibited. PID: $INHIBIT_PID" + ''; + }; + + unblock = { + body = '' + if set -q INHIBIT_PID + kill $INHIBIT_PID 2>/dev/null + and echo "Sleep inhibitor removed. PID: $INHIBIT_PID" + or echo "Failed to kill process or already terminated." + set -e INHIBIT_PID + else + echo "No active sleep inhibitor found." + end + ''; + }; }; };