changes: remove zellij from default modules

This commit is contained in:
danny 2025-10-31 14:48:26 +08:00
parent 7fcf26263a
commit d1f25b377f
14 changed files with 131 additions and 38 deletions

15
flake.lock generated
View file

@ -1416,17 +1416,14 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760422027, "lastModified": 1761409875,
"narHash": "sha256-UAuVT+mL9Q6hABWWlRhFfJ51DMrG3L/xdJTT3+FgCjM=", "narHash": "sha256-tTVQsRHO1c/c3rpeHXuYV+HLulv2J3ZLR3c32nSWyas=",
"owner": "dachxy", "path": "/home/danny/projects/nix-mail-server",
"repo": "nix-mail-server", "type": "path"
"rev": "a9df5bb2406f45b1d878f8b5681d8710a5cf40fb",
"type": "github"
}, },
"original": { "original": {
"owner": "dachxy", "path": "/home/danny/projects/nix-mail-server",
"repo": "nix-mail-server", "type": "path"
"type": "github"
} }
}, },
"marks-nvim": { "marks-nvim": {

View file

@ -14,7 +14,6 @@
../user/virtualization.nix ../user/virtualization.nix
../user/vscode.nix ../user/vscode.nix
../user/yazi.nix ../user/yazi.nix
../user/zellij.nix
../user/nvf ../user/nvf
]; ];
} }

View file

