Compare commits

...

3 commits

Author SHA1 Message Date
28e84d34df mostly dotfiles 2026-04-15 22:04:14 +02:00
b4b1f4a63f dotfiles 2026-04-12 18:48:42 +02:00
e945735fa1 laptop 2026-03-29 14:23:01 +02:00
84 changed files with 1005 additions and 698 deletions

View 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

View 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

View 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

View 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
View 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
View 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
View file

@ -0,0 +1,2 @@
initial-color-theme=dark

49
dotfiles/foot/paper-color.ini Executable file
View 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

View file

@ -1,11 +1,5 @@
# Colors # color index_flags brightmagenta default '.*'
# color index_date cyan default
color status $my_primary_color default
color index $my_primary_color default '~N'
# color indicator default foreground
color index_flags brightmagenta default '.*'
color index_date cyan default
color header brightblack default ".*" color header brightblack default ".*"
color header brightgreen default "^(Subject)" color header brightgreen default "^(Subject)"
color header yellow default "^(From|To|CC|BCC)" color header yellow default "^(From|To|CC|BCC)"

203
dotfiles/niri/config.kdl Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
}

View file

9
dotfiles/niri/dms/wpblur.kdl Executable file
View 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
}

2
dotfiles/tmux/rloft.conf Normal file
View file

@ -0,0 +1,2 @@
split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore;
select-pane -l

45
dotfiles/tmux/tmux.conf Normal file
View 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"

53
flake.lock generated
View file

@ -8,11 +8,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1774065775, "lastModified": 1776052978,
"narHash": "sha256-anJXbdfZMhXWjHSfB5v6e8+yv1ASTHM4TwikH8tloMI=", "narHash": "sha256-WR0Svwg/JreBNW006qjHET6RRRmmjWCMfrkS5JmDZK8=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "4b3bbb9dc3c80d1b62228c9a2ca0bef74a24a192", "rev": "6c0e7f01d9315f4806a187c2ec58d0f3b6961876",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -29,11 +29,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1773963144, "lastModified": 1775425411,
"narHash": "sha256-WzBOBfSay3GYilUfKaUa1Mbf8/jtuAiJIedx7fWuIX4=", "narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a91b3ea73a765614d90360580b689c48102d1d33", "rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -50,11 +50,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1774007980, "lastModified": 1776046499,
"narHash": "sha256-FOnZjElEI8pqqCvB6K/1JRHTE8o4rer8driivTpq2uo=", "narHash": "sha256-Wzc4nn07/0RL21ypPHRzNDQZcjhIC8LaYo7QJQjM5T4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "9670de2921812bc4e0452f6e3efd8c859696c183", "rev": "287f84846c1eb3b72c986f5f6bebcff0bd67440d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -65,11 +65,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1773814637, "lastModified": 1775811116,
"narHash": "sha256-GNU+ooRmrHLfjlMsKdn0prEKVa0faVanm0jrgu1J/gY=", "narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fea3b367d61c1a6592bc47c72f40a9f3e6a53e96", "rev": "54170c54449ea4d6725efd30d719c5e505f1c10e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -81,11 +81,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1773821835, "lastModified": 1775710090,
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0", "rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -95,13 +95,34 @@
"type": "github" "type": "github"
} }
}, },
"quickshell": {
"inputs": {
"nixpkgs": [
"nixpkgs-unstable"
]
},
"locked": {
"lastModified": 1775720097,
"narHash": "sha256-p+vqkCuFfVNyQBo370wr6MebNUvz55RZiC0m8YKUhvQ=",
"ref": "refs/heads/master",
"rev": "d4c92973b53d9fa34cc110d3b974eb6bde5b3027",
"revCount": 800,
"type": "git",
"url": "https://git.outfoxxed.me/quickshell/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/quickshell/quickshell"
}
},
"root": { "root": {
"inputs": { "inputs": {
"firefox-addons": "firefox-addons", "firefox-addons": "firefox-addons",
"home-manager": "home-manager", "home-manager": "home-manager",
"home-manager-unstable": "home-manager-unstable", "home-manager-unstable": "home-manager-unstable",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable" "nixpkgs-unstable": "nixpkgs-unstable",
"quickshell": "quickshell"
} }
} }
}, },

View file

