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": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1769054619,
|
||||
"narHash": "sha256-LCc0gbSgjehdy41Gi1H5WNxEuW9PtRHFVaPXoFzslQU=",
|
||||
"lastModified": 1772596991,
|
||||
"narHash": "sha256-awJJ4ATy9t8Svrx2z0zAftgXnUaGCFb2Ty0u036CnCQ=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "6509620630f68dc02ac3e99f15a67760778444ff",
|
||||
"rev": "cd2d0893966c0a5c27345a9a72d0418b42b7e36d",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -29,11 +29,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767910483,
|
||||
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
|
||||
"lastModified": 1772633058,
|
||||
"narHash": "sha256-SO7JapRy2HPhgmqiLbfnW1kMx5rakPMKZ9z3wtRLQjI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
|
||||
"rev": "080657a04188aca25f8a6c70a0fb2ea7e37f1865",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -45,11 +45,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1768028080,
|
||||
"narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=",
|
||||
"lastModified": 1772598333,
|
||||
"narHash": "sha256-YaHht/C35INEX3DeJQNWjNaTcPjYmBwwjFJ2jdtr+5U=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d03088749a110d52a4739348f39a63f84bb0be14",
|
||||
"rev": "fabb8c9deee281e50b1065002c9828f2cf7b2239",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
37
flake.nix
37
flake.nix
|
|
@ -25,12 +25,31 @@
|
|||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./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 {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [ ./hosts/homer ];
|
||||
modules = [
|
||||
./hosts/homer
|
||||
];
|
||||
};
|
||||
|
||||
mila = nixpkgs.lib.nixosSystem {
|
||||
|
|
@ -43,9 +62,7 @@
|
|||
nova = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
|
||||
./hosts/nova
|
||||
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager = {
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
|
|
@ -55,29 +72,34 @@
|
|||
|
||||
till = {
|
||||
imports = [
|
||||
./home/desktop-full.nix
|
||||
./home/profiles/desktop-full.nix
|
||||
./users/till/home.nix
|
||||
];
|
||||
};
|
||||
|
||||
alt = {
|
||||
imports = [
|
||||
./home/desktop-slim.nix
|
||||
./home/profiles/desktop-slim.nix
|
||||
./users/alt/home.nix
|
||||
];
|
||||
};
|
||||
|
||||
guest = {
|
||||
imports = [
|
||||
./home/desktop-slim.nix
|
||||
./home/profiles/desktop-slim.nix
|
||||
./users/guest/home.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
# firefox-addons.config.allowUnfreePredicate = pkg:
|
||||
# builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
# "tampermonkey"
|
||||
# ];
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
"corefonts"
|
||||
|
|
@ -85,6 +107,7 @@
|
|||
"keymapp"
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
# "tampermonkey"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -5,4 +5,10 @@
|
|||
aichat
|
||||
glow
|
||||
];
|
||||
|
||||
programs.fish.shellAliases = {
|
||||
vibe = "aichat -c";
|
||||
clank = "aichat -e";
|
||||
slop = "aichat";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
let
|
||||
|
||||
myRemote = slug: {
|
||||
passwordCommand = [ "pass" "ktiu/radicale" ];
|
||||
passwordCommand = [ "pass" "accounts/ktiu-radicale" ];
|
||||
userName = "ktiu";
|
||||
type = "caldav";
|
||||
url = "https://kalender.ktiu.net/ktiu/${slug}";
|
||||
|
|
@ -127,7 +127,7 @@ in
|
|||
remote = {
|
||||
type = "caldav";
|
||||
url = "https://cloud.gridisnotajournal.de/remote.php/dav/calendars/till/grid/";
|
||||
passwordCommand = [ "pass" "grid/nextcloud" ];
|
||||
passwordCommand = [ "pass" "uni/grid-caldav-nextcloud" ];
|
||||
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 = ''
|
||||
|
|
@ -6,12 +6,8 @@
|
|||
'';
|
||||
|
||||
home.packages = with pkgs; [
|
||||
bundler
|
||||
bundix
|
||||
nodejs
|
||||
yarn-berry
|
||||
duckdb
|
||||
tippecanoe
|
||||
pmtiles
|
||||
];
|
||||
|
||||
programs.direnv.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
{ config, pkgs, inputs, osConfig, ... }:
|
||||
|
||||
{
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
policies = {
|
||||
|
|
@ -149,6 +148,7 @@
|
|||
user_pref("signon.rememberSignons", false);
|
||||
user_pref("toolkit.telemetry.enabled", false);
|
||||
user_pref("toolkit.telemetry.server", "");
|
||||
user_pref("widget.gtk.libadwaita-colors.enabled", false);
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
|
||||
home.shellAliases = {
|
||||
top = "btm --battery";
|
||||
du = "dust";
|
||||
|
|
@ -13,7 +12,6 @@
|
|||
};
|
||||
|
||||
programs.fish = {
|
||||
|
||||
enable = true;
|
||||
|
||||
interactiveShellInit = "fish_add_path ${config.xdg.dataHome}/npm/packages/bin";
|
||||
|
|
@ -53,6 +51,10 @@
|
|||
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
|
||||
|
||||
function fish_prompt --description "Write out the prompt"
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
main = {
|
||||
shell = "${pkgs.fish}/bin/fish -c 'tmux attach'";
|
||||
pad = "34x34";
|
||||
# font = "JetBrains Mono:size=16";
|
||||
font = "Adwaita Mono:size=17";
|
||||
font-bold = "Adwaita Mono:size=17:weight=bold";
|
||||
font-italic = "Adwaita Mono:size=17:slant=italic";
|
||||
font-bold-italic = "Adwaita Mono:size=17:weight=boldslant=italic";
|
||||
initial-window-mode = "maximized";
|
||||
initial-color-theme = "dark";
|
||||
font = "JetBrains Mono:size=14";
|
||||
# font = "Adwaita Mono:size=17";
|
||||
# font-bold = "Adwaita Mono:size=17:weight=bold";
|
||||
# font-italic = "Adwaita Mono:size=17:slant=italic";
|
||||
# font-bold-italic = "Adwaita Mono:size=17:weight=boldslant=italic";
|
||||
# initial-window-mode = "maximized";
|
||||
# initial-color-theme = "dark";
|
||||
};
|
||||
|
||||
mouse.hide-when-typing = "yes";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.pointerCursor = {
|
||||
|
|
@ -35,7 +35,6 @@
|
|||
gtk-theme = "Adwaita";
|
||||
};
|
||||
"org/gnome/desktop/background" = {
|
||||
picture-uri = "file://" + ./wallpaper_nix_paper_gray.svg;
|
||||
picture-options = "zoom";
|
||||
};
|
||||
"org/gnome/desktop/wm/keybindings" = {
|
||||
|
|
@ -104,5 +103,12 @@
|
|||
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
|
||||
];
|
||||
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
pinentry.package = pkgs.pinentry-gnome3;
|
||||
pinentry.program = "pinentry-gnome3";
|
||||
enableSshSupport = true;
|
||||
};
|
||||
# moved to system
|
||||
|
||||
# services.gpg-agent = {
|
||||
# enable = true;
|
||||
# pinentry.package = pkgs.pinentry-all;
|
||||
# pinentry.program = "pinentry";
|
||||
# # enableSshSupport = true;
|
||||
# };
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
# homedir = "${config.xdg.dataHome}/gnupg";
|
||||
settings = {
|
||||
no-emit-version = 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
|
||||
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
|
||||
bind editor ^T complete
|
||||
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"
|
||||
macro index,pager go "<shell-escape>mbsync $my_account && notmuch new<enter>" "Sync this account"
|
||||
macro index,pager gO "<shell-escape>mbsync -a && notmuch new<enter>" "Sync all accounts"
|
||||
|
||||
# compose with signature management
|
||||
macro index,pager @ "<enter-command>set signature=$my_signature<enter><compose-to-sender>" "Compose to sender"
|
||||
macro index,pager c "<enter-command>set signature=$my_signature<enter><mail>" "Compose new message"
|
||||
macro index,pager r "<enter-command>unset signature<enter><reply>" "Reply to message"
|
||||
macro index,pager a "<enter-command>unset signature<enter><group-reply>" "Reply all"
|
||||
macro index,pager f "<enter-command>unset signature<enter><forward-message>" "Forward message"
|
||||
bind index,pager / noop
|
||||
macro index,pager // "<vfolder-from-query-readonly>folder:/$my_account/" "Find in account"
|
||||
macro index,pager g/ "<vfolder-from-query-readonly>" "Find in all accounts"
|
||||
macro index,pager /! "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_spoolfile" "Find in inbox"
|
||||
macro index,pager /< "<vfolder-from-query-readonly>folder:+$my_account/$my_nm_record" "Find in sent"
|
||||
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
|
||||
source $alias_file
|
||||
|
||||
set mailcap_path = ~/.config/neomutt/mailcap
|
||||
|
||||
# source ./smime.neomuttrc
|
||||
# External
|
||||
|
||||
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
|
||||
|
||||
set status_chars = "✔↻٪A"
|
||||
set status_format = "— [ %r ] %f (%lB) %>— %m messages%?n? [ %n new ]?%?d? [ %d to delete ]?%?t? [ %t tagged ]? —"
|
||||
unset help
|
||||
|
||||
# Index
|
||||
|
||||
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 send_charset = "utf-8:iso-8859-1:us-ascii"
|
||||
set charset = "utf-8"
|
||||
|
||||
# sorting
|
||||
set sort = threads
|
||||
set sort_aux = reverse-last-date-received
|
||||
|
||||
# Pager view
|
||||
|
||||
set pager_index_lines = 10
|
||||
set pager_context = 3
|
||||
set pager_stop
|
||||
|
|
@ -99,38 +36,23 @@ alternative_order text/plain text/enriched text/html
|
|||
auto_view text/html
|
||||
|
||||
# Attachments
|
||||
|
||||
set rfc2047_parameters
|
||||
set attach_save_dir = $my_download_folder
|
||||
|
||||
## Indicator
|
||||
color indicator brightwhite brightblack
|
||||
# Colors
|
||||
|
||||
## Index
|
||||
color indicator brightwhite brightblack
|
||||
color index_flags brightmagenta default '.*'
|
||||
color index_date cyan default
|
||||
|
||||
## New mail
|
||||
color index brightblack default '~N'
|
||||
|
||||
## Header colors
|
||||
color header brightblack default ".*"
|
||||
color header brightgreen default "^(Subject)"
|
||||
color header yellow default "^(From|To|CC|BCC)"
|
||||
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 error red default
|
||||
color tilde black default
|
||||
|
||||
## Pager
|
||||
color normal default default
|
||||
color attachment brightblack default
|
||||
color search black yellow
|
||||
|
|
@ -142,8 +64,6 @@ color quoted4 red default
|
|||
color quoted5 brightred default
|
||||
color signature cyan default
|
||||
color underline black default
|
||||
|
||||
## Email
|
||||
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 red default "(BAD signature)"
|
||||
|
|
|
|||
|
|
@ -1,42 +1,81 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
programs.msmtp = {
|
||||
enable = true;
|
||||
configContent = ''
|
||||
defaults
|
||||
logfile ${config.xdg.stateHome}/msmtp/msmtp.log
|
||||
port 587
|
||||
let
|
||||
|
||||
makeConfig = accountName:
|
||||
''
|
||||
unset reverse_name
|
||||
unset crypt_auto_pgp
|
||||
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 ]? —"
|
||||
'';
|
||||
|
||||
makeAccount = accountName: {
|
||||
signature.showSignature = "append";
|
||||
smtp.tls.useStartTls = true;
|
||||
msmtp.enable = true;
|
||||
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "maildir";
|
||||
expunge = "both";
|
||||
};
|
||||
|
||||
neomutt = {
|
||||
enable = true;
|
||||
sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ accountName }";
|
||||
};
|
||||
|
||||
notmuch = {
|
||||
enable = true;
|
||||
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"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.mbsync.enable = true;
|
||||
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
|
||||
'';
|
||||
|
||||
programs.neomutt = {
|
||||
enable = true;
|
||||
vimKeys = true;
|
||||
extraConfig = builtins.readFile ./config.neomuttrc;
|
||||
};
|
||||
in
|
||||
|
||||
programs.notmuch.enable = true;
|
||||
|
||||
xdg.configFile."neomutt/bindings.neomuttrc".source = ./bindings.neomuttrc;
|
||||
xdg.configFile."neomutt/smime.neomuttrc".source = ./smime.neomuttrc;
|
||||
xdg.configFile."neomutt/mailcap".source = ./neomutt_mailcap;
|
||||
{
|
||||
programs.mu.enable = true;
|
||||
|
||||
accounts.email = {
|
||||
maildirBasePath = "${config.xdg.dataHome}/mail";
|
||||
accounts = {
|
||||
|
||||
gu = {
|
||||
gu = { name, ... }: lib.attrsets.recursiveUpdate (makeAccount name) {
|
||||
primary = true;
|
||||
address = "straube@geo.uni-frankfurt.de";
|
||||
realName = "Till Straube";
|
||||
imap.host = "imap.server.uni-frankfurt.de";
|
||||
smtp.host = "smtpauth.rz.uni-frankfurt.de";
|
||||
smtp.tls.useStartTls = true;
|
||||
userName = "tstraube";
|
||||
notmuch.enable = true;
|
||||
passwordCommand = "pass uni/hrz";
|
||||
signature = {
|
||||
text = ''
|
||||
|
|
@ -44,206 +83,190 @@
|
|||
Dept. of Human Geography
|
||||
Goethe University Frankfurt
|
||||
'';
|
||||
showSignature = "append";
|
||||
};
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "maildir";
|
||||
expunge = "both";
|
||||
};
|
||||
msmtp.enable = true;
|
||||
neomutt = {
|
||||
enable = true;
|
||||
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
|
||||
}
|
||||
extraConfig = makeConfig name + ''
|
||||
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";
|
||||
realName = "Till Straube";
|
||||
imap.host = "arielle.ktiu.net";
|
||||
smtp.host = "arielle.ktiu.net";
|
||||
smtp.tls.useStartTls = true;
|
||||
notmuch.enable = true;
|
||||
userName = "till.straube@t9e.me";
|
||||
signature.text = ''
|
||||
Till Straube (he/him)
|
||||
PGP key: https://keys.openpgp.org/search?q=till.straube@t9e.me
|
||||
'';
|
||||
signature.showSignature = "append";
|
||||
gpg = {
|
||||
key = "5FA6782F543D12ED07110780BA1B73F10BABF8E3";
|
||||
signByDefault = true;
|
||||
};
|
||||
neomutt = {
|
||||
enable = true;
|
||||
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
|
||||
}
|
||||
extraConfig = makeConfig name + ''
|
||||
color status green default
|
||||
alternates @t9e.me$ @ktiu.net$ ^(tillkowski|till.straube)@gmail.com$
|
||||
set reverse_name
|
||||
set crypt_auto_pgp
|
||||
'';
|
||||
};
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "maildir";
|
||||
expunge = "both";
|
||||
};
|
||||
msmtp = {
|
||||
enable = true;
|
||||
extraConfig.from = "*@(ktiu.net|t9e.me)";
|
||||
};
|
||||
passwordCommand = "pass mail/arielle.ktiu.net";
|
||||
msmtp.extraConfig.port = "587";
|
||||
passwordCommand = "pass accounts/ktiu-imap";
|
||||
};
|
||||
|
||||
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 my_signature = ${
|
||||
pkgs.writeText
|
||||
"signature.txt"
|
||||
config.accounts.email.accounts.ktiu.signature.text
|
||||
}
|
||||
color status green default
|
||||
'';
|
||||
};
|
||||
mbsync = {
|
||||
enable = true;
|
||||
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";
|
||||
realName = "Kein Schlussstrich Hessen";
|
||||
imap.host = "mail.systemli.org";
|
||||
smtp.host = "mail.systemli.org";
|
||||
smtp.tls.useStartTls = true;
|
||||
notmuch.enable = true;
|
||||
userName = "kein_schlussstrich_hessen@systemli.org";
|
||||
signature.text = ''
|
||||
Kein Schlussstrich Hessen
|
||||
PGP Key: https://keys.openpgp.org/search?q=kein_schlussstrich_hessen@systemli.org
|
||||
'';
|
||||
signature.showSignature = "append";
|
||||
neomutt = {
|
||||
enable = true;
|
||||
# sendMailCommand = "/home/till/.nix-profile/bin/msmtp";
|
||||
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'
|
||||
extraConfig = makeConfig name + ''
|
||||
color status red default
|
||||
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 = {
|
||||
enable = true;
|
||||
create = "maildir";
|
||||
expunge = "both";
|
||||
};
|
||||
msmtp = {
|
||||
enable = true;
|
||||
extraConfig.from = "kein_schlussstrich_hessen@systemli.org";
|
||||
};
|
||||
passwordCommand = "pass other/ksh_systemli";
|
||||
passwordCommand = "pass ksh/systemli";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.msmtp.enable = true;
|
||||
|
||||
programs.mbsync.enable = true;
|
||||
|
||||
programs.notmuch = {
|
||||
enable = true;
|
||||
search.excludeTags = [ "trash" "spam" ];
|
||||
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
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
programs.neomutt = {
|
||||
enable = true;
|
||||
|
||||
vimKeys = true;
|
||||
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; [
|
||||
{
|
||||
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; [
|
||||
|
|
@ -11,6 +11,4 @@
|
|||
yt-dlp
|
||||
zathura
|
||||
];
|
||||
|
||||
xdg.configFile."castget/castget.conf".source = ./castget/castget.conf;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ set splitright
|
|||
set tabstop=2
|
||||
set updatetime=300
|
||||
|
||||
set foldmethod=expr
|
||||
set foldexpr=nvim_treesitter#foldexpr()
|
||||
|
||||
let g:netrw_liststyle = 3
|
||||
let g:netrw_fastbrowse = 0
|
||||
|
||||
|
|
@ -47,9 +50,13 @@ onoremap <silent> al :normal val<return>
|
|||
xnoremap i% GoggV
|
||||
onoremap <silent> i% :normal vi%<return>
|
||||
|
||||
" highlight Normal guibg=NONE
|
||||
|
||||
function CreateNote(title)
|
||||
execute "file ~/notes/" . strftime("%Y-%m-%d") . "_" . join(split(tolower(a:title)), "_") . ".md"
|
||||
execute "set ft=markdown"
|
||||
execute "normal! i" . a:title
|
||||
execute "normal V\<tab>yaml_note\<tab>"
|
||||
execute "VimwikiIndex"
|
||||
execute "VimwikiGoto " . a:title
|
||||
endfunction
|
||||
|
||||
function Diary()
|
||||
execute "VimwikiMakeDiaryNote"
|
||||
endfunction
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
marksman
|
||||
nil
|
||||
typescript-language-server
|
||||
vim-language-server
|
||||
];
|
||||
|
||||
programs.neovim = {
|
||||
|
|
@ -30,8 +31,9 @@
|
|||
|
||||
{
|
||||
plugin = fugitive;
|
||||
type = "lua";
|
||||
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-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('x', '<leader><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('n', '<localleader><tab>', '<Plug>(fzf-maps-n)', { silent = true })
|
||||
vim.api.nvim_set_keymap('x', '<localleader><tab>', '<Plug>(fzf-maps-x)', { 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>o', ':Files<return>', { noremap = true, silent = true })
|
||||
|
|
@ -71,7 +73,7 @@
|
|||
nnoremap <silent> [og :Goyo 80<return>
|
||||
nnoremap <silent> ]og :Goyo!<return>
|
||||
'';
|
||||
}
|
||||
}
|
||||
{
|
||||
plugin = limelight-vim;
|
||||
config = ''
|
||||
|
|
@ -107,11 +109,30 @@
|
|||
vim.lsp.enable('r_language_server')
|
||||
vim.lsp.enable('texlab')
|
||||
vim.lsp.enable('ts_ls')
|
||||
vim.lsp.enable('vimls')
|
||||
|
||||
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;
|
||||
config = ''
|
||||
|
|
@ -149,16 +170,20 @@
|
|||
'';
|
||||
}
|
||||
|
||||
vim-fish
|
||||
{
|
||||
plugin = vim-fish;
|
||||
}
|
||||
|
||||
vim-nix
|
||||
|
||||
{
|
||||
plugin = vim-pandoc;
|
||||
config = ''
|
||||
let g:pandoc#modules#disabled = ["completion", "command", "menu", "completion"]
|
||||
let g:pandoc#modules#disabled = ["completion", "command", "menu"]
|
||||
'';
|
||||
}
|
||||
|
||||
vim-pandoc-syntax
|
||||
vim-repeat
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,18 +8,15 @@ cmp.setup({
|
|||
end,
|
||||
},
|
||||
|
||||
window = {
|
||||
-- completion = cmp.config.window.bordered(),
|
||||
-- documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<Tab>'] = cmp.mapping.confirm({ select = true }),
|
||||
}),
|
||||
mapping = cmp.mapping.preset.insert(
|
||||
{
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<Tab>'] = cmp.mapping.confirm({ select = false }),
|
||||
}
|
||||
),
|
||||
|
||||
sources = cmp.config.sources({
|
||||
{ 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).
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
|
|
@ -66,8 +52,3 @@ cmp.setup.cmdline(':', {
|
|||
|
||||
-- Set up lspconfig.
|
||||
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; [
|
||||
bat
|
||||
castget
|
||||
ghostscript
|
||||
hunspell
|
||||
hunspellDicts.de_DE
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.gnome-keyring.enable = false;
|
||||
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
@ -14,14 +12,12 @@
|
|||
pkgs.passff-host
|
||||
];
|
||||
|
||||
services.gnome-keyring.enable = false;
|
||||
|
||||
services.pass-secret-service = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
pinentry-all
|
||||
];
|
||||
|
||||
xdg.configFile."scdaemon" = {
|
||||
text = ''
|
||||
disable-ccid
|
||||
|
|
@ -29,4 +25,5 @@
|
|||
'';
|
||||
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 = [
|
||||
./minimal.nix
|
||||
|
||||
./devel.nix
|
||||
./firefox.nix
|
||||
./fonts.nix
|
||||
./foot.nix
|
||||
./gnome
|
||||
./media.nix
|
||||
./user-dirs.nix
|
||||
../devel.nix
|
||||
../firefox.nix
|
||||
../fonts.nix
|
||||
# ../foot.nix
|
||||
../media.nix
|
||||
../user-dirs.nix
|
||||
../gpg.nix
|
||||
../password-store.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
|
|
@ -25,8 +26,5 @@
|
|||
zathura
|
||||
];
|
||||
|
||||
xdg.configFile."castget/castget.conf".source = ./castget/castget.conf;
|
||||
|
||||
services.syncthing.enable = true;
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
|
|
@ -10,22 +10,21 @@
|
|||
fastfetch
|
||||
fzf
|
||||
jq
|
||||
nh
|
||||
nix-search
|
||||
progress
|
||||
rename
|
||||
silver-searcher
|
||||
tldr
|
||||
tmux
|
||||
yq
|
||||
];
|
||||
|
||||
imports = [
|
||||
./fish.nix
|
||||
./tmux
|
||||
./password-store.nix
|
||||
./vifm
|
||||
./nvim
|
||||
./gpg.nix
|
||||
./ssh.nix
|
||||
../fish.nix
|
||||
../vifm.nix
|
||||
../nvim
|
||||
../tmux.nix
|
||||
];
|
||||
|
||||
programs.nix-index = {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.tmux = {
|
||||
|
|
@ -22,13 +22,19 @@
|
|||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
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-c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
|
||||
|
||||
# Layouts
|
||||
bind f source-file ~/.config/tmux/vifm.conf
|
||||
bind R source-file ~/.config/tmux/rloft.conf
|
||||
bind J source-file ~/.config/tmux/jekyll.conf
|
||||
bind f new-window -c '#{pane_current_path}' vifm
|
||||
bind R source ${ pkgs.writeText "tmux-rloft" ''
|
||||
split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore;
|
||||
select-pane -l
|
||||
''}
|
||||
|
||||
# Unbind
|
||||
unbind p
|
||||
|
|
@ -36,7 +42,6 @@
|
|||
unbind %
|
||||
|
||||
# Eye candy
|
||||
# set-option -g status-position top
|
||||
set-option -g status-right ""
|
||||
set-option -g status-left ""
|
||||
set-option -g status-justify "centre"
|
||||
|
|
@ -47,9 +52,10 @@
|
|||
|
||||
# Some more specifics
|
||||
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";
|
||||
|
||||
imports = [
|
||||
./hardware
|
||||
./hardware-configuration.nix
|
||||
../system
|
||||
../system/web-server
|
||||
../system/mail-server
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@
|
|||
../../users/guest/system.nix
|
||||
../../system
|
||||
../../system/desktop
|
||||
../../system/desktop/gnome.nix
|
||||
# ../../system/desktop/cast.nix
|
||||
../../system/desktop/ergodox-udev.nix
|
||||
# ../../system/desktop/gnome.nix
|
||||
../../system/desktop/cosmic.nix
|
||||
../../system/desktop/steam.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.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.displayManager = {
|
||||
gdm.enable = true;
|
||||
defaultSession = "gnome";
|
||||
};
|
||||
# services.displayManager = {
|
||||
# gdm.enable = true;
|
||||
# defaultSession = "gnome";
|
||||
# };
|
||||
|
||||
environment.gnome.excludePackages = with pkgs; [
|
||||
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;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
yubikey-personalization
|
||||
keymapp
|
||||
yubikey-personalization
|
||||
yubikey-manager
|
||||
];
|
||||
|
||||
services.udev = {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,15 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, ... }:
|
||||
|
||||
let
|
||||
|
||||
webmailHostName = "webmail.${config.networking.domain}";
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
services.roundcube = {
|
||||
enable = true;
|
||||
hostName = "webmail.ktiu.net";
|
||||
hostName = webmailHostName;
|
||||
extraConfig = ''
|
||||
$config['smtp_host'] = 'tls://%h';
|
||||
$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";
|
||||
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";
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
acceptTerms = true;
|
||||
defaults.email = "till@ktiu.net";
|
||||
certs."${config.networking.domain}" = {
|
||||
domain = config.networking.domain;
|
||||
# domain = config.networking.domain;
|
||||
webroot = "/var/lib/acme/.challenges";
|
||||
group = config.services.nginx.group;
|
||||
extraDomainNames = [ config.networking.fqdn ];
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
extraGroups = [ "networkmanager" ];
|
||||
shell = pkgs.fish;
|
||||
openssh.authorizedKeys.keyFiles = [
|
||||
../till/ssh/till${"@"}nova.pub
|
||||
../till/pubkeys/till${"@"}nova.pub
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,4 +6,9 @@
|
|||
name = "Till";
|
||||
email = "till@ktiu.net";
|
||||
};
|
||||
|
||||
imports = [
|
||||
./ssh.nix
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,11 @@ in
|
|||
identityFile = certs.uni;
|
||||
};
|
||||
|
||||
"arielle arielle.ktiu.net" = {
|
||||
"git.ktiu.net" = {
|
||||
identityFile = certs.personal;
|
||||
};
|
||||
|
||||
"arielle (arielle|git).ktiu.net" = {
|
||||
hostname = "arielle.ktiu.net";
|
||||
user = "till";
|
||||
identityFile = certs.personal;
|
||||
|
|
@ -65,11 +69,11 @@ in
|
|||
identityFile = certs.personal;
|
||||
};
|
||||
|
||||
# "mila" = {
|
||||
# hostname = "mila";
|
||||
# user = "till";
|
||||
# identityFile = certs.personal;
|
||||
# };
|
||||
"mila" = {
|
||||
hostname = "mila";
|
||||
user = "tstraube";
|
||||
identityFile = certs.uni;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
];
|
||||
shell = pkgs.fish;
|
||||
openssh.authorizedKeys.keyFiles = [
|
||||
./ssh/till${"@"}nova.pub
|
||||
./pubkeys/till${"@"}nova.pub
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue