diff --git a/configuration.nix b/configuration.nix index 364eb1e..ec8fc82 100644 --- a/configuration.nix +++ b/configuration.nix @@ -30,9 +30,13 @@ time.timeZone = "Europe/Berlin"; services.openssh.enable = true; + networking.firewall.enable = true; - nixpkgs.config.permittedInsecurePackages = [ "openssl-1.0.2u" ]; + nixpkgs.config.permittedInsecurePackages = [ + "openssl-1.0.2u" + "python3.10-kerberos-1.3.1" + ]; # removed for mobile working # system.autoUpgrade.enable = true; diff --git a/dotfiles/alacritty.yml b/dotfiles/alacritty.yml index 4d524b9..81419b5 100644 --- a/dotfiles/alacritty.yml +++ b/dotfiles/alacritty.yml @@ -1,24 +1,34 @@ font: normal: family: CaskaydiaCove Nerd Font - size: 12 + size: 8 draw_bold_text_with_bright_colors: true colors: primary: - background: "0x19181A" - foreground: "0xFCFCFA" + background: '0xf8f8f8' + foreground: '0x2a2b33' normal: - black: "0x19181A" - red: "0xcc6666" - green: "0xa9dc76" - yellow: "0xffd866" - cyan: "0x78dce8" - magenta: "0xFC9867" - blue: "0xAB9DF2" - white: "0xFCFCFA" + black: '0x000000' + red: '0xde3d35' + green: '0x3e953a' + yellow: '0xd2b67b' + blue: '0x2f5af3' + magenta: '0xa00095' + cyan: '0x3e953a' + white: '0xbbbbbb' + + bright: + black: '0x000000' + red: '0xde3d35' + green: '0x3e953a' + yellow: '0xd2b67b' + blue: '0x2f5af3' + magenta: '0xa00095' + cyan: '0x3e953a' + white: '0xffffff' window: dynamic_title: true diff --git a/dotfiles/i3/config b/dotfiles/i3/config deleted file mode 100644 index 1620807..0000000 --- a/dotfiles/i3/config +++ /dev/null @@ -1,167 +0,0 @@ -# config -set $mod Mod1 -set $left h -set $down j -set $up k -set $right l -set $term alacritty -set $wallpaper /home/stefan/Downloads/bg.jpg -set $lock swaylock -t -i $wallpaper --scaling=fill -set $font CaskaydiaCove Nerd Font 10 -set $menucolor --ff=#f8f8f2 --nf=#f8f8f2 --tf=#bd93f9 --hf=#bd93f9 --tb=#282a36 --fb=#282a36 --nb=#282a36 --hb=#282a36 --sb=#282a36 -set $menu dmenu_run - -#input "1:1:AT_Translated_Set_2_keyboard" xkb_layout de -#input "0:0:TUXEDO_Keyboard" xkb_layout de -# -#output * bg $wallpaper fill -#output "BenQ Corporation BenQ SW2700 83H03922SL0" res --custom 2560x1440@60Hz -#output "Dell Inc. Dell U4919DW HZVZWP2" res 5120x1440 - -# 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+o exec keepassxc -bindsym $mod+z exec $lock -bindsym $mod+Up exec light -A 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 insect -e insect -bindsym $mod+Space exec swayr switch-to -bindsym $mod+n exec swayr switch-to-urgent-or-lru-window -bindsym Print exec grim -g "$(slurp)" - | wl-copy -t image/png -#bindswitch --reload --locked lid:on output eDP-1 disable -#bindswitch --reload --locked lid:off output eDP-1 enable - -# 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 -#for_window [title="pyCalc"] floating enable -#for_window [title="insect"] floating enable - -# font -font $font - -# colors -set $black #282a36 -set $red #ff6188 -set $cyan #78dce8 -set $white #fcfcfa -set $yellow #f1fa8c -set $violet #bd93f9 -set $black2 #323232 - -# border backgnd text indicator childborder -client.focused $violet $black $white $violet $violet -client.focused_inactive $black $black $white $black2 $black -client.unfocused $black $black $white $black2 $black -client.urgent $red $red $black $black2 $white - - -# 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" - -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 { - font $font - position bottom - colors { - background $black - statusline $white - separator $violet - - # border back text - focused_workspace $violet $violet $black - active_workspace $violet $violet $black - urgent_workspace $red $red $white - inactive_workspace $black $black $white - } - status_command i3status-rs /etc/sway/status.toml -} - -set $gnome-schema org.gnome.desktop.interface -exec_always { - gsettings set $gnome-schema gtk-theme 'Dracula' - gsettings set $gnome-schema icon-theme 'Dracula' - gsettings set $gnome-schema cursor-theme 'Capitaine Cursors - White' -} - -# autostarts -exec dunst -exec emacs --daemon -#exec /run/current-system/sw/libexec/polkit-gnome-authentication-agent-1 -exec systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR -exec bash -c '[ "$HOSTNAME" == sphere ] && cloudstation' -#exec swayrd - -# 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' diff --git a/dotfiles/i3/status.toml b/dotfiles/i3/status.toml deleted file mode 100644 index 7f94a43..0000000 --- a/dotfiles/i3/status.toml +++ /dev/null @@ -1,107 +0,0 @@ -[theme] -name = "plain" -[theme.overrides] -idle_bg = "#282a36" -idle_fg = "#f8f8f2" -info_bg = "#282a36" -info_fg = "#f8f8f2" -good_bg = "#282a36" -good_fg = "#50fa7b" -warning_bg = "#282a36" -warning_fg = "#f1fa8c" -critical_bg = "#282a36" -critical_fg = "#ff5555" -separator_bg = "#282a36" -separator_fg = "#bd93f9" -separator = "|" - -[icons] -name = "none" -[icons.overrides] -backlight_empty = "" -backlight_full = "" -backlight_partial1 = "" -backlight_partial2 = "" -backlight_partial3 = "" -bat = "" -bat_charging = "" -bat_discharging = "" -bat_empty = "" -bat_quarter = "" -bat_half = "" -bat_three_quarters = "" -bat_full = "" -cogs = "龍" -disk_drive = "" -headphones = "  " -memory_mem = "" -net_down = "DOWN" -net_up = "UP" -net_vpn = " " -net_wired = "" -net_wireless = " " -thermometer = "  " -time = "" -volume_empty = "" -volume_full = "" -volume_half = "" -volume_muted= " MUTE" - - -[[block]] -block = "net" -device = "wg" -hide_inactive = true -hide_missing = true - -[[block]] -block = "net" -device = "wlo1" -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 = "/" -info_type = "available" -unit = "GB" -format = "{icon} {available}" -interval = 20 -warning = 20.0 -alert = 10.0 - -[[block]] -block = "memory" -display_type = "memory" -format_mem = "{mem_total_used_percents}" -icons_format = " {icon}" -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})" -full_format = "{percentage} ({time}) " -icons_format = " {icon} " - -[[block]] -block = "time" -interval = 60 -format = "%Y-%m-%d %H:%M" diff --git a/dotfiles/sway/config b/dotfiles/sway/config index 3359a4f..08d076c 100644 --- a/dotfiles/sway/config +++ b/dotfiles/sway/config @@ -1,22 +1,47 @@ +# 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 set $mod Mod1 set $left h set $down j set $up k set $right l +#set $term wezterm set $term alacritty -set $wallpaper /home/stefan/Downloads/bg.jpg +set $wallpaper /home/stefan/wall.png set $lock swaylock -t -i $wallpaper --scaling=fill set $font CaskaydiaCove Nerd Font 10 -set $menucolor --ff=#f8f8f2 --nf=#f8f8f2 --tf=#bd93f9 --hf=#bd93f9 --tb=#282a36 --fb=#282a36 --nb=#282a36 --hb=#282a36 --sb=#282a36 -set $menu bemenu-run -H 23 -b -p run $menucolor +set $menucolor -H 23 -b \ + --tf=$white --tb=$cyan \ + --ff=$black --fb=$white \ + --cf=$cyan --cb=$white \ + --nf=$black --nb=$white \ + --af=$black --ab=$white2 \ + --hf=$white --hb=$cyan \ + --sf=$white --sb=$cyan +set $menu bemenu-run -p run $menucolor +set $otpmenu ykman oath accounts code -s "$(ykman oath accounts list | bemenu -i $menucolor)" | wl-copy +font $font 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 output * bg $wallpaper fill output "BenQ Corporation BenQ SW2700 83H03922SL0" res --custom 2560x1440@60Hz +output "BenQ Corporation BenQ SW2700 83H03922SL0" pos 1440 720 +output "BNQ BenQ PD2705Q W4N00777019" pos 0 0 output "Dell Inc. Dell U4919DW HZVZWP2" res 5120x1440 +output eDP-1 scale 1.25 # user keybinds bindsym $mod+Return exec $term @@ -26,13 +51,14 @@ 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+o exec keepassxc +bindsym $mod+Shift+o exec $otpmenu bindsym $mod+z exec $lock bindsym $mod+Up exec light -A 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 insect -e insect -bindsym $mod+Space exec swayr switch-to -bindsym $mod+n exec swayr switch-to-urgent-or-lru-window +bindsym $mod+m exec swayr switch-to +bindsym $mod+n exec emacsclient -cn bindsym Print exec grim -g "$(slurp)" - | wl-copy -t image/png bindswitch --reload --locked lid:on output eDP-1 disable bindswitch --reload --locked lid:off output eDP-1 enable @@ -44,23 +70,11 @@ for_window [title="Picture-in-Picture"] floating enable for_window [title="pyCalc"] floating enable for_window [title="insect"] floating enable -# font -font $font - -# colors -set $black #282a36 -set $red #ff6188 -set $cyan #78dce8 -set $white #fcfcfa -set $yellow #f1fa8c -set $violet #bd93f9 -set $black2 #323232 - # border backgnd text indicator childborder -client.focused $violet $black $white $violet $violet -client.focused_inactive $black $black $white $black2 $black -client.unfocused $black $black $white $black2 $black -client.urgent $red $red $black $black2 $white +client.focused $cyan $white $black $violet $cyan +client.focused_inactive $white2 $white2 $black $white2 $white +client.unfocused $white2 $white2 $black $white2 $white +client.urgent $red $red $white $white2 $black # movement @@ -134,37 +148,38 @@ bar { font $font position bottom colors { - background $black - statusline $white - separator $violet + background $white + statusline $black + separator $cyan # border back text - focused_workspace $violet $violet $black - active_workspace $violet $violet $black - urgent_workspace $red $red $white - inactive_workspace $black $black $white + 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 } set $gnome-schema org.gnome.desktop.interface exec_always { - gsettings set $gnome-schema gtk-theme 'Dracula' - gsettings set $gnome-schema icon-theme 'Dracula' - gsettings set $gnome-schema cursor-theme 'Capitaine Cursors - White' + gsettings set $gnome-schema cursor-theme Adwaita + gsettings set $gnome-schema icon-theme 'capitaine-cursors-white' + gsettings set $gnome-schema cursor-theme 'capitaine-cursors-white' } # autostarts -exec mako --font "$font" \ - --background-color=$black \ - --border-color=$violet \ - --text-color=$white +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 diff --git a/dotfiles/sway/status.toml b/dotfiles/sway/status.toml index 7f94a43..6add7e0 100644 --- a/dotfiles/sway/status.toml +++ b/dotfiles/sway/status.toml @@ -1,64 +1,61 @@ [theme] -name = "plain" +theme = "plain" [theme.overrides] -idle_bg = "#282a36" -idle_fg = "#f8f8f2" -info_bg = "#282a36" -info_fg = "#f8f8f2" -good_bg = "#282a36" -good_fg = "#50fa7b" -warning_bg = "#282a36" -warning_fg = "#f1fa8c" -critical_bg = "#282a36" -critical_fg = "#ff5555" -separator_bg = "#282a36" -separator_fg = "#bd93f9" +idle_bg = "#fafafa" +idle_fg = "#000000" +info_bg = "#fafafa" +info_fg = "#000000" +good_bg = "#fafafa" +good_fg = "#000000" +warning_bg = "#fafafa" +warning_fg = "#908550" +critical_bg = "#fafafa" +critical_fg = "#e75544" +separator_bg = "#fafafa" +separator_fg = "#3c74f6" separator = "|" + [icons] -name = "none" +icons = "none" [icons.overrides] -backlight_empty = "" -backlight_full = "" -backlight_partial1 = "" -backlight_partial2 = "" -backlight_partial3 = "" -bat = "" -bat_charging = "" -bat_discharging = "" -bat_empty = "" -bat_quarter = "" -bat_half = "" -bat_three_quarters = "" -bat_full = "" -cogs = "龍" -disk_drive = "" -headphones = "  " -memory_mem = "" -net_down = "DOWN" -net_up = "UP" +backlight = [ + "󰌶", + "󱩏", + "󱩒", + "󱩕", + "󰛨", +] +bat = [ + "󱃍 ", + "󰁻", + "󰁾", + "󰂁", + "󰁹", +] +bat_charging = "" +cogs = "" +disk_drive = "󱛟" +headphones = "  " +memory_mem = "󰍛" +net_down = "󰅛" +net_up = "󰱓" net_vpn = " " net_wired = "" -net_wireless = " " -thermometer = "  " -time = "" -volume_empty = "" -volume_full = "" -volume_half = "" -volume_muted= " MUTE" - +net_wireless = " 󰖩" +thermometer = " 󰔏 " +time = "󰥔" +volume_muted = "󰖁 MUTE" +volume = [ + "", + "󰕾", + "", +] [[block]] block = "net" -device = "wg" -hide_inactive = true -hide_missing = true - -[[block]] -block = "net" -device = "wlo1" -hide_inactive = true -hide_missing = true +device = "wlp166s0" +format = " $icon $ip$frequency " [[block]] block = "custom" @@ -68,23 +65,19 @@ command = '''echo " $(cat /sys/class/thermal/thermal_zone0/temp | head -c 2) block = "disk_space" path = "/" info_type = "available" -unit = "GB" -format = "{icon} {available}" +format = " $icon $available " interval = 20 warning = 20.0 alert = 10.0 [[block]] block = "memory" -display_type = "memory" -format_mem = "{mem_total_used_percents}" -icons_format = " {icon}" -clickable = false +format = " $icon $mem_used/$mem_total " [[block]] block = "load" interval = 1 -format = "{1m}" +format = " $icon $1m " [[block]] block = "sound" @@ -95,13 +88,23 @@ block = "backlight" [[block]] block = "battery" -device = "BAT0" +device = "BAT1" interval = 10 -format = "{percentage} ({time})" -full_format = "{percentage} ({time}) " -icons_format = " {icon} " +format = " $icon $percentage ($time) " +full_format = " $icon $percentage " [[block]] block = "time" interval = 60 -format = "%Y-%m-%d %H:%M" +format = " $timestamp.datetime(f:'%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" diff --git a/dotfiles/wezterm.lua b/dotfiles/wezterm.lua new file mode 100644 index 0000000..de74238 --- /dev/null +++ b/dotfiles/wezterm.lua @@ -0,0 +1,39 @@ +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.*', + }, +} diff --git a/hardware/framework.nix b/hardware/framework.nix new file mode 100644 index 0000000..dd83777 --- /dev/null +++ b/hardware/framework.nix @@ -0,0 +1,84 @@ +# 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 {}; +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..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 = [ + "mem_sleep_default=deep" + "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"; + }; +} diff --git a/packages/helm2.nix b/packages/helm2.nix deleted file mode 100644 index ebd69e7..0000000 --- a/packages/helm2.nix +++ /dev/null @@ -1,27 +0,0 @@ -with import { }; - -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 lib; { - homepage = "https://helm.sh"; - description = "helms depricated v2 verison"; - platforms = platforms.linux; - maintainers = with maintainers; [ foosinn ]; - }; -} diff --git a/packages/nagstamon.nix b/packages/nagstamon.nix index 86fe18f..c78c154 100644 --- a/packages/nagstamon.nix +++ b/packages/nagstamon.nix @@ -1,37 +1,40 @@ -{ lib, fetchFromGitHub, python39Packages, wrapQtAppsHook }: +{ lib, fetchFromGitHub, python311Packages, wrapQtAppsHook, pkgs }: let pname = "nagstamon"; - version = "v3.8.0"; -in python39Packages.buildPythonApplication rec { + version = "v3.12.0"; + +in python311Packages.buildPythonApplication rec { inherit pname; inherit version; src = fetchFromGitHub { owner = "HenriWahl"; repo = "Nagstamon"; - rev = "${version}"; - sha256 = "0a8aqw44z58pabsgxlvndnmzzvc50wrb4g12yp6zgajn40b2l8pw"; + rev = version; + sha256 = "sha256-SI0FPTqJquaVyl/gpp883eGLq7tZ6J0fqn0jp77M8GM="; }; doCheck = false; nativeBuildInputs = [ wrapQtAppsHook ]; postFixup = '' - wrapQtApp $out/bin/nagstamon.py + makeQtWrapper $out/bin/nagstamon.py $out/bin/nagstamon ''; - propagatedBuildInputs = with python39Packages; [ - beautifulsoup4 - configparser - dateutil - keyring - lxml - psutil - pyqt5_with_qtmultimedia - requests - setuptools - xlib + propagatedBuildInputs = [ + python311Packages.beautifulsoup4 + python311Packages.configparser + python311Packages.dateutil + python311Packages.keyring + python311Packages.lxml + python311Packages.psutil + python311Packages.pyqt5_with_qtmultimedia + python311Packages.requests + python311Packages.requests-kerberos + python311Packages.setuptools + python311Packages.xlib + pkgs.libsForQt5.qt5.qtwayland ]; meta = with lib; { @@ -42,4 +45,3 @@ in python39Packages.buildPythonApplication rec { inherit version; }; } - diff --git a/packages/neovim.nix b/packages/neovim.nix index 933ab1c..2138777 100644 --- a/packages/neovim.nix +++ b/packages/neovim.nix @@ -98,7 +98,7 @@ neovim.override { noremap ml :fzf_lsp_layout let g:which_key_map.g = { 'name': '+git' } - noremap gs :!lazygit + noremap gs :call LazyGit " lang specifics let g:rustfmt_autosave = 1 @@ -110,10 +110,11 @@ neovim.override { airline easymotion editorconfig-vim - fzfWrapper - fzf-vim fzf-lsp-nvim + fzf-vim + fzfWrapper LanguageClient-neovim + lazygit-nvim ncm2 nnn-vim surround diff --git a/roles/admin.nix b/roles/admin.nix index 7a58cb8..7256f86 100644 --- a/roles/admin.nix +++ b/roles/admin.nix @@ -1,6 +1,6 @@ { pkgs, options, ... }: -let unstable = import { }; +let in { environment.systemPackages = with pkgs; [ cryptsetup @@ -9,16 +9,20 @@ in { k9s kind kubectl + kubectx kubeseal + nmap pwgen terraform whois + ipcalc - unstable.argocd - unstable.kubernetes-helm - unstable.kustomize - unstable.terraform-ls - unstable.vault + argocd + kubernetes-helm + kustomize + pre-commit + terraform-ls + vault docker-compose fuse-overlayfs @@ -26,13 +30,23 @@ in { virt-manager (import ../packages/skaffold.nix) - (import ../packages/helm2.nix) (import ../packages/certmanager.nix) ]; + programs.bash.shellAliases = { + kx = "kubectx"; + kns = "kubens"; + }; + virtualisation.docker = { enable = true; storageDriver = "zfs"; }; - virtualisation.libvirtd.enable = true; + virtualisation.libvirtd = { + enable = true; + qemu = { + swtpm.enable = true; + ovmf.enable = true; + }; + }; } diff --git a/roles/base.nix b/roles/base.nix index 2764f21..032f4d7 100644 --- a/roles/base.nix +++ b/roles/base.nix @@ -49,6 +49,7 @@ in { EDITOR = "nvim"; STARSHIP_CONFIG = "/etc/starship.toml"; HISTCONTROL = "ignoreboth"; + NIXOS_OZONE_WL = "y"; }; }; @@ -89,6 +90,8 @@ in { alias ls="ls --color=auto" alias vim="nvim" 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) \ @@ -138,7 +141,12 @@ in { 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"; @@ -174,5 +182,4 @@ in { LC_IDENTIFICATION = "de_DE.UTF-8"; }; }; - } diff --git a/roles/desktop.nix b/roles/desktop.nix index d8e9780..9eea2de 100644 --- a/roles/desktop.nix +++ b/roles/desktop.nix @@ -1,4 +1,4 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ +#g 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, ... }: @@ -7,43 +7,12 @@ let colors = config.colors; schema = pkgs.gsettings-desktop-schemas; datadir = "${schema}/share/gsettings-schemas/${schema.name}"; - unstable = import { config.allowUnfree = true; }; in { - - services.autorandr.enable = true; - services.xserver = { - enable = true; - dpi = 96; - - displayManager = { - sddm.enable = true; - defaultSession = "none+i3"; - }; - - libinput = { - enable = true; - }; - - windowManager.i3 = { - enable = true; - extraPackages = with pkgs; [ - autorandr - dmenu - dunst - feh - i3lock - i3status-rust - maim - xclip - ]; - }; - }; - - - programs.dconf.enable = true; + programs.droidcam.enable = true; programs.sway = { enable = true; + wrapperFeatures.gtk = true; extraPackages = with pkgs; [ bemenu brightnessctl @@ -56,19 +25,15 @@ in slurp swayidle swaylock + swaynotificationcenter swayr wf-recorder wofi - xwayland ]; extraSessionCommands = ""; }; + xdg.portal.enable = true; - xdg.portal = { - enable = true; - gtkUsePortal = true; - extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-wlr ]; - }; boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; colors = { @@ -86,7 +51,6 @@ in environment = { etc = { - "i3/config".source = ../dotfiles/i3/config; "sway/config".source = ../dotfiles/sway/config; "sway/status.toml".source = ../dotfiles/sway/status.toml; "xdg/alacritty/alacritty.yml".text = '' @@ -122,23 +86,19 @@ in key_bindings: - { key: Escape, mods: Control, action: ToggleViMode } ''; + "wezterm.lua".source = ../dotfiles/wezterm.lua; }; }; - programs.qt5ct.enable = true; + qt.platformTheme = "qt5ct"; hardware.pulseaudio.enable = false; security.rtkit.enable = true; - security.polkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; pulse.enable = true; jack.enable = true; - - config.pipewire = { - "context.properties" = { "default.clock.rate" = 48000; }; - }; }; services.udev.packages = [ (pkgs.writeTextFile { @@ -149,10 +109,11 @@ in destination = "/etc/udev/rules.d/80-uinput.rules"; }) ]; + services.ratbagd.enable = true; - fonts.enableDefaultFonts = true; + fonts.enableDefaultPackages = true; fonts.fontconfig.antialias = true; - fonts.fonts = with pkgs; [ + fonts.packages = with pkgs; [ corefonts emacs-all-the-icons-fonts fira-code @@ -194,8 +155,10 @@ in libsForQt5.qtstyleplugins lxappearance numix-icon-theme + numix-cursor-theme alacritty + gimp imv inkscape keepassxc @@ -207,8 +170,10 @@ in nodePackages.insect pavucontrol pcmanfm - pulseeffects-pw qrencode + remmina + wezterm + uxplay solaar gdk-pixbuf @@ -216,7 +181,7 @@ in clipman wdisplays wl-clipboard - xdg_utils + xdg-utils xfce.thunar xfce.thunar-volman wtype @@ -237,6 +202,7 @@ in export QT_QPA_PLATFORM=wayland-egl export QT_WAYLAND_FORCE_DPI=96 export SDL_VIDEODRIVER=wayland + export WEZTERM_CONFIG_FILE=/etc/wezterm.lua export XDG_CURRENT_DESKTOP=sway export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS export XDG_SESSION_TYPE=wayland @@ -259,8 +225,14 @@ in services.printing.enable = true; services.printing.drivers = [ pkgs.gutenprint ]; - services.avahi.enable = true; - services.avahi.nssmdns = true; - - hardware.opengl = { enable = true; }; + services.avahi = { + enable = true; + nssmdns4 = true; + publish = { + enable = true; + addresses = true; + workstation = true; + userServices = true; + }; + }; } diff --git a/roles/dev.nix b/roles/dev.nix index 92cda0c..28172b9 100644 --- a/roles/dev.nix +++ b/roles/dev.nix @@ -1,40 +1,42 @@ -{ config, lib, pkgs, ... }: +{ config, lib, buildPythonPackage, pkgs, fetchPypi,... }: -let unstable = import { }; +let + unstable = import { }; in { + services.emacs.package = pkgs.emacs29-pgtk; + environment.systemPackages = with pkgs; [ gnumake - go_1_17 + go rustup shellcheck unstable.golangci-lint unstable.gopls unstable.rust-analyzer - #unstable.esphome - unstable.nodePackages.pyright - (python39.withPackages + (python311.withPackages (python-packages: with python-packages; [ black diagrams pymemcache pyyaml requests - ])) + ruff-lsp + ]) + ) mariadb-client musl - dbeaver - emacs + dbeaver-bin + emacs29-pgtk gitAndTools.delta lazygit ltrace parallel sops tig - unstable.bazel openssl pkg-config diff --git a/roles/mail.nix b/roles/mail.nix index f2cd7e0..7615422 100644 --- a/roles/mail.nix +++ b/roles/mail.nix @@ -1,7 +1,6 @@ { config, lib, pkgs, ... }: let - unstable = import { config.allowUnfree = true; }; notcoal = pkgs.callPackage ../packages/notcoal { }; in { environment.systemPackages = with pkgs; [ @@ -11,7 +10,7 @@ in { notmuch notcoal thunderbird - unstable.astroid + astroid vdirsyncer ]; } diff --git a/roles/network.nix b/roles/network.nix index 4dce0d4..a7b3b84 100644 --- a/roles/network.nix +++ b/roles/network.nix @@ -1,6 +1,6 @@ { config, lib, pkgs, ... }: -let unstable = import { config.allowUnfree = true; }; +let in { networking.networkmanager.enable = true; @@ -9,5 +9,6 @@ in { environment.systemPackages = with pkgs; [ networkmanagerapplet networkmanager-vpnc + openconnect_openssl ]; } diff --git a/roles/private.nix b/roles/private.nix index dd28440..408652f 100644 --- a/roles/private.nix +++ b/roles/private.nix @@ -1,7 +1,6 @@ { config, lib, pkgs, ... }: let - unstable = import { }; openscad-ls = pkgs.callPackage ../packages/openscad-language-server.nix { }; in { diff --git a/roles/work.nix b/roles/work.nix index 8a7485e..502c1ae 100644 --- a/roles/work.nix +++ b/roles/work.nix @@ -3,10 +3,29 @@ let unstable = import { config.allowUnfree = true; }; 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 { + environment.variables = { + USE_GKE_GCLOUD_AUTH_PLUGIN = "True"; + }; + + services.tailscale = { + enable = true; + package = unstable.tailscale; + }; + security.pki.certificateFiles = [ ../dotfiles/certs/NetzmarktCA.crt ../dotfiles/certs/vcenter.netzmarkt.lan.crt @@ -21,8 +40,18 @@ in { 172.20.0.2 grafana.kind 172.20.0.2 alert.kind + #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 + + 34.49.192.42 www.tbone.audio + 34.49.192.42 jobs.thomann.de + ''; environment.systemPackages = with pkgs; [ @@ -32,17 +61,29 @@ in { # (import ../packages/vaultsink.nix) needs opensource verson cloudstation nagstamon + yubikey-manager + anydesk + chromium + nodejs + vscodium drone-cli - go-jira govc ttyd - unstable.discord - unstable.google-cloud-sdk - unstable.slack - unstable.velero + discord + (google-cloud-sdk.withExtraComponents [ + google-cloud-sdk.components.gke-gcloud-auth-plugin + ]) + myslack + velero - unstable.obs-studio - unstable.obs-studio-plugins.wlrobs + obs-studio + obs-studio-plugins.wlrobs + + prusa-slicer ]; + + # yubikey support + services.udev.packages = [ pkgs.yubikey-personalization ]; + services.pcscd.enable = true; }