@ -21,6 +21,11 @@
inputs.nixpkgs.follows = "nixpkgs-unstable"; 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: { outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, home-manager-unstable, ... }@inputs: {
@ -40,7 +45,7 @@
till = { till = {
imports = [ imports = [
./home/minimal.nix ./home/minimal
./users/till/home.nix ./users/till/home.nix
]; ];
}; };
@ -90,21 +95,21 @@
till = { till = {
imports = [ imports = [
./home/desktop-full.nix ./home/desktop-full
./users/till/home.nix ./users/till/home.nix
]; ];
}; };
alt = { alt = {
imports = [ imports = [
./home/desktop-slim.nix ./home/desktop-slim
./users/alt/home.nix ./users/alt/home.nix
]; ];
}; };
guest = { guest = {
imports = [ imports = [
./home/desktop-slim.nix ./home/desktop-slim
./users/guest/home.nix ./users/guest/home.nix
]; ];
}; };

View file

@ -1,15 +0,0 @@
{ ... }:
{
imports = [
./desktop-slim.nix
./modules/messaging.nix
./modules/r.nix
./modules/tex.nix
./modules/mail.nix
./modules/office-gui.nix
./modules/office-cli.nix
./modules/aichat.nix
];
}

View file

@ -2,9 +2,17 @@
{ {
imports = [ imports = [
./khard-dump.nix ../desktop-slim
./tasks.nix
./aichat.nix
./calendars.nix ./calendars.nix
./khard-dump.nix
./mail.nix
./messaging.nix
./office-gui.nix
./r.nix
./tasks.nix
./tex.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [

View file

@ -85,11 +85,12 @@ in
''; '';
}; };
neomutt = { neomutt = {
extraConfig = '' extraConfig = makeConfig name + ''
set my_primary_color=blue color status blue default
color index blue default '~N'
alternates ^tstraube@(em|rz)?.uni-frankfurt.de$ alternates ^tstraube@(em|rz)?.uni-frankfurt.de$
set smime_is_default set smime_is_default
'' + makeConfig name; '';
}; };
}; };
@ -106,7 +107,7 @@ in
neomutt = { neomutt = {
extraConfig = makeConfig name + '' extraConfig = makeConfig name + ''
color status green default color status green default
set my_primary_color=green color index green default '~N'
alternates @t9e.me$ @ktiu.net$ ^(tillkowski|till.straube)@gmail.com$ alternates @t9e.me$ @ktiu.net$ ^(tillkowski|till.straube)@gmail.com$
set reverse_name set reverse_name
''; '';
@ -128,7 +129,7 @@ in
neomutt = { neomutt = {
extraConfig = makeConfig name + '' extraConfig = makeConfig name + ''
color status red default color status red default
set my_primary_color=red color index red default '~N'
''; '';
}; };
passwordCommand = "pass ksh/systemli"; passwordCommand = "pass ksh/systemli";
@ -262,14 +263,15 @@ in
{ key = "l"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><list-reply>"; } { key = "l"; map = [ "index" "pager" ]; action = "<enter-command>unset signature<enter><list-reply>"; }
]; ];
extraConfig = builtins.readFile ../dotfiles/neomutt/config.neomuttrc; extraConfig = builtins.readFile ../../dotfiles/neomutt/config.neomuttrc;
}; };
xdg.configFile."neomutt/colors.neomuttrc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/home/dotfiles/neomutt/colors.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/home/dotfiles/neomutt/bindings.neomuttrc"; xdg.configFile."neomutt/bindings.neomuttrc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/dotfiles/neomutt/bindings.neomuttrc";
programs.neovim.plugins = with pkgs.vimPlugins; [ programs.neovim.plugins = with pkgs.vimPlugins; [
{ {
plugin = vim-pathogen; plugin = vim-pathogen;
type = "viml";
config = "execute pathogen#infect()"; config = "execute pathogen#infect()";
} }
]; ];

View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
}

View file

@ -9,7 +9,6 @@
inkscape inkscape
libreoffice libreoffice
lorem lorem
nyxt
pdfpc pdfpc
poppler-utils poppler-utils
typst typst

View file

