Compare commits
8 Commits
master
...
home-assis
Author | SHA1 | Date | |
---|---|---|---|
7081c58bd1 | |||
0fbd897b60 | |||
76ff89d7f6 | |||
2544ef3d94 | |||
a7d2db9c84 | |||
db244dc7ea | |||
734338f51e | |||
90931e37ff |
@ -1,254 +0,0 @@
|
|||||||
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"
|
|
90
flake.lock
generated
90
flake.lock
generated
@ -7,11 +7,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749744770,
|
"lastModified": 1748044287,
|
||||||
"narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=",
|
"narHash": "sha256-9bJzyUX5+HXYmI60WMGYXXDdhGbSh1Le6yBM4og3K7E=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb",
|
"rev": "2456ff5c95edfc3b197cb012b947012faed77591",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -24,11 +24,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1733328505,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -59,16 +59,17 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"zig": "zig",
|
"zig": "zig",
|
||||||
"zon2nix": "zon2nix"
|
"zon2nix": "zon2nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751123364,
|
"lastModified": 1748207486,
|
||||||
"narHash": "sha256-Nb3pxs1onnbdhhnoNc+IfHzrW9dM+UbEdjK0AguR2J4=",
|
"narHash": "sha256-4kR7VyauWpNMrBePHMM8yzQvUzHHGRVkQpJ3DyoKcH0=",
|
||||||
"owner": "ghostty-org",
|
"owner": "ghostty-org",
|
||||||
"repo": "ghostty",
|
"repo": "ghostty",
|
||||||
"rev": "f6d1c274b9c0e095dc0a1b411dec7410ad779bf5",
|
"rev": "3f6c02b49e08aed51e4be85d87b79b9dbea34a85",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -84,11 +85,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750792728,
|
"lastModified": 1747556831,
|
||||||
"narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=",
|
"narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "366f00797b1efb70f2882d3da485e3c10fd3d557",
|
"rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -116,24 +117,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748189127,
|
"lastModified": 1747953325,
|
||||||
"narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
|
"narHash": "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ=",
|
||||||
"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",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a676066377a2fe7457369dd37c31fd2263b662f4",
|
"rev": "55d1f923c480dadce40f5231feb472e81b0bab48",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -143,13 +131,45 @@
|
|||||||
"type": "github"
|
"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": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"ghostty": "ghostty",
|
"ghostty": "ghostty",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
@ -178,15 +198,15 @@
|
|||||||
],
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"ghostty",
|
"ghostty",
|
||||||
"nixpkgs"
|
"nixpkgs-stable"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748261582,
|
"lastModified": 1741825901,
|
||||||
"narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
|
"narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=",
|
||||||
"owner": "mitchellh",
|
"owner": "mitchellh",
|
||||||
"repo": "zig-overlay",
|
"repo": "zig-overlay",
|
||||||
"rev": "aafb1b093fb838f7a02613b719e85ec912914221",
|
"rev": "0b14285e283f5a747f372fb2931835dd937c4383",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -203,7 +223,7 @@
|
|||||||
],
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"ghostty",
|
"ghostty",
|
||||||
"nixpkgs"
|
"nixpkgs-unstable"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs;
|
home-manager.extraSpecialArgs = extraSpecialArgs // { role = "devel"; };
|
||||||
home-manager.users.${userName} = import ./home;
|
home-manager.users.${userName} = import ./home;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@ -70,7 +70,7 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs;
|
home-manager.extraSpecialArgs = extraSpecialArgs // { role = "devel"; };
|
||||||
home-manager.users.${userName}.imports = [
|
home-manager.users.${userName}.imports = [
|
||||||
./home
|
./home
|
||||||
];
|
];
|
||||||
@ -94,7 +94,7 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs;
|
home-manager.extraSpecialArgs = extraSpecialArgs // { role = "server"; };
|
||||||
home-manager.users.${userName}.imports = [
|
home-manager.users.${userName}.imports = [
|
||||||
./home
|
./home
|
||||||
];
|
];
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
role,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
@ -9,7 +10,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
programs.chromium = {
|
programs.chromium = {
|
||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux && role == "devel";
|
||||||
package = pkgs.ungoogled-chromium.override {
|
package = pkgs.ungoogled-chromium.override {
|
||||||
enableWideVine = true;
|
enableWideVine = true;
|
||||||
commandLineArgs = [
|
commandLineArgs = [
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
userName,
|
userName,
|
||||||
userEmail,
|
userEmail,
|
||||||
ghostty,
|
ghostty,
|
||||||
|
role,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
# Have a file sturcture that holds all the configuration files that can't be configured by Nix
|
# Have a file sturcture that holds all the configuration files that can't be configured by Nix
|
||||||
@ -13,7 +14,7 @@
|
|||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
# Import sub modules
|
# Import sub modules
|
||||||
imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty;}) [
|
imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty role;}) [
|
||||||
./atuin.nix
|
./atuin.nix
|
||||||
./shell.nix
|
./shell.nix
|
||||||
./packages
|
./packages
|
||||||
@ -25,7 +26,6 @@ in {
|
|||||||
./sway.nix
|
./sway.nix
|
||||||
./terminal.nix
|
./terminal.nix
|
||||||
./browser.nix
|
./browser.nix
|
||||||
./zellij.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager needs a bit of information about you and the
|
# Home Manager needs a bit of information about you and the
|
||||||
@ -40,7 +40,6 @@ in {
|
|||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
XDG_CURRENT_DESKTOP = "sway";
|
XDG_CURRENT_DESKTOP = "sway";
|
||||||
XDG_SESSION_TYPE = "wayland";
|
XDG_SESSION_TYPE = "wayland";
|
||||||
XDG_SESSION_DESKTOP="sway";
|
|
||||||
XDG_CONFIG_HOME = "$HOME/.config";
|
XDG_CONFIG_HOME = "$HOME/.config";
|
||||||
XDG_CACHE_HOME = "$HOME/.cache";
|
XDG_CACHE_HOME = "$HOME/.cache";
|
||||||
XDG_DATA_HOME = "$HOME/.local/share";
|
XDG_DATA_HOME = "$HOME/.local/share";
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
yazi # terminal file manager
|
nnn # terminal file manager
|
||||||
|
|
||||||
# archives
|
# archives
|
||||||
zip
|
zip
|
||||||
@ -13,6 +13,7 @@
|
|||||||
p7zip
|
p7zip
|
||||||
|
|
||||||
# utils
|
# utils
|
||||||
|
zellij
|
||||||
tmux
|
tmux
|
||||||
bat
|
bat
|
||||||
lazygit
|
lazygit
|
||||||
|
@ -11,8 +11,6 @@
|
|||||||
mcrcon
|
mcrcon
|
||||||
xfce.thunar
|
xfce.thunar
|
||||||
pavucontrol
|
pavucontrol
|
||||||
godot
|
|
||||||
aseprite
|
|
||||||
# ungoogled-chromium
|
# ungoogled-chromium
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
role,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
isDevel = pkgs.stdenv.isLinux && role == "devel";
|
||||||
dirs = {
|
dirs = {
|
||||||
defaults = ../defaults;
|
defaults = ../defaults;
|
||||||
};
|
};
|
||||||
@ -16,7 +18,7 @@
|
|||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = pkgs.stdenv.isLinux;
|
enable = isDevel;
|
||||||
extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here
|
extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here
|
||||||
xwayland = true;
|
xwayland = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
@ -29,11 +31,11 @@ in {
|
|||||||
xdg.configFile."sway/config".source = lib.mkForce (dirs.defaults + /sway/config);
|
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/config".source = lib.mkForce (dirs.defaults + /waybar/config);
|
||||||
xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css);
|
xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css);
|
||||||
programs.rofi.enable = pkgs.stdenv.isLinux;
|
programs.rofi.enable = isDevel;
|
||||||
services.mako.enable = pkgs.stdenv.isLinux;
|
services.mako.enable = isDevel;
|
||||||
|
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = pkgs.stdenv.isLinux;
|
enable = isDevel;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
|
|
||||||
package = pkgs.waybar.overrideAttrs (old: {
|
package = pkgs.waybar.overrideAttrs (old: {
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
dirs = {
|
|
||||||
defaults = ../defaults;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs.zellij = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."zellij/config.kdl".source = lib.mkForce (dirs.defaults + /zellij/config.kdl);
|
|
||||||
}
|
|
@ -5,7 +5,6 @@
|
|||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./core.nix
|
./core.nix
|
||||||
./environment.nix
|
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
./users.nix
|
./users.nix
|
||||||
];
|
];
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
{ 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";
|
|
||||||
}
|
|
@ -5,6 +5,10 @@
|
|||||||
hostname,
|
hostname,
|
||||||
...
|
...
|
||||||
} @ args: {
|
} @ args: {
|
||||||
|
imports = [
|
||||||
|
../security/sudo.nix
|
||||||
|
];
|
||||||
|
|
||||||
networking.hostName = hostname;
|
networking.hostName = hostname;
|
||||||
|
|
||||||
# Don't forget to set a password with ‘passwd’!
|
# Don't forget to set a password with ‘passwd’!
|
||||||
@ -23,19 +27,7 @@
|
|||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
security.sudo = {
|
security.sudo.needsPassword = false;
|
||||||
extraRules = [
|
|
||||||
{
|
|
||||||
groups = [ "wheel" ];
|
|
||||||
commands = [
|
|
||||||
{
|
|
||||||
command = "ALL";
|
|
||||||
options = [ "NOPASSWD" "SETENV" ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups.wyatt = {};
|
users.groups.wyatt = {};
|
||||||
|
|
||||||
|
@ -46,21 +46,25 @@ in {
|
|||||||
|
|
||||||
# Install packages to be installed system-wide
|
# Install packages to be installed system-wide
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
vim
|
||||||
|
neovim
|
||||||
|
git
|
||||||
wireguard-tools
|
wireguard-tools
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
playerctl
|
playerctl
|
||||||
light
|
light
|
||||||
brightnessctl
|
brightnessctl
|
||||||
|
firefox
|
||||||
wttrbar
|
wttrbar
|
||||||
cliphist
|
cliphist
|
||||||
xdg-desktop-portal-gtk
|
patchelf
|
||||||
xdg-utils
|
nix-ld
|
||||||
flatpak-xdg-utils
|
|
||||||
desktop-file-utils
|
|
||||||
shared-mime-info
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Set the EDITOR global environment variable to neovim
|
||||||
|
environment.variables.EDITOR = "nvim";
|
||||||
|
|
||||||
# Enable OpenSSH
|
# Enable OpenSSH
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
@ -156,16 +160,15 @@ in {
|
|||||||
xdg = {
|
xdg = {
|
||||||
portal = {
|
portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
wlr.enable = true;
|
||||||
config = {
|
config = {
|
||||||
sway = {
|
|
||||||
default = [ "wlr" "gtk" ];
|
|
||||||
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
|
|
||||||
};
|
|
||||||
common = {
|
common = {
|
||||||
default = [ "gtk" ];
|
default = [
|
||||||
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
|
"wlr"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
xdgOpenUsePortal = true;
|
||||||
extraPortals = with pkgs; [
|
extraPortals = with pkgs; [
|
||||||
xdg-desktop-portal-wlr
|
xdg-desktop-portal-wlr
|
||||||
xdg-desktop-portal-gtk
|
xdg-desktop-portal-gtk
|
||||||
|
@ -27,6 +27,18 @@
|
|||||||
# Set your timezone
|
# Set your timezone
|
||||||
time.timeZone = "America/Detroit";
|
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
|
# Enable OpenSSH
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
@ -75,7 +87,12 @@
|
|||||||
|
|
||||||
# Core networking module (see ../../networking/core.nix)
|
# Core networking module (see ../../networking/core.nix)
|
||||||
network = {
|
network = {
|
||||||
firewall.enable = true;
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
tcpPorts = {
|
||||||
|
allowedPorts = [8123];
|
||||||
|
};
|
||||||
|
};
|
||||||
networkManager.enable = true;
|
networkManager.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -85,7 +102,37 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Add username to groups "wheel" and "video" - more may be added here later
|
# Add username to groups "wheel" and "video" - more may be added here later
|
||||||
users.users.${userName}.extraGroups = ["wheel" "podman" "network"];
|
users.users.${userName} = {
|
||||||
|
extraGroups = ["wheel" "podman" "network"];
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Add Home Assistant service
|
||||||
|
services.home-assistant = {
|
||||||
|
enable = true;
|
||||||
|
extraComponents = [
|
||||||
|
"esphome"
|
||||||
|
"met"
|
||||||
|
"radio_browser"
|
||||||
|
"homeassistant_hardware"
|
||||||
|
"zha"
|
||||||
|
"group"
|
||||||
|
"mikrotik"
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
# Includes dependencies for a basic setup
|
||||||
|
# https://www.home-assistant.io/integrations/default_config/
|
||||||
|
default_config = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo.wheelNeedsPassword = false;
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user