Compare commits

...

142 Commits

Author SHA1 Message Date
37033049ed update nixos 2023-08-28 13:11:45 -07:00
2b8fc1d91c update nixos 2023-08-20 15:24:55 -07:00
69b54087e0 update nixos 2023-08-20 12:02:24 -07:00
eaf2334a04 update nixos 2023-07-03 17:40:52 -07:00
4525b47d35 update nixos 2023-05-14 17:57:58 -07:00
4d9937cf9d flammea: zfs 2023-05-14 16:52:08 -07:00
90e1c36244 gthumb 2023-04-10 10:43:30 -07:00
5f3628d1a1 update nixos 2023-03-04 18:20:06 -08:00
d02a0d7a45 gnome: add ibus-engines.rime 2023-02-27 15:51:20 -08:00
36e5d09e8a flammea: switch to gnome 2023-02-24 14:04:10 -08:00
821549f525 fix gnome module 2023-02-24 14:04:10 -08:00
9da7c7c9fc flammea: add mpd 2023-02-24 14:04:10 -08:00
32ec56e6e0 euhadra: update 2023-02-24 14:04:10 -08:00
bd20b7622d update nixos 2023-02-24 11:40:43 -08:00
4fb0970418 flammea: add tailscale 2022-11-25 18:46:33 -08:00
25f079383f update nixos 2022-11-25 18:46:27 -08:00
d7cdd2a2b3 aplysia: fix build 2022-11-24 02:30:21 +01:00
c12f4efc1d aplysia: enable tailscale 2022-11-23 17:29:01 -08:00
3c6000dc31 disable nebula 2022-11-23 17:28:44 -08:00
81db657d73 add recommended tailscale option 2022-11-23 17:03:08 -08:00
84c356d93c enable tailscale 2022-11-23 17:01:25 -08:00
8d767ca499 euhadra: add to nebula 2022-11-24 01:59:07 +01:00
b5b2062620 mastus: nebula dns diff port 2022-11-18 23:19:29 -08:00
e3b25a5bc1 nebula more ports 2022-11-18 23:05:41 -08:00
3849c3720b mastus: nebula dns try 2 2022-11-18 22:30:32 -08:00
cd4199dc3e euhadra: update 2022-11-19 07:24:23 +01:00
429a7a1e55 petalius: add to nebula 2022-11-18 22:23:42 -08:00
06a4738877 mastus: add nebula 2022-11-18 22:00:23 -08:00
2aabd4f7db update nixos 2022-11-13 14:16:03 -08:00
2fd59032f4 update nixos 2022-11-11 22:40:55 -08:00
8d4f04d8a2 update nixos 2022-10-31 17:26:09 -07:00
18ecb5248d add gebner2 2022-10-31 17:14:55 -07:00
e8229ce713 Use American paper. 2022-10-21 15:18:21 -07:00
5cdd1b8f02 petalius: connect directly to htdf-gw 2022-09-29 16:51:26 -07:00
d79dd140fc aplysia moves to htdf 2022-09-29 16:48:15 -07:00
26b98e4131 Disable radicale patch. 2022-09-29 06:39:38 -07:00
b89904422f Fix dns. 2022-09-29 06:39:15 -07:00
048e8daf96 Fix radicale patch. 2022-09-28 18:16:45 -07:00
4d3b6bcba4 Prepare radicale patch. 2022-09-26 11:32:55 -07:00
981f860bdc Move to Seattle. 2022-09-26 08:13:51 -07:00
26e9a7d7da New htdf-gw ip 2022-09-18 18:06:41 +02:00
a74f967624 restic 2022-09-17 17:13:29 +02:00
15f17e3051 update nixos 2022-09-17 13:03:09 +02:00
746eeffff8 mastus: radicale 3 2022-09-03 23:34:50 +02:00
692c8368eb update nixos 2022-09-03 12:05:12 +02:00
a1d4c16326 fix khal completion; 2022-09-03 12:00:08 +02:00
1c25e80ce5 update nixos 2022-08-22 18:54:27 +02:00
ceeebd285f Update nixos. 2022-08-15 11:37:26 +02:00
fb2d5cab05 decoysnail: use sway 2022-08-15 11:26:12 +02:00
93d868d047 update nixos 2022-07-16 19:33:52 +02:00
7246542704 update nixos 2022-07-02 16:39:07 +02:00
7cda28aacc sway: add playerctl 2022-06-27 19:59:04 +02:00
a9ca075f23 update nixos 2022-06-26 11:32:33 +02:00
07460df992 update nixos 2022-06-13 21:34:03 +02:00
513e53b032 update nixos 2022-06-08 18:41:49 +02:00
75176c7aef don't restart resolved 2022-06-07 12:18:37 +02:00
cecc2f51a0 update nixos 2022-06-04 15:03:36 +02:00
4b727896b7 sway: disable x11 2022-05-31 17:01:19 +02:00
0c1d76cb38 update nixos 2022-05-31 16:57:25 +02:00
c81774e6a7 update nixos 2022-05-28 16:51:26 +02:00
7bca210546 update nixos 2022-05-26 14:13:22 +02:00
65ee751ec8 update nixos 2022-05-22 18:21:28 +02:00
58f0c5f83c update nixos 2022-05-20 15:46:16 +02:00
3a5bc4f034 update nixos 2022-05-19 14:42:48 +02:00
bc514fd011 petalius: sway 2022-05-18 20:38:47 +02:00
bede6a3d48 add missing gsettings-desktop-schemas 2022-05-18 20:38:34 +02:00
d5a8330136 update nixos 2022-05-14 12:01:32 +02:00
a1b116cc91 update nixos 2022-05-03 17:58:54 +02:00
f3e5a57fba sway: use rofi 2022-05-03 17:32:16 +02:00
7faa9f2010 fix 2022-05-01 15:15:41 +02:00
a9fa48daee Fix podman exec. 2022-04-30 13:29:48 +02:00
cb1548edb0 update nixos 2022-04-27 13:43:12 +02:00
dd36e04b39 update nixos 2022-04-26 21:38:10 +02:00
deb38305c5 update nixos 2022-04-25 17:41:15 +02:00
ab2f9f8f4e update nixos 2022-04-25 14:23:54 +02:00
446f271532 poppler-utils 2022-04-25 12:31:38 +02:00
d63d82571f update nixos 2022-04-18 16:45:02 +02:00
c4a0c593c8 update nixos 2022-04-17 15:28:52 +02:00
ccee0a99bf wtype 2022-04-16 17:07:13 +02:00
3fcd2ff615 fix firefox crash 2022-04-13 23:27:40 +02:00
f3f22581d3 Revert "sway: use wayland version of chromium"
This reverts commit c3d9242e2e335ea6095cb474d3bcd8afad5c856d.
2022-04-12 19:49:13 +02:00
c3d9242e2e sway: use wayland version of chromium 2022-04-12 19:33:47 +02:00
3588811d70 fix wstunnel 2022-04-09 11:35:28 +02:00
73ce3ae8db update nixos 2022-04-07 19:18:10 +02:00
69a1962827 flammea: sway 2022-04-07 18:50:58 +02:00
ac7014a17f update nixos 2022-04-01 15:00:45 +02:00
b5e5d70248 update nixos 2022-03-30 16:46:24 +02:00
7ed620c95a update nixos 2022-03-28 10:48:22 +02:00
5a21e8549d hyperfine 2022-03-20 15:37:10 +01:00
4f532a91e6 update nixos 2022-03-20 14:58:40 +01:00
3d5c629da2 update nixos 2022-02-04 17:16:58 +01:00
1e6b59eb10 use stix fonts 2022-02-04 17:10:31 +01:00
121050b0f6 Fix screen locker. 2022-01-31 11:24:07 +01:00
44c93e4d49 remove notmuch override 2022-01-30 15:43:59 +01:00
1bb964cd15 update nixos 2022-01-30 15:22:26 +01:00
a0afc38771 update nixos 2022-01-16 14:11:37 +01:00
123fb233c5 update nixos 2022-01-12 21:38:34 +01:00
15ed947ac1 one more nvim patch 2022-01-12 20:27:49 +01:00
a7d3edef60 update nixos 2022-01-02 18:10:51 +01:00
ba2c2738c0 update nixos 2021-12-30 20:01:59 +01:00
e1d5bea5cc Update nvim lsp patches. 2021-12-26 19:36:47 +01:00
ef5860df46 update nixos 2021-12-21 20:19:37 +01:00
2c88d6efb8 Update LSP sync patch. 2021-12-15 20:36:03 +01:00
2ba9a7db29 Update LSP sync patch. 2021-12-15 20:21:50 +01:00
f938fd473e Add unicode LSP sync patch for neovim. 2021-12-15 19:26:30 +01:00
c147fb9a69 Update nixos. 2021-12-15 19:22:09 +01:00
97c9eeb0a1 update nixos 2021-12-12 13:21:46 +01:00
32d1647ebd Update nixos. 2021-12-07 12:56:25 +01:00
c95bcb5eaf Fix m17n 2021-12-03 12:41:09 +01:00
ea517b4e74 Update nixos. 2021-12-03 12:30:13 +01:00
231c0088bb update nixos 2021-11-10 18:56:37 +01:00
671415d3db update nixos 2021-11-05 20:15:31 +01:00
8dbafb128f update nixos 2021-10-31 15:00:23 +01:00
36dbee629f Use exfatprogs 2021-10-30 16:03:11 +02:00
82441e276a add mpdevil 2021-10-30 15:28:34 +02:00
6b022802dd Fix wakeonlan syntax 2021-10-22 09:08:04 +02:00
cf7000da8a Reenable helvum. 2021-10-18 14:22:18 +02:00
1339d81209 update nixos 2021-10-11 10:20:26 +02:00
621e7a4195 Reactivate fixed firefox. 2021-10-05 17:39:35 +02:00
f1d81035b0 update nixos 2021-10-05 12:00:18 +02:00
4e4b859940 update nixos 2021-09-29 10:23:27 +02:00
4c948bf59a neovim-qt: bump 2021-09-21 11:52:06 +02:00
2f5aa92bb9 update nixos 2021-09-21 11:20:48 +02:00
0bfee3d416 update nixos 2021-09-16 14:16:43 +02:00
a73446c9fe update nixos 2021-08-30 13:02:45 +02:00
ce44a334cc Force enable unified cgroup hierarchy.
Otherwise systemd's MaxMemory setting is silently ignored.
2021-08-30 13:01:09 +02:00
19070abca7 update nixos 2021-08-27 18:33:27 +02:00
19e683ec3c Remove quay registry to prevent annoying choice dialog. 2021-08-27 18:26:04 +02:00
00aba1d288 neovim-qt: fix ctrl-space bug 2021-08-17 16:00:23 +02:00
ca21dfd78b decoysnail: use x11 2021-07-27 11:48:07 +02:00
b87d5c589c update nixos 2021-07-26 18:56:10 +02:00
f5b47396d3 update nixos 2021-07-14 19:33:13 +02:00
4db98ae432 mastus: fake nextcloud api 2021-07-14 14:10:24 +02:00
199a195ef8 switch to pipewire 2021-07-14 14:04:43 +02:00
129850b77a xournalpp nightly 2021-07-11 15:02:12 +02:00
fb0c1eaa4a update nixos 2021-07-10 20:45:38 +02:00
41180b28b1 pipewire: add helvum 2021-07-10 20:37:15 +02:00
05e2939f56 update my neovim-qt fork 2021-07-05 18:46:09 +02:00
2d99fd2a6c Use my neovim-qt fork. 2021-06-30 19:30:32 +02:00
2f218c4aed update nixos 2021-06-28 09:53:28 +02:00
42d9f2642c mastus: reenable backup 2021-06-27 15:41:13 +02:00
b49b708b0f mastus: increase nginx upload size 2021-06-27 15:36:17 +02:00
29 changed files with 462 additions and 350 deletions