@ -53,7 +53,7 @@ in
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
R-packed R-packed
RStudio-packed # RStudio-packed
]; ];
home.shellAliases = { home.shellAliases = {

View file

@ -9,7 +9,7 @@
enable = true; enable = true;
package = pkgs.taskwarrior3; package = pkgs.taskwarrior3;
dataLocation = "${config.xdg.dataHome}/taskwarrior/tasks"; dataLocation = "${config.xdg.dataHome}/taskwarrior/tasks";
# colorTheme = "light-256"; colorTheme = "no-color";
config = { config = {
report.list.columns = ["id" "depends.indicator" "priority" "project" "recur.indicator" "scheduled.countdown" "due" "until.age" "status.short" "description.count" "tags"]; 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"]; report.list.labels= ["ID" "D" "Prio" "Proj" "R" "Scheduled" "Due" "Until" "S" "Description" "Tags"];

View file

@ -2,17 +2,17 @@
{ {
imports = [ imports = [
./minimal.nix ../minimal
./modules/devel.nix ./devel.nix
./modules/firefox.nix ./firefox.nix
./modules/fonts.nix ./fonts.nix
./modules/foot.nix ./gpg.nix
./modules/gpg.nix ./media.nix
./modules/media.nix ./niri.nix
./modules/niri.nix ./foot.nix
./modules/password-store.nix ./password-store.nix
./modules/user-dirs.nix ./user-dirs.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [

View file

@ -0,0 +1,8 @@
{ ... }:
{
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
}

View file

@ -51,6 +51,7 @@
template = "https://search.nixos.org/packages"; template = "https://search.nixos.org/packages";
params = [ params = [
{ name = "type"; value = "packages"; } { name = "type"; value = "packages"; }
{ name = "channel"; value = "unstable"; }
{ name = "query"; value = "{searchTerms}"; } { name = "query"; value = "{searchTerms}"; }
]; ];
}]; }];
@ -64,13 +65,27 @@
definedAliases = [ "@nw" ]; definedAliases = [ "@nw" ];
}; };
"NixOS Options" = { "NixOS Options" = {
urls = [{ template = "https://search.nixos.org/options?channel=${osConfig.system.nixos.release}&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"; icon = "https://nixos.org/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; updateInterval = 24 * 60 * 60 * 1000;
definedAliases = [ "@no" ]; definedAliases = [ "@no" ];
}; };
"Home manager options" = { "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";
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"; icon = "https://mipmip.github.io/home-manager-option-search/images/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; updateInterval = 24 * 60 * 60 * 1000;
definedAliases = [ "@hm" ]; definedAliases = [ "@hm" ];
@ -148,7 +163,6 @@
user_pref("signon.rememberSignons", false); user_pref("signon.rememberSignons", false);
user_pref("toolkit.telemetry.enabled", false); user_pref("toolkit.telemetry.enabled", false);
user_pref("toolkit.telemetry.server", ""); user_pref("toolkit.telemetry.server", "");
user_pref("widget.gtk.libadwaita-colors.enabled", false);
''; '';
}; };
}; };

View file

@ -0,0 +1,11 @@
{ config, ... }:
{
programs.foot = {
enable = true;
};
xdg.configFile."foot" = {
recursive = true;
source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/dotfiles/foot";
};
}

View 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;
};
};
}

View file

