From aa128e65fa18c931e6ce6da0a25368980952e858 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Sun, 16 Feb 2025 09:12:42 -0600 Subject: [PATCH] Nice config structure changes --- flake.lock | 95 +-- lib/modules/home/default.nix | 1021 +++++++++++++++++---------------- lib/modules/home/firefox.nix | 114 ++-- lib/modules/nixos/default.nix | 9 +- packages/hosts/default.nix | 32 +- packages/hosts/dragon.nix | 5 - 6 files changed, 661 insertions(+), 615 deletions(-) diff --git a/flake.lock b/flake.lock index db01ec5..eebdf22 100644 --- a/flake.lock +++ b/flake.lock @@ -22,11 +22,11 @@ ] }, "locked": { - "lastModified": 1736165297, - "narHash": "sha256-OT+sF4eNDFN/OdyUfIQwyp28+CFQL7PAdWn0wGU7F0U=", + "lastModified": 1739582867, + "narHash": "sha256-rO528HmsiPi3RO9kZdYt0NnzN3pxpXz33m6H/sIFgzI=", "owner": "nix-community", "repo": "disko", - "rev": "76816af65d5294761636a838917e335992a52e0c", + "rev": "4edb87a2ac9010da6fea50fc56d67e123fca85f4", "type": "github" }, "original": { @@ -39,11 +39,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -89,11 +89,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -123,20 +123,22 @@ "ghostty": { "inputs": { "flake-compat": "flake-compat", + "flake-utils": "flake-utils", "nixpkgs-stable": [ "nixpkgs" ], "nixpkgs-unstable": [ "nixpkgs-unstable" ], - "zig": "zig" + "zig": "zig", + "zig2nix": "zig2nix" }, "locked": { - "lastModified": 1739143498, - "narHash": "sha256-85TvsfDdOBfthR44rRJV9KXpj415StJqVyq+BBlLCvM=", + "lastModified": 1739595470, + "narHash": "sha256-+t87M/reiRbE+E1CM6hswNbq3aDTZKfJVQz3L8JLl/s=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "a3e462bbba724bcf312fcd5edd12bb5e0251c853", + "rev": "f1f1120749b7494c89689d993d5a893c27c236a5", "type": "github" }, "original": { @@ -154,11 +156,11 @@ ] }, "locked": { - "lastModified": 1735882644, - "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "type": "github" }, "original": { @@ -259,11 +261,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1738256342, - "narHash": "sha256-P3t/QQgBUqmnjAQXds3qfKbcn5vULJXbx4eezlYF9Zs=", + "lastModified": 1739457098, + "narHash": "sha256-a4zUQTpHagz1Kb3kLxcflsiF05FsHlrzXEuCjbzjAOM=", "owner": "helix-editor", "repo": "helix", - "rev": "d285a8a9e5e2e9c0576c21a7bdc5e439b80a636c", + "rev": "7275b7f85014aad7e15d4987ec4f2249572eecfb", "type": "github" }, "original": { @@ -280,11 +282,11 @@ ] }, "locked": { - "lastModified": 1735344290, - "narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=", + "lastModified": 1739570999, + "narHash": "sha256-eCc0/Q4bPpe4/AS+uzIrHLJcR6BxPQ69q2kD0/Qe6rU=", "owner": "nix-community", "repo": "home-manager", - "rev": "613691f285dad87694c2ba1c9e6298d04736292d", + "rev": "254d47082e23dbf72fdeca1da6fe1da420f478d8", "type": "github" }, "original": { @@ -301,11 +303,11 @@ ] }, "locked": { - "lastModified": 1736089250, - "narHash": "sha256-/LPWMiiJGPHGd7ZYEgmbE2da4zvBW0acmshUjYC3WG4=", + "lastModified": 1739571712, + "narHash": "sha256-0UdSDV/TBY+GuxXLbrLq3l2Fq02ciyKCIMy4qmnfJXQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "172b91bfb2b7f5c4a8c6ceac29fd53a01ef07196", + "rev": "6d3163aea47fdb1fe19744e91306a2ea4f602292", "type": "github" }, "original": { @@ -446,11 +448,11 @@ ] }, "locked": { - "lastModified": 1736064798, - "narHash": "sha256-xJRN0FmX9QJ6+w8eIIIxzBU1AyQcLKJ1M/Gp6lnSD20=", + "lastModified": 1739262228, + "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=", "owner": "Mic92", "repo": "sops-nix", - "rev": "5dc08f9cc77f03b43aacffdfbc8316807773c930", + "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975", "type": "github" }, "original": { @@ -494,18 +496,21 @@ "flake-compat": [ "ghostty" ], - "flake-utils": "flake-utils", + "flake-utils": [ + "ghostty", + "flake-utils" + ], "nixpkgs": [ "ghostty", "nixpkgs-stable" ] }, "locked": { - "lastModified": 1717848532, - "narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=", + "lastModified": 1738239110, + "narHash": "sha256-Y5i9mQ++dyIQr+zEPNy+KIbc5wjPmfllBrag3cHZgcE=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43", + "rev": "1a8fb6f3a04724519436355564b95fce5e272504", "type": "github" }, "original": { @@ -513,6 +518,32 @@ "repo": "zig-overlay", "type": "github" } + }, + "zig2nix": { + "inputs": { + "flake-utils": [ + "ghostty", + "flake-utils" + ], + "nixpkgs": [ + "ghostty", + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1738263917, + "narHash": "sha256-j/3fwe2pEOquHabP/puljOKwAZFjIE9gXZqA91sC48M=", + "owner": "jcollie", + "repo": "zig2nix", + "rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a", + "type": "github" + }, + "original": { + "owner": "jcollie", + "ref": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a", + "repo": "zig2nix", + "type": "github" + } } }, "root": "root", diff --git a/lib/modules/home/default.nix b/lib/modules/home/default.nix index baac35a..e73da57 100644 --- a/lib/modules/home/default.nix +++ b/lib/modules/home/default.nix @@ -34,6 +34,8 @@ in */ ]; + programs.zellij.enable = true; + programs.bat = { enable = true; config = { @@ -206,11 +208,20 @@ in desktop = { config, lib, ... }: { - config = lib.mkIf config.lyte.desktop { - imports = with homeManagerModules; [ - firefox - ghostty - ]; + imports = with homeManagerModules; [ + firefox + ghostty + ]; + options = { + lyte = { + desktop = { + enable = lib.mkEnableOption "Enable my default desktop configuration and applications"; + }; + }; + }; + config = lib.mkIf config.lyte.desktop.enable { + programs.firefox.enable = true; + programs.ghostty.enable = true; }; }; @@ -1247,521 +1258,527 @@ in ... }: { - home.packages = with pkgs; [ - ghostty - ]; + # options = { + # }; + config = lib.mkIf config.programs.ghostty.enable { + home.packages = with pkgs; [ + ghostty + ]; - home.file."${config.xdg.configHome}/ghostty" = { - source = config.lib.file.mkOutOfStoreSymlink /etc/nix/flake/modules/home-manager/ghostty; + home.file."${config.xdg.configHome}/ghostty" = { + source = config.lib.file.mkOutOfStoreSymlink /etc/nix/flake/modules/home-manager/ghostty; + }; }; }; zellij = - { lib, ... }: + { config, lib, ... }: { - # zellij does not support modern terminal keyboard input: - # https://github.com/zellij-org/zellij/issues/735 - programs.zellij = { - enable = true; - # This causes fish to start zellij immediately - # enableFishIntegration = true; + config = lib.mkIf config.programs.zellij.enable { + # zellij does not support modern terminal keyboard input: + # https://github.com/zellij-org/zellij/issues/735 + programs.zellij = { + # enable = true; + # This causes fish to start zellij immediately + # enableFishIntegration = true; - # uses home manager's toKDL generator - settings = { - pane_frames = false; - simplified_ui = true; - default_mode = "locked"; - mouse_mode = true; - copy_clipboard = "primary"; - copy_on_select = true; - mirror_session = false; + # uses home manager's toKDL generator + settings = { + pane_frames = false; + simplified_ui = true; + default_mode = "locked"; + mouse_mode = true; + copy_clipboard = "primary"; + copy_on_select = true; + mirror_session = false; - # keybinds = with builtins; let - # binder = bind: let - # keys = elemAt bind 0; - # action = elemAt bind 1; - # argKeys = map (k: "\"${k}\"") (lib.lists.flatten [keys]); - # in { - # name = "bind ${concatStringsSep " " argKeys}"; - # value = action; - # }; - # layer = binds: (listToAttrs (map binder binds)); - # in { - # # _props = {clear-defaults = true;}; - # normal = {}; - # locked = layer [ - # [["Ctrl g"] {SwitchToMode = "Normal";}] - # [["Ctrl L"] {NewPane = "Right";}] - # [["Ctrl Z"] {NewPane = "Right";}] - # [["Ctrl J"] {NewPane = "Down";}] - # [["Ctrl h"] {MoveFocus = "Left";}] - # [["Ctrl l"] {MoveFocus = "Right";}] - # [["Ctrl j"] {MoveFocus = "Down";}] - # [["Ctrl k"] {MoveFocus = "Up";}] - # ]; - # resize = layer [ - # [["Ctrl n"] {SwitchToMode = "Normal";}] - # [["h" "Left"] {Resize = "Increase Left";}] - # [["j" "Down"] {Resize = "Increase Down";}] - # [["k" "Up"] {Resize = "Increase Up";}] - # [["l" "Right"] {Resize = "Increase Right";}] - # [["H"] {Resize = "Decrease Left";}] - # [["J"] {Resize = "Decrease Down";}] - # [["K"] {Resize = "Decrease Up";}] - # [["L"] {Resize = "Decrease Right";}] - # [["=" "+"] {Resize = "Increase";}] - # [["-"] {Resize = "Decrease";}] - # ]; - # pane = layer [ - # [["Ctrl p"] {SwitchToMode = "Normal";}] - # [["h" "Left"] {MoveFocus = "Left";}] - # [["l" "Right"] {MoveFocus = "Right";}] - # [["j" "Down"] {MoveFocus = "Down";}] - # [["k" "Up"] {MoveFocus = "Up";}] - # [["p"] {SwitchFocus = [];}] - # [ - # ["n"] - # { - # NewPane = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["d"] - # { - # NewPane = "Down"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["r"] - # { - # NewPane = "Right"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["x"] - # { - # CloseFocus = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["f"] - # { - # ToggleFocusFullscreen = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["z"] - # { - # TogglePaneFrames = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["w"] - # { - # ToggleFloatingPanes = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["e"] - # { - # TogglePaneEmbedOrFloating = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["c"] - # { - # SwitchToMode = "RenamePane"; - # PaneNameInput = 0; - # } - # ] - # ]; - # move = layer [ - # [["Ctrl h"] {SwitchToMode = "Normal";}] - # [["n" "Tab"] {MovePane = [];}] - # [["p"] {MovePaneBackwards = [];}] - # [["h" "Left"] {MovePane = "Left";}] - # [["j" "Down"] {MovePane = "Down";}] - # [["k" "Up"] {MovePane = "Up";}] - # [["l" "Right"] {MovePane = "Right";}] - # ]; - # tab = layer [ - # [["Ctrl t"] {SwitchToMode = "Normal";}] - # [ - # ["r"] - # { - # SwitchToMode = "RenameTab"; - # TabNameInput = 0; - # } - # ] - # [["h" "Left" "Up" "k"] {GoToPreviousTab = [];}] - # [["l" "Right" "Down" "j"] {GoToNextTab = [];}] - # [ - # ["n"] - # { - # NewTab = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["x"] - # { - # CloseTab = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["s"] - # { - # ToggleActiveSyncTab = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["1"] - # { - # GoToTab = 1; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["2"] - # { - # GoToTab = 2; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["3"] - # { - # GoToTab = 3; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["4"] - # { - # GoToTab = 4; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["5"] - # { - # GoToTab = 5; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["6"] - # { - # GoToTab = 6; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["7"] - # { - # GoToTab = 7; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["8"] - # { - # GoToTab = 8; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["9"] - # { - # GoToTab = 9; - # SwitchToMode = "Normal"; - # } - # ] - # [["Tab"] {ToggleTab = [];}] - # ]; - # scroll = layer [ - # [["Ctrl s"] {SwitchToMode = "Normal";}] - # [ - # ["e"] - # { - # EditScrollback = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["s"] - # { - # SwitchToMode = "EnterSearch"; - # SearchInput = 0; - # } - # ] - # [ - # ["Ctrl c"] - # { - # ScrollToBottom = []; - # SwitchToMode = "Normal"; - # } - # ] - # [["j" "Down"] {ScrollDown = [];}] - # [["k" "Up"] {ScrollUp = [];}] - # [["Ctrl f" "PageDown" "Right" "l"] {PageScrollDown = [];}] - # [["Ctrl b" "PageUp" "Left" "h"] {PageScrollUp = [];}] - # [["d"] {HalfPageScrollDown = [];}] - # [["u"] {HalfPageScrollUp = [];}] - # # uncomment this and adjust key if using copy_on_select=false - # # bind "Alt c" { Copy; } - # ]; - # search = layer [ - # [["Ctrl s"] {SwitchToMode = "Normal";}] - # [ - # ["Ctrl c"] - # { - # ScrollToBottom = []; - # SwitchToMode = "Normal"; - # } - # ] - # [["j" "Down"] {ScrollDown = [];}] - # [["k" "Up"] {ScrollUp = [];}] - # [["Ctrl f" "PageDown" "Right" "l"] {PageScrollDown = [];}] - # [["Ctrl b" "PageUp" "Left" "h"] {PageScrollUp = [];}] - # [["d"] {HalfPageScrollDown = [];}] - # [["u"] {HalfPageScrollUp = [];}] - # [["n"] {Search = "down";}] - # [["p"] {Search = "up";}] - # [["c"] {SearchToggleOption = "CaseSensitivity";}] - # [["w"] {SearchToggleOption = "Wrap";}] - # [["o"] {SearchToggleOption = "WholeWord";}] - # ]; - # entersearch = layer [ - # [["Ctrl c" "Esc"] {SwitchToMode = "Scroll";}] - # [["Enter"] {SwitchToMode = "Search";}] - # ]; - # renametab = layer [ - # [["Ctrl c"] {SwitchToMode = "Normal";}] - # [ - # ["Esc"] - # { - # UndoRenameTab = []; - # SwitchToMode = "Tab"; - # } - # ] - # ]; - # renamepane = layer [ - # [["Ctrl c"] {SwitchToMode = "Normal";}] - # [ - # ["Esc"] - # { - # UndoRenamePane = []; - # SwitchToMode = "Pane"; - # } - # ] - # ]; - # session = layer [ - # [["Ctrl o"] {SwitchToMode = "Normal";}] - # [["Ctrl s"] {SwitchToMode = "Scroll";}] - # [["d"] {Detach = [];}] - # ]; - # tmux = layer [ - # [["["] {SwitchToMode = "Scroll";}] - # [ - # ["Ctrl b"] - # { - # Write = 2; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["\\\""] - # { - # NewPane = "Down"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["%"] - # { - # NewPane = "Right"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["z"] - # { - # ToggleFocusFullscreen = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["c"] - # { - # NewTab = []; - # SwitchToMode = "Normal"; - # } - # ] - # [[","] {SwitchToMode = "RenameTab";}] - # [ - # ["p"] - # { - # GoToPreviousTab = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["n"] - # { - # GoToNextTab = []; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["Left"] - # { - # MoveFocus = "Left"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["Right"] - # { - # MoveFocus = "Right"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["Down"] - # { - # MoveFocus = "Down"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["Up"] - # { - # MoveFocus = "Up"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["h"] - # { - # MoveFocus = "Left"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["l"] - # { - # MoveFocus = "Right"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["j"] - # { - # MoveFocus = "Down"; - # SwitchToMode = "Normal"; - # } - # ] - # [ - # ["k"] - # { - # MoveFocus = "Up"; - # SwitchToMode = "Normal"; - # } - # ] - # [["o"] {FocusNextPane = [];}] - # [["d"] {Detach = [];}] - # [["Space"] {NextSwapLayout = [];}] - # [ - # ["x"] - # { - # CloseFocus = []; - # SwitchToMode = "Normal"; - # } - # ] - # ]; - # "shared_except \"locked\"" = layer [ - # [["Ctrl g"] {SwitchToMode = "Locked";}] - # [["Ctrl q"] {Quit = [];}] - # [["Alt n"] {NewPane = [];}] - # [["Alt h" "Alt Left"] {MoveFocusOrTab = "Left";}] - # [["Alt l" "Alt Right"] {MoveFocusOrTab = "Right";}] - # [["Alt j" "Alt Down"] {MoveFocus = "Down";}] - # [["Alt k" "Alt Up"] {MoveFocus = "Up";}] - # [["Alt ]" "Alt +"] {Resize = "Increase";}] - # [["Alt -"] {Resize = "Decrease";}] - # [["Alt ["] {PreviousSwapLayout = [];}] - # [["Alt ]"] {NextSwapLayout = [];}] - # ]; - # "shared_except \"normal\" \"locked\"" = layer [ - # [["Enter" "Esc"] {SwitchToMode = "Normal";}] - # ]; - # "shared_except \"pane\" \"locked\"" = layer [ - # [["Ctrl p"] {SwitchToMode = "Pane";}] - # ]; - # "shared_except \"resize\" \"locked\"" = layer [ - # [["Ctrl n"] {SwitchToMode = "Resize";}] - # ]; - # "shared_except \"scroll\" \"locked\"" = layer [ - # [["Ctrl s"] {SwitchToMode = "Scroll";}] - # ]; - # "shared_except \"session\" \"locked\"" = layer [ - # [["Ctrl o"] {SwitchToMode = "Session";}] - # ]; - # "shared_except \"tab\" \"locked\"" = layer [ - # [["Ctrl t"] {SwitchToMode = "Tab";}] - # ]; - # "shared_except \"move\" \"locked\"" = layer [ - # [["Ctrl h"] {SwitchToMode = "Move";}] - # ]; - # "shared_except \"tmux\" \"locked\"" = layer [ - # [["Ctrl b"] {SwitchToMode = "Tmux";}] - # ]; - # }; + # keybinds = with builtins; let + # binder = bind: let + # keys = elemAt bind 0; + # action = elemAt bind 1; + # argKeys = map (k: "\"${k}\"") (lib.lists.flatten [keys]); + # in { + # name = "bind ${concatStringsSep " " argKeys}"; + # value = action; + # }; + # layer = binds: (listToAttrs (map binder binds)); + # in { + # # _props = {clear-defaults = true;}; + # normal = {}; + # locked = layer [ + # [["Ctrl g"] {SwitchToMode = "Normal";}] + # [["Ctrl L"] {NewPane = "Right";}] + # [["Ctrl Z"] {NewPane = "Right";}] + # [["Ctrl J"] {NewPane = "Down";}] + # [["Ctrl h"] {MoveFocus = "Left";}] + # [["Ctrl l"] {MoveFocus = "Right";}] + # [["Ctrl j"] {MoveFocus = "Down";}] + # [["Ctrl k"] {MoveFocus = "Up";}] + # ]; + # resize = layer [ + # [["Ctrl n"] {SwitchToMode = "Normal";}] + # [["h" "Left"] {Resize = "Increase Left";}] + # [["j" "Down"] {Resize = "Increase Down";}] + # [["k" "Up"] {Resize = "Increase Up";}] + # [["l" "Right"] {Resize = "Increase Right";}] + # [["H"] {Resize = "Decrease Left";}] + # [["J"] {Resize = "Decrease Down";}] + # [["K"] {Resize = "Decrease Up";}] + # [["L"] {Resize = "Decrease Right";}] + # [["=" "+"] {Resize = "Increase";}] + # [["-"] {Resize = "Decrease";}] + # ]; + # pane = layer [ + # [["Ctrl p"] {SwitchToMode = "Normal";}] + # [["h" "Left"] {MoveFocus = "Left";}] + # [["l" "Right"] {MoveFocus = "Right";}] + # [["j" "Down"] {MoveFocus = "Down";}] + # [["k" "Up"] {MoveFocus = "Up";}] + # [["p"] {SwitchFocus = [];}] + # [ + # ["n"] + # { + # NewPane = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["d"] + # { + # NewPane = "Down"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["r"] + # { + # NewPane = "Right"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["x"] + # { + # CloseFocus = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["f"] + # { + # ToggleFocusFullscreen = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["z"] + # { + # TogglePaneFrames = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["w"] + # { + # ToggleFloatingPanes = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["e"] + # { + # TogglePaneEmbedOrFloating = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["c"] + # { + # SwitchToMode = "RenamePane"; + # PaneNameInput = 0; + # } + # ] + # ]; + # move = layer [ + # [["Ctrl h"] {SwitchToMode = "Normal";}] + # [["n" "Tab"] {MovePane = [];}] + # [["p"] {MovePaneBackwards = [];}] + # [["h" "Left"] {MovePane = "Left";}] + # [["j" "Down"] {MovePane = "Down";}] + # [["k" "Up"] {MovePane = "Up";}] + # [["l" "Right"] {MovePane = "Right";}] + # ]; + # tab = layer [ + # [["Ctrl t"] {SwitchToMode = "Normal";}] + # [ + # ["r"] + # { + # SwitchToMode = "RenameTab"; + # TabNameInput = 0; + # } + # ] + # [["h" "Left" "Up" "k"] {GoToPreviousTab = [];}] + # [["l" "Right" "Down" "j"] {GoToNextTab = [];}] + # [ + # ["n"] + # { + # NewTab = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["x"] + # { + # CloseTab = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["s"] + # { + # ToggleActiveSyncTab = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["1"] + # { + # GoToTab = 1; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["2"] + # { + # GoToTab = 2; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["3"] + # { + # GoToTab = 3; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["4"] + # { + # GoToTab = 4; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["5"] + # { + # GoToTab = 5; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["6"] + # { + # GoToTab = 6; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["7"] + # { + # GoToTab = 7; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["8"] + # { + # GoToTab = 8; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["9"] + # { + # GoToTab = 9; + # SwitchToMode = "Normal"; + # } + # ] + # [["Tab"] {ToggleTab = [];}] + # ]; + # scroll = layer [ + # [["Ctrl s"] {SwitchToMode = "Normal";}] + # [ + # ["e"] + # { + # EditScrollback = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["s"] + # { + # SwitchToMode = "EnterSearch"; + # SearchInput = 0; + # } + # ] + # [ + # ["Ctrl c"] + # { + # ScrollToBottom = []; + # SwitchToMode = "Normal"; + # } + # ] + # [["j" "Down"] {ScrollDown = [];}] + # [["k" "Up"] {ScrollUp = [];}] + # [["Ctrl f" "PageDown" "Right" "l"] {PageScrollDown = [];}] + # [["Ctrl b" "PageUp" "Left" "h"] {PageScrollUp = [];}] + # [["d"] {HalfPageScrollDown = [];}] + # [["u"] {HalfPageScrollUp = [];}] + # # uncomment this and adjust key if using copy_on_select=false + # # bind "Alt c" { Copy; } + # ]; + # search = layer [ + # [["Ctrl s"] {SwitchToMode = "Normal";}] + # [ + # ["Ctrl c"] + # { + # ScrollToBottom = []; + # SwitchToMode = "Normal"; + # } + # ] + # [["j" "Down"] {ScrollDown = [];}] + # [["k" "Up"] {ScrollUp = [];}] + # [["Ctrl f" "PageDown" "Right" "l"] {PageScrollDown = [];}] + # [["Ctrl b" "PageUp" "Left" "h"] {PageScrollUp = [];}] + # [["d"] {HalfPageScrollDown = [];}] + # [["u"] {HalfPageScrollUp = [];}] + # [["n"] {Search = "down";}] + # [["p"] {Search = "up";}] + # [["c"] {SearchToggleOption = "CaseSensitivity";}] + # [["w"] {SearchToggleOption = "Wrap";}] + # [["o"] {SearchToggleOption = "WholeWord";}] + # ]; + # entersearch = layer [ + # [["Ctrl c" "Esc"] {SwitchToMode = "Scroll";}] + # [["Enter"] {SwitchToMode = "Search";}] + # ]; + # renametab = layer [ + # [["Ctrl c"] {SwitchToMode = "Normal";}] + # [ + # ["Esc"] + # { + # UndoRenameTab = []; + # SwitchToMode = "Tab"; + # } + # ] + # ]; + # renamepane = layer [ + # [["Ctrl c"] {SwitchToMode = "Normal";}] + # [ + # ["Esc"] + # { + # UndoRenamePane = []; + # SwitchToMode = "Pane"; + # } + # ] + # ]; + # session = layer [ + # [["Ctrl o"] {SwitchToMode = "Normal";}] + # [["Ctrl s"] {SwitchToMode = "Scroll";}] + # [["d"] {Detach = [];}] + # ]; + # tmux = layer [ + # [["["] {SwitchToMode = "Scroll";}] + # [ + # ["Ctrl b"] + # { + # Write = 2; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["\\\""] + # { + # NewPane = "Down"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["%"] + # { + # NewPane = "Right"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["z"] + # { + # ToggleFocusFullscreen = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["c"] + # { + # NewTab = []; + # SwitchToMode = "Normal"; + # } + # ] + # [[","] {SwitchToMode = "RenameTab";}] + # [ + # ["p"] + # { + # GoToPreviousTab = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["n"] + # { + # GoToNextTab = []; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["Left"] + # { + # MoveFocus = "Left"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["Right"] + # { + # MoveFocus = "Right"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["Down"] + # { + # MoveFocus = "Down"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["Up"] + # { + # MoveFocus = "Up"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["h"] + # { + # MoveFocus = "Left"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["l"] + # { + # MoveFocus = "Right"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["j"] + # { + # MoveFocus = "Down"; + # SwitchToMode = "Normal"; + # } + # ] + # [ + # ["k"] + # { + # MoveFocus = "Up"; + # SwitchToMode = "Normal"; + # } + # ] + # [["o"] {FocusNextPane = [];}] + # [["d"] {Detach = [];}] + # [["Space"] {NextSwapLayout = [];}] + # [ + # ["x"] + # { + # CloseFocus = []; + # SwitchToMode = "Normal"; + # } + # ] + # ]; + # "shared_except \"locked\"" = layer [ + # [["Ctrl g"] {SwitchToMode = "Locked";}] + # [["Ctrl q"] {Quit = [];}] + # [["Alt n"] {NewPane = [];}] + # [["Alt h" "Alt Left"] {MoveFocusOrTab = "Left";}] + # [["Alt l" "Alt Right"] {MoveFocusOrTab = "Right";}] + # [["Alt j" "Alt Down"] {MoveFocus = "Down";}] + # [["Alt k" "Alt Up"] {MoveFocus = "Up";}] + # [["Alt ]" "Alt +"] {Resize = "Increase";}] + # [["Alt -"] {Resize = "Decrease";}] + # [["Alt ["] {PreviousSwapLayout = [];}] + # [["Alt ]"] {NextSwapLayout = [];}] + # ]; + # "shared_except \"normal\" \"locked\"" = layer [ + # [["Enter" "Esc"] {SwitchToMode = "Normal";}] + # ]; + # "shared_except \"pane\" \"locked\"" = layer [ + # [["Ctrl p"] {SwitchToMode = "Pane";}] + # ]; + # "shared_except \"resize\" \"locked\"" = layer [ + # [["Ctrl n"] {SwitchToMode = "Resize";}] + # ]; + # "shared_except \"scroll\" \"locked\"" = layer [ + # [["Ctrl s"] {SwitchToMode = "Scroll";}] + # ]; + # "shared_except \"session\" \"locked\"" = layer [ + # [["Ctrl o"] {SwitchToMode = "Session";}] + # ]; + # "shared_except \"tab\" \"locked\"" = layer [ + # [["Ctrl t"] {SwitchToMode = "Tab";}] + # ]; + # "shared_except \"move\" \"locked\"" = layer [ + # [["Ctrl h"] {SwitchToMode = "Move";}] + # ]; + # "shared_except \"tmux\" \"locked\"" = layer [ + # [["Ctrl b"] {SwitchToMode = "Tmux";}] + # ]; + # }; - # default_layout = "compact"; - theme = "match"; + # default_layout = "compact"; + theme = "match"; - themes = { - match = with style.colors.withHashPrefix; { - fg = fg; - bg = bg; + themes = { + match = with style.colors.withHashPrefix; { + fg = fg; + bg = bg; - black = bg; - white = fg; + black = bg; + white = fg; - red = red; - green = green; - yellow = yellow; - blue = blue; - magenta = purple; - cyan = blue; - orange = orange; + red = red; + green = green; + yellow = yellow; + blue = blue; + magenta = purple; + cyan = blue; + orange = orange; + }; }; - }; - # TODO: port config + # TODO: port config - ui = { - pane_frames = { - rounded_corners = true; - hide_session_name = true; + ui = { + pane_frames = { + rounded_corners = true; + hide_session_name = true; + }; }; }; }; - }; - home.shellAliases = { - z = "zellij"; + home.shellAliases = { + z = "zellij"; + }; }; }; diff --git a/lib/modules/home/firefox.nix b/lib/modules/home/firefox.nix index a2bcf51..fa316d9 100644 --- a/lib/modules/home/firefox.nix +++ b/lib/modules/home/firefox.nix @@ -1,61 +1,69 @@ -{ pkgs, ... }: { - home = { - sessionVariables = { - MOZ_ENABLE_WAYLAND = "1"; + lib, + config, + pkgs, + ... +}: +{ + config = lib.mkIf config.programs.firefox.enable { + home = { + sessionVariables = { + MOZ_ENABLE_WAYLAND = "1"; + }; }; - }; - programs.firefox = { - enable = true; - profileVersion = null; - package = pkgs.firefox.override { - nativeMessagingHosts = with pkgs; [ bitwarden ]; - }; - /* - TODO: this should be able to work on macos, no? - TODO: enable color scheme/theme by default - */ - profiles = { - daniel = { - id = 0; - settings = { - "alerts.useSystemBackend" = true; - "widget.gtk.rounded-bottom-corners.enabled" = true; - "general.smoothScroll" = true; - "browser.zoom.siteSpecific" = true; - }; + programs.firefox = { + # enable = true; + profileVersion = null; + package = pkgs.firefox.override { + nativeMessagingHosts = with pkgs; [ bitwarden ]; + }; + /* + TODO: this should be able to work on macos, no? + TODO: enable color scheme/theme by default + TODO: extensions and their config/sync? + */ + profiles = { + daniel = { + id = 0; + settings = { + "alerts.useSystemBackend" = true; + "widget.gtk.rounded-bottom-corners.enabled" = true; + "general.smoothScroll" = true; + "browser.zoom.siteSpecific" = true; + }; - extraConfig = '' - user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); - // user_pref("full-screen-api.ignore-widgets", true); - user_pref("media.ffmpeg.vaapi.enabled", true); - user_pref("media.rdd-vpx.enabled", true); - ''; - - userChrome = '' - #TabsToolbar { - visibility: collapse; - } - - #main-window[tabsintitlebar="true"]:not([extradragspace="true"]) #TabsToolbar>.toolbar-items { - opacity: 0; - pointer-events: none; - } - - #main-window:not([tabsintitlebar="true"]) #TabsToolbar { - visibility: collapse !important; - } - - #webrtcIndicator { - display: none; - } - ''; - - /* - userContent = '' + extraConfig = '' + user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); + // user_pref("full-screen-api.ignore-widgets", true); + user_pref("media.ffmpeg.vaapi.enabled", true); + user_pref("media.rdd-vpx.enabled", true); ''; - */ + + userChrome = '' + #TabsToolbar { + visibility: collapse; + } + + #main-window[tabsintitlebar="true"]:not([extradragspace="true"]) #TabsToolbar>.toolbar-items { + opacity: 0; + pointer-events: none; + } + + #main-window:not([tabsintitlebar="true"]) #TabsToolbar { + visibility: collapse !important; + } + + #webrtcIndicator { + display: none; + } + ''; + + /* + userContent = '' + ''; + */ + }; }; }; }; diff --git a/lib/modules/nixos/default.nix b/lib/modules/nixos/default.nix index e792a5a..2951afc 100644 --- a/lib/modules/nixos/default.nix +++ b/lib/modules/nixos/default.nix @@ -65,11 +65,6 @@ in # TODO: modularize { pkgs, ... }: { - imports = with nixosModules; [ - family-users - wifi - ]; - environment.systemPackages = with pkgs; [ acpi ]; @@ -274,7 +269,7 @@ in { pkgs, ... }: { imports = with nixosModules; [ - # lutris # use the flatpak + lutris # TODO: use the flatpak? steam # TODO: use the flatpak? ]; @@ -508,7 +503,7 @@ in }; }; config = lib.mkIf cfg.enable { - services.xserver.desktopManager.gnome.enable = true; + # services.xserver.desktopManager.gnome.enable = true; xdg.portal.enable = true; diff --git a/packages/hosts/default.nix b/packages/hosts/default.nix index 32b98f0..9420276 100644 --- a/packages/hosts/default.nix +++ b/packages/hosts/default.nix @@ -50,7 +50,6 @@ let config = { lyte.shell.enable = lib.mkDefault true; - lyte.desktop.enable = lib.mkDefault false; nixpkgs = { config.allowUnfree = lib.mkDefault true; @@ -71,22 +70,23 @@ let config.lyte = config.lyte; }; + sharedModules = with self.outputs.homeManagerModules; [ + common + linux + ]; + users = { - # root = { - # home.stateVersion = lib.mkDefault config.system.stateVersion; - # imports = with self.outputs.homeManagerModules; [ - # common - # linux - # ]; - # }; - # daniel = { - # home.stateVersion = lib.mkDefault config.system.stateVersion; - # imports = with self.outputs.homeManagerModules; [ - # common - # linux - # daniel - # ]; - # }; + root = { + home.stateVersion = lib.mkDefault config.system.stateVersion; + imports = with self.outputs.homeManagerModules; [ + ]; + }; + daniel = { + home.stateVersion = lib.mkDefault config.system.stateVersion; + imports = with self.outputs.homeManagerModules; [ + daniel + ]; + }; }; }; diff --git a/packages/hosts/dragon.nix b/packages/hosts/dragon.nix index c5542c2..6c9ccc6 100644 --- a/packages/hosts/dragon.nix +++ b/packages/hosts/dragon.nix @@ -6,11 +6,9 @@ ... }: { - # nix boilerplate system.stateVersion = "24.11"; networking.hostName = "dragon"; - # kernel and bootloader configuration boot = { kernelPackages = pkgs.linuxPackages_latest; loader.efi.canTouchEfiVariables = true; @@ -25,7 +23,6 @@ supportedFilesystems = [ "ntfs" ]; }; - # hardware configuration imports = with hardware; [ (diskoConfigurations.unencrypted { disk = "/dev/nvme0n1"; }) common-cpu-amd @@ -36,8 +33,6 @@ networking.wifi.enable = true; powerManagement.cpuFreqGovernor = "performance"; - # application and services configuration - lyte.desktop.enable = true; sops = {