Compare commits
10 commits
d4474ef5ce
...
6f30269e1e
| Author | SHA1 | Date | |
|---|---|---|---|
| 6f30269e1e | |||
| accc04e214 | |||
| 82115af252 | |||
| 96e5924fb0 | |||
| 312d6d63ef | |||
| 8099faa9ae | |||
| f7fd3a7fe9 | |||
| 438cf6da97 | |||
| 9fdeb99a61 | |||
| 40539ae163 |
55 changed files with 566 additions and 794 deletions
18
flake.lock
generated
18
flake.lock
generated
|
|
@ -8,11 +8,11 @@
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1769054619,
|
"lastModified": 1772596991,
|
||||||
"narHash": "sha256-LCc0gbSgjehdy41Gi1H5WNxEuW9PtRHFVaPXoFzslQU=",
|
"narHash": "sha256-awJJ4ATy9t8Svrx2z0zAftgXnUaGCFb2Ty0u036CnCQ=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "6509620630f68dc02ac3e99f15a67760778444ff",
|
"rev": "cd2d0893966c0a5c27345a9a72d0418b42b7e36d",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -29,11 +29,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767910483,
|
"lastModified": 1772633058,
|
||||||
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
|
"narHash": "sha256-SO7JapRy2HPhgmqiLbfnW1kMx5rakPMKZ9z3wtRLQjI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
|
"rev": "080657a04188aca25f8a6c70a0fb2ea7e37f1865",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -45,11 +45,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768028080,
|
"lastModified": 1772598333,
|
||||||
"narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=",
|
"narHash": "sha256-YaHht/C35INEX3DeJQNWjNaTcPjYmBwwjFJ2jdtr+5U=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d03088749a110d52a4739348f39a63f84bb0be14",
|
"rev": "fabb8c9deee281e50b1065002c9828f2cf7b2239",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
37
flake.nix
37
flake.nix
|
|
@ -25,12 +25,31 @@
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/arielle
|
./hosts/arielle
|
||||||
|
home-manager.nixosModules.home-manager {
|
||||||
|
home-manager = {
|
||||||
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
users = {
|
||||||
|
|
||||||
|
till = {
|
||||||
|
imports = [
|
||||||
|
./home/minimal.nix
|
||||||
|
./users/till/home.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
homer = nixpkgs.lib.nixosSystem {
|
homer = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [ ./hosts/homer ];
|
modules = [
|
||||||
|
./hosts/homer
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
mila = nixpkgs.lib.nixosSystem {
|
mila = nixpkgs.lib.nixosSystem {
|
||||||
|
|
@ -43,9 +62,7 @@
|
||||||
nova = nixpkgs.lib.nixosSystem {
|
nova = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
|
|
||||||
./hosts/nova
|
./hosts/nova
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
extraSpecialArgs = { inherit inputs; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
|
@ -55,29 +72,34 @@
|
||||||
|
|
||||||
till = {
|
till = {
|
||||||
imports = [
|
imports = [
|
||||||
./home/desktop-full.nix
|
./home/profiles/desktop-full.nix
|
||||||
./users/till/home.nix
|
./users/till/home.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
alt = {
|
alt = {
|
||||||
imports = [
|
imports = [
|
||||||
./home/desktop-slim.nix
|
./home/profiles/desktop-slim.nix
|
||||||
./users/alt/home.nix
|
./users/alt/home.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
guest = {
|
guest = {
|
||||||
imports = [
|
imports = [
|
||||||
./home/desktop-slim.nix
|
./home/profiles/desktop-slim.nix
|
||||||
./users/guest/home.nix
|
./users/guest/home.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
# firefox-addons.config.allowUnfreePredicate = pkg:
|
||||||
|
# builtins.elem (nixpkgs.lib.getName pkg) [
|
||||||
|
# "tampermonkey"
|
||||||
|
# ];
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||||
builtins.elem (nixpkgs.lib.getName pkg) [
|
builtins.elem (nixpkgs.lib.getName pkg) [
|
||||||
"corefonts"
|
"corefonts"
|
||||||
|
|
@ -85,6 +107,7 @@
|
||||||
"keymapp"
|
"keymapp"
|
||||||
"steam"
|
"steam"
|
||||||
"steam-unwrapped"
|
"steam-unwrapped"
|
||||||
|
# "tampermonkey"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,10 @@
|
||||||
aichat
|
aichat
|
||||||
glow
|
glow
|
||||||
];
|
];
|
||||||
|
|
||||||
|
programs.fish.shellAliases = {
|
||||||
|
vibe = "aichat -c";
|
||||||
|
clank = "aichat -e";
|
||||||
|
slop = "aichat";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
let
|
let
|
||||||
|
|
||||||
myRemote = slug: {
|
myRemote = slug: {
|
||||||
passwordCommand = [ "pass" "ktiu/radicale" ];
|
passwordCommand = [ "pass" "accounts/ktiu-radicale" ];
|
||||||
userName = "ktiu";
|
userName = "ktiu";
|
||||||
type = "caldav";
|
type = "caldav";
|
||||||
url = "https://kalender.ktiu.net/ktiu/${slug}";
|
url = "https://kalender.ktiu.net/ktiu/${slug}";
|
||||||
|
|
@ -127,7 +127,7 @@ in
|
||||||
remote = {
|
remote = {
|
||||||
type = "caldav";
|
type = "caldav";
|
||||||
url = "https://cloud.gridisnotajournal.de/remote.php/dav/calendars/till/grid/";
|
url = "https://cloud.gridisnotajournal.de/remote.php/dav/calendars/till/grid/";
|
||||||
passwordCommand = [ "pass" "grid/nextcloud" ];
|
passwordCommand = [ "pass" "uni/grid-caldav-nextcloud" ];
|
||||||
userName = "till";
|
userName = "till";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
# vim: set ft=conf
|
|
||||||
|
|
||||||
[2.5admins]
|
|
||||||
url=https://2.5admins.com/feed/podcast
|
|
||||||
|
|
||||||
[50plus2]
|
|
||||||
url=https://50plus2.podigee.io/feed/mp3
|
|
||||||
album_tag=50+2
|
|
||||||
|
|
||||||
[drei90]
|
|
||||||
url=http://feeds.feedburner.com/Drei90
|
|
||||||
album_tag=drei90
|
|
||||||
|
|
||||||
[efpodcast]
|
|
||||||
url=https://www.eintracht-podcast.de/feed/mp3
|
|
||||||
|
|
||||||
[latenightlinux]
|
|
||||||
url=https://latenightlinux.com/feed/mp3
|
|
||||||
|
|
||||||
[linuxafterdark]
|
|
||||||
url=https://linuxafterdark.net/feed/podcast
|
|
||||||
|
|
||||||
[linuxdevtime]
|
|
||||||
url=https://latenightlinux.com/feed/extra
|
|
||||||
|
|
||||||
[linuxmatters]
|
|
||||||
url=https://linuxmatters.sh/episode/index.xml
|
|
||||||
|
|
||||||
[logbuchnetzpolitik]
|
|
||||||
url=https://feeds.metaebene.me/lnp/mp3
|
|
||||||
album_tag=Logbuch Netzpolitik
|
|
||||||
|
|
||||||
[schlusskonferenz]
|
|
||||||
url=https://schlusskonferenz.podigee.io/feed/mp3
|
|
||||||
|
|
||||||
[tribünengespräch]
|
|
||||||
url=https://tribuenengespraech.podigee.io/feed/mp3
|
|
||||||
|
|
||||||
[wettbrötchen]
|
|
||||||
url=https://www.wett-broetchen.de/feed/mp3
|
|
||||||
album_tag=Wettbrötchen
|
|
||||||
|
|
||||||
[edeltalk]
|
|
||||||
url=https://cdn.julephosting.de/podcasts/573-edeltalk-mit-dominik-kevin/feed.rss
|
|
||||||
album_tag=Edeltalk
|
|
||||||
|
|
||||||
[youredeadtome]
|
|
||||||
url=https://podcasts.files.bbci.co.uk/p07mdbhg.rss
|
|
||||||
|
|
||||||
[*]
|
|
||||||
genre_tag=Podcast
|
|
||||||
spool=/home/till/.local/share/podcasts
|
|
||||||
filename=%(channel_title)_%(date)_%(title).mp3
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./desktop-slim.nix
|
|
||||||
|
|
||||||
./messaging.nix
|
|
||||||
./r.nix
|
|
||||||
./tex.nix
|
|
||||||
./mail
|
|
||||||
./office-gui.nix
|
|
||||||
./office-cli.nix
|
|
||||||
./aichat.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, inputs, lib, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.file.".npmrc".text = ''
|
home.file.".npmrc".text = ''
|
||||||
|
|
@ -6,12 +6,8 @@
|
||||||
'';
|
'';
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
bundler
|
|
||||||
bundix
|
|
||||||
nodejs
|
nodejs
|
||||||
yarn-berry
|
|
||||||
duckdb
|
|
||||||
tippecanoe
|
|
||||||
pmtiles
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
programs.direnv.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
{ config, pkgs, inputs, osConfig, ... }:
|
{ config, pkgs, inputs, osConfig, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
policies = {
|
policies = {
|
||||||
|
|
@ -149,6 +148,7 @@
|
||||||
user_pref("signon.rememberSignons", false);
|
user_pref("signon.rememberSignons", false);
|
||||||
user_pref("toolkit.telemetry.enabled", false);
|
user_pref("toolkit.telemetry.enabled", false);
|
||||||
user_pref("toolkit.telemetry.server", "");
|
user_pref("toolkit.telemetry.server", "");
|
||||||
|
user_pref("widget.gtk.libadwaita-colors.enabled", false);
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
home.shellAliases = {
|
home.shellAliases = {
|
||||||
top = "btm --battery";
|
top = "btm --battery";
|
||||||
du = "dust";
|
du = "dust";
|
||||||
|
|
@ -13,7 +12,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
interactiveShellInit = "fish_add_path ${config.xdg.dataHome}/npm/packages/bin";
|
interactiveShellInit = "fish_add_path ${config.xdg.dataHome}/npm/packages/bin";
|
||||||
|
|
@ -53,6 +51,10 @@
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function diary --description 'Create or edit today\'s diary entry'
|
||||||
|
nvim -c "call Diary()"
|
||||||
|
end
|
||||||
|
|
||||||
set -U fish_prompt_pwd_dir_length 0
|
set -U fish_prompt_pwd_dir_length 0
|
||||||
|
|
||||||
function fish_prompt --description "Write out the prompt"
|
function fish_prompt --description "Write out the prompt"
|
||||||
|
|
|
||||||
|
|
@ -8,13 +8,13 @@
|
||||||
main = {
|
main = {
|
||||||
shell = "${pkgs.fish}/bin/fish -c 'tmux attach'";
|
shell = "${pkgs.fish}/bin/fish -c 'tmux attach'";
|
||||||
pad = "34x34";
|
pad = "34x34";
|
||||||
# font = "JetBrains Mono:size=16";
|
font = "JetBrains Mono:size=14";
|
||||||
font = "Adwaita Mono:size=17";
|
# font = "Adwaita Mono:size=17";
|
||||||
font-bold = "Adwaita Mono:size=17:weight=bold";
|
# font-bold = "Adwaita Mono:size=17:weight=bold";
|
||||||
font-italic = "Adwaita Mono:size=17:slant=italic";
|
# font-italic = "Adwaita Mono:size=17:slant=italic";
|
||||||
font-bold-italic = "Adwaita Mono:size=17:weight=boldslant=italic";
|
# font-bold-italic = "Adwaita Mono:size=17:weight=boldslant=italic";
|
||||||
initial-window-mode = "maximized";
|
# initial-window-mode = "maximized";
|
||||||
initial-color-theme = "dark";
|
# initial-color-theme = "dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
mouse.hide-when-typing = "yes";
|
mouse.hide-when-typing = "yes";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
|
|
@ -35,7 +35,6 @@
|
||||||
gtk-theme = "Adwaita";
|
gtk-theme = "Adwaita";
|
||||||
};
|
};
|
||||||
"org/gnome/desktop/background" = {
|
"org/gnome/desktop/background" = {
|
||||||
picture-uri = "file://" + ./wallpaper_nix_paper_gray.svg;
|
|
||||||
picture-options = "zoom";
|
picture-options = "zoom";
|
||||||
};
|
};
|
||||||
"org/gnome/desktop/wm/keybindings" = {
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
|
|
@ -104,5 +103,12 @@
|
||||||
sleep-inactive-battery-timeout = 1200;
|
sleep-inactive-battery-timeout = 1200;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
xdg.configFile."run-or-raise/shortcuts.conf".source = ./run-or-raise.conf;
|
|
||||||
|
xdg.configFile."run-or-raise/shortcuts.conf".text = ''
|
||||||
|
<Super>b,firefox,,
|
||||||
|
<Super>f,nautilus,,
|
||||||
|
<Super>g:always-run,tmux new-window -n vifm vifm ~/desktop,foot,
|
||||||
|
<Super>return,foot,,
|
||||||
|
<Super>p,keepassxc,,,
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
<Super>b,firefox,,
|
|
||||||
<Super>f,nautilus,,
|
|
||||||
<Super>g:always-run,tmux new-window -n vifm vifm ~/desktop,foot,
|
|
||||||
<Super>return,foot,,
|
|
||||||
<Super>p,keepassxc,,,
|
|
||||||
|
|
||||||
# You may use regular expression in title or wm_class.
|
|
||||||
# Just put the regular expression between slashes.
|
|
||||||
# E.g. to jump to pidgin conversation window you may use this line
|
|
||||||
# (that means any windows of wm_class Pidgin, not containing the title Buddy List)"
|
|
||||||
# <Super>KP_1,pidgin,Pidgin,/^((?!Buddy List).)*$/
|
|
||||||
|
|
||||||
# Have the mail always at numpad-click.
|
|
||||||
# <Super>KP_2,chromium-browser --app=https://mail.google.com/mail/u/0/#inbox
|
|
||||||
|
|
||||||
# =============
|
|
||||||
# Run only form
|
|
||||||
# =============
|
|
||||||
#
|
|
||||||
# This line will launch notify-send command.
|
|
||||||
# <Super>h,notify-send Hello world
|
|
||||||
|
|
||||||
# Blank lines are allowed. Line starting with "#" means a comment.
|
|
||||||
# Now delete these shortcuts and put here yours.
|
|
||||||
# How to know wm_class? Alt+f2, lg, "windows" tab (at least on Ubuntu 17.10)
|
|
||||||
|
|
@ -1,128 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="3840"
|
|
||||||
height="2160"
|
|
||||||
viewBox="0 0 3600.0001 2025"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
|
||||||
sodipodi:docname="papercolor_grey.svg"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<defs
|
|
||||||
id="defs4" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="0.25780956"
|
|
||||||
inkscape:cx="500.36934"
|
|
||||||
inkscape:cy="1068.6182"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer3"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1014"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:snap-global="true"
|
|
||||||
fit-margin-top="0"
|
|
||||||
fit-margin-left="0"
|
|
||||||
fit-margin-right="0"
|
|
||||||
fit-margin-bottom="0"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer7"
|
|
||||||
inkscape:label="bg"
|
|
||||||
style="display:inline">
|
|
||||||
<rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bcbcbc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect5389"
|
|
||||||
width="3600"
|
|
||||||
height="2024.7382"
|
|
||||||
x="132.5822"
|
|
||||||
y="-957.77832"
|
|
||||||
transform="translate(-132.5822,958.04022)" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer3"
|
|
||||||
inkscape:label="gradient-logo"
|
|
||||||
style="display:inline;opacity:1"
|
|
||||||
transform="translate(-132.5822,958.04022)">
|
|
||||||
<g
|
|
||||||
id="g4"
|
|
||||||
transform="matrix(1.8009416,0,0,1.8009416,-1547.8855,-43.619081)"
|
|
||||||
style="stroke-width:0.555265">
|
|
||||||
<g
|
|
||||||
id="g2"
|
|
||||||
style="fill:#9d9da1;fill-opacity:1;stroke-width:0.555265">
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use3439-6"
|
|
||||||
d="m 1864.6278,-49.22711 -154.8754,268.22157 -36.1595,-61.29501 41.7398,-71.834875 -82.8948,-0.217865 -17.667,-30.627963 18.0405,-31.326737 117.9921,0.372571 42.4056,-73.105854 z"
|
|
||||||
style="fill:#9d9da1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.11091;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use3445-0"
|
|
||||||
d="m 1876.5091,165.18522 309.7244,0.0152 -35.0032,61.96257 -83.0808,-0.23034 41.2588,71.89798 -17.6911,30.61406 -36.15,0.0398 -58.6734,-102.37043 -84.5144,-0.17145 z"
|
|
||||||
style="fill:#9d9da1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.11091;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use3449-5"
|
|
||||||
d="m 2056.7797,47.657079 -154.849,-268.236809 71.1628,-0.66757 41.3409,72.06522 41.6361,-71.68011 35.3581,0.0139 18.1095,31.2869 -59.3187,101.99786 42.1087,73.2773 z"
|
|
||||||
style="fill:#9d9da1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.11091;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g3"
|
|
||||||
style="fill:#87878c;fill-opacity:1;stroke-width:0.555265">
|
|
||||||
<path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#87878c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.11091;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 1808.7367,61.262431 154.849,268.236809 -71.1628,0.66757 -41.3409,-72.06522 -41.6361,71.68011 -35.3581,-0.0139 -18.1095,-31.2869 59.3187,-101.99786 -42.1087,-73.27717 z"
|
|
||||||
id="path4260-0"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccccc" />
|
|
||||||
<path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#87878c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.11091;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 1988.3675,-56.881714 -309.7243,-0.01524 35.0032,-61.962576 83.0808,0.23034 -41.2588,-71.89797 17.6911,-30.61407 36.15,-0.0398 58.6734,102.37043 84.5143,0.17138 z"
|
|
||||||
id="use4354-5"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccccc" />
|
|
||||||
<path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#87878c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.11091;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 2000.5368,158.10537 154.8754,-268.22158 36.1595,61.295012 -41.7398,71.83488 82.8948,0.217865 17.667,30.627963 -18.0405,31.326737 -117.9921,-0.372571 -42.4055,73.105794 z"
|
|
||||||
id="use4362-2"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="cccccccccc" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 7.1 KiB |
17
home/gpg.nix
17
home/gpg.nix
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -6,16 +6,17 @@
|
||||||
pinentry-all
|
pinentry-all
|
||||||
];
|
];
|
||||||
|
|
||||||
services.gpg-agent = {
|
# moved to system
|
||||||
enable = true;
|
|
||||||
pinentry.package = pkgs.pinentry-gnome3;
|
# services.gpg-agent = {
|
||||||
pinentry.program = "pinentry-gnome3";
|
# enable = true;
|
||||||
enableSshSupport = true;
|
# pinentry.package = pkgs.pinentry-all;
|
||||||
};
|
# pinentry.program = "pinentry";
|
||||||
|
# # enableSshSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
programs.gpg = {
|
programs.gpg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# homedir = "${config.xdg.dataHome}/gnupg";
|
|
||||||
settings = {
|
settings = {
|
||||||
no-emit-version = true;
|
no-emit-version = true;
|
||||||
no-comments = true;
|
no-comments = true;
|
||||||
|
|
|
||||||
7
home/hyprland.nix
Normal file
7
home/hyprland.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
systemd.enable = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,85 +1,16 @@
|
||||||
# Navigation
|
|
||||||
bind pager k previous-entry
|
|
||||||
bind pager j next-entry
|
|
||||||
# bind index,pager \Cu half-up
|
|
||||||
# bind index,pager \Cd half-down
|
|
||||||
# bind pager gg top
|
|
||||||
# bind index gg first-entry
|
|
||||||
# bind pager G bottom
|
|
||||||
# bind index G last-entry
|
|
||||||
# bind index,pager N search-opposite
|
|
||||||
bind index <return> display-message
|
|
||||||
bind index <space> collapse-thread
|
|
||||||
bind index,pager gf change-folder
|
|
||||||
|
|
||||||
# Read HTML
|
|
||||||
bind index,pager V noop
|
|
||||||
macro index,pager V "<view-attachments><search>html<enter><view-mailcap><exit>"
|
|
||||||
|
|
||||||
# compose
|
# compose
|
||||||
bind compose p postpone-message
|
|
||||||
bind compose P pgp-menu
|
|
||||||
# macro compose I "<attach-file>`tmpfile=$(mktemp -u --suffix .png -t XXXXXXXXXXXX -p ~/tmp) && wl-paste -t image/png > "$tmpfile" && echo "$tmpfile"`<enter>" "attach image from clipboard"
|
|
||||||
|
|
||||||
bind editor <Tab> complete-query
|
macro index,pager go "<shell-escape>mbsync $my_account && notmuch new<enter>" "Sync this account"
|
||||||
bind editor ^T complete
|
macro index,pager gO "<shell-escape>mbsync -a && notmuch new<enter>" "Sync all accounts"
|
||||||
bind index,pager a group-reply
|
|
||||||
bind index,pager m noop
|
|
||||||
macro index,pager mar "<tag-pattern>new<enter><tag-prefix-cond><clear-flag>n<enter><tag-prefix-cond><clear-flag>*<enter>" "Mark all read"
|
|
||||||
|
|
||||||
# compose with signature management
|
bind index,pager / noop
|
||||||
macro index,pager @ "<enter-command>set signature=$my_signature<enter><compose-to-sender>" "Compose to sender"
|
macro index,pager // "<vfolder-from-query-readonly>folder:/$my_account/" "Find in account"
|
||||||
macro index,pager c "<enter-command>set signature=$my_signature<enter><mail>" "Compose new message"
|
macro index,pager g/ "<vfolder-from-query-readonly>" "Find in all accounts"
|
||||||
macro index,pager r "<enter-command>unset signature<enter><reply>" "Reply to message"
|
macro index,pager /! "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_spoolfile" "Find in inbox"
|
||||||
macro index,pager a "<enter-command>unset signature<enter><group-reply>" "Reply all"
|
macro index,pager /< "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_record" "Find in sent"
|
||||||
macro index,pager f "<enter-command>unset signature<enter><forward-message>" "Forward message"
|
macro index,pager /> "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_mbox" "Find in archive"
|
||||||
|
macro index,pager /d "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_postponed" "Find in drafts"
|
||||||
|
macro index,pager /t "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_trash" "Find in trash"
|
||||||
|
macro index,pager /j "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_junk" "Find in junk"
|
||||||
|
|
||||||
# moving messages
|
|
||||||
macro index,pager J ":set resolve=no\n<clear-flag>n:set resolve=yes\n<save-message>$my_junk<enter>" \
|
|
||||||
"Move to junk folder"
|
|
||||||
macro index,pager y ":set resolve=no\n<clear-flag>n:set resolve=yes\n<save-message>$mbox<enter>" \
|
|
||||||
"Move message to the archive"
|
|
||||||
macro index,pager I "<save-message>$spoolfile<enter>" "Move message to the inbox"
|
|
||||||
|
|
||||||
# switch folders
|
|
||||||
macro index,pager g! "<change-folder>$spoolfile<enter><refresh>" "Go to inbox"
|
|
||||||
macro index,pager gd "<change-folder>$postponed<enter><refresh>" "Go to drafts"
|
|
||||||
macro index,pager g< "<change-folder>$record<enter><refresh>" "Go to sent"
|
|
||||||
macro index,pager ga "<change-folder>$mbox<enter>" "Go to archive"
|
|
||||||
macro index,pager g> "<change-folder>$mbox<enter><refresh>" "Go to archive"
|
|
||||||
macro index,pager gt "<change-folder>$trash<enter><refresh>" "Go to trash"
|
|
||||||
macro index,pager gj "<change-folder>$my_junk<enter><refresh>" "Go to junk"
|
|
||||||
|
|
||||||
# accounts
|
|
||||||
macro index,pager gu "<change-folder>~/.local/share/mail/gu/Inbox<enter><refresh>" "Go to GU"
|
|
||||||
# macro index,pager gp "<change-folder>+systemli/IMAP/Inbox<enter><refresh>" "Go to Systemli"
|
|
||||||
macro index,pager gm "<change-folder>~/.local/share/mail/t9e/Inbox<enter><refresh>" "Go to t9e"
|
|
||||||
# macro index,pager gm "<change-folder>+gmail/IMAP/Inbox<enter><refresh>" "Go to Gmail"
|
|
||||||
macro index,pager gk "<change-folder>~/.local/share/mail/ksh/Inbox<enter><refresh>" "Go to KSH"
|
|
||||||
macro index,pager gi "<change-folder>~/.local/share/mail/ktiu/Inbox<enter><refresh>" "Go to ktiu"
|
|
||||||
# macro index,pager gf "<change-folder>~/.local/share/mail/dkg/Inbox<enter><refresh>" "Go to DKG"
|
|
||||||
|
|
||||||
macro index,pager L "<limit>all\n" "Show all messages (undo limit)"
|
|
||||||
|
|
||||||
# macro index,pager go "<shell-escape>mbsync -c ~/.config/mbsync/mbsyncrc $my_mbsync_acct && notmuch new &<enter>" \
|
|
||||||
# "Run mbsync to sync mail for this account"
|
|
||||||
|
|
||||||
macro index,pager go "<shell-escape>mbsync $my_mbsync_acct && notmuch new<enter>" \
|
|
||||||
|
|
||||||
macro index,pager g/ "<vfolder-from-query-readonly>" "find in nm"
|
|
||||||
|
|
||||||
macro index,pager A \
|
|
||||||
"<pipe-message>khard add-email --vcard-version=4.0<return>" \
|
|
||||||
"add the sender email address to khard"
|
|
||||||
|
|
||||||
macro index,pager S \
|
|
||||||
"<pipe-message> ripmime -i - -d ~/tmp && rm ~/tmp/textfile*" \
|
|
||||||
"save all non-text attachments using ripmime"
|
|
||||||
|
|
||||||
macro index,pager gb \
|
|
||||||
"<pipe-message> urlscan<enter>" \
|
|
||||||
"extract URLs out of a message"
|
|
||||||
|
|
||||||
macro index,pager gO \
|
|
||||||
"<shell-escape>mbsync -a && notmuch new<enter>" \
|
|
||||||
"run mbsync to sync all mail"
|
|
||||||
|
|
|
||||||
|
|
@ -1,89 +1,26 @@
|
||||||
|
# Alias
|
||||||
|
|
||||||
set alias_file = ~/.local/share/neomutt/aliases.neomuttrc
|
set alias_file = ~/.local/share/neomutt/aliases.neomuttrc
|
||||||
source $alias_file
|
source $alias_file
|
||||||
|
|
||||||
set mailcap_path = ~/.config/neomutt/mailcap
|
# External
|
||||||
|
|
||||||
# source ./smime.neomuttrc
|
|
||||||
|
|
||||||
set my_download_folder = ~/tmp
|
set my_download_folder = ~/tmp
|
||||||
|
|
||||||
# Caching and tmp
|
|
||||||
set header_cache = $XDG_CACHE_HOME/neomutt/headers
|
|
||||||
set message_cachedir = $XDG_CACHE_HOME/neomutt/bodies
|
|
||||||
set header_cache_backend = "lmdb"
|
|
||||||
set tmpdir = $XDG_CACHE_HOME/neomutt/tmp
|
|
||||||
|
|
||||||
# Basic options
|
|
||||||
unset wait_key
|
|
||||||
set mbox_type = Maildir
|
|
||||||
# set delete
|
|
||||||
set mail_check_stats
|
|
||||||
unset confirm_append
|
|
||||||
unset beep
|
|
||||||
unset mark_old
|
|
||||||
set sleep_time = 0
|
|
||||||
# set shell = /bin/bash
|
|
||||||
|
|
||||||
# Sending
|
|
||||||
set use_envelope_from
|
|
||||||
unset reverse_realname
|
|
||||||
|
|
||||||
# Searching
|
|
||||||
set nm_default_url = "notmuch:///home/till/.local/share/mail/"
|
|
||||||
|
|
||||||
# Multi-account setup
|
|
||||||
# source ~/.config/neomutt/accounts/dkg.neomuttrc
|
|
||||||
# source ~/.config/neomutt/accounts/gu.neomuttrc
|
|
||||||
# bind index,pager g noop
|
|
||||||
|
|
||||||
# folder-hook $folder/gu/ source ~/.config/neomutt/accounts/gu.neomuttrc
|
|
||||||
# folder-hook $folder/systemli/ source ~/.config/neomutt/accounts/systemli.neomuttrc
|
|
||||||
# folder-hook $folder/ks/ source ~/.config/neomutt/accounts/ks.neomuttrc
|
|
||||||
# folder-hook $folder/gmail/ source ~/.config/neomutt/accounts/gmail.neomuttrc
|
|
||||||
# folder-hook $folder/ktiu/ source ~/.config/neomutt/accounts/ktiu.neomuttrc
|
|
||||||
# folder-hook $folder/dkg/ source ~/.config/neomutt/accounts/dkg.neomuttrc
|
|
||||||
# folder-hook $folder/papa/ source ~/.config/neomutt/accounts/papa.neomuttrc
|
|
||||||
|
|
||||||
folder-hook . source ~/.config/neomutt/bindings.neomuttrc
|
|
||||||
|
|
||||||
# # Source config
|
|
||||||
# source ~/.config/neomutt/views.neomuttrc
|
|
||||||
# source ~/.config/neomutt/sidebar.neomuttrc
|
|
||||||
# source ~/.config/neomutt/colors.neomuttrc
|
|
||||||
# source ~/.config/neomutt/smime.neomuttrc
|
|
||||||
# source ~/.config/neomutt/pgp.neomuttrc
|
|
||||||
|
|
||||||
# Compose
|
|
||||||
set editor = "nvim -c 'call woof#init#Init()'"
|
|
||||||
set edit_headers
|
|
||||||
set forward_format = "Fwd: %s"
|
|
||||||
set forward_attachments
|
|
||||||
set fast_reply
|
|
||||||
set include
|
|
||||||
set forward_quote
|
|
||||||
unset recall
|
|
||||||
set resume_draft_files
|
|
||||||
set abort_noattach_regex = "(attach|enclosed|anbei|anhängen|angehängt|anhang|anhänge|hängt an)"
|
|
||||||
set abort_noattach = ask-yes
|
|
||||||
set mime_type_query_command = "file -b --mime-type %s"
|
|
||||||
set query_command= "khard email --parsable '%s'"
|
|
||||||
|
|
||||||
# Status bar
|
# Status bar
|
||||||
|
|
||||||
set status_chars = "✔↻٪A"
|
set status_chars = "✔↻٪A"
|
||||||
set status_format = "— [ %r ] %f (%lB) %>— %m messages%?n? [ %n new ]?%?d? [ %d to delete ]?%?t? [ %t tagged ]? —"
|
|
||||||
unset help
|
unset help
|
||||||
|
|
||||||
# Index
|
# Index
|
||||||
|
|
||||||
set index_format = "%-25.25F %<[y?%<[7d?%<[d?%[ %H:%M]&%[%a %H:%M]>&%[%d.%m. %Hh]>&%[%d.%m.%Y]> %Z %?X?▼ &?%s"
|
set index_format = "%-25.25F %<[y?%<[7d?%<[d?%[ %H:%M]&%[%a %H:%M]>&%[%d.%m. %Hh]>&%[%d.%m.%Y]> %Z %?X?▼ &?%s"
|
||||||
set strict_threads
|
set strict_threads
|
||||||
set send_charset = "utf-8:iso-8859-1:us-ascii"
|
set send_charset = "utf-8:iso-8859-1:us-ascii"
|
||||||
set charset = "utf-8"
|
set charset = "utf-8"
|
||||||
|
|
||||||
# sorting
|
|
||||||
set sort = threads
|
|
||||||
set sort_aux = reverse-last-date-received
|
|
||||||
|
|
||||||
# Pager view
|
# Pager view
|
||||||
|
|
||||||
set pager_index_lines = 10
|
set pager_index_lines = 10
|
||||||
set pager_context = 3
|
set pager_context = 3
|
||||||
set pager_stop
|
set pager_stop
|
||||||
|
|
@ -99,38 +36,23 @@ alternative_order text/plain text/enriched text/html
|
||||||
auto_view text/html
|
auto_view text/html
|
||||||
|
|
||||||
# Attachments
|
# Attachments
|
||||||
|
|
||||||
set rfc2047_parameters
|
set rfc2047_parameters
|
||||||
set attach_save_dir = $my_download_folder
|
set attach_save_dir = $my_download_folder
|
||||||
|
|
||||||
## Indicator
|
# Colors
|
||||||
color indicator brightwhite brightblack
|
|
||||||
|
|
||||||
## Index
|
color indicator brightwhite brightblack
|
||||||
color index_flags brightmagenta default '.*'
|
color index_flags brightmagenta default '.*'
|
||||||
color index_date cyan default
|
color index_date cyan default
|
||||||
|
|
||||||
## New mail
|
|
||||||
color index brightblack default '~N'
|
color index brightblack default '~N'
|
||||||
|
|
||||||
## Header colors
|
|
||||||
color header brightblack default ".*"
|
color header brightblack default ".*"
|
||||||
color header brightgreen default "^(Subject)"
|
color header brightgreen default "^(Subject)"
|
||||||
color header yellow default "^(From|To|CC|BCC)"
|
color header yellow default "^(From|To|CC|BCC)"
|
||||||
color header blue default "^Date"
|
color header blue default "^Date"
|
||||||
|
|
||||||
## Status
|
|
||||||
# color status yellow default '\[ ↻ \]'
|
|
||||||
# color status green default '\[ ✔ \]'
|
|
||||||
# color status magenta default '\[ ٪ \]'
|
|
||||||
# color status black default '\[ [0-9]+ new \]'
|
|
||||||
# color status red default '\[ [0-9]+ to delete \]'
|
|
||||||
|
|
||||||
## Mutt
|
|
||||||
color message cyan default
|
color message cyan default
|
||||||
color error red default
|
color error red default
|
||||||
color tilde black default
|
color tilde black default
|
||||||
|
|
||||||
## Pager
|
|
||||||
color normal default default
|
color normal default default
|
||||||
color attachment brightblack default
|
color attachment brightblack default
|
||||||
color search black yellow
|
color search black yellow
|
||||||
|
|
@ -142,8 +64,6 @@ color quoted4 red default
|
||||||
color quoted5 brightred default
|
color quoted5 brightred default
|
||||||
color signature cyan default
|
color signature cyan default
|
||||||
color underline black default
|
color underline black default
|
||||||
|
|
||||||
## Email
|
|
||||||
color body blue default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
|
color body blue default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
|
||||||
color body blue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
|
color body blue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
|
||||||
color body red default "(BAD signature)"
|
color body red default "(BAD signature)"
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,81 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
let
|
||||||
programs.msmtp = {
|
|
||||||
enable = true;
|
makeConfig = accountName:
|
||||||
configContent = ''
|
''
|
||||||
defaults
|
unset reverse_name
|
||||||
logfile ${config.xdg.stateHome}/msmtp/msmtp.log
|
unset crypt_auto_pgp
|
||||||
port 587
|
unset crypt_auto_smime
|
||||||
|
set my_account='${ accountName }'
|
||||||
|
macro index,pager / "<vfolder-from-query>tag:${ accountName } "
|
||||||
|
unalternates *
|
||||||
|
set nm_record_tags = "+sent -inbox -unread +${ accountName }";
|
||||||
|
set my_signature = ${ pkgs.writeText "signature.txt" config.accounts.email.accounts.${accountName}.signature.text }
|
||||||
|
set status_format = "— [ %r ] $my_account %f (%lB) %>— %m messages%?n? [ %n new ]?%?d? [ %d to delete ]?%?t? [ %t tagged ]? —"
|
||||||
'';
|
'';
|
||||||
};
|
|
||||||
|
|
||||||
programs.mbsync.enable = true;
|
makeAccount = accountName: {
|
||||||
|
signature.showSignature = "append";
|
||||||
|
smtp.tls.useStartTls = true;
|
||||||
|
msmtp.enable = true;
|
||||||
|
|
||||||
programs.neomutt = {
|
mbsync = {
|
||||||
enable = true;
|
enable = true;
|
||||||
vimKeys = true;
|
create = "maildir";
|
||||||
extraConfig = builtins.readFile ./config.neomuttrc;
|
expunge = "both";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.notmuch.enable = true;
|
neomutt = {
|
||||||
|
enable = true;
|
||||||
|
sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ accountName }";
|
||||||
|
};
|
||||||
|
|
||||||
xdg.configFile."neomutt/bindings.neomuttrc".source = ./bindings.neomuttrc;
|
notmuch = {
|
||||||
xdg.configFile."neomutt/smime.neomuttrc".source = ./smime.neomuttrc;
|
enable = true;
|
||||||
xdg.configFile."neomutt/mailcap".source = ./neomutt_mailcap;
|
neomutt = {
|
||||||
|
virtualMailboxes = [
|
||||||
|
{ name = "Inbox"; query = "tag:${ accountName } and tag:inbox"; }
|
||||||
|
{ name = "Archive"; query = "tag:${ accountName } and not tag:sent and not tag:draft"; }
|
||||||
|
{ name = "Sent"; query = "tag:${ accountName } and tag:sent"; }
|
||||||
|
{ name = "Drafts"; query = "tag:${ accountName } and tag:draft"; }
|
||||||
|
{ name = "Spam"; query = "tag:${ accountName } and tag:spam"; }
|
||||||
|
{ name = "Trash"; query = "tag:${ accountName } and tag:trash"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mailcap_path = pkgs.writeText "neomutt_mailcap" ''
|
||||||
|
application/pdf; zathura %s
|
||||||
|
multipart; xdg-open %s
|
||||||
|
text/html; firefox %s; description=HTML Text; nametemplate=%s.html; needsterminal
|
||||||
|
text/html; w3m -v -F -T text/html -dump %s; copiousoutput
|
||||||
|
text/calendar; khal import %s
|
||||||
|
text; neomutt %s
|
||||||
|
application; xdg-open %s
|
||||||
|
image; xdg-open %s
|
||||||
|
video; xdg-open %s
|
||||||
|
audio; xdg-open %s
|
||||||
|
message; xdg-open %s
|
||||||
|
model; xdg-open %s
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.mu.enable = true;
|
||||||
|
|
||||||
accounts.email = {
|
accounts.email = {
|
||||||
maildirBasePath = "${config.xdg.dataHome}/mail";
|
maildirBasePath = "${config.xdg.dataHome}/mail";
|
||||||
accounts = {
|
accounts = {
|
||||||
|
gu = { name, ... }: lib.attrsets.recursiveUpdate (makeAccount name) {
|
||||||
gu = {
|
|
||||||
primary = true;
|
primary = true;
|
||||||
address = "straube@geo.uni-frankfurt.de";
|
address = "straube@geo.uni-frankfurt.de";
|
||||||
realName = "Till Straube";
|
realName = "Till Straube";
|
||||||
imap.host = "imap.server.uni-frankfurt.de";
|
imap.host = "imap.server.uni-frankfurt.de";
|
||||||
smtp.host = "smtpauth.rz.uni-frankfurt.de";
|
smtp.host = "smtpauth.rz.uni-frankfurt.de";
|
||||||
smtp.tls.useStartTls = true;
|
|
||||||
userName = "tstraube";
|
userName = "tstraube";
|
||||||
notmuch.enable = true;
|
|
||||||
passwordCommand = "pass uni/hrz";
|
passwordCommand = "pass uni/hrz";
|
||||||
signature = {
|
signature = {
|
||||||
text = ''
|
text = ''
|
||||||
|
|
@ -44,206 +83,190 @@
|
||||||
Dept. of Human Geography
|
Dept. of Human Geography
|
||||||
Goethe University Frankfurt
|
Goethe University Frankfurt
|
||||||
'';
|
'';
|
||||||
showSignature = "append";
|
|
||||||
};
|
};
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
create = "maildir";
|
|
||||||
expunge = "both";
|
|
||||||
};
|
|
||||||
msmtp.enable = true;
|
|
||||||
neomutt = {
|
neomutt = {
|
||||||
enable = true;
|
extraConfig = makeConfig name + ''
|
||||||
sendMailCommand = lib.getExe pkgs.msmtp;
|
|
||||||
extraConfig = ''
|
|
||||||
set mbox='+Archive'
|
|
||||||
set my_junk='+Spamverdacht'
|
|
||||||
set my_mbsync_acct='gu'
|
|
||||||
|
|
||||||
set crypt_auto_smime
|
|
||||||
unset crypt_auto_pgp
|
|
||||||
|
|
||||||
set crypt_autosign
|
|
||||||
set crypt_replyencrypt
|
|
||||||
set crypt_replysign
|
|
||||||
set crypt_replysignencrypted
|
|
||||||
set crypt_verify_sig
|
|
||||||
# set smime_default_key = "f1355556.0"
|
|
||||||
set smime_sign_as = "f1355556.0"
|
|
||||||
set pgp_default_key = ""
|
|
||||||
# unset crypt_use_gpgme
|
|
||||||
|
|
||||||
unalternates *
|
|
||||||
alternates ^straube@em.uni-frankfurt.de$ \
|
|
||||||
^tstraube@em.uni-frankfurt.de$ \
|
|
||||||
^tstraube@rz.uni-frankfurt.de$ \
|
|
||||||
^tstraube@uni-frankfurt.de$
|
|
||||||
unset reverse_name
|
|
||||||
set my_signature = ${
|
|
||||||
pkgs.writeText
|
|
||||||
"signature.txt"
|
|
||||||
config.accounts.email.accounts.gu.signature.text
|
|
||||||
}
|
|
||||||
color status blue default
|
color status blue default
|
||||||
|
alternates ^tstraube@(em|rz)?.uni-frankfurt.de$
|
||||||
|
set crypt_auto_smime
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
t9e = {
|
t9e = { name, ... }: lib.attrsets.recursiveUpdate (makeAccount name) {
|
||||||
address = "till.straube@t9e.me";
|
address = "till.straube@t9e.me";
|
||||||
realName = "Till Straube";
|
realName = "Till Straube";
|
||||||
imap.host = "arielle.ktiu.net";
|
imap.host = "arielle.ktiu.net";
|
||||||
smtp.host = "arielle.ktiu.net";
|
smtp.host = "arielle.ktiu.net";
|
||||||
smtp.tls.useStartTls = true;
|
|
||||||
notmuch.enable = true;
|
|
||||||
userName = "till.straube@t9e.me";
|
userName = "till.straube@t9e.me";
|
||||||
signature.text = ''
|
signature.text = ''
|
||||||
Till Straube (he/him)
|
Till Straube (he/him)
|
||||||
PGP key: https://keys.openpgp.org/search?q=till.straube@t9e.me
|
PGP key: https://keys.openpgp.org/search?q=till.straube@t9e.me
|
||||||
'';
|
'';
|
||||||
signature.showSignature = "append";
|
|
||||||
gpg = {
|
|
||||||
key = "5FA6782F543D12ED07110780BA1B73F10BABF8E3";
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
neomutt = {
|
neomutt = {
|
||||||
enable = true;
|
extraConfig = makeConfig name + ''
|
||||||
sendMailCommand = lib.getExe pkgs.msmtp;
|
|
||||||
extraConfig = ''
|
|
||||||
set my_mbsync_acct='t9e'
|
|
||||||
set mbox='+Archive'
|
|
||||||
set my_junk='+Junk'
|
|
||||||
|
|
||||||
set crypt_auto_pgp
|
|
||||||
unset crypt_auto_smime
|
|
||||||
|
|
||||||
unalternates *
|
|
||||||
alternates @t9e.me$ @ktiu.net$
|
|
||||||
set reverse_name
|
|
||||||
|
|
||||||
set my_signature = ${
|
|
||||||
pkgs.writeText
|
|
||||||
"signature.txt"
|
|
||||||
config.accounts.email.accounts.t9e.signature.text
|
|
||||||
}
|
|
||||||
color status green default
|
color status green default
|
||||||
'';
|
alternates @t9e.me$ @ktiu.net$ ^(tillkowski|till.straube)@gmail.com$
|
||||||
};
|
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
create = "maildir";
|
|
||||||
expunge = "both";
|
|
||||||
};
|
|
||||||
msmtp = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig.from = "*@(ktiu.net|t9e.me)";
|
|
||||||
};
|
|
||||||
passwordCommand = "pass mail/arielle.ktiu.net";
|
|
||||||
};
|
|
||||||
|
|
||||||
ktiu = {
|
|
||||||
address = "till@ktiu.net";
|
|
||||||
realName = "Till Straube";
|
|
||||||
imap.host = "shorbut.ktiu.net";
|
|
||||||
smtp.host = "shorbut.ktiu.net";
|
|
||||||
smtp.tls.useStartTls = true;
|
|
||||||
notmuch.enable = true;
|
|
||||||
userName = "till";
|
|
||||||
signature.text = ''
|
|
||||||
Till Straube (he/him)
|
|
||||||
PGP key: https://keys.openpgp.org/search?q=till@ktiu.net
|
|
||||||
'';
|
|
||||||
signature.showSignature = "append";
|
|
||||||
gpg = {
|
|
||||||
key = "5FA6782F543D12ED07110780BA1B73F10BABF8E3";
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
neomutt = {
|
|
||||||
enable = true;
|
|
||||||
sendMailCommand = lib.getExe pkgs.msmtp;
|
|
||||||
extraConfig = ''
|
|
||||||
set my_mbsync_acct='ktiu'
|
|
||||||
|
|
||||||
set mbox='+Archive'
|
|
||||||
set my_junk='+Junk'
|
|
||||||
|
|
||||||
set crypt_auto_pgp
|
|
||||||
unset crypt_auto_smime
|
|
||||||
|
|
||||||
unalternates *
|
|
||||||
alternates @ktiu.net$
|
|
||||||
set reverse_name
|
set reverse_name
|
||||||
set my_signature = ${
|
set crypt_auto_pgp
|
||||||
pkgs.writeText
|
|
||||||
"signature.txt"
|
|
||||||
config.accounts.email.accounts.ktiu.signature.text
|
|
||||||
}
|
|
||||||
color status green default
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
mbsync = {
|
msmtp.extraConfig.port = "587";
|
||||||
enable = true;
|
passwordCommand = "pass accounts/ktiu-imap";
|
||||||
create = "maildir";
|
|
||||||
expunge = "both";
|
|
||||||
};
|
|
||||||
msmtp = {
|
|
||||||
enable = false;
|
|
||||||
# extraConfig.from = "*@ktiu.net";
|
|
||||||
};
|
|
||||||
passwordCommand = "secret-tool lookup server shorbut.ktiu.net account till";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ksh = {
|
ksh = { name, ... }: lib.attrsets.recursiveUpdate (makeAccount name) {
|
||||||
address = "kein_schlussstrich_hessen@systemli.org";
|
address = "kein_schlussstrich_hessen@systemli.org";
|
||||||
realName = "Kein Schlussstrich Hessen";
|
realName = "Kein Schlussstrich Hessen";
|
||||||
imap.host = "mail.systemli.org";
|
imap.host = "mail.systemli.org";
|
||||||
smtp.host = "mail.systemli.org";
|
smtp.host = "mail.systemli.org";
|
||||||
smtp.tls.useStartTls = true;
|
|
||||||
notmuch.enable = true;
|
|
||||||
userName = "kein_schlussstrich_hessen@systemli.org";
|
userName = "kein_schlussstrich_hessen@systemli.org";
|
||||||
signature.text = ''
|
signature.text = ''
|
||||||
Kein Schlussstrich Hessen
|
Kein Schlussstrich Hessen
|
||||||
PGP Key: https://keys.openpgp.org/search?q=kein_schlussstrich_hessen@systemli.org
|
PGP Key: https://keys.openpgp.org/search?q=kein_schlussstrich_hessen@systemli.org
|
||||||
'';
|
'';
|
||||||
signature.showSignature = "append";
|
|
||||||
neomutt = {
|
neomutt = {
|
||||||
enable = true;
|
extraConfig = makeConfig name + ''
|
||||||
# sendMailCommand = "/home/till/.nix-profile/bin/msmtp";
|
color status red default
|
||||||
sendMailCommand = lib.getExe pkgs.msmtp;
|
|
||||||
extraConfig = ''
|
|
||||||
set my_mbsync_acct='ksh'
|
|
||||||
set mbox='+Erledigt'
|
|
||||||
set my_junk='+Junk'
|
|
||||||
set postponed='+Drafts'
|
|
||||||
set record='+Sent'
|
|
||||||
set trash='+Trash'
|
|
||||||
set crypt_auto_pgp
|
set crypt_auto_pgp
|
||||||
unset crypt_auto_smime
|
|
||||||
|
|
||||||
unalternates *
|
|
||||||
set reverse_name
|
|
||||||
set my_signature = ${
|
|
||||||
pkgs.writeText
|
|
||||||
"signature.txt"
|
|
||||||
config.accounts.email.accounts.ksh.signature.text
|
|
||||||
}
|
|
||||||
color status cyan default
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
mbsync = {
|
passwordCommand = "pass ksh/systemli";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.msmtp.enable = true;
|
||||||
|
|
||||||
|
programs.mbsync.enable = true;
|
||||||
|
|
||||||
|
programs.notmuch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
create = "maildir";
|
search.excludeTags = [ "trash" "spam" ];
|
||||||
expunge = "both";
|
new.tags = [ "new" "unread" ];
|
||||||
|
hooks = {
|
||||||
|
preNew = ''
|
||||||
|
notmuch tag +draft -- 'folder:"/\/Drafts$/"'
|
||||||
|
mbsync --all
|
||||||
|
'';
|
||||||
|
postNew = ''
|
||||||
|
notmuch tag +gu -- tag:new path:gu/**
|
||||||
|
notmuch tag +t9e -- tag:new path:t9e/**
|
||||||
|
notmuch tag +ksh -- tag:new path:ksh/**
|
||||||
|
notmuch tag +inbox -- tag:new 'folder:"/\/Inbox$/"'
|
||||||
|
notmuch tag +sent -unread -- tag:new 'folder:"/\/Sent$/"'
|
||||||
|
notmuch tag +trash -unread -- tag:new 'folder:"/\/Trash$/"'
|
||||||
|
notmuch tag +draft -unread -- tag:new 'folder:"/\/Drafts$/"'
|
||||||
|
notmuch tag +spam -- tag:new 'folder:"/\/Spam$/"'
|
||||||
|
notmuch tag +spam -- tag:new 'folder:"/\/Junk$/"'
|
||||||
|
notmuch tag -new -- tag:new
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
msmtp = {
|
};
|
||||||
|
|
||||||
|
programs.neomutt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig.from = "kein_schlussstrich_hessen@systemli.org";
|
|
||||||
};
|
vimKeys = true;
|
||||||
passwordCommand = "pass other/ksh_systemli";
|
changeFolderWhenSourcingAccount = true;
|
||||||
};
|
editor = "nvim -c 'call woof#init#Init()'";
|
||||||
|
sort = "reverse-date-received";
|
||||||
|
unmailboxes = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
abort_noattach = "ask-yes";
|
||||||
|
abort_noattach_regex = "\"(attach|enclosed|anbei|anhängen|angehängt|anhang|anhänge|hängt an)\"";
|
||||||
|
auto_edit = "yes";
|
||||||
|
beep = "no";
|
||||||
|
confirm_append = "no";
|
||||||
|
crypt_auto_sign = "yes";
|
||||||
|
crypt_replyencrypt = "yes";
|
||||||
|
crypt_replysign = "yes";
|
||||||
|
crypt_replysignencrypted = "yes";
|
||||||
|
crypt_verify_sig = "yes";
|
||||||
|
edit_headers = "yes";
|
||||||
|
forward_attachments = "yes";
|
||||||
|
forward_format = "\"Fwd: %s\"";
|
||||||
|
forward_quote = "yes";
|
||||||
|
help = "no";
|
||||||
|
include = "yes";
|
||||||
|
mail_check_stats = "yes";
|
||||||
|
mailcap_path = "${ mailcap_path }";
|
||||||
|
mark_old = "no";
|
||||||
|
markers = "no";
|
||||||
|
mbox_type = "Maildir";
|
||||||
|
menu_scroll = "yes";
|
||||||
|
mime_type_query_command = "\"file -b --mime-type %s\"";
|
||||||
|
nm_record = "yes";
|
||||||
|
pager_context = "3";
|
||||||
|
pager_index_lines = "5";
|
||||||
|
pager_stop = "yes";
|
||||||
|
query_command= "\"khard email --parsable '%s'\"";
|
||||||
|
recall = "no";
|
||||||
|
resume_draft_files = "yes";
|
||||||
|
reverse_real_name = "no";
|
||||||
|
shell = "/bin/sh";
|
||||||
|
sleep_time = "0";
|
||||||
|
smart_wrap = "yes";
|
||||||
|
status_chars = "✔↻٪A";
|
||||||
|
tilde = "yes";
|
||||||
|
use_envelope_from = "yes";
|
||||||
|
virtual_spool_file = "yes";
|
||||||
|
wait_key = "no";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
binds = [
|
||||||
|
{ key = "m"; map = [ "index" "pager" ]; action = "noop"; }
|
||||||
|
{ key = "k"; map = [ "pager" ]; action = "previous-entry"; }
|
||||||
|
{ key = "j"; map = [ "pager" ]; action = "next-entry"; }
|
||||||
|
{ key = "<return>"; map = [ "index" ]; action = "display-message"; }
|
||||||
|
{ key = "<space>"; map = "index"; action = "entire-thread"; }
|
||||||
|
{ key = "gf"; map = [ "index" "pager" ]; action = "change-folder"; }
|
||||||
|
{ key = "<Tab>"; map = [ "editor" ]; action = "complete-query"; }
|
||||||
|
{ key = "P"; map = [ "compose" ]; action = "pgp-menu"; }
|
||||||
|
{ key = "p"; map = [ "compose" ]; action = "postpone-message"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
macros = [
|
||||||
|
{ key = "gu"; map = [ "index" "pager" ]; action = "<vfolder-from-query>tag:dummy<enter>:source ${config.xdg.configHome}/neomutt/gu<enter>g!"; }
|
||||||
|
{ key = "gm"; map = [ "index" "pager" ]; action = "<vfolder-from-query>tag:dummy<enter>:source ${config.xdg.configHome}/neomutt/t9e<enter>g!"; }
|
||||||
|
{ key = "gk"; map = [ "index" "pager" ]; action = "<vfolder-from-query>tag:dummy<enter>:source ${config.xdg.configHome}/neomutt/ksh<enter>g!"; }
|
||||||
|
|
||||||
|
{ key = "Y"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>"; }
|
||||||
|
{ key = "y"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>-inbox -unread -spam -trash<enter><sync-mailbox>"; }
|
||||||
|
{ key = "J"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>+spam -inbox -unread -trash<enter><sync-mailbox>"; }
|
||||||
|
{ key = "I"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>+inbox -old -spam -trash<enter><sync-mailbox>"; }
|
||||||
|
{ key = "Y"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>"; }
|
||||||
|
{ key = "dd"; map = [ "index" "pager" ]; action = "<modify-labels-then-hide>+trash -inbox -unread -spam<enter><sync-mailbox>"; }
|
||||||
|
|
||||||
|
{ key = "g!"; map = [ "index" "pager" ]; action = "<change-vfolder>Inbox<enter>"; }
|
||||||
|
{ key = "g<"; map = [ "index" "pager" ]; action = "<change-vfolder>Sent<enter>"; }
|
||||||
|
{ key = "g>"; map = [ "index" "pager" ]; action = "<change-vfolder>Archive<enter>"; }
|
||||||
|
{ key = "gj"; map = [ "index" "pager" ]; action = "<change-vfolder>Spam<enter>"; }
|
||||||
|
{ key = "gd"; map = [ "index" "pager" ]; action = "<change-vfolder>Drafts<enter>"; }
|
||||||
|
{ key = "gt"; map = [ "index" "pager" ]; action = "<change-vfolder>Trash<enter>"; }
|
||||||
|
|
||||||
|
{ key = "go"; map = [ "index" "pager" ]; action = "<shell-escape>notmuch new<enter>"; }
|
||||||
|
{ key = "V"; map = ["index" "pager"]; action = "<view-attachments><search>html<enter><view-mailcap><exit>"; }
|
||||||
|
{ key = "mar"; map = [ "index" "pager" ]; action = "<tag-pattern>new<enter><tag-prefix-cond><clear-flag>n<enter><tag-prefix-cond><clear-flag>*<enter>"; }
|
||||||
|
{ key = "A"; map = [ "index" "pager" ]; action = "<pipe-message>khard add-email --vcard-version=4.0<return>"; }
|
||||||
|
{ key = "S"; map = [ "index" "pager" ]; action = "<pipe-message>ripmime -i - -d ~/tmp && rm ~/tmp/textfile*"; }
|
||||||
|
{ key = "gb"; map = [ "index" "pager" ]; action = "<pipe-message>urlscan<enter>"; }
|
||||||
|
{ key = "I"; map = [ "compose" ]; action = "<attach-file>`tmpfile=$(mktemp -u --suffix .png -t XXXXXXXXXXXX -p ~/tmp) && wl-paste -t image/png > \"$tmpfile\" && echo \"$tmpfile\"`<enter>"; }
|
||||||
|
{ key = "p"; map = [ "compose" ]; action = "<postpone-message>"; }
|
||||||
|
|
||||||
|
{ key = "c"; map = [ "index" "pager" ]; action = "<enter-command>set signature=$my_signature<enter><mail>"; }
|
||||||
|
{ key = "r"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><reply>"; }
|
||||||
|
{ key = "a"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><group-reply>"; }
|
||||||
|
{ key = "f"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><forward-message>"; }
|
||||||
|
{ key = "l"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><list-reply>"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
extraConfig = builtins.readFile ./config.neomuttrc;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.configFile."neomutt/bindings.neomuttrc".source = ./bindings.neomuttrc;
|
||||||
|
|
||||||
programs.neovim.plugins = with pkgs.vimPlugins; [
|
programs.neovim.plugins = with pkgs.vimPlugins; [
|
||||||
{
|
{
|
||||||
plugin = vim-pathogen;
|
plugin = vim-pathogen;
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
application/pdf; zathura %s
|
|
||||||
multipart; xdg-open %s
|
|
||||||
text/html; firefox %s; description=HTML Text; nametemplate=%s.html; needsterminal
|
|
||||||
text/html; w3m -v -F -T text/html -dump %s; copiousoutput
|
|
||||||
text; neomutt %s
|
|
||||||
application; xdg-open %s
|
|
||||||
image; xdg-open %s
|
|
||||||
video; xdg-open %s
|
|
||||||
audio; xdg-open %s
|
|
||||||
message; xdg-open %s
|
|
||||||
model; xdg-open %s
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
# Locations
|
|
||||||
# set smime_ca_location="~/.keys/neomutt/smime/ca"
|
|
||||||
# set smime_certificates="~/.keys/neomutt/smime/public"
|
|
||||||
# set smime_keys="~/.keys/neomutt/smime/private"
|
|
||||||
|
|
||||||
# Commands (smime_keys)
|
|
||||||
set smime_pk7out_command="openssl smime -verify -in %f -noverify -pk7out"
|
|
||||||
set smime_get_cert_command="openssl pkcs7 -print_certs -in %f"
|
|
||||||
set smime_get_signer_cert_command="openssl smime -verify -in %f -noverify -signer %c -out /dev/null"
|
|
||||||
set smime_get_cert_email_command="openssl x509 -in %f -noout -email"
|
|
||||||
set smime_import_cert_command="smime_keys add_cert %f"
|
|
||||||
|
|
||||||
# Outgoing
|
|
||||||
set smime_encrypt_with="aes256"
|
|
||||||
set smime_encrypt_command="openssl smime -encrypt -%a -outform DER -in %f %c"
|
|
||||||
set smime_sign_digest_alg="sha256"
|
|
||||||
set smime_sign_command="openssl smime -sign -md %d -signer %c -inkey %k -passin stdin -in %f -certfile %i -outform DER"
|
|
||||||
|
|
||||||
# Incoming
|
|
||||||
set smime_decrypt_command="openssl smime -decrypt -passin stdin -inform DER -in %f -inkey %k -recip %c"
|
|
||||||
set smime_verify_command="openssl smime -verify -inform DER -in %s %C -content %f"
|
|
||||||
set smime_verify_opaque_command="\
|
|
||||||
openssl smime -verify -inform DER -in %s %C || \
|
|
||||||
openssl smime -verify -inform DER -in %s -noverify 2>/dev/null"
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, inputs, lib, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
@ -11,6 +11,4 @@
|
||||||
yt-dlp
|
yt-dlp
|
||||||
zathura
|
zathura
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configFile."castget/castget.conf".source = ./castget/castget.conf;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,9 @@ set splitright
|
||||||
set tabstop=2
|
set tabstop=2
|
||||||
set updatetime=300
|
set updatetime=300
|
||||||
|
|
||||||
|
set foldmethod=expr
|
||||||
|
set foldexpr=nvim_treesitter#foldexpr()
|
||||||
|
|
||||||
let g:netrw_liststyle = 3
|
let g:netrw_liststyle = 3
|
||||||
let g:netrw_fastbrowse = 0
|
let g:netrw_fastbrowse = 0
|
||||||
|
|
||||||
|
|
@ -47,9 +50,13 @@ onoremap <silent> al :normal val<return>
|
||||||
xnoremap i% GoggV
|
xnoremap i% GoggV
|
||||||
onoremap <silent> i% :normal vi%<return>
|
onoremap <silent> i% :normal vi%<return>
|
||||||
|
|
||||||
|
" highlight Normal guibg=NONE
|
||||||
|
|
||||||
function CreateNote(title)
|
function CreateNote(title)
|
||||||
execute "file ~/notes/" . strftime("%Y-%m-%d") . "_" . join(split(tolower(a:title)), "_") . ".md"
|
execute "VimwikiIndex"
|
||||||
execute "set ft=markdown"
|
execute "VimwikiGoto " . a:title
|
||||||
execute "normal! i" . a:title
|
endfunction
|
||||||
execute "normal V\<tab>yaml_note\<tab>"
|
|
||||||
|
function Diary()
|
||||||
|
execute "VimwikiMakeDiaryNote"
|
||||||
endfunction
|
endfunction
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
marksman
|
marksman
|
||||||
nil
|
nil
|
||||||
typescript-language-server
|
typescript-language-server
|
||||||
|
vim-language-server
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
|
|
@ -30,8 +31,9 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
plugin = fugitive;
|
plugin = fugitive;
|
||||||
|
type = "lua";
|
||||||
config = ''
|
config = ''
|
||||||
nnoremap <Leader>g :Git
|
vim.api.nvim_set_keymap("n", "<Leader>g", ":Git<CR>", { noremap = true, silent = true })
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -43,9 +45,9 @@
|
||||||
vim.api.nvim_set_keymap('i', '<c-x><c-k>', '<Plug>(fzf-complete-word)', { silent = true })
|
vim.api.nvim_set_keymap('i', '<c-x><c-k>', '<Plug>(fzf-complete-word)', { silent = true })
|
||||||
vim.api.nvim_set_keymap('i', '<c-x><c-l>', '<Plug>(fzf-complete-line)', { silent = true })
|
vim.api.nvim_set_keymap('i', '<c-x><c-l>', '<Plug>(fzf-complete-line)', { silent = true })
|
||||||
|
|
||||||
vim.api.nvim_set_keymap('n', '<leader><tab>', '<Plug>(fzf-maps-n)', { silent = true })
|
vim.api.nvim_set_keymap('n', '<localleader><tab>', '<Plug>(fzf-maps-n)', { silent = true })
|
||||||
vim.api.nvim_set_keymap('x', '<leader><tab>', '<Plug>(fzf-maps-x)', { silent = true })
|
vim.api.nvim_set_keymap('x', '<localleader><tab>', '<Plug>(fzf-maps-x)', { silent = true })
|
||||||
vim.api.nvim_set_keymap('o', '<leader><tab>', '<Plug>(fzf-maps-o)', { silent = true })
|
vim.api.nvim_set_keymap('o', '<localleader><tab>', '<Plug>(fzf-maps-o)', { silent = true })
|
||||||
|
|
||||||
vim.api.nvim_set_keymap('n', '<leader>b', ':Buffers<return>', { noremap = true, silent = true })
|
vim.api.nvim_set_keymap('n', '<leader>b', ':Buffers<return>', { noremap = true, silent = true })
|
||||||
vim.api.nvim_set_keymap('n', '<leader>o', ':Files<return>', { noremap = true, silent = true })
|
vim.api.nvim_set_keymap('n', '<leader>o', ':Files<return>', { noremap = true, silent = true })
|
||||||
|
|
@ -107,11 +109,30 @@
|
||||||
vim.lsp.enable('r_language_server')
|
vim.lsp.enable('r_language_server')
|
||||||
vim.lsp.enable('texlab')
|
vim.lsp.enable('texlab')
|
||||||
vim.lsp.enable('ts_ls')
|
vim.lsp.enable('ts_ls')
|
||||||
|
vim.lsp.enable('vimls')
|
||||||
|
|
||||||
vim.api.nvim_del_keymap('i', '<c-s>')
|
vim.api.nvim_del_keymap('i', '<c-s>')
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
plugin = (nvim-treesitter.withPlugins (p: [ p.nix p.lua p.r p.typescript ]));
|
||||||
|
type = "lua";
|
||||||
|
config = ''
|
||||||
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
|
pattern = { 'nix', 'markdown', 'lua', 'r' },
|
||||||
|
callback = function()
|
||||||
|
-- Enable Tree-sitter-based folding
|
||||||
|
vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
|
||||||
|
vim.o.foldmethod = 'expr'
|
||||||
|
-- Optional: configure fold behavior
|
||||||
|
vim.o.foldlevel = 99
|
||||||
|
vim.o.foldlevelstart = 99
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
plugin = papercolor-theme;
|
plugin = papercolor-theme;
|
||||||
config = ''
|
config = ''
|
||||||
|
|
@ -149,16 +170,20 @@
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
vim-fish
|
{
|
||||||
|
plugin = vim-fish;
|
||||||
|
}
|
||||||
|
|
||||||
vim-nix
|
vim-nix
|
||||||
|
|
||||||
{
|
{
|
||||||
plugin = vim-pandoc;
|
plugin = vim-pandoc;
|
||||||
config = ''
|
config = ''
|
||||||
let g:pandoc#modules#disabled = ["completion", "command", "menu", "completion"]
|
let g:pandoc#modules#disabled = ["completion", "command", "menu"]
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vim-pandoc-syntax
|
||||||
vim-repeat
|
vim-repeat
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,18 +8,15 @@ cmp.setup({
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
window = {
|
mapping = cmp.mapping.preset.insert(
|
||||||
-- completion = cmp.config.window.bordered(),
|
{
|
||||||
-- documentation = cmp.config.window.bordered(),
|
|
||||||
},
|
|
||||||
|
|
||||||
mapping = cmp.mapping.preset.insert({
|
|
||||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
['<C-Space>'] = cmp.mapping.complete(),
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
['<C-e>'] = cmp.mapping.abort(),
|
['<C-e>'] = cmp.mapping.abort(),
|
||||||
['<Tab>'] = cmp.mapping.confirm({ select = true }),
|
['<Tab>'] = cmp.mapping.confirm({ select = false }),
|
||||||
}),
|
}
|
||||||
|
),
|
||||||
|
|
||||||
sources = cmp.config.sources({
|
sources = cmp.config.sources({
|
||||||
{ name = 'cmp_pandoc' },
|
{ name = 'cmp_pandoc' },
|
||||||
|
|
@ -34,17 +31,6 @@ cmp.setup({
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
-- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
|
|
||||||
-- Set configuration for specific filetype.
|
|
||||||
--[[ cmp.setup.filetype('gitcommit', {
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = 'git' },
|
|
||||||
}, {
|
|
||||||
{ name = 'buffer' },
|
|
||||||
})
|
|
||||||
})
|
|
||||||
require("cmp_git").setup() ]]--
|
|
||||||
|
|
||||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||||
cmp.setup.cmdline({ '/', '?' }, {
|
cmp.setup.cmdline({ '/', '?' }, {
|
||||||
mapping = cmp.mapping.preset.cmdline(),
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
|
@ -66,8 +52,3 @@ cmp.setup.cmdline(':', {
|
||||||
|
|
||||||
-- Set up lspconfig.
|
-- Set up lspconfig.
|
||||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
-- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.
|
|
||||||
-- vim.lsp.config('<YOUR_LSP_SERVER>', {
|
|
||||||
-- capabilities = capabilities
|
|
||||||
-- })
|
|
||||||
-- vim.lsp.enable('<YOUR_LSP_SERVER>')
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
bat
|
bat
|
||||||
castget
|
|
||||||
ghostscript
|
ghostscript
|
||||||
hunspell
|
hunspell
|
||||||
hunspellDicts.de_DE
|
hunspellDicts.de_DE
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.gnome-keyring.enable = false;
|
|
||||||
|
|
||||||
programs.password-store = {
|
programs.password-store = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
@ -14,14 +12,12 @@
|
||||||
pkgs.passff-host
|
pkgs.passff-host
|
||||||
];
|
];
|
||||||
|
|
||||||
|
services.gnome-keyring.enable = false;
|
||||||
|
|
||||||
services.pass-secret-service = {
|
services.pass-secret-service = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
pinentry-all
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.configFile."scdaemon" = {
|
xdg.configFile."scdaemon" = {
|
||||||
text = ''
|
text = ''
|
||||||
disable-ccid
|
disable-ccid
|
||||||
|
|
@ -29,4 +25,5 @@
|
||||||
'';
|
'';
|
||||||
target = "../.gnupg/scdaemon.conf";
|
target = "../.gnupg/scdaemon.conf";
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
5
home/plasma.nix
Normal file
5
home/plasma.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.kdeconnect.enable = true;
|
||||||
|
}
|
||||||
15
home/profiles/desktop-full.nix
Normal file
15
home/profiles/desktop-full.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./desktop-slim.nix
|
||||||
|
|
||||||
|
../messaging.nix
|
||||||
|
../r.nix
|
||||||
|
../tex.nix
|
||||||
|
../mail
|
||||||
|
../office-gui.nix
|
||||||
|
../office-cli.nix
|
||||||
|
../aichat.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -1,16 +1,17 @@
|
||||||
{ config, pkgs, inputs, lib, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./minimal.nix
|
./minimal.nix
|
||||||
|
|
||||||
./devel.nix
|
../devel.nix
|
||||||
./firefox.nix
|
../firefox.nix
|
||||||
./fonts.nix
|
../fonts.nix
|
||||||
./foot.nix
|
# ../foot.nix
|
||||||
./gnome
|
../media.nix
|
||||||
./media.nix
|
../user-dirs.nix
|
||||||
./user-dirs.nix
|
../gpg.nix
|
||||||
|
../password-store.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
@ -25,8 +26,5 @@
|
||||||
zathura
|
zathura
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configFile."castget/castget.conf".source = ./castget/castget.conf;
|
|
||||||
|
|
||||||
services.syncthing.enable = true;
|
services.syncthing.enable = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, inputs, lib, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
@ -10,22 +10,21 @@
|
||||||
fastfetch
|
fastfetch
|
||||||
fzf
|
fzf
|
||||||
jq
|
jq
|
||||||
|
nh
|
||||||
nix-search
|
nix-search
|
||||||
progress
|
progress
|
||||||
rename
|
rename
|
||||||
silver-searcher
|
silver-searcher
|
||||||
tldr
|
tldr
|
||||||
tmux
|
tmux
|
||||||
|
yq
|
||||||
];
|
];
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./fish.nix
|
../fish.nix
|
||||||
./tmux
|
../vifm.nix
|
||||||
./password-store.nix
|
../nvim
|
||||||
./vifm
|
../tmux.nix
|
||||||
./nvim
|
|
||||||
./gpg.nix
|
|
||||||
./ssh.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.nix-index = {
|
programs.nix-index = {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
|
|
@ -22,13 +22,19 @@
|
||||||
bind j select-pane -D
|
bind j select-pane -D
|
||||||
bind k select-pane -U
|
bind k select-pane -U
|
||||||
bind l select-pane -R
|
bind l select-pane -R
|
||||||
|
bind -r H resize-pane -L 5
|
||||||
|
bind -r J resize-pane -D 5
|
||||||
|
bind -r K resize-pane -U 5
|
||||||
|
bind -r L resize-pane -R 5
|
||||||
bind c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
|
bind c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
|
||||||
bind C-c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
|
bind C-c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
|
||||||
|
|
||||||
# Layouts
|
# Layouts
|
||||||
bind f source-file ~/.config/tmux/vifm.conf
|
bind f new-window -c '#{pane_current_path}' vifm
|
||||||
bind R source-file ~/.config/tmux/rloft.conf
|
bind R source ${ pkgs.writeText "tmux-rloft" ''
|
||||||
bind J source-file ~/.config/tmux/jekyll.conf
|
split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore;
|
||||||
|
select-pane -l
|
||||||
|
''}
|
||||||
|
|
||||||
# Unbind
|
# Unbind
|
||||||
unbind p
|
unbind p
|
||||||
|
|
@ -36,7 +42,6 @@
|
||||||
unbind %
|
unbind %
|
||||||
|
|
||||||
# Eye candy
|
# Eye candy
|
||||||
# set-option -g status-position top
|
|
||||||
set-option -g status-right ""
|
set-option -g status-right ""
|
||||||
set-option -g status-left ""
|
set-option -g status-left ""
|
||||||
set-option -g status-justify "centre"
|
set-option -g status-justify "centre"
|
||||||
|
|
@ -47,9 +52,10 @@
|
||||||
|
|
||||||
# Some more specifics
|
# Some more specifics
|
||||||
set-option -g focus-events on
|
set-option -g focus-events on
|
||||||
|
set -g base-index 1
|
||||||
|
setw -g pane-base-index 1
|
||||||
|
set -g default-terminal "tmux-256color"
|
||||||
|
set -as terminal-features ",xterm-256color:RGB"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
xdg.configFile."tmux/vifm.conf".source = ./vifm.conf;
|
|
||||||
xdg.configFile."tmux/rloft.conf".source = ./rloft.conf;
|
|
||||||
xdg.configFile."tmux/jekyll.conf".source = ./jekyll.conf;
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
split-window -c '#{pane_current_path}' -h nix-shell
|
|
||||||
send-keys "jekyll serve" Enter
|
|
||||||
resize-pane -x 40%
|
|
||||||
split-pane -c '#{pane_current_path}' "git status; fish"
|
|
||||||
select-pane -L
|
|
||||||
rename-window "jekyll"
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore
|
|
||||||
select-pane -l
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
new-window -c '#{pane_current_path}' vifm
|
|
||||||
30
home/vifm.nix
Normal file
30
home/vifm.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.vifm = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = "
|
||||||
|
colorscheme light
|
||||||
|
set vicmd=nvim
|
||||||
|
filetype * xdg-open
|
||||||
|
";
|
||||||
|
};
|
||||||
|
xdg.configFile."vifm/colors/light.vifm".text = ''
|
||||||
|
highlight clear
|
||||||
|
highlight Win cterm=none ctermfg=black ctermbg=default
|
||||||
|
highlight Directory cterm=none ctermfg=cyan ctermbg=default
|
||||||
|
highlight Link cterm=none ctermfg=yellow ctermbg=default
|
||||||
|
highlight BrokenLink cterm=none ctermfg=white ctermbg=red
|
||||||
|
highlight Socket cterm=none ctermfg=red ctermbg=default
|
||||||
|
highlight Device cterm=none ctermfg=red ctermbg=default
|
||||||
|
highlight Fifo cterm=none ctermfg=black ctermbg=cyan
|
||||||
|
highlight Executable cterm=none ctermfg=green ctermbg=default
|
||||||
|
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
|
||||||
|
highlight CurrLine cterm=bold ctermfg=white ctermbg=magenta
|
||||||
|
highlight TopLine cterm=bold ctermfg=magenta ctermbg=default
|
||||||
|
highlight TopLineSel cterm=bold ctermfg=magenta ctermbg=white
|
||||||
|
highlight StatusLine cterm=bold ctermfg=magenta ctermbg=white
|
||||||
|
highlight CmdLine cterm=bold ctermfg=magenta ctermbg=default
|
||||||
|
highlight Border cterm=none ctermfg=default ctermbg=default
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.vifm = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = "
|
|
||||||
colorscheme light
|
|
||||||
set vicmd=nvim
|
|
||||||
filetype * xdg-open
|
|
||||||
";
|
|
||||||
};
|
|
||||||
xdg.configFile."vifm/colors/light.vifm".source = ./light.vifm;
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
highlight clear
|
|
||||||
|
|
||||||
highlight Win cterm=none ctermfg=black ctermbg=default
|
|
||||||
highlight Directory cterm=none ctermfg=cyan ctermbg=default
|
|
||||||
highlight Link cterm=none ctermfg=yellow ctermbg=default
|
|
||||||
highlight BrokenLink cterm=none ctermfg=white ctermbg=red
|
|
||||||
highlight Socket cterm=none ctermfg=red ctermbg=default
|
|
||||||
highlight Device cterm=none ctermfg=red ctermbg=default
|
|
||||||
highlight Fifo cterm=none ctermfg=black ctermbg=cyan
|
|
||||||
highlight Executable cterm=none ctermfg=green ctermbg=default
|
|
||||||
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
|
|
||||||
highlight CurrLine cterm=bold ctermfg=white ctermbg=magenta
|
|
||||||
highlight TopLine cterm=bold ctermfg=magenta ctermbg=default
|
|
||||||
highlight TopLineSel cterm=bold ctermfg=magenta ctermbg=white
|
|
||||||
highlight StatusLine cterm=bold ctermfg=magenta ctermbg=white
|
|
||||||
"highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
|
|
||||||
highlight CmdLine cterm=bold ctermfg=magenta ctermbg=default
|
|
||||||
"highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
|
|
||||||
highlight Border cterm=none ctermfg=default ctermbg=default
|
|
||||||
"highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
networking.domain = "ktiu.net";
|
networking.domain = "ktiu.net";
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware
|
./hardware-configuration.nix
|
||||||
../system
|
../system
|
||||||
../system/web-server
|
../system/web-server
|
||||||
../system/mail-server
|
../system/mail-server
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@
|
||||||
../../users/guest/system.nix
|
../../users/guest/system.nix
|
||||||
../../system
|
../../system
|
||||||
../../system/desktop
|
../../system/desktop
|
||||||
../../system/desktop/gnome.nix
|
|
||||||
# ../../system/desktop/cast.nix
|
|
||||||
../../system/desktop/ergodox-udev.nix
|
../../system/desktop/ergodox-udev.nix
|
||||||
|
# ../../system/desktop/gnome.nix
|
||||||
|
../../system/desktop/cosmic.nix
|
||||||
../../system/desktop/steam.nix
|
../../system/desktop/steam.nix
|
||||||
../../system/desktop/yubikey-pam.nix
|
../../system/desktop/yubikey-pam.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
14
system/desktop/cosmic.nix
Normal file
14
system/desktop/cosmic.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
services.displayManager.cosmic-greeter.enable = true;
|
||||||
|
|
||||||
|
services.system76-scheduler.enable = true;
|
||||||
|
|
||||||
|
services.gnome.gnome-keyring.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
programs.firefox.preferences = {
|
||||||
|
"widget.gtk.libadwaita-colors.enabled" = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -51,4 +51,9 @@
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentryPackage = pkgs.pinentry-all;
|
||||||
|
# pinentry.program = "pinentry";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@
|
||||||
{
|
{
|
||||||
services.desktopManager.gnome.enable = true;
|
services.desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
services.displayManager = {
|
# services.displayManager = {
|
||||||
gdm.enable = true;
|
# gdm.enable = true;
|
||||||
defaultSession = "gnome";
|
# defaultSession = "gnome";
|
||||||
};
|
# };
|
||||||
|
|
||||||
environment.gnome.excludePackages = with pkgs; [
|
environment.gnome.excludePackages = with pkgs; [
|
||||||
gnome-tour
|
gnome-tour
|
||||||
|
|
|
||||||
29
system/desktop/hyprland.nix
Normal file
29
system/desktop/hyprland.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
withUWSM = true;
|
||||||
|
# xwayland.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# programs.regreet = {
|
||||||
|
# enable = true;
|
||||||
|
# # For this example you'd need to have a version of Adwaita and the font Cantarell installed
|
||||||
|
# theme.name = "Adwaita";
|
||||||
|
# font = {
|
||||||
|
# name = "Cantarell";
|
||||||
|
# size = 16;
|
||||||
|
# };
|
||||||
|
# cursorTheme.name = "Adwaita";
|
||||||
|
# };
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ashell
|
||||||
|
kitty
|
||||||
|
mako
|
||||||
|
tofi
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
18
system/desktop/plasma.nix
Normal file
18
system/desktop/plasma.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.desktopManager.plasma6.enable = true;
|
||||||
|
|
||||||
|
programs.kdeconnect.enable = true;
|
||||||
|
|
||||||
|
networking.firewall = rec {
|
||||||
|
allowedTCPPortRanges = [ { from = 1714; to = 1764; } ];
|
||||||
|
allowedUDPPortRanges = allowedTCPPortRanges;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
settings.General.DisplayServer = "wayland";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -4,8 +4,9 @@
|
||||||
services.pcscd.enable = true;
|
services.pcscd.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
yubikey-personalization
|
|
||||||
keymapp
|
keymapp
|
||||||
|
yubikey-personalization
|
||||||
|
yubikey-manager
|
||||||
];
|
];
|
||||||
|
|
||||||
services.udev = {
|
services.udev = {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,15 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
webmailHostName = "webmail.${config.networking.domain}";
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
services.roundcube = {
|
services.roundcube = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hostName = "webmail.ktiu.net";
|
hostName = webmailHostName;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
$config['smtp_host'] = 'tls://%h';
|
$config['smtp_host'] = 'tls://%h';
|
||||||
$config['smtp_conn_options'] = [
|
$config['smtp_conn_options'] = [
|
||||||
|
|
@ -14,4 +20,17 @@
|
||||||
];
|
];
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# not sure why this is currently working w/o the following
|
||||||
|
#
|
||||||
|
# services.nginx.virtualHosts."${webmailHostName}" = {
|
||||||
|
# onlySSL = true;
|
||||||
|
# forceSSL = lib.mkForce false;
|
||||||
|
# enableACME = lib.mkForce false;
|
||||||
|
# useACMEHost = config.networking.domain;
|
||||||
|
# };
|
||||||
|
# security.acme.certs."${config.networking.domain}".extraDomainNames = [
|
||||||
|
# webmailHostName
|
||||||
|
# ];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ in {
|
||||||
{
|
{
|
||||||
id = "outline";
|
id = "outline";
|
||||||
name = "Outline Client";
|
name = "Outline Client";
|
||||||
redirectURIs = [ "https://${outline.hostname}/auth/oidc.callback" ];
|
redirectURIs = [ "https://${config.services.outline.hostname}/auth/oidc.callback" ];
|
||||||
secretFile = "/var/custom-access/outline-oidc-secret.txt";
|
secretFile = "/var/custom-access/outline-oidc-secret.txt";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
defaults.email = "till@ktiu.net";
|
defaults.email = "till@ktiu.net";
|
||||||
certs."${config.networking.domain}" = {
|
certs."${config.networking.domain}" = {
|
||||||
domain = config.networking.domain;
|
# domain = config.networking.domain;
|
||||||
webroot = "/var/lib/acme/.challenges";
|
webroot = "/var/lib/acme/.challenges";
|
||||||
group = config.services.nginx.group;
|
group = config.services.nginx.group;
|
||||||
extraDomainNames = [ config.networking.fqdn ];
|
extraDomainNames = [ config.networking.fqdn ];
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
extraGroups = [ "networkmanager" ];
|
extraGroups = [ "networkmanager" ];
|
||||||
shell = pkgs.fish;
|
shell = pkgs.fish;
|
||||||
openssh.authorizedKeys.keyFiles = [
|
openssh.authorizedKeys.keyFiles = [
|
||||||
../till/ssh/till${"@"}nova.pub
|
../till/pubkeys/till${"@"}nova.pub
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,4 +6,9 @@
|
||||||
name = "Till";
|
name = "Till";
|
||||||
email = "till@ktiu.net";
|
email = "till@ktiu.net";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./ssh.nix
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,11 @@ in
|
||||||
identityFile = certs.uni;
|
identityFile = certs.uni;
|
||||||
};
|
};
|
||||||
|
|
||||||
"arielle arielle.ktiu.net" = {
|
"git.ktiu.net" = {
|
||||||
|
identityFile = certs.personal;
|
||||||
|
};
|
||||||
|
|
||||||
|
"arielle (arielle|git).ktiu.net" = {
|
||||||
hostname = "arielle.ktiu.net";
|
hostname = "arielle.ktiu.net";
|
||||||
user = "till";
|
user = "till";
|
||||||
identityFile = certs.personal;
|
identityFile = certs.personal;
|
||||||
|
|
@ -65,11 +69,11 @@ in
|
||||||
identityFile = certs.personal;
|
identityFile = certs.personal;
|
||||||
};
|
};
|
||||||
|
|
||||||
# "mila" = {
|
"mila" = {
|
||||||
# hostname = "mila";
|
hostname = "mila";
|
||||||
# user = "till";
|
user = "tstraube";
|
||||||
# identityFile = certs.personal;
|
identityFile = certs.uni;
|
||||||
# };
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
];
|
];
|
||||||
shell = pkgs.fish;
|
shell = pkgs.fish;
|
||||||
openssh.authorizedKeys.keyFiles = [
|
openssh.authorizedKeys.keyFiles = [
|
||||||
./ssh/till${"@"}nova.pub
|
./pubkeys/till${"@"}nova.pub
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue