fix!: make pickwick usable again

This commit is contained in:
Ray Andrew 2025-12-19 01:13:32 -06:00
parent 49b9cf08ba
commit 805cb01ca6
No known key found for this signature in database
10 changed files with 319 additions and 21 deletions

View file

@ -19,7 +19,7 @@ davmail.logFilePath=/tmp/davmail.log
davmail.logFileSize=1MB davmail.logFileSize=1MB
# OAuth token storage # OAuth token storage
davmail.oauth.tokenFilePath=/Users/rayandrew/.local/state/davmail-tokens davmail.oauth.tokenFilePath=/home/rayandrew/.local/state/davmail-tokens
# Log levels # Log levels
log4j.logger.davmail=WARN log4j.logger.davmail=WARN

View file

@ -0,0 +1,33 @@
# DavMail configuration
# See: http://davmail.sourceforge.net/serversetup.html
davmail.server=true
davmail.disableUpdateCheck=true
davmail.mode=O365Manual
davmail.url=https://outlook.office365.com/EWS/Exchange.asmx
davmail.keepDelay=30
# Ports
davmail.caldavPort=1080
davmail.imapPort=1143
davmail.ldapPort=1389
davmail.popPort=1110
davmail.smtpPort=1025
# Logging
davmail.logFilePath=/tmp/davmail.log
davmail.logFileSize=1MB
# OAuth token storage
davmail.oauth.tokenFilePath=/home/rayandrew/.local/state/davmail-tokens
# Log levels
log4j.logger.davmail=WARN
log4j.logger.httpclient.wire=WARN
log4j.logger.org.apache.commons.httpclient=WARN
log4j.rootLogger=WARN
# log4j.logger.davmail=DEBUG
# log4j.logger.httpclient.wire=DEBUG
# log4j.logger.org.apache.commons.httpclient=DEBUG
# log4j.rootLogger=DEBUG

View file

@ -3,7 +3,7 @@ gtk-single-instance = true
gtk-titlebar = false gtk-titlebar = false
window-decoration = server window-decoration = server
quit-after-last-window-closed = true quit-after-last-window-closed = true
gtk-adwaita = false # gtk-adwaita = false
# font-family = ${system-font} # font-family = ${system-font}
font-family = Consolas font-family = Consolas
font-family = Symbols Nerd Font Mono font-family = Symbols Nerd Font Mono

View file

