Compare commits
142 Commits
3fdda46bdd
...
master
Author | SHA1 | Date | |
---|---|---|---|
37033049ed | |||
2b8fc1d91c | |||
69b54087e0 | |||
eaf2334a04 | |||
4525b47d35 | |||
4d9937cf9d | |||
90e1c36244 | |||
5f3628d1a1 | |||
d02a0d7a45 | |||
36e5d09e8a | |||
821549f525 | |||
9da7c7c9fc | |||
32ec56e6e0 | |||
bd20b7622d | |||
4fb0970418 | |||
25f079383f | |||
d7cdd2a2b3 | |||
c12f4efc1d | |||
3c6000dc31 | |||
81db657d73 | |||
84c356d93c | |||
8d767ca499 | |||
b5b2062620 | |||
e3b25a5bc1 | |||
3849c3720b | |||
cd4199dc3e | |||
429a7a1e55 | |||
06a4738877 | |||
2aabd4f7db | |||
2fd59032f4 | |||
8d4f04d8a2 | |||
18ecb5248d | |||
e8229ce713 | |||
5cdd1b8f02 | |||
d79dd140fc | |||
26b98e4131 | |||
b89904422f | |||
048e8daf96 | |||
4d3b6bcba4 | |||
981f860bdc | |||
26e9a7d7da | |||
a74f967624 | |||
15f17e3051 | |||
746eeffff8 | |||
692c8368eb | |||
a1d4c16326 | |||
1c25e80ce5 | |||
ceeebd285f | |||
fb2d5cab05 | |||
93d868d047 | |||
7246542704 | |||
7cda28aacc | |||
a9ca075f23 | |||
07460df992 | |||
513e53b032 | |||
75176c7aef | |||
cecc2f51a0 | |||
4b727896b7 | |||
0c1d76cb38 | |||
c81774e6a7 | |||
7bca210546 | |||
65ee751ec8 | |||
58f0c5f83c | |||
3a5bc4f034 | |||
bc514fd011 | |||
bede6a3d48 | |||
d5a8330136 | |||
a1b116cc91 | |||
f3e5a57fba | |||
7faa9f2010 | |||
a9fa48daee | |||
cb1548edb0 | |||
dd36e04b39 | |||
deb38305c5 | |||
ab2f9f8f4e | |||
446f271532 | |||
d63d82571f | |||
c4a0c593c8 | |||
ccee0a99bf | |||
3fcd2ff615 | |||
f3f22581d3 | |||
c3d9242e2e | |||
3588811d70 | |||
73ce3ae8db | |||
69a1962827 | |||
ac7014a17f | |||
b5e5d70248 | |||
7ed620c95a | |||
5a21e8549d | |||
4f532a91e6 | |||
3d5c629da2 | |||
1e6b59eb10 | |||
121050b0f6 | |||
44c93e4d49 | |||
1bb964cd15 | |||
a0afc38771 | |||
123fb233c5 | |||
15ed947ac1 | |||
a7d3edef60 | |||
ba2c2738c0 | |||
e1d5bea5cc | |||
ef5860df46 | |||
2c88d6efb8 | |||
2ba9a7db29 | |||
f938fd473e | |||
c147fb9a69 | |||
97c9eeb0a1 | |||
32d1647ebd | |||
c95bcb5eaf | |||
ea517b4e74 | |||
231c0088bb | |||
671415d3db | |||
8dbafb128f | |||
36dbee629f | |||
82441e276a | |||
6b022802dd | |||
cf7000da8a | |||
1339d81209 | |||
621e7a4195 | |||
f1d81035b0 | |||
4e4b859940 | |||
4c948bf59a | |||
2f5aa92bb9 | |||
0bfee3d416 | |||
a73446c9fe | |||
ce44a334cc | |||
19070abca7 | |||
19e683ec3c | |||
00aba1d288 | |||
ca21dfd78b | |||
b87d5c589c | |||
f5b47396d3 | |||
4db98ae432 | |||
199a195ef8 | |||
129850b77a | |||
fb0c1eaa4a | |||
41180b28b1 | |||
05e2939f56 | |||
2d99fd2a6c | |||
2f218c4aed | |||
42d9f2642c | |||
b49b708b0f |
@ -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";
|
||||||
|
77
euhadra.nix
77
euhadra.nix
@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
98
flake.lock
98
flake.lock
@ -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"
|
||||||
}
|
}
|
||||||
|
15
flake.nix
15
flake.nix
@ -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"; })
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
85
flammea.nix
85
flammea.nix
@ -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"
|
||||||
|
# ]
|
||||||
|
# }
|
||||||
|
# '';
|
||||||
}
|
}
|
||||||
|
35
gnome3.nix
35
gnome3.nix
@ -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
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 ];
|
||||||
|
|
||||||
|
10
large-sw.nix
10
large-sw.nix
@ -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
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
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
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;
|
||||||
}
|
}
|
||||||
|
23
nvim05.nix
23
nvim05.nix
@ -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=";
|
||||||
|
# };
|
||||||
|
# });
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
68
petalius.nix
68
petalius.nix
@ -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";
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
25
pipewire.nix
25
pipewire.nix
@ -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
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
43
sway.nix
43
sway.nix
@ -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
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
|
|
Loading…
Reference in New Issue
Block a user