changes: remove zellij from default modules
This commit is contained in:
parent
7fcf26263a
commit
d1f25b377f
14 changed files with 131 additions and 38 deletions
15
flake.lock
generated
15
flake.lock
generated
|
|
@ -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": {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -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}";
|
||||||
|
|
|
||||||
|
|
@ -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 = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
{ hostname }:
|
{ hostname }:
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,7 @@
|
||||||
{ hostname }:
|
{ hostname }:
|
||||||
{
|
{
|
||||||
self,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
|
||||||
helper,
|
helper,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,5 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./helix.nix
|
./helix.nix
|
||||||
../../../../../home/user/zellij.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue