Merge branch 'main' into reticulum

This commit is contained in:
Aaron Bieber 2024-01-31 06:02:39 -07:00
commit 5785a96042
No known key found for this signature in database
17 changed files with 524 additions and 100 deletions

30
configs/alacritty.nix Normal file
View File

@ -0,0 +1,30 @@
{ pkgs, ... }:
let
settings = {
font = {
normal = {
family = "Go Mono";
};
size = 6;
};
colors = {
primary = {
background = "#ffffea";
foreground = "#000000";
};
};
};
settingsFormat = pkgs.formats.toml { };
settingsFile = settingsFormat.generate "alacritty.toml" settings;
in
{
config = {
environment = {
etc = {
"xdg/alacritty/alacritty.toml".text = builtins.readFile settingsFile;
};
};
fonts = { packages = with pkgs; [ go-font ]; };
};
}

View File

@ -1,18 +1,20 @@
{ ... }: { { ... }: {
imports = [ imports = [
./alacritty.nix
./ca.nix ./ca.nix
./ci.nix ./ci.nix
./colemak.nix ./colemak.nix
./dns.nix ./dns.nix
./doas.nix ./doas.nix
./git.nix ./git.nix
./neovim.nix
./peerix.nix
./manager.nix ./manager.nix
./tmux.nix ./neovim.nix
./net-overlay.nix ./net-overlay.nix
./zsh.nix
./nix.nix ./nix.nix
./peerix.nix
./polybar.nix
./tmux.nix
./update.nix ./update.nix
./zsh.nix
]; ];
} }

View File

@ -1,7 +1,7 @@
{ lib, ... }: { lib, ... }:
with lib; { with lib; {
environment = { environment = {
memoryAllocator.provider = mkDefault "scudo"; memoryAllocator.provider = mkDefault "libc";
variables.SCUDO_OPTIONS = mkDefault "ZeroContents=1"; variables.SCUDO_OPTIONS = mkDefault "ZeroContents=1";
}; };

125
configs/polybar.nix Normal file
View File

@ -0,0 +1,125 @@
{ pkgs, ... }:
let
barBase = {
background = "\${colors.background}";
foreground = "\${colors.foreground}";
border-color = "#DEDeff";
border-size = "2pt";
width = "100%";
height = "24pt";
enable-ipc = true;
font-0 = "Go Mono;3";
line-size = "3pt";
module-margin = 1;
padding = 2;
radius = 15;
separator = "|";
modules-left = "xworkspaces";
modules-right = "wifi ethernet memory cpu battery date";
};
settings = {
colors = {
background = "#ffffea";
background-alt = "#373B41";
foreground = "#000000";
primary = "#F0C674";
secondary = "#8ABEB7";
alert = "#A54242";
disabled = "#707880";
};
"module/cpu" = {
type = "internal/cpu";
interval = 2;
format-prefix = "CPU: ";
label = "%percentage:2%%";
};
"module/date" = {
type = "internal/date";
interval = 1;
date = "%H:%M";
date-alt = "%Y-%m-%d %H:%M:%S";
label = "%date%";
};
"module/memory" = {
type = "internal/memory";
interval = 2;
format-prefix = "RAM: ";
label = "%percentage_used:2%%";
};
"module/xworkspaces" = {
type = "internal/xworkspaces";
};
"module/xwindow" = {
type = "internal/xwindow";
};
"module/systray" = {
type = "internal/tray";
};
"module/battery" = {
type = "internal/battery";
full-at = 99;
low-at = 5;
# $ ls -1 /sys/class/power_supply/
battery = "BAT1";
adapter = "ACAD";
poll-interval = 5;
time-format = "%H:%M";
label-charging = "+%percentage%%";
label-discharging = "-%percentage%%";
label-low = "BATTERY LOW";
};
"module/wifi" = {
type = "internal/network";
interface-type = "wireless";
accumulate-stats = true;
label-connected = "%essid% %netspeed%";
};
"module/ethernet" = {
type = "internal/network";
interface-type = "wired";
accumulate-stats = true;
label-connected = "%netspeed%";
};
"bar/europa" = barBase // { };
"bar/clunk" = barBase // { };
};
settingsFormat = pkgs.formats.ini { };
settingsFile = settingsFormat.generate "polybar-config.ini" settings;
in
{
config = {
environment = {
systemPackages = [ pkgs.polybar ];
etc = {
"xdg/polybar/config.ini".text = builtins.readFile settingsFile;
};
};
fonts = { packages = [ pkgs.go-font ]; };
};
}

82
flake.lock generated
View File

@ -43,11 +43,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1705452289, "lastModified": 1706581965,
"narHash": "sha256-i/WodLabBcmRr9hdSv5jzDigL1hRYuI8vNh+xTbGt+g=", "narHash": "sha256-1H7dRdK9LJ7+2X1XQtbwXr+QMqtVVo/ZF0/LIvkjdK8=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "74ab0227ee495e526f2dd57ea684b34f6396445a", "rev": "91b9daf672c957ef95a05491a75f62e6a01d5aaf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -110,11 +110,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1700085029, "lastModified": 1706538267,
"narHash": "sha256-lxI1Lubo3tG3GeMVIPXM+TXBPTEtTZFVUrxWcIBzRbQ=", "narHash": "sha256-1LKxeGiH18qTf5uyQowEHpd0+ytXs8s0MspLxXelXzM=",
"owner": "qbit", "owner": "qbit",
"repo": "gostart", "repo": "gostart",
"rev": "650550af32e0d001e0728fe3b95aaa0be8ed8f45", "rev": "06238dbfc214e7cd8663d199ec9b2cb2f727a5c1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -161,11 +161,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1705312285, "lastModified": 1706182238,
"narHash": "sha256-rd+dY+v61Y8w3u9bukO/hB55Xl4wXv4/yC8rCGVnK5U=", "narHash": "sha256-Ti7CerGydU7xyrP/ow85lHsOpf+XMx98kQnPoQCSi1g=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "bee2202bec57e521e3bd8acd526884b9767d7fa0", "rev": "f84eaffc35d1a655e84749228cde19922fcf55f1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -361,11 +361,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1705356877, "lastModified": 1706410821,
"narHash": "sha256-274jL1cH64DcXUXebVMZBRUsTs3FvFlPIPkCN/yhSnI=", "narHash": "sha256-iCfXspqUOPLwRobqQNAQeKzprEyVowLMn17QaRPQc+M=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "87755331580fdf23df7e39b46d63ac88236bf42c", "rev": "73bf36912e31a6b21af6e0f39218e067283c67ef",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -376,11 +376,11 @@
}, },
"stable": { "stable": {
"locked": { "locked": {
"lastModified": 1705524007, "lastModified": 1706625233,
"narHash": "sha256-XyjcYXCJBO9cshjp98d8aG/DAgu0gPFBBWvgHPiwt7E=", "narHash": "sha256-DLlMXRloZm22UvHa1F3K1Perd0PhSmtlCUglyjIwlek=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ad9669c74e7ef4f6a13040851fef9aa05f8ceb7b", "rev": "5b8cd3c2523ab08051ef5d5a5f8164aee3e67410",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -392,10 +392,10 @@
}, },
"stable_2": { "stable_2": {
"locked": { "locked": {
"lastModified": 1702161203, "lastModified": 1706176172,
"narHash": "sha256-nq40oP9Pk/bC9/3ShxUah2FWsyHcObtS2NU5rV8shXY=", "narHash": "sha256-+kOLrH4DNw6EMITqXosMqoQUyIGWTMYVYcqALP8+PPc=",
"path": "/nix/store/2mk1z2xf4v5rnpml75gbmgv6bv6i4nig-source", "path": "/nix/store/a2y0kc4g4xlxg5r50565y45734q4mssd-source",
"rev": "901fc6ea49ca9e9bbf636c48e2611588802e7b16", "rev": "72d28a6d71c30f0242c18317520bc3f4d822e794",
"type": "path" "type": "path"
}, },
"original": { "original": {
@ -450,11 +450,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1700230166, "lastModified": 1706541995,
"narHash": "sha256-4C3zisZ2YZRUzWagNgbKnLjSP2W1lCdqDvusuF7LFeQ=", "narHash": "sha256-H08lKKLU3db/USh17x2sD6f6Zf5tRr0r3cFQEMHF3vQ=",
"owner": "qbit", "owner": "qbit",
"repo": "ts-reverse-proxy", "repo": "ts-reverse-proxy",
"rev": "4a932dae8d68ed4de61b8d2c9d096127171cbf48", "rev": "32dcd0f1a301833230b003efb84b148ba39230b2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -470,11 +470,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1702158663, "lastModified": 1706542526,
"narHash": "sha256-GaNzTaOuFk3oWQnPugtXsAW/BUxLDna9O2MGjeSYamg=", "narHash": "sha256-L0+rDINoY9fpSpn+Xf0LZfF4ItbKi3snLTXgvm0SUyQ=",
"owner": "qbit", "owner": "qbit",
"repo": "tsvnstat", "repo": "tsvnstat",
"rev": "8503704a62b535db058dc499233e6045ee2bd53f", "rev": "163b4b642e4c44a4929d3a8d17179436b6739451",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -485,11 +485,11 @@
}, },
"unstable": { "unstable": {
"locked": { "locked": {
"lastModified": 1705556346, "lastModified": 1706672657,
"narHash": "sha256-2+ZUEFCKlctTsut81S84xkCccMsZLLX7DA/U3xZ3BqY=", "narHash": "sha256-API05c0SDZrmzz1wpqt/K3iCwlaOqDeDfZGp0YGQnek=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cefcf19e1c6d4255b2aede5535d04064f6917e9b", "rev": "632751bf0ceeefc74af7a9d2335ea923ad9c831a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -500,11 +500,11 @@
}, },
"unstableSmall": { "unstableSmall": {
"locked": { "locked": {
"lastModified": 1705429789, "lastModified": 1706631780,
"narHash": "sha256-7gQju9WiToi7wI6oahTXiqwJu2RZoV0cg8OGa9YhEvw=", "narHash": "sha256-prq+Rk/1drYmoG5Xm/ttzyYux2NNn5ZGX0Lt3j69VBo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cc3ab0e45687d15cb21663a95f5a53a05abd39e4", "rev": "d3c09ae008dbb08a238aadfad70d5a168bc63e29",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -516,11 +516,11 @@
}, },
"unstable_2": { "unstable_2": {
"locked": { "locked": {
"lastModified": 1702397419, "lastModified": 1706278372,
"narHash": "sha256-CBMSwZHT7GLq2JdOPWAVDBaYFbUHWD1+jPFrYk0JeLM=", "narHash": "sha256-SYceUQX1wjDQQsdws5MjNOWXE79GESFp/9uc4w3tZDo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "73ca2df642228129df7a968bad6499732dbc7ddd", "rev": "6081df2649d246e60d9d0165c79bea8ac3a97816",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -553,11 +553,11 @@
"unstable": "unstable_2" "unstable": "unstable_2"
}, },
"locked": { "locked": {
"lastModified": 1703787975, "lastModified": 1706280764,
"narHash": "sha256-KCIiOu/LU3juaw+MipIsJOWkwU1QlIMlQZ+JuKEoRhY=", "narHash": "sha256-hvqQwniv9DTXHHf9wXdSus5aaZUMX+cPjm0BU5sT4cI=",
"ref": "main", "ref": "main",
"rev": "0934337798b36835864df2fe8298aeb86a7bbc6c", "rev": "28c6b8651be883f28933d2646221098394c1fdab",
"revCount": 121, "revCount": 125,
"type": "git", "type": "git",
"url": "ssh://xin-secrets-ro/qbit/xin-secrets.git" "url": "ssh://xin-secrets-ro/qbit/xin-secrets.git"
}, },
@ -574,11 +574,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1699892883, "lastModified": 1706533372,
"narHash": "sha256-ilSljUKveIjUd0dHJhZiAZ3rwKqO7ZBslvBsPEzQ7/U=", "narHash": "sha256-hKUfvEYQWSfb9y99wUE4V8qqKbkCTlP+P9rpJLMZhZQ=",
"owner": "qbit", "owner": "qbit",
"repo": "xintray", "repo": "xintray",
"rev": "fd0dbedf136831e5eefd4fceaf8ad1f973c084e0", "rev": "2db51608995317dcae33c450a2cabf6580cb8210",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -218,6 +218,7 @@
europa = buildSys "x86_64-linux" unstable [ europa = buildSys "x86_64-linux" unstable [
nixos-hardware.nixosModules.framework-11th-gen-intel nixos-hardware.nixosModules.framework-11th-gen-intel
] "europa"; ] "europa";
clunk = buildSys "x86_64-linux" unstable [ ] "clunk";
pwntie = buildSys "x86_64-linux" stable [ ] "pwntie"; pwntie = buildSys "x86_64-linux" stable [ ] "pwntie";
stan = buildSys "x86_64-linux" unstable [ stan = buildSys "x86_64-linux" unstable [
nixos-hardware.nixosModules.framework-11th-gen-intel nixos-hardware.nixosModules.framework-11th-gen-intel
@ -393,7 +394,7 @@
checks = checks =
let let
buildList = [ "europa" "stan" "h" "box" "faf" "weather" ]; buildList = [ "europa" "stan" "h" "box" "faf" "weather" "clunk" ];
in in
with unstable.lib; with unstable.lib;
foldl' recursiveUpdate { } (mapAttrsToList foldl' recursiveUpdate { } (mapAttrsToList

View File

@ -102,6 +102,7 @@ with lib; {
SSH_AUTH_SOCK = "$HOME/.traygent"; SSH_AUTH_SOCK = "$HOME/.traygent";
}; };
systemPackages = with pkgs; (xinlib.filterList [ systemPackages = with pkgs; (xinlib.filterList [
alacritty
bc bc
beyt beyt
black black

View File

@ -1,7 +1,6 @@
{ config { config
, lib , lib
, pkgs , pkgs
, isUnstable
, xinlib , xinlib
, ... , ...
}: }:
@ -207,15 +206,17 @@ in
# "services/home-automation/home-assistant.nix" # "services/home-automation/home-assistant.nix"
#]; #];
environment.systemPackages = with pkgs; [ environment = {
tmux systemPackages = with pkgs; [
mosh tmux
apg mosh
git apg
signify git
glowing-bear signify
rtl_433 glowing-bear
]; rtl_433
];
};
security.acme = { security.acme = {
acceptTerms = true; acceptTerms = true;
@ -512,7 +513,7 @@ in
fwupd.enable = true; fwupd.enable = true;
zfs = { zfs = {
autoSnapshot={ autoSnapshot = {
enable = true; enable = true;
daily = 3; daily = 3;
hourly = 8; hourly = 8;

90
hosts/clunk/default.nix Normal file
View File

@ -0,0 +1,90 @@
{ pkgs
, ...
}:
let
pubKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO7v+/xS8832iMqJHCWsxUZ8zYoMWoZhjj++e26g1fLT europa"
];
in
{
_module.args.isUnstable = true;
imports = [
./hardware-configuration.nix
];
hardware.rtl-sdr.enable = true;
boot = {
loader.grub = {
enable = true;
devices = [
"/dev/disk/by-id/wwn-0x5001b448be78d64a"
];
};
kernelPackages = pkgs.linuxPackages_latest;
};
nixpkgs.config.allowUnsupportedSystem = true;
networking = {
hostName = "clunk";
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [ 22 ];
checkReversePath = "loose";
};
};
environment.systemPackages = with pkgs; [
alacritty
direwolf
polybar
python3
python3Packages.nomadnet
python3Packages.rns
rofi
rtl-sdr
tncattach
# no GLSL ES 3.10
# (callPackage ../../pkgs/zutty.nix { })
];
services = {
fwupd = {
enable = true;
enableTestRemote = true;
};
xserver = {
enable = true;
displayManager.lightdm.enable = true;
videoDrivers = [ "intel" ];
deviceSection = ''
Option "DRI" "2"
Option "TearFree" "true"
'';
libinput.enable = true;
windowManager.xmonad = {
enable = true;
extraPackages = haskellPackages: with haskellPackages; [ xmonad-contrib hostname ];
config = builtins.readFile ./xmonad.hs;
};
};
};
users = {
users = {
root = { openssh.authorizedKeys.keys = pubKeys; };
qbit = {
openssh.authorizedKeys.keys = pubKeys;
extraGroups = [ "dialout" "libvirtd" "plugdev" ];
};
};
};
system.stateVersion = "22.11";
}

View File

@ -0,0 +1,31 @@
{ config, lib, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
boot = {
initrd = {
availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "usb_storage" "ums_realtek" "sd_mod" ];
kernelModules = [ ];
};
kernelModules = [ ];
extraModulePackages = [ ];
};
fileSystems."/" =
{
device = "/dev/disk/by-uuid/d97f80ac-63fe-43d3-a3f5-3c385a41a068";
fsType = "ext4";
};
swapDevices =
[{ device = "/dev/disk/by-uuid/b70a6cac-996e-4a05-a3d0-17c7acf90f08"; }];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

142
hosts/clunk/xmonad.hs Normal file
View File

@ -0,0 +1,142 @@
{-# LANGUAGE QuasiQuotes #-}
import qualified Data.Map as M
import Data.Monoid
import Network.HostName
import XMonad
import XMonad.Actions.CycleWS
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.UrgencyHook
import XMonad.Layout.Decoration
import XMonad.Layout.LayoutModifier
import XMonad.Layout.Simplest (Simplest(..))
import XMonad.Layout.Spacing
import XMonad.Layout.SubLayouts
import XMonad.Layout.Tabbed
import XMonad.Layout.WindowNavigation
import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig
import XMonad.Util.NamedWindows
import XMonad.Util.Run
import XMonad.Util.SpawnOnce
data LibNotifyUrgencyHook =
LibNotifyUrgencyHook
deriving (Read, Show)
instance UrgencyHook LibNotifyUrgencyHook where
urgencyHook LibNotifyUrgencyHook w = do
name <- getName w
Just idx <- fmap (W.findTag w) $ gets windowset
safeSpawn "notify-send" [show name, "workspace " ++ idx]
main :: IO ()
main = do
hostname <- getHostName
xmonad $
ewmh $
withUrgencyHook LibNotifyUrgencyHook $
def
{ normalBorderColor = "#666666"
, focusedBorderColor = "darkgrey"
, focusFollowsMouse = False
, terminal = "alacritty"
, workspaces = myWorkspaces
, startupHook = myStartupHook hostname
, layoutHook = myLayoutHook
, keys = \c -> myKeys c `M.union` XMonad.keys def c
, manageHook = manageDocks <+> myManageHook <+> manageHook def
} `removeKeysP`
["M-p"] -- don't clober emacs.
myKeys :: XConfig t -> M.Map (KeyMask, KeySym) (X ())
myKeys (XConfig {XMonad.modMask = modm}) =
M.fromList
[ ((modm .|. shiftMask, xK_Right), shiftToNext)
, ((modm .|. shiftMask, xK_Left), shiftToPrev)
, ((modm, xK_r), spawn "rofi -show run")
, ((modm .|. controlMask, xK_h), sendMessage $ pullGroup L)
, ((modm .|. controlMask, xK_l), sendMessage $ pullGroup R)
, ((modm .|. controlMask, xK_k), sendMessage $ pullGroup U)
, ((modm .|. controlMask, xK_j), sendMessage $ pullGroup D)
, ((modm .|. controlMask, xK_m), withFocused (sendMessage . MergeAll))
, ((modm .|. controlMask, xK_u), withFocused (sendMessage . UnMerge))
, ((modm .|. controlMask, xK_period), onGroup W.focusUp')
, ((modm .|. controlMask, xK_comma), onGroup W.focusDown')
]
myWorkspaces :: [String]
myWorkspaces =
clickable $ ["main", "2", "3", "4", "5", "6", "7", "8", "console"]
where
clickable l =
[ "%{A1:xdotool key alt+" ++ show (n) ++ "&:}" ++ ws ++ "%{A}"
| (i, ws) <- zip [1 :: Int .. 9 :: Int] l
, let n = i
]
myTabTheme :: Theme
myTabTheme =
def
{ activeTextColor = "#000"
, activeColor = "#ffffea"
, inactiveColor = "#dedeff"
, urgentBorderColor = "red"
}
myLayoutHook ::
XMonad.Layout.LayoutModifier.ModifiedLayout
WindowNavigation
(XMonad.Layout.LayoutModifier.ModifiedLayout
(XMonad.Layout.Decoration.Decoration
XMonad.Layout.Tabbed.TabbedDecoration
XMonad.Layout.Decoration.DefaultShrinker)
(XMonad.Layout.LayoutModifier.ModifiedLayout
(Sublayout Simplest)
(XMonad.Layout.LayoutModifier.ModifiedLayout
Spacing
(Choose
(XMonad.Layout.LayoutModifier.ModifiedLayout
(XMonad.Layout.Decoration.Decoration
XMonad.Layout.Tabbed.TabbedDecoration
XMonad.Layout.Decoration.DefaultShrinker)
(XMonad.Layout.LayoutModifier.ModifiedLayout
(Sublayout Simplest)
Tall))
(Choose
(Mirror
(XMonad.Layout.LayoutModifier.ModifiedLayout
(XMonad.Layout.Decoration.Decoration
XMonad.Layout.Tabbed.TabbedDecoration
XMonad.Layout.Decoration.DefaultShrinker)
(XMonad.Layout.LayoutModifier.ModifiedLayout
(Sublayout Simplest)
Tall)))
Full)))))
Window
myLayoutHook =
windowNavigation $
subTabbed $
spacingRaw True (Border 30 5 5 5) True (Border 10 10 10 10) True $
(tiled ||| Mirror tiled ||| Full)
where
tiled =
addTabs shrinkText myTabTheme . subLayout [] Simplest $
Tall nmaster delta ratio
nmaster = 1
ratio = 0.5
delta = 0.03
myManageHook :: Query (Data.Monoid.Endo WindowSet)
myManageHook =
composeAll
[ className =? "mpv" --> doFloat
, className =? "VLC" --> doFloat
, className =? "Pinentry-gtk-2" --> doFloat
, className =? "Pinentry-gnome3" --> doFloat
, className =? "XConsole" --> doF (W.shift (myWorkspaces !! 8))
]
myStartupHook hostname = do
spawn ("pkill polybar; polybar " ++ hostname)

View File

@ -413,6 +413,7 @@ in
tea tea
thunderbird thunderbird
tigervnc tigervnc
tncattach
unzip unzip
veilid veilid
virt-manager virt-manager

View File

@ -72,6 +72,13 @@ in
kernelParams = [ "net.ifnames=0" ]; kernelParams = [ "net.ifnames=0" ];
}; };
nix = {
settings = {
allowed-users = lib.mkForce [ "root" ];
trusted-users = lib.mkForce [ "root" ];
};
};
tailscale.sshOnly = true; tailscale.sshOnly = true;
nixpkgs.overlays = [ nixpkgs.overlays = [
@ -218,7 +225,6 @@ in
}; };
environment = { environment = {
memoryAllocator.provider = "libc";
systemPackages = with pkgs; [ systemPackages = with pkgs; [
inetutils inetutils
@ -236,6 +242,7 @@ in
zonemaster-cli zonemaster-cli
sqlite sqlite
python3Packages.nomadnet
]; ];
}; };

View File

@ -133,6 +133,21 @@ in
group = "wheel"; group = "wheel";
mode = "400"; mode = "400";
}; };
restic_password_file = {
sopsFile = config.xin-secrets.stan.main;
owner = "root";
mode = "400";
};
restic_env_file = {
sopsFile = config.xin-secrets.stan.main;
owner = "root";
mode = "400";
};
restic_repo_file = {
sopsFile = config.xin-secrets.stan.main;
owner = "root";
mode = "400";
};
}; };
users.users.root = userBase; users.users.root = userBase;
@ -193,6 +208,20 @@ in
}; };
services = { services = {
restic = {
backups = {
remote = {
initialize = true;
environmentFile = "${config.sops.secrets.restic_env_file.path}";
passwordFile = "${config.sops.secrets.restic_password_file.path}";
repositoryFile = "${config.sops.secrets.restic_repo_file.path}";
paths = [ "/home/abieber" ];
pruneOpts = [ "--keep-daily 7" "--keep-weekly 2" "--keep-monthly 2" ];
};
};
};
rsyslogd = { rsyslogd = {
enable = testingMode; enable = testingMode;
defaultConfig = '' defaultConfig = ''

View File

@ -1,5 +1,4 @@
{ pkgs { pkgs
, config
, lib , lib
, modulesPath , modulesPath
, ... , ...

View File

@ -4,52 +4,17 @@
}: }:
let let
inherit (xinlib) prIsOpen; inherit (xinlib) prIsOpen;
tailscale = prIsOpen.overlay 0 import ./tailscale.nix;
matrix-synapse = prIsOpen.overlay 0 (import ./matrix-synapse.nix); matrix-synapse = prIsOpen.overlay 0 (import ./matrix-synapse.nix);
heisenbridge = prIsOpen.overlay 0 (import ./heisenbridge.nix); heisenbridge = prIsOpen.overlay 0 (import ./heisenbridge.nix);
in in
{ {
nixpkgs.overlays = nixpkgs.overlays = [ heisenbridge ] ++
if isUnstable (if isUnstable
then [ then [
tailscale
heisenbridge
(_: super: {
cloud-hypervisor = super.cloud-hypervisor.overrideAttrs (_: {
cargoTestFlags = [ "--bins" ];
});
})
(_: super: {
clementine = super.clementine.overrideAttrs (_: {
patches = [
(super.fetchpatch {
name = "clementine-di-radio-fix.diff";
url = "https://patch-diff.githubusercontent.com/raw/clementine-player/Clementine/pull/7217.diff";
hash = "sha256-kaKc2YFkXJRPibbKbBCHvlm6Y/H9zS83ohMxtUNUFlM=";
})
];
});
})
] ]
else [ else [
#rex
(_: super: {
python3 = super.python3.override {
packageOverrides = _: python-super: {
pillow = python-super.pillow.overrideAttrs (_: rec {
version = "10.0.1";
src = python-super.fetchPypi {
pname = "Pillow";
inherit version;
hash = "sha256-1ylnsGvpMA/tXPvItbr87sSL983H2rZrHSVJA1KHGR0=";
};
});
};
};
})
matrix-synapse matrix-synapse
heisenbridge ]);
];
} }
# Example Python dep overlay # Example Python dep overlay
# (self: super: { # (self: super: {

View File

@ -6,13 +6,13 @@
with lib; with lib;
buildGoModule rec { buildGoModule rec {
pname = "sliding-sync"; pname = "sliding-sync";
version = "0.99.14"; version = "0.99.15";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "matrix-org"; owner = "matrix-org";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-C6osjpmz6cpqtzi2GEkLgNeXsF/Cfj9p1pPqYqxVg3Y="; hash = "sha256-9JYR9fBxtv+3E+l+l26jryqEstnOUm657VsKsDRzD9g=";
}; };
vendorHash = "sha256-THjvc0TepIBFOTte7t63Dmadf3HMuZ9m0YzQMI5e5Pw="; vendorHash = "sha256-THjvc0TepIBFOTte7t63Dmadf3HMuZ9m0YzQMI5e5Pw=";