Compare commits
No commits in common. "0febca345b5f08b90db44f7bfc4385416a3dc5ef" and "e7aa1e86b25a543a805465d2010baed179bc0ef0" have entirely different histories.
0febca345b
...
e7aa1e86b2
28 changed files with 1662 additions and 467 deletions
119
flake.lock
generated
119
flake.lock
generated
|
|
@ -30,12 +30,12 @@
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774669632,
|
"lastModified": 1772669230,
|
||||||
"narHash": "sha256-OHRHymsM6sX0B7Xjpvf3m49vTgKzJGukJhw/O1O5bj4=",
|
"narHash": "sha256-y5euTOVqJ4YlooZbpi6F/LW9PqZZ+PjNquIses9ODy4=",
|
||||||
"rev": "2edae0b5150c83c07cf7b7e86e937ad956d78197",
|
"rev": "dc4d71b197a9bce053178291da2ead757cdf93bc",
|
||||||
"revCount": 410,
|
"revCount": 406,
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/0.1.410%2Brev-2edae0b5150c83c07cf7b7e86e937ad956d78197/019d3291-0e4f-7484-aaae-6a10dd00f832/source.tar.gz"
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/0.1.406%2Brev-dc4d71b197a9bce053178291da2ead757cdf93bc/019cbb54-8bf8-7fef-8486-009ae169c68d/source.tar.gz?rev=dc4d71b197a9bce053178291da2ead757cdf93bc&revCount=406"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
|
|
@ -45,37 +45,37 @@
|
||||||
"determinate-nixd-aarch64-darwin": {
|
"determinate-nixd-aarch64-darwin": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-T5PoERn2FTupvCwGmQhbYO/oQ0w+51nRn+0QRbnA9tg=",
|
"narHash": "sha256-4psYG30Pl0R1zAHXDHfjR39ybe/QEfcA8C5h0eEKVx8=",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.2/macOS"
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.0/macOS"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.2/macOS"
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.0/macOS"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"determinate-nixd-aarch64-linux": {
|
"determinate-nixd-aarch64-linux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-T0iRt3f+2Q+KUU1VzdGiG6GluViuxuKr+bMG5eVtPO0=",
|
"narHash": "sha256-a++ZpOrqzWsBHNR2K8H3B48LoFKIvK5VfodJgXSlsFE=",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.2/aarch64-linux"
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.0/aarch64-linux"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.2/aarch64-linux"
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.0/aarch64-linux"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"determinate-nixd-x86_64-linux": {
|
"determinate-nixd-x86_64-linux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-FDeJY4hugYM0+vB2rvKY8WpYgPNH7kNS0M082Rnk/CI=",
|
"narHash": "sha256-Q+SViaRHSg0FR6x26qCpqc3n6vJZ6PHpdHWV8XZ4ih0=",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.2/x86_64-linux"
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.0/x86_64-linux"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.2/x86_64-linux"
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.17.0/x86_64-linux"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"disko": {
|
"disko": {
|
||||||
|
|
@ -85,11 +85,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773889306,
|
"lastModified": 1773025010,
|
||||||
"narHash": "sha256-PAqwnsBSI9SVC2QugvQ3xeYCB0otOwCacB1ueQj2tgw=",
|
"narHash": "sha256-khlHllTsovXgT2GZ0WxT4+RvuMjNeR5OW0UYeEHPYQo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "5ad85c82cc52264f4beddc934ba57f3789f28347",
|
"rev": "7b9f7f88ab3b339f8142dc246445abb3c370d3d3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -169,11 +169,11 @@
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775012637,
|
"lastModified": 1773173502,
|
||||||
"narHash": "sha256-Now9n+9BD37KilctvSOy3GzAdvQLZtPfCcGnxmxtaig=",
|
"narHash": "sha256-DEQy04W/+AM7oLIbndTha3//GLJkOksOTGy3HK0/4+w=",
|
||||||
"owner": "helix-editor",
|
"owner": "helix-editor",
|
||||||
"repo": "helix",
|
"repo": "helix",
|
||||||
"rev": "daac117bbb4348a496bdf851a9a5c1d9612a2938",
|
"rev": "78b999f11eb67de3ed4cd9946ad71fc00b8737c7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -210,11 +210,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774991950,
|
"lastModified": 1773286336,
|
||||||
"narHash": "sha256-kScKj3qJDIWuN9/6PMmgy5esrTUkYinrO5VvILik/zw=",
|
"narHash": "sha256-+yFtmhOHterllxWmV6YbdevTXpJdGS0mS0UmJ0k9fh0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f2d3e04e278422c7379e067e323734f3e8c585a7",
|
"rev": "7d06e0cefe6e4a1e85b2b3274dcb0b3da242a557",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -231,11 +231,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774991950,
|
"lastModified": 1772330611,
|
||||||
"narHash": "sha256-kScKj3qJDIWuN9/6PMmgy5esrTUkYinrO5VvILik/zw=",
|
"narHash": "sha256-UZjPc/d5XRxvjDbk4veAO4XFdvx6BUum2l40V688Xq8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f2d3e04e278422c7379e067e323734f3e8c585a7",
|
"rev": "58fd7ff0eec2cda43e705c4c0585729ec471d400",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -274,12 +274,12 @@
|
||||||
"nixpkgs-regression": "nixpkgs-regression"
|
"nixpkgs-regression": "nixpkgs-regression"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774642787,
|
"lastModified": 1772664055,
|
||||||
"narHash": "sha256-5pg3HyPEUj/AXXwOQAwyieyDx0c1/1rf7+EsOCa1rJM=",
|
"narHash": "sha256-RtKKd4aefzHEzV9sKa8bQdZIY67GJMV0nRS1QZ2E94g=",
|
||||||
"rev": "cb9989b5b2329842fd7a2586429351d1ede16d04",
|
"rev": "3a96d5668a8df84c2c8d006a04212c17839b977f",
|
||||||
"revCount": 24851,
|
"revCount": 24783,
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.17.2/019d3110-f384-7933-a525-8f854039828f/source.tar.gz"
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.17.0/019cbb2e-8d12-7212-a98f-73fd1f2342a2/source.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
|
|
@ -288,11 +288,11 @@
|
||||||
},
|
},
|
||||||
"nixos": {
|
"nixos": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774799055,
|
"lastModified": 1773068389,
|
||||||
"narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
|
"narHash": "sha256-vMrm7Pk2hjBRPnCSjhq1pH0bg350Z+pXhqZ9ICiqqCs=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
|
"rev": "44bae273f9f82d480273bab26f5c50de3724f52f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -304,11 +304,11 @@
|
||||||
},
|
},
|
||||||
"nixos-facter-modules": {
|
"nixos-facter-modules": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773858690,
|
"lastModified": 1766558141,
|
||||||
"narHash": "sha256-oW0/lC0oRG5H5LaK6Rmh9L1wmkn9TbenM4bXwnIEDKA=",
|
"narHash": "sha256-Ud9v49ZPsoDBFuyJSQ2Mpw1ZgAH/aMwUwwzrVoetNus=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "nixos-facter-modules",
|
"repo": "nixos-facter-modules",
|
||||||
"rev": "139dcef4dfc97009629c445806f197883351ab4a",
|
"rev": "e796d536e3d83de74267069e179dc620a608ed7d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -319,11 +319,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774933469,
|
"lastModified": 1772972630,
|
||||||
"narHash": "sha256-OrnCQeUO2bqaWUl0lkDWyGWjKsOhtCyd7JSfTedQNUE=",
|
"narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "f4c4c2c0c923d7811ac2a63ccc154767e4195337",
|
"rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -365,22 +365,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-last-building": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1754028485,
|
|
||||||
"narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "59e69648d345d6e8fef86158c555730fa12af9de",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "59e69648d345d6e8fef86158c555730fa12af9de",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-regression": {
|
"nixpkgs-regression": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1643052045,
|
"lastModified": 1643052045,
|
||||||
|
|
@ -413,12 +397,12 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774273680,
|
"lastModified": 1772479524,
|
||||||
"narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=",
|
"narHash": "sha256-u7nCaNiMjqvKpE+uZz9hE7pgXXTmm5yvdtFaqzSzUQI=",
|
||||||
"rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed",
|
"rev": "4215e62dc2cd3bc705b0a423b9719ff6be378a43",
|
||||||
"revCount": 968305,
|
"revCount": 957146,
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.968305%2Brev-fdc7b8f7b30fdbedec91b71ed82f36e1637483ed/019d1e65-315b-7c50-9232-ef9e46632115/source.tar.gz"
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.957146%2Brev-4215e62dc2cd3bc705b0a423b9719ff6be378a43/019cb23c-bcc0-7c8e-9772-0f9ff50d72f3/source.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
|
|
@ -427,11 +411,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774709303,
|
"lastModified": 1772963539,
|
||||||
"narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=",
|
"narHash": "sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685",
|
"rev": "9dcb002ca1690658be4a04645215baea8b95f31d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -453,7 +437,6 @@
|
||||||
"nixos-facter-modules": "nixos-facter-modules",
|
"nixos-facter-modules": "nixos-facter-modules",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixpkgs-last-building": "nixpkgs-last-building",
|
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -501,11 +484,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775021133,
|
"lastModified": 1773225617,
|
||||||
"narHash": "sha256-JB0u0evfSlmNg9HdGDxtXjaCcdKUpFPdSAMGxvJo5Pw=",
|
"narHash": "sha256-IT0n3jJgf4M7U0EuZJ2XJwXBmSJVVK3auqWDGeHGMzY=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "4bf1a6837064486c4f573a9d500c4cf3c1c075c0",
|
"rev": "413a22ab7acf848ed4e20c3f47ea96ccd4788518",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixos.url = "github:NixOS/nixpkgs/nixos-25.11";
|
nixos.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixpkgs-last-building.url = "github:NixOS/nixpkgs/59e69648d345d6e8fef86158c555730fa12af9de";
|
|
||||||
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1";
|
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1";
|
||||||
|
|
@ -41,7 +40,6 @@
|
||||||
nixos,
|
nixos,
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
nixpkgs-last-building,
|
|
||||||
nixos-facter-modules,
|
nixos-facter-modules,
|
||||||
nixos-hardware,
|
nixos-hardware,
|
||||||
determinate,
|
determinate,
|
||||||
|
|
@ -73,7 +71,6 @@
|
||||||
./extras/gaming.nix
|
./extras/gaming.nix
|
||||||
lsfg-vk-flake.nixosModules.default
|
lsfg-vk-flake.nixosModules.default
|
||||||
./extras/folding.nix
|
./extras/folding.nix
|
||||||
./users/builder.nix
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
NOlaptop = nixpkgs.lib.nixosSystem {
|
NOlaptop = nixpkgs.lib.nixosSystem {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
|
@ -18,7 +17,7 @@
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.package = lib.mkIf (config.networking.hostName == "NOcomputer") pkgs.lixPackageSets.stable.lix;
|
nix.package = pkgs.lixPackageSets.stable.lix;
|
||||||
|
|
||||||
programs.pmount.enable = true;
|
programs.pmount.enable = true;
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
];
|
];
|
||||||
boot.kernelModules = ["amdgpu"];
|
boot.kernelModules = ["amdgpu"];
|
||||||
powerManagement.cpuFreqGovernor = "powersave";
|
powerManagement.cpuFreqGovernor = "powersave";
|
||||||
# systemd.sleep.extraConfig = "HibernateDelaySec=360m";
|
systemd.sleep.extraConfig = "HibernateDelaySec=360m";
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
connect-timeout = 5;
|
connect-timeout = 5;
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@
|
||||||
boot.extraModprobeConfig = ''options snd-hda-intel model=dell-headset-multi'';
|
boot.extraModprobeConfig = ''options snd-hda-intel model=dell-headset-multi'';
|
||||||
boot.kernelModules = ["kvm-intel"];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
powerManagement.cpuFreqGovernor = "powersave";
|
powerManagement.cpuFreqGovernor = "powersave";
|
||||||
# systemd.sleep.extraConfig = "HibernateDelaySec=180m";
|
systemd.sleep.extraConfig = "HibernateDelaySec=180m";
|
||||||
# boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
# boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||||
# boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
# boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
users.users.builder = {
|
|
||||||
isSystemUser = true;
|
|
||||||
group = "builder";
|
|
||||||
useDefaultShell = true;
|
|
||||||
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups.builder = {};
|
|
||||||
|
|
||||||
nix.settings.trusted-users = ["builder"];
|
|
||||||
}
|
|
||||||
153
users/tao.nix
153
users/tao.nix
|
|
@ -4,85 +4,80 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
pkgs-last-building = inputs.nixpkgs-last-building.legacyPackages.${pkgs.system};
|
users.users.tao.packages = with pkgs; [
|
||||||
in {
|
rqbit
|
||||||
users.users.tao.packages =
|
forgejo-cli
|
||||||
(with pkgs-last-building; [
|
grayjay
|
||||||
oculante # https://nixpk.gs/pr-tracker.html?pr=502921
|
# keep-sorted start sticky_comments=no
|
||||||
])
|
# android-tools
|
||||||
++ (with pkgs; [
|
# boxxy
|
||||||
# keep-sorted start sticky_comments=no
|
# carapace
|
||||||
# android-tools
|
# davinci-resolve
|
||||||
# boxxy
|
# fractal
|
||||||
# carapace
|
# freecad-wayland
|
||||||
# davinci-resolve
|
# gurk-rs
|
||||||
# fractal
|
# jellyfin-media-player
|
||||||
# gurk-rs
|
# nixos-anywhere
|
||||||
# jellyfin-media-player
|
# piper
|
||||||
# nixos-anywhere
|
# syncthingtray
|
||||||
# piper
|
# taskwarrior3
|
||||||
# syncthingtray
|
# tectonic
|
||||||
# taskwarrior3
|
# texlab
|
||||||
# tectonic
|
# thunderbird
|
||||||
# texlab
|
# wkhtmltopdf
|
||||||
# thunderbird
|
appimage-run
|
||||||
# wkhtmltopdf
|
aspell
|
||||||
appimage-run
|
aspellDicts.en
|
||||||
aspell
|
bitwarden-cli
|
||||||
aspellDicts.en
|
bitwarden-desktop
|
||||||
bitwarden-cli
|
bottles
|
||||||
bitwarden-desktop
|
calibre
|
||||||
bottles
|
darktable
|
||||||
calibre
|
deluge
|
||||||
darktable
|
discord
|
||||||
deluge
|
element-desktop
|
||||||
discord
|
gocryptfs
|
||||||
element-desktop
|
jellyfin-mpv-shim
|
||||||
forgejo-cli
|
man-pages
|
||||||
freecad-wayland
|
man-pages-posix
|
||||||
gocryptfs
|
miniserve
|
||||||
grayjay
|
mousai
|
||||||
jellyfin-mpv-shim
|
nix-output-monitor
|
||||||
man-pages
|
nufmt
|
||||||
man-pages-posix
|
nushell
|
||||||
miniserve
|
nvd
|
||||||
mousai
|
obs-studio
|
||||||
nix-output-monitor
|
oculante
|
||||||
nufmt
|
onlyoffice-desktopeditors
|
||||||
nushell
|
openscad
|
||||||
nvd
|
pandoc
|
||||||
obs-studio
|
pipe-rename
|
||||||
onlyoffice-desktopeditors
|
printrun
|
||||||
openscad
|
prusa-slicer
|
||||||
pandoc
|
qmk
|
||||||
pipe-rename
|
qmk-udev-rules
|
||||||
printrun
|
qmk_hid
|
||||||
prusa-slicer
|
ripgrep-all
|
||||||
qmk
|
signal-desktop
|
||||||
qmk-udev-rules
|
slack
|
||||||
qmk_hid
|
snapper
|
||||||
ripgrep-all
|
starship
|
||||||
rqbit
|
syncplay
|
||||||
signal-desktop
|
tinymist
|
||||||
slack
|
toastify
|
||||||
snapper
|
typst
|
||||||
starship
|
usbutils
|
||||||
syncplay
|
vial
|
||||||
tinymist
|
wezterm
|
||||||
toastify
|
wl-clipboard-rs
|
||||||
typst
|
yt-dlp
|
||||||
usbutils
|
zathura
|
||||||
vial
|
zoom-us
|
||||||
wezterm
|
zotero
|
||||||
wl-clipboard-rs
|
zoxide
|
||||||
yt-dlp
|
# keep-sorted end
|
||||||
zathura
|
];
|
||||||
zoom-us
|
|
||||||
zotero
|
|
||||||
zoxide
|
|
||||||
# keep-sorted end
|
|
||||||
]);
|
|
||||||
virtualisation.waydroid = {
|
virtualisation.waydroid = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.waydroid-nftables;
|
package = pkgs.waydroid-nftables;
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,8 @@ in {
|
||||||
imports = [
|
imports = [
|
||||||
./boxxy.nix
|
./boxxy.nix
|
||||||
(import ./helix.nix {inherit pkgs inputs;})
|
(import ./helix.nix {inherit pkgs inputs;})
|
||||||
|
# ./plasma.nix
|
||||||
|
# ./firefox.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# home.sessionPath = [
|
# home.sessionPath = [
|
||||||
|
|
@ -32,18 +34,8 @@ in {
|
||||||
source = ./autostart;
|
source = ./autostart;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
home.file.".config/direnv/lib/" = {
|
home.file.".config/direnv/lib/".source = ./direnv;
|
||||||
source = ./direnv;
|
home.file.".config/direnv/lib/".recursive = true;
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
home.file.".config/nushell/scripts" = {
|
|
||||||
source = ./nushell/extras;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
home.file.".local/share/nushell/completions" = {
|
|
||||||
source = ./nushell/completions;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
bacon = {
|
bacon = {
|
||||||
|
|
@ -88,7 +80,11 @@ in {
|
||||||
settings = {
|
settings = {
|
||||||
color = "gruvbox";
|
color = "gruvbox";
|
||||||
flags = {
|
flags = {
|
||||||
battery = true;
|
battery =
|
||||||
|
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||||
|
# then true
|
||||||
|
# else false;
|
||||||
|
true;
|
||||||
hide_time = true;
|
hide_time = true;
|
||||||
enable_gpu = true;
|
enable_gpu = true;
|
||||||
};
|
};
|
||||||
|
|
@ -97,6 +93,7 @@ in {
|
||||||
|
|
||||||
direnv = {
|
direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
config = {
|
config = {
|
||||||
load_dotenv = true;
|
load_dotenv = true;
|
||||||
|
|
@ -130,17 +127,6 @@ in {
|
||||||
mpv = {
|
mpv = {
|
||||||
config = {
|
config = {
|
||||||
demuxer-max-bytes = "10GiB";
|
demuxer-max-bytes = "10GiB";
|
||||||
|
|
||||||
alang = "ja,jp,jpn,en,eng";
|
|
||||||
slang = "en,eng";
|
|
||||||
sub-scale = 0.5;
|
|
||||||
|
|
||||||
hr-seek = "yes";
|
|
||||||
|
|
||||||
hwdec = "auto";
|
|
||||||
vo = "gpu-next";
|
|
||||||
|
|
||||||
target-colorspace-hint = "auto";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -163,17 +149,12 @@ in {
|
||||||
configFile.source = ./nushell/config.nu;
|
configFile.source = ./nushell/config.nu;
|
||||||
envFile.source = ./nushell/env.nu;
|
envFile.source = ./nushell/env.nu;
|
||||||
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
||||||
# extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
||||||
plugins = with pkgs.nushellPlugins; [
|
plugins = with pkgs.nushellPlugins; [
|
||||||
# skim
|
|
||||||
desktop_notifications
|
|
||||||
# highlight
|
|
||||||
# units
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
ssh = {
|
ssh = {
|
||||||
enableDefaultConfig = false;
|
|
||||||
enable = true;
|
enable = true;
|
||||||
matchBlocks = {
|
matchBlocks = {
|
||||||
"*" = {
|
"*" = {
|
||||||
|
|
@ -203,6 +184,7 @@ in {
|
||||||
|
|
||||||
starship = {
|
starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -231,6 +213,7 @@ in {
|
||||||
|
|
||||||
zoxide = {
|
zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -308,5 +291,5 @@ in {
|
||||||
|
|
||||||
home.username = "tao";
|
home.username = "tao";
|
||||||
home.homeDirectory = "/home/tao";
|
home.homeDirectory = "/home/tao";
|
||||||
home.stateVersion = "26.05";
|
home.stateVersion = "23.11";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,23 +2,82 @@
|
||||||
#
|
#
|
||||||
# version = "0.96.1"
|
# version = "0.96.1"
|
||||||
|
|
||||||
use std/dirs
|
# For more information on defining custom themes, see
|
||||||
use theme.nu dark_theme
|
# https://www.nushell.sh/book/coloring_and_theming.html
|
||||||
|
# And here is the theme collection
|
||||||
use aliases.nu *
|
# https://github.com/nushell/nu_scripts/tree/main/themes
|
||||||
use nix.nu *
|
let dark_theme = {
|
||||||
use stuff.nu *
|
# color for nushell primitives
|
||||||
use tailscale.nu *
|
separator: white
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
source completions-jj.nu
|
header: green_bold
|
||||||
source completions-just.nu
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
# eg) {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
||||||
|
bool: light_cyan
|
||||||
|
int: white
|
||||||
|
filesize: cyan
|
||||||
|
duration: white
|
||||||
|
date: purple
|
||||||
|
range: white
|
||||||
|
float: white
|
||||||
|
string: white
|
||||||
|
nothing: white
|
||||||
|
binary: white
|
||||||
|
cell-path: white
|
||||||
|
row_index: green_bold
|
||||||
|
record: white
|
||||||
|
list: white
|
||||||
|
block: white
|
||||||
|
hints: dark_gray
|
||||||
|
search_result: { bg: red fg: white }
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_external_resolved: light_yellow_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b }
|
||||||
|
shape_glob_interpolation: cyan_bold
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_keyword: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
shape_raw_string: light_purple
|
||||||
|
}
|
||||||
|
|
||||||
# External completer example
|
# External completer example
|
||||||
# let carapace_completer = {|spans|
|
# let carapace_completer = {|spans|
|
||||||
# carapace $spans.0 nushell ...$spans | from json
|
# carapace $spans.0 nushell ...$spans | from json
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# The default config record. This is where much of your global configuration is setup.
|
# The default config record. This is where much of your global configuration is setup.
|
||||||
$env.config = {
|
$env.config = {
|
||||||
show_banner: false # true or false to enable or disable the welcome banner at startup
|
show_banner: false # true or false to enable or disable the welcome banner at startup
|
||||||
|
|
@ -135,7 +194,7 @@ $env.config = {
|
||||||
reset_application_mode: true
|
reset_application_mode: true
|
||||||
}
|
}
|
||||||
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||||
use_kitty_protocol: true # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this.
|
use_kitty_protocol: false # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this.
|
||||||
highlight_resolved_externals: false # true enables highlighting of external commands in the repl resolved by which.
|
highlight_resolved_externals: false # true enables highlighting of external commands in the repl resolved by which.
|
||||||
recursion_limit: 50 # the maximum number of times nushell allows recursion before stopping it
|
recursion_limit: 50 # the maximum number of times nushell allows recursion before stopping it
|
||||||
|
|
||||||
|
|
@ -763,12 +822,6 @@ $env.config = {
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||||
|
use std/dirs
|
||||||
source ~/.zoxide.nu
|
|
||||||
export def --wrapped --env z [...rest] {
|
|
||||||
zo ...$rest
|
|
||||||
l
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -79,9 +79,9 @@ $env.NU_PLUGIN_DIRS = [
|
||||||
]
|
]
|
||||||
|
|
||||||
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
|
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
|
||||||
$env.PATH = ($env.PATH | split row (char esep))
|
$env.PATH = ($env.PATH | split row (char esep) | prepend '/home/tao/.local/bin' | prepend '/home/tao/.cargo/bin')
|
||||||
|
|
||||||
# $env.GOPATH = '/home/tao/.go'
|
$env.GOPATH = '/home/tao/.go'
|
||||||
|
|
||||||
# $env.CARAPACE_BRIDGES
|
# $env.CARAPACE_BRIDGES
|
||||||
mkdir ~/.cache/carapace
|
mkdir ~/.cache/carapace
|
||||||
|
|
|
||||||
82
users/tao/nushell/extras/alias.nu
Normal file
82
users/tao/nushell/extras/alias.nu
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
alias b = btm
|
||||||
|
alias d = dirs
|
||||||
|
alias da = dirs add
|
||||||
|
alias dg = dirs goto
|
||||||
|
alias dn = dirs next
|
||||||
|
alias dp = dirs prev
|
||||||
|
alias dr = dirs drop
|
||||||
|
alias fetch = fastfetch
|
||||||
|
alias follow = readlink -f
|
||||||
|
alias p = pueue
|
||||||
|
alias snapper = snapper -c home
|
||||||
|
alias zl = zellij
|
||||||
|
|
||||||
|
alias cringe = sudo bootctl set-oneshot auto-windows
|
||||||
|
|
||||||
|
def h [query?: path] {
|
||||||
|
(if ($query != null) {sk -1 -q ($query | path basename)} else {sk -1})
|
||||||
|
| if ($in != "") {
|
||||||
|
hx $in
|
||||||
|
}
|
||||||
|
# | complete
|
||||||
|
# | if $in.exit_code == 0 {
|
||||||
|
# $in.stdout | str trim | hx $in
|
||||||
|
# }
|
||||||
|
}
|
||||||
|
|
||||||
|
def srg [] {
|
||||||
|
sk --ansi -i -c 'rg --color=always --line-number "{}"'
|
||||||
|
}
|
||||||
|
|
||||||
|
alias j = jj
|
||||||
|
alias ja = jj log -r 'all()'
|
||||||
|
alias jc = jj desc
|
||||||
|
alias jd = jj diff
|
||||||
|
alias je = jj edit
|
||||||
|
alias jf = jj git fetch
|
||||||
|
alias jg = jj git clone --colocate
|
||||||
|
alias jp = jj git push
|
||||||
|
alias js = jj status
|
||||||
|
alias jw = jj workspace update-stale
|
||||||
|
alias jt = jj log -r @ -T `description`
|
||||||
|
alias jn = jj next --edit
|
||||||
|
|
||||||
|
def jm --wrapped [-r: string = "@", ...rest] {
|
||||||
|
mut r = $r
|
||||||
|
if (jj log -r @ --no-pager --no-graph --template 'if(empty,"empty")' | $in == "empty") {
|
||||||
|
$r = "@-"
|
||||||
|
}
|
||||||
|
jj bookmark set main -r $r ...$rest
|
||||||
|
jj git push
|
||||||
|
}
|
||||||
|
|
||||||
|
alias la = ls -a
|
||||||
|
alias ll = ls -l
|
||||||
|
alias lal = ls -la
|
||||||
|
alias ccp = cp -prv
|
||||||
|
alias mvp = mv-full -pv
|
||||||
|
|
||||||
|
def --env c [path: path = "~"] {
|
||||||
|
cd $path
|
||||||
|
l
|
||||||
|
}
|
||||||
|
|
||||||
|
def l --wrapped [path: path = ".", ...rest] {
|
||||||
|
ls -t $path ...$rest | insert ext {|row| $row.name | parse "{name}.{ext}" | get ext | get 0? } | sort-by --natural type ext name | reject type ext
|
||||||
|
}
|
||||||
|
|
||||||
|
alias list-automounts = systemctl list-units --type=automount
|
||||||
|
|
||||||
|
def remount [] {
|
||||||
|
let reload = list-automounts | detect columns --guess | drop 5 | get DESCRIPTION | input list --multi
|
||||||
|
for mount in $reload {
|
||||||
|
sudo systemctl restart $mount
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def cpedit [file: path] {
|
||||||
|
mv $file $"($file).sym"; cp $"($file).sym" $file; chmod +w $file
|
||||||
|
}
|
||||||
|
|
||||||
|
alias core-job = job
|
||||||
|
alias job = job list
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
export alias b = btm
|
|
||||||
export alias d = dirs
|
|
||||||
export alias da = dirs add
|
|
||||||
export alias dg = dirs goto
|
|
||||||
export alias dn = dirs next
|
|
||||||
export alias dp = dirs prev
|
|
||||||
export alias dr = dirs drop
|
|
||||||
export alias fetch = fastfetch
|
|
||||||
export alias follow = readlink -f
|
|
||||||
export alias p = pueue
|
|
||||||
export alias snapper = snapper -c home
|
|
||||||
export alias zl = zellij
|
|
||||||
|
|
||||||
export def today-iso [] { date now | format date %F }
|
|
||||||
|
|
||||||
export alias cringe = sudo bootctl set-oneshot auto-windows
|
|
||||||
|
|
||||||
export alias la = ls -a
|
|
||||||
export alias ll = ls -l
|
|
||||||
export alias lla = ls -la
|
|
||||||
|
|
||||||
export def --env c [path: path = "~"] {
|
|
||||||
cd $path
|
|
||||||
l
|
|
||||||
}
|
|
||||||
|
|
||||||
export def l --wrapped [path: path = ".", ...rest] {
|
|
||||||
ls -t $path ...$rest | insert ext {|row| $row.name | parse "{name}.{ext}" | get ext | get 0? } | sort-by --natural type ext name | reject type ext
|
|
||||||
}
|
|
||||||
|
|
||||||
export def h [query?: path] {
|
|
||||||
(if ($query != null) {sk -1 -q ($query | path basename)} else {sk -1})
|
|
||||||
| if ($in != "") {
|
|
||||||
hx $in
|
|
||||||
}
|
|
||||||
# | complete
|
|
||||||
# | if $in.exit_code == 0 {
|
|
||||||
# $in.stdout | str trim | hx $in
|
|
||||||
# }
|
|
||||||
}
|
|
||||||
|
|
||||||
export def srg [] {
|
|
||||||
sk --ansi -i -c 'rg --color=always --line-number "{}"'
|
|
||||||
}
|
|
||||||
|
|
||||||
export alias j = jj
|
|
||||||
export alias ja = jj log -r 'all()'
|
|
||||||
export alias jc = jj desc
|
|
||||||
export alias jd = jj diff
|
|
||||||
export alias je = jj edit
|
|
||||||
export alias jf = jj git fetch
|
|
||||||
export alias jg = jj git clone --colocate
|
|
||||||
export alias jp = jj git push
|
|
||||||
export alias js = jj status
|
|
||||||
export alias jw = jj workspace update-stale
|
|
||||||
export alias jt = jj log -r @ -T `description`
|
|
||||||
export alias jn = jj next --edit
|
|
||||||
|
|
||||||
export def jm --wrapped [-r: string = "@", ...rest] {
|
|
||||||
mut r = $r
|
|
||||||
if (jj log -r @ --no-pager --no-graph --template 'if(empty,"empty")' | $in == "empty") {
|
|
||||||
$r = "@-"
|
|
||||||
}
|
|
||||||
jj bookmark set main -r $r ...$rest
|
|
||||||
jj git push
|
|
||||||
}
|
|
||||||
|
|
||||||
export alias list-automounts = systemctl list-units --type=automount
|
|
||||||
|
|
||||||
export def remount [] {
|
|
||||||
let reload = list-automounts | detect columns --guess | drop 5 | get DESCRIPTION | input list --multi
|
|
||||||
for mount in $reload {
|
|
||||||
sudo systemctl restart $mount
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export def cpedit [file: path] {
|
|
||||||
mv $file $"($file).sym"; cp $"($file).sym" $file; chmod +w $file
|
|
||||||
}
|
|
||||||
|
|
||||||
export alias core-job = job
|
|
||||||
export alias job = job list
|
|
||||||
|
|
||||||
export alias mpv-hdr-dv = mpv --target-trc=pq --target-prim=bt.2020 --target-peak=800
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
export def "nu-complete just" [] {
|
def "nu-complete just" [] {
|
||||||
(^just --dump --unstable --dump-format json | from json).recipes | transpose recipe data | flatten | where {|row| $row.private == false } | select recipe doc parameters | rename value description
|
(^just --dump --unstable --dump-format json | from json).recipes | transpose recipe data | flatten | where {|row| $row.private == false } | select recipe doc parameters | rename value description
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
export def --wrapped rebuild [--force (-f), subcommand, ...rest] {
|
def --wrapped rebuild [--force (-f), subcommand, ...rest] {
|
||||||
if not (
|
if not (
|
||||||
df -h | detect columns --guess | where "Mounted on" == "/" or "Mounted on" == "/boot" | get Use% | each {parse "{usage}%" | get usage | into int} | flatten | all {$in < 99}
|
df -h | detect columns --guess | where "Mounted on" == "/" or "Mounted on" == "/boot" | get Use% | each {parse "{usage}%" | get usage | into int} | flatten | all {$in < 99}
|
||||||
) and not $force {
|
) and not $force {
|
||||||
|
|
@ -27,9 +27,9 @@ export def --wrapped rebuild [--force (-f), subcommand, ...rest] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export alias nd = nix develop
|
alias nd = nix develop
|
||||||
|
|
||||||
export def ns [...packages: string] {
|
def ns [...packages: string] {
|
||||||
let packages = $packages | each {$"nixpkgs#($in)"}
|
let packages = $packages | each {$"nixpkgs#($in)"}
|
||||||
nix shell ...$packages
|
nix shell ...$packages
|
||||||
}
|
}
|
||||||
|
|
@ -38,17 +38,16 @@ export def ns [...packages: string] {
|
||||||
# nix search nixpkgs $package
|
# nix search nixpkgs $package
|
||||||
# }
|
# }
|
||||||
|
|
||||||
export def post-rebuild [] {
|
def post-rebuild [] {
|
||||||
rm -r ~/.config/helix/runtime/grammars/
|
rm -r ~/.config/helix/runtime/grammars/
|
||||||
hx --grammar fetch; hx --grammar build
|
hx --grammar fetch; hx --grammar build
|
||||||
rustup update
|
rustup update
|
||||||
}
|
}
|
||||||
|
|
||||||
export def get_gen [] {
|
def get_gen [] {
|
||||||
sudo nix-env --profile /nix/var/nix/profiles/system --list-generations | detect columns --guess -n | last | get column0
|
sudo nix-env --profile /nix/var/nix/profiles/system --list-generations | detect columns --guess -n | last | get column0
|
||||||
}
|
}
|
||||||
|
def bump [...rest] {
|
||||||
export def bump [...rest] {
|
|
||||||
cd /home/tao/projects/NOflake/
|
cd /home/tao/projects/NOflake/
|
||||||
mut r = "@"
|
mut r = "@"
|
||||||
loop {
|
loop {
|
||||||
|
|
@ -81,10 +80,11 @@ export def bump [...rest] {
|
||||||
nvd history
|
nvd history
|
||||||
}
|
}
|
||||||
|
|
||||||
export alias rb = rebuild boot
|
alias rb = rebuild boot
|
||||||
export alias rs = rebuild switch
|
alias rs = rebuild switch
|
||||||
|
|
||||||
export def gc [] {
|
def gc [] {
|
||||||
sudo nix-collect-garbage -d
|
sudo nix-collect-garbage -d
|
||||||
snapper clear
|
snapper clear
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
export def done [] {
|
def done [] {
|
||||||
toastify send -a "" done
|
toastify send -a "" done
|
||||||
}
|
}
|
||||||
|
|
||||||
export def "config stuff" [] {
|
def "config stuff" [] {
|
||||||
hx ~/projects/NOflake/users/tao/nushell/stuff.nu
|
hx ~/projects/NOflake/users/tao/nushell/stuff.nu
|
||||||
}
|
}
|
||||||
|
|
||||||
export def fixme [] {
|
def fixme [] {
|
||||||
let items = rg "FIXME|TODO" --json
|
let items = rg "FIXME|TODO" --json
|
||||||
| lines
|
| lines
|
||||||
| each {from json}
|
| each {from json}
|
||||||
|
|
@ -24,24 +24,26 @@ export def fixme [] {
|
||||||
hx ($items | get $sel | $"($in.text):($in.line_number)")
|
hx ($items | get $sel | $"($in.text):($in.line_number)")
|
||||||
}
|
}
|
||||||
|
|
||||||
export def "snapper list" [] {
|
source ~/.zoxide.nu
|
||||||
|
def --wrapped --env z [...rest] {
|
||||||
|
zo ...$rest
|
||||||
|
l
|
||||||
|
}
|
||||||
|
|
||||||
|
def "snapper list" [] {
|
||||||
snapper --csvout list | from csv | reject config subvolume default user used-space userdata active
|
snapper --csvout list | from csv | reject config subvolume default user used-space userdata active
|
||||||
}
|
}
|
||||||
|
|
||||||
export def "snapper clear" [] {
|
def "snapper clear" [] {
|
||||||
let list = snapper --csvout list | from csv | reject config subvolume default user used-space userdata active | skip 1
|
let list = snapper --csvout list | from csv | reject config subvolume default user used-space userdata active | skip 1
|
||||||
|
|
||||||
let first = $list | first
|
let first = $list | first
|
||||||
let last = $list | last
|
let last = $list | last
|
||||||
|
|
||||||
if $first != $last {
|
snapper delete $"($first.number)-($last.number)"
|
||||||
snapper delete $"($first.number)-($last.number)"
|
|
||||||
} else {
|
|
||||||
snapper delete $first
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export def "fans" [duty?: int] {
|
def "fans" [duty?: int] {
|
||||||
match (hostname) {
|
match (hostname) {
|
||||||
"NOcomputer" => {
|
"NOcomputer" => {
|
||||||
let mode_path: path = (glob "/sys/devices/platform/nct6775.656/hwmon/hwmon*/pwm2_enable" | get 0)
|
let mode_path: path = (glob "/sys/devices/platform/nct6775.656/hwmon/hwmon*/pwm2_enable" | get 0)
|
||||||
|
|
@ -59,15 +61,15 @@ export def "fans" [duty?: int] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export alias louder = fans 100
|
alias louder = fans 100
|
||||||
export alias loud = fans
|
alias loud = fans
|
||||||
export alias quiet = fans 42
|
alias quiet = fans 42
|
||||||
|
|
||||||
export def asciicam [] {
|
def asciicam [] {
|
||||||
$env.DISPLAY = null
|
$env.DISPLAY = null
|
||||||
mpv -vo caca av://v4l2:/dev/video0 --demuxer-lavf-o=input_format=mjpeg --profile=low-latency e>| /dev/null
|
mpv -vo caca av://v4l2:/dev/video0 --demuxer-lavf-o=input_format=mjpeg --profile=low-latency e>| /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
export def sunu [command] {
|
def sunu [command] {
|
||||||
sudo nu --stdin --commands $command
|
sudo nu --stdin --commands $command
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# see if others see us connecting from a mullvad exit node
|
# see if others see us connecting from a mullvad exit node
|
||||||
export def check-mullvad [] {
|
def check-mullvad [] {
|
||||||
print -n "checking mullvad status"
|
print -n "checking mullvad status"
|
||||||
mut check = false
|
mut check = false
|
||||||
mut j = null
|
mut j = null
|
||||||
|
|
@ -13,7 +13,7 @@ export def check-mullvad [] {
|
||||||
}
|
}
|
||||||
|
|
||||||
# switch to a specific exit node, or none
|
# switch to a specific exit node, or none
|
||||||
export def te [exit_node: string = ""] {
|
def te [exit_node: string = ""] {
|
||||||
if ($exit_node | is-empty) and (ps | find deluge | is-not-empty) {
|
if ($exit_node | is-empty) and (ps | find deluge | is-not-empty) {
|
||||||
print "stop summoning first!"
|
print "stop summoning first!"
|
||||||
return false
|
return false
|
||||||
|
|
@ -30,7 +30,7 @@ export def te [exit_node: string = ""] {
|
||||||
}
|
}
|
||||||
|
|
||||||
# list all mullvad exit nodes
|
# list all mullvad exit nodes
|
||||||
export def tx [] {
|
def tx [] {
|
||||||
tailscale exit-node list
|
tailscale exit-node list
|
||||||
| lines
|
| lines
|
||||||
| drop 4
|
| drop 4
|
||||||
|
|
@ -42,7 +42,7 @@ tailscale exit-node list
|
||||||
}
|
}
|
||||||
|
|
||||||
# sort mullvad exit nodes by fastest ping
|
# sort mullvad exit nodes by fastest ping
|
||||||
export def tsp [] {
|
def tsp [] {
|
||||||
tx
|
tx
|
||||||
| where COUNTRY == USA
|
| where COUNTRY == USA
|
||||||
| par-each {
|
| par-each {
|
||||||
|
|
@ -66,18 +66,18 @@ tx
|
||||||
}
|
}
|
||||||
|
|
||||||
# switch to a random mullvad exit node
|
# switch to a random mullvad exit node
|
||||||
export def tr [] {
|
def tr [] {
|
||||||
tx
|
tx
|
||||||
| get (random int 0..($in | length))
|
| get (random int 0..($in | length))
|
||||||
| te $in.IP
|
| te $in.IP
|
||||||
| return $in
|
| return $in
|
||||||
}
|
}
|
||||||
|
|
||||||
export alias t = tailscale
|
alias t = tailscale
|
||||||
export alias ts = tailscale status
|
alias ts = tailscale status
|
||||||
export alias tu = tailscale up
|
alias tu = tailscale up
|
||||||
export alias td = tailscale down
|
alias td = tailscale down
|
||||||
export alias ta = tailscale exit-node suggest
|
alias ta = tailscale exit-node suggest
|
||||||
export alias tt = tailscale switch --list | detect columns | input list -d Tailnet | get ID | t switch $in
|
alias tt = tailscale switch --list | detect columns | input list -d Tailnet | get ID | t switch $in
|
||||||
|
|
||||||
export alias wno = ssh root@whyfi "etherwake -i br-lan 04:42:1A:E7:62:C3"
|
alias wno = ssh root@whyfi "etherwake -i br-lan 04:42:1A:E7:62:C3"
|
||||||
|
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
# For more information on defining custom themes, see
|
|
||||||
# https://www.nushell.sh/book/coloring_and_theming.html
|
|
||||||
# And here is the theme collection
|
|
||||||
# https://github.com/nushell/nu_scripts/tree/main/themes
|
|
||||||
export const dark_theme = {
|
|
||||||
# color for nushell primitives
|
|
||||||
separator: white
|
|
||||||
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
|
||||||
header: green_bold
|
|
||||||
empty: blue
|
|
||||||
# Closures can be used to choose colors for specific values.
|
|
||||||
# The value (in this case, a bool) is piped into the closure.
|
|
||||||
# eg) {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
|
||||||
bool: light_cyan
|
|
||||||
int: white
|
|
||||||
filesize: cyan
|
|
||||||
duration: white
|
|
||||||
date: purple
|
|
||||||
range: white
|
|
||||||
float: white
|
|
||||||
string: white
|
|
||||||
nothing: white
|
|
||||||
binary: white
|
|
||||||
cell-path: white
|
|
||||||
row_index: green_bold
|
|
||||||
record: white
|
|
||||||
list: white
|
|
||||||
block: white
|
|
||||||
hints: dark_gray
|
|
||||||
search_result: { bg: red fg: white }
|
|
||||||
shape_and: purple_bold
|
|
||||||
shape_binary: purple_bold
|
|
||||||
shape_block: blue_bold
|
|
||||||
shape_bool: light_cyan
|
|
||||||
shape_closure: green_bold
|
|
||||||
shape_custom: green
|
|
||||||
shape_datetime: cyan_bold
|
|
||||||
shape_directory: cyan
|
|
||||||
shape_external: cyan
|
|
||||||
shape_externalarg: green_bold
|
|
||||||
shape_external_resolved: light_yellow_bold
|
|
||||||
shape_filepath: cyan
|
|
||||||
shape_flag: blue_bold
|
|
||||||
shape_float: purple_bold
|
|
||||||
# shapes are used to change the cli syntax highlighting
|
|
||||||
shape_garbage: { fg: white bg: red attr: b }
|
|
||||||
shape_glob_interpolation: cyan_bold
|
|
||||||
shape_globpattern: cyan_bold
|
|
||||||
shape_int: purple_bold
|
|
||||||
shape_internalcall: cyan_bold
|
|
||||||
shape_keyword: cyan_bold
|
|
||||||
shape_list: cyan_bold
|
|
||||||
shape_literal: blue
|
|
||||||
shape_match_pattern: green
|
|
||||||
shape_matching_brackets: { attr: u }
|
|
||||||
shape_nothing: light_cyan
|
|
||||||
shape_operator: yellow
|
|
||||||
shape_or: purple_bold
|
|
||||||
shape_pipe: purple_bold
|
|
||||||
shape_range: yellow_bold
|
|
||||||
shape_record: cyan_bold
|
|
||||||
shape_redirection: purple_bold
|
|
||||||
shape_signature: green_bold
|
|
||||||
shape_string: green
|
|
||||||
shape_string_interpolation: cyan_bold
|
|
||||||
shape_table: blue_bold
|
|
||||||
shape_variable: purple
|
|
||||||
shape_vardecl: purple
|
|
||||||
shape_raw_string: light_purple
|
|
||||||
}
|
|
||||||
|
|
||||||
19
users/vy.nix
19
users/vy.nix
|
|
@ -4,28 +4,21 @@
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
pkgs-last-building = inputs.nixpkgs-last-building.legacyPackages.${pkgs.system};
|
users.users.vy.packages = with pkgs; [
|
||||||
in {
|
oculante
|
||||||
users.users.vy.packages =
|
rnote
|
||||||
(with pkgs-last-building; [
|
|
||||||
oculante # https://nixpk.gs/pr-tracker.html?pr=502921
|
|
||||||
])
|
|
||||||
++ (with pkgs; [
|
|
||||||
audacity
|
audacity
|
||||||
cosmic-store
|
cosmic-store
|
||||||
google-chrome
|
|
||||||
jellyfin-media-player
|
jellyfin-media-player
|
||||||
onlyoffice-desktopeditors
|
onlyoffice-desktopeditors
|
||||||
rnote
|
|
||||||
signal-desktop
|
|
||||||
signal-desktop
|
signal-desktop
|
||||||
snapper
|
snapper
|
||||||
syncthingtray
|
syncthingtray
|
||||||
toastify
|
|
||||||
yt-dlp
|
yt-dlp
|
||||||
zoom-us
|
zoom-us
|
||||||
]);
|
toastify
|
||||||
|
];
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
|
|
|
||||||
|
|
@ -6,46 +6,46 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs = {
|
programs = {
|
||||||
# bat = {
|
bat = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# config = {
|
config = {
|
||||||
# theme = "gruvbox-dark";
|
theme = "gruvbox-dark";
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
|
|
||||||
# bottom = {
|
bottom = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# settings = {
|
settings = {
|
||||||
# color = "gruvbox";
|
color = "gruvbox";
|
||||||
# flags = {
|
flags = {
|
||||||
# battery =
|
battery =
|
||||||
# # if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||||
# # then true
|
# then true
|
||||||
# # else false;
|
# else false;
|
||||||
# true;
|
true;
|
||||||
# hide_time = true;
|
hide_time = true;
|
||||||
# enable_gpu = true;
|
enable_gpu = true;
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
|
|
||||||
nushell = {
|
nushell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# configFile.source = ./nushell/config.nu;
|
configFile.source = ./nushell/config.nu;
|
||||||
# envFile.source = ./nushell/env.nu;
|
envFile.source = ./nushell/env.nu;
|
||||||
# # extraConfig = builtins.readFile ./nushell/stuff.nu;
|
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
||||||
# extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
||||||
};
|
};
|
||||||
|
|
||||||
# starship = {
|
starship = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# enableNushellIntegration = true;
|
enableNushellIntegration = true;
|
||||||
# settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
||||||
# };
|
};
|
||||||
|
|
||||||
wezterm = {
|
wezterm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# extraConfig = builtins.readFile ./wezterm.lua;
|
extraConfig = builtins.readFile ./wezterm.lua;
|
||||||
};
|
};
|
||||||
|
|
||||||
zellij = {
|
zellij = {
|
||||||
|
|
@ -53,10 +53,10 @@
|
||||||
settings = {};
|
settings = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
# zoxide = {
|
zoxide = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# enableNushellIntegration = true;
|
enableNushellIntegration = true;
|
||||||
# };
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# services.syncthing = {
|
# services.syncthing = {
|
||||||
|
|
|
||||||
826
users/vy/nushell/config.nu
Normal file
826
users/vy/nushell/config.nu
Normal file
|
|
@ -0,0 +1,826 @@
|
||||||
|
# Nushell Config File
|
||||||
|
#
|
||||||
|
# version = "0.96.1"
|
||||||
|
|
||||||
|
# For more information on defining custom themes, see
|
||||||
|
# https://www.nushell.sh/book/coloring_and_theming.html
|
||||||
|
# And here is the theme collection
|
||||||
|
# https://github.com/nushell/nu_scripts/tree/main/themes
|
||||||
|
let dark_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: white
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
# eg) {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
||||||
|
bool: light_cyan
|
||||||
|
int: white
|
||||||
|
filesize: cyan
|
||||||
|
duration: white
|
||||||
|
date: purple
|
||||||
|
range: white
|
||||||
|
float: white
|
||||||
|
string: white
|
||||||
|
nothing: white
|
||||||
|
binary: white
|
||||||
|
cell-path: white
|
||||||
|
row_index: green_bold
|
||||||
|
record: white
|
||||||
|
list: white
|
||||||
|
block: white
|
||||||
|
hints: dark_gray
|
||||||
|
search_result: { bg: red fg: white }
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_external_resolved: light_yellow_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b }
|
||||||
|
shape_glob_interpolation: cyan_bold
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_keyword: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
shape_raw_string: light_purple
|
||||||
|
}
|
||||||
|
|
||||||
|
# External completer example
|
||||||
|
# let carapace_completer = {|spans|
|
||||||
|
# carapace $spans.0 nushell ...$spans | from json
|
||||||
|
# }
|
||||||
|
|
||||||
|
# The default config record. This is where much of your global configuration is setup.
|
||||||
|
$env.config = {
|
||||||
|
show_banner: false # true or false to enable or disable the welcome banner at startup
|
||||||
|
|
||||||
|
ls: {
|
||||||
|
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
|
||||||
|
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
|
||||||
|
}
|
||||||
|
|
||||||
|
rm: {
|
||||||
|
always_trash: true # always act as if -t was given. Can be overridden with -p
|
||||||
|
}
|
||||||
|
|
||||||
|
table: {
|
||||||
|
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
||||||
|
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
||||||
|
show_empty: true # show 'empty list' and 'empty record' placeholders for command output
|
||||||
|
padding: { left: 1, right: 1 } # a left right padding of each column in a table
|
||||||
|
trim: {
|
||||||
|
methodology: wrapping # wrapping or truncating
|
||||||
|
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
||||||
|
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
||||||
|
}
|
||||||
|
header_on_separator: false # show header text on separator/border line
|
||||||
|
# abbreviated_row_count: 10 # limit data rows from top and bottom after reaching a set point
|
||||||
|
}
|
||||||
|
|
||||||
|
error_style: "fancy" # "fancy" or "plain" for screen reader-friendly error messages
|
||||||
|
|
||||||
|
# datetime_format determines what a datetime rendered in the shell would look like.
|
||||||
|
# Behavior without this configuration point will be to "humanize" the datetime display,
|
||||||
|
# showing something like "a day ago."
|
||||||
|
datetime_format: {
|
||||||
|
# normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables
|
||||||
|
# table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format
|
||||||
|
}
|
||||||
|
|
||||||
|
explore: {
|
||||||
|
status_bar_background: { fg: "#1D1F21", bg: "#C4C9C6" },
|
||||||
|
command_bar_text: { fg: "#C4C9C6" },
|
||||||
|
highlight: { fg: "black", bg: "yellow" },
|
||||||
|
status: {
|
||||||
|
error: { fg: "white", bg: "red" },
|
||||||
|
warn: {}
|
||||||
|
info: {}
|
||||||
|
},
|
||||||
|
selected_cell: { bg: light_blue },
|
||||||
|
}
|
||||||
|
|
||||||
|
history: {
|
||||||
|
max_size: 100_000 # Session has to be reloaded for this to take effect
|
||||||
|
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
||||||
|
file_format: "sqlite" # "sqlite" or "plaintext"
|
||||||
|
isolation: true # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions.
|
||||||
|
}
|
||||||
|
|
||||||
|
completions: {
|
||||||
|
case_sensitive: false # set to true to enable case-sensitive completions
|
||||||
|
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
||||||
|
partial: true # set this to false to prevent partial filling of the prompt
|
||||||
|
algorithm: "fuzzy" # prefix or fuzzy
|
||||||
|
external: {
|
||||||
|
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
|
||||||
|
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||||
|
completer: null # check 'carapace_completer' above as an example
|
||||||
|
}
|
||||||
|
use_ls_colors: true # set this to true to enable file/path/directory completions using LS_COLORS
|
||||||
|
}
|
||||||
|
|
||||||
|
filesize: {
|
||||||
|
unit: metric
|
||||||
|
}
|
||||||
|
|
||||||
|
cursor_shape: {
|
||||||
|
emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default)
|
||||||
|
vi_insert: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default)
|
||||||
|
vi_normal: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default)
|
||||||
|
}
|
||||||
|
|
||||||
|
color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
|
||||||
|
# use_grid_icons: true
|
||||||
|
footer_mode: 25 # always, never, number_of_rows, auto
|
||||||
|
float_precision: 2 # the precision for displaying floats in tables
|
||||||
|
buffer_editor: null # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
||||||
|
use_ansi_coloring: true
|
||||||
|
bracketed_paste: true # enable bracketed paste, currently useless on windows
|
||||||
|
edit_mode: emacs # emacs, vi
|
||||||
|
shell_integration: {
|
||||||
|
# osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title
|
||||||
|
osc2: true
|
||||||
|
# osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory
|
||||||
|
osc7: true
|
||||||
|
# osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8
|
||||||
|
osc8: true
|
||||||
|
# osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal
|
||||||
|
osc9_9: false
|
||||||
|
# osc133 is several escapes invented by Final Term which include the supported ones below.
|
||||||
|
# 133;A - Mark prompt start
|
||||||
|
# 133;B - Mark prompt end
|
||||||
|
# 133;C - Mark pre-execution
|
||||||
|
# 133;D;exit - Mark execution finished with exit code
|
||||||
|
# This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is
|
||||||
|
osc133: true
|
||||||
|
# osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features
|
||||||
|
# 633;A - Mark prompt start
|
||||||
|
# 633;B - Mark prompt end
|
||||||
|
# 633;C - Mark pre-execution
|
||||||
|
# 633;D;exit - Mark execution finished with exit code
|
||||||
|
# 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce
|
||||||
|
# 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal
|
||||||
|
# and also helps with the run recent menu in vscode
|
||||||
|
osc633: true
|
||||||
|
# reset_application_mode is escape \x1b[?1l and was added to help ssh work better
|
||||||
|
reset_application_mode: true
|
||||||
|
}
|
||||||
|
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||||
|
use_kitty_protocol: false # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this.
|
||||||
|
highlight_resolved_externals: false # true enables highlighting of external commands in the repl resolved by which.
|
||||||
|
recursion_limit: 50 # the maximum number of times nushell allows recursion before stopping it
|
||||||
|
|
||||||
|
plugins: {} # Per-plugin configuration. See https://www.nushell.sh/contributor-book/plugins.html#configuration.
|
||||||
|
|
||||||
|
plugin_gc: {
|
||||||
|
# Configuration for plugin garbage collection
|
||||||
|
default: {
|
||||||
|
enabled: true # true to enable stopping of inactive plugins
|
||||||
|
stop_after: 10sec # how long to wait after a plugin is inactive to stop it
|
||||||
|
}
|
||||||
|
plugins: {
|
||||||
|
# alternate configuration for specific plugins, by name, for example:
|
||||||
|
#
|
||||||
|
# gstat: {
|
||||||
|
# enabled: false
|
||||||
|
# }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hooks: {
|
||||||
|
pre_prompt: [{ null }] # run before the prompt is shown
|
||||||
|
pre_execution: [{ null }] # run before the repl input is run
|
||||||
|
env_change: {
|
||||||
|
PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input
|
||||||
|
}
|
||||||
|
display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline
|
||||||
|
command_not_found: { null } # return an error message when a command is not found
|
||||||
|
}
|
||||||
|
|
||||||
|
menus: [
|
||||||
|
# Configuration for default nushell menus
|
||||||
|
# Note the lack of source parameter
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: columnar
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: { attr: r }
|
||||||
|
description_text: yellow
|
||||||
|
match_text: { attr: u }
|
||||||
|
selected_match_text: { attr: ur }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: ide_completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: ide
|
||||||
|
min_completion_width: 0,
|
||||||
|
max_completion_width: 50,
|
||||||
|
max_completion_height: 10, # will be limited by the available lines in the terminal
|
||||||
|
padding: 0,
|
||||||
|
border: true,
|
||||||
|
cursor_offset: 0,
|
||||||
|
description_mode: "prefer_right"
|
||||||
|
min_description_width: 0
|
||||||
|
max_description_width: 50
|
||||||
|
max_description_height: 10
|
||||||
|
description_offset: 1
|
||||||
|
# If true, the cursor pos will be corrected, so the suggestions match up with the typed text
|
||||||
|
#
|
||||||
|
# C:\> str
|
||||||
|
# str join
|
||||||
|
# str trim
|
||||||
|
# str split
|
||||||
|
correct_cursor_pos: false
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: { attr: r }
|
||||||
|
description_text: yellow
|
||||||
|
match_text: { attr: u }
|
||||||
|
selected_match_text: { attr: ur }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: list
|
||||||
|
page_size: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: description
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
selection_rows: 4
|
||||||
|
description_rows: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
keybindings: [
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: tab
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
{ edit: complete }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: ide_completion_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_n
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: ide_completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
{ edit: complete }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_r
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: history_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: f1
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: help_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: completion_previous_menu
|
||||||
|
modifier: shift
|
||||||
|
keycode: backtab
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: menuprevious }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: next_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { send: menupagenext }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_or_previous_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menupageprevious }
|
||||||
|
{ edit: undo }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: escape
|
||||||
|
modifier: none
|
||||||
|
keycode: escape
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: esc } # NOTE: does not appear to work
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cancel_command
|
||||||
|
modifier: control
|
||||||
|
keycode: char_c
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrlc }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: quit_shell
|
||||||
|
modifier: control
|
||||||
|
keycode: char_d
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrld }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: clear_screen
|
||||||
|
modifier: control
|
||||||
|
keycode: char_l
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: clearscreen }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: search_history
|
||||||
|
modifier: control
|
||||||
|
keycode: char_q
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: searchhistory }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: open_command_editor
|
||||||
|
modifier: control
|
||||||
|
keycode: char_o
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: openeditor }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: none
|
||||||
|
keycode: up
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuup }
|
||||||
|
{ send: up }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: none
|
||||||
|
keycode: down
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menudown }
|
||||||
|
{ send: down }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuleft }
|
||||||
|
{ send: left }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ send: menuright }
|
||||||
|
{ send: right }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: none
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_a
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ edit: movetolineend }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_e
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ edit: movetolineend }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end
|
||||||
|
modifier: control
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolineend }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: control
|
||||||
|
keycode: char_p
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuup }
|
||||||
|
{ send: up }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menudown }
|
||||||
|
{ send: down }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspace }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: none
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: delete }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: control
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: delete }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_h
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspace }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: vi_normal
|
||||||
|
event: { edit: moveleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: newline_or_run_command
|
||||||
|
modifier: none
|
||||||
|
keycode: enter
|
||||||
|
mode: emacs
|
||||||
|
event: { send: enter }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuleft }
|
||||||
|
{ send: left }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ send: menuright }
|
||||||
|
{ send: right }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: redo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_g
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: redo }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: undo }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: paste_before
|
||||||
|
modifier: control
|
||||||
|
keycode: char_y
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: pastecutbufferbefore }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutwordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_line_to_end
|
||||||
|
modifier: control
|
||||||
|
keycode: char_k
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cuttoend }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_line_from_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutfromstart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: swap_graphemes
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: swapgraphemes }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: left
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: right
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_forward
|
||||||
|
modifier: alt
|
||||||
|
keycode: delete
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: deleteword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: backspace
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_m
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_word_to_right
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_d
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutwordright }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: upper_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: uppercaseword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: lower_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_l
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: lowercaseword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: capitalize_char
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: capitalizechar }
|
||||||
|
}
|
||||||
|
# The following bindings with `*system` events require that Nushell has
|
||||||
|
# been compiled with the `system-clipboard` feature.
|
||||||
|
# This should be the case for Windows, macOS, and most Linux distributions
|
||||||
|
# Not available for example on Android (termux)
|
||||||
|
# If you want to use the system clipboard for visual selection or to
|
||||||
|
# paste directly, uncomment the respective lines and replace the version
|
||||||
|
# using the internal clipboard.
|
||||||
|
{
|
||||||
|
name: copy_selection
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: copyselection }
|
||||||
|
# event: { edit: copyselectionsystem }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_selection
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutselection }
|
||||||
|
# event: { edit: cutselectionsystem }
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# name: paste_system
|
||||||
|
# modifier: control_shift
|
||||||
|
# keycode: char_v
|
||||||
|
# mode: emacs
|
||||||
|
# event: { edit: pastesystem }
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
name: select_all
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_a
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: selectall }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||||
|
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||||
88
users/vy/nushell/env.nu
Normal file
88
users/vy/nushell/env.nu
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
# Nushell Environment Config File
|
||||||
|
#
|
||||||
|
# version = 0.83.1
|
||||||
|
|
||||||
|
def create_left_prompt [] {
|
||||||
|
mut home = ""
|
||||||
|
try {
|
||||||
|
if $nu.os-info.name == "windows" {
|
||||||
|
$home = $env.USERPROFILE
|
||||||
|
} else {
|
||||||
|
$home = $env.HOME
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let dir = ([
|
||||||
|
($env.PWD | str substring 0..($home | str length) | str replace $home "~"),
|
||||||
|
($env.PWD | str substring ($home | str length)..)
|
||||||
|
] | str join)
|
||||||
|
|
||||||
|
let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold })
|
||||||
|
let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold })
|
||||||
|
let path_segment = $"($path_color)($dir)"
|
||||||
|
|
||||||
|
$path_segment | str replace --all (char path_sep) $"($separator_color)/($path_color)"
|
||||||
|
}
|
||||||
|
|
||||||
|
def create_right_prompt [] {
|
||||||
|
# create a right prompt in magenta with green separators and am/pm underlined
|
||||||
|
let time_segment = ([
|
||||||
|
(ansi reset)
|
||||||
|
(ansi magenta)
|
||||||
|
(date now | date format '%Y/%m/%d %r')
|
||||||
|
] | str join | str replace --all "([/:])" $"(ansi green)${1}(ansi magenta)" |
|
||||||
|
str replace --all "([AP]M)" $"(ansi magenta_underline)${1}")
|
||||||
|
|
||||||
|
let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([
|
||||||
|
(ansi rb)
|
||||||
|
($env.LAST_EXIT_CODE)
|
||||||
|
] | str join)
|
||||||
|
} else { "" }
|
||||||
|
|
||||||
|
([$last_exit_code, (char space), $time_segment] | str join)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Use nushell functions to define your right and left prompt
|
||||||
|
$env.PROMPT_COMMAND = {|| create_left_prompt }
|
||||||
|
# $env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
|
||||||
|
|
||||||
|
# The prompt indicators are environmental variables that represent
|
||||||
|
# the state of the prompt
|
||||||
|
$env.PROMPT_INDICATOR = {|| " > " }
|
||||||
|
$env.PROMPT_INDICATOR_VI_INSERT = {|| "" }
|
||||||
|
$env.PROMPT_INDICATOR_VI_NORMAL = {|| " NOR " }
|
||||||
|
$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " }
|
||||||
|
|
||||||
|
# Specifies how environment variables are:
|
||||||
|
# - converted from a string to a value on Nushell startup (from_string)
|
||||||
|
# - converted from a value back to a string when running external commands (to_string)
|
||||||
|
# Note: The conversions happen *after* config.nu is loaded
|
||||||
|
$env.ENV_CONVERSIONS = {
|
||||||
|
"PATH": {
|
||||||
|
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||||
|
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||||
|
}
|
||||||
|
"Path": {
|
||||||
|
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||||
|
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Directories to search for scripts when calling source or use
|
||||||
|
$env.NU_LIB_DIRS = [
|
||||||
|
# ($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts
|
||||||
|
]
|
||||||
|
|
||||||
|
# Directories to search for plugin binaries when calling register
|
||||||
|
$env.NU_PLUGIN_DIRS = [
|
||||||
|
# ($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins
|
||||||
|
]
|
||||||
|
|
||||||
|
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
|
||||||
|
# $env.PATH = ($env.PATH | split row (char esep) | prepend '/home/tao/.cargo/bin')
|
||||||
|
|
||||||
|
# $env.GOPATH = '/home/tao/.go'
|
||||||
|
|
||||||
|
# $env.CARAPACE_BRIDGES
|
||||||
|
mkdir ~/.cache/carapace
|
||||||
|
# carapace _carapace nushell | save -f ~/.cache/carapace/init.nu
|
||||||
41
users/vy/nushell/extras/alias.nu
Normal file
41
users/vy/nushell/extras/alias.nu
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
alias xo = xdg-open
|
||||||
|
# alias h = hx (sk)
|
||||||
|
alias b = btm
|
||||||
|
alias cringe = sudo bootctl set-oneshot auto-windows
|
||||||
|
alias fetch = fastfetch
|
||||||
|
alias ff = firefox
|
||||||
|
alias pu = pueue
|
||||||
|
alias t = task
|
||||||
|
alias zl = zellij
|
||||||
|
alias snapper = snapper -c home
|
||||||
|
alias follow = readlink -f
|
||||||
|
alias la = ls -a
|
||||||
|
|
||||||
|
alias quiet = sudo ectool fanduty 42
|
||||||
|
alias loud = sudo ectool autofanctrl
|
||||||
|
|
||||||
|
alias cp-full = cp
|
||||||
|
alias cp = cp -prv
|
||||||
|
alias mv-full = mv
|
||||||
|
alias mv = mv -pv
|
||||||
|
|
||||||
|
alias j = jj
|
||||||
|
alias ja = jj log -r 'all()'
|
||||||
|
alias jc = jj desc
|
||||||
|
alias jd = jj diff
|
||||||
|
alias je = jj edit
|
||||||
|
alias jf = jj git fetch
|
||||||
|
alias jg = jj git clone --colocate
|
||||||
|
# alias jm = jj bookmark set main
|
||||||
|
alias jp = jj git push
|
||||||
|
alias js = jj status
|
||||||
|
alias jw = jj workspace update-stale
|
||||||
|
|
||||||
|
def jm [-r: string = "@"] {
|
||||||
|
mut r = $r
|
||||||
|
if (jj log -r @ --no-pager --no-graph --template 'if(empty,"empty")' | $in == "empty") {
|
||||||
|
$r = "@-"
|
||||||
|
}
|
||||||
|
jj bookmark set main -r $r
|
||||||
|
jj git push
|
||||||
|
}
|
||||||
47
users/vy/nushell/extras/nix.nu
Normal file
47
users/vy/nushell/extras/nix.nu
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
alias nd = nix develop
|
||||||
|
|
||||||
|
def ns [package] {
|
||||||
|
nix shell $"nixpkgs#($package)"
|
||||||
|
}
|
||||||
|
|
||||||
|
def nr [package] {
|
||||||
|
nix search nixpkgs $package
|
||||||
|
}
|
||||||
|
|
||||||
|
def rebuild --wrapped [subcommand, --builders: string, ...rest] {
|
||||||
|
mut builders = $builders;
|
||||||
|
if (open /etc/hostname --raw) == "NOlaptop\n" and ($builders != "") {
|
||||||
|
if (ping -c1 -W1 nocomputer | complete | $in.exit_code == 0) {
|
||||||
|
sudo nix store info --store ssh://nocomputer
|
||||||
|
} else {
|
||||||
|
$builders = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($builders == "") {
|
||||||
|
sudo systemd-inhibit nice -n19 nixos-rebuild $subcommand --flake . --impure --verbose --builders ""
|
||||||
|
} else {
|
||||||
|
sudo systemd-inhibit nice -n19 nixos-rebuild $subcommand --flake . --impure --verbose ...$rest
|
||||||
|
}
|
||||||
|
toastify send rebuild done!
|
||||||
|
}
|
||||||
|
|
||||||
|
def post-rebuild [] {
|
||||||
|
rm -r ~/.config/helix/runtime/grammars/
|
||||||
|
hx --grammar fetch; hx --grammar build
|
||||||
|
rustup update
|
||||||
|
}
|
||||||
|
|
||||||
|
def bump --wrapped [...rest] {
|
||||||
|
cd /home/tao/projects/NOflake/
|
||||||
|
jj new -m "bump"
|
||||||
|
nix flake update
|
||||||
|
# rc2nix | save -f /home/tao/projects/NOflake/users/tao/plasma.nix;
|
||||||
|
# sudo nix store ping --store ssh://nocomputer
|
||||||
|
rebuild boot ...$rest
|
||||||
|
jj new
|
||||||
|
}
|
||||||
|
|
||||||
|
alias rb = rebuild boot
|
||||||
|
alias rs = rebuild switch
|
||||||
|
alias gc = nh clean all
|
||||||
|
|
||||||
62
users/vy/nushell/extras/stuff.nu
Normal file
62
users/vy/nushell/extras/stuff.nu
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
# task
|
||||||
|
|
||||||
|
def h [query?: path] {
|
||||||
|
(if ($query != null) {sk -1 -q ($query | path basename)} else {sk -1})
|
||||||
|
| complete
|
||||||
|
| if $in.exit_code == 0 {
|
||||||
|
$in.stdout | str trim | hx $in
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def --env c [path: path = "~"] {
|
||||||
|
cd $path
|
||||||
|
l
|
||||||
|
}
|
||||||
|
|
||||||
|
def l [
|
||||||
|
--all (-a)
|
||||||
|
--long (-l)
|
||||||
|
path: path = "."
|
||||||
|
] {
|
||||||
|
if $all and $long {
|
||||||
|
ls -la $path
|
||||||
|
} else if $all {
|
||||||
|
ls -a $path
|
||||||
|
} else if $long {
|
||||||
|
ls -l $path
|
||||||
|
} else {
|
||||||
|
ls $path
|
||||||
|
}
|
||||||
|
| sort-by type name -i -n
|
||||||
|
}
|
||||||
|
|
||||||
|
def srg [] {
|
||||||
|
sk --ansi -i -c 'rg --color=always --line-number "{}"'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def "config stuff" [] {
|
||||||
|
hx ~/projects/NOflake/users/tao/nushell/stuff.nu
|
||||||
|
}
|
||||||
|
def deluge-gtk [] {
|
||||||
|
tr
|
||||||
|
deluge-gtk
|
||||||
|
}
|
||||||
|
alias deluge = deluge-gtk
|
||||||
|
def fixme [] {
|
||||||
|
rg TODO --json
|
||||||
|
| lines
|
||||||
|
| each {from json}
|
||||||
|
| where type == "match"
|
||||||
|
| get data
|
||||||
|
| flatten
|
||||||
|
| each {$"($in.text):($in.line_number)"}
|
||||||
|
| hx ...$in
|
||||||
|
}
|
||||||
|
# source ~/.cache/starship/init.nu
|
||||||
|
# source ~/.cache/carapace/init.nu
|
||||||
|
source ~/.zoxide.nu
|
||||||
|
def --env z [path: string = "~"] {
|
||||||
|
zo $path
|
||||||
|
l
|
||||||
|
}
|
||||||
77
users/vy/nushell/extras/tailscale.nu
Normal file
77
users/vy/nushell/extras/tailscale.nu
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
# see if others see us connecting from a mullvad exit node
|
||||||
|
def check-mullvad [] {
|
||||||
|
print -n "checking mullvad status"
|
||||||
|
mut check = false
|
||||||
|
mut j = null
|
||||||
|
while not $check {
|
||||||
|
print -n "."
|
||||||
|
$j = (http get https://am.i.mullvad.net/json)
|
||||||
|
$check = $j.mullvad_exit_ip
|
||||||
|
}
|
||||||
|
print ""
|
||||||
|
return $"connected to ($j.city), ($j.country)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# switch to a specific exit node, or none
|
||||||
|
def tse [exit_node: string = ""] {
|
||||||
|
if ($exit_node | is-empty) and (ps | find deluge | is-not-empty) {
|
||||||
|
return "stop summoning first!"
|
||||||
|
} else {
|
||||||
|
tailscale set --exit-node $exit_node
|
||||||
|
}
|
||||||
|
if ($exit_node | is-not-empty) {
|
||||||
|
check-mullvad | return $in
|
||||||
|
} else {
|
||||||
|
return "exit node set"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# list all mullvad exit nodes
|
||||||
|
def tsx [] {
|
||||||
|
tailscale exit-node list
|
||||||
|
| lines
|
||||||
|
| drop 4
|
||||||
|
| skip 1
|
||||||
|
| to text
|
||||||
|
| detect columns --guess
|
||||||
|
| where HOSTNAME =~ mullvad
|
||||||
|
| reject STATUS
|
||||||
|
}
|
||||||
|
|
||||||
|
# sort mullvad exit nodes by fastest ping
|
||||||
|
def tsp [] {
|
||||||
|
tsx
|
||||||
|
| where COUNTRY == USA
|
||||||
|
| par-each {
|
||||||
|
insert ping {
|
||||||
|
$in.HOSTNAME
|
||||||
|
| str replace "mullvad.ts.net" "relays.mullvad.net"
|
||||||
|
| try {
|
||||||
|
print $"pinging ($in)"
|
||||||
|
ping -c5 -q $in
|
||||||
|
| lines
|
||||||
|
| last
|
||||||
|
| split row ' '
|
||||||
|
| get 3
|
||||||
|
| split row '/'
|
||||||
|
| get 1
|
||||||
|
| into float
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
| sort-by ping
|
||||||
|
}
|
||||||
|
|
||||||
|
# switch to a random mullvad exit node
|
||||||
|
def tsr [] {
|
||||||
|
tsx
|
||||||
|
| get (random int 0..($in | length))
|
||||||
|
| tse $in.IP
|
||||||
|
| return $in
|
||||||
|
}
|
||||||
|
|
||||||
|
alias ts = tailscale
|
||||||
|
alias tss = tailscale status
|
||||||
|
alias tsu = tailscale up
|
||||||
|
alias tsd = tailscale down
|
||||||
|
alias tsa = tailscale exit-node suggest
|
||||||
119
users/vy/starship.toml
Normal file
119
users/vy/starship.toml
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
"$schema" = 'https://starship.rs/config-schema.json'
|
||||||
|
|
||||||
|
format = """
|
||||||
|
[](color_orange)\
|
||||||
|
$username\
|
||||||
|
|
||||||
|
[](bg:color_yellow fg:color_orange)\
|
||||||
|
$directory\
|
||||||
|
|
||||||
|
[](fg:color_yellow bg:color_aqua)\
|
||||||
|
${custom.jj}\
|
||||||
|
|
||||||
|
[](fg:color_aqua bg:color_blue)\
|
||||||
|
$rust\
|
||||||
|
|
||||||
|
[](fg:color_blue bg:color_bg3)\
|
||||||
|
$battery\
|
||||||
|
|
||||||
|
[](fg:color_bg3 bg:color_bg1)\
|
||||||
|
$time\
|
||||||
|
|
||||||
|
[ ](fg:color_bg1)\
|
||||||
|
$line_break$character"""
|
||||||
|
|
||||||
|
palette = 'gruvbox_dark'
|
||||||
|
[palettes.gruvbox_dark]
|
||||||
|
color_fg0 = '#fbf1c7'
|
||||||
|
color_bg1 = '#3c3836'
|
||||||
|
color_bg3 = '#665c54'
|
||||||
|
color_blue = '#458588'
|
||||||
|
color_aqua = '#689d6a'
|
||||||
|
color_green = '#98971a'
|
||||||
|
color_orange = '#d65d0e'
|
||||||
|
color_purple = '#b16286'
|
||||||
|
color_red = '#cc241d'
|
||||||
|
color_yellow = '#d79921'
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
style = "fg:color_fg0 bg:color_yellow"
|
||||||
|
format = "[ $path ]($style)"
|
||||||
|
truncation_length = 3
|
||||||
|
truncation_symbol = "…/"
|
||||||
|
|
||||||
|
[directory.substitutions]
|
||||||
|
"documents" = " "
|
||||||
|
"downloads" = " "
|
||||||
|
"music" = " "
|
||||||
|
"pictures" = " "
|
||||||
|
|
||||||
|
[rust]
|
||||||
|
# # symbol = ""
|
||||||
|
style = "bg:color_blue"
|
||||||
|
format = '[[ $symbol($version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||||
|
|
||||||
|
[time]
|
||||||
|
disabled = false
|
||||||
|
time_format = "%R"
|
||||||
|
style = "bg:color_bg1"
|
||||||
|
format = '[[ $time ](fg:color_fg0 bg:color_bg1)]($style)'
|
||||||
|
|
||||||
|
[line_break]
|
||||||
|
disabled = false
|
||||||
|
|
||||||
|
[character]
|
||||||
|
disabled = false
|
||||||
|
success_symbol = '[](bold fg:color_green)'
|
||||||
|
error_symbol = '[](bold fg:color_red)'
|
||||||
|
vimcmd_symbol = '[](bold fg:color_green)'
|
||||||
|
vimcmd_replace_one_symbol = '[](bold fg:color_purple)'
|
||||||
|
vimcmd_replace_symbol = '[](bold fg:color_purple)'
|
||||||
|
vimcmd_visual_symbol = '[](bold fg:color_yellow)'
|
||||||
|
|
||||||
|
# custom module for jj status
|
||||||
|
[custom.jj]
|
||||||
|
ignore_timeout = true
|
||||||
|
description = "current jj status"
|
||||||
|
symbol = " 🥋 "
|
||||||
|
when = "exit ((jj root | complete).exit_code)"
|
||||||
|
style = "bg:color_aqua"
|
||||||
|
command = '''
|
||||||
|
jj log --no-pager --revisions @ --no-graph --ignore-working-copy --template '
|
||||||
|
separate(
|
||||||
|
" ",
|
||||||
|
change_id.shortest(),
|
||||||
|
bookmarks,
|
||||||
|
"|",
|
||||||
|
concat(
|
||||||
|
if(conflict, "💥"),
|
||||||
|
if(divergent, "🚧"),
|
||||||
|
if(hidden, "👻"),
|
||||||
|
if(immutable, "🔒"),
|
||||||
|
),
|
||||||
|
if(empty,
|
||||||
|
"(empty)"
|
||||||
|
),
|
||||||
|
if(description.first_line().len() == 0,
|
||||||
|
"(no description set)",
|
||||||
|
if(description.first_line().substr(0, 29) == description.first_line(),
|
||||||
|
description.first_line(),
|
||||||
|
description.first_line().substr(0, 29) ++ "...",
|
||||||
|
)
|
||||||
|
),
|
||||||
|
)
|
||||||
|
'
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
# disable git modules
|
||||||
|
[git_state]
|
||||||
|
disabled = true
|
||||||
|
|
||||||
|
[git_commit]
|
||||||
|
disabled = true
|
||||||
|
|
||||||
|
[git_metrics]
|
||||||
|
disabled = true
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
disabled = true
|
||||||
17
users/vy/wezterm.lua
Normal file
17
users/vy/wezterm.lua
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
local wezterm = require 'wezterm';
|
||||||
|
local config = {
|
||||||
|
font = wezterm.font 'FiraCode Nerd Font',
|
||||||
|
color_scheme = 'GruvboxDarkHard',
|
||||||
|
window_decorations = "NONE",
|
||||||
|
|
||||||
|
warn_about_missing_glyphs = false,
|
||||||
|
check_for_updates = false,
|
||||||
|
|
||||||
|
hide_tab_bar_if_only_one_tab = true,
|
||||||
|
|
||||||
|
enable_wayland = true,
|
||||||
|
-- webgpu_power_preference = 'LowPower',
|
||||||
|
-- front_end = 'WebGpu',
|
||||||
|
}
|
||||||
|
|
||||||
|
return config
|
||||||
Loading…
Add table
Add a link
Reference in a new issue