@ -8,6 +8,7 @@ in
[ [
/etc/nixos/hardware-configuration.nix /etc/nixos/hardware-configuration.nix
./common-headless.nix ./common-headless.nix
./tailscale.nix
]; ];
boot.supportedFilesystems = ["zfs"]; boot.supportedFilesystems = ["zfs"];
@ -39,6 +40,7 @@ in
nilotica = { nilotica = {
group = "nilotica"; group = "nilotica";
isNormalUser = true;
}; };
transmission = { transmission = {
@ -133,7 +135,7 @@ in
ipv6.routes = [ { address = "::"; prefixLength = 0; } ]; ipv6.routes = [ { address = "::"; prefixLength = 0; } ];
}; };
environment.systemPackages = with pkgs; [ wireguard ]; environment.systemPackages = with pkgs; [ wireguard-tools ];
}; };
privateNetwork = true; privateNetwork = true;
@ -210,7 +212,7 @@ in
services.rsyncd = { services.rsyncd = {
enable = true; enable = true;
modules = { settings = {
lr_mobile = { lr_mobile = {
path = "/mnt/aplysia/fotos/lr_mobile"; path = "/mnt/aplysia/fotos/lr_mobile";
"read only" = "yes"; "read only" = "yes";

@ -37,12 +37,7 @@
hardware.cpu.intel.updateMicrocode = true; hardware.cpu.intel.updateMicrocode = true;
services.wakeonlan.interfaces = [ networking.interfaces."enp3s0".wakeOnLan.enable = true;
{
interface = "enp3s0";
method = "magicpacket";
}
];
# services.xserver.displayManager.defaultSession = pkgs.lib.mkForce "sway"; # services.xserver.displayManager.defaultSession = pkgs.lib.mkForce "sway";
# #

@ -26,7 +26,7 @@
lua lua
perl perl
gdb gdb
bind nmap tcpdump telnet bind nmap tcpdump (pkgs.inetutils or telnet)
usbutils usbutils
dstat dstat
which which
@ -37,11 +37,12 @@
links2 links2
ctags ctags
nix-prefetch-scripts nix-prefetch-scripts
(pkgs.wireguard or pkgs.hello) (pkgs.wireguard-tools or pkgs.wireguard or pkgs.hello)
jq jq
#b2sum #b2sum
strace strace
ncdu ncdu
hyperfine
]; ];
environment.variables.EDITOR = "${pkgs.neovim}/bin/nvim"; environment.variables.EDITOR = "${pkgs.neovim}/bin/nvim";

@ -2,12 +2,12 @@
{ {
imports = [ imports = [
./pulseaudio.nix ./pipewire.nix
]; ];
i18n.inputMethod = { i18n.inputMethod = {
enabled = "fcitx"; enabled = "fcitx5";
fcitx.engines = with pkgs.fcitx-engines; [ mozc anthy table-other m17n ]; fcitx5.addons = with pkgs; [ fcitx5-mozc fcitx5-table-other fcitx5-m17n fcitx5-rime rime-data ];
}; };
fonts = { fonts = {
@ -18,17 +18,17 @@
fonts = with pkgs; [ fonts = with pkgs; [
# xorg.fontbhlucidatypewriter100dpi # xorg.fontbhlucidatypewriter100dpi
# xorg.fontbhlucidatypewriter75dpi # xorg.fontbhlucidatypewriter75dpi
freefont_ttf # freefont_ttf
gyre-fonts # TrueType substitutes for standard PostScript fonts gyre-fonts # TrueType substitutes for standard PostScript fonts
# xorg.fontbh100dpi # xorg.fontbh100dpi
xorg.fontmiscmisc # xorg.fontmiscmisc
xorg.fontcursormisc # xorg.fontcursormisc
unifont unifont
noto-fonts-emoji noto-fonts-emoji
noto-fonts-cjk noto-fonts-cjk
cantarell_fonts # from gnome3 module cantarell-fonts # from gnome3 module
merriweather merriweather
merriweather-sans merriweather-sans
@ -46,9 +46,10 @@
source-han-sans source-han-sans
inconsolata inconsolata
iosevka # iosevka
fira fira-mono fira-code fira fira-mono fira-code
source-code-pro source-code-pro
stix-two
font-awesome_5 font-awesome_5
]; ];
@ -63,15 +64,17 @@
libinput libinput
libnotify libnotify
gsettings-desktop-schemas
]; ];
# prevent satanic torture # prevent satanic torture
programs.qt5ct.enable = true; qt.platformTheme = "qt5ct";
hardware.uinput.enable = true; hardware.uinput.enable = true;
users.extraUsers.gebner.extraGroups = [ "input" "tty" "audio" "video" "uinput" ]; users.extraUsers.gebner.extraGroups = [ "input" "tty" "audio" "video" "uinput" ];
services.dbus.packages = with pkgs; [ gnome3.gcr ]; services.dbus.packages = with pkgs; [ gcr ];
services.udev.packages = [ pkgs.gnome3.gnome-settings-daemon ]; services.udev.packages = [ pkgs.gnome3.gnome-settings-daemon ];
# copied from gnome3 module # copied from gnome3 module
@ -79,16 +82,17 @@
services.udisks2.enable = true; services.udisks2.enable = true;
services.accounts-daemon.enable = true; services.accounts-daemon.enable = true;
services.geoclue2.enable = true; services.geoclue2.enable = true;
services.gnome3.at-spi2-core.enable = true; services.gnome.at-spi2-core.enable = true;
services.gnome3.gnome-keyring.enable = true; services.gnome.gnome-keyring.enable = true;
services.gvfs.enable = true; services.gvfs.enable = true;
programs.seahorse.enable = true; programs.seahorse.enable = true;
services.gnome3.sushi.enable = true; services.gnome.sushi.enable = true;
services.gnome3.gnome-settings-daemon.enable = true; services.gnome.gnome-settings-daemon.enable = true;
services.telepathy.enable = true; services.telepathy.enable = true;
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
programs.dconf.enable = true; programs.dconf.enable = true;
services.gnome.glib-networking.enable = true;
services.flatpak.enable = true; services.flatpak.enable = true;
xdg.portal = { xdg.portal = {
enable = true; enable = true;
@ -96,10 +100,6 @@
}; };
# Needed for themes and backgrounds # Needed for themes and backgrounds
environment.pathsToLink = [ "/share" ]; environment.pathsToLink = [ "/share" ];
environment.variables.GIO_EXTRA_MODULES = with pkgs.gnome3; [
"${pkgs.lib.getLib dconf}/lib/gio/modules"
"${glib_networking.out}/lib/gio/modules"
"${gvfs}/lib/gio/modules" ];
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;

@ -9,9 +9,11 @@
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
nix.useSandbox = true; nix.settings = {
nix.binaryCaches = [ https://cache.nixos.org ]; sandbox = true;
nix.trustedBinaryCaches = [ https://cache.nixos.org ]; substituters = [ "https://cache.nixos.org" ];
trusted-substituters = [ "https://cache.nixos.org" ];
};
nix.extraOptions = '' nix.extraOptions = ''
auto-optimise-store = true auto-optimise-store = true
binary-caches-parallel-connections = 10 binary-caches-parallel-connections = 10
@ -25,8 +27,8 @@
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
services.openssh = { services.openssh = {
enable = true; enable = true;
permitRootLogin = "no"; settings.PermitRootLogin = "no";
passwordAuthentication = false; settings.PasswordAuthentication = false;
}; };
programs.ssh.startAgent = false; programs.ssh.startAgent = false;
@ -43,10 +45,23 @@
dockerCompat = true; dockerCompat = true;
}; };
virtualisation.containers.containersConf.settings = {
engine = {
cgroup_manager = "cgroupfs";
};
};
virtualisation.containers = {
registries.search = [ "docker.io" ];
};
virtualisation.lxd.enable = true; virtualisation.lxd.enable = true;
virtualisation.lxd.recommendedSysctlSettings = true; virtualisation.lxd.recommendedSysctlSettings = true;
virtualisation.lxd.package = pkgs.lxd;
virtualisation.lxc.lxcfs.enable = true; virtualisation.lxc.lxcfs.enable = true;
systemd.enableUnifiedCgroupHierarchy = pkgs.lib.mkForce true;
boot.kernel.sysctl = { boot.kernel.sysctl = {
"kernel.perf_event_paranoid" = "0"; "kernel.perf_event_paranoid" = "0";
"kernel.kptr_restrict" = pkgs.lib.mkForce "0"; "kernel.kptr_restrict" = pkgs.lib.mkForce "0";
@ -70,7 +85,7 @@
}; };
fileSystems."/mnt/aplysia" = { fileSystems."/mnt/aplysia" = {
device = "//aplysia.ams.gebner.org/export"; device = "//aplysia.htdf.gebner.org/export";
fsType = "cifs"; fsType = "cifs";
options = [ "noauto" "x-systemd.automount" "credentials=/etc/smbcredentials/aplysia" "vers=1.0" ]; options = [ "noauto" "x-systemd.automount" "credentials=/etc/smbcredentials/aplysia" "vers=1.0" ];
}; };
@ -110,13 +125,14 @@
defaultLocale = "en_US.UTF-8"; defaultLocale = "en_US.UTF-8";
extraLocaleSettings = { extraLocaleSettings = {
# LC_TIME = "en_GB.UTF-8"; # LC_TIME = "en_GB.UTF-8";
LC_PAPER = "de_AT.UTF-8"; # LC_PAPER = "de_AT.UTF-8";
}; };
supportedLocales = [ "all" ]; # https://github.com/NixOS/nixpkgs/pull/177318
}; };
system.fsPackages = with pkgs; [ system.fsPackages = with pkgs; [
ntfs3g ntfs3g
exfat exfatprogs
]; ];
} }

@ -2,17 +2,18 @@
{ {
imports = [ imports = [
# ./fix-firefox.nix ./fix-firefox.nix
]; ];
environment.systemPackages = with pkgs.haskellPackages; with pkgs; [ environment.systemPackages = with pkgs.haskellPackages; with pkgs; [
gmpc gmpc
mpdevil
m4 m4
(pkgs.openjdk or pkgs.openjdk14 or pkgs.openjdk12 or pkgs.openjdk11 or pkgs.openjdk10 or openjdk8) (pkgs.openjdk or pkgs.openjdk14 or pkgs.openjdk12 or pkgs.openjdk11 or pkgs.openjdk10 or openjdk8)
sbt scala sbt scala
ungoogled-chromium ungoogled-chromium
# chromium # chromium
# firefox firefox
qalculate-gtk qalculate-gtk
libqalculate libqalculate
viewnior viewnior
@ -33,7 +34,7 @@
ripgrep ripgrep
imagemagick imagemagick
mercurial mercurial
manpages (pkgs.man-pages or manpages)
dfeet dfeet
@ -53,6 +54,7 @@
lsof lsof
pdfpc pdfpc
poppler_utils
# emacs # emacs
emacs emacs
@ -69,6 +71,7 @@
rclone rclone
duplicity duplicity
restic
magic-wormhole magic-wormhole
linuxPackages.perf linuxPackages.perf
@ -81,6 +84,7 @@
glucose glucose
prover9 prover9
eprover eprover
vampire
metis-prover metis-prover
spass spass
z3 z3
@ -94,9 +98,14 @@
nixpkgs.config.allowTexliveBuilds = true; nixpkgs.config.allowTexliveBuilds = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowUnfreePredicate = (pkg: true);
nixpkgs.config.android_sdk.accept_license = true; nixpkgs.config.android_sdk.accept_license = true;
programs.adb.enable = true; programs.adb.enable = true;
users.extraUsers.gebner.extraGroups = [ "adbusers" ]; users.extraUsers.gebner.extraGroups = [ "adbusers" ];
nixpkgs.config.packageOverrides = pkgs: with pkgs; {
khal = pkgs.khal.overridePythonAttrs (_: { doCheck = false; });
};
} }

@ -4,6 +4,7 @@
imports = imports =
[ [
./common-headless.nix ./common-headless.nix
# ./i3.nix
./sway.nix ./sway.nix
./large-sw.nix ./large-sw.nix
./uefi.nix ./uefi.nix
@ -34,7 +35,7 @@
# { device = "/dev/disk/by-uuid/b7274abd-58a5-4acc-8481-30e105e94eec"; } # { device = "/dev/disk/by-uuid/b7274abd-58a5-4acc-8481-30e105e94eec"; }
#]; #];
nix.maxJobs = pkgs.lib.mkDefault 6; nix.settings.max-jobs = pkgs.lib.mkDefault 6;
powerManagement.cpuFreqGovernor = pkgs.lib.mkDefault "powersave"; powerManagement.cpuFreqGovernor = pkgs.lib.mkDefault "powersave";
environment.etc."lvm/lvm.conf".text = '' environment.etc."lvm/lvm.conf".text = ''
@ -105,9 +106,9 @@
enable = true; enable = true;
}; };
services.xserver = { # services.xserver = {
videoDrivers = [ "intel" ]; # videoDrivers = [ "intel" ];
}; # };
fonts.fontconfig = { fonts.fontconfig = {
subpixel.rgba = "none"; subpixel.rgba = "none";

@ -6,9 +6,11 @@ let mpdStreamingPort = 8080; in
[ [
/etc/nixos/hardware-configuration.nix /etc/nixos/hardware-configuration.nix
./common-headless.nix ./common-headless.nix
./i3.nix ./sway.nix
./uefi.nix ./uefi.nix
./fstrim.nix ./fstrim.nix
# ./nebula.nix
./tailscale.nix
]; ];
environment.etc."lvm/lvm.conf".text = '' environment.etc."lvm/lvm.conf".text = ''
@ -16,14 +18,13 @@ let mpdStreamingPort = 8080; in
issue_discards = 1 issue_discards = 1
} }
''; '';
boot.initrd.luks.devices = [ boot.initrd.luks.devices = {
{ euhadra_crypt = {
name = "euhadra_crypt";
device = "/dev/disk/by-uuid/328a9ede-0958-490b-8e82-62b06b839e21"; device = "/dev/disk/by-uuid/328a9ede-0958-490b-8e82-62b06b839e21";
preLVM = true; preLVM = true;
allowDiscards = true; allowDiscards = true;
} };
]; };
networking.hostName = "euhadra"; networking.hostName = "euhadra";
networking.hostId = "ddb5f0fd"; networking.hostId = "ddb5f0fd";
@ -32,9 +33,12 @@ let mpdStreamingPort = 8080; in
services.mpd = { services.mpd = {
enable = true; enable = true;
network.listenAddress = "any"; # network.listenAddress = "127.0.0.1";
musicDirectory = "/mnt/aplysia/music"; musicDirectory = "/mnt/aplysia/music";
extraConfig = '' extraConfig = ''
bind_to_address "10.59.0.6"
bind_to_address "100.97.134.100"
# audio_output { # audio_output {
# type "alsa" # type "alsa"
# name "dac" # name "dac"
@ -44,6 +48,7 @@ let mpdStreamingPort = 8080; in
audio_output { audio_output {
type "pulse" type "pulse"
name "pulse" name "pulse"
server "127.0.0.1"
} }
audio_output { audio_output {
@ -58,6 +63,39 @@ let mpdStreamingPort = 8080; in
''; '';
}; };
services.pipewire = {
config.pipewire-pulse = {
"pulse.properties"."server.address" = [
"unix:native"
"tcp:127.0.0.1:4713"
"tcp:100.97.134.100:4713"
];
};
};
networking.wireguard.interfaces.wg0 = {
ips = ["10.59.0.6/16"];
privateKeyFile = "/etc/wgkeys/euhadra";
allowedIPsAsRoutes = true;
postSetup = ''
${pkgs.systemd}/bin/resolvectl domain wg0 '~htdf.gebner.org' '~mtlaa.gebner.org' '~ams.gebner.org'
${pkgs.systemd}/bin/resolvectl dns wg0 10.58.0.1
'';
peers = [{
publicKey = "ByLlJbevlTBooAo2RIZGGJvBHKqA9qiOpHBvR5yuJX4=";
allowedIPs = ["10.56.0.0/14" "10.60.1.1"];
endpoint = "htdf-gw.gebner.org:35869";
# endpoint = "80.109.29.104:35869";
# endpoint = "127.0.0.1:35869";
}];
};
# systemd.services.wireguard-wg0.wantedBy = pkgs.lib.mkOverride 10 [];
services.resolved = {
domains = [];
enable = true;
};
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
config.services.mpd.network.port config.services.mpd.network.port
4713 # pulseaudio 4713 # pulseaudio
@ -70,16 +108,19 @@ let mpdStreamingPort = 8080; in
nixpkgs.config.mpv.vaapiSupport = true; nixpkgs.config.mpv.vaapiSupport = true;
hardware.pulseaudio = { # hardware.pulseaudio = {
systemWide = true; # systemWide = true;
zeroconf.publish.enable = true; # zeroconf.publish.enable = true;
tcp = { # tcp = {
enable = true; # enable = true;
anonymousClients.allowedIpRanges = [ # anonymousClients.allowedIpRanges = [
"127.0.0.1" # "127.0.0.1"
"10.57.0.0/16" # "10.57.0.0/16"
]; # ];
}; # };
}; # };
system.stateVersion = "22.05";
time.timeZone = pkgs.lib.mkOverride 10 "US/Pacific";
} }

@ -19,7 +19,8 @@
f=localization/en-US/browser/browserSets.ftl f=localization/en-US/browser/browserSets.ftl
mkdir browser mkdir browser
cd browser cd browser
unzip $j # corrupt zip files??
unzip $j || true
patch $f <${./fix-firefox.patch} patch $f <${./fix-firefox.patch}
rm $j rm $j
zip -0DXqr $j * zip -0DXqr $j *
@ -28,7 +29,7 @@
inherit (firefox-unwrapped) meta; inherit (firefox-unwrapped) meta;
passthru = { passthru = {
inherit (firefox-unwrapped.passthru) version isFirefox3Like gtk inherit (firefox-unwrapped.passthru) version isFirefox3Like gtk
nspr gssSupport browserName ffmpegSupport gtk3; nspr gssSupport browserName ffmpegSupport gtk3 binaryName;
}; };
}; };
}; };

