Compare commits
44 commits
main
...
flake-as-m
| Author | SHA1 | Date | |
|---|---|---|---|
| 28e84d34df | |||
| b4b1f4a63f | |||
| e945735fa1 | |||
| d8032cc35d | |||
| c62c8e46f3 | |||
| 030e459540 | |||
| 48f66e6227 | |||
| 686d607155 | |||
| fdd7e1c583 | |||
| bbe8684a57 | |||
| d8ed4fea1c | |||
| 91b5421848 | |||
| bc44678dac | |||
| 3dab1d7d12 | |||
| 5b344eacc5 | |||
| 8d0b874958 | |||
| 193686d59f | |||
| 09014f7af5 | |||
| 809e20f981 | |||
| 49e588d569 | |||
| 2159780ece | |||
| 6f30269e1e | |||
| accc04e214 | |||
| 82115af252 | |||
| 96e5924fb0 | |||
| 312d6d63ef | |||
| 8099faa9ae | |||
| f7fd3a7fe9 | |||
| 438cf6da97 | |||
| 9fdeb99a61 | |||
| 40539ae163 | |||
| d4474ef5ce | |||
| f511922568 | |||
| fb5a44b5f0 | |||
| 648602c92e | |||
| 92cfae9488 | |||
| 26ed81dbee | |||
| 7f9c096123 | |||
| 415e3c1caf | |||
| 120d26b0e4 | |||
| 8d34db82c8 | |||
| a1e9bb892a | |||
| 50d6a79e31 | |||
| 386d889455 |
156 changed files with 2792 additions and 2342 deletions
34
dotfiles/foot/catppuccin-frappe.ini
Executable file
34
dotfiles/foot/catppuccin-frappe.ini
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
[colors]
|
||||
cursor=232634 f2d5cf
|
||||
foreground=c6d0f5
|
||||
background=303446
|
||||
|
||||
regular0=51576d
|
||||
regular1=e78284
|
||||
regular2=a6d189
|
||||
regular3=e5c890
|
||||
regular4=8caaee
|
||||
regular5=f4b8e4
|
||||
regular6=81c8be
|
||||
regular7=b5bfe2
|
||||
|
||||
bright0=626880
|
||||
bright1=e78284
|
||||
bright2=a6d189
|
||||
bright3=e5c890
|
||||
bright4=8caaee
|
||||
bright5=f4b8e4
|
||||
bright6=81c8be
|
||||
bright7=a5adce
|
||||
|
||||
16=ef9f76
|
||||
17=f2d5cf
|
||||
|
||||
selection-foreground=c6d0f5
|
||||
selection-background=4f5369
|
||||
|
||||
search-box-no-match=232634 e78284
|
||||
search-box-match=c6d0f5 414559
|
||||
|
||||
jump-labels=232634 ef9f76
|
||||
urls=8caaee
|
||||
34
dotfiles/foot/catppuccin-latte.ini
Executable file
34
dotfiles/foot/catppuccin-latte.ini
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
[colors-light]
|
||||
cursor=eff1f5 dc8a78
|
||||
foreground=4c4f69
|
||||
background=eff1f5
|
||||
|
||||
regular0=5c5f77
|
||||
regular1=d20f39
|
||||
regular2=40a02b
|
||||
regular3=df8e1d
|
||||
regular4=1e66f5
|
||||
regular5=ea76cb
|
||||
regular6=179299
|
||||
regular7=acb0be
|
||||
|
||||
bright0=6c6f85
|
||||
bright1=d20f39
|
||||
bright2=40a02b
|
||||
bright3=df8e1d
|
||||
bright4=1e66f5
|
||||
bright5=ea76cb
|
||||
bright6=179299
|
||||
bright7=bcc0cc
|
||||
|
||||
16=fe640b
|
||||
17=dc8a78
|
||||
|
||||
selection-foreground=4c4f69
|
||||
selection-background=ccced7
|
||||
|
||||
search-box-no-match=dce0e8 d20f39
|
||||
search-box-match=4c4f69 ccd0da
|
||||
|
||||
jump-labels=dce0e8 fe640b
|
||||
urls=1e66f5
|
||||
34
dotfiles/foot/catppuccin-macchiato.ini
Executable file
34
dotfiles/foot/catppuccin-macchiato.ini
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
[colors]
|
||||
cursor=181926 f4dbd6
|
||||
foreground=cad3f5
|
||||
background=24273a
|
||||
|
||||
regular0=494d64
|
||||
regular1=ed8796
|
||||
regular2=a6da95
|
||||
regular3=eed49f
|
||||
regular4=8aadf4
|
||||
regular5=f5bde6
|
||||
regular6=8bd5ca
|
||||
regular7=b8c0e0
|
||||
|
||||
bright0=5b6078
|
||||
bright1=ed8796
|
||||
bright2=a6da95
|
||||
bright3=eed49f
|
||||
bright4=8aadf4
|
||||
bright5=f5bde6
|
||||
bright6=8bd5ca
|
||||
bright7=a5adcb
|
||||
|
||||
16=f5a97f
|
||||
17=f4dbd6
|
||||
|
||||
selection-foreground=cad3f5
|
||||
selection-background=454a5f
|
||||
|
||||
search-box-no-match=181926 ed8796
|
||||
search-box-match=cad3f5 363a4f
|
||||
|
||||
jump-labels=181926 f5a97f
|
||||
urls=8aadf4
|
||||
34
dotfiles/foot/catppuccin-mocha.ini
Executable file
34
dotfiles/foot/catppuccin-mocha.ini
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
[colors-dark]
|
||||
cursor=11111b f5e0dc
|
||||
foreground=cdd6f4
|
||||
background=1e1e2e
|
||||
|
||||
regular0=45475a
|
||||
regular1=f38ba8
|
||||
regular2=a6e3a1
|
||||
regular3=f9e2af
|
||||
regular4=89b4fa
|
||||
regular5=f5c2e7
|
||||
regular6=94e2d5
|
||||
regular7=bac2de
|
||||
|
||||
bright0=585b70
|
||||
bright1=f38ba8
|
||||
bright2=a6e3a1
|
||||
bright3=f9e2af
|
||||
bright4=89b4fa
|
||||
bright5=f5c2e7
|
||||
bright6=94e2d5
|
||||
bright7=a6adc8
|
||||
|
||||
16=fab387
|
||||
17=f5e0dc
|
||||
|
||||
selection-foreground=cdd6f4
|
||||
selection-background=414356
|
||||
|
||||
search-box-no-match=11111b f38ba8
|
||||
search-box-match=cdd6f4 313244
|
||||
|
||||
jump-labels=11111b fab387
|
||||
urls=89b4fa
|
||||
25
dotfiles/foot/dank-colors.ini
Executable file
25
dotfiles/foot/dank-colors.ini
Executable file
|
|
@ -0,0 +1,25 @@
|
|||
[colors-dark]
|
||||
foreground=e4e2e1
|
||||
background=131313
|
||||
selection-foreground=e4e2e1
|
||||
selection-background=11201d
|
||||
cursor = 131313 b9cac5
|
||||
|
||||
regular0=131313
|
||||
regular1=e89268
|
||||
regular2=65ca6a
|
||||
regular3=fcf071
|
||||
regular4=acbfba
|
||||
regular5=4f5d59
|
||||
regular6=b9cac5
|
||||
regular7=c7d4d0
|
||||
bright0=798380
|
||||
bright1=ffbe9f
|
||||
bright2=9df2a2
|
||||
bright3=fff7a5
|
||||
bright4=ceded9
|
||||
bright5=effffa
|
||||
bright6=f5fffc
|
||||
bright7=f8fffd
|
||||
|
||||
dim-blend-towards=black
|
||||
20
dotfiles/foot/foot.ini
Executable file
20
dotfiles/foot/foot.ini
Executable file
|
|
@ -0,0 +1,20 @@
|
|||
[main]
|
||||
font=JetBrains Mono:size=12
|
||||
pad=15x15
|
||||
include=~/.config/foot/paper-color.ini
|
||||
include=~/.config/foot/matugen.ini
|
||||
|
||||
[csd]
|
||||
size=0
|
||||
|
||||
[cursor]
|
||||
blink=true
|
||||
style=beam
|
||||
|
||||
[key-bindings]
|
||||
show-urls-copy=Control+Shift+y
|
||||
show-urls-launch=Control+Shift+g
|
||||
color-theme-toggle=Control+comma
|
||||
|
||||
[mouse]
|
||||
hide-when-typing=yes
|
||||
2
dotfiles/foot/matugen.ini
Executable file
2
dotfiles/foot/matugen.ini
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
initial-color-theme=dark
|
||||
|
||||
49
dotfiles/foot/paper-color.ini
Executable file
49
dotfiles/foot/paper-color.ini
Executable file
|
|
@ -0,0 +1,49 @@
|
|||
# -*- conf -*-
|
||||
# PaperColorDark
|
||||
# Palette based on https://github.com/NLKNguyen/papercolor-theme
|
||||
|
||||
[colors-dark]
|
||||
cursor=1c1c1c eeeeee
|
||||
background=1c1c1c
|
||||
foreground=eeeeee
|
||||
regular0=1c1c1c # black
|
||||
regular1=af005f # red
|
||||
regular2=5faf00 # green
|
||||
regular3=d7af5f # yellow
|
||||
regular4=5fafd7 # blue
|
||||
regular5=808080 # magenta
|
||||
regular6=d7875f # cyan
|
||||
regular7=d0d0d0 # white
|
||||
bright0=bcbcbc # bright black
|
||||
bright1=5faf5f # bright red
|
||||
bright2=afd700 # bright green
|
||||
bright3=af87d7 # bright yellow
|
||||
bright4=ffaf00 # bright blue
|
||||
bright5=ff5faf # bright magenta
|
||||
bright6=00afaf # bright cyan
|
||||
bright7=5f8787 # bright white
|
||||
# selection-foreground=1c1c1c
|
||||
# selection-background=af87d7
|
||||
|
||||
[colors-light]
|
||||
cursor=eeeeee 444444
|
||||
background=eeeeee
|
||||
foreground=444444
|
||||
regular0=eeeeee # black
|
||||
regular1=af0000 # red
|
||||
regular2=008700 # green
|
||||
regular3=5f8700 # yellow
|
||||
regular4=0087af # blue
|
||||
regular5=878787 # magenta
|
||||
regular6=005f87 # cyan
|
||||
regular7=764e37 # white
|
||||
bright0=bcbcbc # bright black
|
||||
bright1=d70000 # bright red
|
||||
bright2=d70087 # bright green
|
||||
bright3=8700af # bright yellow
|
||||
bright4=d75f00 # bright blue
|
||||
bright5=d75f00 # bright magenta
|
||||
bright6=4c7a5d # bright cyan
|
||||
bright7=005faf # bright white
|
||||
# selection-foreground=eeeeee
|
||||
# selection-background=0087af
|
||||
16
dotfiles/neomutt/bindings.neomuttrc
Executable file
16
dotfiles/neomutt/bindings.neomuttrc
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
# compose
|
||||
|
||||
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"
|
||||
|
||||
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"
|
||||
|
||||
27
dotfiles/neomutt/colors.neomuttrc
Executable file
27
dotfiles/neomutt/colors.neomuttrc
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
# color index_flags brightmagenta default '.*'
|
||||
# color index_date cyan default
|
||||
color header brightblack default ".*"
|
||||
color header brightgreen default "^(Subject)"
|
||||
color header yellow default "^(From|To|CC|BCC)"
|
||||
color header blue default "^Date"
|
||||
color message cyan default
|
||||
color error red default
|
||||
color tilde black default
|
||||
color normal default default
|
||||
color attachment brightblack default
|
||||
color search black yellow
|
||||
color quoted green default
|
||||
color quoted1 blue default
|
||||
color quoted2 cyan default
|
||||
color quoted3 yellow default
|
||||
color quoted4 red default
|
||||
color quoted5 brightred default
|
||||
color signature cyan default
|
||||
color underline black default
|
||||
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)"
|
||||
color body green default "(Good signature)"
|
||||
color body brightblack default "^gpg: .*"
|
||||
color body green default "^gpg: Good signature .*"
|
||||
color body red default "^gpg: BAD signature from.*"
|
||||
43
dotfiles/neomutt/config.neomuttrc
Executable file
43
dotfiles/neomutt/config.neomuttrc
Executable file
|
|
@ -0,0 +1,43 @@
|
|||
# External
|
||||
|
||||
set my_download_folder = ~/tmp
|
||||
|
||||
# Status bar
|
||||
|
||||
set status_chars = "✔↻٪A"
|
||||
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"
|
||||
|
||||
# Pager view
|
||||
|
||||
set pager_index_lines = 10
|
||||
set pager_context = 3
|
||||
set pager_stop
|
||||
set smart_wrap
|
||||
set menu_scroll
|
||||
set tilde
|
||||
unset markers
|
||||
ignore *
|
||||
unignore from: to: cc: bcc: date: subject:
|
||||
unhdr_order *
|
||||
hdr_order from: to: cc: bcc: date: subject:
|
||||
alternative_order text/plain text/enriched text/html
|
||||
auto_view text/html
|
||||
|
||||
# Attachments
|
||||
|
||||
set rfc2047_parameters
|
||||
set attach_save_dir = $my_download_folder
|
||||
|
||||
# Alias
|
||||
|
||||
set alias_file = ~/.local/share/neomutt/aliases.neomuttrc
|
||||
source $alias_file
|
||||
|
||||
source colors.neomuttrc
|
||||
203
dotfiles/niri/config.kdl
Executable file
203
dotfiles/niri/config.kdl
Executable file
|
|
@ -0,0 +1,203 @@
|
|||
/-output "eDP-1" {
|
||||
mode "1920x1080@120.030"
|
||||
scale 2
|
||||
transform "normal"
|
||||
position x=1280 y=0
|
||||
}
|
||||
|
||||
layout {
|
||||
preset-column-widths {
|
||||
proportion 0.381966
|
||||
proportion 0.5
|
||||
proportion 0.618034
|
||||
}
|
||||
default-column-width { proportion 0.5; }
|
||||
}
|
||||
|
||||
environment {
|
||||
TERMINAL "foot"
|
||||
XDG_CURRENT_DESKTOP "niri"
|
||||
}
|
||||
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
|
||||
prefer-no-csd
|
||||
|
||||
screenshot-path "~/media/img/screenshots/screenshot_%Y-%m-%d_%H-%M-%S.png"
|
||||
|
||||
// debug {
|
||||
// honor-xdg-activation-with-invalid-serial
|
||||
// }
|
||||
|
||||
recent-windows {
|
||||
binds {
|
||||
Super+Tab { next-window scope="output"; }
|
||||
Super+Shift+Tab { previous-window scope="output"; }
|
||||
Super+grave { next-window filter="app-id"; }
|
||||
Super+Shift+grave { previous-window filter="app-id"; }
|
||||
}
|
||||
}
|
||||
|
||||
animations {
|
||||
|
||||
workspace-switch {
|
||||
spring damping-ratio=0.9 stiffness=2000 epsilon=0.001
|
||||
}
|
||||
|
||||
window-open {
|
||||
duration-ms 50
|
||||
curve "ease-out-expo"
|
||||
}
|
||||
|
||||
window-close {
|
||||
duration-ms 50
|
||||
curve "ease-out-quad"
|
||||
}
|
||||
|
||||
horizontal-view-movement {
|
||||
spring damping-ratio=0.9 stiffness=2000 epsilon=0.001
|
||||
}
|
||||
|
||||
window-movement {
|
||||
// spring damping-ratio=0.75 stiffness=323 epsilon=0.0001
|
||||
spring damping-ratio=0.9 stiffness=2000 epsilon=0.001
|
||||
}
|
||||
|
||||
window-resize {
|
||||
spring damping-ratio=0.9 stiffness=2000 epsilon=0.001
|
||||
}
|
||||
|
||||
config-notification-open-close {
|
||||
spring damping-ratio=0.9 stiffness=2000 epsilon=0.001
|
||||
}
|
||||
|
||||
screenshot-ui-open {
|
||||
duration-ms 50
|
||||
curve "ease-out-quad"
|
||||
}
|
||||
|
||||
overview-open-close {
|
||||
spring damping-ratio=0.9 stiffness=2000 epsilon=0.001
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
layout "us,de,th"
|
||||
variant "altgr-intl"
|
||||
options "grp:alt_space_toggle"
|
||||
}
|
||||
numlock
|
||||
}
|
||||
|
||||
touchpad {
|
||||
tap
|
||||
natural-scroll
|
||||
click-method "clickfinger"
|
||||
}
|
||||
|
||||
trackball {
|
||||
natural-scroll
|
||||
accel-speed -0.3
|
||||
}
|
||||
|
||||
mouse {
|
||||
}
|
||||
|
||||
trackpoint {
|
||||
}
|
||||
|
||||
// warp-mouse-to-focus
|
||||
focus-follows-mouse max-scroll-amount="0%"
|
||||
}
|
||||
|
||||
layer-rule {
|
||||
match namespace="^quickshell$"
|
||||
place-within-backdrop false
|
||||
}
|
||||
|
||||
layer-rule {
|
||||
match namespace="dms:blurwallpaper"
|
||||
place-within-backdrop true
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
default-column-width {}
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"^org\.gnome\."#
|
||||
draw-border-with-background false
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"^gnome-control-center$"#
|
||||
match app-id=r#"^pavucontrol$"#
|
||||
match app-id=r#"^nm-connection-editor$"#
|
||||
default-column-width { proportion 0.5; }
|
||||
open-floating false
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"^gnome-calculator$"#
|
||||
match app-id=r#"^galculator$"#
|
||||
match app-id=r#"^blueman-manager$"#
|
||||
match app-id=r#"^org\.gnome\.Nautilus$"#
|
||||
match app-id=r#"^xdg-desktop-portal$"#
|
||||
open-floating true
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"^steam$"# title=r#"^notificationtoasts_\d+_desktop$"#
|
||||
default-floating-position x=10 y=10 relative-to="bottom-right"
|
||||
open-focused false
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
match app-id="Alacritty"
|
||||
match app-id="zen"
|
||||
match app-id="com.mitchellh.ghostty"
|
||||
match app-id="kitty"
|
||||
draw-border-with-background false
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||
match app-id="zoom"
|
||||
open-floating true
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id="firefox"
|
||||
default-column-width {}
|
||||
open-on-workspace "browser"
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"org.quickshell$"#
|
||||
open-floating true
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id=r#"org.quickshell$"# title="^Settings$"
|
||||
open-floating false
|
||||
}
|
||||
|
||||
// include optional=true "user-config.kdl"
|
||||
include "user-config.kdl"
|
||||
|
||||
|
||||
// Include dms files
|
||||
include "dms/colors.kdl"
|
||||
include "dms/layout.kdl"
|
||||
include "dms/alttab.kdl"
|
||||
include "dms/outputs.kdl"
|
||||
include "dms/cursor.kdl"
|
||||
include "dms/binds.kdl"
|
||||
10
dotfiles/niri/dms/alttab.kdl
Executable file
10
dotfiles/niri/dms/alttab.kdl
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
recent-windows {
|
||||
highlight {
|
||||
corner-radius 9
|
||||
}
|
||||
}
|
||||
115
dotfiles/niri/dms/binds.kdl
Executable file
115
dotfiles/niri/dms/binds.kdl
Executable file
|
|
@ -0,0 +1,115 @@
|
|||
binds {
|
||||
Ctrl+Alt+Delete hotkey-overlay-title="Task Manager" { spawn "dms" "ipc" "call" "processlist" "focusOrToggle"; }
|
||||
Ctrl+XF86AudioLowerVolume allow-when-locked=true { spawn "dms" "ipc" "call" "mpris" "decrement" "3"; }
|
||||
Ctrl+XF86AudioRaiseVolume allow-when-locked=true { spawn "dms" "ipc" "call" "mpris" "increment" "3"; }
|
||||
Mod+Backspace hotkey-overlay-title="Lock Screen" { spawn "dms" "ipc" "call" "lock" "lock"; }
|
||||
Mod+Comma hotkey-overlay-title="Settings" { spawn "dms" "ipc" "call" "settings" "focusOrToggle"; }
|
||||
Mod+Ctrl+R hotkey-overlay-title="Rename Workspace" { spawn "dms" "ipc" "call" "workspace-rename" "open"; }
|
||||
Mod+N hotkey-overlay-title="Notification Center" { spawn "dms" "ipc" "call" "notifications" "toggle"; }
|
||||
Mod+O hotkey-overlay-title="Show dash overview" { spawn "dms" "ipc" "call" "dash" "toggle" ""; }
|
||||
Mod+P hotkey-overlay-title="Show dash music" { spawn "dms" "ipc" "call" "dash" "toggle" "media"; }
|
||||
Mod+Shift+W hotkey-overlay-title="Create window rule" { spawn "dms" "ipc" "call" "window-rules" "toggle"; }
|
||||
Mod+Slash hotkey-overlay-title="Application Launcher" { spawn "dms" "ipc" "call" "spotlight" "toggle"; }
|
||||
Mod+T hotkey-overlay-title="Task Manager" { spawn "dms" "ipc" "call" "processlist" "focusOrToggle"; }
|
||||
Mod+W hotkey-overlay-title="Show dash weather" { spawn "dms" "ipc" "call" "dash" "toggle" "weather"; }
|
||||
Mod+Y hotkey-overlay-title="Browse Wallpapers" { spawn "dms" "ipc" "call" "dankdash" "wallpaper"; }
|
||||
Super+X hotkey-overlay-title="Power Menu: Toggle" { spawn "dms" "ipc" "call" "powermenu" "toggle"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "decrement" "3"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "micmute"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "mute"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn "dms" "ipc" "call" "mpris" "next"; }
|
||||
XF86AudioPause allow-when-locked=true { spawn "dms" "ipc" "call" "mpris" "playPause"; }
|
||||
XF86AudioPlay allow-when-locked=true { spawn "dms" "ipc" "call" "mpris" "playPause"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn "dms" "ipc" "call" "mpris" "previous"; }
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "increment" "3"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "dms" "ipc" "call" "brightness" "decrement" "5" ""; }
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "dms" "ipc" "call" "brightness" "increment" "5" ""; }
|
||||
Mod+1 { focus-workspace 1; }
|
||||
Mod+2 { focus-workspace 2; }
|
||||
Mod+3 { focus-workspace 3; }
|
||||
Mod+4 { focus-workspace 4; }
|
||||
Mod+5 { focus-workspace 5; }
|
||||
Mod+6 { focus-workspace 6; }
|
||||
Mod+7 { focus-workspace 7; }
|
||||
Mod+8 { focus-workspace 8; }
|
||||
Mod+9 { focus-workspace 9; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
Mod+D { focus-workspace-down; }
|
||||
Mod+J { focus-window-or-workspace-down; }
|
||||
Mod+K { focus-window-or-workspace-up; }
|
||||
Mod+Shift+1 { move-column-to-workspace 1; }
|
||||
Mod+Shift+2 { move-column-to-workspace 2; }
|
||||
Mod+Shift+3 { move-column-to-workspace 3; }
|
||||
Mod+Shift+4 { move-column-to-workspace 4; }
|
||||
Mod+Shift+5 { move-column-to-workspace 5; }
|
||||
Mod+Shift+6 { move-column-to-workspace 6; }
|
||||
Mod+Shift+7 { move-column-to-workspace 7; }
|
||||
Mod+Shift+8 { move-column-to-workspace 8; }
|
||||
Mod+Shift+9 { move-column-to-workspace 9; }
|
||||
Mod+Shift+D { move-workspace-down; }
|
||||
Mod+Shift+J { move-window-down-or-to-workspace-down; }
|
||||
Mod+Shift+K { move-window-up-or-to-workspace-up; }
|
||||
Mod+Shift+U { move-workspace-up; }
|
||||
Mod+U { focus-workspace-up; }
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+B hotkey-overlay-title="Open Browser" { spawn "nirius" "focus-or-spawn" "-a" "^firefox$" "firefox"; }
|
||||
Mod+C { center-column; }
|
||||
Mod+Ctrl+C { center-visible-columns; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
Mod+Ctrl+H { focus-monitor-left; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+J { focus-monitor-down; }
|
||||
Mod+Ctrl+K { focus-monitor-up; }
|
||||
Mod+Ctrl+L { focus-monitor-right; }
|
||||
Mod+Ctrl+Shift+H { move-column-to-monitor-left; }
|
||||
Mod+Ctrl+Shift+J { move-column-to-monitor-down; }
|
||||
Mod+Ctrl+Shift+K { move-column-to-monitor-up; }
|
||||
Mod+Ctrl+Shift+L { move-column-to-monitor-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
Mod+Escape { fullscreen-window; }
|
||||
Mod+F hotkey-overlay-title="Open Files" { spawn "nirius" "focus-or-spawn" "-t" "^vifm" "foot" "--" "-e" "vifm"; }
|
||||
Mod+G { switch-focus-between-floating-and-tiling; }
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+L { focus-column-right; }
|
||||
Mod+M hotkey-overlay-title="Open Mail" { spawn "nirius" "focus-or-spawn" "-t" "^neomutt" "foot" "--" "-e" "neomutt"; }
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Print { screenshot-window; }
|
||||
Mod+Q repeat=false { close-window; }
|
||||
Mod+R { switch-preset-column-width; }
|
||||
Mod+Shift+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+Shift+BracketRight { consume-or-expel-window-right; }
|
||||
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||
Mod+Shift+G { toggle-window-floating; }
|
||||
Mod+Shift+H { move-column-left; }
|
||||
Mod+Shift+L { move-column-right; }
|
||||
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||
Mod+Shift+Period { expel-window-from-column; }
|
||||
Mod+Shift+R { expand-column-to-available-width; }
|
||||
Mod+Shift+T { toggle-column-tabbed-display; }
|
||||
Mod+Shift+V { reset-window-height; }
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Shift+Z { maximize-window-to-edges; }
|
||||
Mod+V { switch-preset-window-height; }
|
||||
Mod+WheelScrollLeft { focus-column-left; }
|
||||
Mod+WheelScrollRight { focus-column-right; }
|
||||
Mod+XF86Launch1 { screenshot-window; }
|
||||
Mod+Z { maximize-column; }
|
||||
Mod+Ctrl+P { power-off-monitors; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Ctrl+XF86Launch1 { screenshot-screen; }
|
||||
Print { screenshot; }
|
||||
XF86Launch1 { screenshot; }
|
||||
Mod+Shift+Q { quit; }
|
||||
Mod+Return hotkey-overlay-title="Open Terminal" { spawn "foot"; }
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
Mod+Space repeat=false { toggle-overview; }
|
||||
}
|
||||
39
dotfiles/niri/dms/colors.kdl
Executable file
39
dotfiles/niri/dms/colors.kdl
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
// ! Auto-generated file. Do not edit directly.
|
||||
// Remove `include "dms/colors.kdl"` from your config to override.
|
||||
|
||||
layout {
|
||||
background-color "transparent"
|
||||
|
||||
focus-ring {
|
||||
active-color "#b9cac5"
|
||||
inactive-color "#8c9290"
|
||||
urgent-color "#ffb4ab"
|
||||
}
|
||||
|
||||
border {
|
||||
active-color "#b9cac5"
|
||||
inactive-color "#8c9290"
|
||||
urgent-color "#ffb4ab"
|
||||
}
|
||||
|
||||
shadow {
|
||||
color "#00000070"
|
||||
}
|
||||
|
||||
tab-indicator {
|
||||
active-color "#b9cac5"
|
||||
inactive-color "#8c9290"
|
||||
urgent-color "#ffb4ab"
|
||||
}
|
||||
|
||||
insert-hint {
|
||||
color "#b9cac580"
|
||||
}
|
||||
}
|
||||
|
||||
recent-windows {
|
||||
highlight {
|
||||
active-color "#11201d"
|
||||
urgent-color "#ffb4ab"
|
||||
}
|
||||
}
|
||||
11
dotfiles/niri/dms/cursor.kdl
Executable file
11
dotfiles/niri/dms/cursor.kdl
Executable file
|
|
@ -0,0 +1,11 @@
|
|||
// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
cursor {
|
||||
xcursor-theme "phinger-cursors-dark"
|
||||
xcursor-size 24
|
||||
hide-when-typing
|
||||
hide-after-inactive-ms 5000
|
||||
}
|
||||
22
dotfiles/niri/dms/layout.kdl
Executable file
22
dotfiles/niri/dms/layout.kdl
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
layout {
|
||||
gaps 6
|
||||
|
||||
border {
|
||||
width 2
|
||||
}
|
||||
|
||||
focus-ring {
|
||||
width 2
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
geometry-corner-radius 9
|
||||
clip-to-geometry true
|
||||
tiled-state true
|
||||
draw-border-with-background false
|
||||
}
|
||||
20
dotfiles/niri/dms/outputs.kdl
Executable file
20
dotfiles/niri/dms/outputs.kdl
Executable file
|
|
@ -0,0 +1,20 @@
|
|||
// Auto-generated by DMS - do not edit manually
|
||||
|
||||
output "DP-3" {
|
||||
mode "3840x2160@59.997"
|
||||
scale 1.75
|
||||
position x=0 y=0
|
||||
}
|
||||
|
||||
output "DP-1" {
|
||||
mode "3840x2160@59.997"
|
||||
scale 1.75
|
||||
position x=0 y=0
|
||||
}
|
||||
|
||||
output "eDP-1" {
|
||||
mode "1920x1200@60.026"
|
||||
scale 1.25
|
||||
position x=2194 y=274
|
||||
}
|
||||
|
||||
0
dotfiles/niri/dms/windowrules.kdl
Executable file
0
dotfiles/niri/dms/windowrules.kdl
Executable file
9
dotfiles/niri/dms/wpblur.kdl
Executable file
9
dotfiles/niri/dms/wpblur.kdl
Executable file
|
|
@ -0,0 +1,9 @@
|
|||
// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
layer-rule {
|
||||
match namespace="dms:blurwallpaper"
|
||||
place-within-backdrop true
|
||||
}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore
|
||||
split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore;
|
||||
select-pane -l
|
||||
45
dotfiles/tmux/tmux.conf
Normal file
45
dotfiles/tmux/tmux.conf
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# Key bindings
|
||||
bind C-l next-window
|
||||
bind C-h previous-window
|
||||
bind C-b last-window
|
||||
bind n new-window
|
||||
bind C-n new-window -c '#{pane_current_path}'
|
||||
bind v split-window -h
|
||||
bind C-v split-window -hc '#{pane_current_path}'
|
||||
bind s split-window -v
|
||||
bind C-s split-window -vc '#{pane_current_path}'
|
||||
bind h select-pane -L
|
||||
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 new-window -c '#{pane_current_path}' vifm
|
||||
bind R source rloft.conf
|
||||
|
||||
# Unbind
|
||||
unbind p
|
||||
unbind '"'
|
||||
unbind %
|
||||
|
||||
# Eye candy
|
||||
set-option -g status-right ""
|
||||
set-option -g status-left ""
|
||||
set-option -g status-justify "centre"
|
||||
# set-option -g status-style fg=magenta
|
||||
# set-option -g pane-border-style fg=brightwhite
|
||||
set-option -g pane-active-border-style fg=magenta
|
||||
# set-option -g window-status-current-style bg=brightwhite
|
||||
|
||||
# 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"
|
||||
101
flake.lock
generated
101
flake.lock
generated
|
|
@ -1,24 +1,25 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-parts": {
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1776052978,
|
||||
"narHash": "sha256-WR0Svwg/JreBNW006qjHET6RRRmmjWCMfrkS5JmDZK8=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "6c0e7f01d9315f4806a187c2ec58d0f3b6961876",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
|
|
@ -28,11 +29,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767910483,
|
||||
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
|
||||
"lastModified": 1775425411,
|
||||
"narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
|
||||
"rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -42,13 +43,33 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager-unstable": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1776046499,
|
||||
"narHash": "sha256-Wzc4nn07/0RL21ypPHRzNDQZcjhIC8LaYo7QJQjM5T4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "287f84846c1eb3b72c986f5f6bebcff0bd67440d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1768028080,
|
||||
"narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=",
|
||||
"lastModified": 1775811116,
|
||||
"narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d03088749a110d52a4739348f39a63f84bb0be14",
|
||||
"rev": "54170c54449ea4d6725efd30d719c5e505f1c10e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -58,46 +79,50 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1768127708,
|
||||
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
|
||||
"owner": "nixos",
|
||||
"lastModified": 1775710090,
|
||||
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
|
||||
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"quickshell": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768226540,
|
||||
"narHash": "sha256-7ITnaEIsloaaOpqxIEYjUvodWz3VcT0ERi0NiZx7U/g=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nur",
|
||||
"rev": "b87f89e9dc56296f29fb3caa93f7fb6058f8c5f3",
|
||||
"type": "github"
|
||||
"lastModified": 1775720097,
|
||||
"narHash": "sha256-p+vqkCuFfVNyQBo370wr6MebNUvz55RZiC0m8YKUhvQ=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "d4c92973b53d9fa34cc110d3b974eb6bde5b3027",
|
||||
"revCount": 800,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nur",
|
||||
"type": "github"
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"firefox-addons": "firefox-addons",
|
||||
"home-manager": "home-manager",
|
||||
"home-manager-unstable": "home-manager-unstable",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nur": "nur"
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"quickshell": "quickshell"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
235
flake.nix
235
flake.nix
|
|
@ -2,150 +2,137 @@
|
|||
description = "Complete system and home config";
|
||||
|
||||
inputs = {
|
||||
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
home-manager.url = "github:nix-community/home-manager/release-25.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
nur.url = "github:nix-community/nur";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, ... }@inputs: {
|
||||
home-manager-unstable = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/quickshell/quickshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, home-manager-unstable, ... }@inputs: {
|
||||
|
||||
nixosConfigurations = {
|
||||
|
||||
nova = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
{
|
||||
networking.hostName = "nova";
|
||||
}
|
||||
./system
|
||||
./system/alt.nix
|
||||
./system/btrbk.nix
|
||||
./system/cast.nix
|
||||
./system/desktop.nix
|
||||
./system/ergodox.nix
|
||||
./system/gnome.nix
|
||||
./system/guest.nix
|
||||
./system/hardware/nova.nix
|
||||
./system/plasma.nix
|
||||
./system/steam.nix
|
||||
./system/yubikey.nix
|
||||
# ./system/distrobox.nix
|
||||
];
|
||||
};
|
||||
|
||||
tron = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
{
|
||||
networking.hostName = "tron";
|
||||
}
|
||||
./system
|
||||
./system/desktop.nix
|
||||
./system/hardware/tron.nix
|
||||
./system/gnome.nix
|
||||
./system/btrbk.nix
|
||||
./system/yubikey.nix
|
||||
];
|
||||
};
|
||||
|
||||
romulus = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
{
|
||||
networking.hostName = "romulus";
|
||||
environment.systemPackages = [
|
||||
nixpkgs.wl-clipboard
|
||||
];
|
||||
programs.sway.enable = true;
|
||||
security.rtkit.enable = true;
|
||||
}
|
||||
./system
|
||||
./system/desktop.nix
|
||||
./system/hardware/romulus.nix
|
||||
];
|
||||
};
|
||||
|
||||
arielle = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
{
|
||||
networking.hostName = "arielle";
|
||||
networking.domain = "ktiu.net";
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "/dev/sda";
|
||||
./hosts/arielle
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager = {
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users = {
|
||||
|
||||
till = {
|
||||
imports = [
|
||||
./home/minimal
|
||||
./users/till/home.nix
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
./system/hardware/arielle.nix
|
||||
./system
|
||||
./system/web-server
|
||||
{
|
||||
|
||||
#infrastructure
|
||||
./system/web-server/mail
|
||||
./system/web-server/radicale.nix
|
||||
./system/web-server/outline.nix
|
||||
./system/web-server/forgejo.nix
|
||||
# ./system/web-server/jenkins.nix
|
||||
# firefox-addons.config.allowUnfreePredicate = pkg:
|
||||
# builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
# "tampermonkey"
|
||||
# ];
|
||||
|
||||
# web hosting
|
||||
./system/web-server/oopsidentify.nix
|
||||
./system/web-server/fundkorb-button.nix
|
||||
./system/web-server/ksh-map.nix
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
"outline"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
homer = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/homer
|
||||
];
|
||||
};
|
||||
|
||||
mila = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/mila
|
||||
];
|
||||
};
|
||||
|
||||
nova = nixpkgs-unstable.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/nova
|
||||
home-manager-unstable.nixosModules.home-manager {
|
||||
home-manager = {
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users = {
|
||||
|
||||
till = {
|
||||
imports = [
|
||||
./home/desktop-full
|
||||
./users/till/home.nix
|
||||
];
|
||||
};
|
||||
|
||||
alt = {
|
||||
imports = [
|
||||
./home/desktop-slim
|
||||
./users/alt/home.nix
|
||||
];
|
||||
};
|
||||
|
||||
guest = {
|
||||
imports = [
|
||||
./home/desktop-slim
|
||||
./users/guest/home.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
networking.hostName = "homer";
|
||||
|
||||
# firefox-addons.config.allowUnfreePredicate = pkg:
|
||||
# builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
# "tampermonkey"
|
||||
# ];
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
"corefonts"
|
||||
"textfonts"
|
||||
"keymapp"
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
# "tampermonkey"
|
||||
];
|
||||
}
|
||||
./system
|
||||
./system/desktop.nix
|
||||
./system/hardware/homer.nix
|
||||
./system/gnome.nix
|
||||
./system/steam.nix
|
||||
./system/remote-desktop.nix
|
||||
./system/media.nix
|
||||
./system/guest.nix
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
till = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default;
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./home
|
||||
];
|
||||
};
|
||||
"till@romulus" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default;
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./home/slim-desktop.nix
|
||||
];
|
||||
};
|
||||
"till@arielle" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./home/on-server.nix
|
||||
];
|
||||
};
|
||||
alt = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default;
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./home/alt.nix
|
||||
];
|
||||
};
|
||||
guest = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default;
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./home/guest.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
|||
73
home/alt.nix
73
home/alt.nix
|
|
@ -1,73 +0,0 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
home.username = "alt";
|
||||
home.homeDirectory = "/home/alt";
|
||||
home.stateVersion = "22.11";
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = (_: true);
|
||||
};
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
xdg.userDirs = {
|
||||
enable = true;
|
||||
createDirectories = true;
|
||||
download = "${config.home.homeDirectory}/tmp";
|
||||
music = "${config.home.homeDirectory}/media/music";
|
||||
pictures = "${config.home.homeDirectory}/media/img";
|
||||
videos = "${config.home.homeDirectory}/media/vid";
|
||||
documents = "${config.home.homeDirectory}/misc";
|
||||
templates = "${config.xdg.dataHome}/templates";
|
||||
};
|
||||
|
||||
home.file.".npmrc".text = ''
|
||||
prefix = ${config.xdg.dataHome}/npm/packages
|
||||
'';
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fzf
|
||||
silver-searcher
|
||||
tmux
|
||||
nodejs
|
||||
wl-clipboard
|
||||
qbittorrent
|
||||
vlc
|
||||
# mullvad-vpn
|
||||
ffmpeg
|
||||
libnotify
|
||||
];
|
||||
|
||||
imports = [
|
||||
./gnome
|
||||
./firefox.nix
|
||||
./foot.nix
|
||||
./fish.nix
|
||||
./vifm
|
||||
./tmux
|
||||
./nvim
|
||||
];
|
||||
|
||||
programs.nix-index = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Till";
|
||||
userEmail = "till@ktiu.net";
|
||||
lfs = {
|
||||
enable = true;
|
||||
};
|
||||
extraConfig = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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,58 +0,0 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
|
||||
# messenger
|
||||
signal-desktop
|
||||
telegram-desktop
|
||||
|
||||
# office
|
||||
xournalpp
|
||||
pdfpc
|
||||
|
||||
# text publishing
|
||||
libreoffice
|
||||
jdk
|
||||
poppler-utils
|
||||
zotero
|
||||
lorem
|
||||
typst
|
||||
|
||||
# graphics
|
||||
gimp
|
||||
inkscape
|
||||
|
||||
# web
|
||||
chromium
|
||||
nyxt
|
||||
|
||||
# media
|
||||
anki-bin
|
||||
qbittorrent
|
||||
nicotine-plus
|
||||
|
||||
# other
|
||||
quickemu
|
||||
keymapp
|
||||
gnome-solanum
|
||||
eduvpn-client
|
||||
yt-dlp
|
||||
|
||||
];
|
||||
|
||||
imports = [
|
||||
./slim-desktop.nix
|
||||
./gnome
|
||||
./firefox.nix
|
||||
./librewolf.nix
|
||||
./tex.nix
|
||||
./fonts.nix
|
||||
./r.nix
|
||||
];
|
||||
|
||||
programs.obs-studio.enable = true;
|
||||
# programs.freetube.enable = true;
|
||||
|
||||
}
|
||||
14
home/desktop-full/aichat.nix
Normal file
14
home/desktop-full/aichat.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
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}";
|
||||
|
|
@ -126,9 +126,12 @@ in
|
|||
khal.color = "light green";
|
||||
remote = {
|
||||
type = "caldav";
|
||||
url = "https://cloud.gridisnotajournal.de/remote.php/dav/calendars/till/grid/";
|
||||
passwordCommand = [ "pass" "grid/nextcloud" ];
|
||||
userName = "till";
|
||||
# url = "https://cloud.gridisnotajournal.de/remote.php/dav/calendars/till/grid/";
|
||||
# passwordCommand = [ "pass" "uni/grid-caldav-nextcloud" ];
|
||||
# userName = "till";
|
||||
url = "https://kalender.humangeographie.de/grid/96dedda9-cc91-c2fe-3bd8-020296904489/";
|
||||
userName = "grid";
|
||||
passwordCommand = [ "pass" "uni/grid-kalender-radicale" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
42
home/desktop-full/default.nix
Normal file
42
home/desktop-full/default.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../desktop-slim
|
||||
|
||||
./aichat.nix
|
||||
./calendars.nix
|
||||
./khard-dump.nix
|
||||
./mail.nix
|
||||
./messaging.nix
|
||||
./office-gui.nix
|
||||
./r.nix
|
||||
./tasks.nix
|
||||
./tex.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
ghostscript
|
||||
hunspell
|
||||
hunspellDicts.de_DE
|
||||
hunspellDicts.en_US
|
||||
hunspellDicts.th_TH
|
||||
hyphen
|
||||
hyphenDicts.de_DE
|
||||
hyphenDicts.en_US
|
||||
imagemagick
|
||||
khal
|
||||
khard
|
||||
msmtp
|
||||
notmuch
|
||||
openssl
|
||||
pandoc
|
||||
pdftk
|
||||
quarto
|
||||
ripmime
|
||||
urlscan
|
||||
visidata
|
||||
w3m
|
||||
];
|
||||
}
|
||||
284
home/desktop-full/mail.nix
Normal file
284
home/desktop-full/mail.nix
Normal file
|
|
@ -0,0 +1,284 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
|
||||
makeConfig = accountName:
|
||||
''
|
||||
unset reverse_name
|
||||
unset smime_is_default
|
||||
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 ]? —"
|
||||
source colors.neomuttrc
|
||||
'';
|
||||
|
||||
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"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
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 = {
|
||||
maildirBasePath = "${config.xdg.dataHome}/mail";
|
||||
accounts = {
|
||||
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";
|
||||
userName = "tstraube";
|
||||
passwordCommand = "pass uni/hrz";
|
||||
signature = {
|
||||
text = ''
|
||||
Dr. Till Straube (he/him)
|
||||
Dept. of Human Geography
|
||||
Goethe University Frankfurt
|
||||
'';
|
||||
};
|
||||
neomutt = {
|
||||
extraConfig = makeConfig name + ''
|
||||
color status blue default
|
||||
color index blue default '~N'
|
||||
alternates ^tstraube@(em|rz)?.uni-frankfurt.de$
|
||||
set smime_is_default
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
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";
|
||||
userName = "till.straube@t9e.me";
|
||||
signature.text = ''
|
||||
Till Straube (he/him)
|
||||
PGP key: https://keys.openpgp.org/search?q=till.straube@t9e.me
|
||||
'';
|
||||
neomutt = {
|
||||
extraConfig = makeConfig name + ''
|
||||
color status green default
|
||||
color index green default '~N'
|
||||
alternates @t9e.me$ @ktiu.net$ ^(tillkowski|till.straube)@gmail.com$
|
||||
set reverse_name
|
||||
'';
|
||||
};
|
||||
msmtp.extraConfig.port = "587";
|
||||
passwordCommand = "pass accounts/ktiu-imap";
|
||||
};
|
||||
|
||||
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";
|
||||
userName = "kein_schlussstrich_hessen@systemli.org";
|
||||
signature.text = ''
|
||||
Kein Schlussstrich Hessen
|
||||
PGP Key: https://keys.openpgp.org/search?q=kein_schlussstrich_hessen@systemli.org
|
||||
'';
|
||||
neomutt = {
|
||||
extraConfig = makeConfig name + ''
|
||||
color status red default
|
||||
color index red default '~N'
|
||||
'';
|
||||
};
|
||||
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 = "no";
|
||||
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 ../../dotfiles/neomutt/config.neomuttrc;
|
||||
};
|
||||
|
||||
xdg.configFile."neomutt/colors.neomuttrc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/dotfiles/neomutt/colors.neomuttrc";
|
||||
xdg.configFile."neomutt/bindings.neomuttrc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/dotfiles/neomutt/bindings.neomuttrc";
|
||||
programs.neovim.plugins = with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = vim-pathogen;
|
||||
type = "viml";
|
||||
config = "execute pathogen#infect()";
|
||||
}
|
||||
];
|
||||
|
||||
xdg.configFile."nvim/bundle/woof-vim" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/till/devel/woof-vim";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
}
|
||||
9
home/desktop-full/messaging.nix
Normal file
9
home/desktop-full/messaging.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
signal-desktop
|
||||
# telegram-desktop
|
||||
simplex-chat-desktop
|
||||
];
|
||||
}
|
||||
4
home/desktop-full/office-cli.nix
Normal file
4
home/desktop-full/office-cli.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
}
|
||||
20
home/desktop-full/office-gui.nix
Normal file
20
home/desktop-full/office-gui.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
chromium
|
||||
eduvpn-client
|
||||
gimp
|
||||
gnome-solanum
|
||||
inkscape
|
||||
libreoffice
|
||||
lorem
|
||||
pdfpc
|
||||
poppler-utils
|
||||
typst
|
||||
xournalpp
|
||||
zotero
|
||||
];
|
||||
|
||||
programs.obs-studio.enable = true;
|
||||
}
|
||||
63
home/desktop-full/r.nix
Normal file
63
home/desktop-full/r.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
customPackages = with pkgs.rPackages; [
|
||||
bookdown
|
||||
catmaply
|
||||
clipr
|
||||
DAAG
|
||||
devtools
|
||||
dplyr
|
||||
eurostat
|
||||
extrafont
|
||||
ggplot2
|
||||
ggridges
|
||||
jsonlite
|
||||
kableExtra
|
||||
knitr
|
||||
languageserver
|
||||
magrittr
|
||||
mapproj
|
||||
openxlsx
|
||||
osmdata
|
||||
plotly
|
||||
progress
|
||||
purrr
|
||||
qrcode
|
||||
quarto
|
||||
RColorBrewer
|
||||
readODS
|
||||
revealjs
|
||||
rlist
|
||||
rmarkdown
|
||||
rnaturalearth
|
||||
rnaturalearthdata
|
||||
roxygen2
|
||||
rvest
|
||||
sf
|
||||
stringr
|
||||
testthat
|
||||
tidyr
|
||||
tidyverse
|
||||
tmap
|
||||
tufte
|
||||
xlsx
|
||||
yaml
|
||||
];
|
||||
|
||||
R-packed = pkgs.rWrapper.override { packages = customPackages; };
|
||||
RStudio-packed = pkgs.rstudioWrapper.override { packages = customPackages; };
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
R-packed
|
||||
# RStudio-packed
|
||||
];
|
||||
|
||||
home.shellAliases = {
|
||||
r = "R --no-save --no-restore";
|
||||
R = "R --no-save --no-restore";
|
||||
};
|
||||
}
|
||||
22
home/desktop-full/tasks.nix
Normal file
22
home/desktop-full/tasks.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
taskopen
|
||||
];
|
||||
|
||||
programs.taskwarrior = {
|
||||
enable = true;
|
||||
package = pkgs.taskwarrior3;
|
||||
dataLocation = "${config.xdg.dataHome}/taskwarrior/tasks";
|
||||
colorTheme = "no-color";
|
||||
config = {
|
||||
report.list.columns = ["id" "depends.indicator" "priority" "project" "recur.indicator" "scheduled.countdown" "due" "until.age" "status.short" "description.count" "tags"];
|
||||
report.list.labels= ["ID" "D" "Prio" "Proj" "R" "Scheduled" "Due" "Until" "S" "Description" "Tags"];
|
||||
};
|
||||
extraConfig = "
|
||||
hooks.location=${config.xdg.dataHome}/taskwarrior/hooks
|
||||
verbose=affected,context,edit,label,header,new-id,project,special,sync,recur
|
||||
";
|
||||
};
|
||||
}
|
||||
31
home/desktop-slim/default.nix
Normal file
31
home/desktop-slim/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../minimal
|
||||
|
||||
./devel.nix
|
||||
./firefox.nix
|
||||
./fonts.nix
|
||||
./gpg.nix
|
||||
./media.nix
|
||||
./niri.nix
|
||||
./foot.nix
|
||||
./password-store.nix
|
||||
./user-dirs.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
anki-bin
|
||||
appimage-run
|
||||
drawing
|
||||
keepassxc
|
||||
libnotify
|
||||
usbutils
|
||||
wl-clipboard
|
||||
yubioath-flutter
|
||||
zathura
|
||||
];
|
||||
|
||||
services.syncthing.enable = true;
|
||||
}
|
||||
8
home/desktop-slim/devel.nix
Normal file
8
home/desktop-slim/devel.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, osConfig, ... }:
|
||||
{ config, pkgs, inputs, osConfig, ... }:
|
||||
|
||||
{
|
||||
programs.firefox = {
|
||||
|
|
@ -33,14 +33,12 @@
|
|||
${config.home.username} = {
|
||||
name = config.home.username;
|
||||
isDefault = true;
|
||||
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
adaptive-tab-bar-colour
|
||||
extensions.packages = with inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; [
|
||||
auto-tab-discard
|
||||
keepassxc-browser
|
||||
passff
|
||||
tampermonkey
|
||||
# tampermonkey
|
||||
ublock-origin
|
||||
vimium
|
||||
web-archives
|
||||
zotero-connector
|
||||
];
|
||||
|
|
@ -53,6 +51,7 @@
|
|||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{ name = "type"; value = "packages"; }
|
||||
{ name = "channel"; value = "unstable"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
|
|
@ -66,14 +65,27 @@
|
|||
definedAliases = [ "@nw" ];
|
||||
};
|
||||
"NixOS Options" = {
|
||||
urls = [{ template = "https://search.nixos.org/options?query={searchTerms}"; }];
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/options";
|
||||
params = [
|
||||
# { name = "channel"; value = "${osConfig.system.nixos.release}"; }
|
||||
{ name = "channel"; value = "unstable"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
icon = "https://nixos.org/favicon.png";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@no" ];
|
||||
};
|
||||
"Home manager options" = {
|
||||
# urls = [{ template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=release-${osConfig.system.nixos.release}"; }];
|
||||
urls = [{ template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=release-25.05"; }];
|
||||
urls = [{
|
||||
template = "https://home-manager-options.extranix.com";
|
||||
params = [
|
||||
# { name = "release"; value = "release-${osConfig.system.nixos.release}"; }
|
||||
{ name = "release"; value = "master"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
icon = "https://mipmip.github.io/home-manager-option-search/images/favicon.png";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "@hm" ];
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
anonymousPro
|
||||
cantarell-fonts
|
||||
cascadia-code
|
||||
charis-sil
|
||||
charis
|
||||
cm_unicode
|
||||
corefonts
|
||||
dejavu_fonts
|
||||
11
home/desktop-slim/foot.nix
Normal file
11
home/desktop-slim/foot.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
};
|
||||
xdg.configFile."foot" = {
|
||||
recursive = true;
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/dotfiles/foot";
|
||||
};
|
||||
}
|
||||
34
home/desktop-slim/gpg.nix
Normal file
34
home/desktop-slim/gpg.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
pinentry-all
|
||||
];
|
||||
|
||||
# moved to system
|
||||
|
||||
# services.gpg-agent = {
|
||||
# enable = true;
|
||||
# pinentry.package = pkgs.pinentry-all;
|
||||
# pinentry.program = "pinentry";
|
||||
# # enableSshSupport = true;
|
||||
# };
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
settings = {
|
||||
no-emit-version = true;
|
||||
no-comments = true;
|
||||
keyserver = "hkps://keys.openpgp.org/";
|
||||
keyserver-options = [
|
||||
"no-honor-keyserver-url"
|
||||
"include-revoked"
|
||||
];
|
||||
personal-cipher-preferences = "AES256 AES192 AES CAST5";
|
||||
personal-digest-preferences = "SHA512 SHA384 SHA256 SHA224";
|
||||
cert-digest-algo = "SHA512";
|
||||
default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
|
||||
};
|
||||
};
|
||||
}
|
||||
14
home/desktop-slim/media.nix
Normal file
14
home/desktop-slim/media.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
castget
|
||||
feh
|
||||
ffmpeg
|
||||
nicotine-plus
|
||||
qbittorrent
|
||||
vlc
|
||||
yt-dlp
|
||||
zathura
|
||||
];
|
||||
}
|
||||
22
home/desktop-slim/niri.nix
Normal file
22
home/desktop-slim/niri.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
services.swayidle.enable = true;
|
||||
services.polkit-gnome.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
dgop
|
||||
dsearch
|
||||
wl-mirror
|
||||
xwayland-satellite
|
||||
adw-gtk3
|
||||
];
|
||||
|
||||
xdg.configFile = {
|
||||
"niri/config.kdl".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/dotfiles/niri/config.kdl";
|
||||
"niri/dms" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/dotfiles/niri/dms";
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
@ -13,12 +12,18 @@
|
|||
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
|
||||
pcsc-shared
|
||||
'';
|
||||
target = "../.gnupg/scdaemon.conf";
|
||||
};
|
||||
|
||||
}
|
||||
18
home/desktop-slim/user-dirs.nix
Normal file
18
home/desktop-slim/user-dirs.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
xdg.userDirs = {
|
||||
enable = true;
|
||||
createDirectories = true;
|
||||
setSessionVariables = false;
|
||||
desktop = "${config.home.homeDirectory}/desktop";
|
||||
documents = "${config.home.homeDirectory}/misc";
|
||||
download = "${config.home.homeDirectory}/tmp";
|
||||
music = "${config.home.homeDirectory}/media/music";
|
||||
pictures = "${config.home.homeDirectory}/media/img";
|
||||
publicShare = "${config.home.homeDirectory}/box";
|
||||
templates = "${config.xdg.dataHome}/templates";
|
||||
videos = "${config.home.homeDirectory}/media/vid";
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
bundler
|
||||
bundix
|
||||
nodejs
|
||||
yarn-berry
|
||||
duckdb
|
||||
tippecanoe
|
||||
pmtiles
|
||||
];
|
||||
}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
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";
|
||||
# line-height = "20";
|
||||
};
|
||||
|
||||
mouse.hide-when-typing = "yes";
|
||||
cursor = {
|
||||
style = "beam";
|
||||
blink = true;
|
||||
};
|
||||
|
||||
csd.size = "0";
|
||||
|
||||
colors = {
|
||||
cursor = "eeeeee 1c1c1c";
|
||||
alpha = "1.0";
|
||||
background = "eeeeee";
|
||||
foreground = "1c1c1c";
|
||||
regular0 = "1c1c1c"; # black
|
||||
bright0 = "585858"; # bright black
|
||||
regular1 = "af0000"; # red
|
||||
bright1 = "d70000"; # bright red
|
||||
regular2 = "008700"; # green
|
||||
bright2 = "5faf5f"; # bright green
|
||||
regular3 = "d75f00"; # yellow
|
||||
bright3 = "ffaf00"; # bright yellow
|
||||
regular4 = "005faf"; # blue
|
||||
bright4 = "0087af"; # bright blue
|
||||
regular5 = "d70087"; # magenta
|
||||
bright5 = "ff5faf"; # bright magenta
|
||||
regular6 = "005f87"; # cyan
|
||||
bright6 = "00afaf"; # bright cyan
|
||||
regular7 = "ffffff"; # white
|
||||
bright7 = "bcbcbc"; # bright white
|
||||
};
|
||||
|
||||
key-bindings = {
|
||||
show-urls-launch = "Control+Shift+g";
|
||||
show-urls-copy = "Control+Shift+y";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
# Here you list all the shortcuts.
|
||||
#
|
||||
# The shortcuts may be defined in two ways:
|
||||
#
|
||||
# 1. Run-or-raise form: shortcut,launch-command,[wm_class],[title]
|
||||
# * wm_class and title are optional and case sensitive
|
||||
# * if none is set, lowercased launch-command is compared with lowercased windows wm_classes and titles
|
||||
#
|
||||
# 2. Run only form: shortcut,calculate
|
||||
#
|
||||
# =================
|
||||
# Run or raise form
|
||||
# =================
|
||||
#
|
||||
# This line cycles any open gnome-terminal (matched by wm_class = Gnome-terminal on Ubuntu 17.10) OR if not found, launches new one.
|
||||
# If you're using Arch, you may want to match by wm_class = gnome-terminal-server , just check yourself by Alt+F2/lg/Windows
|
||||
<Super>b,firefox,,
|
||||
<Super>f,nautilus,,
|
||||
<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 |
27
home/gpg.nix
27
home/gpg.nix
|
|
@ -1,27 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
programs.gpg.settings = {
|
||||
no-emit-version = true;
|
||||
no-comments = true;
|
||||
keyserver = "hkps://keys.openpgp.org/";
|
||||
keyserver-options = [
|
||||
"no-honor-keyserver-url"
|
||||
"include-revoked"
|
||||
];
|
||||
personal-cipher-preferences = "AES256 AES192 AES CAST5";
|
||||
personal-digest-preferences = "SHA512 SHA384 SHA256 SHA224";
|
||||
cert-digest-algo = "SHA512";
|
||||
default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
|
||||
};
|
||||
|
||||
xdg.configFile."scdaemon" = {
|
||||
text = ''
|
||||
disable-ccid
|
||||
pcsc-shared
|
||||
'';
|
||||
target = "../.gnupg/scdaemon.conf";
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
home.username = "guest";
|
||||
home.homeDirectory = "/home/guest";
|
||||
home.stateVersion = "22.11";
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = (_: true);
|
||||
};
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
xdg.userDirs = {
|
||||
enable = true;
|
||||
createDirectories = true;
|
||||
download = "${config.home.homeDirectory}/tmp";
|
||||
music = "${config.home.homeDirectory}/media/music";
|
||||
pictures = "${config.home.homeDirectory}/media/img";
|
||||
videos = "${config.home.homeDirectory}/media/vid";
|
||||
documents = "${config.home.homeDirectory}/misc";
|
||||
templates = "${config.xdg.dataHome}/templates";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fzf
|
||||
silver-searcher
|
||||
tmux
|
||||
nodejs
|
||||
wl-clipboard
|
||||
qbittorrent
|
||||
vlc
|
||||
mpv
|
||||
ffmpeg
|
||||
yt-dlp
|
||||
libnotify
|
||||
keepassxc
|
||||
];
|
||||
|
||||
services.syncthing.enable = true;
|
||||
|
||||
imports = [
|
||||
./gnome
|
||||
./firefox.nix
|
||||
./foot.nix
|
||||
./fish.nix
|
||||
./tmux
|
||||
./nvim
|
||||
./fonts.nix
|
||||
];
|
||||
|
||||
programs.nix-index = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.librewolf.enable = true;
|
||||
}
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
# 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"
|
||||
|
||||
# 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"
|
||||
|
||||
# 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,153 +0,0 @@
|
|||
set alias_file = ~/.local/share/neomutt/aliases.neomuttrc
|
||||
source $alias_file
|
||||
|
||||
set mailcap_path = ~/.config/neomutt/mailcap
|
||||
|
||||
# source ./smime.neomuttrc
|
||||
|
||||
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
|
||||
set smart_wrap
|
||||
set menu_scroll
|
||||
set tilde
|
||||
unset markers
|
||||
ignore *
|
||||
unignore from: to: cc: bcc: date: subject:
|
||||
unhdr_order *
|
||||
hdr_order from: to: cc: bcc: date: subject:
|
||||
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
|
||||
|
||||
## Index
|
||||
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
|
||||
color quoted green default
|
||||
color quoted1 blue default
|
||||
color quoted2 cyan default
|
||||
color quoted3 yellow default
|
||||
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)"
|
||||
color body green default "(Good signature)"
|
||||
color body brightblack default "^gpg: .*"
|
||||
color body green default "^gpg: Good signature .*"
|
||||
color body red default "^gpg: BAD signature from.*"
|
||||
|
|
@ -1,233 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.msmtp = {
|
||||
enable = true;
|
||||
configContent = ''
|
||||
defaults
|
||||
logfile ${config.xdg.stateHome}/msmtp/msmtp.log
|
||||
port 587
|
||||
'';
|
||||
};
|
||||
|
||||
programs.mbsync.enable = true;
|
||||
programs.neomutt = {
|
||||
enable = true;
|
||||
vimKeys = true;
|
||||
extraConfig = builtins.readFile ./config.neomuttrc;
|
||||
};
|
||||
|
||||
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;
|
||||
|
||||
accounts.email = {
|
||||
maildirBasePath = "${config.xdg.dataHome}/mail";
|
||||
accounts = {
|
||||
|
||||
gu = {
|
||||
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 = ''
|
||||
Dr. Till Straube (he/him)
|
||||
Dept. of Human Geography
|
||||
Goethe University Frankfurt
|
||||
'';
|
||||
showSignature = "append";
|
||||
};
|
||||
mbsync.enable = true;
|
||||
mbsync.create = "maildir";
|
||||
msmtp.enable = true;
|
||||
neomutt = {
|
||||
enable = true;
|
||||
sendMailCommand = "/home/till/.nix-profile/bin/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
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
t9e = {
|
||||
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 = "/home/till/.nix-profile/bin/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
|
||||
'';
|
||||
};
|
||||
mbsync.enable = true;
|
||||
mbsync.create = "maildir";
|
||||
msmtp = {
|
||||
enable = true;
|
||||
extraConfig.from = "*@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 = "/home/till/.nix-profile/bin/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;
|
||||
mbsync.create = "maildir";
|
||||
msmtp = {
|
||||
enable = true;
|
||||
extraConfig.from = "*@ktiu.net";
|
||||
};
|
||||
passwordCommand = "secret-tool lookup server shorbut.ktiu.net account till";
|
||||
};
|
||||
|
||||
ksh = {
|
||||
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";
|
||||
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
|
||||
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;
|
||||
mbsync.create = "maildir";
|
||||
msmtp = {
|
||||
enable = true;
|
||||
extraConfig.from = "kein_schlussstrich_hessen@systemli.org";
|
||||
};
|
||||
passwordCommand = "secret-tool lookup server mail.systemli.org account kein_schlussstrich_hessen@systemli.org";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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,78 +0,0 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
home.username = "till";
|
||||
home.homeDirectory = "/home/till";
|
||||
home.stateVersion = "22.11";
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = (_: true);
|
||||
};
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
xdg.userDirs = {
|
||||
enable = true;
|
||||
|
||||
desktop = "${config.home.homeDirectory}/desktop";
|
||||
documents = "${config.home.homeDirectory}/misc";
|
||||
download = "${config.home.homeDirectory}/tmp";
|
||||
music = "${config.home.homeDirectory}/media/music";
|
||||
pictures = "${config.home.homeDirectory}/media/img";
|
||||
publicShare = "${config.home.homeDirectory}/box";
|
||||
templates = "${config.xdg.dataHome}/templates";
|
||||
videos = "${config.home.homeDirectory}/media/vid";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
dust
|
||||
fzf
|
||||
jq
|
||||
progress
|
||||
rename
|
||||
silver-searcher
|
||||
tldr
|
||||
tmux
|
||||
];
|
||||
|
||||
imports = [
|
||||
./fish.nix
|
||||
./tmux
|
||||
./password-store.nix
|
||||
./vifm
|
||||
./nvim
|
||||
./gpg.nix
|
||||
./ssh.nix
|
||||
];
|
||||
|
||||
programs.nix-index = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user.name = "Till";
|
||||
user.email = "till@ktiu.net";
|
||||
pull.rebase = true;
|
||||
extraConfig = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
};
|
||||
lfs = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.bottom = {
|
||||
enable = true;
|
||||
settings.styles.theme = "default-light";
|
||||
};
|
||||
|
||||
}
|
||||
52
home/minimal/default.nix
Normal file
52
home/minimal/default.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.homeDirectory = "/home/${config.home.username}";
|
||||
|
||||
imports = [
|
||||
./fish.nix
|
||||
./vifm.nix
|
||||
./nvim
|
||||
./tmux.nix
|
||||
./git.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
dust
|
||||
eza
|
||||
fastfetch
|
||||
fzf
|
||||
jq
|
||||
nh
|
||||
nix-search
|
||||
progress
|
||||
rename
|
||||
silver-searcher
|
||||
tldr
|
||||
tmux
|
||||
yq
|
||||
];
|
||||
|
||||
home.shellAliases = {
|
||||
cdg = "cd \$(git rev-parse --show-toplevel)";
|
||||
dmy = "date +'%-d.-%-m.%Y'";
|
||||
du = "dust";
|
||||
ls = "eza";
|
||||
tree = "eza --tree";
|
||||
top = "btm --battery";
|
||||
ymd = "date +'%Y-%m-%d'";
|
||||
};
|
||||
|
||||
programs.nix-index = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
programs.bottom = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.stateVersion = "22.11";
|
||||
}
|
||||
|
|
@ -1,20 +1,11 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, ... }:
|
||||
|
||||
{
|
||||
home.shellAliases = {
|
||||
top = "btm --battery";
|
||||
ymd = "date +'%Y-%m-%d'";
|
||||
dmy = "date +'%-d.-%-m.%Y'";
|
||||
v = "nvim";
|
||||
r = "R --no-save --no-restore";
|
||||
R = "R --no-save --no-restore";
|
||||
cdg = "cd \$(git rev-parse --show-toplevel)";
|
||||
};
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
interactiveShellInit = "fish_add_path ${config.xdg.dataHome}/npm/packages/bin";
|
||||
shellAbbrs = {
|
||||
openconnect = "openconnect --config=/home/till/.config/openconnect/config";
|
||||
};
|
||||
|
||||
shellInit = ''
|
||||
set -gx EDITOR "nvim"
|
||||
set -gx VISUAL "nvim"
|
||||
|
|
@ -50,6 +41,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"
|
||||
13
home/minimal/git.nix
Normal file
13
home/minimal/git.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{...}:
|
||||
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
signing.format = "openpgp";
|
||||
settings = {
|
||||
pull.rebase = true;
|
||||
extraConfig.init.defaultBranch = "main";
|
||||
};
|
||||
lfs.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -23,25 +23,26 @@ 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
|
||||
|
||||
nnoremap Y y$
|
||||
|
||||
nnoremap <leader>cd :lcd %:h<CR>
|
||||
nnoremap <leader>ew :e <C-R>=expand("%:p:h") . "/" <CR>
|
||||
|
||||
nnoremap gF :edit <cfile><return>
|
||||
nnoremap gx :! xdg-open <cfile><return>
|
||||
|
||||
nnoremap <silent> <tab> :bnext<return>
|
||||
nnoremap <silent> <S-tab> :bnext<return>
|
||||
nnoremap <silent> Q :bdelete<return>
|
||||
nnoremap <c-h> <c-w>h
|
||||
nnoremap <c-j> <c-w>j
|
||||
nnoremap <c-k> <c-w>k
|
||||
nnoremap <c-l> <c-w>l
|
||||
nnoremap <c-q> :hide<return>
|
||||
|
||||
nnoremap <leader>m :make<return>
|
||||
nnoremap <leader>M :!home-manager switch<return>
|
||||
|
||||
tnoremap <esc> <c-\><c-n>
|
||||
|
||||
|
|
@ -52,9 +53,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
|
||||
255
home/minimal/nvim/default.nix
Normal file
255
home/minimal/nvim/default.nix
Normal file
|
|
@ -0,0 +1,255 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
astro-language-server
|
||||
marksman
|
||||
nil
|
||||
tree-sitter
|
||||
typescript-language-server
|
||||
vim-language-server
|
||||
];
|
||||
|
||||
programs.neovim = {
|
||||
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
extraConfig = builtins.readFile ./config.vim;
|
||||
|
||||
plugins = with pkgs.vimPlugins;
|
||||
|
||||
[
|
||||
cmp-buffer
|
||||
cmp-cmdline
|
||||
cmp-emoji
|
||||
cmp-fish
|
||||
cmp-nvim-lsp
|
||||
cmp-nvim-ultisnips
|
||||
cmp-path
|
||||
|
||||
{
|
||||
plugin = vim-fugitive;
|
||||
type = "lua";
|
||||
config = ''
|
||||
vim.api.nvim_set_keymap("n", "<Leader>g", ":Git<CR>", { noremap = true, silent = true })
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
plugin = fzf-vim;
|
||||
type = "lua";
|
||||
config = ''
|
||||
vim.api.nvim_set_keymap('i', '<c-x><c-f>', '<Plug>(fzf-complete-path)', { 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('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 })
|
||||
vim.api.nvim_set_keymap('n', '<leader>O', ':Files ~/', { noremap = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>r', ':Read<return>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>R', ':Read ~/', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>a', ':Ag<return>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>A', ':Ag ~/', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>.', ':Files ~/devel/omniflake/<return>', { noremap = true, silent = true })
|
||||
|
||||
vim.api.nvim_create_user_command(
|
||||
'Read',
|
||||
'call fzf#run(fzf#wrap({\'sink\': \'read\', \'dir\': <q-args>}))',
|
||||
{ nargs = '?', complete = 'dir' }
|
||||
)
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
plugin = goyo-vim;
|
||||
type = "viml";
|
||||
config = ''
|
||||
nnoremap <silent> yog :Goyo<CR>
|
||||
nnoremap <silent> [og :Goyo 80<return>
|
||||
nnoremap <silent> ]og :Goyo!<return>
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = limelight-vim;
|
||||
type = "viml";
|
||||
config = ''
|
||||
set termguicolors
|
||||
let g:limelight_conceal_ctermfg = 'darkgray'
|
||||
|
||||
nnoremap yof :Limelight!!<return>
|
||||
nnoremap [of :Limelight<return>
|
||||
nnoremap ]of :Limelight!<return>
|
||||
'';
|
||||
}
|
||||
|
||||
nabla-nvim
|
||||
|
||||
{
|
||||
plugin = nvim-cmp;
|
||||
type = "lua";
|
||||
config = builtins.readFile ./nvim-cmp.lua;
|
||||
}
|
||||
|
||||
{
|
||||
plugin = nvim-colorizer-lua;
|
||||
type = "viml";
|
||||
config = "lua require 'colorizer'.setup()";
|
||||
}
|
||||
|
||||
{
|
||||
plugin = nvim-lspconfig;
|
||||
type = "lua";
|
||||
config = ''
|
||||
vim.lsp.enable('astro')
|
||||
vim.lsp.enable('marksman')
|
||||
vim.lsp.enable('nil_ls')
|
||||
vim.lsp.enable('r_language_server')
|
||||
vim.lsp.enable('rust_analyzer')
|
||||
vim.lsp.enable('texlab')
|
||||
vim.lsp.enable('ts_ls')
|
||||
vim.lsp.enable('vimls')
|
||||
vim.api.nvim_del_keymap('i', '<c-s>')
|
||||
vim.keymap.set({ 'i' }, "<c-tab>", vim.lsp.buf.signature_help, { desc = "Show signature help" })
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
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 = catppuccin-nvim;
|
||||
# type = "viml";
|
||||
# config = ''
|
||||
# colorscheme catppuccin-nvim
|
||||
# '';
|
||||
# }
|
||||
|
||||
{
|
||||
plugin = papercolor-theme;
|
||||
type = "viml";
|
||||
config = ''
|
||||
colorscheme PaperColor
|
||||
'';
|
||||
}
|
||||
|
||||
quarto-nvim
|
||||
typescript-vim
|
||||
|
||||
{
|
||||
plugin = ultisnips;
|
||||
type = "lua";
|
||||
config = ''
|
||||
vim.api.nvim_set_keymap('n', '<leader>se', ':UltiSnipsEdit!<return>', { noremap = true, silent = true })
|
||||
'';
|
||||
}
|
||||
|
||||
vifm-vim
|
||||
|
||||
{
|
||||
plugin = vim-astro;
|
||||
type = "viml";
|
||||
config = ''
|
||||
let g:astro_typescript = 'enable'
|
||||
'';
|
||||
}
|
||||
|
||||
vim-commentary
|
||||
|
||||
{
|
||||
plugin = vim-easy-align;
|
||||
type = "viml";
|
||||
config = ''
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
'';
|
||||
}
|
||||
|
||||
vim-fish
|
||||
vim-nix
|
||||
|
||||
# {
|
||||
# plugin = vim-pandoc;
|
||||
# config = ''
|
||||
# let g:pandoc#modules#disabled = ["completion", "command", "menu"]
|
||||
# '';
|
||||
# }
|
||||
|
||||
vim-pandoc-syntax
|
||||
vim-repeat
|
||||
|
||||
{
|
||||
plugin = vim-slime;
|
||||
type = "viml";
|
||||
config = ''
|
||||
let g:slime_target = "tmux"
|
||||
let g:slime_default_config = {"socket_name": get(split($TMUX, ","), 0), "target_pane": ":.2"}
|
||||
let g:slime_no_mappings = 1
|
||||
let g:slime_dont_ask_default = 1
|
||||
xmap s <plug>SlimeRegionSend
|
||||
nmap s <plug>SlimeMotionSend
|
||||
nmap ss <plug>SlimeLineSend
|
||||
nnoremap s: :SlimeSend1
|
||||
'';
|
||||
}
|
||||
|
||||
vim-snippets
|
||||
vim-speeddating
|
||||
vim-surround
|
||||
|
||||
{
|
||||
plugin = vim-unimpaired;
|
||||
type = "viml";
|
||||
config = ''
|
||||
nnoremap =p <Nop>
|
||||
nnoremap =P <Nop>
|
||||
nnoremap =s <Nop>
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
plugin = vimwiki;
|
||||
type = "viml";
|
||||
config = ''
|
||||
let g:vimwiki_list = [ { 'path': '~/notes/', 'syntax': 'markdown', 'ext': '.md' } ]
|
||||
nnoremap <Leader>wt <Nop>
|
||||
nnoremap <Leader>w<Leader>t <Nop>
|
||||
nmap <C-j> <Plug>VimwikiNextLink
|
||||
nmap <C-k> <Plug>VimwikiPrevLink
|
||||
let g:vimwiki_key_mappings = { 'headers': 0, 'text_objs': 0, 'lists': 0, 'lists_return': 0, 'html': 0 }
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
withRuby = false;
|
||||
withPython3 = true;
|
||||
};
|
||||
|
||||
xdg.configFile."nvim" = {
|
||||
source = ./dotfiles;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.shellAliases.v = "nvim";
|
||||
}
|
||||
|
|
@ -9,9 +9,3 @@ augroup netrw
|
|||
autocmd!
|
||||
autocmd FileType netrw setl bufhidden=wipe
|
||||
augroup end
|
||||
|
||||
augroup repl
|
||||
autocmd!
|
||||
autocmd TermOpen * setlocal nonumber norelativenumber
|
||||
autocmd TermOpen * nmap <buffer> Q :bdelete!<enter>
|
||||
augroup end
|
||||
1
home/minimal/nvim/dotfiles/ftplugin/nix.vim
Normal file
1
home/minimal/nvim/dotfiles/ftplugin/nix.vim
Normal file
|
|
@ -0,0 +1 @@
|
|||
setlocal makeprg=nixos-rebuild\ dry-build
|
||||
54
home/minimal/nvim/nvim-cmp.lua
Normal file
54
home/minimal/nvim/nvim-cmp.lua
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
local cmp = require'cmp'
|
||||
|
||||
cmp.setup({
|
||||
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
|
||||
end,
|
||||
},
|
||||
|
||||
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' },
|
||||
{ name = 'emoji' },
|
||||
{ name = 'fish' },
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'path' },
|
||||
{ name = 'ultisnips' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
}),
|
||||
matching = { disallow_symbol_nonprefix_matching = false }
|
||||
})
|
||||
|
||||
-- Set up lspconfig.
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
16
home/minimal/tmux.nix
Normal file
16
home/minimal/tmux.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
escapeTime = 0;
|
||||
mouse = true;
|
||||
newSession = true;
|
||||
shell = "${pkgs.fish}/bin/fish";
|
||||
};
|
||||
|
||||
xdg.configFile."tmux" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/dotfiles/tmux";
|
||||
recursive = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -4,10 +4,9 @@
|
|||
programs.vifm = {
|
||||
enable = true;
|
||||
extraConfig = "
|
||||
colorscheme light
|
||||
set vicmd=nvim
|
||||
filetype * xdg-open
|
||||
colorscheme Default
|
||||
";
|
||||
};
|
||||
xdg.configFile."vifm/colors/light.vifm".source = ./light.vifm;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
prefix = ${HOME}/.npm-packages
|
||||
|
|
@ -1,148 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./khard-dump.nix ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
astro-language-server
|
||||
marksman
|
||||
nil
|
||||
typescript-language-server
|
||||
];
|
||||
|
||||
programs.neovim = {
|
||||
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
||||
extraConfig = builtins.readFile ./config.vim;
|
||||
|
||||
plugins = with pkgs.vimPlugins;
|
||||
let
|
||||
woof = pkgs.vimUtils.buildVimPlugin {
|
||||
name = "woof.vim";
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@shorbut.ktiu.net/home/git/woof.vim/";
|
||||
ref = "main";
|
||||
rev = "c29eb50e30ed75cf9ecdcfff198454fcc2c16922";
|
||||
};
|
||||
};
|
||||
in
|
||||
[
|
||||
woof
|
||||
|
||||
cmp-nvim-lsp
|
||||
cmp-buffer
|
||||
cmp-emoji
|
||||
cmp-path
|
||||
cmp-cmdline
|
||||
cmp-nvim-ultisnips
|
||||
nvim-cmp
|
||||
|
||||
{
|
||||
plugin = nvim-lspconfig;
|
||||
type = "lua";
|
||||
config = builtins.readFile ./lsp.lua;
|
||||
}
|
||||
|
||||
{
|
||||
plugin = fzf-vim;
|
||||
config = ''
|
||||
nnoremap <leader><tab> :Buffers<return>
|
||||
imap <c-x><c-f> <Plug>(fzf-complete-path)
|
||||
nnoremap <leader>o :Files<return>
|
||||
nnoremap <leader>O :Files ~/
|
||||
nnoremap <leader>r :Read<cr>
|
||||
nnoremap <leader>R :Read ~/
|
||||
nnoremap <leader>a :Ag<cr>
|
||||
nnoremap <leader>b :Buffers<cr>
|
||||
nnoremap <leader>. :Files ~/devel/omniflake/<return>
|
||||
command! -nargs=? -complete=dir Read call fzf#run(
|
||||
\fzf#wrap({'sink': 'read', 'dir': <q-args>})
|
||||
\)
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = goyo;
|
||||
config = ''
|
||||
nnoremap yog :Goyo<return>
|
||||
nnoremap [og :Goyo 80<return>
|
||||
nnoremap ]og :Goyo!<return>
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = limelight-vim;
|
||||
config = ''
|
||||
set termguicolors
|
||||
let g:limelight_conceal_ctermfg = 'darkgray'
|
||||
nnoremap yof :Limelight!!<return>
|
||||
nnoremap [of :Limelight<return>
|
||||
nnoremap ]of :Limelight!<return>
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = nvim-colorizer-lua;
|
||||
config = "lua require 'colorizer'.setup()";
|
||||
}
|
||||
{
|
||||
plugin = papercolor-theme;
|
||||
config = ''
|
||||
set background=light
|
||||
colorscheme PaperColor
|
||||
'';
|
||||
}
|
||||
typescript-vim
|
||||
{
|
||||
plugin = ultisnips;
|
||||
config = ''
|
||||
nnoremap <leader>se :UltiSnipsEdit!<return>
|
||||
'';
|
||||
}
|
||||
vifm-vim
|
||||
{
|
||||
plugin = vim-astro;
|
||||
config = ''
|
||||
let g:astro_typescript = 'enable'
|
||||
'';
|
||||
}
|
||||
vim-commentary
|
||||
{
|
||||
plugin = vim-easy-align;
|
||||
config = ''
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
'';
|
||||
}
|
||||
vim-fish
|
||||
vim-nix
|
||||
vim-repeat
|
||||
{
|
||||
plugin = vim-slime;
|
||||
config = ''
|
||||
let g:slime_target = "tmux"
|
||||
let g:slime_default_config = {"socket_name": get(split($TMUX, ","), 0), "target_pane": ":.1"}
|
||||
let g:slime_no_mappings = 1
|
||||
let g:slime_dont_ask_default = 1
|
||||
xmap s <plug>SlimeRegionSend
|
||||
nmap s <plug>SlimeMotionSend
|
||||
nmap ss <plug>SlimeLineSend
|
||||
nnoremap s: :SlimeSend1
|
||||
" let g:slime_target = "neovim"
|
||||
" autocmd TermOpen * let g:slime_default_config = {"jobid": &channel}
|
||||
'';
|
||||
}
|
||||
vim-snippets
|
||||
vim-speeddating
|
||||
vim-surround
|
||||
vim-unimpaired
|
||||
];
|
||||
};
|
||||
xdg.configFile."nvim/autocommmands.vim".source = ./autocommands.vim;
|
||||
xdg.configFile."nvim/ftplugin/markdown.vim".source = ./ftplugin/markdown.vim;
|
||||
xdg.configFile."nvim/after/ftplugin/markdown.vim".source = ./after/ftplugin/markdown.vim;
|
||||
xdg.configFile."nvim/ftplugin/r.vim".source = ./ftplugin/r.vim;
|
||||
xdg.configFile."nvim/ftplugin/rmd.vim".source = ./ftplugin/rmd.vim;
|
||||
xdg.configFile."nvim/ftplugin/tex.vim".source = ./ftplugin/tex.vim;
|
||||
xdg.configFile."nvim/ftplugin/typescript.vim".source = ./ftplugin/typescript.vim;
|
||||
xdg.configFile."nvim/syntax/rmd.vim".source = ./syntax/rmd.vim;
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
home.file.".npmrc".text = ''
|
||||
prefix = ${config.xdg.dataHome}/npm/packages
|
||||
'';
|
||||
|
||||
imports = [
|
||||
./minimal.nix
|
||||
./devel.nix
|
||||
];
|
||||
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = [ pkgs.openconnect ];
|
||||
xdg.configFile."openconnect/config".text = ''
|
||||
server=vpn-einwahl.uni-frankfurt.de
|
||||
user=tstraube
|
||||
protocol=anyconnect
|
||||
'';
|
||||
}
|
||||
92
home/r.nix
92
home/r.nix
|
|
@ -1,92 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs;
|
||||
let
|
||||
customPackages = with rPackages; let
|
||||
lectuR = pkgs.rPackages.buildRPackage {
|
||||
name = "lectuR";
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@shorbut.ktiu.net/home/git/lectuR/";
|
||||
ref = "main";
|
||||
rev = "0aafe4eb057a7ec12b8d6ac40ce0bfc8dab80c2b";
|
||||
};
|
||||
propagatedBuildInputs = [ purrr magrittr knitr kableExtra tidyr stringr yaml ];
|
||||
nativeBuildInputs = [ purrr magrittr knitr kableExtra tidyr stringr yaml ];
|
||||
};
|
||||
publishR = pkgs.rPackages.buildRPackage {
|
||||
name = "publishR";
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@shorbut.ktiu.net/home/git/publishR/";
|
||||
ref = "main";
|
||||
rev = "ee137a66ca3b713205ac44e5165292e7ad6388b6";
|
||||
};
|
||||
propagatedBuildInputs = [];
|
||||
nativeBuildInputs = [];
|
||||
};
|
||||
goethR = pkgs.rPackages.buildRPackage {
|
||||
name = "goethR";
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@arielle.ktiu.net/home/git/goethR/";
|
||||
ref = "main";
|
||||
rev = "e3dbfd319f01adfa4a1a1a8abc274014e6498aae";
|
||||
};
|
||||
propagatedBuildInputs = [];
|
||||
nativeBuildInputs = [];
|
||||
};
|
||||
in [
|
||||
bookdown
|
||||
catmaply
|
||||
clipr
|
||||
DAAG
|
||||
devtools
|
||||
dplyr
|
||||
eurostat
|
||||
extrafont
|
||||
ggplot2
|
||||
ggridges
|
||||
jsonlite
|
||||
kableExtra
|
||||
knitr
|
||||
languageserver
|
||||
magrittr
|
||||
mapproj
|
||||
# networkD3
|
||||
openxlsx
|
||||
osmdata
|
||||
plotly
|
||||
progress
|
||||
purrr
|
||||
qrcode
|
||||
RColorBrewer
|
||||
readODS
|
||||
revealjs
|
||||
# restatis
|
||||
rlist
|
||||
rmarkdown
|
||||
rnaturalearth
|
||||
rnaturalearthdata
|
||||
# roxygen2
|
||||
# RSQLite
|
||||
rvest
|
||||
sf
|
||||
stringr
|
||||
# swirl
|
||||
# testthat
|
||||
tidyr
|
||||
tidyverse
|
||||
tmap
|
||||
xlsx
|
||||
yaml
|
||||
lectuR
|
||||
publishR
|
||||
# goethR
|
||||
# ggtree
|
||||
];
|
||||
R-packed = rWrapper.override { packages = customPackages; };
|
||||
RStudio-packed = rstudioWrapper.override { packages = customPackages; };
|
||||
in [
|
||||
R-packed
|
||||
RStudio-packed
|
||||
];
|
||||
}
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
xdg.userDirs.createDirectories = true;
|
||||
|
||||
home.file.".npmrc".text = ''
|
||||
prefix = ${config.xdg.dataHome}/npm/packages
|
||||
'';
|
||||
|
||||
xdg.configFile."castget/castget.conf".source = ./castget/castget.conf;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
|
||||
aichat
|
||||
usbutils
|
||||
wl-clipboard
|
||||
|
||||
# email
|
||||
msmtp
|
||||
notmuch
|
||||
w3m
|
||||
openssl
|
||||
# gnupg
|
||||
urlscan
|
||||
ripmime
|
||||
|
||||
# office
|
||||
khal
|
||||
khard
|
||||
taskopen
|
||||
zathura
|
||||
pdftk
|
||||
imagemagick
|
||||
feh
|
||||
ghostscript
|
||||
drawing
|
||||
castget
|
||||
|
||||
# publishing
|
||||
hunspell
|
||||
hunspellDicts.de_DE
|
||||
hunspellDicts.en_US
|
||||
hunspellDicts.th_TH
|
||||
hyphen
|
||||
hyphenDicts.de_DE
|
||||
hyphenDicts.en_US
|
||||
pandoc
|
||||
imagemagick
|
||||
ghostscript
|
||||
|
||||
# media
|
||||
rhythmbox
|
||||
vlc
|
||||
appimage-run
|
||||
|
||||
# secrets
|
||||
# libsecret
|
||||
keepassxc
|
||||
yubioath-flutter
|
||||
|
||||
];
|
||||
|
||||
imports = [
|
||||
./minimal.nix
|
||||
./devel.nix
|
||||
./calendars.nix
|
||||
./foot.nix
|
||||
./mail
|
||||
# ./openconnect.nix
|
||||
];
|
||||
|
||||
programs.taskwarrior = {
|
||||
|
||||
enable = true;
|
||||
package = pkgs.taskwarrior3;
|
||||
|
||||
dataLocation = "${config.xdg.dataHome}/taskwarrior/tasks";
|
||||
|
||||
colorTheme = "light-256";
|
||||
config = {
|
||||
report.list.columns = ["id" "depends.indicator" "priority" "project" "recur.indicator" "scheduled.countdown" "due" "until.age" "status.short" "description.count" "tags"];
|
||||
report.list.labels= ["ID" "D" "Prio" "Proj" "R" "Scheduled" "Due" "Until" "S" "Description" "Tags"];
|
||||
};
|
||||
extraConfig = "
|
||||
hooks.location=${config.xdg.dataHome}/taskwarrior/hooks
|
||||
verbose=affected,context,edit,label,header,new-id,project,special,sync,recur
|
||||
";
|
||||
};
|
||||
|
||||
services.syncthing.enable = true;
|
||||
|
||||
}
|
||||
25
home/ssh.nix
25
home/ssh.nix
|
|
@ -1,25 +0,0 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
programs.ssh = {
|
||||
|
||||
enable = true;
|
||||
enableDefaultConfig = false;
|
||||
|
||||
matchBlocks = {
|
||||
|
||||
gu = {
|
||||
hostname = "login.server.uni-frankfurt.de";
|
||||
user = "tstraube";
|
||||
identityFile = "${config.home.homeDirectory}/.ssh/tstraube";
|
||||
};
|
||||
|
||||
geocom = {
|
||||
hostname = "geocom.uni-frankfurt.de";
|
||||
user = "till";
|
||||
identityFile = "${config.home.homeDirectory}/.ssh/tstraube";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
escapeTime = 0;
|
||||
mouse = true;
|
||||
newSession = true;
|
||||
shell = "${pkgs.fish}/bin/fish";
|
||||
extraConfig = ''
|
||||
# Key bindings
|
||||
bind C-l next-window
|
||||
bind C-h previous-window
|
||||
bind C-b last-window
|
||||
bind n new-window
|
||||
bind C-n new-window -c '#{pane_current_path}'
|
||||
bind v split-window -h
|
||||
bind C-v split-window -hc '#{pane_current_path}'
|
||||
bind s split-window -v
|
||||
bind C-s split-window -vc '#{pane_current_path}'
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
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
|
||||
|
||||
# Unbind
|
||||
unbind p
|
||||
unbind '"'
|
||||
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"
|
||||
set-option -g status-style fg=magenta
|
||||
set-option -g pane-border-style fg=brightwhite
|
||||
set-option -g pane-active-border-style fg=magenta
|
||||
set-option -g window-status-current-style bg=brightwhite
|
||||
|
||||
# Some more specifics
|
||||
set-option -g focus-events on
|
||||
'';
|
||||
};
|
||||
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 +0,0 @@
|
|||
new-window -c '#{pane_current_path}' vifm
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.pointerCursor = {
|
||||
|
|
@ -7,12 +7,9 @@
|
|||
size = 32;
|
||||
};
|
||||
|
||||
services.gnome-keyring.enable = false;
|
||||
|
||||
home.packages = with pkgs.gnomeExtensions; [
|
||||
run-or-raise
|
||||
removable-drive-menu
|
||||
# system-monitor
|
||||
];
|
||||
|
||||
dconf.settings = {
|
||||
|
|
@ -38,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" = {
|
||||
|
|
@ -107,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,,,
|
||||
'';
|
||||
}
|
||||
7
home/unused/hyprland.nix
Normal file
7
home/unused/hyprland.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
systemd.enable = false;
|
||||
};
|
||||
}
|
||||
5
home/unused/plasma.nix
Normal file
5
home/unused/plasma.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
services.kdeconnect.enable = true;
|
||||
}
|
||||
|
|
@ -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
|
||||
42
hosts/arielle/default.nix
Normal file
42
hosts/arielle/default.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
networking = {
|
||||
|
||||
hostName = "arielle";
|
||||
domain = "ktiu.net";
|
||||
|
||||
interfaces.enp1s0.ipv4.addresses = [{
|
||||
address = "116.203.85.135";
|
||||
prefixLength = 32;
|
||||
}];
|
||||
|
||||
interfaces.enp1s0.ipv6.addresses = [{
|
||||
address = "2a01:4f8:1c1c:42d8::1";
|
||||
prefixLength = 64;
|
||||
}];
|
||||
|
||||
nameservers = [
|
||||
"185.12.64.1"
|
||||
"185.12.64.2"
|
||||
];
|
||||
|
||||
defaultGateway = {
|
||||
address = "172.31.1.1";
|
||||
interface = "enp1s0";
|
||||
};
|
||||
|
||||
defaultGateway6 = {
|
||||
address = "fe80::1";
|
||||
interface = "enp1s0";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../system
|
||||
../../system/web-server
|
||||
../../system/mail-server
|
||||
../../system/matrix-server
|
||||
];
|
||||
}
|
||||
27
hosts/arielle/hardware-configuration.nix
Normal file
27
hosts/arielle/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "/dev/sda";
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/087544b8-4941-436b-be6c-e32bc3787b12";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/9408a2ce-646d-406e-8407-c9bafd0a728c"; }
|
||||
];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
17
hosts/homer/default.nix
Normal file
17
hosts/homer/default.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
networking.hostName = "homer";
|
||||
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../system
|
||||
../../system/desktop
|
||||
../../system/desktop/gnome.nix
|
||||
../../system/desktop/steam.nix
|
||||
../../system/desktop/remote-desktop.nix
|
||||
../../system/desktop/media-server.nix
|
||||
../../users/till.nix
|
||||
../../users/guest.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{ config, lib, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/hardware/network/broadcom-43xx.nix")
|
||||
imports = [
|
||||
(modulesPath + "/hardware/network/broadcom-43xx.nix")
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
|
|
@ -53,14 +53,12 @@
|
|||
];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
swapDevices = [{
|
||||
device = "/swapfile";
|
||||
size = 8 * 1045;
|
||||
}];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
12
hosts/mila/default.nix
Normal file
12
hosts/mila/default.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
networking.hostname = "mila";
|
||||
|
||||
imports = [
|
||||
./hardware.nix
|
||||
../system
|
||||
../system/desktop
|
||||
../system/desktop/gnome.nix
|
||||
];
|
||||
}
|
||||
55
hosts/nova/default.nix
Normal file
55
hosts/nova/default.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
networking.hostName = "nova";
|
||||
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../users/alt/system.nix
|
||||
../../users/guest/system.nix
|
||||
|
||||
../../system
|
||||
../../system/desktop
|
||||
../../system/desktop/laptop.nix
|
||||
../../system/desktop/ergodox-udev.nix
|
||||
../../system/desktop/niri.nix
|
||||
../../system/desktop/steam.nix
|
||||
../../system/desktop/yubikey-pam.nix
|
||||
];
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.kernelModules = [ "v4l2loopback" ];
|
||||
boot.kernelParams = [ "psmouse.elantech_smbus=0" ];
|
||||
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
||||
|
||||
boot.initrd.luks.devices."cryptroot".allowDiscards = true;
|
||||
|
||||
fileSystems."/".options = [
|
||||
"compress=zstd"
|
||||
"discard=async"
|
||||
];
|
||||
|
||||
fileSystems."/nix".options = [
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
"discard=async"
|
||||
];
|
||||
|
||||
fileSystems."/home".options = [
|
||||
"compress=zstd"
|
||||
"discard=async"
|
||||
];
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/swapfile";
|
||||
size = 8 * 1045;
|
||||
}
|
||||
];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
|
||||
hardware.trackpoint.enable = true;
|
||||
|
||||
}
|
||||
46
hosts/nova/hardware-configuration.nix
Normal file
46
hosts/nova/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/mapper/cryptroot";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=root" ];
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/eaad533f-8586-4002-9c53-5aecf8e7abd8";
|
||||
|
||||
fileSystems."/nix" =
|
||||
{ device = "/dev/mapper/cryptroot";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=nix" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/mapper/cryptroot";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=home" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/7362-C4C4";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue