Compare commits

..

7 commits
main ... xorg

Author SHA1 Message Date
85763c692b xorg mode 2021-10-04 10:31:23 +02:00
92140a3cdf use unstable alias for astroid 2021-10-04 10:30:38 +02:00
50cdf4841e set default sample-rate to 48khz 2021-10-04 10:30:15 +02:00
5e7d1855a3 vsink alias for values sink in helm 2021-10-04 10:29:50 +02:00
f3f9e35af4 k = kubectl alias 2021-10-04 10:28:46 +02:00
e5ea0ddcc1 auto-update nixos 2021-10-04 10:28:34 +02:00
ad8f521e62 use python 3.8 for nagstamon 2021-10-04 10:27:44 +02:00
43 changed files with 1034 additions and 15167 deletions

View file

@ -5,24 +5,20 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
imports = [ imports =
# custom modules [
./modules/colors.nix # Include the results of the hardware scan.
./hardware-configuration.nix
# Include the results of the hardware scan. ./roles/admin.nix
./hardware-configuration.nix ./roles/base.nix
./roles/desktop.nix
# roles ./roles/dev.nix
./roles/admin.nix ./roles/mail.nix
./roles/base.nix ./roles/vpn.nix
./roles/desktop.nix ./roles/network.nix
./roles/dev.nix ./roles/work.nix
./roles/mail.nix ];
./roles/network.nix
./roles/nix.nix
./roles/vpn.nix
./roles/work.nix
];
networking.useDHCP = false; networking.useDHCP = false;
@ -30,16 +26,13 @@
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
services.openssh.enable = true; services.openssh.enable = true;
networking.firewall.enable = true; networking.firewall.enable = true;
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"openssl-1.0.2u" "openssl-1.0.2u"
"python3.10-kerberos-1.3.1"
]; ];
# removed for mobile working system.autoUpgrade.enable = true;
# system.autoUpgrade.enable = true;
system.stateVersion = "20.03"; # We can stay here system.stateVersion = "20.03"; # We can stay here
} }

View file

@ -1,38 +1,28 @@
font: font:
normal: normal:
family: CaskaydiaCove Nerd Font family: Cascadia Code
size: 8 size: 12
background_opacity: 0.9
draw_bold_text_with_bright_colors: true draw_bold_text_with_bright_colors: true
colors: colors:
primary: primary:
background: '0xf8f8f8' background: "0x19181A"
foreground: '0x2a2b33' foreground: "0xFCFCFA"
normal: normal:
black: '0x000000' black: "0x19181A"
red: '0xde3d35' red: "0xcc6666"
green: '0x3e953a' green: "0xa9dc76"
yellow: '0xd2b67b' yellow: "0xffd866"
blue: '0x2f5af3' cyan: "0x78dce8"
magenta: '0xa00095' magenta: "0xFC9867"
cyan: '0x3e953a' blue: "0xAB9DF2"
white: '0xbbbbbb' white: "0xFCFCFA"
bright:
black: '0x000000'
red: '0xde3d35'
green: '0x3e953a'
yellow: '0xd2b67b'
blue: '0x2f5af3'
magenta: '0xa00095'
cyan: '0x3e953a'
white: '0xffffff'
window: window:
dynamic_title: true dynamic_title: true
opacity: 0.9
env: env:
TERM: xterm-256color TERM: xterm-256color

147
dotfiles/i3/config Normal file
View file

