Reworked home manager configuration to modules
This commit is contained in:
62
modules/home/applications/alacritty.nix
Normal file
62
modules/home/applications/alacritty.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.alacritty;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.alacritty.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable alacritty terimnal
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
font = {
|
||||
normal = { family = "DejaVuSansM Nerd Font"; style = "Regular"; };
|
||||
};
|
||||
window = {
|
||||
opacity = 0.8;
|
||||
padding = { x = 10; y = 10; };
|
||||
};
|
||||
colors = {
|
||||
draw_bold_text_with_bright_colors = false;
|
||||
primary = {
|
||||
background = "0x${config.colorScheme.palette.base00}";
|
||||
foreground = "0x${config.colorScheme.palette.base05}";
|
||||
};
|
||||
cursor = {
|
||||
text = "0x${config.colorScheme.palette.base00}";
|
||||
cursor = "0x${config.colorScheme.palette.base05}";
|
||||
};
|
||||
normal = {
|
||||
black = "0x${config.colorScheme.palette.base00}";
|
||||
red = "0x${config.colorScheme.palette.base08}";
|
||||
green = "0x${config.colorScheme.palette.base0B}";
|
||||
yellow = "0x${config.colorScheme.palette.base0A}";
|
||||
blue = "0x${config.colorScheme.palette.base0D}";
|
||||
magenta = "0x${config.colorScheme.palette.base0E}";
|
||||
cyan = "0x${config.colorScheme.palette.base0C}";
|
||||
white = "0x${config.colorScheme.palette.base05}";
|
||||
};
|
||||
bright = {
|
||||
black = "0x${config.colorScheme.palette.base03}";
|
||||
red = "0x${config.colorScheme.palette.base09}";
|
||||
green = "0x${config.colorScheme.palette.base01}";
|
||||
yellow = "0x${config.colorScheme.palette.base02}";
|
||||
blue = "0x${config.colorScheme.palette.base04}";
|
||||
magenta = "0x${config.colorScheme.palette.base06}";
|
||||
cyan = "0x${config.colorScheme.palette.base0F}";
|
||||
white = "0x${config.colorScheme.palette.base07}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
24
modules/home/applications/common.nix
Normal file
24
modules/home/applications/common.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.common;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.common.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable common applications
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
vlc
|
||||
bitwarden
|
||||
pavucontrol
|
||||
];
|
||||
};
|
||||
}
|
29
modules/home/applications/devenv.nix
Normal file
29
modules/home/applications/devenv.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.devenv;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.devenv.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable common applications
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
unstable.devenv
|
||||
cloc
|
||||
];
|
||||
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
171
modules/home/applications/firefox.nix
Normal file
171
modules/home/applications/firefox.nix
Normal file
@@ -0,0 +1,171 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
# about:policies
|
||||
# Check about:support for extension/add-on ID strings.
|
||||
# Check about:config for options.
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.firefox;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.firefox.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable firefox
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
unstable.firefoxpwa
|
||||
];
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = [ pkgs.unstable.firefoxpwa ];
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "newpage";
|
||||
ExtensionSettings = {
|
||||
"nl-NL@dictionaries.addons.mozilla.org" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/woordenboek-nederlands/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"uBlock0@raymondhill.net" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"firefoxpwa@filips.si" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/pwas-for-firefox/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"markdown-viewer@outofindex.com" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/markdown-viewer-chrome/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
};
|
||||
};
|
||||
profiles.xeovalyte = {
|
||||
bookmarks = [
|
||||
{
|
||||
name = "Toolbar";
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "Brightspace";
|
||||
bookmarks = [
|
||||
{
|
||||
name = "Books";
|
||||
url = "https://drive.google.com/drive/folders/1L5OTbn5p3i7_Nc80hc5PztiEGHKwi-I4";
|
||||
}
|
||||
{
|
||||
name = "LCB";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681010/Home";
|
||||
}
|
||||
{
|
||||
name = "Calculus";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681024/Home";
|
||||
}
|
||||
{
|
||||
name = "IP1";
|
||||
url = "https://brightspace.tudelft.nl/d2l/le/content/681020/Home";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
search.engines = {
|
||||
"Nix" = {
|
||||
urls = [{
|
||||
template = "https://mynixos.com/search";
|
||||
params = [
|
||||
{ name = "q"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@nix" ];
|
||||
};
|
||||
|
||||
"SearXNG" = {
|
||||
urls = [{
|
||||
template = "https:/search.xeovalyte.dev/search";
|
||||
params = [
|
||||
{ name = "q"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
|
||||
definedAliases = [ "@searxng" ];
|
||||
};
|
||||
|
||||
"Startpage" = {
|
||||
urls = [{
|
||||
template = "https:/startpage.com/sp/search";
|
||||
params = [
|
||||
{ name = "q"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
|
||||
definedAliases = [ "@sp" ];
|
||||
};
|
||||
|
||||
"Bing".metaData.hidden = true;
|
||||
"Google".metaData.hidden = true;
|
||||
"eBay".metaData.hidden = true;
|
||||
};
|
||||
search.force = true;
|
||||
search.default = "SearXNG";
|
||||
|
||||
settings = {
|
||||
"browser.disableResetPrompt" = true;
|
||||
"browser.download.panel.shown" = true;
|
||||
"browser.download.useDownloadDir" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
"browser.shell.defaultBrowserCheckCount" = 1;
|
||||
"dom.security.https_only_mode" = true;
|
||||
"privacy.trackingProtection.enabled" = true;
|
||||
"browser.toolbars.bookmarks.visibility" = "newtab";
|
||||
"browser.translations.neverTranslateLanguages" = "nl";
|
||||
"browser.newtabpage.pinned" = [
|
||||
{
|
||||
label = "Server";
|
||||
url = "https://home.xeovalyte.dev";
|
||||
}
|
||||
{
|
||||
label = "Youtube";
|
||||
url = "https://youtube.com";
|
||||
}
|
||||
{
|
||||
label = "My TU Delft";
|
||||
url = "https://my.tudelft.nl/";
|
||||
}
|
||||
];
|
||||
"signon.rememberSignons" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
46
modules/home/applications/git.nix
Normal file
46
modules/home/applications/git.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.git;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.git.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable git version control
|
||||
'';
|
||||
};
|
||||
|
||||
settings.applications.git.lazygit.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable lazygit
|
||||
'';
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.lazygit = {
|
||||
enable = true;
|
||||
settings = {
|
||||
services = {
|
||||
"gitea.xeovalyte.dev" = "gitea:gitea.xeovalyte.dev";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.git = mkIf cfg.lazygit.enable {
|
||||
enable = true;
|
||||
userEmail = "me+gitea@xeovalyte.dev";
|
||||
userName = "xeovalyte";
|
||||
extraConfig = {
|
||||
commit.gpgsign = true;
|
||||
gpg.format = "ssh";
|
||||
user.signingkey = "~/.ssh/gitea.pub";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
218
modules/home/applications/helix.nix
Normal file
218
modules/home/applications/helix.nix
Normal file
@@ -0,0 +1,218 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.helix;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.helix.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable helix text editor
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
unstable.marksman
|
||||
unstable.markdown-oxide
|
||||
unstable.svls
|
||||
unstable.nil
|
||||
unstable.nixpkgs-fmt
|
||||
unstable.tectonic
|
||||
unstable.texlab
|
||||
dprint
|
||||
];
|
||||
|
||||
home.file.".config/.dprint.json".text =''
|
||||
{
|
||||
"markdown": {
|
||||
"lineWidth":120,
|
||||
},
|
||||
"excludes": [],
|
||||
"plugins": [
|
||||
"https://plugins.dprint.dev/markdown-0.16.1.wasm"
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.helix;
|
||||
defaultEditor = true;
|
||||
settings = {
|
||||
theme = "base16";
|
||||
editor.cursor-shape = {
|
||||
insert = "bar";
|
||||
};
|
||||
};
|
||||
languages = {
|
||||
# Rust
|
||||
language-server.rust-analyzer.config = {
|
||||
cargo = {
|
||||
features = "all";
|
||||
};
|
||||
};
|
||||
|
||||
# Systemverilog
|
||||
language-server.svls = {
|
||||
command = "svls";
|
||||
};
|
||||
|
||||
language-server.texlab = {
|
||||
config = {
|
||||
texlab.chktex = {
|
||||
onOpenAndSave = true;
|
||||
onEdit = true;
|
||||
};
|
||||
texlab.forwardSearch = {
|
||||
executable = "zathura";
|
||||
args = [
|
||||
"--synctex-forward"
|
||||
"%l:%c:%f"
|
||||
"%p"
|
||||
];
|
||||
};
|
||||
texlab.build = {
|
||||
auxDirectory = "build";
|
||||
logDirectory = "build";
|
||||
pdfDirectory = "build";
|
||||
forwardSearchAfter = true;
|
||||
onSave = true;
|
||||
executable = "tectonic";
|
||||
args = [
|
||||
"-X"
|
||||
"compile"
|
||||
"--synctex"
|
||||
"--keep-logs"
|
||||
"--keep-intermediates"
|
||||
"--outdir=build"
|
||||
"%f"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
language = [
|
||||
{
|
||||
name = "verilog";
|
||||
language-servers = [ "svls" ];
|
||||
}
|
||||
{
|
||||
name = "html";
|
||||
language-servers = [ "vscode-html-language-server" "tailwindcss-ls" ];
|
||||
}
|
||||
{
|
||||
name = "css";
|
||||
language-servers = [ "vscode-html-language-server" "tailwindcss-ls" ];
|
||||
}
|
||||
{
|
||||
name = "markdown";
|
||||
auto-format = true;
|
||||
language-servers = [ "markdown-oxide" ];
|
||||
formatter.command = "dprint";
|
||||
formatter.args = ["fmt" "--stdin" "md" "--config" "/home/xeovalyte/.config/.dprint.json"];
|
||||
}
|
||||
{
|
||||
name = "typst";
|
||||
auto-format = false;
|
||||
formatter.command = "${pkgs.typstfmt}/bin/typstfmt";
|
||||
}
|
||||
];
|
||||
};
|
||||
themes = {
|
||||
base16 = let
|
||||
base00 = "#${config.colorScheme.palette.base00}";
|
||||
base01 = "#${config.colorScheme.palette.base01}";
|
||||
base02 = "#${config.colorScheme.palette.base02}";
|
||||
base03 = "#${config.colorScheme.palette.base03}";
|
||||
base04 = "#${config.colorScheme.palette.base04}";
|
||||
base05 = "#${config.colorScheme.palette.base05}";
|
||||
base06 = "#${config.colorScheme.palette.base06}";
|
||||
base07 = "#${config.colorScheme.palette.base07}";
|
||||
base08 = "#${config.colorScheme.palette.base08}";
|
||||
base09 = "#${config.colorScheme.palette.base09}";
|
||||
base0A = "#${config.colorScheme.palette.base0A}";
|
||||
base0B = "#${config.colorScheme.palette.base0B}";
|
||||
base0C = "#${config.colorScheme.palette.base0C}";
|
||||
base0D = "#${config.colorScheme.palette.base0D}";
|
||||
base0E = "#${config.colorScheme.palette.base0E}";
|
||||
base0F = "#${config.colorScheme.palette.base0F}";
|
||||
in {
|
||||
"attributes" = base09;
|
||||
"comment" = { fg = base03; modifiers = ["italic"]; };
|
||||
"constant" = base09;
|
||||
"constant.character.escape" = base0C;
|
||||
"constant.numeric" = base09;
|
||||
"constructor" = base0D;
|
||||
"debug" = base03;
|
||||
"diagnostic" = { modifiers = ["underlined"]; };
|
||||
"diff.delta" = base09;
|
||||
"diff.minus" = base08;
|
||||
"diff.plus" = base0B;
|
||||
"error" = base08;
|
||||
"function" = base0D;
|
||||
"hint" = base03;
|
||||
"info" = base0D;
|
||||
"keyword" = base0E;
|
||||
"label" = base0E;
|
||||
"namespace" = base0E;
|
||||
"operator" = base05;
|
||||
"special" = base0D;
|
||||
"string" = base0B;
|
||||
"type" = base0A;
|
||||
"variable" = base08;
|
||||
"variable.other.member" = base0B;
|
||||
"warning" = base09;
|
||||
|
||||
"markup.bold" = { fg = base0A; modifiers = ["bold"]; };
|
||||
"markup.heading" = base0D;
|
||||
"markup.italic" = { fg = base0E; modifiers = ["italic"]; };
|
||||
"markup.link.text" = base08;
|
||||
"markup.link.url" = { fg = base09; modifiers = ["underlined"]; };
|
||||
"markup.list" = base08;
|
||||
"markup.quote" = base0C;
|
||||
"markup.raw" = base0B;
|
||||
"markup.strikethrough" = { modifiers = ["crossed_out"]; };
|
||||
|
||||
"diagnostic.hint" = { underline = { style = "curl"; }; };
|
||||
"diagnostic.info" = { underline = { style = "curl"; }; };
|
||||
"diagnostic.warning" = { underline = { style = "curl"; }; };
|
||||
"diagnostic.error" = { underline = { style = "curl"; }; };
|
||||
|
||||
# "ui.background" = { bg = base00; };
|
||||
"ui.bufferline.active" = { fg = base00; bg = base03; modifiers = ["bold"]; };
|
||||
"ui.bufferline" = { fg = base04; bg = base00; };
|
||||
"ui.cursor" = { fg = base0A; modifiers = ["reversed"]; };
|
||||
"ui.cursor.insert" = { fg = base0A; modifiers = ["reversed"]; };
|
||||
"ui.cursorline.primary" = { fg = base05; bg = base01; };
|
||||
"ui.cursor.match" = { fg = base0A; modifiers = ["reversed"]; };
|
||||
"ui.cursor.select" = { fg = base0A; modifiers = ["reversed"]; };
|
||||
"ui.gutter" = { bg = base00; };
|
||||
"ui.help" = { fg = base06; bg = base01; };
|
||||
"ui.linenr" = { fg = base03; bg = base00; };
|
||||
"ui.linenr.selected" = { fg = base04; bg = base01; modifiers = ["bold"]; };
|
||||
"ui.menu" = { fg = base05; bg = base01; };
|
||||
"ui.menu.scroll" = { fg = base03; bg = base01; };
|
||||
"ui.menu.selected" = { fg = base01; bg = base04; };
|
||||
"ui.popup" = { bg = base01; };
|
||||
"ui.selection" = { bg = base02; };
|
||||
"ui.selection.primary" = { bg = base02; };
|
||||
"ui.statusline" = { fg = base04; bg = base01; };
|
||||
"ui.statusline.inactive" = { bg = base01; fg = base03; };
|
||||
"ui.statusline.insert" = { fg = base00; bg = base0B; };
|
||||
"ui.statusline.normal" = { fg = base00; bg = base03; };
|
||||
"ui.statusline.select" = { fg = base00; bg = base0F; };
|
||||
"ui.text" = base05;
|
||||
"ui.text.focus" = base05;
|
||||
"ui.virtual.indent-guide" = { fg = base03; };
|
||||
"ui.virtual.inlay-hint" = { fg = base01; };
|
||||
"ui.virtual.ruler" = { bg = base01; };
|
||||
"ui.window" = { bg = base01; };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
37
modules/home/applications/ssh.nix
Normal file
37
modules/home/applications/ssh.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.ssh;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.ssh.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable ssh and configure some endpoints
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
matchBlocks = {
|
||||
archserver = {
|
||||
hostname = "192.168.1.20";
|
||||
user = "xeovalyte";
|
||||
identityFile = "~/.ssh/archserver";
|
||||
};
|
||||
|
||||
"gitea.xeovalyte.dev" = {
|
||||
hostname = "gitea.xeovalyte.dev";
|
||||
port = 2222;
|
||||
user = "git";
|
||||
identityFile = "~/.ssh/gitea";
|
||||
};
|
||||
};
|
||||
addKeysToAgent = "yes";
|
||||
};
|
||||
};
|
||||
}
|
101
modules/home/applications/thunderbird.nix
Normal file
101
modules/home/applications/thunderbird.nix
Normal file
@@ -0,0 +1,101 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.thunderbird;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.thunderbird.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable thunderbird mail
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.thunderbird = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.thunderbird;
|
||||
profiles = {
|
||||
default = {
|
||||
isDefault = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
accounts.email.accounts = {
|
||||
ziggo = {
|
||||
imap = {
|
||||
host = "imap.ziggo.nl";
|
||||
port = 993;
|
||||
tls = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
smtp = {
|
||||
host = "smtp.ziggo.nl";
|
||||
port = 587;
|
||||
tls = {
|
||||
enable = true;
|
||||
useStartTls = true;
|
||||
};
|
||||
};
|
||||
address = "timo.boomers@ziggo.nl";
|
||||
realName = "Timo Boomers";
|
||||
userName = "timo.boomers@ziggo.nl";
|
||||
primary = true;
|
||||
thunderbird.enable = true;
|
||||
thunderbird.profiles = [ "default" ];
|
||||
};
|
||||
tudelft = {
|
||||
imap = {
|
||||
host = "outlook.office365.com";
|
||||
port = 993;
|
||||
tls = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
smtp = {
|
||||
host = "smtp.office365.com";
|
||||
port = 587;
|
||||
tls = {
|
||||
enable = true;
|
||||
useStartTls = false;
|
||||
};
|
||||
};
|
||||
address = "tboomers@tudelft.nl";
|
||||
realName = "Timo Boomers";
|
||||
userName = "tboomers@tudelft.nl";
|
||||
primary = false;
|
||||
thunderbird.enable = true;
|
||||
thunderbird.profiles = [ "default" ];
|
||||
};
|
||||
xeovalyte = {
|
||||
imap = {
|
||||
host = "mail.xeovalyte.dev";
|
||||
port = 993;
|
||||
tls = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
smtp = {
|
||||
host = "mail.xeovalyte.dev";
|
||||
port = 587;
|
||||
tls = {
|
||||
enable = true;
|
||||
useStartTls = true;
|
||||
};
|
||||
};
|
||||
address = "timo@xeovalyte.dev";
|
||||
aliases = [ "me@xeovalyte.dev" "contact@xeovalyte.dev" ];
|
||||
realName = "Timo Boomers";
|
||||
userName = "me@xeovalyte.dev";
|
||||
primary = false;
|
||||
thunderbird.enable = true;
|
||||
thunderbird.profiles = [ "default" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
35
modules/home/applications/yazi.nix
Normal file
35
modules/home/applications/yazi.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.yazi;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.yazi.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable yazi terminal file manager
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
opener = {
|
||||
open = [
|
||||
{ run = "xdg-open $@"; desc = "xdg"; orphan = true; }
|
||||
];
|
||||
};
|
||||
open = {
|
||||
prepend_rules = [
|
||||
{ name = "*.rnote"; use = "open"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
92
modules/home/applications/zellij.nix
Normal file
92
modules/home/applications/zellij.nix
Normal file
@@ -0,0 +1,92 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.zellij;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.zellij.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable zellij tool
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.file.zellij = {
|
||||
target = ".config/zellij/config.kdl";
|
||||
text = ''
|
||||
pane_frames false
|
||||
keybinds {
|
||||
normal {
|
||||
bind "Ctrl e" { ToggleFloatingPanes; SwitchToMode "normal"; }
|
||||
bind "Alt 1" { GoToTab 1; }
|
||||
bind "Alt 2" { GoToTab 2; }
|
||||
bind "Alt 3" { GoToTab 3; }
|
||||
bind "Alt 4" { GoToTab 4; }
|
||||
bind "Alt 5" { GoToTab 5; }
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
home.file.zellij-layout-default = {
|
||||
target = ".config/zellij/layouts/default.kdl";
|
||||
text = ''
|
||||
layout {
|
||||
pane
|
||||
floating_panes {
|
||||
pane {
|
||||
width "80%"
|
||||
height "80%"
|
||||
x "10%"
|
||||
y "10%"
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
home.file.zellij-layout-dioxus = {
|
||||
target = ".config/zellij/layouts/dioxus.kdl";
|
||||
text = ''
|
||||
layout {
|
||||
tab {
|
||||
pane {
|
||||
command "hx"
|
||||
args "."
|
||||
focus true
|
||||
}
|
||||
floating_panes {
|
||||
pane {
|
||||
width "80%"
|
||||
height "80%"
|
||||
x "10%"
|
||||
y "10%"
|
||||
}
|
||||
}
|
||||
}
|
||||
tab {
|
||||
pane {
|
||||
command "dx"
|
||||
args "serve"
|
||||
}
|
||||
}
|
||||
tab {
|
||||
pane {
|
||||
command "devenv"
|
||||
args "up"
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
49
modules/home/applications/zsh.nix
Normal file
49
modules/home/applications/zsh.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.applications.zsh;
|
||||
in {
|
||||
options = {
|
||||
settings.applications.zsh.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable zsh shell
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
eza
|
||||
bat
|
||||
];
|
||||
|
||||
home.shellAliases = {
|
||||
ls = "eza";
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enable = false;
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
};
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
programs.skim = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user