@ -1,28 +1,12 @@
{ {
"nodes": { "nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1606424373,
"narHash": "sha256-oq8d4//CJOrVj+EcOaSXvMebvuTkmBJuT5tzlfewUnQ=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "99f1c2157fba4bfe6211a321fd0ee43199025dbf",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1610051610, "lastModified": 1638122382,
"narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", "rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -31,73 +15,13 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": {
"locked": {
"lastModified": 1618217525,
"narHash": "sha256-WGrhVczjXTiswQaoxQ+0PTfbLNeOQM6M36zvLn78AYg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c6169a2772643c4a93a0b5ac1c61e296cba68544",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"neovim-flake": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"dir": "contrib",
"lastModified": 1624433763,
"narHash": "sha256-jIAOMqzIYS1a+CpMFg05wAWV3gRbFRQBUnuuqf5PqMQ=",
"owner": "neovim",
"repo": "neovim",
"rev": "0d7e33bc1307117127e519fb12ec491a1a1ebd82",
"type": "github"
},
"original": {
"dir": "contrib",
"owner": "neovim",
"repo": "neovim",
"type": "github"
}
},
"neovim-overlay": {
"inputs": {
"flake-compat": "flake-compat",
"neovim-flake": "neovim-flake",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1624435902,
"narHash": "sha256-w8F7tlqosL4aCpFUdx1MZMZcVNgpo0QlQ6O22grSuzI=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "e2fb9369e1fd4d85676564d970ff0dc0983113fb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1624271441, "lastModified": 1693158576,
"narHash": "sha256-26QNDCdRE5mPOWYJrPGpVzgrJ3ZxqvWOONfeMsjryz4=", "narHash": "sha256-aRTTXkYvhXosGx535iAFUaoFboUrZSYb1Ooih/auGp0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7e567a3d092b7de69cdf5deaeb8d9526de230916", "rev": "a999c1cc0c9eb2095729d5aa03e0d8f7ed256780",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -109,25 +33,25 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"neovim-overlay": "neovim-overlay",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"utils": "utils" "utils": "utils"
} }
}, },
"utils": { "utils": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2" "flake-utils": "flake-utils"
}, },
"locked": { "locked": {
"lastModified": 1619358717, "lastModified": 1638172912,
"narHash": "sha256-FkEOIW82ClvUBtD8aqPediM8FERldsOyjPIyapVa65I=", "narHash": "sha256-jxhQGNEsZTdop/Br3JPS+xmBf6t9cIWRzVZFxbT76Rw=",
"owner": "gytis-ivaskevicius", "owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus", "repo": "flake-utils-plus",
"rev": "e7ae270a23695b50fbb6b72759a7fb1e3340ca86", "rev": "166d6ebd9f0de03afc98060ac92cba9c71cfe550",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "gytis-ivaskevicius", "owner": "gytis-ivaskevicius",
"ref": "v1.3.1",
"repo": "flake-utils-plus", "repo": "flake-utils-plus",
"type": "github" "type": "github"
} }

@ -2,24 +2,25 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
utils.url = "github:gytis-ivaskevicius/flake-utils-plus"; utils.url = "github:gytis-ivaskevicius/flake-utils-plus/v1.3.1";
neovim-overlay = { # neovim-overlay = {
url = "github:nix-community/neovim-nightly-overlay"; # url = "github:nix-community/neovim-nightly-overlay";
inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; # };
}; };
outputs = inputs@{ self, nixpkgs, neovim-overlay, utils, ... }: utils.lib.systemFlake { outputs = inputs@{ self, nixpkgs, utils, ... }: utils.lib.mkFlake {
inherit self inputs; inherit self inputs;
channels.nixpkgs.input = nixpkgs; channels.nixpkgs.input = nixpkgs;
channels.nixpkgs.patches = [ ]; channels.nixpkgs.patches = [ ];
nix.generateRegistryFromInputs = true;
hostDefaults = { hostDefaults = {
modules = [ modules = [
utils.nixosModules.saneFlakeDefaults
({ ... }: { nix.extraOptions = "warn-dirty = false"; }) ({ ... }: { nix.extraOptions = "warn-dirty = false"; })
]; ];
}; };

@ -1,11 +1,13 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let mpdStreamingPort = 8080; in
{ {
imports = imports =
[ [
./common-headless.nix ./common-headless.nix
# ./sway.nix # ./sway.nix
./i3.nix # ./i3.nix
./gnome3.nix
./large-sw.nix ./large-sw.nix
./uefi.nix ./uefi.nix
./fstrim.nix ./fstrim.nix
@ -16,6 +18,7 @@
./spacenav.nix ./spacenav.nix
./nvim05.nix ./nvim05.nix
./nm-restart.nix ./nm-restart.nix
./tailscale.nix
]; ];
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
@ -26,6 +29,7 @@
"zenpower" "zenpower"
]; ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.supportedFilesystems = [ "zfs" ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/3b8c5c8a-fff2-49ba-98bd-ceb01d6d57c3"; { device = "/dev/disk/by-uuid/3b8c5c8a-fff2-49ba-98bd-ceb01d6d57c3";
@ -57,12 +61,7 @@
hardware.cpu.amd.updateMicrocode = true; hardware.cpu.amd.updateMicrocode = true;
services.wakeonlan.interfaces = [ networking.interfaces."enp42s0".wakeOnLan.enable = true;
{
interface = "enp42s0";
method = "magicpacket";
}
];
# users.extraUsers.presentation = { # users.extraUsers.presentation = {
# isNormalUser = true; # isNormalUser = true;
@ -84,7 +83,7 @@
virtualisation.virtualbox.host = { virtualisation.virtualbox.host = {
enable = true; enable = true;
# enableExtensionPack = true; enableExtensionPack = true;
}; };
# nixpkgs.config.allowUnfree = true; # nixpkgs.config.allowUnfree = true;
@ -101,7 +100,7 @@
hardware.opengl.extraPackages = with pkgs; [ hardware.opengl.extraPackages = with pkgs; [
rocm-opencl-icd rocm-opencl-icd
# rocm-runtime-ext rocm-runtime
]; ];
# services.nix-serve = { # services.nix-serve = {
@ -110,7 +109,13 @@
# }; # };
# networking.firewall.allowedTCPPorts = [ config.services.nix-serve.port ]; # networking.firewall.allowedTCPPorts = [ config.services.nix-serve.port ];
services.openssh.forwardX11 = true; networking.firewall.trustedInterfaces = [ "tailscale0" ];
services.openssh.settings.X11Forwarding = true;
fileSystems."/mnt/aplysia".device = pkgs.lib.mkOverride 10 "//aplysia.auroch-boa.ts.net/export";
time.timeZone = pkgs.lib.mkOverride 10 "US/Pacific";
# nixpkgs.config.packageOverrides = super: let self = super.pkgs; in { # nixpkgs.config.packageOverrides = super: let self = super.pkgs; in {
# mesa_drivers = self.mesaDarwinOr ( # mesa_drivers = self.mesaDarwinOr (
@ -123,16 +128,14 @@
# ); # );
# }; # };
#boot.kernelPackages = pkgs.lib.mkOverride 10 pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.lib.mkOverride 10 pkgs.linuxPackages_6_1;
# boot.kernelPackages = pkgs.lib.mkOverride 10 pkgs.linuxPackages;
# boot.kernelPackages = pkgs.lib.mkOverride 10 pkgs.linuxPackages_5_8;
services.xserver = { # services.xserver = {
videoDrivers = [ "amdgpu" ]; # videoDrivers = [ "amdgpu" ];
deviceSection = '' # deviceSection = ''
Option "TearFree" "on" # Option "TearFree" "on"
''; # '';
}; # };
services.ratbagd.enable = true; services.ratbagd.enable = true;
@ -145,6 +148,48 @@
ACTION=="add", KERNEL=="i2c-[0-9]*", GROUP="wheel", MODE="666" ACTION=="add", KERNEL=="i2c-[0-9]*", GROUP="wheel", MODE="666"
''; '';
system.stateVersion = "21.05"; system.stateVersion = "22.11";
# services.mpd = {
# enable = true;
# # network.listenAddress = "127.0.0.1";
# # musicDirectory = "/mnt/aplysia/music";
# musicDirectory = "/home/gebner/Music";
# user = "gebner";
# extraConfig = ''
# bind_to_address "100.125.210.32"
#
# # audio_output {
# # type "alsa"
# # name "dac"
# # device "sysdefault:CARD=QAMP"
# # }
#
# audio_output {
# type "pulse"
# name "pulse"
# server "127.0.0.1"
# }
#
# audio_output {
# type "httpd"
# name "http"
# encoder "flac"
# port "${toString mpdStreamingPort}"
# }
#
# replaygain "auto"
# restore_paused "yes"
# '';
# };
#
# environment.etc."pipewire/pipewire-pulse.conf.d/listen.conf".text = ''
# pulse.properties = {
# server.address = [
# "unix:native"
# "tcp:127.0.0.1:4713"
# # "tcp:100.97.134.100:4713"
# ]
# }
# '';
} }

@ -2,40 +2,44 @@
{ {
imports = [ imports = [
./pulseaudio.nix ./pipewire.nix
]; ];
i18n.inputMethod = { i18n.inputMethod = {
enabled = "ibus"; enabled = "ibus";
ibus.engines = with pkgs.ibus-engines; [ mozc table-others m17n ]; ibus.engines = with pkgs.ibus-engines; [ mozc table-others m17n rime ];
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gnome3.libgweather gnome.gnome-tweaks
gnome3.gnome-tweak-tool
pavucontrol pavucontrol
paprefs paprefs
playerctl
xorg.xlsclients
gthumb
]; ];
hardware.pulseaudio.enable = false;
fonts = { fonts = {
enableDefaultFonts = false; enableDefaultFonts = false;
fontconfig = { fontconfig = {
allowBitmaps = false; allowBitmaps = false;
}; };
fonts = with pkgs; [ fonts = with pkgs; [
xorg.fontbhlucidatypewriter100dpi # xorg.fontbhlucidatypewriter100dpi
xorg.fontbhlucidatypewriter75dpi # xorg.fontbhlucidatypewriter75dpi
freefont_ttf # freefont_ttf
gyre-fonts # TrueType substitutes for standard PostScript fonts gyre-fonts # TrueType substitutes for standard PostScript fonts
xorg.fontbh100dpi # xorg.fontbh100dpi
xorg.fontmiscmisc # xorg.fontmiscmisc
xorg.fontcursormisc # xorg.fontcursormisc
unifont unifont
noto-fonts-emoji noto-fonts-emoji
noto-fonts-cjk noto-fonts-cjk
cantarell_fonts # from gnome3 module cantarell-fonts # from gnome3 module
merriweather merriweather
merriweather-sans merriweather-sans
@ -56,13 +60,14 @@
iosevka iosevka
fira fira-mono fira-code fira fira-mono fira-code
source-code-pro source-code-pro
stix-two
font-awesome_5 font-awesome_5
]; ];
}; };
# prevent satanic torture # prevent satanic torture
programs.qt5ct.enable = true; qt.platformTheme = "qt5ct";
hardware.uinput.enable = true; hardware.uinput.enable = true;
users.extraUsers.gebner.extraGroups = [ "input" "tty" "audio" "video" "uinput" ]; users.extraUsers.gebner.extraGroups = [ "input" "tty" "audio" "video" "uinput" ];
@ -80,11 +85,11 @@
services.xserver = { services.xserver = {
enable = true; enable = true;
libinput.enable = true; # libinput.enable = true;
displayManager.gdm.enable = true; displayManager.gdm.enable = true;
displayManager.defaultSession = "gnome"; # displayManager.defaultSession = "gnome";
desktopManager.gnome3 = { desktopManager.gnome = {
enable = true; enable = true;
}; };
}; };

22
i3.nix

@ -5,15 +5,15 @@
./common-gui.nix ./common-gui.nix
]; ];
environment.systemPackages = with pkgs; with gnome3; [ environment.systemPackages = with pkgs; [
i3 i3
i3status i3status
rofi rofi
rofi-pass rofi-pass
feh feh
gnome_keyring gnome3.gnome-keyring
networkmanagerapplet networkmanagerapplet
nautilus # in closure of gnome-terminal anyhow gnome3.nautilus # in closure of gnome-terminal anyhow
pcmanfm pcmanfm
# colord # colord
evince evince
@ -23,19 +23,19 @@
scrot scrot
pavucontrol pavucontrol
pasystray pasystray
dconf-editor gnome3.dconf-editor
unclutter-xfixes unclutter-xfixes
dunst dunst
xorg.xev xorg.xev
# gnome3 core packages # gnome3 core packages
desktop_file_utils shared_mime_info desktop-file-utils shared-mime-info
glib gtk3 glib gtk3
glib_networking gvfs dconf glib-networking gvfs dconf
gnome_settings_daemon gnome3.gnome-settings-daemon
gnome_themes_standard defaultIconTheme gnome-themes-extra gnome3.adwaita-icon-theme
hicolor_icon_theme hicolor-icon-theme
]; ];
services.xserver = { services.xserver = {
@ -60,7 +60,7 @@
name = "i3wm"; name = "i3wm";
start = '' start = ''
export XDG_DATA_DIRS=/run/current-system/sw/share/''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS export XDG_DATA_DIRS=/run/current-system/sw/share/''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS
export $(${pkgs.gnome3.gnome_keyring}/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) export $(${pkgs.gnome3.gnome-keyring}/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export XDG_CURRENT_DESKTOP=X-Generic export XDG_CURRENT_DESKTOP=X-Generic
i3 & i3 &
waitPID=$! waitPID=$!
@ -75,7 +75,7 @@
xkbOptions = "caps:ctrl_modifier"; xkbOptions = "caps:ctrl_modifier";
}; };
services.dbus.socketActivated = true; # services.dbus.socketActivated = true;
services.dbus.packages = with pkgs; [ dunst ]; services.dbus.packages = with pkgs; [ dunst ];
systemd.packages = [ pkgs.dunst ]; systemd.packages = [ pkgs.dunst ];

@ -2,7 +2,7 @@
{ {
environment.systemPackages = with pkgs.haskellPackages; with pkgs; [ environment.systemPackages = with pkgs.haskellPackages; with pkgs; [
idea.idea-community jetbrains.idea-community
# idea.clion # idea.clion
texlive.combined.scheme-full biber texlive.combined.scheme-full biber
gimp gimp
@ -10,14 +10,10 @@
# jabref # jabref
libreoffice-fresh libreoffice-fresh
# calibre # calibre
goldendict # goldendict
xournal xournal
(xournalpp.overrideDerivation (_: { xournalpp
patches = [
./xournalpp-cursor-blink.patch
];
}))
vscode vscode

@ -5,7 +5,7 @@
[ [
/etc/nixos/hardware-configuration.nix /etc/nixos/hardware-configuration.nix
../basic-tools.nix ../basic-tools.nix
# ./backup.nix ./backup.nix
./duplicity.nix ./duplicity.nix
./mail.nix ./mail.nix
@ -17,6 +17,7 @@
./radicale.nix ./radicale.nix
# ./ttrss.nix # ./ttrss.nix
./dns.nix ./dns.nix
./nebula.nix
]; ];
boot.loader.grub.enable = true; boot.loader.grub.enable = true;

@ -9,7 +9,7 @@ let
IN AAAA 2a02:2770:3:0:21a:4aff:feac:bc0e IN AAAA 2a02:2770:3:0:21a:4aff:feac:bc0e
''; '';
timestamp = "1497294847"; timestamp = "1664458744";
heNsServers = '' heNsServers = ''
@ IN NS ns1.he.net. @ IN NS ns1.he.net.
@ -48,8 +48,8 @@ in
misuji ${misuji} misuji ${misuji}
mastus ${mastus} mastus ${mastus}
home-gw IN A 80.109.2.154 home-gw IN A 80.109.29.104
htdf-gw IN A 80.109.2.154 htdf-gw IN A 80.109.29.104
ams-gw IN A 82.217.167.76 ams-gw IN A 82.217.167.76
@ ${mastus} @ ${mastus}

@ -34,7 +34,7 @@
proxyPass = "http://127.0.0.1:${toString config.services.gitea.httpPort}"; proxyPass = "http://127.0.0.1:${toString config.services.gitea.httpPort}";
extraConfig = '' extraConfig = ''
proxy_buffering off; proxy_buffering off;
client_max_body_size 30M; client_max_body_size 256M;
''; '';
}; };
}; };

25
mastus/nebula.nix Normal file

@ -0,0 +1,25 @@
{ config, pkgs, ... }:
let mastus = "37.252.120.145";
in {
services.nebula.networks.gabriel = {
enable = true;
ca = "/etc/nebula/gabriel/ca.crt";
cert = "/etc/nebula/gabriel/mastus.crt";
key = "/etc/nebula/gabriel/mastus.key";
isLighthouse = true;
staticHostMap = {
"192.168.18.36" = [ "${mastus}:4242" ];
};
firewall.inbound = [ { port = "any"; proto = "any"; host = "any"; } ];
settings = {
serve_dns = true;
lighthouse.dns = { host = "192.168.18.36"; port = 5353; };
};
};
networking.firewall.allowedUDPPorts = [ 4242 ];
}

@ -5,12 +5,15 @@ in
{ {
services.radicale = { services.radicale = {
enable = true; enable = true;
package = pkgs.radicale2; package = pkgs.radicale3.overrideDerivation (_: {
#patches = [ ./radicale1249.patch ];
doCheck = false;
pytestCheckPhase = "true";
});
settings = { settings = {
server = { server = {
hosts = "127.0.0.1:${toString radicalePort}"; hosts = "127.0.0.1:${toString radicalePort}";
ssl = false; ssl = false;
dns_lookup = false;
}; };
storage = { storage = {
@ -20,6 +23,7 @@ in
auth = { auth = {
type = "htpasswd"; type = "htpasswd";
htpasswd_filename = "/var/lib/radicale/htpasswd"; htpasswd_filename = "/var/lib/radicale/htpasswd";
htpasswd_encryption = "bcrypt";
}; };
rights = { rights = {
@ -38,6 +42,16 @@ in
locations."/" = { locations."/" = {
proxyPass = "http://127.0.0.1:${toString radicalePort}"; proxyPass = "http://127.0.0.1:${toString radicalePort}";
}; };
# Fake nextcloud api:
# https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/issues/1#note_857357
extraConfig = ''
rewrite ^/remote.php/carddav / redirect;
rewrite ^/remote.php/caldav / redirect;
location /remote.php/webdav {
return 200;
}
'';
}; };
}; };

37
mastus/radicale1249.patch Normal file

@ -0,0 +1,37 @@
diff --git a/radicale/app/propfind.py b/radicale/app/propfind.py
index 52d0b00..ee7cf28 100644
--- a/radicale/app/propfind.py
+++ b/radicale/app/propfind.py
@@ -350,8 +350,8 @@ class ApplicationPartPropfind(ApplicationBase):
permission = "r"
status = "read"
else:
- permission = ""
- status = "NO"
+ permission = "r"
+ status = "read"
logger.debug(
"%s has %s access to %s",
repr(user) if user else "anonymous user", status, target)
@@ -362,8 +362,8 @@ class ApplicationPartPropfind(ApplicationBase):
path: str, user: str) -> types.WSGIResponse:
"""Manage PROPFIND request."""
access = Access(self._rights, user, path)
- if not access.check("r"):
- return httputils.NOT_ALLOWED
+ #if not access.check("r"):
+ # return httputils.NOT_ALLOWED
try:
xml_content = self._read_xml_request_body(environ)
except RuntimeError as e:
@@ -380,8 +380,8 @@ class ApplicationPartPropfind(ApplicationBase):
item = next(items_iter, None)
if not item:
return httputils.NOT_FOUND
- if not access.check("r", item):
- return httputils.NOT_ALLOWED
+ #if not access.check("r", item):
+ # return httputils.NOT_ALLOWED
# put item back
items_iter = itertools.chain([item], items_iter)
allowed_items = self._collect_allowed_items(items_iter, user)

26
nebula.nix Normal file

@ -0,0 +1,26 @@
{ config, pkgs, ... }:
let mastus = "37.252.120.145"; hostname = config.networking.hostName;
in {
services.nebula.networks.gabriel = {
enable = true;
ca = "/etc/nebula/gabriel/ca.crt";
cert = "/etc/nebula/gabriel/${hostname}.crt";
key = "/etc/nebula/gabriel/${hostname}.key";
listen.host = "[::]";
listen.port = 0; # dynamic ip
staticHostMap = {
"192.168.18.36" = [ "${mastus}:4242" ];
};
lighthouses = [
"192.168.18.36"
];
firewall.outbound = [ { port = "any"; proto = "any"; host = "any"; } ];
firewall.inbound = [ { port = "any"; proto = "any"; host = "any"; } ];
};
networking.firewall.allowedUDPPorts = [ 4242 ];
}

@ -5,4 +5,5 @@
systemd.services.NetworkManager-dispatcher.restartIfChanged = false; systemd.services.NetworkManager-dispatcher.restartIfChanged = false;
systemd.services.NetworkManager-wait-online.restartIfChanged = false; systemd.services.NetworkManager-wait-online.restartIfChanged = false;
systemd.services.wpa_supplicant.restartIfChanged = false; systemd.services.wpa_supplicant.restartIfChanged = false;
systemd.services.systemd-resolved.restartIfChanged = false;
} }

@ -1,16 +1,21 @@
{ config, inputs, ... }: { config, inputs, ... }:
{ {
nixpkgs.overlays = [ inputs.neovim-overlay.overlay ]; # nixpkgs.overlays = [ inputs.neovim-overlay.overlay ];
nixpkgs.config.packageOverrides = pkgs: with pkgs; { nixpkgs.config.packageOverrides = pkgs: with pkgs; {
neovim-qt-unwrapped = neovim-qt-unwrapped.overrideDerivation (_: { # neovim-unwrapped = neovim-unwrapped.overrideDerivation (orig: {
src = fetchFromGitHub { # patches = orig.patches ++ [ ];
owner = "equalsraf"; # });
repo = "neovim-qt";
rev = "54987208b698c84e761cc097550b80641367f0c8"; # neovim-qt-unwrapped = neovim-qt-unwrapped.overrideDerivation (_: {
sha256 = "sha256-I3/gPk5ay9Scs+YtVWNyLm2zE1T1cMEjdpVbYclHT1M="; # version = "0.2.17.9999";
}; # src = fetchFromGitHub {
}); # owner = "equalsraf";
# repo = "neovim-qt";
# rev = "67cc4e414a8e64a475e55230818fab0f78415634";
# sha256 = "sha256-3jYYY7T7L4rMsxIxJwY32izmlJKrrqbmU4DZ2Aow5uE=";
# };
# });
}; };
} }

@ -4,8 +4,8 @@
imports = imports =
[ [
./common-headless.nix ./common-headless.nix
# ./sway.nix ./sway.nix
./i3.nix # ./i3.nix
./large-sw.nix ./large-sw.nix
./uefi.nix ./uefi.nix
./fstrim.nix ./fstrim.nix
@ -14,6 +14,8 @@
./huion.nix ./huion.nix
./nvim05.nix ./nvim05.nix
./nm-restart.nix ./nm-restart.nix
# ./nebula.nix
./tailscale.nix
]; ];
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
@ -37,7 +39,7 @@
swapDevices = [ ]; swapDevices = [ ];
nix.maxJobs = 4; nix.settings.max-jobs = 4;
environment.etc."lvm/lvm.conf".text = '' environment.etc."lvm/lvm.conf".text = ''
devices { devices {
@ -52,22 +54,22 @@
}; };
}; };
services.xserver = { # services.xserver = {
dpi = 120; # dpi = 120;
#
libinput.enable = true; # libinput.enable = true;
config = '' # config = ''
Section "InputClass" # Section "InputClass"
Identifier "touchpad" # Identifier "touchpad"
Driver "libinput" # Driver "libinput"
MatchDevicePath "/dev/input/event*" # MatchDevicePath "/dev/input/event*"
MatchIsPointer "true" # MatchIsPointer "true"
EndSection # EndSection
''; # '';
#
videoDrivers = [ "modesetting" ]; # videoDrivers = [ "modesetting" ];
useGlamor = true; # useGlamor = true;
}; # };
programs.light.enable = true; programs.light.enable = true;
services.tlp.enable = true; services.tlp.enable = true;
@ -94,6 +96,8 @@
users.extraUsers.gebner.extraGroups = [ "libvirtd" ]; users.extraUsers.gebner.extraGroups = [ "libvirtd" ];
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
virtualisation.waydroid.enable = true;
# virtualisation.virtualbox.host.enable = true; # virtualisation.virtualbox.host.enable = true;
# boot.kernelPackages = pkgs.lib.mkOverride 10 pkgs.linuxPackages_5_4; # boot.kernelPackages = pkgs.lib.mkOverride 10 pkgs.linuxPackages_5_4;
@ -113,10 +117,11 @@
# time.timeZone = pkgs.lib.mkOverride 10 "Europe/London"; # time.timeZone = pkgs.lib.mkOverride 10 "Europe/London";
# time.timeZone = pkgs.lib.mkOverride 10 "Europe/Lisbon"; # time.timeZone = pkgs.lib.mkOverride 10 "Europe/Lisbon";
# time.timeZone = pkgs.lib.mkOverride 10 "US/Eastern"; # time.timeZone = pkgs.lib.mkOverride 10 "US/Eastern";
time.timeZone = pkgs.lib.mkOverride 10 "US/Pacific";
#services.avahi.nssmdns = true; #services.avahi.nssmdns = true;
system.stateVersion = "18.03"; system.stateVersion = "22.11";
networking.wireguard.interfaces.wg0 = { networking.wireguard.interfaces.wg0 = {
ips = ["10.59.0.2/16"]; ips = ["10.59.0.2/16"];
@ -129,9 +134,9 @@
peers = [{ peers = [{
publicKey = "ByLlJbevlTBooAo2RIZGGJvBHKqA9qiOpHBvR5yuJX4="; publicKey = "ByLlJbevlTBooAo2RIZGGJvBHKqA9qiOpHBvR5yuJX4=";
allowedIPs = ["10.56.0.0/14" "10.60.1.1"]; allowedIPs = ["10.56.0.0/14" "10.60.1.1"];
# endpoint = "htdf-gw.gebner.org:35869"; endpoint = "htdf-gw.gebner.org:35869";
# endpoint = "80.109.2.154:35869"; # endpoint = "80.109.29.104:35869";
endpoint = "127.0.0.1:35869"; # endpoint = "127.0.0.1:35869";
}]; }];
}; };
systemd.services.wireguard-wg0.wantedBy = pkgs.lib.mkOverride 10 []; systemd.services.wireguard-wg0.wantedBy = pkgs.lib.mkOverride 10 [];
@ -156,4 +161,21 @@
services.fwupd.enable = true; services.fwupd.enable = true;
users.extraUsers.gebner2 = {
isNormalUser = true;
extraGroups = [
"wheel"
# "networkmanager"
"audio"
# "transmission"
# "lxd"
# "libvirtd"
# "vboxusers"
# "wireshark"
"input" "tty" "audio" "video" "uinput"
];
# shell = "${pkgs.zsh}/bin/zsh";
shell = "/run/current-system/sw/bin/fish";
};
} }

@ -12,18 +12,18 @@
pulse.enable = true; pulse.enable = true;
jack.enable = true; jack.enable = true;
media-session.config.bluez-monitor.rules = [ # media-session.config.bluez-monitor.rules = [
{ # {
# Matches all cards # # Matches all cards
matches = [ { "device.name" = "~bluez_card.*"; } ]; # matches = [ { "device.name" = "~bluez_card.*"; } ];
actions = { # actions = {
"update-props" = { # "update-props" = {
"bluez5.reconnect-profiles" = [ "hfp_hf" "hsp_hs" "a2dp_sink" ]; # "bluez5.reconnect-profiles" = [ "hfp_hf" "hsp_hs" "a2dp_sink" ];
"bluez5.msbc-support" = true; # "bluez5.msbc-support" = true;
}; # };
}; # };
} # }
]; # ];
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -32,6 +32,7 @@
carla carla
qjackctl qjackctl
pipewire.lib pipewire.lib
helvum
]; ];
} }

