280 lines
6.7 KiB
Nix
280 lines
6.7 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
machine,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
background-path = ".config/sway/background.png";
|
|
sway_config =
|
|
pkgs.substitute
|
|
{
|
|
src = ./sway_config;
|
|
substitutions = [
|
|
"--replace"
|
|
"@backgroundImagePath@"
|
|
"${config.home.homeDirectory}/${background-path}"
|
|
];
|
|
};
|
|
in {
|
|
imports = [./stylix.nix];
|
|
xdg.configFile."shell".source = lib.getExe pkgs.brush;
|
|
xdg.configFile."sway/config".source = lib.mkForce sway_config;
|
|
wayland.windowManager.sway.enable = true;
|
|
home = {
|
|
username = "andromeda";
|
|
homeDirectory = "/home/${config.home.username}";
|
|
stateVersion = "26.05";
|
|
packages = [
|
|
pkgs.acpi
|
|
pkgs.agenix
|
|
pkgs.alacritty
|
|
pkgs.anki
|
|
pkgs.brightnessctl
|
|
pkgs.brush
|
|
pkgs.dust
|
|
pkgs.fluffychat
|
|
pkgs.fzf
|
|
pkgs.glow
|
|
pkgs.grim
|
|
pkgs.jmtpfs
|
|
pkgs.nix-output-monitor
|
|
pkgs.ranger
|
|
pkgs.rip2
|
|
pkgs.ripgrep
|
|
pkgs.slurp
|
|
pkgs.tree
|
|
pkgs.zoxide
|
|
];
|
|
file.${background-path}.source = config.stylix.image;
|
|
};
|
|
programs = {
|
|
alacritty.enable = true;
|
|
bash = {
|
|
enable = true;
|
|
shellAliases = {
|
|
neofetch = "fastfetch";
|
|
ls = lib.mkForce "lsd";
|
|
ll = lib.mkForce "lsd -l";
|
|
l = "lsd -la";
|
|
cd = "z";
|
|
gg = "git log --oneline --abbrev-commit --all --graph --decorate --color";
|
|
md = "glow";
|
|
};
|
|
bashrcExtra = ''
|
|
PS1="\u@\h:\w$"
|
|
eval "$(zoxide init bash)"
|
|
'';
|
|
};
|
|
btop = {
|
|
enable = true;
|
|
settings = {
|
|
theme_background = false;
|
|
vim_keys = true;
|
|
rounded_corners = false;
|
|
graph_symbol = "braille";
|
|
update_ms = 150;
|
|
proc_sorting = "cpu lazy";
|
|
proc_gradient = false;
|
|
proc_left = true;
|
|
cpu_single_graph = true;
|
|
cpu_bottom = true;
|
|
clock_format = "/user@/host:/uptime@%H:%M";
|
|
background_update = true;
|
|
mem_graphs = false;
|
|
mem_below_net = true;
|
|
show_swap = false;
|
|
only_physical = true;
|
|
show_io_stat = true;
|
|
io_mode = false;
|
|
io_graph_combined = false;
|
|
};
|
|
};
|
|
fastfetch.enable = true;
|
|
firefox = {
|
|
enable = true;
|
|
package = pkgs.firefox.override {
|
|
cfg.enableTridactylNative = true;
|
|
};
|
|
profiles.${config.home.username} = {
|
|
extensions.packages = [
|
|
pkgs.nur.repos.rycee.firefox-addons.tridactyl
|
|
];
|
|
search = {
|
|
default = "repos";
|
|
privateDefault = "ddghtml";
|
|
order = [
|
|
"wiki"
|
|
"options"
|
|
"packages"
|
|
"repos"
|
|
];
|
|
engines = {
|
|
"packages" = {
|
|
urls = [
|
|
{
|
|
template = "https://search.nixos.org/packages";
|
|
params = [
|
|
{
|
|
name = "channel";
|
|
value = "unstable";
|
|
}
|
|
{
|
|
name = "query";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
|
|
"options" = {
|
|
urls = [
|
|
{
|
|
template = "https://search.nixos.org/options";
|
|
params = [
|
|
{
|
|
name = "channel";
|
|
value = "unstable";
|
|
}
|
|
{
|
|
name = "query";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
|
|
"wiki" = {
|
|
urls = [
|
|
{
|
|
template = "https://wiki.nixos.org/w/index.php";
|
|
params = [
|
|
{
|
|
name = "search";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
|
|
"repos" = {
|
|
template = "https://html.duckduckgo.com/html/";
|
|
params = [
|
|
{
|
|
name = "q";
|
|
value = "{searchTerms}+(site:*.gitlab.org OR site:github.com OR site:git.mtgmonkey.net OR site:sr.ht)";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
settings = {
|
|
"extensions.autoDisableScopes" = 0;
|
|
};
|
|
};
|
|
};
|
|
git = {
|
|
enable = true;
|
|
settings = {
|
|
user = {
|
|
name = config.home.username;
|
|
email = "${config.home.username}@${machine.hostname}";
|
|
};
|
|
init.defaultBranch = "master";
|
|
};
|
|
};
|
|
gh.enable = true;
|
|
home-manager.enable = true;
|
|
lsd.enable = true;
|
|
nvf = {
|
|
enable = true;
|
|
settings.vim = {
|
|
autocomplete.nvim-cmp.enable = false;
|
|
formatter.conform-nvim = {
|
|
enable = true;
|
|
setupOpts.format_on_save = {
|
|
lsp_format = "fallback";
|
|
timeout_ms = 5000;
|
|
};
|
|
};
|
|
lsp.otter-nvim.enable = true;
|
|
git.enable = true;
|
|
keymaps = [
|
|
{
|
|
key = "<Down>";
|
|
mode = ["i" "n" "v" "c"];
|
|
action = "<NOP>";
|
|
}
|
|
{
|
|
key = "<Up>";
|
|
mode = ["i" "n" "v" "c"];
|
|
action = "<NOP>";
|
|
}
|
|
{
|
|
key = "<Left>";
|
|
mode = ["i" "n" "v" "c"];
|
|
action = "<NOP>";
|
|
}
|
|
{
|
|
key = "<Right>";
|
|
mode = ["i" "n" "v" "c"];
|
|
action = "<NOP>";
|
|
}
|
|
{
|
|
key = "jj";
|
|
mode = ["i"];
|
|
action = "<Esc>";
|
|
}
|
|
{
|
|
key = "kk";
|
|
mode = ["i"];
|
|
action = "<Esc>";
|
|
}
|
|
{
|
|
key = "jk";
|
|
mode = ["i"];
|
|
action = "<Esc>";
|
|
}
|
|
{
|
|
key = "kj";
|
|
mode = ["i"];
|
|
action = "<Esc>";
|
|
}
|
|
{
|
|
key = "<Esc>";
|
|
mode = ["i"];
|
|
action = "<Nop>";
|
|
}
|
|
];
|
|
languages = {
|
|
nix = {
|
|
enable = true;
|
|
format.enable = true;
|
|
lsp.enable = true;
|
|
};
|
|
haskell = {
|
|
enable = true;
|
|
lsp.enable = true;
|
|
};
|
|
};
|
|
lineNumberMode = "relative";
|
|
options = {
|
|
tabstop = 2;
|
|
shiftwidth = 2;
|
|
expandtab = true;
|
|
smarttab = true;
|
|
foldmethod = "indent";
|
|
number = true;
|
|
colorcolumn = "80";
|
|
};
|
|
statusline.lualine.enable = true;
|
|
syntaxHighlighting = true;
|
|
};
|
|
};
|
|
ssh.enable = true;
|
|
};
|
|
}
|