@ -58,9 +58,9 @@ add 'aserowy/tmux.nvim'
add 'NMAC427/guess-indent.nvim' add 'NMAC427/guess-indent.nvim'
add 'wakatime/vim-wakatime' add 'wakatime/vim-wakatime'
add 'OXY2DEV/markview.nvim' add 'OXY2DEV/markview.nvim'
add { source = 'R-nvim/R.nvim', depends = { 'nvim-treesitter/nvim-treesitter' } } add { source = 'R-nvim/R.nvim', depends = { { source = 'nvim-treesitter/nvim-treesitter', checkout = 'main' } } }
add 'nvim-treesitter/nvim-treesitter' add { source = 'nvim-treesitter/nvim-treesitter', checkout = 'main' }
add 'nvim-treesitter/nvim-treesitter-textobjects' add { source = 'nvim-treesitter/nvim-treesitter-textobjects', checkout = 'main' }
add { source = 'nvim-pack/nvim-spectre', depends = { 'nvim-lua/plenary.nvim' } } add { source = 'nvim-pack/nvim-spectre', depends = { 'nvim-lua/plenary.nvim' } }
add 'lervag/vimtex' add 'lervag/vimtex'
add 'micangl/cmp-vimtex' add 'micangl/cmp-vimtex'
@ -345,7 +345,7 @@ later(function()
require('tmux').setup {} require('tmux').setup {}
-- Ensure treesitter parsers are installed -- Ensure treesitter parsers are installed
require('nvim-treesitter.configs').setup { require('nvim-treesitter.config').setup {
ensure_installed = { ensure_installed = {
'r', 'r',
'rnoweb', 'rnoweb',
@ -595,20 +595,21 @@ later(function()
'clangd', -- C/C++ 'clangd', -- C/C++
'copilot', 'copilot',
'marksman', -- Markdown + Zettelkasten 'marksman', -- Markdown + Zettelkasten
'stylua',
}, },
automatic_installation = true, automatic_installation = true,
} }
-- Ensure formatters are installed -- Ensure formatters are installed
local mason_registry = require 'mason-registry' -- local mason_registry = require 'mason-registry'
local formatters = { -- local formatters = {
'stylua', -- 'stylua',
} -- }
--
for _, formatter in ipairs(formatters) do -- for _, formatter in ipairs(formatters) do
local package = mason_registry.get_package(formatter) -- local package = mason_registry.get_package(formatter)
if not package:is_installed() then package:install() end -- if not package:is_installed() then package:install() end
end -- end
-- LSP keybindings and options -- LSP keybindings and options
vim.api.nvim_create_autocmd('LspAttach', { vim.api.nvim_create_autocmd('LspAttach', {

73
home/colors.nix Normal file
View file

@ -0,0 +1,73 @@
# Noctis Azureus color palette
# Based on https://github.com/EastSun5566/ghostty-noctis-themes
# This is the single source of truth for colors across the dotfiles
{
# UI backgrounds (from ghostty theme)
bg = "#051b29";
bg_dark = "#041520";
bg_darker = "#030f18";
bg_float = "#07273b";
bg_highlight = "#0c3f5f";
bg_visual = "#1679b6";
# Diff backgrounds
diff_add = "#1a3328";
diff_delete = "#3d2a2a";
diff_change = "#153a5b";
# Foreground
fg = "#becfda";
fg_dark = "#aec3d0";
fg_gutter = "#475e6c";
# Syntax colors (from terminal palette)
comment = "#475e6c"; # bright black
keyword = "#df769b"; # magenta
tag = "#e66533"; # red
variable = "#e4b781"; # yellow
string = "#49e9a6"; # green
string_escape = "#60ebb1"; # bright green
number = "#49ace9"; # blue
func = "#49d6e9"; # cyan
type = "#e97749"; # bright red
constant = "#e69533"; # bright yellow
support = "#60dbeb"; # bright cyan
misc = "#60b6eb"; # bright blue
# Semantic colors
error = "#e66533"; # red
warning = "#e4b781"; # yellow
info = "#49ace9"; # blue
hint = "#49e9a6"; # green
# UI accents
border = "#28353e"; # black
cursor = "#becfda";
search = "#49e9a6";
match = "#e4b781";
# Bar/statusline specific (matches sketchybar approach)
bar_bg = "#030f18"; # bg_darker - same as sketchybar
bar_fg = "#aec3d0"; # fg_dark - slightly muted
bar_accent = "#49ace9"; # blue - for focused workspace
# Terminal colors (ANSI)
black = "#28353e";
red = "#e66533";
green = "#49e9a6";
yellow = "#e4b781";
blue = "#49ace9";
magenta = "#df769b";
cyan = "#49d6e9";
white = "#becfda";
# Bright terminal colors
bright_black = "#475e6c";
bright_red = "#e97749";
bright_green = "#60ebb1";
bright_yellow = "#e69533";
bright_blue = "#60b6eb";
bright_magenta = "#df769b";
bright_cyan = "#60dbeb";
bright_white = "#d0dfe8";
}

View file

@ -21,7 +21,11 @@
# DavMail service (Exchange gateway) # DavMail service (Exchange gateway)
services.davmail = { services.davmail = {
enable = config.custom.email.davmail; enable = config.custom.email.davmail;
configFile = "${dots}/config/davmail/davmail.properties"; configFile =
if pkgs.stdenv.isDarwin then
"${dots}/config/davmail/davmail.darwin.properties"
else
"${dots}/config/davmail/davmail.linux.properties";
}; };
# Mbsync service (mail sync) # Mbsync service (mail sync)

View file

@ -32,6 +32,9 @@
firefox = { firefox = {
enable = mkEnableOption "Enable Firefox"; enable = mkEnableOption "Enable Firefox";
}; };
qutebrowser = {
enable = mkEnableOption "Enable qutebrowser";
};
}; };
config = lib.mkMerge [ config = lib.mkMerge [
@ -58,6 +61,21 @@
} }
(lib.mkIf config.custom.gui.default.enable { (lib.mkIf config.custom.gui.default.enable {
home.packages = with pkgs; [
qutebrowser
];
xdg.mimeApps = {
enable = true;
defaultApplications = {
"text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop";
};
};
dconf.settings = { dconf.settings = {
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
color-scheme = "prefer-dark"; color-scheme = "prefer-dark";
@ -65,6 +83,22 @@
clock-format = "12h"; clock-format = "12h";
}; };
}; };
gtk = {
enable = true;
theme = {
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
};
qt = {
enable = true;
style = {
name = "adwaita-dark";
};
};
}) })
(lib.mkIf config.custom.gui.vscode.enable { (lib.mkIf config.custom.gui.vscode.enable {
@ -115,9 +149,8 @@
spotify spotify
slack slack
webex webex
whatsapp-for-linux wasistlos
teams-for-linux teams-for-linux
skypeforlinux
inputs.zen-browser.packages."${system}".twilight inputs.zen-browser.packages."${system}".twilight
chromium chromium
arandr arandr

View file

@ -6,6 +6,9 @@
system, system,
... ...
}: }:
let
colors = import ../colors.nix;
in
{ {
options.custom.gui = with lib; { options.custom.gui = with lib; {
i3 = { i3 = {
@ -13,12 +16,74 @@
}; };
}; };
config = lib.mkIf config.custom.gui.i3.enable { config = lib.mkIf config.custom.gui.i3.enable {
xdg.configFile."i3status/config".source = pkgs.replaceVars ./i3status.config { }; xdg.configFile."i3status/config".source = pkgs.replaceVars ./i3status.config {
inherit (colors) green warning error;
};
services.picom = { services.picom = {
enable = true; enable = true;
}; };
services.dunst = { services.dunst = {
enable = true; enable = true;
settings = {
global = {
width = 300;
height = 300;
origin = "top-right";
offset = "10x50";
notification_limit = 5;
progress_bar = true;
progress_bar_height = 10;
progress_bar_frame_width = 1;
progress_bar_min_width = 150;
progress_bar_max_width = 300;
transparency = 0;
separator_height = 2;
padding = 8;
horizontal_padding = 8;
frame_width = 2;
frame_color = colors.border;
separator_color = "frame";
sort = true;
idle_threshold = 120;
font = "Monospace 10";
line_height = 0;
markup = "full";
format = "<b>%s</b>\\n%b";
alignment = "left";
vertical_alignment = "center";
show_age_threshold = 60;
ellipsize = "middle";
stack_duplicates = true;
show_indicators = true;
icon_position = "left";
min_icon_size = 32;
max_icon_size = 128;
sticky_history = true;
history_length = 20;
corner_radius = 8;
mouse_left_click = "close_current";
mouse_middle_click = "do_action, close_current";
mouse_right_click = "close_all";
};
urgency_low = {
background = colors.bg;
foreground = colors.fg;
frame_color = colors.border;
timeout = 5;
};
urgency_normal = {
background = colors.bg;
foreground = colors.fg;
frame_color = colors.info;
timeout = 10;
};
urgency_critical = {
background = colors.bg_dark;
foreground = colors.fg;
frame_color = colors.error;
timeout = 0;
};
};
}; };
home.pointerCursor = { home.pointerCursor = {
package = pkgs.adwaita-icon-theme; package = pkgs.adwaita-icon-theme;
@ -40,7 +105,8 @@
if test -e $HOME/.Xresources; then if test -e $HOME/.Xresources; then
${pkgs.xorg.xrdb}/bin/xrdb -merge $HOME/.Xresources &disown ${pkgs.xorg.xrdb}/bin/xrdb -merge $HOME/.Xresources &disown
fi fi
echo "Xft.dpi: 192" | ${pkgs.xorg.xrdb}/bin/xrdb -merge # echo "Xft.dpi: 192" | ${pkgs.xorg.xrdb}/bin/xrdb -merge
echo "Xft.dpi: 144" | ${pkgs.xorg.xrdb}/bin/xrdb -merge
''; '';
windowManager.i3 = windowManager.i3 =
let let
@ -86,6 +152,10 @@
enable = true; enable = true;
config = { config = {
inherit modifier terminal; inherit modifier terminal;
fonts = {
names = [ "SpaceMono Nerd Font" ];
size = 10.0;
};
keybindings = lib.mkOptionDefault { keybindings = lib.mkOptionDefault {
"${modifier}+h" = "focus left"; "${modifier}+h" = "focus left";
"${modifier}+j" = "focus down"; "${modifier}+j" = "focus down";
@ -174,9 +244,74 @@
} }
// exitMode; // exitMode;
}; };
colors = {
focused = {
border = colors.info;
background = colors.bg_highlight;
text = colors.fg;
indicator = colors.info;
childBorder = colors.info;
};
focusedInactive = {
border = colors.border;
background = colors.bg_float;
text = colors.fg_dark;
indicator = colors.border;
childBorder = colors.border;
};
unfocused = {
border = colors.bg_dark;
background = colors.bg_dark;
text = colors.comment;
indicator = colors.bg_dark;
childBorder = colors.bg_dark;
};
urgent = {
border = colors.error;
background = colors.error;
text = colors.fg;
indicator = colors.error;
childBorder = colors.error;
};
};
bars = [
{
position = "bottom";
statusCommand = "${pkgs.i3status}/bin/i3status";
fonts = {
names = [ "SpaceMono Nerd Font" ];
size = 10.0;
};
colors = {
background = colors.bar_bg;
statusline = colors.fg;
separator = colors.border;
focusedWorkspace = {
border = colors.bar_accent;
background = colors.bar_accent;
text = colors.bg_darker;
};
activeWorkspace = {
border = colors.bg_highlight;
background = colors.bg_highlight;
text = colors.fg;
};
inactiveWorkspace = {
border = colors.bar_bg;
background = colors.bar_bg;
text = colors.fg_dark;
};
urgentWorkspace = {
border = colors.error;
background = colors.error;
text = colors.fg;
};
};
}
];
startup = [ startup = [
{ {
command = "${pkgs.hsetroot}/bin/hsetroot -solid \"#062329\""; command = "${pkgs.hsetroot}/bin/hsetroot -solid \"${colors.bg}\"";
notification = false; notification = false;
} }
{ {

View file

@ -1,6 +1,9 @@
general { general {
colors = true colors = true
interval = 5 interval = 5
color_good = "@green@"
color_degraded = "@warning@"
color_bad = "@error@"
} }
# order += "ipv6" # order += "ipv6"

View file

@ -1,6 +1,7 @@
{ {
user, user,
pkgs, pkgs,
home-dir,
... ...
}: }:
{ {
@ -54,19 +55,34 @@
# home manager # home manager
hm.custom = { hm.custom = {
environment = {
enable = true;
variables = {
EDITOR = "nvim";
SOPS_AGE_KEY_FILE = "${home-dir}/.config/sops/age/keys.txt";
};
};
emacs.enable = true; emacs.enable = true;
neovim.enable = true;
latex.enable = true; latex.enable = true;
tmux.enable = true;
gui = { gui = {
default.enable = true; default.enable = true;
i3.enable = true; i3.enable = true;
ghostty.enable = true; ghostty.enable = true;
firefox.enable = true; firefox.enable = true;
linux.enable = true;
kitty.enable = true;
zathura.enable = true;
sioyek.enable = true;
}; };
email = { email = {
enable = true; enable = true;
davmail = true; davmail = true;
neomutt = true; neomutt = true;
mbsync = true; mbsync = true;
mailcap = true;
notmuch = true;
}; };
}; };
} }