Compare commits
No commits in common. "243c6008c65429d5dee7e16fe9a2237042ea1a3c" and "b81bad5d245ea1dde47b4b89c03515480387bb6d" have entirely different histories.
243c6008c6
...
b81bad5d24
8 changed files with 113 additions and 404 deletions
|
|
@ -62,28 +62,28 @@
|
|||
|
||||
# Emacs bindings (Dvorak physical positions)
|
||||
# Use Alt-Backspace for delete-word (works everywhere natively)
|
||||
# control = {
|
||||
# # a = "home"; # C-a → Home
|
||||
# d = "end"; # C-e → End (dvorak 'e' = qwerty 'd')
|
||||
# r = "up"; # C-p → Up (dvorak 'p' = qwerty 'r')
|
||||
# l = "down"; # C-n → Down (dvorak 'n' = qwerty 'l')
|
||||
# j = "backspace"; # C-h → Backspace (dvorak 'h' = qwerty 'j')
|
||||
# m = "enter"; # C-m → Enter
|
||||
# };
|
||||
control = {
|
||||
a = "home"; # C-a → Home
|
||||
d = "end"; # C-e → End (dvorak 'e' = qwerty 'd')
|
||||
r = "up"; # C-p → Up (dvorak 'p' = qwerty 'r')
|
||||
l = "down"; # C-n → Down (dvorak 'n' = qwerty 'l')
|
||||
j = "backspace"; # C-h → Backspace (dvorak 'h' = qwerty 'j')
|
||||
m = "enter"; # C-m → Enter
|
||||
};
|
||||
|
||||
# # macOS-style Super/Cmd shortcuts (Dvorak physical positions)
|
||||
# meta = {
|
||||
# # a = "C-a"; # Cmd+a → select all
|
||||
# i = "C-i"; # Cmd+c → copy (dvorak 'c' = qwerty 'i')
|
||||
# k = "C-k"; # Cmd+t → new tab (dvorak 't' = qwerty 'k')
|
||||
# l = "C-l"; # Cmd+n → new window (dvorak 'n' = qwerty 'l')
|
||||
# comma = "C-comma"; # Cmd+w → close tab (dvorak 'w' = qwerty ',')
|
||||
# period = "C-period"; # Cmd+v → paste (dvorak 'v' = qwerty '.')
|
||||
# semicolon = "C-semicolon"; # Cmd+s → save (dvorak 's' = qwerty ';')
|
||||
# slash = "C-slash"; # Cmd+z → undo (dvorak 'z' = qwerty '/')
|
||||
# x = "C-x"; # Cmd+q → quit (dvorak 'q' = qwerty 'x')
|
||||
# b = "C-b"; # Cmd+x → cut (dvorak 'x' = qwerty 'b')
|
||||
# };
|
||||
# macOS-style Super/Cmd shortcuts (Dvorak physical positions)
|
||||
meta = {
|
||||
a = "C-a"; # Cmd+a → select all
|
||||
i = "C-i"; # Cmd+c → copy (dvorak 'c' = qwerty 'i')
|
||||
k = "C-k"; # Cmd+t → new tab (dvorak 't' = qwerty 'k')
|
||||
l = "C-l"; # Cmd+n → new window (dvorak 'n' = qwerty 'l')
|
||||
comma = "C-comma"; # Cmd+w → close tab (dvorak 'w' = qwerty ',')
|
||||
period = "C-period"; # Cmd+v → paste (dvorak 'v' = qwerty '.')
|
||||
semicolon = "C-semicolon"; # Cmd+s → save (dvorak 's' = qwerty ';')
|
||||
slash = "C-slash"; # Cmd+z → undo (dvorak 'z' = qwerty '/')
|
||||
x = "C-x"; # Cmd+q → quit (dvorak 'q' = qwerty 'x')
|
||||
b = "C-b"; # Cmd+x → cut (dvorak 'x' = qwerty 'b')
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -134,23 +134,23 @@
|
|||
description = "Dustin Swan";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
shell = pkgs.fish;
|
||||
# packages = with pkgs; [ ];
|
||||
packages = with pkgs; [
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
|
||||
programs.fish.enable = true;
|
||||
programs.steam.enable = true;
|
||||
# programs.xwayland.enable = true;
|
||||
# programs.hyprland.enable = true;
|
||||
# programs.niri.enable = true;
|
||||
# programs.dms-shell.enable = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
git
|
||||
# wget
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
|
|
@ -170,12 +170,21 @@
|
|||
networking.firewall.allowedTCPPorts = [
|
||||
24800 # Deskflow
|
||||
24801 # Deskflow
|
||||
# 47984 # Sunshine
|
||||
# 47989 # Sunshine
|
||||
# 47990 # Sunshine
|
||||
# 48010 # Sunshine
|
||||
53317 # LocalSend
|
||||
];
|
||||
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
24800 # Deskflow
|
||||
24801 # Deskflow
|
||||
# 47998 # Sunshine
|
||||
# 47999 # Sunshine
|
||||
# 48000 # Sunshine
|
||||
# 48002 # Sunshine
|
||||
# 48010 # Sunshine
|
||||
53317 # LocalSend
|
||||
];
|
||||
# Or disable the firewall altogether.
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
# Trying to get suspend working..
|
||||
# boot.kernelParams = [ "processor.max_cstate=1" ];
|
||||
boot.kernelParams = [
|
||||
# "mem_sleep_default=deep" # forces S3 suspend instead of s2idle
|
||||
# "processor.max_cstate=5" # prevents CPU from going into deep C-states that break resume
|
||||
# "amd_iommu=off" # optional, can help on some ASUS boards
|
||||
"btusb.enable_autosuspend=0"
|
||||
"usbcore.autosuspend=-1"
|
||||
"btmtk.disable_sco_esco=Y"
|
||||
];
|
||||
boot.kernelModules = [ "kvm-amd" "btusb" "btmtk" ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/mapper/luks-78910c3e-3aec-4122-af7b-8a6e55005f1b";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-78910c3e-3aec-4122-af7b-8a6e55005f1b".device = "/dev/disk/by-uuid/78910c3e-3aec-4122-af7b-8a6e55005f1b";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/B0C0-690A";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
# Trying to get Bluetooth working..
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.firmware = with pkgs; [
|
||||
linux-firmware
|
||||
];
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
# services.blueman.enable = true;
|
||||
}
|
||||
41
home-cli.nix
41
home-cli.nix
|
|
@ -16,6 +16,7 @@ in
|
|||
};
|
||||
|
||||
imports = [
|
||||
<catppuccin/modules/home-manager>
|
||||
nixvim.homeModules.nixvim
|
||||
./home-nvim.nix
|
||||
];
|
||||
|
|
@ -31,14 +32,14 @@ in
|
|||
poppler-utils # pdftotext
|
||||
xan # e.g. xan slice 3,2 file.csv | xan behead | xan view -An; see also: csvi
|
||||
doxx # read docx files
|
||||
sqlit-tui # see also: pam; harlequin; lazysql; gobang; dblab
|
||||
sqlit-tui # see also: harlequin; lazysql; gobang; dblab
|
||||
# snitch # see also: bandwhich
|
||||
epy # ebook reader. see also: erp; bookokrat; lue
|
||||
# mimic # tts engine, used by epy
|
||||
posting # see also: httpie, yapi, sled, Yaak (GUI), Bruno (GUI)
|
||||
croc magic-wormhole # transfer files
|
||||
# calcure # calendar cli app, can point to ics files or URL
|
||||
dust duf dua # disk usage. see also: cull
|
||||
dust duf dua # disk usage
|
||||
doggo # dig
|
||||
ddev
|
||||
ngrok
|
||||
|
|
@ -88,6 +89,11 @@ in
|
|||
|
||||
xdg.enable = true;
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
zed.enable = false;
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
|
|
@ -111,29 +117,12 @@ in
|
|||
# open # highlight: o -> open; ctrl-o -> $EDITOR; S -> web search
|
||||
vim-tmux-navigator # ctrl-h, -j, -k, -l -> move between tmux and vim splits
|
||||
# extrakto # prefix tab -> fuzzy find text on screen; enter to copy; tab to paste
|
||||
# fingers # prefix F -> copy/open/edit items on screen by letter
|
||||
fingers # prefix F -> copy/open/edit items on screen by letter
|
||||
];
|
||||
# Remove that SHELL thing when fixed upstream
|
||||
extraConfig = ''
|
||||
set -ag terminal-overrides ",xterm-256color:RGB"
|
||||
set -g default-command "$SHELL"
|
||||
|
||||
# Status bar - inherits terminal fg/bg so it follows light/dark mode
|
||||
set -g status-style "bg=default,fg=default"
|
||||
set -g status-justify centre
|
||||
set -g status-left ""
|
||||
set -g status-right ""
|
||||
set -g window-status-format " #I "
|
||||
set -g window-status-current-format " #I "
|
||||
set -g window-status-current-style "bold,reverse"
|
||||
set -g window-status-style "dim"
|
||||
|
||||
# Pane borders
|
||||
set -g pane-border-style "fg=brightblack"
|
||||
set -g pane-active-border-style "fg=white"
|
||||
|
||||
# Messages
|
||||
set -g message-style "bg=default,fg=default,bold"
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
@ -170,10 +159,7 @@ in
|
|||
programs.nix-search-tv.enable = true;
|
||||
# programs.fzf.enable = true; # used by other apps, tmux, etc.
|
||||
programs.zoxide.enable = true;
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config.theme = "ansi";
|
||||
};
|
||||
programs.bat.enable = true;
|
||||
programs.ripgrep.enable = true;
|
||||
programs.ripgrep-all.enable = true;
|
||||
programs.yazi.enable = true;
|
||||
|
|
@ -259,13 +245,6 @@ in
|
|||
|
||||
programs.gpg.enable = true;
|
||||
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PASSWORD_STORE_DIR = "$HOME/.password-store";
|
||||
};
|
||||
};
|
||||
|
||||
programs.keychain = {
|
||||
enable = true;
|
||||
keys = [ "id_rsa" "id_rsa_mr" "2B3A6377" ];
|
||||
|
|
|
|||
45
home-gui.nix
45
home-gui.nix
|
|
@ -7,8 +7,6 @@
|
|||
localsend
|
||||
];
|
||||
|
||||
programs.sioyek.enable = true;
|
||||
|
||||
programs.halloy = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
@ -26,40 +24,41 @@
|
|||
programs.ghostty = {
|
||||
enable = true;
|
||||
installBatSyntax = false;
|
||||
package = pkgs.ghostty-bin;
|
||||
|
||||
settings = {
|
||||
font-family = "Iosevka NFM";
|
||||
font-size = 12;
|
||||
font-size = 16;
|
||||
font-thicken = true;
|
||||
theme = "dark:One Half Dark,light:One Half Light";
|
||||
# theme = "dark:catppuccin-mocha,light:catppuccin-latte"; # TODO: waiting on all cli apps to handle auto switching too
|
||||
theme = "catppuccin-mocha";
|
||||
background-opacity = 0.95;
|
||||
background-blur-radius = 15;
|
||||
window-padding-x = 12;
|
||||
window-padding-y = 8;
|
||||
window-padding-balance = true;
|
||||
macos-titlebar-style = "tabs";
|
||||
window-theme = "auto";
|
||||
macos-option-as-alt = "left";
|
||||
copy-on-select = "clipboard";
|
||||
};
|
||||
};
|
||||
|
||||
# programs.zed-editor = {
|
||||
# enable = true;
|
||||
# userSettings = {
|
||||
# vim_mode = true;
|
||||
# theme = {
|
||||
# mode = "system";
|
||||
# light = "Catppuccin Latte";
|
||||
# dark = "Catppuccin Frappé";
|
||||
# };
|
||||
# buffer_font_size = 16;
|
||||
# buffer_font_family = "Iosevka Nerd Font Mono";
|
||||
# vim = {
|
||||
# enable_vim_sneak = true;
|
||||
# use_smartcase_find = true;
|
||||
# };
|
||||
# format_on_save = "off";
|
||||
# };
|
||||
# };
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
userSettings = {
|
||||
vim_mode = true;
|
||||
theme = {
|
||||
mode = "system";
|
||||
light = "Catppuccin Latte";
|
||||
dark = "Catppuccin Frappé";
|
||||
};
|
||||
buffer_font_size = 16;
|
||||
buffer_font_family = "Iosevka Nerd Font Mono";
|
||||
vim = {
|
||||
enable_vim_sneak = true;
|
||||
use_smartcase_find = true;
|
||||
};
|
||||
format_on_save = "off";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
127
home-linux.nix
127
home-linux.nix
|
|
@ -1,153 +1,38 @@
|
|||
{pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
secrets = import ./secrets.nix;
|
||||
in
|
||||
|
||||
{
|
||||
home.homeDirectory = "/home/dustinswan";
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# retroarch gimp blender
|
||||
brave
|
||||
# ghostty
|
||||
ghostty
|
||||
bitwarden-desktop
|
||||
nerd-fonts.iosevka
|
||||
high-tide tidal-hifi
|
||||
deskflow
|
||||
sunshine
|
||||
# steam # added as a system package, so it actually works
|
||||
# wl-clipboard # For Wayland clipboard (wl-copy, wl-paste)
|
||||
];
|
||||
|
||||
programs.gnome-shell = {
|
||||
enable = true;
|
||||
extensions = with pkgs.gnomeExtensions; [
|
||||
{ package = caffeine; }
|
||||
{ package = vitals; }
|
||||
{ package = appindicator; }
|
||||
{ package = syncthing-indicator; }
|
||||
{ package = blur-my-shell; }
|
||||
{ package = media-controls; }
|
||||
];
|
||||
};
|
||||
|
||||
dconf.settings = {
|
||||
# Custom keybinding for Vicinae
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
custom-keybindings = [
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
|
||||
];
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
||||
name = "Vicinae";
|
||||
command = "vicinae toggle";
|
||||
binding = "<Super>space";
|
||||
};
|
||||
|
||||
# Extension settings
|
||||
"org/gnome/shell/extensions/vitals" = {
|
||||
show-gpu = true;
|
||||
};
|
||||
"org/gnome/shell/extensions/caffeine" = {
|
||||
show-indicator = "always";
|
||||
};
|
||||
"org/gnome/shell/extensions/blur-my-shell" = {
|
||||
settings-version = 2;
|
||||
};
|
||||
};
|
||||
# home.keyboard.options = [ "ctrl:nocaps" "compose:ralt" ];
|
||||
|
||||
programs.vicinae = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
settings = {
|
||||
devices = {
|
||||
"Desktop" = { id = secrets.syncthing.desktop; };
|
||||
"Laptop" = { id = secrets.syncthing.laptop; };
|
||||
"Phone" = { id = secrets.syncthing.phone; };
|
||||
};
|
||||
folders = {
|
||||
"Camera" = {
|
||||
id = "sm-n950u-photos";
|
||||
path = "~/Camera";
|
||||
devices = [ "Laptop" "Phone" ];
|
||||
};
|
||||
"Sync" = {
|
||||
path = "~/Sync";
|
||||
devices = [ "Laptop" "Phone" ];
|
||||
};
|
||||
"Passwords" = {
|
||||
path = "~/.password-store";
|
||||
devices = [ "Laptop" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
defaultCacheTtl = 34560000;
|
||||
maxCacheTtl = 34560000;
|
||||
defaultCacheTtlSsh = 34560000;
|
||||
maxCacheTtlSsh = 34560000;
|
||||
defaultCacheTtl = 86400;
|
||||
maxCacheTtl = 86400;
|
||||
defaultCacheTtlSsh = 86400;
|
||||
maxCacheTtlSsh = 86400;
|
||||
pinentry.package = pkgs.pinentry-all;
|
||||
};
|
||||
|
||||
services.mbsync = {
|
||||
enable = true;
|
||||
frequency = "*:0/15"; # every 15 minutes
|
||||
};
|
||||
|
||||
services.vdirsyncer = {
|
||||
enable = true;
|
||||
frequency = "*:0/15"; # every 15 minutes
|
||||
};
|
||||
|
||||
# Niri config - imported from separate file
|
||||
# xdg.configFile."niri/config.kdl".source = ./niri-config.kdl;
|
||||
|
||||
# wayland.windowManager.hyprland = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# "$mod" = "ALT";
|
||||
# input = {
|
||||
# kb_layout = "us";
|
||||
# kb_variant = "dvorak";
|
||||
# };
|
||||
# # general = {
|
||||
# # gaps_in = 0;
|
||||
# # gaps_out = 0;
|
||||
# # border_size = 2;
|
||||
# # "col.active_border" = "rgba(89b4faaa)"; # Example color
|
||||
# # "col.inactive_border" = "rgba(303030aa)";
|
||||
# # };
|
||||
# # decoration = {
|
||||
# # shadow_offset = "0 5";
|
||||
# # "col.shadow" = "rgba(00000099)";
|
||||
# # };
|
||||
# # bindm = [ # Mouse bindings
|
||||
# # "$mod, mouse:272, movewindow"
|
||||
# # "$mod, mouse:273, resizewindow"
|
||||
# # ];
|
||||
# bind = [ # Keyboard bindings
|
||||
# # "$mod, Q, killactive,"
|
||||
# # "$mod, M, exit," # Exit Hyprland
|
||||
# # "$mod, E, exec, firefox" # Open Firefox
|
||||
# "$mod, Enter, exec, ghostty"
|
||||
# ];
|
||||
# exec-once = [ # Run once on startup
|
||||
# "vicinae server &"
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
|
||||
imports = [ ./home-cli.nix ./home-gui.nix ./home-mail.nix ];
|
||||
}
|
||||
|
|
|
|||
40
home-mac.nix
40
home-mac.nix
|
|
@ -8,51 +8,15 @@
|
|||
terminal-notifier
|
||||
];
|
||||
|
||||
programs.ghostty.package = pkgs.ghostty-bin;
|
||||
programs.ghostty.settings.font-size = 16;
|
||||
|
||||
home.file.gpg-agent = {
|
||||
target = ".gnupg/gpg-agent.conf";
|
||||
text = ''
|
||||
pinentry-program ${pkgs.pinentry_mac}/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac
|
||||
default-cache-ttl 34560000
|
||||
max-cache-ttl 34560000
|
||||
default-cache-ttl 86400
|
||||
max-cache-ttl 86400
|
||||
'';
|
||||
};
|
||||
|
||||
services.imapnotify.enable = true;
|
||||
|
||||
# Add PATH to imapnotify service so it can find pass
|
||||
launchd.agents.imapnotify-FastMail.config.EnvironmentVariables = {
|
||||
PATH = "${pkgs.pass}/bin:${pkgs.gnupg}/bin:/usr/bin:/bin";
|
||||
};
|
||||
|
||||
launchd.agents.mbsync = {
|
||||
enable = true;
|
||||
config = {
|
||||
ProgramArguments = [ "${pkgs.isync}/bin/mbsync" "-a" ];
|
||||
StartInterval = 900; # every 15 minutes
|
||||
StandardOutPath = "/tmp/mbsync.log";
|
||||
StandardErrorPath = "/tmp/mbsync.err";
|
||||
EnvironmentVariables = {
|
||||
PATH = "${pkgs.pass}/bin:${pkgs.gnupg}/bin:/usr/bin:/bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
launchd.agents.vdirsyncer = {
|
||||
enable = true;
|
||||
config = {
|
||||
ProgramArguments = [ "${pkgs.vdirsyncer}/bin/vdirsyncer" "sync" ];
|
||||
StartInterval = 900; # every 15 minutes
|
||||
StandardOutPath = "/tmp/vdirsyncer.log";
|
||||
StandardErrorPath = "/tmp/vdirsyncer.err";
|
||||
EnvironmentVariables = {
|
||||
PATH = "${pkgs.pass}/bin:${pkgs.gnupg}/bin:/usr/bin:/bin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# https://codeberg.org/adamcstephens/dotfiles/src/commit/e14f35f6e9a9cb9174016948c512c0db364e0dec/apps/fish/init.fish
|
||||
programs.fish.shellInit = ''
|
||||
fenv source "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
|
||||
|
|
|
|||
|
|
@ -1,52 +1,13 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
# Cross-platform opener command
|
||||
openCmd = if pkgs.stdenv.isDarwin then "open" else "${pkgs.xdg-utils}/bin/xdg-open";
|
||||
in
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
programs.mbsync.enable = true;
|
||||
programs.msmtp.enable = true;
|
||||
programs.himalaya.enable = true;
|
||||
programs.vdirsyncer.enable = true;
|
||||
programs.khard.enable = true;
|
||||
programs.notmuch = {
|
||||
enable = true;
|
||||
new = {
|
||||
tags = [ "new" ];
|
||||
};
|
||||
hooks = {
|
||||
preNew = "mbsync -a";
|
||||
};
|
||||
};
|
||||
|
||||
accounts.email.accounts.FastMail.notmuch.enable = true;
|
||||
programs.aerc = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
general.unsafe-accounts-conf = true;
|
||||
ui = {
|
||||
mouse-enabled = true;
|
||||
threading-enabled = true;
|
||||
};
|
||||
compose = {
|
||||
address-book-cmd = "khard email --parsable '%s'";
|
||||
};
|
||||
# viewer = {
|
||||
# alternatives = "text/html,text/plain";
|
||||
# };
|
||||
filters = {
|
||||
"text/plain" = "cat";
|
||||
"text/html" = "${pkgs.w3m}/bin/w3m -T text/html -cols $(tput cols) -dump -o display_image=false -o display_link_number=true";
|
||||
};
|
||||
openers = {
|
||||
"text/html" = "${openCmd}";
|
||||
"text/plain" = "less -R";
|
||||
"application/pdf" = "${openCmd}";
|
||||
"image/*" = "${openCmd}";
|
||||
};
|
||||
};
|
||||
extraConfig.general.unsafe-accounts-conf = true;
|
||||
};
|
||||
|
||||
accounts.email = {
|
||||
|
|
@ -71,31 +32,22 @@ in
|
|||
signByDefault = true;
|
||||
key = "AD11750151C10881970BD943AB49BD6B2B3A6377";
|
||||
};
|
||||
passwordCommand = "pass show email/fastmail";
|
||||
passwordCommand = "gpg -dq ${builtins.getEnv "HOME"}/.dustinswan@fastmail.com-password.gpg";
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "maildir";
|
||||
expunge = "maildir";
|
||||
};
|
||||
imapnotify = {
|
||||
enable = true;
|
||||
boxes = [ "INBOX" ];
|
||||
onNotify = "${pkgs.isync}/bin/mbsync FastMail:INBOX";
|
||||
onNotifyPost = let
|
||||
notifyCmd = if pkgs.stdenv.isDarwin
|
||||
then "${pkgs.terminal-notifier}/bin/terminal-notifier -title 'New Mail' -message 'FastMail INBOX' -sound default"
|
||||
else "${pkgs.libnotify}/bin/notify-send 'New Mail' 'FastMail INBOX'";
|
||||
in notifyCmd;
|
||||
};
|
||||
msmtp.enable = true;
|
||||
aerc.enable = true;
|
||||
himalaya = {
|
||||
enable = true;
|
||||
settings = {
|
||||
backend = {
|
||||
type = "maildir";
|
||||
root-dir = "${builtins.getEnv "HOME"}/Mail/FastMail";
|
||||
};
|
||||
# backend = "imap";
|
||||
# maildir.root-dir = "/Users/dustinswan/Mail/FastMail";
|
||||
# message.send.backend = "smtp";
|
||||
# sent-folder = "Sent";
|
||||
# draft-folder = "Drafts";
|
||||
};
|
||||
};
|
||||
signature = {
|
||||
|
|
@ -117,33 +69,13 @@ in
|
|||
};
|
||||
primary = true;
|
||||
remote = {
|
||||
passwordCommand = ["pass" "show" "email/fastmail"];
|
||||
passwordCommand = ["~/dotfiles/bin/decrypt-password" "dustinswan@fastmail.com"];
|
||||
type = "caldav";
|
||||
url = "https://caldav.fastmail.com/dav/";
|
||||
userName = "dustinswan@fastmail.com";
|
||||
};
|
||||
vdirsyncer = {
|
||||
enable = true;
|
||||
collections = ["from a" "from b"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
accounts.contact = {
|
||||
basePath = "Contacts";
|
||||
accounts = {
|
||||
FastMail = {
|
||||
khard.enable = true;
|
||||
remote = {
|
||||
passwordCommand = ["pass" "show" "email/fastmail"];
|
||||
type = "carddav";
|
||||
url = "https://carddav.fastmail.com/dav/";
|
||||
userName = "dustinswan@fastmail.com";
|
||||
};
|
||||
vdirsyncer = {
|
||||
enable = true;
|
||||
collections = ["from a" "from b"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,6 +8,10 @@
|
|||
withNodeJs = true;
|
||||
withRuby = true;
|
||||
|
||||
colorschemes.catppuccin.enable = true;
|
||||
colorschemes.catppuccin.settings.transparent_background = true;
|
||||
colorschemes.catppuccin.settings.flavour = "auto";
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
ignorecase = true;
|
||||
|
|
@ -27,25 +31,14 @@
|
|||
maplocalleader = " ";
|
||||
};
|
||||
|
||||
autoCmd = [
|
||||
{
|
||||
event = [ "BufRead" "BufNewFile" ];
|
||||
pattern = [ "*.cg" ];
|
||||
command = "setlocal tabstop=2 shiftwidth=2";
|
||||
}
|
||||
];
|
||||
|
||||
keymaps = [
|
||||
{ key = "<leader>e"; action = "<cmd>Neotree toggle<cr>"; }
|
||||
{ key = "<leader>f"; action = "<cmd>Tv files<cr>"; }
|
||||
{ key = "<leader>/"; action = "<cmd>Tv text<cr>"; }
|
||||
{ key = "<leader>bd"; action = "<cmd>bdelete<cr>"; }
|
||||
{ key = "<leader>nd"; action = "<cmd>NoiceDismiss<cr>"; }
|
||||
{ key = "<leader>xx"; action = "<cmd>Trouble diagnostics toggle<cr>"; }
|
||||
{ key = "<S-l>"; action = "<cmd>bnext<cr>"; }
|
||||
{ key = "<S-h>"; action = "<cmd>bprev<cr>"; }
|
||||
{ key = "s"; mode = [ "n" "x" "o" ]; action.__raw = "function() require('flash').jump() end"; options.desc = "Flash"; }
|
||||
{ key = "S"; mode = [ "n" "x" "o" ]; action.__raw = "function() require('flash').treesitter() end"; options.desc = "Flash Treesitter"; }
|
||||
];
|
||||
|
||||
plugins = {
|
||||
|
|
@ -54,19 +47,11 @@
|
|||
cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
settings = {
|
||||
sources = [
|
||||
settings.sources = [
|
||||
{ name = "nvim_lsp"; }
|
||||
{ name = "path"; }
|
||||
{ name = "buffer"; }
|
||||
];
|
||||
mapping = {
|
||||
"<Tab>" = "cmp.mapping.select_next_item()";
|
||||
"<S-Tab>" = "cmp.mapping.select_prev_item()";
|
||||
"<CR>" = "cmp.mapping.confirm({ select = false })";
|
||||
"<C-e>" = "cmp.mapping.abort()";
|
||||
};
|
||||
};
|
||||
};
|
||||
cmp-nvim-lsp.enable = true;
|
||||
cmp-buffer.enable = true;
|
||||
|
|
@ -84,11 +69,7 @@
|
|||
csvview.enable = true;
|
||||
dashboard.enable = true;
|
||||
emmet.enable = true;
|
||||
flash = {
|
||||
enable = true;
|
||||
settings.jump.autojump = true;
|
||||
# settings.modes.search.enabled = true;
|
||||
};
|
||||
flash.enable = true;
|
||||
gitsigns.enable = true;
|
||||
lazygit.enable = true;
|
||||
lint.enable = true;
|
||||
|
|
@ -119,7 +100,7 @@
|
|||
};
|
||||
# lsp-format.enable = true;
|
||||
lsp-lines.enable = true;
|
||||
# markview.enable = true;
|
||||
markview.enable = true;
|
||||
neo-tree.enable = true;
|
||||
notify.enable = true;
|
||||
nix.enable = true;
|
||||
|
|
@ -140,7 +121,6 @@
|
|||
settings = {
|
||||
highlight = true;
|
||||
trim_on_write = false;
|
||||
ft_blocklist = [ "dashboard" ];
|
||||
};
|
||||
};
|
||||
trouble.enable = true;
|
||||
|
|
@ -149,5 +129,20 @@
|
|||
web-devicons.enable = true;
|
||||
which-key.enable = true;
|
||||
};
|
||||
|
||||
# extraPlugins = [(pkgs.vimUtils.buildVimPlugin {
|
||||
# name = "vim-lumen";
|
||||
# src = pkgs.fetchFromGitHub {
|
||||
# owner = "f-person";
|
||||
# repo = "auto-dark-mode.nvim";
|
||||
# rev = "4531f8b2b09ed8f0b8875a706419f9cecda1d969";
|
||||
# hash = "sha256-JPoyRRwDJ9KOGWnqOEG4VkEX4rJHFhFYV3bwS9F2f9E=";
|
||||
# };
|
||||
# })];
|
||||
|
||||
# extraConfigLua = ''
|
||||
# local auto_dark_mode = require('auto-dark-mode')
|
||||
# auto_dark_mode.setup()
|
||||
# '';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue