1
1
Fork 1
mirror of https://github.com/oddlama/nix-config.git synced 2025-10-10 14:50:40 +02:00

chore: format everything

This commit is contained in:
oddlama 2024-11-26 13:34:55 +01:00
parent deca311c68
commit 7ccd7856ee
No known key found for this signature in database
GPG key ID: 14EFE510775FE39A
162 changed files with 4750 additions and 3718 deletions

View file

@ -1,4 +1,5 @@
{config, ...}: {
{ config, ... }:
{
programs.htop = {
enable = true;
settings =
@ -12,21 +13,25 @@
hide_userland_threads = 1;
sort_key = 46; # Sort by %CPU if not in tree mode
}
// (with config.lib.htop;
// (
with config.lib.htop;
leftMeters [
(bar "LeftCPUs2")
(bar "Memory")
(bar "Swap")
(bar "ZFSARC")
(text "NetworkIO")
])
// (with config.lib.htop;
]
)
// (
with config.lib.htop;
rightMeters [
(bar "RightCPUs2")
(text "LoadAverage")
(text "Tasks")
(text "Uptime")
(text "Systemd")
]);
]
);
};
}

View file

@ -3,9 +3,11 @@
lib,
nixosConfig,
...
}: let
}:
let
inherit (lib) optionals;
in {
in
{
home.persistence."/state".files = optionals config.programs.ssh.enable [
".ssh/known_hosts"
];

View file

@ -1,4 +1,5 @@
{...}: {
{ ... }:
{
imports = [
./starship.nix
./nushell
@ -7,7 +8,7 @@
programs.zoxide = {
enable = true;
options = ["--cmd p"];
options = [ "--cmd p" ];
};
# nix-index-database is enabled globally for each user in config/home-manager.nix

View file

@ -1,4 +1,5 @@
{lib, ...}: {
{ lib, ... }:
{
programs.starship = {
enable = true;
settings = {

View file

@ -2,9 +2,10 @@
lib,
pkgs,
...
}: {
}:
{
# Needed in path for zsh-histdb
home.packages = [pkgs.sqlite-interactive];
home.packages = [ pkgs.sqlite-interactive ];
programs.zsh = {
enable = true;

View file

@ -3,9 +3,11 @@
lib,
nixosConfig,
...
}: let
}:
let
inherit (lib) mkOption types;
in {
in
{
options.userSecretsName = mkOption {
default = "user-${config._module.args.name}";
type = types.str;

View file

@ -5,67 +5,72 @@
pkgs,
minimal,
...
}: let
}:
let
myuser = globals.myuser.name;
in
lib.optionalAttrs (!minimal) {
users.groups.${myuser}.gid = config.users.users.${myuser}.uid;
users.users.${myuser} = {
uid = 1000;
inherit (globals.myuser) hashedPassword;
createHome = true;
group = myuser;
extraGroups = ["wheel" "input" "video"];
isNormalUser = true;
autoSubUidGidRange = false;
shell = pkgs.zsh;
lib.optionalAttrs (!minimal) {
users.groups.${myuser}.gid = config.users.users.${myuser}.uid;
users.users.${myuser} = {
uid = 1000;
inherit (globals.myuser) hashedPassword;
createHome = true;
group = myuser;
extraGroups = [
"wheel"
"input"
"video"
];
isNormalUser = true;
autoSubUidGidRange = false;
shell = pkgs.zsh;
};
repo.secretFiles.user-myuser = ./secrets/user.nix.age;
age.secrets.my-gpg-pubkey-yubikey = {
rekeyFile = ./secrets/yubikey.gpg.age;
group = myuser;
mode = "640";
};
age.secrets."my-gpg-yubikey-keygrip.tar" = {
rekeyFile = ./secrets/gpg-keygrip.tar.age;
group = myuser;
mode = "640";
};
home-manager.users.${myuser} = {
imports = [
../config
./dev
./graphical
./neovim
./git.nix
./gpg.nix
./ssh.nix
];
# Remove dependence on username (which also comes from these secrets) to
# avoid triggering infinite recursion.
userSecretsName = "user-myuser";
home = {
username = config.users.users.${myuser}.name;
};
repo.secretFiles.user-myuser = ./secrets/user.nix.age;
# Autostart hyprland if on tty1 (once, don't restart after logout)
programs.zsh.initExtra = lib.mkOrder 9999 ''
if [[ -t 0 && "$(tty || true)" == /dev/tty1 && -z "$DISPLAY" && -z "$WAYLAND_DISPLAY" ]] && uwsm check may-start; then
echo "Login shell detected. Starting Hyprland..."
uwsm start -S -F Hyprland
fi
'';
};
age.secrets.my-gpg-pubkey-yubikey = {
rekeyFile = ./secrets/yubikey.gpg.age;
group = myuser;
mode = "640";
};
# Autologin
services.getty.autologinUser = myuser;
age.secrets."my-gpg-yubikey-keygrip.tar" = {
rekeyFile = ./secrets/gpg-keygrip.tar.age;
group = myuser;
mode = "640";
};
home-manager.users.${myuser} = {
imports = [
../config
./dev
./graphical
./neovim
./git.nix
./gpg.nix
./ssh.nix
];
# Remove dependence on username (which also comes from these secrets) to
# avoid triggering infinite recursion.
userSecretsName = "user-myuser";
home = {
username = config.users.users.${myuser}.name;
};
# Autostart hyprland if on tty1 (once, don't restart after logout)
programs.zsh.initExtra = lib.mkOrder 9999 ''
if [[ -t 0 && "$(tty || true)" == /dev/tty1 && -z "$DISPLAY" && -z "$WAYLAND_DISPLAY" ]] && uwsm check may-start; then
echo "Login shell detected. Starting Hyprland..."
uwsm start -S -F Hyprland
fi
'';
};
# Autologin
services.getty.autologinUser = myuser;
# Allow screen recorder to access the framebuffer as root
programs.gpu-screen-recorder.enable = true;
}
# Allow screen recorder to access the framebuffer as root
programs.gpu-screen-recorder.enable = true;
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
imports = [
./direnv.nix
./gdb.nix
@ -13,9 +14,13 @@
".local/share/rustup"
];
extraOutputsToInstall = ["man" "doc" "devdoc"];
extraOutputsToInstall = [
"man"
"doc"
"devdoc"
];
packages = [
(pkgs.python3.withPackages (p: with p; [numpy]))
(pkgs.python3.withPackages (p: with p; [ numpy ]))
pkgs.cloc
pkgs.d2
pkgs.gh

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
# pwndbg wraps a gdb binary for us, but we want debuginfod in there too.
# Also make it the default gdb.
pwndbgWithDebuginfod =
@ -6,15 +7,18 @@
gdb = pkgs.gdb.override {
enableDebuginfod = true;
};
})
.overrideAttrs (_finalAttrs: previousAttrs: {
installPhase =
previousAttrs.installPhase
+ ''
ln -s $out/bin/pwndbg $out/bin/gdb
'';
});
in {
}).overrideAttrs
(
_finalAttrs: previousAttrs: {
installPhase =
previousAttrs.installPhase
+ ''
ln -s $out/bin/pwndbg $out/bin/gdb
'';
}
);
in
{
home.packages = [
pwndbgWithDebuginfod
pkgs.hotspot

View file

@ -2,68 +2,73 @@
lib,
pkgs,
...
}: {
home.sessionVariables.MANPAGER = let
prg = lib.getExe (pkgs.nixvim.makeNixvim {
package = pkgs.neovim-clean;
}:
{
home.sessionVariables.MANPAGER =
let
prg = lib.getExe (
pkgs.nixvim.makeNixvim {
package = pkgs.neovim-clean;
opts = {
buftype = "nowrite";
backup = false;
modeline = false;
shelltemp = false;
swapfile = false;
undofile = false;
writebackup = false;
virtualedit = "all";
splitkeep = "screen";
termguicolors = false;
ignorecase = true;
smartcase = true;
};
opts = {
buftype = "nowrite";
backup = false;
modeline = false;
shelltemp = false;
swapfile = false;
undofile = false;
writebackup = false;
virtualedit = "all";
splitkeep = "screen";
termguicolors = false;
ignorecase = true;
smartcase = true;
};
extraConfigLua = ''
vim.opt.shadafile = vim.fn.stdpath "state" .. "/shada/man.shada";
'';
extraConfigLua = ''
vim.opt.shadafile = vim.fn.stdpath "state" .. "/shada/man.shada";
'';
keymaps = [
{
action = "<C-]>";
key = "<CR>";
mode = ["n"];
options = {
silent = true;
desc = "Jump to tag under cursor";
};
keymaps = [
{
action = "<C-]>";
key = "<CR>";
mode = [ "n" ];
options = {
silent = true;
desc = "Jump to tag under cursor";
};
}
{
action = ":pop<CR>";
key = "<BS>";
mode = [ "n" ];
options = {
silent = true;
desc = "Jump to previous tag in stack";
};
}
{
action = ":pop<CR>";
key = "<C-Left>";
mode = [ "n" ];
options = {
silent = true;
desc = "Jump to previous tag in stack";
};
}
{
action = ":tag<CR>";
key = "<C-Right>";
mode = [ "n" ];
options = {
silent = true;
desc = "Jump to next tag in stack";
};
}
];
}
{
action = ":pop<CR>";
key = "<BS>";
mode = ["n"];
options = {
silent = true;
desc = "Jump to previous tag in stack";
};
}
{
action = ":pop<CR>";
key = "<C-Left>";
mode = ["n"];
options = {
silent = true;
desc = "Jump to previous tag in stack";
};
}
{
action = ":tag<CR>";
key = "<C-Right>";
mode = ["n"];
options = {
silent = true;
desc = "Jump to next tag in stack";
};
}
];
});
in "${prg} '+Man!'";
);
in
"${prg} '+Man!'";
}

View file

@ -2,7 +2,8 @@
lib,
pkgs,
...
}: {
}:
{
home.packages = with pkgs; [
git-filter-repo
git-fuzzy
@ -66,25 +67,30 @@
gca = "git commit -v -S --amend";
gcl = "git clone";
gcr = "git commit-reuse-message -v -S";
gf = lib.getExe (pkgs.writeShellApplication {
name = "git-fixup-fzf";
runtimeInputs = [pkgs.fzf pkgs.gnugrep];
text = ''
if ! commit=$(set +o pipefail; git log --graph --color=always --format="%C(auto)%h%d %s %C(reset)%C(bold)%cr" "$@" \
| fzf --ansi --multi --no-sort --reverse --print-query --expect=ctrl-d --toggle-sort=\`); then
echo aborted
exit 0
fi
gf = lib.getExe (
pkgs.writeShellApplication {
name = "git-fixup-fzf";
runtimeInputs = [
pkgs.fzf
pkgs.gnugrep
];
text = ''
if ! commit=$(set +o pipefail; git log --graph --color=always --format="%C(auto)%h%d %s %C(reset)%C(bold)%cr" "$@" \
| fzf --ansi --multi --no-sort --reverse --print-query --expect=ctrl-d --toggle-sort=\`); then
echo aborted
exit 0
fi
sha=$(grep -o '^[^a-z0-9]*[a-z0-9]\{7\}[a-z0-9]*' <<< "$commit" | grep -o '[a-z0-9]\{7\}[a-z0-9]*')
if [[ -z "$sha" ]]; then
echo "Found no checksum for selected commit. Aborting."
exit 1
fi
sha=$(grep -o '^[^a-z0-9]*[a-z0-9]\{7\}[a-z0-9]*' <<< "$commit" | grep -o '[a-z0-9]\{7\}[a-z0-9]*')
if [[ -z "$sha" ]]; then
echo "Found no checksum for selected commit. Aborting."
exit 1
fi
git fixup "$sha" "$@"
'';
});
git fixup "$sha" "$@"
'';
}
);
gp = "git push";
gpf = "git push --force";
gs = "git s";

View file

@ -3,12 +3,15 @@
nixosConfig,
pkgs,
...
}: {
}:
{
# Make sure the keygrips exist, otherwise we'd need to run `gpg --card-status`
# before being able to use the yubikey.
home.activation.installKeygrips = lib.hm.dag.entryAfter ["writeBoundary"] ''
home.activation.installKeygrips = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
run mkdir -p "$HOME/.gnupg/private-keys-v1.d"
run ${lib.getExe pkgs.gnutar} xvf ${lib.escapeShellArg nixosConfig.age.secrets."my-gpg-yubikey-keygrip.tar".path} -C "$HOME/.gnupg/private-keys-v1.d/"
run ${lib.getExe pkgs.gnutar} xvf ${
lib.escapeShellArg nixosConfig.age.secrets."my-gpg-yubikey-keygrip.tar".path
} -C "$HOME/.gnupg/private-keys-v1.d/"
'';
programs.gpg = {

View file

@ -3,7 +3,8 @@
nixosConfig,
pkgs,
...
}: {
}:
{
imports =
[
./discord.nix

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
discord
webcord

View file

@ -2,7 +2,8 @@
lib,
pkgs,
...
}: let
}:
let
inherit (lib) concatStringsSep escapeShellArg mapAttrsToList;
env = {
MOZ_WEBRENDER = 1;
@ -23,7 +24,8 @@
rev = "116.1";
hash = "sha256-Ai8Szbrk/4FhGhS4r5gA2DqjALFRfQKo2a/TwWCIA6g=";
};
in {
in
{
programs.firefox = {
enable = true;
package = pkgs.firefox.overrideAttrs (old: {
@ -153,7 +155,15 @@ in {
search = {
force = true;
default = "Kagi";
order = ["Kagi" "DuckDuckGo" "Youtube" "NixOS Options" "Nix Packages" "GitHub" "HackerNews"];
order = [
"Kagi"
"DuckDuckGo"
"Youtube"
"NixOS Options"
"Nix Packages"
"GitHub"
"HackerNews"
];
engines = {
"Bing".metaData.hidden = true;
@ -163,7 +173,7 @@ in {
"Kagi" = {
iconUpdateURL = "https://kagi.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = ["@k"];
definedAliases = [ "@k" ];
urls = [
{
template = "https://kagi.com/search";
@ -180,7 +190,7 @@ in {
"YouTube" = {
iconUpdateURL = "https://youtube.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = ["@yt"];
definedAliases = [ "@yt" ];
urls = [
{
template = "https://www.youtube.com/results";
@ -196,7 +206,7 @@ in {
"Nix Packages" = {
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@np"];
definedAliases = [ "@np" ];
urls = [
{
template = "https://search.nixos.org/packages";
@ -216,7 +226,7 @@ in {
"NixOS Options" = {
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@no"];
definedAliases = [ "@no" ];
urls = [
{
template = "https://search.nixos.org/options";
@ -237,7 +247,7 @@ in {
"GitHub" = {
iconUpdateURL = "https://github.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = ["@gh"];
definedAliases = [ "@gh" ];
urls = [
{
@ -254,7 +264,7 @@ in {
"Home Manager" = {
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["@hm"];
definedAliases = [ "@hm" ];
url = [
{
@ -272,7 +282,7 @@ in {
"HackerNews" = {
iconUpdateURL = "https://hn.algolia.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = ["@hn"];
definedAliases = [ "@hn" ];
url = [
{
@ -512,9 +522,9 @@ in {
];
xdg.mimeApps.defaultApplications = {
"text/html" = ["firefox.desktop"];
"text/xml" = ["firefox.desktop"];
"x-scheme-handler/http" = ["firefox.desktop"];
"x-scheme-handler/https" = ["firefox.desktop"];
"text/html" = [ "firefox.desktop" ];
"text/xml" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
};
}

View file

@ -3,10 +3,12 @@
lib,
pkgs,
...
}: let
}:
let
colors = config.lib.stylix.colors.withHashtag;
in {
xdg.configFile."flameshot/flameshot.ini".source = (pkgs.formats.ini {}).generate "flameshot.ini" {
in
{
xdg.configFile."flameshot/flameshot.ini".source = (pkgs.formats.ini { }).generate "flameshot.ini" {
General = {
antialiasingPinZoom = false;
buttons = ''@Variant(\0\0\0\x7f\0\0\0\vQList<int>\0\0\0\0\x10\0\0\0\0\0\0\0\x3\0\0\0\x4\0\0\0\x5\0\0\0\x6\0\0\0\x12\0\0\0\xf\0\0\0\x13\0\0\0\a\0\0\0\t\0\0\0\x10\0\0\0\n\0\0\0\v\0\0\0\x17\0\0\0\f\0\0\0\x11)'';

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
# XXX: to enable dark mode, no idea why it isn't detected by default.
# dconf write /com/usebottles/bottles/dark-theme true

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
# XXX: Do NOT enable "Use discrete GPU" when running on nvidia by default.
# Otherwise the xorg server will crash big time (no logs). After some gdb
# debugging the culprit seems to be the x11 nvidia driver (nvidia_drv.so),

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
home.persistence."/state".directories = [
".config/awakened-poe-trade"
];

View file

@ -3,7 +3,8 @@
pkgs,
nixosConfig,
...
}: let
}:
let
save-replay = pkgs.writeShellApplication {
name = "gpu-screen-recorder-save-replay";
runtimeInputs = [
@ -34,7 +35,7 @@
on-stop-service = pkgs.writeShellApplication {
name = "gpu-screen-recorder-stop-service";
runtimeInputs = [pkgs.libnotify];
runtimeInputs = [ pkgs.libnotify ];
text = ''
if [[ "$SERVICE_RESULT" == "success" ]]; then
notify-send '🎥 GPU Screen Recorder' '🔴 Replay service stopped!' \
@ -85,7 +86,8 @@
-o "$GSR_OUTPUTDIR"
'';
};
in {
in
{
lib.gpu-screen-recorder = {
inherit save-replay;
};

View file

@ -7,9 +7,9 @@
nixosConfig,
pkgs,
...
}: let
inherit
(lib)
}:
let
inherit (lib)
concatMap
elem
flip
@ -20,7 +20,8 @@
;
rofi-drun = "rofi -show drun -theme ~/.config/rofi/launchers/type-1/style-10.rasi";
in {
in
{
home.packages = with pkgs; [
wl-clipboard
];
@ -94,12 +95,10 @@ in {
"SUPER + SHIFT,comma,movetoworkspacesilent,-1"
"SUPER + SHIFT,period,movetoworkspacesilent,+1"
]
++ flip concatMap (map toString (lib.lists.range 1 9)) (
x: [
"SUPER,${x},workspace,${x}"
"SUPER + SHIFT,${x},movetoworkspacesilent,${x}"
]
);
++ flip concatMap (map toString (lib.lists.range 1 9)) (x: [
"SUPER,${x},workspace,${x}"
"SUPER + SHIFT,${x},movetoworkspacesilent,${x}"
]);
bindm = [
# mouse movements
@ -200,10 +199,12 @@ in {
];
})
(mkIf (nixosConfig.node.name == "nom") {
monitor = [
];
workspace = [
];
monitor =
[
];
workspace =
[
];
})
];

View file

@ -139,7 +139,7 @@ fn cmd_toggle_layout(config: &Config, workspace: &Node) -> Option<String> {
// Don't do anything if the layout is already correct
if &con.layout == desired_layout {
return None
return None;
}
con = &con.nodes[0];

View file

@ -4,9 +4,9 @@
nixosConfig,
pkgs,
...
}: let
inherit
(lib)
}:
let
inherit (lib)
escapeShellArg
getExe
mapAttrs'
@ -26,7 +26,7 @@
meta = with lib; {
description = "A helper utility to allow assigning a layout to each workspace in i3";
license = licenses.mit;
maintainers = with maintainers; [oddlama];
maintainers = with maintainers; [ oddlama ];
mainProgram = "i3-per-workspace-layout";
};
};
@ -46,11 +46,12 @@
meta = with lib; {
description = "Better focus navigation for sway and i3";
license = licenses.mit;
maintainers = with maintainers; [oddlama];
maintainers = with maintainers; [ oddlama ];
mainProgram = "sway-overfocus";
};
};
in {
in
{
xsession.numlock.enable = true;
xsession.windowManager.i3 = {
enable = true;
@ -148,107 +149,126 @@ in {
window.titlebar = false;
floating.criteria = [
{class = "^Pavucontrol$";}
{ class = "^Pavucontrol$"; }
#{class = "^awakened-poe-trade$";}
];
assigns = {
"1" = [
{class = "^firefox$";}
{ class = "^firefox$"; }
];
"5" = [
{class = "^bottles$";}
{class = "^steam$";}
{class = "^prismlauncher$";}
{ class = "^bottles$"; }
{ class = "^steam$"; }
{ class = "^prismlauncher$"; }
];
"7" = [
{class = "^obsidian$";}
{class = "^discord$";}
{class = "^Signal$";}
{class = "^TelegramDesktop$";}
{ class = "^obsidian$"; }
{ class = "^discord$"; }
{ class = "^Signal$"; }
{ class = "^TelegramDesktop$"; }
];
"8" = [
{class = "^Spotify$";}
{ class = "^Spotify$"; }
];
};
# TODO eww -> bars = [ ];
workspaceOutputAssign =
{
kroma = let
monitorMain = "DP-2";
monitorLeft = "DP-4";
in
map (x: {
workspace = x;
output = monitorMain;
}) ["1" "2" "3" "4" "5" "6"]
++ map (x: {
workspace = x;
output = monitorLeft;
}) ["7" "8" "9"];
kroma =
let
monitorMain = "DP-2";
monitorLeft = "DP-4";
in
map
(x: {
workspace = x;
output = monitorMain;
})
[
"1"
"2"
"3"
"4"
"5"
"6"
]
++
map
(x: {
workspace = x;
output = monitorLeft;
})
[
"7"
"8"
"9"
];
}
.${nixosConfig.node.name}
or [];
.${nixosConfig.node.name} or [ ];
startup = let
configLayouts = (pkgs.formats.toml {}).generate "per-workspace-layouts.toml" {
force = true;
layouts = {
"1" = "tabbed";
"5" = "tabbed";
"7" = "tabbed";
"8" = "tabbed";
"9" = "tabbed";
startup =
let
configLayouts = (pkgs.formats.toml { }).generate "per-workspace-layouts.toml" {
force = true;
layouts = {
"1" = "tabbed";
"5" = "tabbed";
"7" = "tabbed";
"8" = "tabbed";
"9" = "tabbed";
};
};
};
in [
{
command = "${getExe i3-per-workspace-layout} --config ${configLayouts}";
always = false;
notification = false;
}
];
in
[
{
command = "${getExe i3-per-workspace-layout} --config ${configLayouts}";
always = false;
notification = false;
}
];
};
};
systemd.user.services = {
wired.Install.WantedBy = lib.mkForce ["i3-session.target"];
flameshot.Install.WantedBy = lib.mkForce ["i3-session.target"];
wired.Install.WantedBy = lib.mkForce [ "i3-session.target" ];
flameshot.Install.WantedBy = lib.mkForce [ "i3-session.target" ];
};
programs.autorandr.enable = true;
programs.autorandr.profiles =
{
kroma = let
monitorMain = "DP-2";
monitorLeft = "DP-4";
in {
main = {
config = {
${monitorLeft} = {
enable = true;
mode = "3840x2160";
rate = "60.00";
position = "0x0";
kroma =
let
monitorMain = "DP-2";
monitorLeft = "DP-4";
in
{
main = {
config = {
${monitorLeft} = {
enable = true;
mode = "3840x2160";
rate = "60.00";
position = "0x0";
};
${monitorMain} = {
enable = true;
primary = true;
mode = "3840x2160";
rate = "144.00";
position = "3840x0";
};
};
${monitorMain} = {
enable = true;
primary = true;
mode = "3840x2160";
rate = "144.00";
position = "3840x0";
fingerprint = {
${monitorMain} = "00ffffffffffff001e6d9a5b078e0a000b1f0104b53c2278f919c1ae5044af260e5054210800d1c061404540314001010101010101014dd000a0f0703e803020350058542100001a000000fd0c3090505086010a202020202020000000fc003237474e3935300a2020202020000000ff003131314e5447594c423731390a02e602032d7123090707830100004410040301e2006ae305c000e60605017360216d1a0000020b309000047321602900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47012790300030128d8060284ff0e9f002f801f006f08910002000400404f0104ff0e9f002f801f006f086200020004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d90";
${monitorLeft} = "00ffffffffffff001e6d095b39790700081a0104b53c22789f3035a7554ea3260f50542108007140818081c0a9c0d1c08100010101014dd000a0f0703e803020650c58542100001a286800a0f0703e800890650c58542100001a000000fd00283d878738010a202020202020000000fc004c4720556c7472612048440a2001850203117144900403012309070783010000023a801871382d40582c450058542100001e565e00a0a0a029503020350058542100001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c8";
};
};
fingerprint = {
${monitorMain} = "00ffffffffffff001e6d9a5b078e0a000b1f0104b53c2278f919c1ae5044af260e5054210800d1c061404540314001010101010101014dd000a0f0703e803020350058542100001a000000fd0c3090505086010a202020202020000000fc003237474e3935300a2020202020000000ff003131314e5447594c423731390a02e602032d7123090707830100004410040301e2006ae305c000e60605017360216d1a0000020b309000047321602900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47012790300030128d8060284ff0e9f002f801f006f08910002000400404f0104ff0e9f002f801f006f086200020004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d90";
${monitorLeft} = "00ffffffffffff001e6d095b39790700081a0104b53c22789f3035a7554ea3260f50542108007140818081c0a9c0d1c08100010101014dd000a0f0703e803020650c58542100001a286800a0f0703e800890650c58542100001a000000fd00283d878738010a202020202020000000fc004c4720556c7472612048440a2001850203117144900403012309070783010000023a801871382d40582c450058542100001e565e00a0a0a029503020350058542100001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c8";
};
};
};
}
.${nixosConfig.node.name}
or {};
.${nixosConfig.node.name} or { };
home.sessionVariables = {
# Make gtk apps bigger

View file

@ -3,7 +3,8 @@
lib,
pkgs,
...
}: {
}:
{
home.sessionVariables = {
TERMINFO_DIRS = "${pkgs.kitty.terminfo.outPath}/share/terminfo";
};

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
@ -7,26 +8,26 @@
};
};
home.file = let
rofi-themes = pkgs.fetchFromGitHub {
owner = "adi1090x";
repo = "rofi";
rev = "3a28753b0a8fb666f4bd0394ac4b0e785577afa2";
hash = "sha256-G3sAyIZbq1sOJxf+NBlXMOtTMiBCn6Sat8PHryxRS0w=";
home.file =
let
rofi-themes = pkgs.fetchFromGitHub {
owner = "adi1090x";
repo = "rofi";
rev = "3a28753b0a8fb666f4bd0394ac4b0e785577afa2";
hash = "sha256-G3sAyIZbq1sOJxf+NBlXMOtTMiBCn6Sat8PHryxRS0w=";
};
in
{
".config/rofi/colors" = {
source = "${rofi-themes}/files/colors";
recursive = true;
};
".config/rofi/launchers/type-1/style-10.rasi".source = "${rofi-themes}/files/launchers/type-1/style-10.rasi";
".config/rofi/launchers/type-1/shared/colors.rasi".text =
# css
''
@import "~/.config/rofi/colors/onedark.rasi"
'';
".config/rofi/launchers/type-1/shared/fonts.rasi".text = "";
};
in {
".config/rofi/colors" = {
source = "${rofi-themes}/files/colors";
recursive = true;
};
".config/rofi/launchers/type-1/style-10.rasi".source = "${rofi-themes}/files/launchers/type-1/style-10.rasi";
".config/rofi/launchers/type-1/shared/colors.rasi".text =
/*
css
*/
''
@import "~/.config/rofi/colors/onedark.rasi"
'';
".config/rofi/launchers/type-1/shared/fonts.rasi".text = "";
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
signal-desktop
];

View file

@ -2,7 +2,8 @@
config,
lib,
...
}: {
}:
{
services.swaync = {
enable = true;
settings = {

View file

@ -2,7 +2,8 @@
lib,
pkgs,
...
}: let
}:
let
swww-update-wallpaper = pkgs.writeShellApplication {
name = "swww-update-wallpaper";
runtimeInputs = [
@ -20,15 +21,16 @@
--transition-duration 1.5
'';
};
in {
in
{
systemd.user = {
services = {
swww = {
Install.WantedBy = ["graphical-session.target"];
Install.WantedBy = [ "graphical-session.target" ];
Unit = {
Description = "Wayland wallpaper daemon";
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.swww}/bin/swww-daemon";
@ -36,7 +38,7 @@ in {
};
};
swww-update-wallpaper = {
Install.WantedBy = ["default.target"];
Install.WantedBy = [ "default.target" ];
Unit.Description = "Update the wallpaper";
Service = {
Type = "oneshot";
@ -47,7 +49,7 @@ in {
};
};
timers.swww-update-wallpaper = {
Install.WantedBy = ["timers.target"];
Install.WantedBy = [ "timers.target" ];
Unit.Description = "Periodically switch to a new wallpaper";
Timer.OnCalendar = "*:0/5"; # Every 5 minutes
};

View file

@ -3,7 +3,8 @@
nixosConfig,
pkgs,
...
}: {
}:
{
xresources.properties = {
"Xft.hinting" = true;
"Xft.antialias" = true;
@ -13,29 +14,31 @@
"Xft.rgba" = "rgb";
};
gtk = let
gtk34extraConfig = {
gtk-application-prefer-dark-theme = 1;
gtk-cursor-theme-size = 32;
gtk-enable-animations = true;
gtk-xft-antialias = 1;
gtk-xft-dpi = 160; # XXX: delete for wayland?
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintfull";
gtk-xft-rgba = "rgb";
};
in {
enable = true;
gtk =
let
gtk34extraConfig = {
gtk-application-prefer-dark-theme = 1;
gtk-cursor-theme-size = 32;
gtk-enable-animations = true;
gtk-xft-antialias = 1;
gtk-xft-dpi = 160; # XXX: delete for wayland?
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintfull";
gtk-xft-rgba = "rgb";
};
in
{
enable = true;
iconTheme = {
name = "WhiteSur-dark";
package = pkgs.whitesur-icon-theme;
};
iconTheme = {
name = "WhiteSur-dark";
package = pkgs.whitesur-icon-theme;
};
gtk2.extraConfig = "gtk-application-prefer-dark-theme = true";
gtk3.extraConfig = gtk34extraConfig;
gtk4.extraConfig = gtk34extraConfig;
};
gtk2.extraConfig = "gtk-application-prefer-dark-theme = true";
gtk3.extraConfig = gtk34extraConfig;
gtk4.extraConfig = gtk34extraConfig;
};
home.sessionVariables.GTK_THEME = config.gtk.theme.name;

View file

@ -2,16 +2,19 @@
config,
lib,
...
}: {
accounts.email.accounts = lib.flip lib.mapAttrs' config.userSecrets.accounts.email (_n: v:
}:
{
accounts.email.accounts = lib.flip lib.mapAttrs' config.userSecrets.accounts.email (
_n: v:
lib.nameValuePair v.address (
lib.recursiveUpdate v {
thunderbird = {
enable = true;
profiles = ["personal"];
profiles = [ "personal" ];
};
}
));
)
);
programs.thunderbird = {
enable = true;
@ -81,8 +84,8 @@
];
xdg.mimeApps.defaultApplications = {
"x-scheme-handler/mailto" = ["thunderbird.desktop"];
"x-scheme-handler/mid" = ["thunderbird.desktop"];
"message/rfc822" = ["thunderbird.desktop"];
"x-scheme-handler/mailto" = [ "thunderbird.desktop" ];
"x-scheme-handler/mid" = [ "thunderbird.desktop" ];
"message/rfc822" = [ "thunderbird.desktop" ];
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
ts3 = pkgs.writeShellApplication {
name = "teamspeak3";
runtimeInputs = [
@ -9,8 +10,9 @@
exec ts3client
'';
};
in {
home.packages = [ts3];
in
{
home.packages = [ ts3 ];
home.persistence."/persist".directories = [
".config/teamspeak3"
];

View file

@ -2,7 +2,8 @@
lib,
pkgs,
...
}: {
}:
{
programs.waybar = {
enable = true;
systemd.enable = true;
@ -121,7 +122,17 @@
battery = {
interval = 2;
format = "{icon} {capacity}%";
format-icons = ["" "" "" "" "" "" "" "" ""];
format-icons = [
""
""
""
""
""
""
""
""
""
];
states = {
warning = 25;
critical = 15;
@ -154,7 +165,10 @@
wireplumber = {
format = "<tt>{icon} {volume}%</tt>";
format-muted = "<tt> {volume}%</tt>";
format-icons = ["" ""];
format-icons = [
""
""
];
on-click = "${pkgs.hyprland}/bin/hyprctl dispatch exec \"[float;pin;move 80% 50%;size 20% 50%;noborder]\" ${lib.getExe pkgs.pwvucontrol}";
on-click-middle = "${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 100%";
on-click-right = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
@ -247,7 +261,7 @@
};
systemd.user.services.waybar = {
Unit.After = ["graphical-session.target"];
Service.Slice = ["app-graphical.slice"];
Unit.After = [ "graphical-session.target" ];
Service.Slice = [ "app-graphical.slice" ];
};
}

File diff suppressed because it is too large Load diff

View file

@ -1,89 +1,87 @@
{
programs.nixvim.plugins.alpha = {
enable = true;
layout = let
padding = val: {
type = "padding";
inherit val;
};
in [
(padding 2)
{
opts = {
hl = "Type";
position = "center";
layout =
let
padding = val: {
type = "padding";
inherit val;
};
type = "text";
val = [
" "
" "
" "
" "
" "
" "
];
}
(padding 2)
{
type = "group";
opts.spacing = 1;
val = [
{
type = "button";
val = " New file";
on_press.__raw =
/*
lua
*/
"function() vim.cmd[[enew]] end";
opts = {
shortcut = "e";
position = "center";
hl_shortcut = "keyword";
align_shortcut = "right";
width = 50;
cursor = 3;
keymap = [
"n"
"e"
":enew<CR>"
{
noremap = true;
silent = true;
nowait = true;
}
];
};
}
{
type = "button";
val = "󰅙 Quit Neovim";
on_press.__raw =
/*
lua
*/
"function() vim.cmd[[qa]] end";
opts = {
shortcut = "q";
position = "center";
hl_shortcut = "keyword";
align_shortcut = "right";
width = 50;
cursor = 3;
keymap = [
"n"
"q"
":qa<CR>"
{
noremap = true;
silent = true;
nowait = true;
}
];
};
}
];
}
];
in
[
(padding 2)
{
opts = {
hl = "Type";
position = "center";
};
type = "text";
val = [
" "
" "
" "
" "
" "
" "
];
}
(padding 2)
{
type = "group";
opts.spacing = 1;
val = [
{
type = "button";
val = " New file";
on_press.__raw =
# lua
"function() vim.cmd[[enew]] end";
opts = {
shortcut = "e";
position = "center";
hl_shortcut = "keyword";
align_shortcut = "right";
width = 50;
cursor = 3;
keymap = [
"n"
"e"
":enew<CR>"
{
noremap = true;
silent = true;
nowait = true;
}
];
};
}
{
type = "button";
val = "󰅙 Quit Neovim";
on_press.__raw =
# lua
"function() vim.cmd[[qa]] end";
opts = {
shortcut = "q";
position = "center";
hl_shortcut = "keyword";
align_shortcut = "right";
width = 50;
cursor = 3;
keymap = [
"n"
"q"
":qa<CR>"
{
noremap = true;
silent = true;
nowait = true;
}
];
};
}
];
}
];
};
}

View file

@ -4,24 +4,42 @@
lualine = {
enable = true;
settings = {
extensions = ["fzf" "nvim-dap-ui" "symbols-outline" "trouble" "neo-tree" "quickfix" "fugitive"];
extensions = [
"fzf"
"nvim-dap-ui"
"symbols-outline"
"trouble"
"neo-tree"
"quickfix"
"fugitive"
];
component_separators.left = null;
component_separators.right = null;
sections = {
lualine_a = ["mode"];
lualine_b = ["branch" "filename"];
lualine_c = ["diff" "diagnostics"];
lualine_x = ["encoding" "fileformat" "filetype"];
lualine_y = ["progress"];
lualine_z = ["location"];
lualine_a = [ "mode" ];
lualine_b = [
"branch"
"filename"
];
lualine_c = [
"diff"
"diagnostics"
];
lualine_x = [
"encoding"
"fileformat"
"filetype"
];
lualine_y = [ "progress" ];
lualine_z = [ "location" ];
};
inactive_sections = {
lualine_a = ["filename"];
lualine_b = [];
lualine_c = ["diagnostics"];
lualine_x = [];
lualine_y = [];
lualine_z = ["location"];
lualine_a = [ "filename" ];
lualine_b = [ ];
lualine_c = [ "diagnostics" ];
lualine_x = [ ];
lualine_y = [ ];
lualine_z = [ "location" ];
};
};
};

View file

@ -25,14 +25,14 @@
enable = true;
settings = {
sources = [
{name = "nvim_lsp_signature_help";}
{name = "nvim_lsp";}
{name = "nvim_lsp_document_symbol";}
{name = "path";}
{name = "treesitter";}
{name = "dap";}
{ name = "nvim_lsp_signature_help"; }
{ name = "nvim_lsp"; }
{ name = "nvim_lsp_document_symbol"; }
{ name = "path"; }
{ name = "treesitter"; }
{ name = "dap"; }
# {name = "luasnip";}
{name = "emoji";}
{ name = "emoji"; }
];
mapping = {
"<CR>" =
@ -100,7 +100,11 @@
end, {"i", "s"})
'';
};
formatting.fields = ["abbr" "kind" "menu"];
formatting.fields = [
"abbr"
"kind"
"menu"
];
formatting.format =
# lua
''

View file

@ -33,12 +33,13 @@
# Hide line numbers in terminal windows
autoCmd = [
{
event = ["BufEnter" "BufWinEnter"];
pattern = ["term://*"];
event = [
"BufEnter"
"BufWinEnter"
];
pattern = [ "term://*" ];
callback.__raw =
/*
lua
*/
# lua
''
function()
vim.bo.number = false
@ -46,12 +47,10 @@
'';
}
{
event = ["WinEnter"];
pattern = ["*"];
event = [ "WinEnter" ];
pattern = [ "*" ];
callback.__raw =
/*
lua
*/
# lua
''
function()
pcall(function()
@ -67,172 +66,268 @@
];
# TODO split into files
keymaps = let
keymap = mode: key: action: desc: {
inherit action key mode;
options = {
silent = true;
inherit desc;
keymaps =
let
keymap = mode: key: action: desc: {
inherit action key mode;
options = {
silent = true;
inherit desc;
};
};
};
in [
# -------------------------------------------------------------------------------------------------
# General
# -------------------------------------------------------------------------------------------------
in
[
# -------------------------------------------------------------------------------------------------
# General
# -------------------------------------------------------------------------------------------------
# Shift + <up/down> scroll with cursor locked to position
(keymap ["n" "v"] "<S-Down>" "<C-e>" "")
(keymap ["n" "v"] "<S-Up>" "<C-y>" "")
(keymap ["i"] "<S-Down>" "<C-x><C-e>" "")
(keymap ["i"] "<S-Up>" "<C-x><C-y>" "")
# Shift + <up/down> scroll with cursor locked to position
(keymap [
"n"
"v"
] "<S-Down>" "<C-e>" "")
(keymap [
"n"
"v"
] "<S-Up>" "<C-y>" "")
(keymap [ "i" ] "<S-Down>" "<C-x><C-e>" "")
(keymap [ "i" ] "<S-Up>" "<C-x><C-y>" "")
# Shift + Alt + <arrow keys> change the current window size
(keymap ["n"] "<M-S-Up>" ":resize -2<CR>" "")
(keymap ["n"] "<M-S-Down>" ":resize +2<CR>" "")
(keymap ["n"] "<M-S-Left>" ":vertical resize -2<CR>" "")
(keymap ["n"] "<M-S-Right>" ":vertical resize +2<CR>" "")
# Shift + Alt + <arrow keys> change the current window size
(keymap [ "n" ] "<M-S-Up>" ":resize -2<CR>" "")
(keymap [ "n" ] "<M-S-Down>" ":resize +2<CR>" "")
(keymap [ "n" ] "<M-S-Left>" ":vertical resize -2<CR>" "")
(keymap [ "n" ] "<M-S-Right>" ":vertical resize +2<CR>" "")
# Allow exiting terminal mode
(keymap ["t"] "<C-w><Esc>" "<C-\\><C-n>" "")
# Allow C-w in terminal mode
(keymap ["t"] "<C-w>" "<C-\\><C-n><C-w>" "")
# Allow exiting terminal mode
(keymap [ "t" ] "<C-w><Esc>" "<C-\\><C-n>" "")
# Allow C-w in terminal mode
(keymap [ "t" ] "<C-w>" "<C-\\><C-n><C-w>" "")
# Open fixed size terminal window at the bottom
(keymap ["n"] "<leader><CR>" ":belowright new | setlocal wfh | resize 10 | terminal<CR>" "Open Terminal")
# Open fixed size terminal window at the bottom
(keymap [
"n"
] "<leader><CR>" ":belowright new | setlocal wfh | resize 10 | terminal<CR>" "Open Terminal")
# -------------------------------------------------------------------------------------------------
# Language server
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Language server
# -------------------------------------------------------------------------------------------------
(keymap ["n"] "gD" "<cmd>lua vim.lsp.buf.declaration()<CR>" "Goto declaration")
(keymap ["n"] "gd" "<cmd>lua require('telescope.builtin').lsp_definitions()<CR>" "Goto definition")
(keymap ["n"] "K" "<cmd>lua vim.lsp.buf.hover()<CR>" "Hover")
(keymap ["n"] "gi" "<cmd>lua require('telescope.builtin').lsp_implementations()<CR>" "Goto implementation")
(keymap ["n"] "<C-k>" "<cmd>lua vim.lsp.buf.signature_help()<CR>" "Signature Help")
(keymap ["n"] "<leader>wa" "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>" "Add workspace folder")
(keymap ["n"] "<leader>wr" "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>" "Remove workspace folder")
(keymap ["n"] "<leader>wl" "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>" "List workspace folders")
(keymap ["n"] "gt" "<cmd>lua require('telescope.builtin').lsp_type_definitions()<CR>" "Goto type-definition")
(keymap ["n"] "<leader>r" "<cmd>lua vim.lsp.buf.rename()<CR>" "Rename")
(keymap ["n"] "<leader>a" "<cmd>lua vim.lsp.buf.code_action()<CR>" "Code Action")
(keymap ["n"] "gr" "<cmd>lua require('telescope.builtin').lsp_references()<CR>" "References")
(keymap ["n"] "gl" "<cmd>lua vim.diagnostic.open_float()<CR>" "Diagnostic float")
(keymap ["n"] "[d" "<cmd>lua vim.diagnostic.goto_prev()<CR>" "Next diagnostic")
(keymap ["n"] "]d" "<cmd>lua vim.diagnostic.goto_next()<CR>" "Previous diagnostic")
(keymap ["n"] "<leader>q" "<cmd>lua vim.diagnostic.setloclist()<CR>" "Show diagnostic quickfix list")
(keymap ["n"] "<leader>f" "<cmd>lua vim.lsp.buf.format { async = true }<CR>" "Format code")
(keymap [ "n" ] "gD" "<cmd>lua vim.lsp.buf.declaration()<CR>" "Goto declaration")
(keymap [
"n"
] "gd" "<cmd>lua require('telescope.builtin').lsp_definitions()<CR>" "Goto definition")
(keymap [ "n" ] "K" "<cmd>lua vim.lsp.buf.hover()<CR>" "Hover")
(keymap [
"n"
] "gi" "<cmd>lua require('telescope.builtin').lsp_implementations()<CR>" "Goto implementation")
(keymap [ "n" ] "<C-k>" "<cmd>lua vim.lsp.buf.signature_help()<CR>" "Signature Help")
(keymap [
"n"
] "<leader>wa" "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>" "Add workspace folder")
(keymap [
"n"
] "<leader>wr" "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>" "Remove workspace folder")
(keymap [ "n" ] "<leader>wl" "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>"
"List workspace folders"
)
(keymap [
"n"
] "gt" "<cmd>lua require('telescope.builtin').lsp_type_definitions()<CR>" "Goto type-definition")
(keymap [ "n" ] "<leader>r" "<cmd>lua vim.lsp.buf.rename()<CR>" "Rename")
(keymap [ "n" ] "<leader>a" "<cmd>lua vim.lsp.buf.code_action()<CR>" "Code Action")
(keymap [ "n" ] "gr" "<cmd>lua require('telescope.builtin').lsp_references()<CR>" "References")
(keymap [ "n" ] "gl" "<cmd>lua vim.diagnostic.open_float()<CR>" "Diagnostic float")
(keymap [ "n" ] "[d" "<cmd>lua vim.diagnostic.goto_prev()<CR>" "Next diagnostic")
(keymap [ "n" ] "]d" "<cmd>lua vim.diagnostic.goto_next()<CR>" "Previous diagnostic")
(keymap [
"n"
] "<leader>q" "<cmd>lua vim.diagnostic.setloclist()<CR>" "Show diagnostic quickfix list")
(keymap [ "n" ] "<leader>f" "<cmd>lua vim.lsp.buf.format { async = true }<CR>" "Format code")
# -------------------------------------------------------------------------------------------------
# Plugin: Easy Align
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: Easy Align
# -------------------------------------------------------------------------------------------------
(keymap ["n"] "<leader>A" "<Plug>(EasyAlign)" "Easy-Align")
(keymap ["v"] "<leader>A" "<Plug>(EasyAlign)" "Easy-Align")
(keymap [ "n" ] "<leader>A" "<Plug>(EasyAlign)" "Easy-Align")
(keymap [ "v" ] "<leader>A" "<Plug>(EasyAlign)" "Easy-Align")
# -------------------------------------------------------------------------------------------------
# Plugin: Undotree
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: Undotree
# -------------------------------------------------------------------------------------------------
(keymap ["n"] "<leader>u" ":UndotreeToggle<CR>" "Undotree")
(keymap [ "n" ] "<leader>u" ":UndotreeToggle<CR>" "Undotree")
# -------------------------------------------------------------------------------------------------
# Plugin: Better Whitespace
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: Better Whitespace
# -------------------------------------------------------------------------------------------------
(keymap ["n"] "<leader>$" ":StripWhitespace<CR>" "Strip whitespace")
(keymap [ "n" ] "<leader>$" ":StripWhitespace<CR>" "Strip whitespace")
# -------------------------------------------------------------------------------------------------
# Plugin: Neotree
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: Neotree
# -------------------------------------------------------------------------------------------------
# Mappings to open the tree / find the current file
(keymap ["n"] "<leader>t" ":Neotree toggle<CR>" "Filetree toggle")
(keymap ["n"] "<leader>T" ":Neotree reveal<CR>" "Filetree reveal current file")
(keymap ["n"] "<leader>G" ":Neotree float git_status<CR>" "Show git status")
(keymap ["n"] "<leader>b" ":Neotree float buffers<CR>" "Show open buffers")
# Mappings to open the tree / find the current file
(keymap [ "n" ] "<leader>t" ":Neotree toggle<CR>" "Filetree toggle")
(keymap [ "n" ] "<leader>T" ":Neotree reveal<CR>" "Filetree reveal current file")
(keymap [ "n" ] "<leader>G" ":Neotree float git_status<CR>" "Show git status")
(keymap [ "n" ] "<leader>b" ":Neotree float buffers<CR>" "Show open buffers")
# -------------------------------------------------------------------------------------------------
# Plugin: Sandwich
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: Sandwich
# -------------------------------------------------------------------------------------------------
(keymap ["n" "v"] "m" "<Plug>(operator-sandwich-add)" "Sandwich Add")
(keymap ["n" "v"] "M" "<Plug>(operator-sandwich-delete)" "Sandwich Delete")
(keymap ["n" "v"] "<C-m>" "<Plug>(operator-sandwich-replace)" "Sandwich Replace")
(keymap [
"n"
"v"
] "m" "<Plug>(operator-sandwich-add)" "Sandwich Add")
(keymap [
"n"
"v"
] "M" "<Plug>(operator-sandwich-delete)" "Sandwich Delete")
(keymap [
"n"
"v"
] "<C-m>" "<Plug>(operator-sandwich-replace)" "Sandwich Replace")
# -------------------------------------------------------------------------------------------------
# Plugin: gomove
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: gomove
# -------------------------------------------------------------------------------------------------
#(keymap ["n"] "<M-Left>" "<Plug>GoNSMLeft" "")
#(keymap ["n"] "<M-Down>" "<Plug>GoNSMDown" "")
#(keymap ["n"] "<M-Up>" "<Plug>GoNSMUp" "")
#(keymap ["n"] "<M-Right>" "<Plug>GoNSMRight" "")
#(keymap ["n"] "<M-Left>" "<Plug>GoNSMLeft" "")
#(keymap ["n"] "<M-Down>" "<Plug>GoNSMDown" "")
#(keymap ["n"] "<M-Up>" "<Plug>GoNSMUp" "")
#(keymap ["n"] "<M-Right>" "<Plug>GoNSMRight" "")
(keymap ["x"] "<M-Left>" "<Plug>GoVSMLeft" "")
(keymap ["x"] "<M-Down>" "<Plug>GoVSMDown" "")
(keymap ["x"] "<M-Up>" "<Plug>GoVSMUp" "")
(keymap ["x"] "<M-Right>" "<Plug>GoVSMRight" "")
(keymap [ "x" ] "<M-Left>" "<Plug>GoVSMLeft" "")
(keymap [ "x" ] "<M-Down>" "<Plug>GoVSMDown" "")
(keymap [ "x" ] "<M-Up>" "<Plug>GoVSMUp" "")
(keymap [ "x" ] "<M-Right>" "<Plug>GoVSMRight" "")
#(keymap ["n"] "<S-M-Left>" "<Plug>GoNSDLeft" "")
#(keymap ["n"] "<S-M-Down>" "<Plug>GoNSDDown" "")
#(keymap ["n"] "<S-M-Up>" "<Plug>GoNSDUp" "")
#(keymap ["n"] "<S-M-Right>" "<Plug>GoNSDRight" "")
#(keymap ["n"] "<S-M-Left>" "<Plug>GoNSDLeft" "")
#(keymap ["n"] "<S-M-Down>" "<Plug>GoNSDDown" "")
#(keymap ["n"] "<S-M-Up>" "<Plug>GoNSDUp" "")
#(keymap ["n"] "<S-M-Right>" "<Plug>GoNSDRight" "")
(keymap ["x"] "<S-M-Left>" "<Plug>GoVSDLeft" "")
(keymap ["x"] "<S-M-Down>" "<Plug>GoVSDDown" "")
(keymap ["x"] "<S-M-Up>" "<Plug>GoVSDUp" "")
(keymap ["x"] "<S-M-Right>" "<Plug>GoVSDRight" "")
(keymap [ "x" ] "<S-M-Left>" "<Plug>GoVSDLeft" "")
(keymap [ "x" ] "<S-M-Down>" "<Plug>GoVSDDown" "")
(keymap [ "x" ] "<S-M-Up>" "<Plug>GoVSDUp" "")
(keymap [ "x" ] "<S-M-Right>" "<Plug>GoVSDRight" "")
# -------------------------------------------------------------------------------------------------
# Plugin: wordmotion
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: wordmotion
# -------------------------------------------------------------------------------------------------
(keymap ["x" "o"] "ie" "<Plug>WordMotion_iw" "inside subword")
(keymap [
"x"
"o"
] "ie" "<Plug>WordMotion_iw" "inside subword")
# -------------------------------------------------------------------------------------------------
# Plugin: telescope
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: telescope
# -------------------------------------------------------------------------------------------------
(keymap ["n" "v"] "<space><space>" "<cmd>lua require('telescope.builtin').find_files()<CR>" "Telescope find files")
(keymap ["n" "v"] "<space>g" "<cmd>lua require('telescope.builtin').live_grep()<CR>" "Telescope live grep")
(keymap ["n" "v"] "<space>b" "<cmd>lua require('telescope.builtin').buffers()<CR>" "Telescope buffers")
(keymap [
"n"
"v"
] "<space><space>" "<cmd>lua require('telescope.builtin').find_files()<CR>" "Telescope find files")
(keymap [
"n"
"v"
] "<space>g" "<cmd>lua require('telescope.builtin').live_grep()<CR>" "Telescope live grep")
(keymap [
"n"
"v"
] "<space>b" "<cmd>lua require('telescope.builtin').buffers()<CR>" "Telescope buffers")
# -------------------------------------------------------------------------------------------------
# Plugin: textcase
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: textcase
# -------------------------------------------------------------------------------------------------
(keymap ["n"] "<leader>C" "<cmd>TextCaseOpenTelescopeQuickChange<CR>" "Change word case")
(keymap [ "n" ] "<leader>C" "<cmd>TextCaseOpenTelescopeQuickChange<CR>" "Change word case")
(keymap ["n"] "<leader>cu" "<cmd>lua require('textcase').current_word('to_upper_case')<CR><right>" "To UPPER CASE")
(keymap ["n"] "<leader>cl" "<cmd>lua require('textcase').current_word('to_lower_case')<CR><right>" "To lower case")
(keymap ["n"] "<leader>cs" "<cmd>lua require('textcase').current_word('to_snake_case')<CR><right>" "To snake_case")
(keymap ["n"] "<leader>cd" "<cmd>lua require('textcase').current_word('to_dash_case')<CR><right>" "To dash-case")
(keymap ["n"] "<leader>cn" "<cmd>lua require('textcase').current_word('to_constant_case')<CR><right>" "To CONSTANT_CASE")
(keymap ["n"] "<leader>cd" "<cmd>lua require('textcase').current_word('to_dot_case')<CR><right>" "To dot.case")
(keymap ["n"] "<leader>ca" "<cmd>lua require('textcase').current_word('to_phrase_case')<CR><right>" "To Phrase case")
(keymap ["n"] "<leader>cc" "<cmd>lua require('textcase').current_word('to_camel_case')<CR><right>" "To camelCase")
(keymap ["n"] "<leader>cp" "<cmd>lua require('textcase').current_word('to_pascal_case')<CR><right>" "To PascalCase")
(keymap ["n"] "<leader>ct" "<cmd>lua require('textcase').current_word('to_title_case')<CR><right>" "To Title Case")
(keymap ["n"] "<leader>cf" "<cmd>lua require('textcase').current_word('to_path_case')<CR><right>" "To path/case")
(keymap [ "n" ] "<leader>cu" "<cmd>lua require('textcase').current_word('to_upper_case')<CR><right>"
"To UPPER CASE"
)
(keymap [ "n" ] "<leader>cl" "<cmd>lua require('textcase').current_word('to_lower_case')<CR><right>"
"To lower case"
)
(keymap [ "n" ] "<leader>cs" "<cmd>lua require('textcase').current_word('to_snake_case')<CR><right>"
"To snake_case"
)
(keymap [ "n" ] "<leader>cd" "<cmd>lua require('textcase').current_word('to_dash_case')<CR><right>"
"To dash-case"
)
(keymap [ "n" ] "<leader>cn"
"<cmd>lua require('textcase').current_word('to_constant_case')<CR><right>"
"To CONSTANT_CASE"
)
(keymap [
"n"
] "<leader>cd" "<cmd>lua require('textcase').current_word('to_dot_case')<CR><right>" "To dot.case")
(keymap [ "n" ] "<leader>ca"
"<cmd>lua require('textcase').current_word('to_phrase_case')<CR><right>"
"To Phrase case"
)
(keymap [ "n" ] "<leader>cc" "<cmd>lua require('textcase').current_word('to_camel_case')<CR><right>"
"To camelCase"
)
(keymap [ "n" ] "<leader>cp"
"<cmd>lua require('textcase').current_word('to_pascal_case')<CR><right>"
"To PascalCase"
)
(keymap [ "n" ] "<leader>ct" "<cmd>lua require('textcase').current_word('to_title_case')<CR><right>"
"To Title Case"
)
(keymap [ "n" ] "<leader>cf" "<cmd>lua require('textcase').current_word('to_path_case')<CR><right>"
"To path/case"
)
(keymap ["n"] "<leader>cU" "<cmd>lua require('textcase').lsp_rename('to_upper_case')<CR><right>" "LSP Rename: To UPPER CASE")
(keymap ["n"] "<leader>cL" "<cmd>lua require('textcase').lsp_rename('to_lower_case')<CR><right>" "LSP Rename: To lower case")
(keymap ["n"] "<leader>cS" "<cmd>lua require('textcase').lsp_rename('to_snake_case')<CR><right>" "LSP Rename: To snake_case")
(keymap ["n"] "<leader>cD" "<cmd>lua require('textcase').lsp_rename('to_dash_case')<CR><right>" "LSP Rename: To dash-case")
(keymap ["n"] "<leader>cN" "<cmd>lua require('textcase').lsp_rename('to_constant_case')<CR><right>" "LSP Rename: To CONSTANT_CASE")
(keymap ["n"] "<leader>cD" "<cmd>lua require('textcase').lsp_rename('to_dot_case')<CR><right>" "LSP Rename: To dot.case")
(keymap ["n"] "<leader>cA" "<cmd>lua require('textcase').lsp_rename('to_phrase_case')<CR><right>" "LSP Rename: To Phrase case")
(keymap ["n"] "<leader>cC" "<cmd>lua require('textcase').lsp_rename('to_camel_case')<CR><right>" "LSP Rename: To camelCase")
(keymap ["n"] "<leader>cP" "<cmd>lua require('textcase').lsp_rename('to_pascal_case')<CR><right>" "LSP Rename: To PascalCase")
(keymap ["n"] "<leader>cT" "<cmd>lua require('textcase').lsp_rename('to_title_case')<CR><right>" "LSP Rename: To Title Case")
(keymap ["n"] "<leader>cF" "<cmd>lua require('textcase').lsp_rename('to_path_case')<CR><right>" "LSP Rename: To path/case")
(keymap [ "n" ] "<leader>cU" "<cmd>lua require('textcase').lsp_rename('to_upper_case')<CR><right>"
"LSP Rename: To UPPER CASE"
)
(keymap [ "n" ] "<leader>cL" "<cmd>lua require('textcase').lsp_rename('to_lower_case')<CR><right>"
"LSP Rename: To lower case"
)
(keymap [ "n" ] "<leader>cS" "<cmd>lua require('textcase').lsp_rename('to_snake_case')<CR><right>"
"LSP Rename: To snake_case"
)
(keymap [ "n" ] "<leader>cD" "<cmd>lua require('textcase').lsp_rename('to_dash_case')<CR><right>"
"LSP Rename: To dash-case"
)
(keymap [ "n" ] "<leader>cN"
"<cmd>lua require('textcase').lsp_rename('to_constant_case')<CR><right>"
"LSP Rename: To CONSTANT_CASE"
)
(keymap [ "n" ] "<leader>cD" "<cmd>lua require('textcase').lsp_rename('to_dot_case')<CR><right>"
"LSP Rename: To dot.case"
)
(keymap [ "n" ] "<leader>cA" "<cmd>lua require('textcase').lsp_rename('to_phrase_case')<CR><right>"
"LSP Rename: To Phrase case"
)
(keymap [ "n" ] "<leader>cC" "<cmd>lua require('textcase').lsp_rename('to_camel_case')<CR><right>"
"LSP Rename: To camelCase"
)
(keymap [ "n" ] "<leader>cP" "<cmd>lua require('textcase').lsp_rename('to_pascal_case')<CR><right>"
"LSP Rename: To PascalCase"
)
(keymap [ "n" ] "<leader>cT" "<cmd>lua require('textcase').lsp_rename('to_title_case')<CR><right>"
"LSP Rename: To Title Case"
)
(keymap [ "n" ] "<leader>cF" "<cmd>lua require('textcase').lsp_rename('to_path_case')<CR><right>"
"LSP Rename: To path/case"
)
# -------------------------------------------------------------------------------------------------
# Plugin: Neogit
# -------------------------------------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
# Plugin: Neogit
# -------------------------------------------------------------------------------------------------
(keymap ["n" "v"] "<leader>g" "<cmd>lua require('neogit').open()<CR>" "Open Neogit")
];
(keymap [
"n"
"v"
] "<leader>g" "<cmd>lua require('neogit').open()<CR>" "Open Neogit")
];
};
home.sessionVariables.EDITOR = "nvim";

View file

@ -22,8 +22,13 @@
number = true; # Show line numbers
cursorline = true; # Enable cursorline, colorscheme only shows this in number column
wildmode = ["list" "full"]; # Only complete the longest common prefix and list all results
fillchars = {stlnc = "";}; # Show separators in inactive window statuslines
wildmode = [
"list"
"full"
]; # Only complete the longest common prefix and list all results
fillchars = {
stlnc = "";
}; # Show separators in inactive window statuslines
# FIXME: disabled because this really fucks everything up in the terminal.
title = false; # Sets the window title

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.nixvim = {
files."ftplugin/nix.lua".extraConfigLua = ''
vim.opt_local.expandtab = true
@ -37,22 +38,24 @@
rustaceanvim = {
enable = true;
settings = {
server.default_settings.files.excludeDirs = [".direnv"];
server.default_settings.files.excludeDirs = [ ".direnv" ];
dap.autoloadConfigurations = true;
dap.adapter = let
code-lldb = pkgs.vscode-extensions.vadimcn.vscode-lldb;
in {
executable.command = "${code-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/codelldb";
executable.args = [
"--liblldb"
"${code-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/lldb/lib/liblldb.dylib"
"--port"
"31337"
];
type = "server";
port = "31337";
host = "127.0.0.1";
};
dap.adapter =
let
code-lldb = pkgs.vscode-extensions.vadimcn.vscode-lldb;
in
{
executable.command = "${code-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/codelldb";
executable.args = [
"--liblldb"
"${code-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/lldb/lib/liblldb.dylib"
"--port"
"31337"
];
type = "server";
port = "31337";
host = "127.0.0.1";
};
};
};
};

View file

@ -2,7 +2,8 @@
lib,
pkgs,
...
}: {
}:
{
programs.nixvim.plugins = {
nvim-jdtls = {
enable = true;
@ -14,9 +15,7 @@
lsp = {
enable = true;
preConfig =
/*
lua
*/
# lua
''
local lsp_symbol = function(name, icon)
vim.fn.sign_define(
@ -38,7 +37,10 @@
nil_ls = {
enable = true;
settings = {
formatting.command = [(lib.getExe pkgs.nixfmt-rfc-style) "--quiet"];
formatting.command = [
(lib.getExe pkgs.nixfmt-rfc-style)
"--quiet"
];
};
};
nixd.enable = true;

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.nixvim = {
plugins = {
notify = {
@ -24,12 +25,15 @@
# Fzf picker for arbitrary stuff
telescope = {
enable = true;
enabledExtensions = ["fzf" "notify" "ui-select" "textcase"];
enabledExtensions = [
"fzf"
"notify"
"ui-select"
"textcase"
];
extensions.fzf-native.enable = true;
settings.defaults.mappings.i."<esc>".__raw =
/*
lua
*/
# lua
''
function(...)
return require("telescope.actions").close(...)
@ -80,9 +84,7 @@
];
extraConfigLuaPre =
/*
lua
*/
# lua
''
vim.g.operator_sandwich_no_default_key_mappings = 1
vim.g.textobj_sandwich_no_default_key_mappings = 1
@ -91,9 +93,7 @@
'';
extraConfigLuaPost =
/*
lua
*/
# lua
''
require("window-picker").setup {
hint = "floating-big-letter",

View file

@ -56,7 +56,7 @@
useLibuvFileWatcher = true;
filteredItems = {
hideDotfiles = false;
hideByName = [".git"];
hideByName = [ ".git" ];
};
};
};

View file

@ -2,7 +2,8 @@
lib,
pkgs,
...
}: {
}:
{
programs.nixvim = {
extraPlugins = with pkgs.vimPlugins; [
# navarasu's one dark
@ -11,74 +12,74 @@
extraConfigLua =
lib.mkBefore
# lua
''
local onedark = require "onedark"
onedark.setup {
toggle_style_key = "<nop>",
colors = {
fg = "#abb2bf",
black = "#181a1f",
bg0 = "#1e222a",
bg1 = "#252931",
bg2 = "#282c34",
bg3 = "#353b45",
bg_d = "#191c21",
bg_blue = "#73b8f1",
bg_yellow = "#ebd09c",
# lua
''
local onedark = require "onedark"
onedark.setup {
toggle_style_key = "<nop>",
colors = {
fg = "#abb2bf",
black = "#181a1f",
bg0 = "#1e222a",
bg1 = "#252931",
bg2 = "#282c34",
bg3 = "#353b45",
bg_d = "#191c21",
bg_blue = "#73b8f1",
bg_yellow = "#ebd09c",
dark_cyan = "#2b6f77",
dark_red = "#993939",
dark_yellow = "#93691d",
dark_cyan = "#2b6f77",
dark_red = "#993939",
dark_yellow = "#93691d",
grey = "#42464e",
grey_fg = "#565c64",
grey_fg2 = "#6f737b",
light_grey = "#6f737b",
baby_pink = "#de8c92",
pink = "#ff75a0",
nord_blue = "#81a1c1",
sun = "#ebcb8b",
light_purple = "#de98fd",
dark_purple = "#c882e7",
teal = "#519aba",
dark_pink = "#fca2aa",
light_blue = "#a3b8ef",
vibrant_green = "#7eca9c",
grey = "#42464e",
grey_fg = "#565c64",
grey_fg2 = "#6f737b",
light_grey = "#6f737b",
baby_pink = "#de8c92",
pink = "#ff75a0",
nord_blue = "#81a1c1",
sun = "#ebcb8b",
light_purple = "#de98fd",
dark_purple = "#c882e7",
teal = "#519aba",
dark_pink = "#fca2aa",
light_blue = "#a3b8ef",
vibrant_green = "#7eca9c",
red = "#e06c75",
orange = "#d19a66",
yellow = "#e5c07b",
green = "#98c379",
cyan = "#56b6c2",
blue = "#61afef",
purple = "#c678dd",
red = "#e06c75",
orange = "#d19a66",
yellow = "#e5c07b",
green = "#98c379",
cyan = "#56b6c2",
blue = "#61afef",
purple = "#c678dd",
diff_add = "#31392b",
diff_delete = "#382b2c",
diff_change = "#1c3448",
diff_text = "#2c5372",
},
highlights = {
CursorLine = { bg = "$bg0" },
FloatBorder = { fg = "$blue" },
NeoTreeTabActive = { fg = "$fg", bg = "$bg_d" },
NeoTreeTabInactive = { fg = "$grey", bg = "$black" },
NeoTreeTabSeparatorActive = { fg = "$black", bg = "$black" },
NeoTreeTabSeparatorInactive = { fg = "$black", bg = "$black" },
NeoTreeWinSeparator = { fg = "$bg_d", bg = "$bg_d" },
NeoTreeVertSplit = { fg = "$bg_d", bg = "$bg_d" },
VisualMultiMono = { fg = "$purple", bg = "$diff_change" },
VisualMultiExtend = { bg = "$diff_change" },
VisualMultiCursor = { fg = "$purple", bg = "$diff_change" },
VisualMultiInsert = { fg = "$blue", bg = "$diff_change" },
},
}
vim.g.VM_Mono_hl = "VisualMultiMono"
vim.g.VM_Extend_hl = "VisualMultiExtend"
vim.g.VM_Cursor_hl = "VisualMultiCursor"
vim.g.VM_Insert_hl = "VisualMultiInsert"
onedark.load()
'';
diff_add = "#31392b",
diff_delete = "#382b2c",
diff_change = "#1c3448",
diff_text = "#2c5372",
},
highlights = {
CursorLine = { bg = "$bg0" },
FloatBorder = { fg = "$blue" },
NeoTreeTabActive = { fg = "$fg", bg = "$bg_d" },
NeoTreeTabInactive = { fg = "$grey", bg = "$black" },
NeoTreeTabSeparatorActive = { fg = "$black", bg = "$black" },
NeoTreeTabSeparatorInactive = { fg = "$black", bg = "$black" },
NeoTreeWinSeparator = { fg = "$bg_d", bg = "$bg_d" },
NeoTreeVertSplit = { fg = "$bg_d", bg = "$bg_d" },
VisualMultiMono = { fg = "$purple", bg = "$diff_change" },
VisualMultiExtend = { bg = "$diff_change" },
VisualMultiCursor = { fg = "$purple", bg = "$diff_change" },
VisualMultiInsert = { fg = "$blue", bg = "$diff_change" },
},
}
vim.g.VM_Mono_hl = "VisualMultiMono"
vim.g.VM_Extend_hl = "VisualMultiExtend"
vim.g.VM_Cursor_hl = "VisualMultiCursor"
vim.g.VM_Insert_hl = "VisualMultiInsert"
onedark.load()
'';
};
}

View file

@ -1,4 +1,5 @@
{config, ...}: {
{ config, ... }:
{
home.file.".ssh/yubikey.pub".text = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA5Uq+CDy5Pmt3If5M6d8K/Q7HArU6sZ7sgoj3T521Wm";
programs.ssh = {
enable = true;

View file

@ -3,10 +3,13 @@
globals,
pkgs,
...
}: {
}:
{
users.users.root = {
inherit (globals.root) hashedPassword;
openssh.authorizedKeys.keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA5Uq+CDy5Pmt3If5M6d8K/Q7HArU6sZ7sgoj3T521Wm"];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA5Uq+CDy5Pmt3If5M6d8K/Q7HArU6sZ7sgoj3T521Wm"
];
shell = pkgs.zsh;
};