@ -0,0 +1,147 @@
# config
set $mod Mod1
set $left h
set $down j
set $up k
set $right l
set $term alacritty
set $menu bemenu-run -H 23 -b -p run \
--ff=#ff6188 \
--nf=#fcfcfa \
--tf=#78dce8 \
--hf=#78dce8 \
--tb=#2d2a2e \
--fb=#2d2a2e \
--nb=#2d2a2e \
--hb=#2d2a2e \
--sb=#2d2a2e
# user keybinds
bindsym $mod+Return exec $term
bindsym $mod+Shift+q kill
bindsym $mod+d exec $menu
floating_modifier $mod normal
bindsym $mod+Shift+c reload
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
bindsym $mod+Shift+p exec keepassxc
bindsym $mod+z exec swaylock -t -i /home/stefan/Downloads/bg.jpg --scaling=fill
bindsym $mod+Up exec light -A 5
bindsym $mod+Down exec light -U 5
bindsym Print exec "maim -s -c 1,0,0,0.6 -p 10"
# app rules
#for_window [app_id="org.keepassxc.KeePassXC"] floating enable
#for_window [title="Firefox — Sharing Indicator"] floating enable
#for_window [title="Picture-in-Picture"] floating enable
# font
font Cascadia Code 10
# colors
set $black #2d2a2e
set $base00 #2d2a2e
set $base01 #ff6188
set $base02 #a9dc76
set $base03 #ffd866
set $base04 #78dce8
set $base05 #ab9df2
set $base06 #fcfcfa
set $base07 #fcfcfa
set $base08 #323232
set $base09 #cc6666
set $base0A #ffd866
set $base0B #78dce8
set $base0C #ab9df2
set $base0D #ff6188
set $base0E #a6dc76
set $base0F #ffffff
# border background text indicator
client.focused $base04 $base00 $base07 $base04 $base04
client.focused_inactive $base00 $base00 $base07 $base00 $base00
client.unfocused $black $black $base07 $base00 $base00
client.urgent $base01 $base01 $base00 $base08 $base07
# movement
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
bindsym $mod+b splith
bindsym $mod+v splitv
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+f fullscreen
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show
mode "resize" {
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
bar {
position bottom
colors {
background $black
statusline $base07
separator $base04
# border back text
focused_workspace $base04 $base04 $base00
active_workspace $base04 $base04 $base00
urgent_workspace $base01 $base01 $base07
inactive_workspace $base00 $base00 $base07
}
status_command i3status-rs /etc/sway/status.toml
}
exec mako --border-color=#cc6666 \
--background-color=#2d2a2eee
exec emacs --daemon
set $gnome-schema org.gnome.desktop.interface
exec_always {
gsettings set $gnome-schema gtk-theme 'Arc-Dark'
gsettings set $gnome-schema icon-theme 'elementary Xfce'
gsettings set $gnome-schema cursor-theme 'Capitaine Cursors - White'
}

106
dotfiles/i3/status.toml Normal file
View file

@ -0,0 +1,106 @@
[theme]
name = "plain"
[theme.overrides]
idle_bg = "#2d2a2e"
idle_fg = "#eeeeee"
info_bg = "#2d2a2e"
info_fg = "#eeeeee"
good_bg = "#2d2a2e"
good_fg = "#a9dc76"
warning_bg = "#2d2a2e"
warning_fg = "#ffd866"
critical_bg = "#2a2e38"
critical_fg = "#ff665c"
separator_bg = "#2d2a2e"
separator_fg = "#555555"
separator = "|"
[icons]
name = "none"
[icons.overrides]
bat = "  "
bat_full = "  "
bat_charging = "   "
bat_discharging = "  "
backlight_empty = "  "
backlight_partial1 = "  "
backlight_partial2 = "  "
backlight_partial3 = "  "
backlight_full = "  "
volume_full = "  "
volume_half = "  "
volume_empty = "  "
volume_muted= "MUTE"
cogs = "  "
memory_mem = "  "
headphones = "  "
net_wireless = " "
net_vpn = " "
net_wired = ""
net_up = "UP"
net_down = "DOWN"
thermometer = "  "
[[block]]
block = "net"
device = "wg"
ip = true
ssid = false
speed_up = false
speed_down = false
hide_inactive = true
hide_missing = true
[[block]]
block = "net"
device = "wlo1"
ip = true
ssid = true
speed_up = false
speed_down = false
hide_inactive = true
hide_missing = true
[[block]]
block = "custom"
command = '''echo " $(cat /sys/class/thermal/thermal_zone0/temp | head -c 2) °C"'''
[[block]]
block = "disk_space"
path = "/"
alias = " /"
info_type = "available"
unit = "GB"
interval = 20
warning = 20.0
alert = 10.0
[[block]]
block = "memory"
display_type = "memory"
format_mem = "{Mup}%"
clickable = false
[[block]]
block = "load"
interval = 1
format = "{1m}"
[[block]]
block = "sound"
driver = "pulseaudio"
[[block]]
block = "backlight"
[[block]]
block = "battery"
device = "BAT0"
interval = 10
format = "{percentage}% {time}"
[[block]]
block = "time"
interval = 60
format = "%Y-%m-%d %H:%M"

View file

@ -1,48 +1,29 @@
# colors
set $black #000000
set $red #e75544
set $cyan #3c74f6
set $white #fafafa
set $yellow #908550
set $violet #a73ca6
#set $black2 #323232
set $white2 #f0f0f0
# config # config
set $mod Mod1 set $mod Mod1
set $left h set $left h
set $down j set $down j
set $up k set $up k
set $right l set $right l
#set $term wezterm
set $term alacritty set $term alacritty
set $wallpaper /home/stefan/wall.png
set $lock swaylock -t -i $wallpaper --scaling=fill # echo -- bemenu -H 23 -b -p run --{ff,nf}=#eeeeeee --{tf,hf}=#78dce8 --{tb,fb,nb,hb,sb}=#2d2a2e
set $font CaskaydiaCove Nerd Font 10
set $menucolor -H 23 -b \ set $menu bemenu-run -H 23 -b -p run \
--tf=$white --tb=$cyan \ --ff=#ff6188 \
--ff=$black --fb=$white \ --nf=#fcfcfa \
--cf=$cyan --cb=$white \ --tf=#78dce8 \
--nf=$black --nb=$white \ --hf=#78dce8 \
--af=$black --ab=$white2 \ --tb=#2d2a2e \
--hf=$white --hb=$cyan \ --fb=#2d2a2e \
--sf=$white --sb=$cyan --nb=#2d2a2e \
set $menu bemenu-run -p run $menucolor --hb=#2d2a2e \
set $otpmenu ykman oath accounts code -s "$(ykman oath accounts list | bemenu -i $menucolor)" | wl-copy --sb=#2d2a2e
font $font
input "1:1:AT_Translated_Set_2_keyboard" xkb_layout de input "1:1:AT_Translated_Set_2_keyboard" xkb_layout de
input "0:0:TUXEDO_Keyboard" xkb_layout de
input 1130:35:HID_046a:0023 xkb_layout de
input "2362:628:PIXA3854:00_093A:0274_Touchpad" click_method clickfinger
input * xkb_options compose:paus
output * bg $wallpaper fill output * bg /home/stefan/Downloads/bg.jpg fill
output "BenQ Corporation BenQ SW2700 83H03922SL0" res --custom 2560x1440@60Hz #output * bg /home/stefan/Sync/wall/nasa-yZygONrUBe8-unsplash.jpg fill
output "BenQ Corporation BenQ SW2700 83H03922SL0" pos 1440 720 output DP-1 res 5120x1440
output "BNQ BenQ PD2705Q W4N00777019" pos 0 0
output "Dell Inc. Dell U4919DW HZVZWP2" res 5120x1440
output eDP-1 scale 1.25
# user keybinds # user keybinds
bindsym $mod+Return exec $term bindsym $mod+Return exec $term
@ -51,15 +32,10 @@ bindsym $mod+d exec $menu
floating_modifier $mod normal floating_modifier $mod normal
bindsym $mod+Shift+c reload bindsym $mod+Shift+c reload
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
bindsym $mod+o exec keepassxc bindsym $mod+Shift+p exec keepassxc
bindsym $mod+Shift+o exec $otpmenu bindsym $mod+z exec swaylock -t -i /home/stefan/Downloads/bg.jpg --scaling=fill
bindsym $mod+z exec $lock
bindsym $mod+Up exec light -A 5 bindsym $mod+Up exec light -A 5
bindsym $mod+Down exec light -U 5 bindsym $mod+Down exec light -U 5
bindsym $mod+c exec alacritty --class float -t pyCalc -e python
bindsym $mod+i exec alacritty --class float -t numbat -e numbat
bindsym $mod+m exec swayr switch-to
bindsym $mod+n exec emacsclient -cn
bindsym Print exec grim -g "$(slurp)" - | wl-copy -t image/png bindsym Print exec grim -g "$(slurp)" - | wl-copy -t image/png
bindswitch --reload --locked lid:on output eDP-1 disable bindswitch --reload --locked lid:on output eDP-1 disable
bindswitch --reload --locked lid:off output eDP-1 enable bindswitch --reload --locked lid:off output eDP-1 enable
@ -68,14 +44,34 @@ bindswitch --reload --locked lid:off output eDP-1 enable
for_window [app_id="org.keepassxc.KeePassXC"] floating enable for_window [app_id="org.keepassxc.KeePassXC"] floating enable
for_window [title="Firefox — Sharing Indicator"] floating enable for_window [title="Firefox — Sharing Indicator"] floating enable
for_window [title="Picture-in-Picture"] floating enable for_window [title="Picture-in-Picture"] floating enable
for_window [title="pyCalc"] floating enable
for_window [title="numbat"] floating enable
# border backgnd text indicator childborder # font
client.focused $cyan $white $black $violet $cyan font Cascadia Code 10
client.focused_inactive $white2 $white2 $black $white2 $white
client.unfocused $white2 $white2 $black $white2 $white # colors
client.urgent $red $red $white $white2 $black set $black #2d2a2e
set $base00 #2d2a2e
set $base01 #ff6188
set $base02 #a9dc76
set $base03 #ffd866
set $base04 #78dce8
set $base05 #ab9df2
set $base06 #fcfcfa
set $base07 #fcfcfa
set $base08 #323232
set $base09 #cc6666
set $base0A #ffd866
set $base0B #78dce8
set $base0C #ab9df2
set $base0D #ff6188
set $base0E #a6dc76
set $base0F #ffffff
# border background text indicator
client.focused $base04 $base00 $base07 $base04 $base04
client.focused_inactive $base00 $base00 $base07 $base00 $base00
client.unfocused $black $black $base07 $base00 $base00
client.urgent $base01 $base01 $base00 $base08 $base07
# movement # movement
@ -132,56 +128,32 @@ mode "resize" {
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
mode "umlaut" {
bindsym s exec wtype ß
bindsym a exec wtype ä
bindsym o exec wtype ö
bindsym u exec wtype ü
bindsym Shift+a exec wtype Ä
bindsym Shift+o exec wtype Ö
bindsym Shift+u exec wtype Ü
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+u mode "umlaut"
bar { bar {
font $font
position bottom position bottom
colors { colors {
background $white background $black
statusline $black statusline $base07
separator $cyan separator $base04
# border back text
focused_workspace $base04 $base04 $base00
active_workspace $base04 $base04 $base00
urgent_workspace $base01 $base01 $base07
inactive_workspace $base00 $base00 $base07
# border back text
focused_workspace $cyan $cyan $white
active_workspace $cyan $cyan $white
urgent_workspace $red $red $black
inactive_workspace $white $white $black
} }
status_command i3status-rs /etc/sway/status.toml status_command i3status-rs /etc/sway/status.toml
} }
include /etc/sway/config.d/*
exec mako --border-color=#cc6666 \
--background-color=#2d2a2eee
exec emacs --daemon
set $gnome-schema org.gnome.desktop.interface set $gnome-schema org.gnome.desktop.interface
exec_always { exec_always {
gsettings set $gnome-schema cursor-theme Adwaita gsettings set $gnome-schema gtk-theme 'Arc-Dark'
gsettings set $gnome-schema icon-theme 'capitaine-cursors-white' gsettings set $gnome-schema icon-theme 'elementary Xfce'
gsettings set $gnome-schema cursor-theme 'capitaine-cursors-white' gsettings set $gnome-schema cursor-theme 'Capitaine Cursors - White'
} }
# autostarts
exec swaync
exec emacs --daemon
exec swayidle before-sleep "$lock"
exec /run/current-system/sw/libexec/polkit-gnome-authentication-agent-1
exec systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
exec bash -c '[ "$HOSTNAME" == sphere ] && cloudstation'
exec swayrd
exec xinput set-prop "PIXA3854:00 093A:0274 Touchpad" 365 1
# pastebin
exec wl-paste --primary -t text --watch clipman store
bindsym $mod+p exec clipman pick -t "bemenu" --tool-args='-b --fn "$font" -l 10 $menucolor'

View file

@ -1,61 +1,58 @@
[theme] [theme]
theme = "plain" name = "plain"
[theme.overrides] [theme.overrides]
idle_bg = "#fafafa" idle_bg = "#2d2a2e"
idle_fg = "#000000" idle_fg = "#eeeeee"
info_bg = "#fafafa" info_bg = "#2d2a2e"
info_fg = "#000000" info_fg = "#eeeeee"
good_bg = "#fafafa" good_bg = "#2d2a2e"
good_fg = "#000000" good_fg = "#a9dc76"
warning_bg = "#fafafa" warning_bg = "#2d2a2e"
warning_fg = "#908550" warning_fg = "#ffd866"
critical_bg = "#fafafa" critical_bg = "#2a2e38"
critical_fg = "#e75544" critical_fg = "#ff665c"
separator_bg = "#fafafa" separator_bg = "#2d2a2e"
separator_fg = "#3c74f6" separator_fg = "#555555"
separator = "|" separator = "|"
[icons] [icons]
icons = "none" name = "none"
[icons.overrides] [icons.overrides]
backlight = [ bat = "  "
"󰌶", bat_full = "  "
"󱩏", bat_charging = "   "
"󱩒", bat_discharging = "  "
"󱩕", backlight_empty = "  "
"󰛨", backlight_partial1 = "  "
] backlight_partial2 = "  "
bat = [ backlight_partial3 = "  "
"󱃍 ", backlight_full = "  "
"󰁻", volume_full = "  "
"󰁾", volume_half = "  "
"󰂁", volume_empty = "  "
"󰁹", volume_muted= "MUTE"
] cogs = "  "
bat_charging = "" memory_mem = "  "
cogs = "" headphones = "  "
disk_drive = "󱛟" net_wireless = " "
headphones = "  "
memory_mem = "󰍛"
net_down = "󰅛"
net_up = "󰱓"
net_vpn = " " net_vpn = " "
net_wired = "" net_wired = ""
net_wireless = " 󰖩" net_up = "UP"
thermometer = " 󰔏 " net_down = "DOWN"
time = "󰥔" thermometer = "  "
volume_muted = "󰖁 MUTE"
volume = [
"",
"󰕾",
"",
]
[[block]] [[block]]
block = "net" block = "net"
device = "wlp166s0" device = "wg"
format = " $icon $ip$frequency " hide_inactive = true
hide_missing = true
[[block]]
block = "net"
device = "wlo1"
hide_inactive = true
hide_missing = true
[[block]] [[block]]
block = "custom" block = "custom"
@ -64,20 +61,23 @@ command = '''echo " $(cat /sys/class/thermal/thermal_zone0/temp | head -c 2)
[[block]] [[block]]
block = "disk_space" block = "disk_space"
path = "/" path = "/"
alias = " /"
info_type = "available" info_type = "available"
format = " $icon $available " unit = "GB"
interval = 20 interval = 20
warning = 20.0 warning = 20.0
alert = 10.0 alert = 10.0
[[block]] [[block]]
block = "memory" block = "memory"
format = " $icon $mem_used/$mem_total " display_type = "memory"
format_mem = "{mem_total_used_percents}"
clickable = false
[[block]] [[block]]
block = "load" block = "load"
interval = 1 interval = 1
format = " $icon $1m " format = "{1m}"
[[block]] [[block]]
block = "sound" block = "sound"
@ -88,23 +88,11 @@ block = "backlight"
[[block]] [[block]]
block = "battery" block = "battery"
device = "BAT1" device = "BAT0"
interval = 10 interval = 10
format = " $icon $percentage ($time) " format = "{percentage}% {time}"
full_format = " $icon $percentage "
[[block]] [[block]]
block = "time" block = "time"
interval = 60 interval = 60
format = " $timestamp.datetime(f:'%Y-%m-%d %H:%M') " format = "%Y-%m-%d %H:%M"
[[block]]
block = "notify"
driver = "swaync"
format = " $icon {($notification_count.eng(w:1)) |}"
[[block.click]]
button = "left"
action = "show"
[[block.click]]
button = "right"
action = "toggle_paused"

View file

@ -1,39 +0,0 @@
local wezterm = require 'wezterm';
return {
audible_bell = "Disabled",
bold_brightens_ansi_colors = true,
color_scheme = "One Light (base16)",
enable_tab_bar = false,
enable_wayland = true,
font_size = 12,
font = wezterm.font("CaskaydiaCove Nerd Font"),
window_background_opacity = 0.97,
window_close_confirmation = 'NeverPrompt',
default_prog = { '/run/current-system/sw/bin/bash' },
keys = {
{
key = 'Escape',
mods = 'CTRL',
action = wezterm.action.QuickSelect,
},
},
window_padding = {
left = 0,
right = 0,
top = 0,
bottom = 0,
},
quick_select_patterns = {
'^([^ ]+) +(?:ClusterIP|Bound)',
'^([^ ]+) +(?:[0-9]+/[0-9]+)',
'^([^ ]+) +(?:[0-9]+ )',
'^([^ ]+) +(?:Opaque|kubernetes\\.io|helm\\.sh)',
'^([^ ]+) +(?:Active)',
'[^ ]+@[^ ]+.service',
'git push.*',
},
}

View file

@ -1,42 +0,0 @@
# 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, ... }:
let unstable = import <nixos-unstable> { config.allowUnfree = true; };
in {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules =
[ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ "amdgpu" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "tank/root/nixos";
fsType = "zfs";
};
fileSystems."/home" = {
device = "tank/root/home";
fsType = "zfs";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/587C-36F9";
fsType = "vfat";
};
swapDevices = [ ];
# custom
boot.extraModprobeConfig = ''
options snd_usb_audio device_setup=1
'';
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.systemd-boot.enable = true;
networking.hostId = "ef3a5d57";
networking.hostName = "home";
hardware.opengl.enable = true;
}

View file

@ -1,83 +0,0 @@
# 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, ... }:
let
#nixkernel = import <nixos-kernel> {};
in
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" "i915" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "workpool/nixos/root";
fsType = "zfs";
};
fileSystems."/home" =
{ device = "workpool/nixos/home";
fsType = "zfs";
};
fileSystems."/var/lib/docker" =
{ device = "workpool/nixos/docker";
fsType = "zfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/AA17-42AD";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/18ae41eb-e32e-46a3-9e22-3395c37782df"; }
];
# 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.wlp166s0.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# custom
boot.loader.systemd-boot.enable = true;
networking.hostId = "f0000001";
networking.hostName = "sphere";
services.tlp.enable = true;
services.hardware.bolt.enable = true;
# framework hardware
#boot.kernelPackages = nixkernel.linuxPackages_5_19;
#boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
boot.kernelParams = [
"nvme.noacpi=1"
"i915.enable_psr=1"
];
boot.blacklistedKernelModules = [ "hid-sensor-hub" ];
hardware.acpilight.enable = true;
services.xserver.dpi = 125;
environment.variables = {
VDPAU_DRIVER = lib.mkIf config.hardware.opengl.enable (lib.mkDefault "va_gl");
};
hardware.graphics.extraPackages = with pkgs; [
vaapiIntel
libvdpau-va-gl
intel-media-driver
];
services.tlp.settings = {
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_ENERGY_PERF_POLICY_ON_BAT = "performance";
};
}

View file

@ -1,52 +0,0 @@
# 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, ... }:
let
tuxedo-keyboard =
pkgs.callPackage (import ../packages/tuxedo-keyboard.nix) { };
tuxedo-cc =
pkgs.callPackage (import ../packages/tuxedo-control-center/default.nix) { };
in {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules =
[ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ tuxedo-keyboard ];
environment.systemPackages = with pkgs; [ tuxedo-cc ];
fileSystems."/" = {
device = "private/root/nixos";
fsType = "zfs";
};
fileSystems."/home" = {
device = "private/root/home";
fsType = "zfs";
};
fileSystems."/tmp" = {
device = "private/root/tmp";
fsType = "zfs";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/7E36-C774";
fsType = "vfat";
};
swapDevices = [ ];
nix.maxJobs = lib.mkDefault 8;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
# custom
boot.loader.systemd-boot.enable = true;
hardware.cpu.intel.updateMicrocode = true;
networking.hostId = "eff291c7";
networking.hostName = "ds9";
services.tlp.enable = true;
}

View file

@ -3,37 +3,32 @@
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let unstable = import <nixos-unstable> { config.allowUnfree = true; }; let
unstable = import <nixos-unstable> { config.allowUnfree = true; };
in { in {
imports = [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> ]; imports =
[ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
"xhci_pci"
"ehci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" =
device = "cube/root/nixos"; { device = "tank/root/nixos";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/home" = { fileSystems."/home" =
device = "cube/home"; { device = "tank/root/home";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/2AD7-4F18"; { device = "/dev/disk/by-uuid/1339-E59C";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [ ];

View file

@ -3,7 +3,8 @@
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let unstable = import <nixos-unstable> { config.allowUnfree = true; }; let
unstable = import <nixos-unstable> { config.allowUnfree = true; };
in { in {
imports = [ imports = [
<nixpkgs/nixos/modules/installer/scan/not-detected.nix> <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
@ -18,8 +19,14 @@ in {
"w /sys/class/drm/card0/device/power_dpm_force_performance_level - - - - low" "w /sys/class/drm/card0/device/power_dpm_force_performance_level - - - - low"
]; ];
boot.initrd.availableKernelModules = boot.initrd.availableKernelModules = [
[ "nvme" "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; "nvme"
"xhci_pci"
"ahci"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
@ -28,6 +35,7 @@ in {
boot.kernelPackages = unstable.linuxPackages_latest; boot.kernelPackages = unstable.linuxPackages_latest;
#boot.kernelPackages = unstable.linux_testing; #boot.kernelPackages = unstable.linux_testing;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
@ -37,20 +45,20 @@ in {
networking.interfaces.wlo1.useDHCP = true; networking.interfaces.wlo1.useDHCP = true;
networking.resolvconf.useLocalResolver = true; networking.resolvconf.useLocalResolver = true;
fileSystems."/" = { fileSystems."/" =
device = "tank/root/nixos"; { device = "tank/root/nixos";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/home" = { fileSystems."/home" =
device = "tank/home"; { device = "tank/home";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/B048-FBC8"; { device = "/dev/disk/by-uuid/B048-FBC8";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [ ];

View file

@ -3,14 +3,16 @@
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let unstable = import <nixos-unstable> { config.allowUnfree = true; }; let
unstable = import <nixos-unstable> { config.allowUnfree = true; };
in { in {
imports = [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> ]; imports =
[ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
[ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.kernelModules = [ ];
boot.initrd.kernelModules = [ "i915" ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.kernelParams = [ "intel_pstate=active" ]; boot.kernelParams = [ "intel_pstate=active" ];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
@ -24,29 +26,26 @@ in {
enable = true; enable = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD intel-media-driver # LIBVA_DRIVER_NAME=iHD
vaapiIntel # LIBVA_DRIVER_NAME=i965 vaapiIntel # LIBVA_DRIVER_NAME=i965
vaapiVdpau vaapiVdpau
libvdpau-va-gl libvdpau-va-gl
]; ];
}; };
environment.variables = {
VDPAU_DRIVER = lib.mkIf config.hardware.opengl.enable (lib.mkDefault "va_gl");
};
fileSystems."/" = { fileSystems."/" =
device = "tank/work/nixos"; { device = "tank/work/nixos";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/home" = { fileSystems."/home" =
device = "tank/work/home"; { device = "tank/work/home";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/DC7B-5E2D"; { device = "/dev/disk/by-uuid/DC7B-5E2D";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [ ];
@ -54,6 +53,7 @@ in {
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
# custom # custom
#boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
hardware.cpu.intel.updateMicrocode = true; hardware.cpu.intel.updateMicrocode = true;
networking.hostId = "eff291c4"; networking.hostId = "eff291c4";

View file

@ -1,48 +0,0 @@
{ config, lib, pkgs, ... }:
with lib; {
options = {
colors = {
background = mkOption {
type = types.str;
default = "19181A";
};
foreground = mkOption {
type = types.str;
default = "FCFCFA";
};
black = mkOption {
type = types.str;
default = "19181A";
};
red = mkOption {
type = types.str;
default = "cc6666";
};
green = mkOption {
type = types.str;
default = "a9dc76";
};
yellow = mkOption {
type = types.str;
default = "ffd866";
};
cyan = mkOption {
type = types.str;
default = "78dce8";
};
magenta = mkOption {
type = types.str;
default = "FC9867";
};
blue = mkOption {
type = types.str;
default = "AB9DF2";
};
white = mkOption {
type = types.str;
default = "FCFCFA";
};
};
};
}

View file

@ -1,28 +0,0 @@
with import <nixpkgs> { };
stdenv.mkDerivation rec {
name = "cert-manager";
version = "v1.7.1";
src = fetchurl {
url =
"https://github.com/cert-manager/cert-manager/releases/download/${version}/cmctl-linux-amd64.tar.gz";
sha256 = "1z5n2rcfhrl1vm5vxqa1759m3prlv08mmg96n16p4gwkdxycznx4";
};
nativeBuildInputs = [ autoPatchelfHook ];
unpackPhase = ''
tar xvpzf $src
'';
installPhase = ''
install -m 755 -D cmctl $out/bin/cmctl
'';
meta = with lib; {
homepage = "https://cert-manager.io";
description = "cert-manager CLI";
platforms = platforms.linux;
maintainers = with maintainers; [ foosinn ];
};
}

View file

@ -1,14 +1,22 @@
{ stdenv, buildFHSUserEnv, fetchurl, lib, pkgs, writeScript }: { stdenv
, buildFHSUserEnv
, fetchurl
, lib
, pkgs
, writeScript
}:
let let
version = "4.3.3"; version = "4.3.3";
release = "4469"; release = "4469";
cloudstation = stdenv.mkDerivation rec { cloudstation = stdenv.mkDerivation rec {
name = "cloudstation-unpack"; name = "cloudstation-unpack";
buildInputs = [ pkgs.dpkg pkgs.qt5.qtbase ]; buildInputs = [
pkgs.dpkg
pkgs.qt5.qtbase
];
src = fetchurl { src = fetchurl {
url = url = "https://global.download.synology.com/download/Tools/CloudStationDrive/${version}-${release}/Ubuntu/Installer/x86_64/synology-cloud-station-drive-${release}.x86_64.deb";
"https://global.download.synology.com/download/Tools/CloudStationDrive/${version}-${release}/Ubuntu/Installer/x86_64/synology-cloud-station-drive-${release}.x86_64.deb";
sha256 = "0v84yb70knmmjzp7lyn6jgy5bnfsfd47wmqh29phybqg4zk3d47j"; sha256 = "0v84yb70knmmjzp7lyn6jgy5bnfsfd47wmqh29phybqg4zk3d47j";
}; };
unpackPhase = '' unpackPhase = ''
@ -27,37 +35,35 @@ let
dontWrapQtApps = true; dontWrapQtApps = true;
}; };
in buildFHSUserEnv { in buildFHSUserEnv {
name = "cloudstation"; name = "cloudstation";
targetPkgs = pkgs: targetPkgs = pkgs: with pkgs; with xorg; [
with pkgs; cloudstation
with xorg; [ curl
cloudstation dbus_libs
curl fontconfig
dbus freetype
fontconfig glib
freetype libICE
glib libSM
libICE libX11
libSM libxcb
libX11 openssl
libxcb qt5.qtbase
openssl qt5.qttools
qt5.qtbase qt5.qtwayland
qt5.qttools qt5.qtx11extras
qt5.qtwayland sqlite
qt5.qtx11extras stdenv.cc.cc.lib
sqlite xkeyboard_config
stdenv.cc.cc.lib zlib
xkeyboard_config ];
zlib
];
runScript = writeScript "cloudstation" '' runScript = writeScript "cloudstation" ''
#!/usr/bin/env bash #!/usr/bin/env bash
export QT_PLUGIN_PATH="${pkgs.qt5.qtbase.bin}/${pkgs.qt5.qtbase.qtPluginPrefix}" export QT_PLUGIN_PATH="${pkgs.qt5.qtbase.bin}/${pkgs.qt5.qtbase.qtPluginPrefix}"
export QT_QPA_PLATFORM=xcb
${cloudstation}/bin/launcher ${cloudstation}/bin/launcher
export LD_LIBRARY_PATH="/home/stefan/.CloudStation/CloudStation.app/lib:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH="/home/stefan/.CloudStation/CloudStation.app/lib:$LD_LIBRARY_PATH"

29
packages/helm2.nix Normal file
View file

@ -0,0 +1,29 @@
with import <nixpkgs> {};
stdenv.mkDerivation rec {
name = "helm2";
version = "2.14.3";
src = fetchurl {
url = "https://get.helm.sh/helm-v${version}-linux-amd64.tar.gz";
sha256 = "38614a665859c0f01c9c1d84fa9a5027364f936814d1e47839b05327e400bf55";
};
nativeBuildInputs = [
autoPatchelfHook
];
unpackPhase = ''
tar xvpzf $src
'';
installPhase = ''
install -m 755 -D linux-amd64/helm $out/bin/helm2
'';
meta = with stdenv.lib; {
homepage = "https://helm.sh";
description = "helms depricated v2 verison";
platforms = platforms.linux;
maintainers = with maintainers; [ foosinn ];
};
}

View file

@ -1,43 +1,40 @@
{ lib, fetchFromGitHub, python311Packages, wrapQtAppsHook, pkgs }: { stdenv, fetchFromGitHub, python38Packages, wrapQtAppsHook }:
let python38Packages.buildPythonApplication rec {
pname = "nagstamon"; pname = "nagstamon";
version = "v3.12.0"; version = "3.7.0-alpha";
in python311Packages.buildPythonApplication rec {
inherit pname;
inherit version;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "HenriWahl"; owner = "HenriWahl";
repo = "Nagstamon"; repo = "Nagstamon";
rev = version; rev = "dba37dc034589dfb312c6e8a7cc768bcd1952db9";
sha256 = "sha256-SI0FPTqJquaVyl/gpp883eGLq7tZ6J0fqn0jp77M8GM="; sha256 = "1l095halb55qinaik51p3lxiln1s034dr28k7ra6xzrrv9l1x1xw";
}; };
# Test assumes darwin
doCheck = false; doCheck = false;
nativeBuildInputs = [ wrapQtAppsHook ]; nativeBuildInputs = [ wrapQtAppsHook ];
dontWrapQtApps = true;
postFixup = '' postFixup = ''
makeQtWrapper $out/bin/nagstamon.py $out/bin/nagstamon wrapQtApp $out/bin/nagstamon.py
''; '';
propagatedBuildInputs = [ propagatedBuildInputs = with python38Packages; [
python311Packages.beautifulsoup4 beautifulsoup4
python311Packages.configparser configparser
python311Packages.dateutil dateutil
python311Packages.keyring kerberos
python311Packages.lxml keyring
python311Packages.psutil lxml
python311Packages.pyqt5_with_qtmultimedia psutil
python311Packages.requests pyqt5_with_qtmultimedia
python311Packages.requests-kerberos requests
python311Packages.setuptools requests-kerberos
python311Packages.xlib xlib
pkgs.libsForQt5.qt5.qtwayland
]; ];
meta = with lib; { meta = with stdenv.lib; {
description = "A status monitor for the desktop"; description = "A status monitor for the desktop";
homepage = "https://nagstamon.ifw-dresden.de/"; homepage = "https://nagstamon.ifw-dresden.de/";
license = licenses.gpl2; license = licenses.gpl2;
@ -45,3 +42,4 @@ in python311Packages.buildPythonApplication rec {
inherit version; inherit version;
}; };
} }

View file

@ -1,12 +1,8 @@
with import <nixos-unstable> { }; with import <nixos-unstable> {};
neovim.override { neovim.override {
vimAlias = true;
configure = { configure = {
customRC = '' customRC = ''
source ${pkgs.fzf}/share/vim-plugins/fzf/plugin/fzf.vim
set hidden set hidden
" langserver " langserver
@ -31,7 +27,6 @@ neovim.override {
set relativenumber set relativenumber
set mouse=a set mouse=a
set shortmess+=c set shortmess+=c
set clipboard=unnamedplus
" better search " better search
set incsearch set incsearch
@ -69,9 +64,8 @@ neovim.override {
let g:which_key_map = {} let g:which_key_map = {}
let g:which_key_map.f = { 'name': '+files' } let g:which_key_map.f = { 'name': '+files' }
noremap <leader>ff :Files<cr> noremap <leader>ff :FZF<cr>
noremap <leader>fn :NnnPicker %:p:h<cr> noremap <leader>fc :saveas
noremap <leader>fc :saveas %:p:h
let g:which_key_map.y = { 'name': '+yank' } let g:which_key_map.y = { 'name': '+yank' }
noremap <leader>yp :read !wl-paste<cr> noremap <leader>yp :read !wl-paste<cr>
@ -85,7 +79,7 @@ neovim.override {
noremap <leader>bn :bn<cr> noremap <leader>bn :bn<cr>
noremap <leader>bp :bp<cr> noremap <leader>bp :bp<cr>
let g:which_key_map.m = { 'name': '+lang' } let g:which_key_map.b = { 'name': '+lang' }
noremap <leader>md :call LanguageClient_textDocument_codeAction()<cr> noremap <leader>md :call LanguageClient_textDocument_codeAction()<cr>
noremap <leader>mc :call LanguageClient#textDocument_references()<cr> noremap <leader>mc :call LanguageClient#textDocument_references()<cr>
noremap <leader>mf :call LanguageClient#textDocument_formatting()<cr> noremap <leader>mf :call LanguageClient#textDocument_formatting()<cr>
@ -94,11 +88,6 @@ neovim.override {
noremap <leader>mm :call LanguageClient#textDocument_hover()<cr> noremap <leader>mm :call LanguageClient#textDocument_hover()<cr>
noremap <leader>mr :call LanguageClient#textDocument_rename()<cr> noremap <leader>mr :call LanguageClient#textDocument_rename()<cr>
noremap <leader>ms :call LanguageClient#workspace_symbol()<cr> noremap <leader>ms :call LanguageClient#workspace_symbol()<cr>
noremap <leader>ma :fzf_lsp_action<cr>
noremap <leader>ml :fzf_lsp_layout<cr>
let g:which_key_map.g = { 'name': '+git' }
noremap <leader>gs :call LazyGit<cr>
" lang specifics " lang specifics
let g:rustfmt_autosave = 1 let g:rustfmt_autosave = 1
@ -110,13 +99,10 @@ neovim.override {
airline airline
easymotion easymotion
editorconfig-vim editorconfig-vim
fzf-lsp-nvim fugitive
fzf-vim fzf
fzfWrapper
LanguageClient-neovim LanguageClient-neovim
lazygit-nvim
ncm2 ncm2
nnn-vim
surround surround
syntastic syntastic
vim-addon-nix vim-addon-nix

View file

@ -1,27 +1,31 @@
diff --git a/Cargo.lock b/Cargo.lock diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644 new file mode 100644
index 0000000..a7de0d9 index 0000000..1bcb060
--- /dev/null --- /dev/null
+++ b/Cargo.lock +++ b/Cargo.lock
@@ -0,0 +1,543 @@ @@ -0,0 +1,616 @@
+# This file is automatically @generated by Cargo. +# This file is automatically @generated by Cargo.
+# It is not intended for manual editing. +# It is not intended for manual editing.
+version = 3 +[[package]]
+name = "ahash"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
+ +
+[[package]] +[[package]]
+name = "aho-corasick" +name = "aho-corasick"
+version = "0.7.18" +version = "0.7.13"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+dependencies = [ +dependencies = [
+ "memchr", + "memchr",
+] +]
+ +
+[[package]] +[[package]]
+name = "ansi_term" +name = "ansi_term"
+version = "0.12.1" +version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+dependencies = [ +dependencies = [
+ "winapi", + "winapi",
+] +]
@ -34,9 +38,9 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "arrayvec" +name = "arrayvec"
+version = "0.5.2" +version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+ +
+[[package]] +[[package]]
+name = "atty" +name = "atty"
@ -50,32 +54,43 @@ index 0000000..a7de0d9
+] +]
+ +
+[[package]] +[[package]]
+name = "base64" +name = "autocfg"
+version = "0.9.3" +version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+
+[[package]]
+name = "base64"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+dependencies = [ +dependencies = [
+ "byteorder", + "byteorder",
+ "safemem",
+] +]
+ +
+[[package]] +[[package]]
+name = "base64" +name = "base64"
+version = "0.13.0" +version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+
+[[package]]
+name = "base64"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
+ +
+[[package]] +[[package]]
+name = "bitflags" +name = "bitflags"
+version = "1.3.2" +version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+ +
+[[package]] +[[package]]
+name = "blake2b_simd" +name = "blake2b_simd"
+version = "0.5.11" +version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+dependencies = [ +dependencies = [
+ "arrayref", + "arrayref",
+ "arrayvec", + "arrayvec",
@ -84,21 +99,31 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "byteorder" +name = "byteorder"
+version = "1.4.3" +version = "1.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+ +
+[[package]] +[[package]]
+name = "cfg-if" +name = "cfg-if"
+version = "1.0.0" +version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "charset"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f426e64df1c3de26cbf44593c6ffff5dbfd43bbf9de0d075058558126b3fc73"
+dependencies = [
+ "base64 0.10.1",
+ "encoding_rs",
+]
+ +
+[[package]] +[[package]]
+name = "clap" +name = "clap"
+version = "2.34.0" +version = "2.33.1"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
+dependencies = [ +dependencies = [
+ "ansi_term", + "ansi_term",
+ "atty", + "atty",
@ -117,19 +142,30 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "crossbeam-utils" +name = "crossbeam-utils"
+version = "0.8.7" +version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [ +dependencies = [
+ "autocfg",
+ "cfg-if", + "cfg-if",
+ "lazy_static", + "lazy_static",
+] +]
+ +
+[[package]] +[[package]]
+name = "dirs" +name = "dirs"
+version = "1.0.5" +version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" +checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
+dependencies = [
+ "cfg-if",
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
+dependencies = [ +dependencies = [
+ "libc", + "libc",
+ "redox_users", + "redox_users",
@ -137,74 +173,28 @@ index 0000000..a7de0d9
+] +]
+ +
+[[package]] +[[package]]
+name = "encoding" +name = "dlv-list"
+version = "0.2.33" +version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" +checksum = "1b391911b9a786312a10cb9d2b3d0735adfd5a8113eb3648de26a75e91b0826c"
+dependencies = [ +dependencies = [
+ "encoding-index-japanese", + "rand",
+ "encoding-index-korean",
+ "encoding-index-simpchinese",
+ "encoding-index-singlebyte",
+ "encoding-index-tradchinese",
+] +]
+ +
+[[package]] +[[package]]
+name = "encoding-index-japanese" +name = "encoding_rs"
+version = "1.20141219.5" +version = "0.8.23"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" +checksum = "e8ac63f94732332f44fe654443c46f6375d1939684c17b0afb6cb56b0456e171"
+dependencies = [ +dependencies = [
+ "encoding_index_tests", + "cfg-if",
+] +]
+ +
+[[package]] +[[package]]
+name = "encoding-index-korean"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
+dependencies = [
+ "encoding_index_tests",
+]
+
+[[package]]
+name = "encoding-index-simpchinese"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
+dependencies = [
+ "encoding_index_tests",
+]
+
+[[package]]
+name = "encoding-index-singlebyte"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
+dependencies = [
+ "encoding_index_tests",
+]
+
+[[package]]
+name = "encoding-index-tradchinese"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
+dependencies = [
+ "encoding_index_tests",
+]
+
+[[package]]
+name = "encoding_index_tests"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
+
+[[package]]
+name = "getrandom" +name = "getrandom"
+version = "0.1.16" +version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+dependencies = [ +dependencies = [
+ "cfg-if", + "cfg-if",
+ "libc", + "libc",
@ -212,28 +202,38 @@ index 0000000..a7de0d9
+] +]
+ +
+[[package]] +[[package]]
+name = "heck" +name = "hashbrown"
+version = "0.3.3" +version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "96282e96bfcd3da0d3aa9938bedf1e50df3269b6db08b4876d2da0bb1a0841cf"
+dependencies = [
+ "ahash",
+ "autocfg",
+]
+
+[[package]]
+name = "heck"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+dependencies = [ +dependencies = [
+ "unicode-segmentation", + "unicode-segmentation",
+] +]
+ +
+[[package]] +[[package]]
+name = "hermit-abi" +name = "hermit-abi"
+version = "0.1.19" +version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+dependencies = [ +dependencies = [
+ "libc", + "libc",
+] +]
+ +
+[[package]] +[[package]]
+name = "itoa" +name = "itoa"
+version = "1.0.1" +version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+ +
+[[package]] +[[package]]
+name = "lazy_static" +name = "lazy_static"
@ -243,30 +243,30 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "libc" +name = "libc"
+version = "0.2.119" +version = "0.2.73"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" +checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
+ +
+[[package]] +[[package]]
+name = "mailparse" +name = "mailparse"
+version = "0.6.5" +version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99c0af7aaefb167bb908763399ea2904dab08ca4fd8c2a3277516d4e488b5fe3" +checksum = "336d59e50513349423fa89bdadef5b5c49972a6ce0b66d3b2c7c8b7ab3969faf"
+dependencies = [ +dependencies = [
+ "base64 0.9.3", + "base64 0.12.3",
+ "encoding", + "charset",
+ "quoted_printable", + "quoted_printable",
+] +]
+ +
+[[package]] +[[package]]
+name = "memchr" +name = "memchr"
+version = "2.4.1" +version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+ +
+[[package]] +[[package]]
+name = "notcoal" +name = "notcoal"
+version = "0.3.0" +version = "0.4.0"
+dependencies = [ +dependencies = [
+ "dirs", + "dirs",
+ "mailparse", + "mailparse",
@ -280,55 +280,118 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "notmuch" +name = "notmuch"
+version = "0.5.0" +version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "831623c1b68968505126423f34dc887aa610daf543efc05df948c673e4e022e9"
+dependencies = [ +dependencies = [
+ "libc", + "libc",
+ "supercow", + "supercow",
+] +]
+ +
+[[package]] +[[package]]
+name = "proc-macro2" +name = "ordered-multimap"
+version = "0.4.30" +version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +checksum = "e88f947c6799d5eff50e6cf8a2365c17ac4aa8f8f43aceeedc29b616d872a358"
+dependencies = [ +dependencies = [
+ "unicode-xid 0.1.0", + "dlv-list",
+ "hashbrown",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "syn-mid",
+ "version_check",
+] +]
+ +
+[[package]] +[[package]]
+name = "proc-macro2" +name = "proc-macro2"
+version = "1.0.36" +version = "1.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+dependencies = [ +dependencies = [
+ "unicode-xid 0.2.2", + "unicode-xid",
+] +]
+ +
+[[package]] +[[package]]
+name = "quote" +name = "quote"
+version = "0.6.13" +version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+dependencies = [ +dependencies = [
+ "proc-macro2 0.4.30", + "proc-macro2",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
+dependencies = [
+ "proc-macro2 1.0.36",
+] +]
+ +
+[[package]] +[[package]]
+name = "quoted_printable" +name = "quoted_printable"
+version = "0.4.5" +version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fee2dce59f7a43418e3382c766554c614e06a552d53a8f07ef499ea4b332c0f" +checksum = "47b080c5db639b292ac79cbd34be0cfc5d36694768d8341109634d90b86930e2"
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+ +
+[[package]] +[[package]]
+name = "redox_syscall" +name = "redox_syscall"
@ -338,9 +401,9 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "redox_users" +name = "redox_users"
+version = "0.3.5" +version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" +checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
+dependencies = [ +dependencies = [
+ "getrandom", + "getrandom",
+ "redox_syscall", + "redox_syscall",
@ -349,28 +412,29 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "regex" +name = "regex"
+version = "1.5.4" +version = "1.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+dependencies = [ +dependencies = [
+ "aho-corasick", + "aho-corasick",
+ "memchr", + "memchr",
+ "regex-syntax", + "regex-syntax",
+ "thread_local",
+] +]
+ +
+[[package]] +[[package]]
+name = "regex-syntax" +name = "regex-syntax"
+version = "0.6.25" +version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+ +
+[[package]] +[[package]]
+name = "rust-argon2" +name = "rust-argon2"
+version = "0.8.3" +version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" +checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
+dependencies = [ +dependencies = [
+ "base64 0.13.0", + "base64 0.11.0",
+ "blake2b_simd", + "blake2b_simd",
+ "constant_time_eq", + "constant_time_eq",
+ "crossbeam-utils", + "crossbeam-utils",
@ -378,47 +442,45 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "rust-ini" +name = "rust-ini"
+version = "0.13.0" +version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" +checksum = "7a3679dd538c876a7b606f3bb951c8a20fc281a0ff7795f59f7cb490e3f979e1"
+dependencies = [
+ "cfg-if",
+ "ordered-multimap",
+]
+ +
+[[package]] +[[package]]
+name = "ryu" +name = "ryu"
+version = "1.0.9" +version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+ +
+[[package]] +[[package]]
+name = "serde" +name = "serde"
+version = "1.0.136" +version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+dependencies = [ +dependencies = [
+ "serde_derive", + "serde_derive",
+] +]
+ +
+[[package]] +[[package]]
+name = "serde_derive" +name = "serde_derive"
+version = "1.0.136" +version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+dependencies = [ +dependencies = [
+ "proc-macro2 1.0.36", + "proc-macro2",
+ "quote 1.0.15", + "quote",
+ "syn 1.0.86", + "syn",
+] +]
+ +
+[[package]] +[[package]]
+name = "serde_json" +name = "serde_json"
+version = "1.0.79" +version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" +checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
+dependencies = [ +dependencies = [
+ "itoa", + "itoa",
+ "ryu", + "ryu",
@ -433,24 +495,26 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "structopt" +name = "structopt"
+version = "0.2.18" +version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7" +checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
+dependencies = [ +dependencies = [
+ "clap", + "clap",
+ "lazy_static",
+ "structopt-derive", + "structopt-derive",
+] +]
+ +
+[[package]] +[[package]]
+name = "structopt-derive" +name = "structopt-derive"
+version = "0.2.18" +version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107" +checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
+dependencies = [ +dependencies = [
+ "heck", + "heck",
+ "proc-macro2 0.4.30", + "proc-macro-error",
+ "quote 0.6.13", + "proc-macro2",
+ "syn 0.15.44", + "quote",
+ "syn",
+] +]
+ +
+[[package]] +[[package]]
@ -461,24 +525,24 @@ index 0000000..a7de0d9
+ +
+[[package]] +[[package]]
+name = "syn" +name = "syn"
+version = "0.15.44" +version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +checksum = "4cdb98bcb1f9d81d07b536179c269ea15999b5d14ea958196413869445bb5250"
+dependencies = [ +dependencies = [
+ "proc-macro2 0.4.30", + "proc-macro2",
+ "quote 0.6.13", + "quote",
+ "unicode-xid 0.1.0", + "unicode-xid",
+] +]
+ +
+[[package]] +[[package]]
+name = "syn" +name = "syn-mid"
+version = "1.0.86" +version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
+dependencies = [ +dependencies = [
+ "proc-macro2 1.0.36", + "proc-macro2",
+ "quote 1.0.15", + "quote",
+ "unicode-xid 0.2.2", + "syn",
+] +]
+ +
+[[package]] +[[package]]
@ -491,28 +555,31 @@ index 0000000..a7de0d9
+] +]
+ +
+[[package]] +[[package]]
+name = "unicode-segmentation" +name = "thread_local"
+version = "1.9.0" +version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+ +
+[[package]] +[[package]]
+name = "unicode-width" +name = "unicode-width"
+version = "0.1.9" +version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+ +
+[[package]] +[[package]]
+name = "unicode-xid" +name = "unicode-xid"
+version = "0.1.0" +version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+ +
+[[package]] +[[package]]
+name = "vec_map" +name = "vec_map"
@ -521,6 +588,12 @@ index 0000000..a7de0d9
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+ +
+[[package]] +[[package]]
+name = "version_check"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+
+[[package]]
+name = "wasi" +name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1" +version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index" +source = "registry+https://github.com/rust-lang/crates.io-index"

View file

@ -1,23 +1,26 @@
{ lib, stdenv, rustPlatform, fetchFromGitHub, pkgs }: { lib, stdenv, rustPlatform, notmuch, bash }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "notcoal"; pname = "notcoal";
version = "0.3.0"; version = "0.3.0";
src = fetchFromGitHub { src = fetchTarball {
owner = "eaon"; url = https://ghom.niij.org/eaon/notcoal/archive/v0.3.0.tar.gz;
repo = pname;
rev = "v${version}";
sha256 = "19gaba6asid5vplcy9q0ama40dvwwxglc40ks5240lydrvgfrimq"; sha256 = "19gaba6asid5vplcy9q0ama40dvwwxglc40ks5240lydrvgfrimq";
}; };
cargoPatches = [
./Cargo.lock.patch
];
cargoSha256 = "0kgjxq2319l2gh1xc0f3ir1pa6z7p62z3fccswwxrz7gbn7nc07c";
cargoBuildFlags = ["--features=standalone"];
cargoPatches = [ ./Cargo.lock.patch ]; buildInputs = [
cargoSha256 = "09bmlpl6rx2pk5w6vv2i1lsl6vr1733zy9jjvi5kkk1mqwinq8ai"; bash
cargoBuildFlags = [ "--features=standalone" ]; notmuch
];
buildInputs = with pkgs; [ bash notmuch ];
meta = with lib; { meta = with stdenv.lib; {
description = "An email tagger for notmuch"; description = "An email tagger for notmuch";
homepage = "https://ghom.niij.org/eaon/notcoal"; homepage = "https://ghom.niij.org/eaon/notcoal";
}; };

View file

@ -1,15 +1,16 @@
with import <nixpkgs> { }; with import <nixpkgs> {};
stdenv.mkDerivation { stdenv.mkDerivation {
name = "oc311"; name = "oc311";
version = "3.11"; version = "3.11";
src = fetchurl { src = fetchurl {
url = url = "https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz";
"https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz";
sha256 = "4b0f07428ba854174c58d2e38287e5402964c9a9355f6c359d1242efd0990da3"; sha256 = "4b0f07428ba854174c58d2e38287e5402964c9a9355f6c359d1242efd0990da3";
}; };
nativeBuildInputs = [ autoPatchelfHook ]; nativeBuildInputs = [
autoPatchelfHook
];
unpackPhase = '' unpackPhase = ''
tar xvpzf $src --strip-components=1 tar xvpzf $src --strip-components=1
@ -19,7 +20,7 @@ stdenv.mkDerivation {
install -m 755 -D oc $out/bin/oc3 install -m 755 -D oc $out/bin/oc3
''; '';
meta = with lib; { meta = with stdenv.lib; {
homepage = "https://www.odk.io"; homepage = "https://www.odk.io";
description = "openshift311 client"; description = "openshift311 client";
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -1,15 +1,16 @@
with import <nixpkgs> { }; with import <nixpkgs> {};
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "oc46"; name = "oc46";
version = "4.6"; version = "4.6";
src = fetchurl { src = fetchurl {
url = url = "https://github.com/openshift/okd/releases/download/4.6.0-0.okd-2021-02-14-205305/openshift-client-linux-4.6.0-0.okd-2021-02-14-205305.tar.gz";
"https://github.com/openshift/okd/releases/download/4.6.0-0.okd-2021-02-14-205305/openshift-client-linux-4.6.0-0.okd-2021-02-14-205305.tar.gz";
sha256 = "741c456f1d5227eb40722b0dac328c78dceba5103fd306cf7fe57a9474eb3d35"; sha256 = "741c456f1d5227eb40722b0dac328c78dceba5103fd306cf7fe57a9474eb3d35";
}; };
nativeBuildInputs = [ autoPatchelfHook ]; nativeBuildInputs = [
autoPatchelfHook
];
unpackPhase = '' unpackPhase = ''
tar xvpzf $src tar xvpzf $src
@ -19,7 +20,7 @@ stdenv.mkDerivation rec {
install -m 755 -D oc $out/bin/oc install -m 755 -D oc $out/bin/oc
''; '';
meta = with lib; { meta = with stdenv.lib; {
homepage = "https://www.odk.io"; homepage = "https://www.odk.io";
description = "openshift 4.6 client"; description = "openshift 4.6 client";
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -1,23 +0,0 @@
{ pkgs, lib, rustPlatform }:
let
pname = "openscad-language-server";
version = "0.1.0";
src = pkgs.fetchFromGitHub {
owner = "dzhu";
repo = pname;
rev = version;
sha256 = "00msajwwy531ji93xk83lbnbp19asyk1b8ai0hi2awb63vpdr4xg";
};
in
rustPlatform.buildRustPackage {
inherit pname;
inherit version;
inherit src;
cargoSha256 = "0w245d5n0v8b02y0rc1lqx1svi9dnif4gvsas46h9g68206yijcf";
meta = with lib; {
description = "openscad language server";
};
}

View file

@ -1,16 +1,17 @@
with import <nixpkgs> { }; with import <nixpkgs> {};
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "openshift-install-4.5"; name = "openshift-install-4.5";
version = "4.5.0-0"; version = "4.5.0-0";
release = "2020-10-03-012432"; release = "2020-10-03-012432";
src = fetchurl { src = fetchurl {
url = url = "https://github.com/openshift/okd/releases/download/${version}.okd-${release}/openshift-install-linux-${version}.okd-${release}.tar.gz";
"https://github.com/openshift/okd/releases/download/${version}.okd-${release}/openshift-install-linux-${version}.okd-${release}.tar.gz";
sha256 = "f497193e8918840a4fd3267839affdc91ec166c5fd2ae3fdc64f498b5fc56f55"; sha256 = "f497193e8918840a4fd3267839affdc91ec166c5fd2ae3fdc64f498b5fc56f55";
}; };
nativeBuildInputs = [ autoPatchelfHook ]; nativeBuildInputs = [
autoPatchelfHook
];
unpackPhase = '' unpackPhase = ''
tar xvpzf $src tar xvpzf $src
@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
install -m 755 -D openshift-install $out/bin/openshift-install install -m 755 -D openshift-install $out/bin/openshift-install
''; '';
meta = with lib; { meta = with stdenv.lib; {
homepage = "https://www.odk.io"; homepage = "https://www.odk.io";
description = "openshift 4.5 installer"; description = "openshift 4.5 installer";
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -1,15 +1,16 @@
with import <nixpkgs> { }; with import <nixpkgs> {};
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "skaffold"; name = "skaffold";
version = "1.17.2"; version = "1.17.2";
src = fetchurl { src = fetchurl {
url = url = "https://github.com/GoogleContainerTools/skaffold/releases/download/v${version}/skaffold-linux-amd64";
"https://github.com/GoogleContainerTools/skaffold/releases/download/v${version}/skaffold-linux-amd64";
sha256 = "55dea8be16fa3abd81820a6a03f5d708beb5e152fe71e00f00744a4dd321c55a"; sha256 = "55dea8be16fa3abd81820a6a03f5d708beb5e152fe71e00f00744a4dd321c55a";
}; };
nativeBuildInputs = [ autoPatchelfHook ]; nativeBuildInputs = [
autoPatchelfHook
];
unpackPhase = '' unpackPhase = ''
cp $src skaffold cp $src skaffold
@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
ls -lah $out/bin/skaffold ls -lah $out/bin/skaffold
''; '';
meta = with lib; { meta = with stdenv.lib; {
homepage = "https://skaffold.dev"; homepage = "https://skaffold.dev";
description = "skaffold"; description = "skaffold";
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -1,94 +0,0 @@
{ lib, stdenv, makeWrapper, fetchurl, rpmextract, autoPatchelfHook, alsa-lib
, cups, gdk-pixbuf, glib, gtk3, libnotify, libuuid, libX11, libXScrnSaver
, libXcomposite, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr
, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss, pango, systemd
, libappindicator-gtk3, libdbusmenu
}:
stdenv.mkDerivation rec {
pname = "tuxedo-control-center";
version = "1.1.0";
src = fetchurl {
url =
"https://rpm.tuxedocomputers.com/opensuse/15.2/x86_64/tuxedo-control-center_${version}.rpm";
sha256 = "0rqhfi1slnh0kkn1vnxqynxm6yb4w1mhk4vi92vj0lrxlwdxf80c";
};
nativeBuildInputs = [
rpmextract
makeWrapper
alsa-lib
autoPatchelfHook
cups
libXdamage
libX11
libXScrnSaver
libXtst
libxshmfence
mesa
nss
libXrender
gdk-pixbuf
gtk3
systemd
];
libPath = lib.makeLibraryPath [
alsa-lib
gdk-pixbuf
glib
gtk3
libnotify
libX11
libXcomposite
libuuid
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libXtst
nspr
nss
libxcb
pango
systemd
libXScrnSaver
libappindicator-gtk3
libdbusmenu
];
unpackPhase = ''
mkdir -p $out/bin
cd $out
rpmextract $src
'';
installPhase = ''
runHook preInstall
#wrapProgram $out/opt/${pname}/${pname} \
# --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${pname}
#wrapProgram $out/opt/${pname}/resources/dist/${pname}/data/service/tccd \
# --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${pname}
ln -s $out/opt/${pname}/${pname} $out/bin/
ln -s $out/opt/${pname}/resources/dist/${pname}/data/service/tccd $out/bin/
find $out
runHook postInstall
'';
meta = with lib; {
description =
"A tool to help you control performance, energy, fan and comfort settings on TUXEDO laptops.";
homepage = "github.com/tuxedocomputers/tuxedo-control-center";
license = licenses.gpl3Only;
maintainers = with maintainers; [ ];
};
}

View file

@ -1,157 +0,0 @@
{ pkgs, lib, stdenv, makeDesktopItem, desktop-file-utils,
python,
makeWrapper, nodejs, electron_9, fetchFromGitHub }:
let
baseName = "tuxedo-control-center";
version = "1.0.14";
baseNodePackages = (import ./node-composition.nix {
inherit pkgs nodejs;
inherit (stdenv.hostPlatform) system;
});
nodePackages = baseNodePackages.package.override {
src = fetchFromGitHub {
owner = "tuxedocomputers";
repo = "tuxedo-control-center";
rev = "v${version}";
sha256 = "00gpsvjbli9f6vj31lbs7flmcz215r91iz6rg1kbzklc3y5k2ifj";
};
# Electron tries to download itself if this isn't set. We don't
# like that in nix so let's prevent it.
#
# This means we have to provide our own electron binaries when
# wrapping this program.
ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
# Angular prompts for analytics, which in turn fails the build.
#
# We can disable analytics using false or empty string
# (See https://github.com/angular/angular-cli/blob/1a39c5202a6fe159f8d7db85a1c186176240e437/packages/angular/cli/models/analytics.ts#L506)
NG_CLI_ANALYTICS = "false";
};
desktopItem = makeDesktopItem {
name = "tuxedo-control-center";
exec = "tuxedo-control-center %U";
comment = "An application helping you to tune your TUXEDO";
desktopName = "TUXEDO Control Center";
icon = "tuxedo-control-center";
categories = "System;";
};
in stdenv.mkDerivation rec {
name = "${baseName}-${version}";
src = "${nodePackages}/lib/node_modules/tuxedo-control-center/";
nativeBuildInputs = [
desktop-file-utils # for desktop-file-validate
];
buildInputs = [
nodejs
makeWrapper
# For node-gyp
python
];
# TCC by default writes its config to /etc/tcc, which is
# inconvenient. Change this to a more standard location.
#
# It also hardcodes binary path.
postPatch = ''
substituteInPlace src/common/classes/TccPaths.ts \
--replace "/etc/tcc" "/var/lib/tcc" \
--replace "/opt/tuxedo-control-center/resources/dist/tuxedo-control-center/data/service/tccd" "$out/bin/tccd"
'';
buildPhase = ''
set -x
# We already have `node_modules` in the current directory but we
# need it's binaries on `PATH` so we can use them!
export PATH="./node_modules/.bin:$PATH"
# Prevent npm from checking for updates
export NO_UPDATE_NOTIFIER=true
# The order of `npm` commands matches what `npm run build-prod` does but we split
# it out so we can customise the native builds in `npm run build-service`.
npm run clean
npm run build-electron
# We don't use `npm run build-service` here because it uses `pkg` which packages
# node binaries in a way unsuitable for nix. Instead we're doing it ourself.
tsc -p ./src/service-app
cp ./src/package.json ./dist/tuxedo-control-center/service-app/package.json
# We need to tell npm where to find node or `node-gyp` will try to download it.
# This also _needs_ to be lowercase or `npm` won't detect it
export npm_config_nodedir=${nodejs}
npm run build-native # Builds to ./build/Release/TuxedoIOAPI.node
npm run build-ng-prod
'';
installPhase = ''
mkdir -p $out
cp -R ./dist/tuxedo-control-center/* $out
ln -s $src/node_modules $out/node_modules
# Parts of the code expect the icons to live under `data/dist-data`. Let's just
# copy the whole thing since the system assumes it has access to all the `dist-data`
# files.
mkdir -p $out/data/dist-data
cp -R ./src/dist-data/* $out/data/dist-data/
# Install `tccd`
mkdir -p $out/data/service
cp ./build/Release/TuxedoIOAPI.node $out/data/service/TuxedoIOAPI.node
makeWrapper ${nodejs}/bin/node $out/data/service/tccd \
--add-flags "$out/service-app/service-app/main.js" \
--prefix NODE_PATH : $out/data/service \
--prefix NODE_PATH : $out/node_modules
mkdir -p $out/bin
ln -s $out/data/service/tccd $out/bin/tccd
# Install `tuxedo-control-center`
#
# We use `--no-tccd-version-check` because the app uses the electron context
# to determine the app version, but the electron context is wrong if electron
# is invoked directly on a JavaScript file.
#
# The fix is to run electron on a folder with a `package.json` but the `tuxedo-control-center`
# package.json expects all files to live under `dist/` and I'm not a huge fan of that
# structure so we just disable the check and call it a day.
makeWrapper ${electron_9}/bin/electron $out/bin/tuxedo-control-center \
--add-flags "$out/e-app/e-app/main.js" \
--add-flags "--no-tccd-version-check" \
--prefix NODE_PATH : $out/node_modules
mkdir -p $out/share/polkit-1/actions/
cp $out/data/dist-data/de.tuxedocomputers.tcc.policy $out/share/polkit-1/actions/de.tuxedocomputers.tcc.policy
mkdir -p $out/etc/dbus-1/system.d/
cp $out/data/dist-data/com.tuxedocomputers.tccd.conf $out/etc/dbus-1/system.d/com.tuxedocomputers.tccd.conf
# Put our icons in the right spot
mkdir -p $out/share/icons/hicolor/scalable/apps/
cp $out/data/dist-data/tuxedo-control-center_256.svg \
$out/share/icons/hicolor/scalable/apps/tuxedo-control-center.svg
${desktopItem.buildCommand}
'';
meta = with lib; {
description = "Fan and power management GUI for Tuxedo laptops";
homepage = "https://github.com/tuxedocomputers/tuxedo-control-center/";
license = licenses.gpl3Plus;
maintainers = [ maintainers.blitz ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -1,16 +0,0 @@
# This file has been generated by node2nix 1.9.0. Do not edit!
{ pkgs ? import <nixpkgs> { inherit system; }, system ? builtins.currentSystem
, nodejs ? pkgs."nodejs-14_x" }:
let
nodeEnv = import ./node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
};
in import ./node-packages.nix {
inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
inherit nodeEnv;
}

View file

@ -1,559 +0,0 @@
# This file originates from node2nix
{ lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile }:
let
# Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
python = if nodejs ? python then nodejs.python else python2;
# Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
tarWrapper = runCommand "tarWrapper" { } ''
mkdir -p $out/bin
cat > $out/bin/tar <<EOF
#! ${stdenv.shell} -e
$(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
EOF
chmod +x $out/bin/tar
'';
# Function that generates a TGZ file from a NPM project
buildNodeSourceDist = { name, version, src, ... }:
stdenv.mkDerivation {
name = "node-tarball-${name}-${version}";
inherit src;
buildInputs = [ nodejs ];
buildPhase = ''
export HOME=$TMPDIR
tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
'';
installPhase = ''
mkdir -p $out/tarballs
mv $tgzFile $out/tarballs
mkdir -p $out/nix-support
echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
'';
};
includeDependencies = { dependencies }:
lib.optionalString (dependencies != [ ]) (lib.concatMapStrings
(dependency: ''
# Bundle the dependencies of the package
mkdir -p node_modules
cd node_modules
# Only include dependencies if they don't exist. They may also be bundled in the package.
if [ ! -e "${dependency.name}" ]
then
${composePackage dependency}
fi
cd ..
'') dependencies);
# Recursively composes the dependencies of a package
composePackage = { name, packageName, src, dependencies ? [ ], ... }@args:
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
DIR=$(pwd)
cd $TMPDIR
unpackFile ${src}
# Make the base dir in which the target dependency resides first
mkdir -p "$(dirname "$DIR/${packageName}")"
if [ -f "${src}" ]
then
# Figure out what directory has been unpacked
packageDir="$(find . -maxdepth 1 -type d | tail -1)"
# Restore write permissions to make building work
find "$packageDir" -type d -exec chmod u+x {} \;
chmod -R u+w "$packageDir"
# Move the extracted tarball into the output folder
mv "$packageDir" "$DIR/${packageName}"
elif [ -d "${src}" ]
then
# Get a stripped name (without hash) of the source directory.
# On old nixpkgs it's already set internally.
if [ -z "$strippedName" ]
then
strippedName="$(stripHash ${src})"
fi
# Restore write permissions to make building work
chmod -R u+w "$strippedName"
# Move the extracted directory into the output folder
mv "$strippedName" "$DIR/${packageName}"
fi
# Unset the stripped name to not confuse the next unpack step
unset strippedName
# Include the dependencies of the package
cd "$DIR/${packageName}"
${includeDependencies { inherit dependencies; }}
cd ..
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
'';
pinpointDependencies = { dependencies, production }:
let
pinpointDependenciesFromPackageJSON = writeTextFile {
name = "pinpointDependencies.js";
text = ''
var fs = require('fs');
var path = require('path');
function resolveDependencyVersion(location, name) {
if(location == process.env['NIX_STORE']) {
return null;
} else {
var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
if(fs.existsSync(dependencyPackageJSON)) {
var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
if(dependencyPackageObj.name == name) {
return dependencyPackageObj.version;
}
} else {
return resolveDependencyVersion(path.resolve(location, ".."), name);
}
}
}
function replaceDependencies(dependencies) {
if(typeof dependencies == "object" && dependencies !== null) {
for(var dependency in dependencies) {
var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
if(resolvedVersion === null) {
process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
} else {
dependencies[dependency] = resolvedVersion;
}
}
}
}
/* Read the package.json configuration */
var packageObj = JSON.parse(fs.readFileSync('./package.json'));
/* Pinpoint all dependencies */
replaceDependencies(packageObj.dependencies);
if(process.argv[2] == "development") {
replaceDependencies(packageObj.devDependencies);
}
replaceDependencies(packageObj.optionalDependencies);
/* Write the fixed package.json file */
fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
'';
};
in ''
node ${pinpointDependenciesFromPackageJSON} ${
if production then "production" else "development"
}
${lib.optionalString (dependencies != [ ]) ''
if [ -d node_modules ]
then
cd node_modules
${
lib.concatMapStrings
(dependency: pinpointDependenciesOfPackage dependency)
dependencies
}
cd ..
fi
''}
'';
# Recursively traverses all dependencies of a package and pinpoints all
# dependencies in the package.json file to the versions that are actually
# being used.
pinpointDependenciesOfPackage =
{ packageName, dependencies ? [ ], production ? true, ... }@args: ''
if [ -d "${packageName}" ]
then
cd "${packageName}"
${pinpointDependencies { inherit dependencies production; }}
cd ..
${
lib.optionalString (builtins.substring 0 1 packageName == "@")
"cd .."
}
fi
'';
# Extract the Node.js source code which is used to compile packages with
# native bindings
nodeSources = runCommand "node-sources" { } ''
tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
mv node-* $out
'';
# Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
addIntegrityFieldsScript = writeTextFile {
name = "addintegrityfields.js";
text = ''
var fs = require('fs');
var path = require('path');
function augmentDependencies(baseDir, dependencies) {
for(var dependencyName in dependencies) {
var dependency = dependencies[dependencyName];
// Open package.json and augment metadata fields
var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
var packageJSONPath = path.join(packageJSONDir, "package.json");
if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
console.log("Adding metadata fields to: "+packageJSONPath);
var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
if(dependency.integrity) {
packageObj["_integrity"] = dependency.integrity;
} else {
packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
}
if(dependency.resolved) {
packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
} else {
packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
}
if(dependency.from !== undefined) { // Adopt from property if one has been provided
packageObj["_from"] = dependency.from;
}
fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
}
// Augment transitive dependencies
if(dependency.dependencies !== undefined) {
augmentDependencies(packageJSONDir, dependency.dependencies);
}
}
}
if(fs.existsSync("./package-lock.json")) {
var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
if(![1, 2].includes(packageLock.lockfileVersion)) {
process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
process.exit(1);
}
if(packageLock.dependencies !== undefined) {
augmentDependencies(".", packageLock.dependencies);
}
}
'';
};
# Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
reconstructPackageLock = writeTextFile {
name = "addintegrityfields.js";
text = ''
var fs = require('fs');
var path = require('path');
var packageObj = JSON.parse(fs.readFileSync("package.json"));
var lockObj = {
name: packageObj.name,
version: packageObj.version,
lockfileVersion: 1,
requires: true,
dependencies: {}
};
function augmentPackageJSON(filePath, dependencies) {
var packageJSON = path.join(filePath, "package.json");
if(fs.existsSync(packageJSON)) {
var packageObj = JSON.parse(fs.readFileSync(packageJSON));
dependencies[packageObj.name] = {
version: packageObj.version,
integrity: "sha1-000000000000000000000000000=",
dependencies: {}
};
processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
}
}
function processDependencies(dir, dependencies) {
if(fs.existsSync(dir)) {
var files = fs.readdirSync(dir);
files.forEach(function(entry) {
var filePath = path.join(dir, entry);
var stats = fs.statSync(filePath);
if(stats.isDirectory()) {
if(entry.substr(0, 1) == "@") {
// When we encounter a namespace folder, augment all packages belonging to the scope
var pkgFiles = fs.readdirSync(filePath);
pkgFiles.forEach(function(entry) {
if(stats.isDirectory()) {
var pkgFilePath = path.join(filePath, entry);
augmentPackageJSON(pkgFilePath, dependencies);
}
});
} else {
augmentPackageJSON(filePath, dependencies);
}
}
});
}
}
processDependencies("node_modules", lockObj.dependencies);
fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
'';
};
prepareAndInvokeNPM =
{ packageName, bypassCache, reconstructLock, npmFlags, production }:
let
forceOfflineFlag = if bypassCache then
"--offline"
else
"--registry http://www.example.com";
in ''
# Pinpoint the versions of all dependencies to the ones that are actually being used
echo "pinpointing versions of dependencies..."
source $pinpointDependenciesScriptPath
# Patch the shebangs of the bundled modules to prevent them from
# calling executables outside the Nix store as much as possible
patchShebangs .
# Deploy the Node.js package by running npm install. Since the
# dependencies have been provided already by ourselves, it should not
# attempt to install them again, which is good, because we want to make
# it Nix's responsibility. If it needs to install any dependencies
# anyway (e.g. because the dependency parameters are
# incomplete/incorrect), it fails.
#
# The other responsibilities of NPM are kept -- version checks, build
# steps, postprocessing etc.
export HOME=$TMPDIR
cd "${packageName}"
runHook preRebuild
${lib.optionalString bypassCache ''
${lib.optionalString reconstructLock ''
if [ -f package-lock.json ]
then
echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
rm package-lock.json
else
echo "No package-lock.json file found, reconstructing..."
fi
node ${reconstructPackageLock}
''}
node ${addIntegrityFieldsScript}
''}
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${
lib.optionalString production "--production"
} rebuild
if [ "''${dontNpmInstall-}" != "1" ]
then
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
rm -f npm-shrinkwrap.json
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${
lib.optionalString production "--production"
} install
fi
'';
# Builds and composes an NPM package including all its dependencies
buildNodePackage = { name, packageName, version, dependencies ? [ ]
, buildInputs ? [ ], production ? true, npmFlags ? ""
, dontNpmInstall ? false, bypassCache ? false, reconstructLock ? false
, preRebuild ? "", dontStrip ? true, unpackPhase ? "true"
, buildPhase ? "true", meta ? { }, ... }@args:
let
extraArgs = removeAttrs args [
"name"
"dependencies"
"buildInputs"
"dontStrip"
"dontNpmInstall"
"preRebuild"
"unpackPhase"
"buildPhase"
"meta"
];
in stdenv.mkDerivation ({
name = "${name}-${version}";
buildInputs = [ tarWrapper python nodejs ]
++ lib.optional (stdenv.isLinux) utillinux
++ lib.optional (stdenv.isDarwin) libtool ++ buildInputs;
inherit nodejs;
inherit
dontStrip; # Stripping may fail a build for some package deployments
inherit dontNpmInstall preRebuild unpackPhase buildPhase;
compositionScript = composePackage args;
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
installPhase = ''
# Create and enter a root node_modules/ folder
mkdir -p $out/lib/node_modules
cd $out/lib/node_modules
# Compose the package and all its dependencies
source $compositionScriptPath
${prepareAndInvokeNPM {
inherit packageName bypassCache reconstructLock npmFlags production;
}}
# Create symlink to the deployed executable folder, if applicable
if [ -d "$out/lib/node_modules/.bin" ]
then
ln -s $out/lib/node_modules/.bin $out/bin
fi
# Create symlinks to the deployed manual page folders, if applicable
if [ -d "$out/lib/node_modules/${packageName}/man" ]
then
mkdir -p $out/share
for dir in "$out/lib/node_modules/${packageName}/man/"*
do
mkdir -p $out/share/man/$(basename "$dir")
for page in "$dir"/*
do
ln -s $page $out/share/man/$(basename "$dir")
done
done
fi
# Run post install hook, if provided
runHook postInstall
'';
meta = {
# default to Node.js' platforms
platforms = nodejs.meta.platforms;
} // meta;
} // extraArgs);
# Builds a node environment (a node_modules folder and a set of binaries)
buildNodeDependencies = { name, packageName, version, src, dependencies ? [ ]
, buildInputs ? [ ], production ? true, npmFlags ? ""
, dontNpmInstall ? false, bypassCache ? false, reconstructLock ? false
, dontStrip ? true, unpackPhase ? "true", buildPhase ? "true", ... }@args:
let extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
in stdenv.mkDerivation ({
name = "node-dependencies-${name}-${version}";
buildInputs = [ tarWrapper python nodejs ]
++ lib.optional (stdenv.isLinux) utillinux
++ lib.optional (stdenv.isDarwin) libtool ++ buildInputs;
inherit
dontStrip; # Stripping may fail a build for some package deployments
inherit dontNpmInstall unpackPhase buildPhase;
includeScript = includeDependencies { inherit dependencies; };
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
installPhase = ''
mkdir -p $out/${packageName}
cd $out/${packageName}
source $includeScriptPath
# Create fake package.json to make the npm commands work properly
cp ${src}/package.json .
chmod 644 package.json
${lib.optionalString bypassCache ''
if [ -f ${src}/package-lock.json ]
then
cp ${src}/package-lock.json .
fi
''}
# Go to the parent folder to make sure that all packages are pinpointed
cd ..
${lib.optionalString (builtins.substring 0 1 packageName == "@")
"cd .."}
${prepareAndInvokeNPM {
inherit packageName bypassCache reconstructLock npmFlags production;
}}
# Expose the executables that were installed
cd ..
${lib.optionalString (builtins.substring 0 1 packageName == "@")
"cd .."}
mv ${packageName} lib
ln -s $out/lib/node_modules/.bin $out/bin
'';
} // extraArgs);
# Builds a development shell
buildNodeShell = { name, packageName, version, src, dependencies ? [ ]
, buildInputs ? [ ], production ? true, npmFlags ? ""
, dontNpmInstall ? false, bypassCache ? false, reconstructLock ? false
, dontStrip ? true, unpackPhase ? "true", buildPhase ? "true", ... }@args:
let nodeDependencies = buildNodeDependencies args;
in stdenv.mkDerivation {
name = "node-shell-${name}-${version}";
buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux
++ buildInputs;
buildCommand = ''
mkdir -p $out/bin
cat > $out/bin/shell <<EOF
#! ${stdenv.shell} -e
$shellHook
exec ${stdenv.shell}
EOF
chmod +x $out/bin/shell
'';
# Provide the dependencies in a development shell through the NODE_PATH environment variable
inherit nodeDependencies;
shellHook = lib.optionalString (dependencies != [ ]) ''
export NODE_PATH=${nodeDependencies}/lib/node_modules
export PATH="${nodeDependencies}/bin:$PATH"
'';
};
in {
buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
buildNodePackage = lib.makeOverridable buildNodePackage;
buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
buildNodeShell = lib.makeOverridable buildNodeShell;
}

File diff suppressed because it is too large Load diff

View file

@ -1,39 +0,0 @@
{ stdenv, lib, linuxPackages, fetchurl }:
let
kernel = linuxPackages.kernel;
kernelDir = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
in stdenv.mkDerivation rec {
name = "tuxedo-keyboard";
version = "v3.0.8";
src = builtins.fetchGit {
url = "git://github.com/tuxedocomputers/tuxedo-keyboard";
ref = "refs/tags/${version}";
};
nativeBuildInputs = kernel.moduleBuildDependencies;
buildPhase = ''
make KDIR='${kernelDir}' all
'';
installPhase = ''
install -v -D -m 644 \
-t "$out/lib/modules/${kernel.modDirVersion}/extra/" \
./src/tuxedo_keyboard.ko \
./src/clevo_wmi.ko \
./src/tuxedo_io/tuxedo_io.ko \
./src/clevo_acpi.ko
find -name '*.ko'
echo ${kernel.modDirVersion}
'';
meta = {
homepage =
"https://github.com/tuxedocomputers/tuxedo-keyboard/blob/master/Makefile";
};
}

View file

@ -1,21 +1,22 @@
with import <nixpkgs> { }; with import <nixpkgs> {};
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "vaultsink"; name = "vaultsink";
version = "0.1.8"; version = "0.1.8";
src = fetchurl { src = fetchurl {
url = url = "https://github.com/cookiefactory/vault-sink/releases/download/v${version}/vault-sink-linux-amd64";
"https://github.com/cookiefactory/vault-sink/releases/download/v${version}/vault-sink-linux-amd64";
sha256 = "057799e7f907186993b591e3b2f743b69d7a9fed"; sha256 = "057799e7f907186993b591e3b2f743b69d7a9fed";
}; };
nativeBuildInputs = [ autoPatchelfHook ]; nativeBuildInputs = [
autoPatchelfHook
];
installPhase = '' installPhase = ''
install -m 755 -D vault-sink-linux-amd64 $out/bin/sink install -m 755 -D vault-sink-linux-amd64 $out/bin/sink
''; '';
meta = with lib; { meta = with stdenv.lib; {
homepage = "https://github.com/cookiefactory/vault-sink"; homepage = "https://github.com/cookiefactory/vault-sink";
description = "Vault Secret helper for yaml files"; description = "Vault Secret helper for yaml files";
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -1,30 +1,20 @@
{ pkgs, options, ... }: { pkgs, options, ...}:
let let
unstable = import <nixos-unstable> {};
in { in {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
cryptsetup cryptsetup
dnsutils dnsutils
dogdns dogdns
k9s k9s
kind
kubectl kubectl
kubectx
kubeseal
nmap
pwgen pwgen
terraform
terraform-docs
whois whois
ipcalc unstable.argocd
unstable.kubernetes-helm
argocd unstable.kustomize
kubernetes-helm unstable.vault
kustomize
pre-commit
terraform-ls
vault
yaml-language-server
docker-compose docker-compose
fuse-overlayfs fuse-overlayfs
@ -32,23 +22,9 @@ in {
virt-manager virt-manager
(import ../packages/skaffold.nix) (import ../packages/skaffold.nix)
(import ../packages/certmanager.nix) (import ../packages/helm2.nix)
]; ];
programs.bash.shellAliases = { virtualisation.docker.enable = true;
kx = "kubectx"; virtualisation.libvirtd.enable = true;
kns = "kubens";
};
virtualisation.docker = {
enable = true;
storageDriver = "zfs";
};
virtualisation.libvirtd = {
enable = true;
qemu = {
swtpm.enable = true;
ovmf.enable = true;
};
};
} }

View file

@ -1,6 +1,7 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let unstable = import <nixos-unstable> { }; let
unstable = import <nixos-unstable> {};
in { in {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
acpi acpi
@ -11,7 +12,6 @@ in {
bash-completion bash-completion
bat bat
borgbackup borgbackup
curl
direnv direnv
fd fd
file file
@ -24,12 +24,10 @@ in {
ncdu ncdu
nix-index nix-index
nload nload
nnn
ntfs3g ntfs3g
openssl openssl
patchelf patchelf
pv pv
restic
ripgrep ripgrep
starship starship
sysstat sysstat
@ -37,19 +35,13 @@ in {
tmux tmux
unzip unzip
wget wget
zoxide z-lua
(import ../packages/neovim.nix) (import ../packages/neovim.nix)
]; ];
environment = { environment = {
etc = { "starship.toml".source = ../dotfiles/starship.toml; }; etc = {
"starship.toml".source = ../dotfiles/starship.toml;
variables = {
BAT_THEME = "ansi";
EDITOR = "nvim";
STARSHIP_CONFIG = "/etc/starship.toml";
HISTCONTROL = "ignoreboth";
NIXOS_OZONE_WL = "y";
}; };
}; };
@ -58,6 +50,8 @@ in {
. <(starship init bash) . <(starship init bash)
''; '';
interactiveShellInit = '' interactiveShellInit = ''
export EDITOR=nvim
export STARSHIP_CONFIG=/etc/starship.toml
if [ -f ~/.ssh/agent.env ] ; then if [ -f ~/.ssh/agent.env ] ; then
. ~/.ssh/agent.env > /dev/null . ~/.ssh/agent.env > /dev/null
@ -72,6 +66,7 @@ in {
ssh-add ssh-add
fi fi
set_win_title() { set_win_title() {
echo -ne "\033]0;$USER@$HOSTNAME: $PWD\007" echo -ne "\033]0;$USER@$HOSTNAME: $PWD\007"
} }
@ -79,32 +74,16 @@ in {
. "$(fzf-share)/key-bindings.bash" . "$(fzf-share)/key-bindings.bash"
. "$(fzf-share)/completion.bash" . "$(fzf-share)/completion.bash"
. <(zoxide init bash) . <(z --init bash)
. <(direnv hook bash) . <(direnv hook bash)
. ${pkgs.bash-completion}/etc/profile.d/bash_completion.sh . ${pkgs.bash-completion}/etc/profile.d/bash_completion.sh
alias cat="bat -pp" alias cat="bat -pp"
alias docker="sudo -g docker docker" alias docker="sudo -g docker docker"
alias docker-compose="sudo -g docker docker-compose"
alias less="bat -p" alias less="bat -p"
alias ls="ls --color=auto" alias ls="ls --color=auto"
alias vim="nvim" alias vim="nvim"
alias k="kubectl" alias k="kubectl"
alias n="nix-shell -p"
alias nu="nix-shell -I nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos-unstable -p"
sink() {
VAULT_TOKEN=$(vault token lookup -format=json | jq -r .data.id) \
ENVIRONMENTS=staging \
~/git/bitsbeats/vault-sink/sink
}
vsink() {
if ! grep -q /values.yaml .gitignore; then
echo refusing to sink with missing gitignore
return 1
fi
sink < ./helm/*/values.yaml > ./values.yaml
}
for script in "$HOME"/dotfiles/bashrc/*.sh; do for script in "$HOME"/dotfiles/bashrc/*.sh; do
. "$script" . "$script"
@ -124,11 +103,13 @@ in {
less = "bat -p"; less = "bat -p";
ls = "ls --color=auto"; ls = "ls --color=auto";
vim = "nvim"; vim = "nvim";
sink = "VAULT_TOKEN=$(vault token lookup -format=json | jq -r .data.id) ENVIRONMENTS=staging ~/git/bitsbeats/vault-sink/sink";
usink = "VAULT_TOKEN=$(vault token lookup -format=json | jq -r .data.id) ENVIRONMENTS=staging ~/git/bitsbeats/vault-sink/sink < ./helm/*/values.yaml > values.yaml";
}; };
}; };
users.users.stefan = { users.users.stefan = {
extraGroups = [ "wheel" "dialout" "libvirtd" "input" ]; extraGroups = [ "wheel" "dialout" "libvirtd"];
home = "/home/stefan"; home = "/home/stefan";
isNormalUser = true; isNormalUser = true;
uid = 1000; uid = 1000;
@ -139,47 +120,16 @@ in {
Defaults env_keep+=SSH_AUTH_SOCK Defaults env_keep+=SSH_AUTH_SOCK
''; '';
services.fwupd.enable = true;
services.resolved.enable = true;
services.lorri.enable = true;
systemd.user.services.lorri.serviceConfig = {
ProtectSystem = pkgs.lib.mkForce "full";
ProtectHome = pkgs.lib.mkForce false;
};
security.wrappers.gvfsd-nfs = {
source = "${pkgs.gnome.gvfs}/libexec/gvfsd-nfs";
owner = "nobody";
group = "nogroup";
capabilities = "cap_net_bind_service+ep";
};
services.gvfs = { services.gvfs = {
enable = true; enable = true;
package = lib.mkForce (pkgs.gnome.gvfs.overrideAttrs (oldAttrs: { package = lib.mkForce pkgs.gnome3.gvfs;
postInstall = ''
ln -sf /run/wrappers/bin/gvfsd-nfs $out/libexec/gvfsd-nfs
'';
}));
}; };
services.resolved.enable = true;
services.lorri.enable = true;
services.zfs.autoSnapshot = { services.zfs.autoSnapshot = {
enable = true; enable = true;
frequent = 8; frequent = 8;
monthly = 6; monthly = 6;
}; };
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_TIME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
};
};
} }