@ -2,7 +2,7 @@ let
keyList = [ keyList = [
{ {
key = "<leader><space>"; key = "<leader><space>";
action = "picker.smart()"; action = "picker.files()";
desc = "Smart Find Files"; desc = "Smart Find Files";
} }
{ {

View file

@ -8,6 +8,12 @@
}: }:
let let
md2html = pkgs.callPackage ../scripts/md2html.nix { }; md2html = pkgs.callPackage ../scripts/md2html.nix { };
ghosttyShaders = pkgs.fetchFromGitHub {
owner = "sahaj-b";
repo = "ghostty-cursor-shaders";
rev = "main";
hash = "sha256-ruhEqXnWRCYdX5mRczpY3rj1DTdxyY3BoN9pdlDOKrE=";
};
in in
{ {
programs.btop = { programs.btop = {
@ -24,6 +30,11 @@ in
enableFishIntegration = true; enableFishIntegration = true;
package = inputs.ghostty.packages.${system}.default; package = inputs.ghostty.packages.${system}.default;
settings = { settings = {
custom-shader = [
"${ghosttyShaders}/cursor_sweep.glsl"
"${ghosttyShaders}/ripple_cursor.glsl"
];
unfocused-split-opacity = 0.85; unfocused-split-opacity = 0.85;
desktop-notifications = false; desktop-notifications = false;
background-opacity = 0.4; background-opacity = 0.4;
@ -38,7 +49,11 @@ in
mouse-hide-while-typing = true; mouse-hide-while-typing = true;
keybind = [ "ctrl+shift+zero=toggle_tab_overview" ]; keybind = [
"ctrl+shift+zero=toggle_tab_overview"
"ctrl+shift+e=unbind"
"ctrl+shift+o=unbind"
];
clipboard-read = "allow"; clipboard-read = "allow";
clipboard-write = "allow"; clipboard-write = "allow";

View file

@ -5,7 +5,6 @@
cat = "bat"; cat = "bat";
g = "git"; g = "git";
t = "tmux"; t = "tmux";
zl = "zellij";
# Nixos # Nixos
rebuild = "sudo nixos-rebuild switch --flake /etc/nixos#${hostname}"; rebuild = "sudo nixos-rebuild switch --flake /etc/nixos#${hostname}";

View file

@ -1,34 +1,91 @@
{ {
pkgs, pkgs,
lib,
config, config,
... ...
}: }:
let let
inherit (builtins) fetchurl; inherit (builtins) fetchurl;
inherit (config.lib.stylix) colors; inherit (config.lib.stylix) colors;
inherit (lib) getExe;
zjstatus = fetchurl { zjstatus = fetchurl {
url = "https://github.com/dj95/zjstatus/releases/download/v0.21.1/zjstatus.wasm"; url = "https://github.com/dj95/zjstatus/releases/download/v0.21.1/zjstatus.wasm";
sha256 = "sha256:06mfcijmsmvb2gdzsql6w8axpaxizdc190b93s3nczy212i846fw"; sha256 = "sha256:06mfcijmsmvb2gdzsql6w8axpaxizdc190b93s3nczy212i846fw";
}; };
zellij-switch = fetchurl {
url = "https://github.com/mostafaqanbaryan/zellij-switch/releases/download/0.2.1/zellij-switch.wasm";
sha256 = "sha256:1bi219dh9dfs1h7ifn4g5p8n6ini8ack1bfys5z36wzbzx0pw9gg";
};
zellij-sessionizer-src = fetchurl {
url = "https://raw.githubusercontent.com/dachxy/zellij-sessionizer/refs/heads/main/zellij-sessionizer";
sha256 = "sha256:01az9blb86mc3lxaxnrfcj23jaxhagsbs31qjn6pj5wm1wgb2mrf";
};
zellij-sessionizer = pkgs.writeShellScriptBin "zellij-sessionizer" ''
export PATH="$PATH:${pkgs.fzf}/bin"
export ZELLIJ_SESSIONIZER_SEARCH_PATHS="$HOME/projects $HOME/notes $HOME/expr"
export ZELLIJ_SESSIONIZER_SPECIFIC_PATHS="/etc/nixos"
export ZELLIJ_SESSIONIZER_SWITCH_PLUGIN="file:${zellij-switch}"
bash ${zellij-sessionizer-src}
'';
in in
{ {
home.packages = [
zellij-sessionizer
];
programs.fish.shellAliases = {
al = "zellij";
aa = "zellij a --index 0";
zs = "zellij-sessionizer";
};
programs.zellij = { programs.zellij = {
enable = true; enable = true;
attachExistingSession = true; attachExistingSession = true;
enableFishIntegration = true; enableFishIntegration = true;
enableBashIntegration = true; enableBashIntegration = true;
settings = {
pane_frames = false;
show_startup_tips = false;
session_serialization = false;
default_layout = "default";
};
extraConfig = '' extraConfig = ''
keybinds clear-defaults=true { keybinds clear-defaults=true {
shared {
bind "Ctrl /" { ToggleFloatingPanes; SwitchToMode "Normal"; }
}
normal { normal {
bind "Ctrl n" { SwitchToMode "Resize"; } bind "Ctrl n" { SwitchToMode "Resize"; }
bind "Ctrl p" { SwitchToMode "Pane"; } bind "Ctrl p" { SwitchToMode "Pane"; }
bind "Ctrl [" { SwitchToMode "Scroll"; }
bind "Ctrl m" { SwitchToMode "Move"; } bind "Ctrl m" { SwitchToMode "Move"; }
bind "Ctrl t" { SwitchToMode "Tab"; } bind "Ctrl t" { SwitchToMode "Tab"; }
bind "Ctrl Space" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal"
}
bind "Ctrl f" { Run "${getExe zellij-sessionizer}" {
close_on_exit true
floating true
x "30%"
y "10%"
width "40%"
height "80%"
}; SwitchToMode "locked"; }
bind "Alt Shift h" { GoToPreviousTab; } bind "Alt Shift h" { GoToPreviousTab; }
bind "Alt Shift l" { GoToNextTab; } bind "Alt Shift l" { GoToNextTab; }
bind "Ctrl o" { SwitchToMode "Session"; } bind "Ctrl Shift o" { SwitchToMode "Session"; }
bind "Ctrl /" { ToggleFloatingPanes; SwitchToMode "Normal"; }
bind "Ctrl Shift -" { Run "yazi" { bind "Ctrl Shift -" { Run "yazi" {
floating true floating true
close_on_exit true close_on_exit true
@ -112,7 +169,7 @@ in
bind "Tab" { ToggleTab; } bind "Tab" { ToggleTab; }
} }
scroll { scroll {
bind "Ctrl s" { SwitchToMode "Normal"; } bind "Ctrl [" { SwitchToMode "Normal"; }
bind "e" { EditScrollback; SwitchToMode "Normal"; } bind "e" { EditScrollback; SwitchToMode "Normal"; }
bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; } bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
@ -133,7 +190,7 @@ in
bind "d" { HalfPageScrollDown; } bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; } bind "u" { HalfPageScrollUp; }
bind "n" { Search "down"; } bind "n" { Search "down"; }
bind "p" { Search "up"; } bind "shift n" { Search "up"; }
bind "c" { SearchToggleOption "CaseSensitivity"; } bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "w" { SearchToggleOption "Wrap"; } bind "w" { SearchToggleOption "Wrap"; }
bind "o" { SearchToggleOption "WholeWord"; } bind "o" { SearchToggleOption "WholeWord"; }
@ -211,13 +268,8 @@ in
font "monospace" font "monospace"
} }
''; '';
settings = {
pane_frames = false;
show_startup_tips = false;
default_layout = "compact-top-bar";
};
layouts = { layouts = {
compact-top-bar = { default = {
layout = { layout = {
_children = [ _children = [
{ {

View file

@ -16,6 +16,8 @@ let
optionals optionals
; ;
inherit (helper) capitalize;
stateVersion = "25.05"; stateVersion = "25.05";
cfg = config.systemConf; cfg = config.systemConf;
@ -44,7 +46,13 @@ let
defaultSddmTheme = ( defaultSddmTheme = (
pkgs.sddm-astronaut.override { pkgs.sddm-astronaut.override {
embeddedTheme = "purple_leaves.conf"; embeddedTheme = "purple_leaves";
themeConfig = {
ScreenWidth = "1920";
ScreenHeight = "1080";
Font = "SF Pro Display Bold";
HeaderText = "Welcome, ${capitalize cfg.username}";
};
} }
); );
in in

View file

@ -1,6 +1,5 @@
{ hostname }: { hostname }:
{ {
config,
... ...
}: }:
let let

View file

@ -1,11 +1,7 @@
{ hostname }: { hostname }:
{ {
self,
inputs,
pkgs, pkgs,
config,
helper, helper,
lib,
... ...
}: }:
let let

View file

@ -8,6 +8,7 @@ in
home-manager.users."${username}" = { home-manager.users."${username}" = {
imports = [ imports = [
../../../../home/presets/basic.nix ../../../../home/presets/basic.nix
../../../../home/user/zellij.nix
./expr ./expr
./wm ./wm

View file

@ -2,6 +2,5 @@
{ {
imports = [ imports = [
./helix.nix ./helix.nix
../../../../../home/user/zellij.nix
]; ];
} }

View file

@ -39,7 +39,7 @@ in
base-dn = "ou=people,dc=net,dc=dn"; base-dn = "ou=people,dc=net,dc=dn";
attributes = { attributes = {
name = "uid"; name = "uid";
email = "mail"; email = "mailRoutingAddress";
secret = "userPassword"; secret = "userPassword";
description = [ description = [
"cn" "cn"
@ -48,8 +48,8 @@ in
class = "objectClass"; class = "objectClass";
}; };
filter = { filter = {
name = "(&(objectClass=inetOrgPerson)(|(uid=?)(mail=?)))"; name = "(&(objectClass=inetOrgPerson)(|(uid=?)(mail=?)(mailRoutingAddress=?)))";
email = "(&(objectClass=inetOrgPerson)(mail=?))"; email = "(&(objectClass=inetOrgPerson)(mailRoutingAddress=?))";
}; };
bind = { bind = {
dn = "cn=admin,dc=net,dc=dn"; dn = "cn=admin,dc=net,dc=dn";

View file

@ -1,10 +1,6 @@
{ hostname }: { hostname }:
{ {
pkgs, pkgs,
lib,
inputs,
system,
config,
... ...
}: }:
let let
@ -40,6 +36,12 @@ in
}; };
}; };
services.journald.extraConfig = ''
SystemMaxUse=10G
SystemKeepFree=100M
MaxFileSec=1month
'';
imports = [ imports = [
./common ./common
./home ./home

View file

@ -392,11 +392,21 @@ in
"10.0.0.0/24" "10.0.0.0/24"
"192.168.100.0/24" "192.168.100.0/24"
]; ];
dns.port = 5300;
yaml-settings = { yaml-settings = {
webservice.webserver = true; webservice.webserver = true;
}; };
}; };
dnsdist = {
enable = true;
extraConfig = ''
newServer("127.0.0.1:${toString config.services.pdns-recursor.dns.port}")
addDOHLocal("0.0.0.0:8053", nil, nil, "/", { reusePort = true })
getPool(""):setCache(newPacketCache(65535, {maxTTL=86400, minTTL=0, temporaryFailureTTL=60, staleTTL=60, dontAge=false}))
'';
};
powerdns-admin = { powerdns-admin = {
enable = true; enable = true;
secretKeyFile = config.sops.secrets."powerdns-admin/secret".path; secretKeyFile = config.sops.secrets."powerdns-admin/secret".path;
@ -457,13 +467,29 @@ in
}; };
services.nginx.virtualHosts = { services.nginx.virtualHosts = {
"dns.${config.networking.domain}" = {
enableACME = true;
forceSSL = true;
locations."/dns-query" = {
extraConfig = ''
grpc_pass grpc://127.0.0.1:${toString 8053};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
'';
};
};
"powerdns.${config.networking.domain}" = { "powerdns.${config.networking.domain}" = {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations."/api".proxyPass = "http://127.0.0.1:8081"; locations."/api".proxyPass = "http://127.0.0.1:8081";
locations."/".proxyPass = "http://127.0.0.1:8000"; locations."/".proxyPass = "http://127.0.0.1:8000";
}; };
"uptime.${config.networking.domain}" = { "uptime.${config.networking.domain}" = {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;