@ -5,14 +5,15 @@
./common-gui.nix ./common-gui.nix
]; ];
environment.systemPackages = with pkgs; with gnome3; [ environment.systemPackages = with pkgs; [
i3status i3status
(waybar.override { pulseSupport = true; }) (waybar.override { pulseSupport = true; })
wofi rofi-wayland
ydotool ydotool
wtype
wl-clipboard wl-clipboard
feh feh
gnome_keyring gnome3.gnome-keyring
networkmanagerapplet networkmanagerapplet
pcmanfm pcmanfm
evince evince
@ -20,32 +21,34 @@
mako mako
pavucontrol pavucontrol
paprefs paprefs
dconf-editor gnome3.dconf-editor
xdg_utils # for xdg-open xdg_utils # for xdg-open
# gnome3 core packages # gnome3 core packages
desktop_file_utils shared_mime_info desktop-file-utils shared-mime-info
glib gtk3 glib gtk3
glib_networking gvfs dconf glib-networking gvfs dconf
gnome_themes_standard defaultIconTheme gnome-themes-extra gnome3.adwaita-icon-theme
hicolor_icon_theme hicolor-icon-theme
# for QT_QPA_PLATFORM=wayland # for QT_QPA_PLATFORM=wayland
qt5.qtwayland qt5.qtwayland
wdisplays wdisplays
playerctl
xorg.xlsclients
]; ];
nixpkgs.config.packageOverrides = pkgs: with pkgs; { # services.dbus.socketActivated = true;
firefox = firefox-wayland;
};
services.dbus.socketActivated = true;
programs.sway = { programs.sway = {
enable = true; enable = true;
wrapperFeatures.gtk = true;
extraSessionCommands = '' extraSessionCommands = ''
export SDL_VIDEODRIVER=wayland export SDL_VIDEODRIVER=wayland
@ -62,17 +65,17 @@
export WINIT_UNIX_BACKEND=x11 export WINIT_UNIX_BACKEND=x11
export XDG_DATA_DIRS=/run/current-system/sw/share/''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS export XDG_DATA_DIRS=/run/current-system/sw/share/''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS
export $(${pkgs.gnome3.gnome_keyring}/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg) export $(${pkgs.gnome3.gnome-keyring}/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg)
export XDG_CURRENT_DESKTOP=sway export XDG_CURRENT_DESKTOP=sway
''; '';
}; };
services.xserver = { # services.xserver = {
enable = true; # enable = true;
libinput.enable = true; # libinput.enable = true;
displayManager.lightdm.enable = true; # # displayManager.lightdm.enable = true;
displayManager.defaultSession = "sway"; # displayManager.defaultSession = "sway";
}; # };
services.dbus.packages = with pkgs; [ mako ]; services.dbus.packages = with pkgs; [ mako ];

9
tailscale.nix Normal file

@ -0,0 +1,9 @@
{ config, pkgs, ... }: {
# make the tailscale command usable to users
environment.systemPackages = [ pkgs.tailscale ];
# enable the tailscale service
services.tailscale.enable = true;
networking.firewall.checkReversePath = "loose";
}

@ -1,69 +0,0 @@
commit 92e4041efb6165505a8729968648392d7b5ff459
Author: Gabriel Ebner <gebner@gebner.org>
Date: Sun Aug 16 19:47:52 2020 +0200
Allow the user to disable cursor blinking.
This uses the same setting which is also used by the built-in text entry
widget.
diff --git a/src/gui/TextEditor.cpp b/src/gui/TextEditor.cpp
index 0750ad0e..807786cf 100644
--- a/src/gui/TextEditor.cpp
+++ b/src/gui/TextEditor.cpp
@@ -37,6 +37,7 @@ TextEditor::TextEditor(XojPageView* gui, GtkWidget* widget, Text* text, bool own
gtk_text_buffer_place_cursor(this->buffer, &first);
GtkSettings* settings = gtk_widget_get_settings(this->widget);
+ g_object_get(settings, "gtk-cursor-blink", &this->cursorBlink, nullptr);
g_object_get(settings, "gtk-cursor-blink-time", &this->cursorBlinkTime, nullptr);
g_object_get(settings, "gtk-cursor-blink-timeout", &this->cursorBlinkTimeout, nullptr);
@@ -48,7 +49,12 @@ TextEditor::TextEditor(XojPageView* gui, GtkWidget* widget, Text* text, bool own
g_signal_connect(this->imContext, "retrieve-surrounding", G_CALLBACK(iMRetrieveSurroundingCallback), this);
g_signal_connect(this->imContext, "delete-surrounding", G_CALLBACK(imDeleteSurroundingCallback), this);
- blinkCallback(this);
+ if (this->cursorBlink) {
+ blinkCallback(this);
+ } else {
+ this->cursorVisible = true;
+ }
+
}
TextEditor::~TextEditor()
@@ -654,12 +660,15 @@ void TextEditor::moveCursor(GtkMovementStep step, int count, bool extendSelectio
gtk_widget_error_bell(this->widget);
}
- this->cursorVisible = false;
- if (this->blinkTimeout)
- {
- g_source_remove(this->blinkTimeout);
- }
- blinkCallback(this);
+ if (this->cursorBlink) {
+ this->cursorVisible = false;
+ if (this->blinkTimeout) {
+ g_source_remove(this->blinkTimeout);
+ }
+ blinkCallback(this);
+ } else {
+ repaintCursor();
+ }
}
void TextEditor::findPos(GtkTextIter* iter, double xPos, double yPos)
diff --git a/src/gui/TextEditor.h b/src/gui/TextEditor.h
index fdeb8b0f..008807b1 100644
--- a/src/gui/TextEditor.h
+++ b/src/gui/TextEditor.h
@@ -108,6 +108,7 @@ private:
double markPosX = 0;
double markPosY = 0;
+ bool cursorBlink = true;
int cursorBlinkTime = 0;
int cursorBlinkTimeout = 0;
int blinkTimeout = 0; // handler id