View file

@ -1,130 +1,104 @@
#g Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
colors = config.colors; unstable = import <nixos-unstable> { config.allowUnfree = true; };
schema = pkgs.gsettings-desktop-schemas; in {
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
in environment.pathsToLink = ["/libexec"];
{ services.xserver = {
programs.droidcam.enable = true; enable = true;
desktopManager = {
xterm.enable = false;
};
displayManager = {
defaultSession = "none+i3";
};
windowManager.i3 = {
enable = true;
extraPackages = with pkgs; [
bemenu
i3lock
i3status-rust
maim
xclip
];
};
};
programs.sway = { programs.sway = {
enable = true; enable = true;
wrapperFeatures.gtk = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
bemenu bemenu
brightnessctl brightnessctl
gammastep
grim grim
i3status-rust i3status-rust
kanshi kanshi
mako mako
picom
slurp slurp
swayidle swayidle
swaylock swaylock
swaynotificationcenter xwayland
swayr
wf-recorder wf-recorder
wofi
]; ];
extraSessionCommands = "";
}; };
xdg.portal.enable = true;
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; xdg.portal = {
enable = true;
colors = { gtkUsePortal = true;
background = "#282a36"; extraPortals = with pkgs; [
foreground = "#f8f8f2"; xdg-desktop-portal-gtk
black = "#1E2029"; xdg-desktop-portal-wlr
red = "#ff5555"; ];
green = "#50fa7b";
yellow = "#f1fa8c";
cyan = "#8be9fd";
magenta = "#bd93f9";
blue = "#61bfff";
white = "#ffffff";
}; };
boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
environment = { environment = {
etc = { etc = {
"i3/config".source = ../dotfiles/i3/config;
"sway/config".source = ../dotfiles/sway/config; "sway/config".source = ../dotfiles/sway/config;
"sway/status.toml".source = ../dotfiles/sway/status.toml; "sway/status.toml".source = ../dotfiles/sway/status.toml;
"xdg/alacritty/alacritty.yml".text = '' "xdg/alacritty/alacritty.yml".source = ../dotfiles/alacritty.yml;
font:
normal:
family: CaskaydiaCove Nerd Font
size: 12
draw_bold_text_with_bright_colors: true
colors:
primary:
background: "${colors.background}"
foreground: "${colors.foreground}"
normal:
black: "${colors.black}"
red: "${colors.red}"
green: "${colors.green}"
yellow: "${colors.yellow}"
cyan: "${colors.cyan}"
magenta: "${colors.magenta}"
blue: "${colors.blue}"
white: "${colors.white}"
window:
dynamic_title: true
opacity: 0.98
env:
TERM: xterm-256color
key_bindings:
- { key: Escape, mods: Control, action: ToggleViMode }
'';
"wezterm.lua".source = ../dotfiles/wezterm.lua;
}; };
}; };
qt.platformTheme = "qt5ct";
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
security.polkit.enable = true;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;
pulse.enable = true; pulse.enable = true;
jack.enable = true; jack.enable = true;
};
services.udev.packages = [
(pkgs.writeTextFile {
name = "uinput.rules";
text = ''
KERNEL=="uinput", GROUP="users", MODE="0660", OPTIONS+="static_node=uinput"
'';
destination = "/etc/udev/rules.d/80-uinput.rules";
})
];
services.ratbagd.enable = true;
fonts.enableDefaultPackages = true; config.pipewire = {
"context.properties" = {
"default.clock.rate" = 48000;
};
};
};
fonts.enableDefaultFonts = true;
fonts.fontconfig.antialias = true; fonts.fontconfig.antialias = true;
fonts.packages = with pkgs; [ fonts.fonts = with pkgs; [
corefonts cascadia-code
emacs-all-the-icons-fonts
fira-code fira-code
fira-code-symbols
font-awesome
meslo-lg
noto-fonts noto-fonts
noto-fonts-emoji noto-fonts-emoji
(nerdfonts.override { fonts = [ "CascadiaCode" "Meslo" ]; })
]; ];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
environment.pathsToLink = [ "/libexec" ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
xorg.xinit
polkit
polkit_gnome polkit_gnome
# firefox also needs: # firefox also needs:
@ -145,71 +119,62 @@ in
arc-theme arc-theme
capitaine-cursors capitaine-cursors
dracula-theme
elementary-xfce-icon-theme elementary-xfce-icon-theme
glib
gsettings-desktop-schemas gsettings-desktop-schemas
gtk-engine-murrine gtk-engine-murrine
gtk_engines gtk_engines
hicolor-icon-theme hicolor-icon-theme
libsForQt5.qtstyleplugins
lxappearance lxappearance
numix-icon-theme numix-icon-theme
numix-cursor-theme
alacritty
gimp
imv imv
inkscape inkscape
keepassxc libqrencode
libreoffice libreoffice
libsecret libsecret
lxappearance
mpv mpv
mumble mumble
neofetch neofetch
numbat
pavucontrol pavucontrol
pcmanfm pcmanfm
qrencode pulseeffects-pw
remmina unstable.alacritty
uxplay unstable.keepassxc
wezterm unstable.noisetorch
solaar solaar
gdk-pixbuf gdk-pixbuf
clipman
wdisplays
wl-clipboard wl-clipboard
xdg-utils xdg_utils
xfce.thunar xfce.thunar
xfce.thunar-volman xfce.thunar-volman
wtype ydotool
(pkgs.writeTextFile { (
name = "startsway"; pkgs.writeTextFile {
destination = "/bin/startsway"; name = "startsway";
executable = true; destination = "/bin/startsway";
text = '' executable = true;
#! ${pkgs.bash}/bin/bash text = ''
#! ${pkgs.bash}/bin/bash
export GTK_ICON_THEME=Dracula export GTK_ICON_THEME=Tango
export GTK_THEME=Dracula export GTK_THEME=Blackbird
export _JAVA_AWT_WM_NOREPARENTING=1 export _JAVA_AWT_WM_NOREPARENTING=1
export MOZ_DBUS_REMOTE=1 export MOZ_ENABLE_WAYLAND=1
export MOZ_ENABLE_WAYLAND=1 export MOZ_USE_XINPUT2=1
export MOZ_USE_XINPUT2=1 export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_AUTO_SCREEN_SCALE_FACTOR=0 export QT_QPA_PLATFORM=wayland-egl
export QT_QPA_PLATFORM=wayland-egl export QT_WAYLAND_FORCE_DPI=96
export QT_WAYLAND_FORCE_DPI=96 export SDL_VIDEODRIVER=wayland
export SDL_VIDEODRIVER=wayland export XDG_CURRENT_DESKTOP=sway
export WEZTERM_CONFIG_FILE=/etc/wezterm.lua export XDG_SESSION_TYPE=wayland
export XDG_CURRENT_DESKTOP=sway
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
export XDG_SESSION_TYPE=wayland
${pkgs.dbus}/bin/dbus-run-session ${pkgs.sway}/bin/sway ${pkgs.dbus}/bin/dbus-run-session ${pkgs.sway}/bin/sway
''; '';
}) }
)
]; ];
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
@ -224,15 +189,14 @@ in
}; };
services.printing.enable = true; services.printing.enable = true;
services.printing.drivers = [ pkgs.gutenprint ]; services.printing.drivers = [
services.avahi = { pkgs.gutenprint
];
services.avahi.enable = true;
services.avahi.nssmdns = true;
hardware.opengl = {
enable = true; enable = true;
nssmdns4 = true;
publish = {
enable = true;
addresses = true;
workstation = true;
userServices = true;
};
}; };
} }