@ -4,6 +4,7 @@
xdg.userDirs = { xdg.userDirs = {
enable = true; enable = true;
createDirectories = true; createDirectories = true;
setSessionVariables = false;
desktop = "${config.home.homeDirectory}/desktop"; desktop = "${config.home.homeDirectory}/desktop";
documents = "${config.home.homeDirectory}/misc"; documents = "${config.home.homeDirectory}/misc";
download = "${config.home.homeDirectory}/tmp"; download = "${config.home.homeDirectory}/tmp";

View file

@ -1,39 +0,0 @@
[colors-light]
alpha=1.0
background=eeeeee
bright0=585858
bright1=d70000
bright2=5faf5f
bright3=ffaf00
bright4=0087af
bright5=ff5faf
bright6=00afaf
bright7=bcbcbc
cursor=eeeeee 1c1c1c
foreground=1c1c1c
regular0=1c1c1c
regular1=af0000
regular2=008700
regular3=d75f00
regular4=005faf
regular5=d70087
regular6=005f87
regular7=ffffff
[csd]
size=0
[cursor]
blink=true
style=beam
[key-bindings]
show-urls-copy=Control+Shift+y
show-urls-launch=Control+Shift+g
[main]
font=JetBrains Mono:size=12
pad=15x15
[mouse]
hide-when-typing=yes

View file

@ -1,186 +0,0 @@
;==========================================================
;
;
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
;
;
; To learn more about how to configure Polybar
; go to https://github.com/polybar/polybar
;
; The README contains a lot of information
;
;==========================================================
[colors]
background = #282A2E
background-alt = #373B41
foreground = #C5C8C6
primary = #F0C674
secondary = #8ABEB7
alert = #A54242
disabled = #707880
[bar/example]
width = 100%
height = 35pt
radius = 0
offset-x = 0
; dpi = 96
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3pt
border-size = 4pt
border-color = #00000000
padding-left = 0
padding-right = 1
module-margin = 1
separator = |
separator-foreground = ${colors.disabled}
font-0 = monospace;2
modules-left = xworkspaces xwindow
modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth date
cursor-click = pointer
cursor-scroll = ns-resize
enable-ipc = true
; wm-restack = generic
; wm-restack = bspwm
; wm-restack = i3
override-redirect = false
; This module is not active by default (to enable it, add it to one of the
; modules-* list above).
; Please note that only a single tray can exist at any time. If you launch
; multiple bars with this module, only a single one will show it, the others
; will produce a warning. Which bar gets the module is timing dependent and can
; be quite random.
; For more information, see the documentation page for this module:
; https://polybar.readthedocs.io/en/stable/user/modules/tray.html
[module/systray]
type = internal/tray
format-margin = 8pt
tray-spacing = 16pt
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
label-layout = %layout%
label-layout-foreground = ${colors.primary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-foreground = ${colors.background}
label-indicator-background = ${colors.secondary}
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used:2%%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
[module/date]
type = internal/date
interval = 1
date = %H:%M
date-alt = %Y-%m-%d %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini

View file

@ -1,219 +0,0 @@
// -*- mode: jsonc -*-
{
// "layer": "top", // Waybar at top layer
// "position": "bottom", // Waybar position (top|bottom|left|right)
"height": 20, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 2, // Gaps between modules (4px)
// Choose the order of the modules
"modules-left": [
"sway/workspaces",
"sway/mode",
"sway/scratchpad",
"custom/media"
],
"modules-center": [
"sway/window"
],
"modules-right": [
"mpd",
"idle_inhibitor",
"pulseaudio",
"network",
"power-profiles-daemon",
"cpu",
"memory",
"temperature",
"backlight",
"keyboard-state",
"sway/language",
"battery",
"battery#bat2",
"clock",
"tray",
"custom/power"
],
// Modules configuration
// "sway/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
// "warp-on-scroll": false,
// "format": "{name}: {icon}",
// "format-icons": {
// "1": "",
// "2": "",
// "3": "",
// "4": "",
// "5": "",
// "urgent": "",
// "focused": "",
// "default": ""
// }
// },
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": ["", ""],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 5,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10,
// "icons": {
// "blueman": "bluetooth",
// "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
// }
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["󰉬", "", "󰉪"]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% 󰃨",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ipaddr}/{cidr} 󰊗",
"tooltip-format": "{ifname} via {gwaddr} 󰊗",
"format-linked": "{ifname} (No IP) 󰊗",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": "󰅶 {icon} {format_source}",
"format-muted": "󰅶 {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "󰂑",
"headset": "󰂑",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{icon} {text}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
},
"custom/power": {
"format" : "⏻ ",
"tooltip": false,
"menu": "on-click",
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
"menu-actions": {
"shutdown": "shutdown",
"reboot": "reboot",
"suspend": "systemctl suspend",
"hibernate": "systemctl hibernate"
}
}
}

View file

@ -6,11 +6,11 @@
home.homeDirectory = "/home/${config.home.username}"; home.homeDirectory = "/home/${config.home.username}";
imports = [ imports = [
./modules/fish.nix ./fish.nix
./modules/vifm.nix ./vifm.nix
./modules/nvim ./nvim
./modules/tmux.nix ./tmux.nix
./modules/git.nix ./git.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
@ -30,13 +30,13 @@
]; ];
home.shellAliases = { home.shellAliases = {
cdg = "cd \$(git rev-parse --show-toplevel)"; cdg = "cd \$(git rev-parse --show-toplevel)";
dmy = "date +'%-d.-%-m.%Y'"; dmy = "date +'%-d.-%-m.%Y'";
du = "dust"; du = "dust";
ls = "eza"; ls = "eza";
tree = "eza --tree"; tree = "eza --tree";
top = "btm --battery"; top = "btm --battery";
ymd = "date +'%Y-%m-%d'"; ymd = "date +'%Y-%m-%d'";
}; };
programs.nix-index = { programs.nix-index = {
@ -46,7 +46,6 @@
programs.bottom = { programs.bottom = {
enable = true; enable = true;
# settings.styles.theme = "default-light";
}; };
home.stateVersion = "22.11"; home.stateVersion = "22.11";

View file

@ -3,6 +3,7 @@
{ {
programs.git = { programs.git = {
enable = true; enable = true;
signing.format = "openpgp";
settings = { settings = {
pull.rebase = true; pull.rebase = true;
extraConfig.init.defaultBranch = "main"; extraConfig.init.defaultBranch = "main";

View file

@ -31,6 +31,9 @@ let g:netrw_fastbrowse = 0
nnoremap Y y$ 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 gF :edit <cfile><return>
nnoremap gx :! xdg-open <cfile><return> nnoremap gx :! xdg-open <cfile><return>

View file

@ -69,6 +69,7 @@
{ {
plugin = goyo-vim; plugin = goyo-vim;
type = "viml";
config = '' config = ''
nnoremap <silent> yog :Goyo<CR> nnoremap <silent> yog :Goyo<CR>
nnoremap <silent> [og :Goyo 80<return> nnoremap <silent> [og :Goyo 80<return>
@ -77,6 +78,7 @@
} }
{ {
plugin = limelight-vim; plugin = limelight-vim;
type = "viml";
config = '' config = ''
set termguicolors set termguicolors
let g:limelight_conceal_ctermfg = 'darkgray' let g:limelight_conceal_ctermfg = 'darkgray'
@ -97,6 +99,7 @@
{ {
plugin = nvim-colorizer-lua; plugin = nvim-colorizer-lua;
type = "viml";
config = "lua require 'colorizer'.setup()"; config = "lua require 'colorizer'.setup()";
} }
@ -135,20 +138,22 @@
''; '';
} }
{
plugin = catppuccin-nvim;
config = ''
colorscheme catppuccin-nvim
'';
}
# { # {
# plugin = papercolor-theme; # plugin = catppuccin-nvim;
# type = "viml";
# config = '' # config = ''
# colorscheme PaperColor # colorscheme catppuccin-nvim
# ''; # '';
# } # }
{
plugin = papercolor-theme;
type = "viml";
config = ''
colorscheme PaperColor
'';
}
quarto-nvim quarto-nvim
typescript-vim typescript-vim
@ -164,6 +169,7 @@
{ {
plugin = vim-astro; plugin = vim-astro;
type = "viml";
config = '' config = ''
let g:astro_typescript = 'enable' let g:astro_typescript = 'enable'
''; '';
@ -173,30 +179,29 @@
{ {
plugin = vim-easy-align; plugin = vim-easy-align;
type = "viml";
config = '' config = ''
xmap ga <Plug>(EasyAlign) xmap ga <Plug>(EasyAlign)
nmap ga <Plug>(EasyAlign) nmap ga <Plug>(EasyAlign)
''; '';
} }
{ vim-fish
plugin = vim-fish;
}
vim-nix vim-nix
{ # {
plugin = vim-pandoc; # plugin = vim-pandoc;
config = '' # config = ''
let g:pandoc#modules#disabled = ["completion", "command", "menu"] # let g:pandoc#modules#disabled = ["completion", "command", "menu"]
''; # '';
} # }
vim-pandoc-syntax vim-pandoc-syntax
vim-repeat vim-repeat
{ {
plugin = vim-slime; plugin = vim-slime;
type = "viml";
config = '' config = ''
let g:slime_target = "tmux" let g:slime_target = "tmux"
let g:slime_default_config = {"socket_name": get(split($TMUX, ","), 0), "target_pane": ":.2"} let g:slime_default_config = {"socket_name": get(split($TMUX, ","), 0), "target_pane": ":.2"}
@ -215,6 +220,7 @@
{ {
plugin = vim-unimpaired; plugin = vim-unimpaired;
type = "viml";
config = '' config = ''
nnoremap =p <Nop> nnoremap =p <Nop>
nnoremap =P <Nop> nnoremap =P <Nop>
@ -224,6 +230,7 @@
{ {
plugin = vimwiki; plugin = vimwiki;
type = "viml";
config = '' config = ''
let g:vimwiki_list = [ { 'path': '~/notes/', 'syntax': 'markdown', 'ext': '.md' } ] let g:vimwiki_list = [ { 'path': '~/notes/', 'syntax': 'markdown', 'ext': '.md' } ]
nnoremap <Leader>wt <Nop> nnoremap <Leader>wt <Nop>
@ -234,6 +241,9 @@
''; '';
} }
]; ];
withRuby = false;
withPython3 = true;
}; };
xdg.configFile."nvim" = { xdg.configFile."nvim" = {

16
home/minimal/tmux.nix Normal file
View 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;
};
}

12
home/minimal/vifm.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
programs.vifm = {
enable = true;
extraConfig = "
set vicmd=nvim
filetype * xdg-open
colorscheme Default
";
};
}

View file

@ -1,13 +0,0 @@
{ config, pkgs, ... }:
{
home.file.".npmrc".text = ''
prefix = ${config.xdg.dataHome}/npm/packages
'';
home.packages = with pkgs; [
nodejs
];
programs.direnv.enable = true;
}

View file

@ -1,8 +0,0 @@
{ config, pkgs, lib, ... }:
{
programs.foot = {
enable = true;
};
xdg.configFile."foot/foot.ini".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/home/dotfiles/foot/foot.ini";
}

View file

@ -1,15 +0,0 @@
{ pkgs, config, ... }:
{
services.swayidle.enable = true; # idle management daemon
services.polkit-gnome.enable = true; # polkit
home.packages = with pkgs; [
wl-mirror
xwayland-satellite
];
programs.ghostty.enable = true;
# xdg.configFile."polybar/config.ini".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/home/dotfiles/polybar/config.ini";
}

View file

@ -1,61 +0,0 @@
{ 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 -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 ${ pkgs.writeText "tmux-rloft" ''
split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore;
select-pane -l
''}
# 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"
'';
};
}

View file

@ -1,30 +0,0 @@
{ config, pkgs, ... }:
{
programs.vifm = {
enable = true;
extraConfig = "
colorscheme light
set vicmd=nvim
filetype * xdg-open
";
};
xdg.configFile."vifm/colors/light.vifm".text = ''
highlight clear
highlight Win cterm=none ctermfg=black ctermbg=default
highlight Directory cterm=none ctermfg=cyan ctermbg=default
highlight Link cterm=none ctermfg=yellow ctermbg=default
highlight BrokenLink cterm=none ctermfg=white ctermbg=red
highlight Socket cterm=none ctermfg=red ctermbg=default
highlight Device cterm=none ctermfg=red ctermbg=default
highlight Fifo cterm=none ctermfg=black ctermbg=cyan
highlight Executable cterm=none ctermfg=green ctermbg=default
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold ctermfg=white ctermbg=magenta
highlight TopLine cterm=bold ctermfg=magenta ctermbg=default
highlight TopLineSel cterm=bold ctermfg=magenta ctermbg=white
highlight StatusLine cterm=bold ctermfg=magenta ctermbg=white
highlight CmdLine cterm=bold ctermfg=magenta ctermbg=default
highlight Border cterm=none ctermfg=default ctermbg=default
'';
}

View file

@ -23,6 +23,5 @@
]; ];
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
} }

View file

@ -4,7 +4,7 @@
networking.hostName = "homer"; networking.hostName = "homer";
imports = [ imports = [
./hardware.nix ./hardware-configuration.nix
../../system ../../system
../../system/desktop ../../system/desktop
../../system/desktop/gnome.nix ../../system/desktop/gnome.nix

View file

@ -7,11 +7,11 @@
./hardware-configuration.nix ./hardware-configuration.nix
../../users/alt/system.nix ../../users/alt/system.nix
../../users/guest/system.nix ../../users/guest/system.nix
../../system ../../system
../../system/desktop ../../system/desktop
../../system/desktop/laptop.nix
../../system/desktop/ergodox-udev.nix ../../system/desktop/ergodox-udev.nix
# ../../system/desktop/gnome.nix
../../system/desktop/cosmic.nix
../../system/desktop/niri.nix ../../system/desktop/niri.nix
../../system/desktop/steam.nix ../../system/desktop/steam.nix
../../system/desktop/yubikey-pam.nix ../../system/desktop/yubikey-pam.nix
@ -49,7 +49,7 @@
]; ];
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; # powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
hardware.trackpoint.enable = true; hardware.trackpoint.enable = true;
} }

View file

@ -2,7 +2,7 @@
{ {
services.btrbk.instances.btrbk = { services.btrbk.instances.btrbk = {
onCalendar = "hourly"; # onCalendar = "hourly";
settings = { settings = {
subvolume = "/home"; subvolume = "/home";
snapshot_preserve = "40d"; snapshot_preserve = "40d";

View file

@ -6,6 +6,8 @@
./btrbk.nix ./btrbk.nix
]; ];
hardware.bluetooth.enable = true;
networking.networkmanager = { networking.networkmanager = {
enable = true; enable = true;
plugins = with pkgs; [ networkmanager-openvpn ]; plugins = with pkgs; [ networkmanager-openvpn ];
@ -53,6 +55,9 @@
programs.gnupg.agent = { programs.gnupg.agent = {
enable = true; enable = true;
pinentryPackage = pkgs.pinentry-all; pinentryPackage = pkgs.pinentry-all;
# pinentry.program = "pinentry"; settings = {
default-cache-ttl = 34560000;
max-cache-ttl = 34560000;
};
}; };
} }

24
system/desktop/laptop.nix Normal file
View file

@ -0,0 +1,24 @@
{ lib, ... }:
{
services.thermald.enable = true;
services.power-profiles-daemon.enable = lib.mkForce false;
services.auto-cpufreq.enable = true;
services.auto-cpufreq.settings = {
battery = {
governor = "powersave";
energy_performance_preference = "power";
turbo = "never";
ideapad_laptop_conservation_mode = true;
# enable_thresholds = true;
# start_threshold = 20;
# stop_threshold = 80;
};
charger = {
governor = "performance";
energy_performance_preference = "performance";
turbo = "auto";
};
};
}

View file

@ -1,12 +1,39 @@
{ lib, ... }: { lib, pkgs, inputs, ... }:
{ {
programs.niri.enable = true; programs.niri.enable = true;
programs.dms-shell.enable = true;
services.gnome.gnome-keyring.enable = lib.mkForce false;
programs.nm-applet.enable = false;
# programs.firefox.preferences = { programs.dms-shell = {
# "widget.gtk.libadwaita-colors.enabled" = false; enable = true;
# }; systemd.enable = true;
quickshell.package = inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.quickshell;
enableSystemMonitoring = false;
};
services.displayManager.dms-greeter = {
enable = true;
compositor.name = "niri";
configHome = "/home/till";
};
services.gnome.gnome-keyring.enable = lib.mkForce false;
programs.nm-applet.enable = lib.mkForce false;
environment.systemPackages = with pkgs; [
nirius
papirus-icon-theme
phinger-cursors
];
systemd.user.services."niriusd" = {
enable = true;
wantedBy = [ "niri.service" ];
after = [ "niri.service" ];
description = "Nirius daemon";
serviceConfig = {
ExecStart = "${pkgs.nirius}/bin/niriusd";
};
};
services.upower.enable = true;
} }

View file

@ -11,18 +11,18 @@
services.udev = { services.udev = {
packages = [ pkgs.yubikey-personalization ]; packages = [ pkgs.yubikey-personalization ];
# extraRules = '' extraRules = ''
# ACTION=="remove",\ ACTION=="remove",\
# ENV{ID_BUS}=="usb",\ ENV{ID_BUS}=="usb",\
# ENV{ID_MODEL_ID}=="0407",\ ENV{ID_MODEL_ID}=="0407",\
# ENV{ID_VENDOR_ID}=="1050",\ ENV{ID_VENDOR_ID}=="1050",\
# ENV{ID_VENDOR}=="Yubico",\ ENV{ID_VENDOR}=="Yubico",\
# RUN+="${pkgs.systemd}/bin/loginctl lock-sessions" RUN+="${pkgs.systemd}/bin/loginctl lock-sessions"
# ''; '';
}; };
# security.pam.services = { security.pam.services = {
# login.u2fAuth = true; login.u2fAuth = true;
# sudo.u2fAuth = true; sudo.u2fAuth = true;
# }; };
} }