View file

@ -1,49 +1,38 @@
{ config, lib, buildPythonPackage, pkgs, fetchPypi,... }: { config, lib, pkgs, ... }:
let let
unstable = import <nixos-unstable> { }; unstable = import <nixos-unstable> {};
in { in {
services.emacs.package = pkgs.emacs-pgtk;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gnumake gnumake
go go
phpactor
rustup rustup
shellcheck shellcheck
unstable.golangci-lint unstable.golangci-lint
unstable.gopls unstable.gopls
unstable.rust-analyzer
#unstable.esphome
(python311.withPackages nodePackages.pyright
(python-packages: with python-packages; [ (python39.withPackages(python-packages: with python-packages; [
black black
diagrams pyyaml
pymemcache requests
pyyaml ]))
requests
ruff-lsp
])
)
mariadb-client mariadb-client
musl musl
dbeaver-bin dbeaver
emacs-pgtk emacs
gitAndTools.delta gitAndTools.delta
lazygit
ltrace ltrace
parallel parallel
sops sops
tig tig
unstable.bazel
openssl openssl pkg-config nasm cmake zlib gcc binutils-unwrapped
pkg-config
nasm
cmake
zlib
gcc
binutils-unwrapped
]; ];
} }

View file

@ -1,16 +1,16 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
notcoal = pkgs.callPackage ../packages/notcoal { }; unstable = import <nixos-unstable> { config.allowUnfree = true; };
notcoal = pkgs.callPackage (import ../packages/notcoal) {};
in { in {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
unstable.astroid
isync isync
khal khal
msmtp msmtp
notmuch notmuch
notcoal
thunderbird thunderbird
astroid
vdirsyncer vdirsyncer
]; ];
} }

View file

@ -1,6 +1,7 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
unstable = import <nixos-unstable> { config.allowUnfree = true; };
in { in {
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
@ -9,6 +10,5 @@ in {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
networkmanagerapplet networkmanagerapplet
networkmanager-vpnc networkmanager-vpnc
openconnect_openssl
]; ];
} }

View file

@ -1,11 +0,0 @@
{ config, lib, pkgs, ... }:
{
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
}

View file

@ -1,27 +1,43 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
openscad-ls = pkgs.callPackage ../packages/openscad-language-server.nix { }; unstable = import <nixos-unstable> {};
in in {
{ environment.systemPackages = with pkgs; [
environment.systemPackages = with pkgs; # embedded
[ arduino
openscad avrdude
openscad-ls gcc-arm-embedded
]; openocd
pkgsCross.avr.avrlibc
pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.gcc8
pkgsCross.avr.libcCross
cura
candle
openscad
kicad
blender
python3Packages.numpy
python3Packages.shapely
steam
unstable.obs-studio
];
# stm32 debugger # stm32 debugger
users.extraGroups.plugdev = { }; users.extraGroups.plugdev = { };
users.extraUsers.stefan.extraGroups = [ "plugdev" "dialout" ]; users.extraUsers.stefan.extraGroups = [ "plugdev" "dialout" ];
services.udev.packages = [ pkgs.openocd ]; services.udev.packages = [ pkgs.openocd ];
# steam dependencies
hardware.opengl.driSupport32Bit = true;
hardware.opengl.driSupport = true;
fileSystems."/mnt/nfs" = { fileSystems."/mnt/nfs" = {
device = "10.1.20.29:/srv/nfs"; device = "10.1.20.29:/srv/nfs";
fsType = "nfs"; fsType = "nfs";
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=120" ]; options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=120" ];
}; };
networking.extraHosts = ''
162.55.40.34 mail.f2o.io
'';
} }

View file

@ -2,5 +2,7 @@
{ {
networking.wireguard.enable = true; networking.wireguard.enable = true;
environment.systemPackages = with pkgs; [ wireguard-tools ]; environment.systemPackages = with pkgs; [
wireguard
];
} }

View file

@ -2,52 +2,25 @@
let let
unstable = import <nixos-unstable> { config.allowUnfree = true; }; unstable = import <nixos-unstable> { config.allowUnfree = true; };
cloudstation = pkgs.callPackage (import ../packages/cloudstation.nix) { }; cloudstation = pkgs.callPackage (import ../packages/cloudstation.nix) {};
nagstamon = pkgs.libsForQt5.callPackage (import ../packages/nagstamon.nix) { }; nagstamon = pkgs.libsForQt5.callPackage (import ../packages/nagstamon.nix) {};
myslack = pkgs.slack.overrideAttrs (oldAttrs: rec {
fixupPhase = ''
sed -i -e 's/,"WebRTCPipeWireCapturer"/,"LebRTCPipeWireCapturer"/' $out/lib/slack/resources/app.asar
rm $out/bin/slack
makeWrapper $out/lib/slack/slack $out/bin/slack \
--prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
--suffix PATH : ${lib.makeBinPath [ pkgs.xdg-utils ]} \
--add-flags "--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations,WebRTCPipeWireCapturer"
'';
});
in { in {
environment.variables = {
USE_GKE_GCLOUD_AUTH_PLUGIN = "True";
};
services.tailscale = {
enable = true;
package = unstable.tailscale;
};
security.pki.certificateFiles = [ security.pki.certificateFiles = [
../dotfiles/certs/NetzmarktCA.crt ../dotfiles/certs/NetzmarktCA.crt
../dotfiles/certs/vcenter.netzmarkt.lan.crt ../dotfiles/certs/vcenter.netzmarkt.lan.crt
]; ];
networking.extraHosts = '' networking.extraHosts = ''
35.234.109.94 fsi.thomann.de
10.100.7.11 mon.netzmarkt.de 10.100.7.11 mon.netzmarkt.de
85.10.233.162 live.bonedo.de
172.20.0.2 hubble.kind 172.23.0.2 api.kube.local
172.20.0.2 dashboard.kind 172.23.0.2 hubble.kube.local
172.20.0.2 grafana.kind 172.23.0.2 bonedo.kube.local
172.20.0.2 alert.kind 172.23.0.2 linkerd.kube.local
172.23.0.2 argo.kube.local
#192.168.2.111 hass.home.f2o.io
#192.168.2.111 sync.home.f2o.io
192.168.2.111 pl.home.f2o.io
#127.0.0.1 auth-dev.thobits.com
127.0.0.1 database
127.0.0.1 youtube.com
127.0.0.1 www.youtube.com
''; '';
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -57,30 +30,17 @@ in {
# (import ../packages/vaultsink.nix) needs opensource verson # (import ../packages/vaultsink.nix) needs opensource verson
cloudstation cloudstation
nagstamon nagstamon
yubikey-manager
anydesk
chromium
nodejs
vscodium
git-lfs
drone-cli drone-cli
go-jira
govc govc
ttyd ttyd
discord unstable.discord
(google-cloud-sdk.withExtraComponents [ unstable.google-cloud-sdk
google-cloud-sdk.components.gke-gcloud-auth-plugin unstable.slack
]) unstable.velero
myslack
velero
obs-studio unstable.obs-studio
obs-studio-plugins.wlrobs unstable.obs-studio-plugins.wlrobs
prusa-slicer
]; ];
# yubikey support
services.udev.packages = [ pkgs.yubikey-personalization ];
services.pcscd.enable = true;
} }