WIP
This commit is contained in:
parent
a8f6bf2ce2
commit
07ae12fc30
@ -56,28 +56,32 @@
|
|||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
zsh
|
bitwarden-cli
|
||||||
htop
|
btop
|
||||||
fastfetch
|
|
||||||
restic
|
|
||||||
nixfmt
|
|
||||||
rsync
|
|
||||||
pciutils # lspci
|
|
||||||
usbutils # lsusb
|
|
||||||
nmap
|
|
||||||
tree
|
|
||||||
p7zip
|
|
||||||
unar
|
|
||||||
inetutils # telnet
|
|
||||||
wget
|
|
||||||
dnsutils
|
dnsutils
|
||||||
|
fastfetch
|
||||||
|
htop
|
||||||
iftop
|
iftop
|
||||||
|
inetutils # telnet
|
||||||
|
lazygit
|
||||||
|
nixfmt
|
||||||
|
nmap
|
||||||
|
p7zip
|
||||||
|
pciutils # lspci
|
||||||
|
restic
|
||||||
|
rsync
|
||||||
|
tree
|
||||||
|
unar
|
||||||
|
usbutils # lsusb
|
||||||
|
wget
|
||||||
|
zsh
|
||||||
|
|
||||||
# media
|
# media
|
||||||
yt-dlp
|
yt-dlp
|
||||||
exiftool
|
exiftool
|
||||||
mediainfo
|
mediainfo
|
||||||
ffmpeg-full
|
ffmpeg-full
|
||||||
|
kiwix-tools
|
||||||
|
|
||||||
# barcodes
|
# barcodes
|
||||||
qrencode
|
qrencode
|
||||||
@ -90,7 +94,6 @@
|
|||||||
man-pages-posix
|
man-pages-posix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
@ -100,7 +103,8 @@
|
|||||||
font-awesome_5
|
font-awesome_5
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Power management
|
||||||
|
services.power-profiles-daemon.enable = true;
|
||||||
|
|
||||||
environment.shellAliases = {
|
environment.shellAliases = {
|
||||||
"server" = "ssh admin@192.168.0.30";
|
"server" = "ssh admin@192.168.0.30";
|
||||||
@ -112,5 +116,8 @@
|
|||||||
"lsa" = "ls -al";
|
"lsa" = "ls -al";
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.pathsToLink = [ "/share/applications" "/share/xdg-desktop-portal" ];
|
environment.pathsToLink = [
|
||||||
|
"/share/applications"
|
||||||
|
"/share/xdg-desktop-portal"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
qt.style = "adwaita-dark";
|
qt.style = "adwaita-dark";
|
||||||
qt.platformTheme = "gnome";
|
qt.platformTheme = "gnome";
|
||||||
|
|
||||||
#hyprland
|
#hyprland
|
||||||
services.displayManager.gdm.enable = true; # use sddm until gnome 50 due to https://github.com/systemd/systemd/issues/39259
|
services.displayManager.gdm.enable = true; # use sddm until gnome 50 due to https://github.com/systemd/systemd/issues/39259
|
||||||
|
|
||||||
@ -25,7 +25,11 @@
|
|||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
services.tailscale.enable = true;
|
services.tailscale.enable = true;
|
||||||
services.printing.drivers = [ pkgs.brlaser pkgs.brgenml1lpr pkgs.brgenml1cupswrapper ];
|
services.printing.drivers = [
|
||||||
|
pkgs.brlaser
|
||||||
|
pkgs.brgenml1lpr
|
||||||
|
pkgs.brgenml1cupswrapper
|
||||||
|
];
|
||||||
|
|
||||||
# Enable automatic login for the user.
|
# Enable automatic login for the user.
|
||||||
# services.displayManager.autoLogin.enable = true;
|
# services.displayManager.autoLogin.enable = true;
|
||||||
@ -52,8 +56,7 @@
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.chromium = {
|
||||||
programs.chromium = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
homepageLocation = "https://dashboard.mektem.com";
|
homepageLocation = "https://dashboard.mektem.com";
|
||||||
extraOpts = {
|
extraOpts = {
|
||||||
@ -62,9 +65,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
hardware.keyboard.qmk.enable = true;
|
hardware.keyboard.qmk.enable = true;
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
@ -78,13 +78,11 @@
|
|||||||
kernelParams = [
|
kernelParams = [
|
||||||
"quiet"
|
"quiet"
|
||||||
"udev.log_level=3"
|
"udev.log_level=3"
|
||||||
"systemd.show_status=auto"
|
"systemd.show_status=auto"
|
||||||
"rd.udev.log_level=3"
|
"rd.udev.log_level=3"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#services.udev.packages = [ pkgs.via ];
|
#services.udev.packages = [ pkgs.via ];
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
@ -100,74 +98,66 @@
|
|||||||
services.mullvad-vpn.enable = true;
|
services.mullvad-vpn.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
audacity
|
|
||||||
brave
|
brave
|
||||||
blender
|
|
||||||
orca-slicer
|
|
||||||
firefox
|
firefox
|
||||||
gimp
|
#blender
|
||||||
inkscape
|
#audacity
|
||||||
bitwarden-desktop
|
#orca-slicer
|
||||||
bitwarden-cli
|
#gimp
|
||||||
kiwix
|
#inkscape
|
||||||
libreoffice
|
#unstable.protonmail-desktop
|
||||||
obs-studio
|
#bitwarden-desktop
|
||||||
obsidian
|
#libreoffice
|
||||||
|
#freecad
|
||||||
|
#kiwix
|
||||||
|
#obs-studio
|
||||||
|
#obsidian
|
||||||
unstable.proton-authenticator
|
unstable.proton-authenticator
|
||||||
unstable.protonmail-desktop
|
#prismlauncher
|
||||||
unstable.proton-vpn
|
#unstable.signal-desktop
|
||||||
prismlauncher
|
|
||||||
unstable.signal-desktop
|
|
||||||
freecad
|
|
||||||
tor-browser
|
tor-browser
|
||||||
wireshark
|
#wireshark
|
||||||
monero-gui
|
#monero-gui
|
||||||
moonlight-qt
|
#moonlight-qt
|
||||||
nvtopPackages.nvidia
|
nvtopPackages.nvidia
|
||||||
dconf-editor
|
dconf-editor
|
||||||
via
|
#kdePackages.kdenlive
|
||||||
kdePackages.kdenlive
|
#element-desktop
|
||||||
easyeffects
|
#chirp
|
||||||
element-desktop
|
|
||||||
chirp
|
|
||||||
scrcpy
|
scrcpy
|
||||||
veracrypt
|
veracrypt
|
||||||
lmms
|
#lmms
|
||||||
restic-browser
|
restic-browser
|
||||||
|
|
||||||
# games
|
# games
|
||||||
webcord
|
#cataclysm-dda
|
||||||
heroic
|
#endless-sky
|
||||||
lutris
|
#mindustry
|
||||||
cataclysm-dda
|
#openrct2
|
||||||
runelite
|
#openttd
|
||||||
zeroad
|
#osu-lazer-bin
|
||||||
unciv
|
#runelite
|
||||||
endless-sky
|
#unciv
|
||||||
wesnoth
|
#webcord
|
||||||
mindustry
|
#wesnoth
|
||||||
openrct2
|
#xonotic
|
||||||
openttd
|
#zeroad #0ad
|
||||||
xonotic
|
|
||||||
osu-lazer-bin
|
|
||||||
ufoai
|
|
||||||
ludusavi # steam backup
|
|
||||||
|
|
||||||
# game utils
|
# game utils
|
||||||
mangohud
|
mangohud
|
||||||
umu-launcher
|
umu-launcher
|
||||||
|
|
||||||
# emu
|
# emu
|
||||||
ryubing
|
#ryubing
|
||||||
xemu
|
#xemu
|
||||||
xenia-canary
|
xenia-canary
|
||||||
#retroarch-full
|
#retroarch-full
|
||||||
rpcs3
|
#rpcs3
|
||||||
dolphin-emu
|
#dolphin-emu
|
||||||
cemu
|
#cemu
|
||||||
|
|
||||||
# backup
|
# backup
|
||||||
keepassxc
|
#keepassxc
|
||||||
];
|
];
|
||||||
|
|
||||||
fonts.fontconfig = {
|
fonts.fontconfig = {
|
||||||
@ -187,9 +177,14 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.hardware.openrgb.enable = true;
|
||||||
|
services.hardware.openrgb.package = pkgs.openrgb-with-all-plugins;
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
adb.enable = true;
|
adb.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
localsend = {
|
localsend = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
@ -218,38 +213,100 @@
|
|||||||
fileSystems."/mnt/media" = {
|
fileSystems."/mnt/media" = {
|
||||||
device = "//192.168.0.30/media";
|
device = "//192.168.0.30/media";
|
||||||
fsType = "cifs";
|
fsType = "cifs";
|
||||||
options = let
|
options =
|
||||||
# this line prevents hanging on network split
|
let
|
||||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
# this line prevents hanging on network split
|
||||||
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||||
|
|
||||||
in ["${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000"];
|
in
|
||||||
|
[ "${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000" ];
|
||||||
};
|
};
|
||||||
fileSystems."/mnt/services" = {
|
fileSystems."/mnt/services" = {
|
||||||
device = "//192.168.0.30/services";
|
device = "//192.168.0.30/services";
|
||||||
fsType = "cifs";
|
fsType = "cifs";
|
||||||
options = let
|
options =
|
||||||
# this line prevents hanging on network split
|
let
|
||||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
# this line prevents hanging on network split
|
||||||
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||||
|
|
||||||
in ["${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000"];
|
in
|
||||||
|
[ "${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000" ];
|
||||||
};
|
};
|
||||||
fileSystems."/mnt/data" = {
|
fileSystems."/mnt/data" = {
|
||||||
device = "//192.168.0.30/data";
|
device = "//192.168.0.30/data";
|
||||||
fsType = "cifs";
|
fsType = "cifs";
|
||||||
options = let
|
options =
|
||||||
# this line prevents hanging on network split
|
let
|
||||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
# this line prevents hanging on network split
|
||||||
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||||
|
|
||||||
in ["${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000"];
|
in
|
||||||
|
[ "${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
users.groups.libvirtd.members = ["admin"];
|
users.groups.libvirtd.members = [ "admin" ];
|
||||||
virtualisation.libvirtd = {
|
virtualisation.libvirtd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
qemu.swtpm.enable = true;
|
qemu.swtpm.enable = true;
|
||||||
};
|
};
|
||||||
virtualisation.spiceUSBRedirection.enable = true;
|
virtualisation.spiceUSBRedirection.enable = true;
|
||||||
|
|
||||||
#services.flatpak.enable = true;
|
imports = [ inputs.nix-flatpak.nixosModules.nix-flatpak ];
|
||||||
|
|
||||||
|
services.flatpak = {
|
||||||
|
enable = true;
|
||||||
|
update.auto = {
|
||||||
|
enable = true;
|
||||||
|
onCalendar = "weekly"; # Default value
|
||||||
|
};
|
||||||
|
packages = [
|
||||||
|
"com.bitwarden.desktop"
|
||||||
|
"com.orcaslicer.OrcaSlicer"
|
||||||
|
"me.proton.Mail"
|
||||||
|
"org.audacityteam.Audacity"
|
||||||
|
"org.blender.Blender"
|
||||||
|
"org.freecad.FreeCAD"
|
||||||
|
"org.gimp.GIMP"
|
||||||
|
"org.inkscape.Inkscape"
|
||||||
|
"org.kiwix.desktop"
|
||||||
|
"org.libreoffice.LibreOffice"
|
||||||
|
"md.obsidian.Obsidian"
|
||||||
|
"com.obsproject.Studio"
|
||||||
|
"org.prismlauncher.PrismLauncher"
|
||||||
|
"org.signal.Signal"
|
||||||
|
"org.wireshark.Wireshark"
|
||||||
|
"org.getmonero.Monero"
|
||||||
|
"com.moonlight_stream.Moonlight"
|
||||||
|
"org.kde.kdenlive"
|
||||||
|
"im.riot.Riot"
|
||||||
|
"com.chirpmyradio.chirp"
|
||||||
|
"io.lmms.LMMS"
|
||||||
|
|
||||||
|
# games
|
||||||
|
"com.github.Anuken.Mindustry"
|
||||||
|
"com.play0ad.zeroad"
|
||||||
|
"io.github.endless_sky.endless_sky"
|
||||||
|
"io.github.spacingbat3.webcord"
|
||||||
|
"io.github.yairm210.unciv"
|
||||||
|
"io.openrct2.OpenRCT2"
|
||||||
|
"net.runelite.RuneLite"
|
||||||
|
"org.cataclysmdda.CataclysmDDA"
|
||||||
|
"org.openttd.OpenTTD"
|
||||||
|
"org.wesnoth.Wesnoth"
|
||||||
|
"org.xonotic.Xonotic"
|
||||||
|
"sh.ppy.osu"
|
||||||
|
|
||||||
|
# emu
|
||||||
|
"io.github.ryubing.Ryujinx"
|
||||||
|
"app.xemu.xemu"
|
||||||
|
"net.rpcs3.RPCS3"
|
||||||
|
"org.DolphinEmu.dolphin-emu"
|
||||||
|
"info.cemu.Cemu"
|
||||||
|
|
||||||
|
# backup
|
||||||
|
"org.keepassxc.KeePassXC"
|
||||||
|
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
134
config/gnome.nix
134
config/gnome.nix
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Enable the GNOME Desktop Environment.
|
# Enable the GNOME Desktop Environment.
|
||||||
services.desktopManager.gnome.enable = false;
|
services.desktopManager.gnome.enable = false;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gnomeExtensions.appindicator
|
gnomeExtensions.appindicator
|
||||||
gnomeExtensions.blur-my-shell
|
gnomeExtensions.blur-my-shell
|
||||||
@ -13,7 +13,7 @@
|
|||||||
environment.gnome.excludePackages = with pkgs; [
|
environment.gnome.excludePackages = with pkgs; [
|
||||||
epiphany # web browser
|
epiphany # web browser
|
||||||
geary # email
|
geary # email
|
||||||
decibels #audio player
|
decibels # audio player
|
||||||
gnome-calendar
|
gnome-calendar
|
||||||
gnome-music
|
gnome-music
|
||||||
gnome-software
|
gnome-software
|
||||||
@ -23,68 +23,70 @@
|
|||||||
yelp # help
|
yelp # help
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.dconf = {
|
programs.dconf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles.user.databases = [{
|
profiles.user.databases = [
|
||||||
lockAll = true; # prevents overriding
|
{
|
||||||
settings = {
|
lockAll = true; # prevents overriding
|
||||||
"org/gnome/shell" = {
|
settings = {
|
||||||
favorite-apps = [
|
"org/gnome/shell" = {
|
||||||
"org.gnome.Nautilus.desktop"
|
favorite-apps = [
|
||||||
"brave-browser.desktop"
|
"org.gnome.Nautilus.desktop"
|
||||||
"proton-mail.desktop"
|
"brave-browser.desktop"
|
||||||
"obsidian.desktop"
|
"proton-mail.desktop"
|
||||||
"signal.desktop"
|
"obsidian.desktop"
|
||||||
"element-desktop.desktop"
|
"signal.desktop"
|
||||||
"steam.desktop"
|
"element-desktop.desktop"
|
||||||
"bitwarden.desktop"
|
"steam.desktop"
|
||||||
"org.gnome.Settings.desktop"
|
"bitwarden.desktop"
|
||||||
"org.gnome.Console.desktop"
|
"org.gnome.Settings.desktop"
|
||||||
];
|
"org.gnome.Console.desktop"
|
||||||
enabled-extensions = [
|
];
|
||||||
pkgs.gnomeExtensions.appindicator.extensionUuid
|
enabled-extensions = [
|
||||||
pkgs.gnomeExtensions.blur-my-shell.extensionUuid
|
pkgs.gnomeExtensions.appindicator.extensionUuid
|
||||||
pkgs.gnomeExtensions.caffeine.extensionUuid
|
pkgs.gnomeExtensions.blur-my-shell.extensionUuid
|
||||||
pkgs.gnomeExtensions.dash-to-dock.extensionUuid
|
pkgs.gnomeExtensions.caffeine.extensionUuid
|
||||||
];
|
pkgs.gnomeExtensions.dash-to-dock.extensionUuid
|
||||||
};
|
];
|
||||||
"org/gnome/desktop/calendar" = {
|
|
||||||
show-weekdate = true;
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/interface" = {
|
|
||||||
clock-show-weekday = true;
|
|
||||||
color-scheme = "prefer-dark";
|
|
||||||
document-font-name = "Noto Sans 11";
|
|
||||||
enable-hot-corners = false;
|
|
||||||
font-name = "Noto Sans 11";
|
|
||||||
gtk-theme = "Adwaita-dark";
|
|
||||||
monospace-font-name = "Fira Mono 12";
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/peripherals/mouse" = {
|
|
||||||
accel-profile = "flat";
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
|
||||||
button-layout = ":minimize,maximize,close";
|
|
||||||
};
|
|
||||||
"org/gnome/nautilus/list-view" = {
|
|
||||||
default-zoom-level = "small";
|
|
||||||
};
|
|
||||||
"org/gnome/nautilus/preferences" = {
|
|
||||||
default-folder-viewer = "list-view";
|
|
||||||
};
|
|
||||||
"org/gnome/shell/extensions/dash-to-dock" = {
|
|
||||||
click-action = "minimize-or-previews";
|
|
||||||
dock-fixed = true;
|
|
||||||
multi-monitor = true;
|
|
||||||
show-mounts = false;
|
|
||||||
show-show-apps-button = true;
|
|
||||||
apply-custom-theme = true;
|
|
||||||
};
|
|
||||||
"org/gnome/shell/keybindings" = {
|
|
||||||
show-screenshot-ui = ["<Shift><Super>s"];
|
|
||||||
};
|
|
||||||
#org.gnome.desktop.input-sources sources [('xkb', 'us'), ('xkb', 'dz+ar')]
|
|
||||||
};
|
};
|
||||||
}];
|
"org/gnome/desktop/calendar" = {
|
||||||
};
|
show-weekdate = true;
|
||||||
}
|
};
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
clock-show-weekday = true;
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
document-font-name = "Noto Sans 11";
|
||||||
|
enable-hot-corners = false;
|
||||||
|
font-name = "Noto Sans 11";
|
||||||
|
gtk-theme = "Adwaita-dark";
|
||||||
|
monospace-font-name = "Fira Mono 12";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/peripherals/mouse" = {
|
||||||
|
accel-profile = "flat";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
|
button-layout = ":minimize,maximize,close";
|
||||||
|
};
|
||||||
|
"org/gnome/nautilus/list-view" = {
|
||||||
|
default-zoom-level = "small";
|
||||||
|
};
|
||||||
|
"org/gnome/nautilus/preferences" = {
|
||||||
|
default-folder-viewer = "list-view";
|
||||||
|
};
|
||||||
|
"org/gnome/shell/extensions/dash-to-dock" = {
|
||||||
|
click-action = "minimize-or-previews";
|
||||||
|
dock-fixed = true;
|
||||||
|
multi-monitor = true;
|
||||||
|
show-mounts = false;
|
||||||
|
show-show-apps-button = true;
|
||||||
|
apply-custom-theme = true;
|
||||||
|
};
|
||||||
|
"org/gnome/shell/keybindings" = {
|
||||||
|
show-screenshot-ui = [ "<Shift><Super>s" ];
|
||||||
|
};
|
||||||
|
#org.gnome.desktop.input-sources sources [('xkb', 'us'), ('xkb', 'dz+ar')]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
{ pkgs, ...}:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland.enable = true;
|
||||||
security.pam.services.hyprlock = {};
|
security.pam.services.hyprlock = { };
|
||||||
|
|
||||||
#wifi
|
#wifi
|
||||||
networking.wireless.iwd.enable = true;
|
networking.wireless.iwd.enable = true;
|
||||||
@ -13,25 +13,26 @@
|
|||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
glib # gsettings
|
glib # gsettings
|
||||||
gsettings-desktop-schemas # gsettings
|
gsettings-desktop-schemas # gsettings
|
||||||
dconf # gsettings
|
dconf # gsettings
|
||||||
impala # wifi
|
impala # wifi
|
||||||
grim # screenshots
|
grim # screenshots
|
||||||
slurp # screenshot selection
|
slurp # screenshot selection
|
||||||
wl-clipboard # copy to clipboard
|
wl-clipboard # copy to clipboard
|
||||||
libnotify # enables "notify-send"
|
libnotify # enables "notify-send"
|
||||||
nautilus
|
|
||||||
bluetui # bluetooth
|
bluetui # bluetooth
|
||||||
wiremix # mixer
|
wiremix # mixer
|
||||||
btop
|
tesseract # ocr
|
||||||
tesseract #ocr
|
hyprpicker
|
||||||
|
satty # image annotation
|
||||||
|
|
||||||
|
# gnome stuff
|
||||||
gnome-calculator
|
gnome-calculator
|
||||||
|
nautilus
|
||||||
gnome-font-viewer
|
gnome-font-viewer
|
||||||
|
gnome-calendar
|
||||||
];
|
];
|
||||||
|
|
||||||
services.udisks2.enable = true; # udiskie automount USB
|
services.udisks2.enable = true; # udiskie automount USB
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ...}:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
@ -19,7 +19,7 @@
|
|||||||
"adbusers" # adb
|
"adbusers" # adb
|
||||||
"kvm" # virt
|
"kvm" # virt
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"lp" #printing
|
"lp" # printing
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -46,4 +46,4 @@
|
|||||||
|
|
||||||
# enable developer documenation
|
# enable developer documenation
|
||||||
documentation.dev.enable = true;
|
documentation.dev.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
16
flake.lock
generated
16
flake.lock
generated
@ -100,6 +100,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-flatpak": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777402031,
|
||||||
|
"narHash": "sha256-6gkfl9y3+ti0Z6dgby8/R4/DRT8sWU0I0TLCIxwWtjk=",
|
||||||
|
"owner": "gmodena",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"rev": "22a3adbe7c5c8c8a10a635d32c9ef7fc01a6e4b8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gmodena",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776983936,
|
"lastModified": 1776983936,
|
||||||
@ -170,6 +185,7 @@
|
|||||||
"home-manager-unstable": "home-manager-unstable",
|
"home-manager-unstable": "home-manager-unstable",
|
||||||
"lazyvim": "lazyvim",
|
"lazyvim": "lazyvim",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||||
|
|||||||
35
flake.nix
35
flake.nix
@ -12,16 +12,27 @@
|
|||||||
nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-25.11";
|
nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-25.11";
|
||||||
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
lazyvim.url = "github:pfassina/lazyvim-nix";
|
lazyvim.url = "github:pfassina/lazyvim-nix";
|
||||||
|
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{ self, nixpkgs, home-manager, home-manager-unstable, nix-darwin, lazyvim, ... }@inputs:
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
home-manager,
|
||||||
|
home-manager-unstable,
|
||||||
|
nix-darwin,
|
||||||
|
lazyvim,
|
||||||
|
nix-flatpak,
|
||||||
|
...
|
||||||
|
}@inputs:
|
||||||
{
|
{
|
||||||
nixosConfigurations.desktop = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.desktop = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit self inputs;
|
inherit self inputs;
|
||||||
hostname = "nixos-desktop";
|
inherit nix-flatpak;
|
||||||
};
|
hostname = "nixos-desktop";
|
||||||
|
};
|
||||||
#inherit system;
|
#inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
./config/common.nix
|
./config/common.nix
|
||||||
@ -34,11 +45,11 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = {
|
home-manager.extraSpecialArgs = {
|
||||||
inherit lazyvim;
|
inherit lazyvim;
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
hostname = "nixos-desktop";
|
hostname = "nixos-desktop";
|
||||||
};
|
};
|
||||||
home-manager.users.admin = {
|
home-manager.users.admin = {
|
||||||
imports = [
|
imports = [
|
||||||
./home/common.nix
|
./home/common.nix
|
||||||
@ -51,7 +62,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations.nixos-server = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.nixos-server = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {inherit inputs;};
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
./config/common.nix
|
./config/common.nix
|
||||||
./config/linux.nix
|
./config/linux.nix
|
||||||
@ -70,7 +81,7 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
darwinConfigurations."admins-MacBook-Air" = nix-darwin.lib.darwinSystem {
|
darwinConfigurations."admins-MacBook-Air" = nix-darwin.lib.darwinSystem {
|
||||||
modules = [
|
modules = [
|
||||||
./config/common.nix
|
./config/common.nix
|
||||||
@ -90,7 +101,7 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,4 +1,9 @@
|
|||||||
{ config, pkgs, lazyvim, ...}:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lazyvim,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
@ -7,7 +12,6 @@
|
|||||||
BROWSER = "brave";
|
BROWSER = "brave";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
imports = [ lazyvim.homeManagerModules.default ];
|
imports = [ lazyvim.homeManagerModules.default ];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
@ -31,10 +35,16 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lazyvim = {
|
||||||
|
enable = true;
|
||||||
lazyvim.enable = true;
|
plugins = {
|
||||||
|
colorscheme = ''
|
||||||
|
return {
|
||||||
|
"kepano/flexoki-neovim"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
# neovim = {
|
# neovim = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# viAlias = true;
|
# viAlias = true;
|
||||||
@ -86,7 +96,7 @@
|
|||||||
set -g window-status-separator ""
|
set -g window-status-separator ""
|
||||||
set -gw automatic-rename on
|
set -gw automatic-rename on
|
||||||
set -gw automatic-rename-format '#{b:pane_current_path}'
|
set -gw automatic-rename-format '#{b:pane_current_path}'
|
||||||
|
|
||||||
# theme
|
# theme
|
||||||
set -g status-style "bg=default,fg=default"
|
set -g status-style "bg=default,fg=default"
|
||||||
set -g status-left "#[fg=black,bg=blue,bold] #S #[bg=default] "
|
set -g status-left "#[fg=black,bg=blue,bold] #S #[bg=default] "
|
||||||
@ -111,6 +121,33 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
dotDir = "${config.xdg.configHome}/zsh";
|
dotDir = "${config.xdg.configHome}/zsh";
|
||||||
syntaxHighlighting.enable = true;
|
syntaxHighlighting.enable = true;
|
||||||
|
initContent = ''
|
||||||
|
bindkey -v
|
||||||
|
export KEYTIMEOUT=1
|
||||||
|
|
||||||
|
# Use vim keys in tab complete menu:
|
||||||
|
bindkey -M menuselect 'h' vi-backward-char
|
||||||
|
bindkey -M menuselect 'k' vi-up-line-or-history
|
||||||
|
bindkey -M menuselect 'l' vi-forward-char
|
||||||
|
bindkey -M menuselect 'j' vi-down-line-or-history
|
||||||
|
bindkey -v '^?' backward-delete-char
|
||||||
|
|
||||||
|
# Change cursor shape for different vi modes.
|
||||||
|
function zle-keymap-select () {
|
||||||
|
case $KEYMAP in
|
||||||
|
vicmd) echo -ne '\e[1 q';; # block
|
||||||
|
viins|main) echo -ne '\e[5 q';; # beam
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
zle -N zle-keymap-select
|
||||||
|
zle-line-init() {
|
||||||
|
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
||||||
|
echo -ne "\e[5 q"
|
||||||
|
}
|
||||||
|
zle -N zle-line-init
|
||||||
|
echo -ne '\e[5 q' # Use beam shape cursor on startup.
|
||||||
|
preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
|
||||||
|
'';
|
||||||
oh-my-zsh = {
|
oh-my-zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = [ "git" ];
|
plugins = [ "git" ];
|
||||||
|
|||||||
@ -13,6 +13,8 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.easyeffects.enable = true;
|
||||||
|
|
||||||
# Don't touch
|
# Don't touch
|
||||||
home.stateVersion = "24.11";
|
home.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,10 +2,14 @@
|
|||||||
let
|
let
|
||||||
nix_background = "rgb(16, 15, 15)";
|
nix_background = "rgb(16, 15, 15)";
|
||||||
nix_text = "rgb(206, 205, 195)";
|
nix_text = "rgb(206, 205, 195)";
|
||||||
nix_accent = "rgb(67, 133, 190)"; # blue
|
nix_accent = "rgb(32, 94, 166)"; # blue
|
||||||
nix_inactive = "rgb(64, 62, 60)";
|
nix_inactive = "rgb(64, 62, 60)";
|
||||||
nix_alert = "rgb(209, 77, 65)"; # red
|
nix_alert = "rgb(175, 48, 41)"; # red
|
||||||
nix_recording = "rgb(218, 112, 44)"; # orange
|
nix_recording = "rgb(188, 82, 21)"; # orange
|
||||||
|
nix_font = "JetBrainsMono Nerd Font";
|
||||||
|
nix_border_size = 3;
|
||||||
|
nix_corner = 10;
|
||||||
|
nix_bar_height = 30;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
@ -22,21 +26,56 @@ in
|
|||||||
|
|
||||||
services.udiskie.enable = true; # automount USB
|
services.udiskie.enable = true; # automount USB
|
||||||
|
|
||||||
|
services.playerctld.enable = true; # media control for browser, etc
|
||||||
|
|
||||||
|
services.mpd = {
|
||||||
|
enable = true;
|
||||||
|
musicDirectory = "/mnt/media/audio/music/flac";
|
||||||
|
extraConfig = ''
|
||||||
|
audio_output {
|
||||||
|
type "pipewire"
|
||||||
|
name "PipeWire Sound Server"
|
||||||
|
}
|
||||||
|
auto_update "yes"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.rmpc = {
|
||||||
|
enable = true;
|
||||||
|
config = ''
|
||||||
|
(
|
||||||
|
address: "127.0.0.1:6600",
|
||||||
|
password: None,
|
||||||
|
theme: None,
|
||||||
|
cache_dir: None,
|
||||||
|
on_song_change: None,
|
||||||
|
volume_step: 5,
|
||||||
|
max_fps: 30,
|
||||||
|
scrolloff: 0,
|
||||||
|
wrap_navigation: false,
|
||||||
|
enable_mouse: true,
|
||||||
|
enable_config_hot_reload: true,
|
||||||
|
select_current_song_on_change: false,
|
||||||
|
browser_song_sort: [Disc, Track, Artist, Title],
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "flexoki";
|
theme = "flexoki";
|
||||||
settings = {
|
settings = {
|
||||||
font = {
|
font = {
|
||||||
normal = {
|
normal = {
|
||||||
family = "JetBrainsMono Nerd Font";
|
family = nix_font;
|
||||||
style = "Regular";
|
style = "Regular";
|
||||||
};
|
};
|
||||||
bold = {
|
bold = {
|
||||||
family = "JetBrainsMono Nerd Font";
|
family = nix_font;
|
||||||
style = "Bold";
|
style = "Bold";
|
||||||
};
|
};
|
||||||
italic = {
|
italic = {
|
||||||
family = "JetBrainsMono Nerd Font";
|
family = nix_font;
|
||||||
style = "Italic";
|
style = "Italic";
|
||||||
};
|
};
|
||||||
size = 9;
|
size = 9;
|
||||||
@ -50,16 +89,6 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
|
||||||
shellIntegration.enableZshIntegration = true;
|
|
||||||
font.name = "JetBrains Mono Nerd Font";
|
|
||||||
themeFile = "Catppuccin-Mocha";
|
|
||||||
settings = {
|
|
||||||
background_opacity = 0.9;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.hyprpaper = {
|
services.hyprpaper = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -78,19 +107,21 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
global = {
|
global = {
|
||||||
|
|
||||||
width = "(300, 300)";
|
width = "(300, 300)";
|
||||||
height = "(75, 75)";
|
height = "(75, 75)";
|
||||||
font = "JetBrains Mono Nerd Font 14";
|
font = "${nix_font} 10";
|
||||||
offset = "(40, 40)";
|
offset = "(40, 40)";
|
||||||
frame-color = nix_inactive;
|
frame_color = "#205ea6";
|
||||||
background = nix_background;
|
background = "#100f0f1A";
|
||||||
foreground = nix_text;
|
foreground = "#cecdc3";
|
||||||
timeout = 5;
|
timeout = 5;
|
||||||
|
gaps = true;
|
||||||
|
gap_size = 15;
|
||||||
|
corner_radius = nix_corner;
|
||||||
};
|
};
|
||||||
|
|
||||||
urgency_critical = {
|
urgency_critical = {
|
||||||
frame-color = nix_alert;
|
frame_color = nix_alert;
|
||||||
timeout = 0;
|
timeout = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -127,19 +158,6 @@ in
|
|||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# services.swaync = {
|
|
||||||
# enable = true;
|
|
||||||
# style = ''
|
|
||||||
# .notification {
|
|
||||||
# border-radius: 0px;
|
|
||||||
# background-color: "#1e1e2e";
|
|
||||||
# color: "#cdd6f4";
|
|
||||||
# border-color: "#89b4fa";
|
|
||||||
# }
|
|
||||||
# '';
|
|
||||||
#
|
|
||||||
# };
|
|
||||||
|
|
||||||
dconf = {
|
dconf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -162,7 +180,7 @@ in
|
|||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
font-family: 'JetBrainsMono Nerd Font';
|
font-family: '${nix_font}';
|
||||||
font-size: 14px; /* up from 12px */
|
font-size: 14px; /* up from 12px */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,12 +203,20 @@ in
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
border-radius: 0 0 ${toString nix_corner}px ${toString nix_corner}px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#cpu,
|
#cpu,
|
||||||
#battery,
|
#battery,
|
||||||
#pulseaudio,
|
#pulseaudio,
|
||||||
#custom-power,
|
#custom-power,
|
||||||
#idle_inhibitor,
|
#idle_inhibitor,
|
||||||
#bluetooth,
|
#bluetooth,
|
||||||
|
#privacy,
|
||||||
|
#custom-menu,
|
||||||
|
#hyprland-submap,
|
||||||
#language {
|
#language {
|
||||||
min-width: 12px;
|
min-width: 12px;
|
||||||
margin: 0 7.5px;
|
margin: 0 7.5px;
|
||||||
@ -208,7 +234,7 @@ in
|
|||||||
margin-right: 13px;
|
margin-right: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-expandn {
|
#custom-expand {
|
||||||
margin-right: 18px;
|
margin-right: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,12 +265,13 @@ in
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#privacy {
|
#privacy privacy-item *{
|
||||||
min-width: 12px;
|
min-width: 12px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
padding-bottom: 1px;
|
padding-bottom: 1px;
|
||||||
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#privacy.active {
|
#privacy.active {
|
||||||
@ -257,9 +284,13 @@ in
|
|||||||
'';
|
'';
|
||||||
settings = {
|
settings = {
|
||||||
mainBar = {
|
mainBar = {
|
||||||
height = 26;
|
height = nix_bar_height;
|
||||||
spacing = 4;
|
spacing = 0;
|
||||||
modules-left = [ "hyprland/workspaces" ];
|
modules-left = [
|
||||||
|
"custom/menu"
|
||||||
|
"hyprland/workspaces"
|
||||||
|
"hyprland/submap"
|
||||||
|
];
|
||||||
modules-center = [
|
modules-center = [
|
||||||
"clock"
|
"clock"
|
||||||
"idle_inhibitor"
|
"idle_inhibitor"
|
||||||
@ -274,6 +305,10 @@ in
|
|||||||
"privacy"
|
"privacy"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
privacy = {
|
||||||
|
icon-size = 14;
|
||||||
|
};
|
||||||
|
|
||||||
"hyprland/workspaces" = {
|
"hyprland/workspaces" = {
|
||||||
on-click = "activate";
|
on-click = "activate";
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
@ -306,7 +341,8 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
tray = {
|
tray = {
|
||||||
#spacing = 10;
|
spacing = 17;
|
||||||
|
icon-size = 12;
|
||||||
};
|
};
|
||||||
|
|
||||||
"hyprland/language" = {
|
"hyprland/language" = {
|
||||||
@ -321,6 +357,11 @@ in
|
|||||||
on-click = "hyprlock & systemctl suspend";
|
on-click = "hyprlock & systemctl suspend";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"custom/menu" = {
|
||||||
|
format = "";
|
||||||
|
on-click = "walker";
|
||||||
|
};
|
||||||
|
|
||||||
"custom/expand" = {
|
"custom/expand" = {
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
format = "";
|
format = "";
|
||||||
@ -411,13 +452,140 @@ in
|
|||||||
locale = "";
|
locale = "";
|
||||||
monitor = "";
|
monitor = "";
|
||||||
terminal_title_flag = "";
|
terminal_title_flag = "";
|
||||||
theme = "default";
|
|
||||||
timeout = 0;
|
timeout = 0;
|
||||||
};
|
};
|
||||||
|
theme.name = "my-theme";
|
||||||
|
theme.style = ''
|
||||||
|
@define-color background ${nix_background};
|
||||||
|
@define-color foreground ${nix_text};
|
||||||
|
@define-color selected-text ${nix_accent};
|
||||||
|
@define-color base ${nix_background};
|
||||||
|
@define-color border ${nix_accent};
|
||||||
|
@define-color text ${nix_text};
|
||||||
|
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: monospace;
|
||||||
|
font-size: 18px;
|
||||||
|
color: @text;
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollbar {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.normal-icons {
|
||||||
|
-gtk-icon-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.large-icons {
|
||||||
|
-gtk-icon-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-wrapper {
|
||||||
|
background: alpha(@base, 0.95);
|
||||||
|
padding: 20px;
|
||||||
|
border: 2px solid @border;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview-box {
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-container {
|
||||||
|
background: @base;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input placeholder {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input {
|
||||||
|
}
|
||||||
|
|
||||||
|
.input:focus,
|
||||||
|
.input:active {
|
||||||
|
box-shadow: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-container {
|
||||||
|
}
|
||||||
|
|
||||||
|
.placeholder {
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll {
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
}
|
||||||
|
|
||||||
|
child,
|
||||||
|
child > * {
|
||||||
|
}
|
||||||
|
|
||||||
|
child:hover .item-box {
|
||||||
|
}
|
||||||
|
|
||||||
|
child:selected .item-box {
|
||||||
|
}
|
||||||
|
|
||||||
|
child:selected .item-box * {
|
||||||
|
color: @selected-text;
|
||||||
|
}
|
||||||
|
|
||||||
|
child:selected {
|
||||||
|
background: alpha(@text, 0.07);
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-box {
|
||||||
|
padding-left: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-text-box {
|
||||||
|
all: unset;
|
||||||
|
padding: 14px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-text {
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-subtext {
|
||||||
|
font-size: 0px;
|
||||||
|
min-height: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-image {
|
||||||
|
margin-right: 14px;
|
||||||
|
-gtk-icon-transform: scale(0.9);
|
||||||
|
}
|
||||||
|
|
||||||
|
.current {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.keybind-hints {
|
||||||
|
background: @background;
|
||||||
|
padding: 10px;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview {
|
||||||
|
}
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = "JetBrains Mono 14";
|
font = "${nix_font} 14";
|
||||||
plugins = [
|
plugins = [
|
||||||
pkgs.rofimoji
|
pkgs.rofimoji
|
||||||
];
|
];
|
||||||
@ -425,8 +593,18 @@ in
|
|||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
general = {
|
||||||
|
ignore_empty_input = true;
|
||||||
|
};
|
||||||
background = {
|
background = {
|
||||||
color = nix_background;
|
# color = nix_background;
|
||||||
|
path = "screenshot";
|
||||||
|
blur_passes = 3;
|
||||||
|
blur_size = 8;
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
input-field = {
|
input-field = {
|
||||||
@ -434,19 +612,22 @@ in
|
|||||||
position = "0, 0";
|
position = "0, 0";
|
||||||
halign = "center";
|
halign = "center";
|
||||||
valign = "center";
|
valign = "center";
|
||||||
fade_on_emtpy = false;
|
fade_on_empty = false;
|
||||||
font_color = nix_text;
|
font_color = nix_text;
|
||||||
outer_color = nix_inactive;
|
outer_color = nix_inactive;
|
||||||
inner_color = nix_background;
|
inner_color = nix_background;
|
||||||
check_color = nix_accent;
|
check_color = nix_accent;
|
||||||
fail_color = nix_alert;
|
fail_color = nix_alert;
|
||||||
font_family = "JetBrains Mono Nerd Font";
|
font_family = nix_font;
|
||||||
|
shadow_passes = 0;
|
||||||
|
|
||||||
placeholder_text = "Enter Password";
|
placeholder_text = "Enter Password ";
|
||||||
fail_text = "<i>$FAIL ($ATTEMPTS)</i>";
|
fail_text = "<i>$FAIL ($ATTEMPTS)</i>";
|
||||||
rounding = 0;
|
rounding = nix_corner;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"fingerprint:enabled" = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -472,10 +653,94 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.configFile."hypr/scripts/media.sh" = {
|
||||||
|
executable = true;
|
||||||
|
text = ''
|
||||||
|
# Define a unique ID to reuse for replacing notifications
|
||||||
|
NOTIF_ID=9999
|
||||||
|
|
||||||
|
PLAYER=$(playerctl -l 2>/dev/null | grep -i 'brave\|chromium\|chrome' | head -n 1)
|
||||||
|
|
||||||
|
if [ -z "$PLAYER" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 0.4s
|
||||||
|
|
||||||
|
# Get play/pause status
|
||||||
|
STATUS=$(playerctl -p "$PLAYER" status 2>/dev/null)
|
||||||
|
|
||||||
|
# Fetch metadata
|
||||||
|
TITLE=$(playerctl -p "$PLAYER" metadata title 2>/dev/null)
|
||||||
|
ARTIST=$(playerctl -p "$PLAYER" metadata artist 2>/dev/null)
|
||||||
|
|
||||||
|
# Format the message based on artist presence
|
||||||
|
if [ -z "$ARTIST" ]; then
|
||||||
|
MSG="$TITLE"
|
||||||
|
else
|
||||||
|
MSG="$TITLE\n$ARTIST"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Send notification using the -r flag to overwrite the old one
|
||||||
|
if [ "$STATUS" = "Paused" ]; then
|
||||||
|
notify-send -r $NOTIF_ID "Paused" "$MSG" -i media-playback-pause -t 5000
|
||||||
|
else
|
||||||
|
notify-send -r $NOTIF_ID "Now Playing" "$MSG" -i media-playback-start -t 5000
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."hypr/scripts/screenshot.sh" = {
|
||||||
|
executable = true;
|
||||||
|
text = ''
|
||||||
|
MODE=$1
|
||||||
|
FILE=$(mktemp /tmp/screenshot-XXXXXX.png)
|
||||||
|
|
||||||
|
grim -g "$(slurp)" "$FILE" || exit 1
|
||||||
|
|
||||||
|
wl-copy < "$FILE"
|
||||||
|
|
||||||
|
ACTION=$(dunstify "Screenshot taken" "Copied to clipboard" \
|
||||||
|
--icon="$FILE" \
|
||||||
|
--action="open,Open in Satty" \
|
||||||
|
--timeout=5000)
|
||||||
|
|
||||||
|
[ "$ACTION" = "2" ] && satty --filename "$FILE"
|
||||||
|
FILE=$(mktemp /tmp/screenshot-XXXXXX.png)
|
||||||
|
|
||||||
|
case "$MODE" in
|
||||||
|
region)
|
||||||
|
grim -g "$(slurp)" "$FILE" || exit 1
|
||||||
|
;;
|
||||||
|
fullscreen)
|
||||||
|
grim "$FILE" || exit 1
|
||||||
|
;;
|
||||||
|
window)
|
||||||
|
GEOMETRY=$(hyprctl clients -j | jq -r '.[] | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | slurp)
|
||||||
|
grim -g "$GEOMETRY" "$FILE" || exit 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
notify-send "Screenshot" "Invalid mode: $MODE" --urgency=critical
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
wl-copy < "$FILE"
|
||||||
|
|
||||||
|
ACTION=$(notify-send "Screenshot taken ($MODE)" \
|
||||||
|
"Copied to clipboard" \
|
||||||
|
--icon="$FILE" \
|
||||||
|
--action="open=Open in Satty" \
|
||||||
|
--wait)
|
||||||
|
|
||||||
|
[ "$ACTION" = "open" ] && satty --filename "$FILE"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = [
|
plugins = [
|
||||||
#pkgs.hyprlandPlugins.hyprbars
|
pkgs.hyprlandPlugins.hyprbars
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
# This is an example Hyprland config file for Nix.
|
# This is an example Hyprland config file for Nix.
|
||||||
@ -492,6 +757,27 @@ in
|
|||||||
# Create your files separately and then link them to this file like this:
|
# Create your files separately and then link them to this file like this:
|
||||||
# source = ~/.config/hypr/myColors.conf
|
# source = ~/.config/hypr/myColors.conf
|
||||||
# todo: make the line above nix-ish
|
# todo: make the line above nix-ish
|
||||||
|
#
|
||||||
|
cursor = {
|
||||||
|
#hide_on_key_press = true; # wish this could be disabled on window basis https://github.com/hyprwm/Hyprland/discussions/12317
|
||||||
|
warp_on_change_workspace = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
plugin = {
|
||||||
|
hyprbars = {
|
||||||
|
bar_height = nix_bar_height;
|
||||||
|
hyprbars-button = [
|
||||||
|
"rgb(ff605C), 16, , hyprctl dispatch killactive"
|
||||||
|
"rgb(00CA4E), 16, , hyprctl dispatch fullscreen 1"
|
||||||
|
"rgb(FFBD44), 16, , hyprctl dispatch togglefloating"
|
||||||
|
];
|
||||||
|
on_double_click = "hyprctl dispatch fullscreen 1";
|
||||||
|
icon_on_hover = true;
|
||||||
|
bar_color = nix_background;
|
||||||
|
"col.text" = nix_text;
|
||||||
|
bar_buttons_alignment = "right";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
################
|
################
|
||||||
### MONITORS ###
|
### MONITORS ###
|
||||||
@ -581,14 +867,14 @@ in
|
|||||||
gaps_in = 10;
|
gaps_in = 10;
|
||||||
gaps_out = 20;
|
gaps_out = 20;
|
||||||
|
|
||||||
border_size = 3;
|
border_size = nix_border_size;
|
||||||
|
|
||||||
# these need to have variables
|
# these need to have variables
|
||||||
"col.active_border" = "0x4385BEFF";
|
"col.active_border" = "0xFF205ea6";
|
||||||
"col.inactive_border" = "0x403E3CFF";
|
"col.inactive_border" = "0xFF403E3C";
|
||||||
|
|
||||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
resize_on_border = false;
|
resize_on_border = true;
|
||||||
|
|
||||||
# Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
|
# Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
|
||||||
allow_tearing = false;
|
allow_tearing = false;
|
||||||
@ -625,36 +911,35 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://wiki.hypr.land/Configuring/Variables/#decoration
|
# https://wiki.hypr.land/Configuring/Basics/Variables/#decoration
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = 0;
|
rounding = nix_corner;
|
||||||
rounding_power = 2;
|
|
||||||
|
|
||||||
# Change transparency of focused and unfocused windows
|
|
||||||
active_opacity = 1.0;
|
|
||||||
inactive_opacity = 1.0;
|
|
||||||
|
|
||||||
shadow = {
|
shadow = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
range = 4;
|
range = 2;
|
||||||
render_power = 3;
|
render_power = 3;
|
||||||
color = "rgba(1a1a1aee)";
|
color = "rgba(1a1a1aee)";
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://wiki.hypr.land/Configuring/Variables/#blur
|
# https://wiki.hypr.land/Configuring/Basics/Variables/#blur
|
||||||
blur = {
|
blur = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
size = 8;
|
size = 2;
|
||||||
passes = 1;
|
passes = 2;
|
||||||
noise = 0.2;
|
special = true;
|
||||||
|
brightness = 0.60;
|
||||||
vibrancy = 0.1696;
|
contrast = 0.75;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
layerrule = [
|
layerrule = [
|
||||||
"blur, notifications"
|
"blur, notifications"
|
||||||
"ignorezero, notifications"
|
"ignorezero, notifications"
|
||||||
|
|
||||||
|
# turn off anim for walker
|
||||||
|
"noanim, walker"
|
||||||
|
|
||||||
]; # add blur to notifications
|
]; # add blur to notifications
|
||||||
|
|
||||||
# https://wiki.hypr.land/Configuring/Variables/#animations
|
# https://wiki.hypr.land/Configuring/Variables/#animations
|
||||||
@ -674,7 +959,7 @@ in
|
|||||||
animation = [
|
animation = [
|
||||||
"global, 1, 10, default"
|
"global, 1, 10, default"
|
||||||
"border, 1, 5.39, easeOutQuint"
|
"border, 1, 5.39, easeOutQuint"
|
||||||
"windows, 1, 4.79, easeOutQuint"
|
"windows, 1, 3.79, easeOutQuint"
|
||||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||||
"fadeIn, 1, 1.73, almostLinear"
|
"fadeIn, 1, 1.73, almostLinear"
|
||||||
@ -685,31 +970,20 @@ in
|
|||||||
"layersOut, 1, 1.5, linear, fade"
|
"layersOut, 1, 1.5, linear, fade"
|
||||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||||
"workspaces, 1, 1.94, almostLinear, fade"
|
"workspaces, 0, 1, default"
|
||||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
"specialWorkspace, 1, 3, easeOutQuint, slidevert"
|
||||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
|
||||||
"zoomFactor, 1, 7, quick"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
|
|
||||||
# "Smart gaps" / "No gaps when only"
|
|
||||||
# uncomment all if you wish to use that.
|
|
||||||
# workspace = [
|
|
||||||
# "w[tv1], gapsout:0, gapsin:0"
|
|
||||||
# "f[1], gapsout:0, gapsin:0"
|
|
||||||
# ];
|
|
||||||
# windowrule = [
|
|
||||||
# "bordersize 0, floating:0, onworkspace:w[tv1]"
|
|
||||||
# "rounding 0, floating:0, onworkspace:w[tv1]"
|
|
||||||
# "bordersize 0, floating:0, onworkspace:f[1]"
|
|
||||||
# "rounding 0, floating:0, onworkspace:f[1]"
|
|
||||||
# ];
|
|
||||||
|
|
||||||
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
|
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
|
||||||
dwindle = {
|
dwindle = {
|
||||||
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
preserve_split = true; # You probably want this
|
preserve_split = true; # You probably want this
|
||||||
|
force_split = 2; # Always split on the right
|
||||||
|
};
|
||||||
|
|
||||||
|
binds = {
|
||||||
|
hide_special_on_workspace_change = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
|
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
|
||||||
@ -722,6 +996,7 @@ in
|
|||||||
force_default_wallpaper = 0; # Set to 0 or 1 to disable the anime mascot wallpapers
|
force_default_wallpaper = 0; # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||||
disable_hyprland_logo = true; # If true disables the random hyprland logo / anime girl background. :(
|
disable_hyprland_logo = true; # If true disables the random hyprland logo / anime girl background. :(
|
||||||
background_color = nix_background;
|
background_color = nix_background;
|
||||||
|
focus_on_activate = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
#############
|
#############
|
||||||
@ -735,11 +1010,15 @@ in
|
|||||||
kb_model = "";
|
kb_model = "";
|
||||||
kb_options = "grp:alt_space_toggle";
|
kb_options = "grp:alt_space_toggle";
|
||||||
kb_rules = "";
|
kb_rules = "";
|
||||||
|
|
||||||
follow_mouse = 1;
|
follow_mouse = 1;
|
||||||
|
|
||||||
|
repeat_rate = 40;
|
||||||
|
repeat_delay = 250;
|
||||||
|
|
||||||
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
accel_profile = "flat";
|
||||||
|
|
||||||
touchpad = {
|
touchpad = {
|
||||||
disable_while_typing = false;
|
disable_while_typing = false;
|
||||||
natural_scroll = false;
|
natural_scroll = false;
|
||||||
@ -773,15 +1052,23 @@ in
|
|||||||
"$mainMod SHIFT, Q, exit,"
|
"$mainMod SHIFT, Q, exit,"
|
||||||
"$mainMod, E, exec, $fileManager"
|
"$mainMod, E, exec, $fileManager"
|
||||||
"$mainMod, V, togglefloating,"
|
"$mainMod, V, togglefloating,"
|
||||||
"$mainMod, F, fullscreen, 1"
|
"$mainMod, F, fullscreen, 3"
|
||||||
|
"$mainMod, M, fullscreen, 1"
|
||||||
"$mainMod, W, exec, $browser"
|
"$mainMod, W, exec, $browser"
|
||||||
"$mainMod, space, exec, $menu"
|
"$mainMod, space, exec, $menu"
|
||||||
#"$mainMod, P, pseudo," # dwindle
|
#"$mainMod, P, pseudo," # dwindle
|
||||||
"$mainMod, T, togglesplit," # dwindle
|
"$mainMod, T, togglesplit," # dwindle
|
||||||
"$mainMod SHIFT, L, exec, hyprlock"
|
"$mainMod SHIFT, L, exec, hyprlock"
|
||||||
"$mainMod SHIFT, F, workspaceopt, allfloat"
|
"$mainMod SHIFT, F, workspaceopt, allfloat"
|
||||||
|
"$mainMod SHIFT, H, exec, for i in {1..10}; do dunstctl history-pop; done; sleep 5 && dunstctl close-all" # show last 10 notifications for 5 seconds
|
||||||
"$mainMod, G, togglegroup,"
|
"$mainMod, G, togglegroup,"
|
||||||
"$mainMod SHIFT, S, exec, grim -g \"$(slurp)\" - | wl-copy"
|
"$mainMod SHIFT, S, exec, ~/.config/hypr/scripts/screenshot.sh region"
|
||||||
|
", PRINT, exec, ~/.config/hypr/scripts/screenshot.sh fullscreen"
|
||||||
|
"$mainMod, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh window"
|
||||||
|
|
||||||
|
# OCR
|
||||||
|
"$mainMod SHIFT, T, exec, bash -c 'grim -g \"$(slurp)\" - | tesseract - stdout | wl-copy'"
|
||||||
|
"$mainMod SHIFT, PRINT, exec, pkill hyprpicker || hyprpicker -a | wl-copy"
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
# Move focus with mainMod + arrow keys
|
||||||
"$mainMod, h, movefocus, l"
|
"$mainMod, h, movefocus, l"
|
||||||
@ -845,10 +1132,10 @@ in
|
|||||||
|
|
||||||
# Requires playerctl
|
# Requires playerctl
|
||||||
bindl = [
|
bindl = [
|
||||||
", XF86AudioNext, exec, playerctl next"
|
", XF86AudioNext, exec, playerctl next& ~/.config/hypr/scripts/media.sh"
|
||||||
", XF86AudioPause, exec, playerctl play-pause"
|
", XF86AudioPause, exec, playerctl play-pause& ~/.config/hypr/scripts/media.sh"
|
||||||
", XF86AudioPlay, exec, playerctl play-pause"
|
", XF86AudioPlay, exec, playerctl play-pause& ~/.config/hypr/scripts/media.sh"
|
||||||
", XF86AudioPrev, exec, playerctl previous"
|
", XF86AudioPrev, exec, playerctl previous& ~/.config/hypr/scripts/media.sh"
|
||||||
];
|
];
|
||||||
|
|
||||||
##############################
|
##############################
|
||||||
@ -867,13 +1154,12 @@ in
|
|||||||
# Fix some dragging issues with XWayland
|
# Fix some dragging issues with XWayland
|
||||||
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
|
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
|
||||||
|
|
||||||
"float, title:^(bluetui)$"
|
# make tuis accessed from waybar float in center
|
||||||
"center, title:^(bluetui)$"
|
"tag +floating-window, title:(bluetui|impala|wiremix)"
|
||||||
"float, title:^(impala)$"
|
"tag +floating-window, title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)"
|
||||||
"center, title:^(impala)$"
|
"float, class:(org.gnome.Calculator)"
|
||||||
"float, title:^(wiremix)$"
|
|
||||||
"center, title:^(wiremix)$"
|
|
||||||
|
|
||||||
|
# send games to specific workspace
|
||||||
"workspace name:games silent, class:$games"
|
"workspace name:games silent, class:$games"
|
||||||
"noanim, class:$games"
|
"noanim, class:$games"
|
||||||
"noblur, class:$games"
|
"noblur, class:$games"
|
||||||
@ -882,6 +1168,42 @@ in
|
|||||||
"rounding 0, class:$games"
|
"rounding 0, class:$games"
|
||||||
"fullscreen, class:$games"
|
"fullscreen, class:$games"
|
||||||
"immediate, class:$games"
|
"immediate, class:$games"
|
||||||
|
|
||||||
|
# pip
|
||||||
|
"tag +pip, title:(Picture.?in.?[Pp]icture)"
|
||||||
|
"tag -default-opacity, tag:pip"
|
||||||
|
"float, tag:pip"
|
||||||
|
"pin, tag:pip"
|
||||||
|
"size 600 338, tag:pip"
|
||||||
|
"keepaspectratio, tag:pip"
|
||||||
|
"bordersize 0, tag:pip"
|
||||||
|
"opacity 1 1, tag:pip"
|
||||||
|
"move (monitor_w-window_w-40) (monitor_h*0.04), tag:pip"
|
||||||
|
|
||||||
|
# steam
|
||||||
|
"float, class:^(steam)$"
|
||||||
|
"center, class:^(steam)$, title:^(Steam)$"
|
||||||
|
"tag -default-opacity, class:^(steam.*)$"
|
||||||
|
"opacity 1 1, class:^(steam.*)$"
|
||||||
|
"size 1100 700, class:^(steam)$, title:^(Steam)$"
|
||||||
|
"size 460 800, class:^(steam)$, title:^(Friends List)$"
|
||||||
|
"idleinhibit fullscreen, class:^(steam)$"
|
||||||
|
|
||||||
|
# bitwarden
|
||||||
|
"noscreenshare, class:^(Bitwarden)$"
|
||||||
|
"tag +floating-window, class:^(Bitwarden)$"
|
||||||
|
|
||||||
|
# Bitwarden Chrome Extension
|
||||||
|
"noscreenshare, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$"
|
||||||
|
"tag +floating-window, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$"
|
||||||
|
|
||||||
|
# floating tag
|
||||||
|
"float, tag:floating-window"
|
||||||
|
"center, tag:floating-window"
|
||||||
|
"size 875 600, tag:floating-window"
|
||||||
|
|
||||||
|
# hyprbar
|
||||||
|
"plugin:hyprbars:nobar, tag:^(?!floating-window$).*$"
|
||||||
];
|
];
|
||||||
|
|
||||||
"$games" =
|
"$games" =
|
||||||
|
|||||||
639
home/podman.nix
639
home/podman.nix
@ -7,28 +7,28 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
systemd.user.services.podman-prune = {
|
systemd.user.services.podman-prune = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Prune unused Podman resources for admin user";
|
Description = "Prune unused Podman resources for admin user";
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${pkgs.podman}/bin/podman system prune -f --all";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
Service = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${pkgs.podman}/bin/podman system prune -f --all";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.timers.podman-prune = {
|
systemd.user.timers.podman-prune = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Weekly Podman prune timer";
|
Description = "Weekly Podman prune timer";
|
||||||
|
};
|
||||||
|
Timer = {
|
||||||
|
OnCalendar = "weekly";
|
||||||
|
Persistent = true;
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "timers.target" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
Timer = {
|
|
||||||
OnCalendar = "weekly";
|
|
||||||
Persistent = true;
|
|
||||||
};
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "timers.target" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.podman.networks = {
|
services.podman.networks = {
|
||||||
internal_net = {
|
internal_net = {
|
||||||
@ -40,28 +40,28 @@ systemd.user.timers.podman-prune = {
|
|||||||
services.podman.autoUpdate.onCalendar = "*-*-* 00:00";
|
services.podman.autoUpdate.onCalendar = "*-*-* 00:00";
|
||||||
services.podman.containers = {
|
services.podman.containers = {
|
||||||
|
|
||||||
# palworld = {
|
# palworld = {
|
||||||
# image = "docker.io/thijsvanloef/palworld-server-docker:latest";
|
# image = "docker.io/thijsvanloef/palworld-server-docker:latest";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/palworld"
|
# "/pool/services/secrets/palworld"
|
||||||
# ];
|
# ];
|
||||||
# volumes = [
|
# volumes = [
|
||||||
# "/pool/services/podman/palworld:/palworld"
|
# "/pool/services/podman/palworld:/palworld"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "8211:8211/udp"
|
# "8211:8211/udp"
|
||||||
# "27015:27015/udp"
|
# "27015:27015/udp"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
actual = {
|
actual = {
|
||||||
image = "docker.io/actualbudget/actual-server:latest";
|
image = "docker.io/actualbudget/actual-server:latest";
|
||||||
@ -81,49 +81,49 @@ systemd.user.timers.podman-prune = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# akaunting = {
|
# akaunting = {
|
||||||
# image = "docker.io/akaunting/akaunting:latest";
|
# image = "docker.io/akaunting/akaunting:latest";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/akaunting"
|
# "/pool/services/secrets/akaunting"
|
||||||
# ];
|
# ];
|
||||||
# volumes = [
|
# volumes = [
|
||||||
# "/pool/services/podman/akaunting/data:/var/www/html/akaunting"
|
# "/pool/services/podman/akaunting/data:/var/www/html/akaunting"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "8003:80"
|
# "8003:80"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
#
|
#
|
||||||
# akaunting-db = {
|
# akaunting-db = {
|
||||||
# image = "docker.io/mariadb:latest";
|
# image = "docker.io/mariadb:latest";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/akaunting"
|
# "/pool/services/secrets/akaunting"
|
||||||
# ];
|
# ];
|
||||||
# volumes = [
|
# volumes = [
|
||||||
# "/pool/services/podman/akaunting/db:/var/lib/mysql"
|
# "/pool/services/podman/akaunting/db:/var/lib/mysql"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "3307:3306"
|
# "3307:3306"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
archivebox = {
|
archivebox = {
|
||||||
image = "docker.io/archivebox/archivebox:latest";
|
image = "docker.io/archivebox/archivebox:latest";
|
||||||
@ -272,12 +272,12 @@ systemd.user.timers.podman-prune = {
|
|||||||
autoUpdate = "registry";
|
autoUpdate = "registry";
|
||||||
network = "internal_net";
|
network = "internal_net";
|
||||||
environment = {
|
environment = {
|
||||||
OIDC_ENABLED="1";
|
OIDC_ENABLED = "1";
|
||||||
OIDC_PROVIDER_METADATA_URL="https://authentik.mektem.com/application/o/fresh-rss/.well-known/openid-configuration";
|
OIDC_PROVIDER_METADATA_URL = "https://authentik.mektem.com/application/o/fresh-rss/.well-known/openid-configuration";
|
||||||
OIDC_CLIENT_ID="PsqRnVLTezIKL7582E8pnKNFIF0W41kVyMhh4RoG";
|
OIDC_CLIENT_ID = "PsqRnVLTezIKL7582E8pnKNFIF0W41kVyMhh4RoG";
|
||||||
OIDC_CLIENT_SECRET="h1XsvbUcRn33rq7qBBS0GUENEgn6zTJQeHpVPhzcqG4ekdwlCghIn1ALhydYXF1pfS8HaskM3KntHXDTC8a7athLxLzT95Gxr8OpvN9iOY75pUXrNnLJXUrY9o4qKM7m";
|
OIDC_CLIENT_SECRET = "h1XsvbUcRn33rq7qBBS0GUENEgn6zTJQeHpVPhzcqG4ekdwlCghIn1ALhydYXF1pfS8HaskM3KntHXDTC8a7athLxLzT95Gxr8OpvN9iOY75pUXrNnLJXUrY9o4qKM7m";
|
||||||
OIDC_X_FORWARDED_HEADERS="X-Forwarded-Port X-Forwarded-Proto X-Forwarded-Host";
|
OIDC_X_FORWARDED_HEADERS = "X-Forwarded-Port X-Forwarded-Proto X-Forwarded-Host";
|
||||||
OIDC_SCOPES="openid email profile";
|
OIDC_SCOPES = "openid email profile";
|
||||||
};
|
};
|
||||||
volumes = [
|
volumes = [
|
||||||
"/pool/services/podman/freshrss:/config"
|
"/pool/services/podman/freshrss:/config"
|
||||||
@ -318,40 +318,39 @@ systemd.user.timers.podman-prune = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# gitea-anubis = {
|
# gitea-anubis = {
|
||||||
# image = "ghcr.io/techarohq/anubis:latest";
|
# image = "ghcr.io/techarohq/anubis:latest";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/anubis-default" #WHY DOES THIS NOT WORK????
|
# "/pool/services/secrets/anubis-default" #WHY DOES THIS NOT WORK????
|
||||||
# "/pool/services/secrets/anubis-nginx"
|
# "/pool/services/secrets/anubis-nginx"
|
||||||
# ];
|
# ];
|
||||||
# environment = {
|
# environment = {
|
||||||
# DIFFICULTY = "4";
|
# DIFFICULTY = "4";
|
||||||
# SERVE_ROBOTS_TXT = "true";
|
# SERVE_ROBOTS_TXT = "true";
|
||||||
# POLICY_FNAME = "/data/cfg/botPolicy.json";
|
# POLICY_FNAME = "/data/cfg/botPolicy.json";
|
||||||
# OG_PASSTHROUGH = "true";
|
# OG_PASSTHROUGH = "true";
|
||||||
# OG_EXPIRY_TIME = "24h";
|
# OG_EXPIRY_TIME = "24h";
|
||||||
# BIND = ":3002";
|
# BIND = ":3002";
|
||||||
# METRICS_BIND = ":9090";
|
# METRICS_BIND = ":9090";
|
||||||
# TARGET = "http://192.168.0.30:3001";
|
# TARGET = "http://192.168.0.30:3001";
|
||||||
# };
|
# };
|
||||||
#
|
#
|
||||||
# volumes = [
|
# volumes = [
|
||||||
# "/pool/services/podman/anubis/botPolicy.json:/data/cfg/botPolicy.json:ro"
|
# "/pool/services/podman/anubis/botPolicy.json:/data/cfg/botPolicy.json:ro"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "3002:3002"
|
# "3002:3002"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
|
||||||
home-assistant = {
|
home-assistant = {
|
||||||
image = "ghcr.io/home-assistant/home-assistant:stable";
|
image = "ghcr.io/home-assistant/home-assistant:stable";
|
||||||
@ -406,11 +405,11 @@ systemd.user.timers.podman-prune = {
|
|||||||
ports = [
|
ports = [
|
||||||
"1313:1313"
|
"1313:1313"
|
||||||
];
|
];
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
Service = {
|
Service = {
|
||||||
TimeoutStartSec = 900;
|
TimeoutStartSec = 900;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
immich-db = {
|
immich-db = {
|
||||||
@ -539,46 +538,46 @@ systemd.user.timers.podman-prune = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# joplin = {
|
# joplin = {
|
||||||
# image = "docker.io/joplin/server:latest";
|
# image = "docker.io/joplin/server:latest";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/joplin"
|
# "/pool/services/secrets/joplin"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "22300:22300"
|
# "22300:22300"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
#
|
#
|
||||||
# joplin-db = {
|
# joplin-db = {
|
||||||
# image = "docker.io/postgres:15";
|
# image = "docker.io/postgres:15";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/joplin"
|
# "/pool/services/secrets/joplin"
|
||||||
# ];
|
# ];
|
||||||
# volumes = [
|
# volumes = [
|
||||||
# "/pool/services/podman/joplin-db:/var/lib/postgresql/data"
|
# "/pool/services/podman/joplin-db:/var/lib/postgresql/data"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "5432:5432"
|
# "5432:5432"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
kiwix = {
|
kiwix = {
|
||||||
image = "ghcr.io/kiwix/kiwix-serve:latest";
|
image = "ghcr.io/kiwix/kiwix-serve:latest";
|
||||||
@ -639,70 +638,69 @@ systemd.user.timers.podman-prune = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# mastodon = {
|
# mastodon = {
|
||||||
# image = "ghcr.io/linuxserver/mastodon:amd64-latest";
|
# image = "ghcr.io/linuxserver/mastodon:amd64-latest";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/mastodon"
|
# "/pool/services/secrets/mastodon"
|
||||||
# ];
|
# ];
|
||||||
# volumes = [
|
# volumes = [
|
||||||
# "/pool/services/podman/mastodon/config:/config"
|
# "/pool/services/podman/mastodon/config:/config"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "808:80"
|
# "808:80"
|
||||||
# "8449:443"
|
# "8449:443"
|
||||||
# "3009:3000"
|
# "3009:3000"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
#
|
#
|
||||||
# mastodon-db = {
|
# mastodon-db = {
|
||||||
# image = "docker.io/postgres:16-alpine";
|
# image = "docker.io/postgres:16-alpine";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/mastodon-db"
|
# "/pool/services/secrets/mastodon-db"
|
||||||
# ];
|
# ];
|
||||||
# volumes = [
|
# volumes = [
|
||||||
# "/pool/services/podman/mastodon/db:/var/lib/postgresql/data"
|
# "/pool/services/podman/mastodon/db:/var/lib/postgresql/data"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "5435:5432"
|
# "5435:5432"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
#
|
#
|
||||||
# mastodon-redis = {
|
# mastodon-redis = {
|
||||||
# image = "registry.hub.docker.com/library/redis:6.2-alpine";
|
# image = "registry.hub.docker.com/library/redis:6.2-alpine";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "6382:6379"
|
# "6382:6379"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
|
||||||
metube = {
|
metube = {
|
||||||
image = "ghcr.io/alexta69/metube:latest";
|
image = "ghcr.io/alexta69/metube:latest";
|
||||||
@ -1036,27 +1034,27 @@ systemd.user.timers.podman-prune = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# rlcraft = {
|
# rlcraft = {
|
||||||
# image = "docker.io/itzg/minecraft-server:java8";
|
# image = "docker.io/itzg/minecraft-server:java8";
|
||||||
# autoStart = true;
|
# autoStart = true;
|
||||||
# autoUpdate = "registry";
|
# autoUpdate = "registry";
|
||||||
# network = "internal_net";
|
# network = "internal_net";
|
||||||
# environmentFile = [
|
# environmentFile = [
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/rlcraft"
|
# "/pool/services/secrets/rlcraft"
|
||||||
# ];
|
# ];
|
||||||
# volumes = [
|
# volumes = [
|
||||||
# "/pool/services/podman/minecraft/rlcraft/data:/data"
|
# "/pool/services/podman/minecraft/rlcraft/data:/data"
|
||||||
# ];
|
# ];
|
||||||
# ports = [
|
# ports = [
|
||||||
# "25565:25565"
|
# "25565:25565"
|
||||||
# ];
|
# ];
|
||||||
# extraConfig = {
|
# extraConfig = {
|
||||||
# Service = {
|
# Service = {
|
||||||
# TimeoutStartSec = 900;
|
# TimeoutStartSec = 900;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
rutorrent = {
|
rutorrent = {
|
||||||
image = "docker.io/crazymax/rtorrent-rutorrent:latest";
|
image = "docker.io/crazymax/rtorrent-rutorrent:latest";
|
||||||
@ -1119,52 +1117,50 @@ systemd.user.timers.podman-prune = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# tandoor = {
|
||||||
# tandoor = {
|
# image = "docker.io/vabene1111/recipes";
|
||||||
# image = "docker.io/vabene1111/recipes";
|
# autoStart = true;
|
||||||
# autoStart = true;
|
# autoUpdate = "registry";
|
||||||
# autoUpdate = "registry";
|
# network = "internal_net";
|
||||||
# network = "internal_net";
|
# environmentFile = [
|
||||||
# environmentFile = [
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/tandoor"
|
||||||
# "/pool/services/secrets/tandoor"
|
# ];
|
||||||
# ];
|
# volumes = [
|
||||||
# volumes = [
|
# "/pool/services/podman/tandoor/staticfiles:/opt/recipes/staticfiles"
|
||||||
# "/pool/services/podman/tandoor/staticfiles:/opt/recipes/staticfiles"
|
# "/pool/services/podman/tandoor/mediafiles:/opt/recipes/mediafiles"
|
||||||
# "/pool/services/podman/tandoor/mediafiles:/opt/recipes/mediafiles"
|
# ];
|
||||||
# ];
|
# ports = [
|
||||||
# ports = [
|
# "9092:80"
|
||||||
# "9092:80"
|
# ];
|
||||||
# ];
|
# extraConfig = {
|
||||||
# extraConfig = {
|
# Service = {
|
||||||
# Service = {
|
# TimeoutStartSec = 900;
|
||||||
# TimeoutStartSec = 900;
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
#
|
||||||
#
|
# tandoor-db = {
|
||||||
# tandoor-db = {
|
# image = "docker.io/postgres:16-alpine";
|
||||||
# image = "docker.io/postgres:16-alpine";
|
# autoStart = true;
|
||||||
# autoStart = true;
|
# autoUpdate = "registry";
|
||||||
# autoUpdate = "registry";
|
# network = "internal_net";
|
||||||
# network = "internal_net";
|
# environmentFile = [
|
||||||
# environmentFile = [
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/default"
|
# "/pool/services/secrets/tandoor"
|
||||||
# "/pool/services/secrets/tandoor"
|
# ];
|
||||||
# ];
|
# volumes = [
|
||||||
# volumes = [
|
# "/pool/services/podman/tandoor/db:/var/lib/postgresql/data"
|
||||||
# "/pool/services/podman/tandoor/db:/var/lib/postgresql/data"
|
# ];
|
||||||
# ];
|
# ports = [
|
||||||
# ports = [
|
# "5434:5432"
|
||||||
# "5434:5432"
|
# ];
|
||||||
# ];
|
# extraConfig = {
|
||||||
# extraConfig = {
|
# Service = {
|
||||||
# Service = {
|
# TimeoutStartSec = 900;
|
||||||
# TimeoutStartSec = 900;
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
|
||||||
|
|
||||||
|
|
||||||
thelounge = {
|
thelounge = {
|
||||||
image = "lscr.io/linuxserver/thelounge:latest";
|
image = "lscr.io/linuxserver/thelounge:latest";
|
||||||
@ -1319,28 +1315,27 @@ systemd.user.timers.podman-prune = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# zigbee2mqtt = {
|
||||||
# zigbee2mqtt = {
|
# image = "docker.io/koenkk/zigbee2mqtt";
|
||||||
# image = "docker.io/koenkk/zigbee2mqtt";
|
# autoStart = true;
|
||||||
# autoStart = true;
|
# autoUpdate = "registry";
|
||||||
# autoUpdate = "registry";
|
# network = "internal_net";
|
||||||
# network = "internal_net";
|
# devices = [ "/dev/ttyACM0:/dev/ttyACM0" ];
|
||||||
# devices = [ "/dev/ttyACM0:/dev/ttyACM0" ];
|
# environmentFile = [
|
||||||
# environmentFile = [
|
# "/pool/services/secrets/default"
|
||||||
# "/pool/services/secrets/default"
|
# ];
|
||||||
# ];
|
# volumes = [
|
||||||
# volumes = [
|
# "/pool/services/podman/zigbee2mqtt:/app/data"
|
||||||
# "/pool/services/podman/zigbee2mqtt:/app/data"
|
# ];
|
||||||
# ];
|
# ports = [
|
||||||
# ports = [
|
# "8808:8080"
|
||||||
# "8808:8080"
|
# ];
|
||||||
# ];
|
# extraConfig = {
|
||||||
# extraConfig = {
|
# Service = {
|
||||||
# Service = {
|
# TimeoutStartSec = 900;
|
||||||
# TimeoutStartSec = 900;
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,39 +1,57 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "nvidia-uvm" ];
|
boot.initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"nvme"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
"nvidia-uvm"
|
||||||
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/bd28421d-7ec4-4b23-964d-c07a6f351e1f";
|
device = "/dev/disk/by-uuid/bd28421d-7ec4-4b23-964d-c07a6f351e1f";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.initrd.luks.devices."luks-e3a81f8e-3ae9-494b-a329-a6f860b10e34".device = "/dev/disk/by-uuid/e3a81f8e-3ae9-494b-a329-a6f860b10e34";
|
boot.initrd.luks.devices."luks-e3a81f8e-3ae9-494b-a329-a6f860b10e34".device =
|
||||||
|
"/dev/disk/by-uuid/e3a81f8e-3ae9-494b-a329-a6f860b10e34";
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/D47C-5FCE";
|
device = "/dev/disk/by-uuid/D47C-5FCE";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
options = [
|
||||||
};
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
swapDevices =
|
|
||||||
[ { device = "/dev/disk/by-uuid/be22d9db-283a-4dd9-93d5-1006e392724b"; }
|
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
fileSystems."/run/media/admin/08cabc7a-9a6e-4c21-8a07-6663af77b705" =
|
swapDevices = [
|
||||||
{ device = "/dev/disk/by-uuid/08cabc7a-9a6e-4c21-8a07-6663af77b705";
|
{ device = "/dev/disk/by-uuid/be22d9db-283a-4dd9-93d5-1006e392724b"; }
|
||||||
fsType = "ext4";
|
];
|
||||||
};
|
|
||||||
|
fileSystems."/run/media/admin/08cabc7a-9a6e-4c21-8a07-6663af77b705" = {
|
||||||
|
device = "/dev/disk/by-uuid/08cabc7a-9a6e-4c21-8a07-6663af77b705";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|||||||
@ -1,4 +1,9 @@
|
|||||||
{ config, pkgs, inputs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -6,15 +11,16 @@
|
|||||||
boot.loader.systemd-boot.configurationLimit = 10;
|
boot.loader.systemd-boot.configurationLimit = 10;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
wireplumber.enable = true;
|
wireplumber.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd.luks.devices."luks-cbf20b12-90f7-4fbb-95d3-1320eece4d89".device = "/dev/disk/by-uuid/cbf20b12-90f7-4fbb-95d3-1320eece4d89";
|
initrd.luks.devices."luks-cbf20b12-90f7-4fbb-95d3-1320eece4d89".device =
|
||||||
|
"/dev/disk/by-uuid/cbf20b12-90f7-4fbb-95d3-1320eece4d89";
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
"nvidia_drm.modeset=1"
|
"nvidia_drm.modeset=1"
|
||||||
"nvidia_drm.fbdev=1"
|
"nvidia_drm.fbdev=1"
|
||||||
@ -35,7 +41,10 @@ services.pipewire = {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
defaultGateway = "192.168.30.1";
|
defaultGateway = "192.168.30.1";
|
||||||
nameservers = [ "192.168.0.1" "1.1.1.1" ];
|
nameservers = [
|
||||||
|
"192.168.0.1"
|
||||||
|
"1.1.1.1"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
@ -44,7 +53,7 @@ services.pipewire = {
|
|||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
powerManagement.enable = false;
|
powerManagement.enable = true;
|
||||||
powerManagement.finegrained = false;
|
powerManagement.finegrained = false;
|
||||||
open = false;
|
open = false;
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
@ -53,11 +62,11 @@ services.pipewire = {
|
|||||||
hardware.opengl.enable = true;
|
hardware.opengl.enable = true;
|
||||||
|
|
||||||
# this fixes the sleep/wake issue
|
# this fixes the sleep/wake issue
|
||||||
systemd.services."systemd-suspend" = {
|
systemd.services."systemd-suspend" = {
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Environment = ''"SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false"'';
|
Environment = ''"SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false"'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# fixes hardware accel on nvidia open
|
# fixes hardware accel on nvidia open
|
||||||
hardware.graphics.extraPackages = [
|
hardware.graphics.extraPackages = [
|
||||||
|
|||||||
@ -2,9 +2,8 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||||
system.stateVersion = 6;
|
system.stateVersion = 6;
|
||||||
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
audacity
|
audacity
|
||||||
@ -35,7 +34,7 @@ system.stateVersion = 6;
|
|||||||
ryubing
|
ryubing
|
||||||
xemu
|
xemu
|
||||||
|
|
||||||
#backup
|
#backup
|
||||||
keepassxc
|
keepassxc
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -106,12 +105,12 @@ system.stateVersion = 6;
|
|||||||
services.yabai = {
|
services.yabai = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
layout = "float";
|
layout = "float";
|
||||||
top_padding = "15";
|
top_padding = "15";
|
||||||
bottom_padding = "15";
|
bottom_padding = "15";
|
||||||
left_padding = "15";
|
left_padding = "15";
|
||||||
right_padding = "15";
|
right_padding = "15";
|
||||||
window_gap = "15";
|
window_gap = "15";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -14,9 +14,12 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
defaultGateway = "192.168.0.1";
|
defaultGateway = "192.168.0.1";
|
||||||
nameservers = [ "192.168.0.1" "1.1.1.1" ];
|
nameservers = [
|
||||||
|
"192.168.0.1"
|
||||||
|
"1.1.1.1"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.admin.linger = true;
|
users.users.admin.linger = true;
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,32 +1,48 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "mpt3sas" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
boot.initrd.availableKernelModules = [
|
||||||
|
"mpt3sas"
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usb_storage"
|
||||||
|
"usbhid"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/b9cc7972-36ae-4cb4-a6f4-e342eaca679e";
|
device = "/dev/disk/by-uuid/b9cc7972-36ae-4cb4-a6f4-e342eaca679e";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/542D-865C";
|
device = "/dev/disk/by-uuid/542D-865C";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
options = [
|
||||||
};
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
swapDevices =
|
|
||||||
[ { device = "/dev/disk/by-uuid/1032bbd9-0124-419f-a696-a977755aaf17"; }
|
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/1032bbd9-0124-419f-a696-a977755aaf17"; }
|
||||||
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|||||||
@ -7,26 +7,26 @@
|
|||||||
#boot.loader.limine.biosDevice = "/dev/vda";
|
#boot.loader.limine.biosDevice = "/dev/vda";
|
||||||
#boot.loader.efi.efiSysMountPoint = "/boot";
|
#boot.loader.efi.efiSysMountPoint = "/boot";
|
||||||
|
|
||||||
systemd.services.podman-network-vlan50 = {
|
systemd.services.podman-network-vlan50 = {
|
||||||
description = "Create podman vlan50 network";
|
description = "Create podman vlan50 network";
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
before = [ "podman-nginx.service" ];
|
before = [ "podman-nginx.service" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
RemainAfterExit = true;
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
script = ''
|
||||||
|
if ! ${pkgs.podman}/bin/podman network exists vlan50; then
|
||||||
|
${pkgs.podman}/bin/podman network create \
|
||||||
|
--driver macvlan \
|
||||||
|
--opt parent=vlan50 \
|
||||||
|
--subnet 192.168.50.0/24 \
|
||||||
|
--gateway 192.168.50.1 \
|
||||||
|
vlan50
|
||||||
|
fi
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
script = ''
|
|
||||||
if ! ${pkgs.podman}/bin/podman network exists vlan50; then
|
|
||||||
${pkgs.podman}/bin/podman network create \
|
|
||||||
--driver macvlan \
|
|
||||||
--opt parent=vlan50 \
|
|
||||||
--subnet 192.168.50.0/24 \
|
|
||||||
--gateway 192.168.50.1 \
|
|
||||||
vlan50
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
vlans = {
|
vlans = {
|
||||||
@ -55,7 +55,10 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
defaultGateway = "192.168.0.1";
|
defaultGateway = "192.168.0.1";
|
||||||
nameservers = [ "192.168.0.1" "1.1.1.1" ];
|
nameservers = [
|
||||||
|
"192.168.0.1"
|
||||||
|
"1.1.1.1"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
users.users.admin.linger = true;
|
users.users.admin.linger = true;
|
||||||
|
|
||||||
@ -76,11 +79,11 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
|
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true; # only needed if you run 32-bit apps
|
enable32Bit = true; # only needed if you run 32-bit apps
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
mesa.drivers
|
mesa.drivers
|
||||||
libva
|
libva
|
||||||
libva-utils # provides vainfo
|
libva-utils # provides vainfo
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -148,13 +151,13 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
# };
|
# };
|
||||||
|
|
||||||
# give permissions for zigbee USB transceiver
|
# give permissions for zigbee USB transceiver
|
||||||
system.activationScripts.script.text = ''chmod o+rw /dev/ttyACM0'';
|
system.activationScripts.script.text = "chmod o+rw /dev/ttyACM0";
|
||||||
|
|
||||||
boot.supportedFilesystems = [ "zfs" ];
|
boot.supportedFilesystems = [ "zfs" ];
|
||||||
boot.zfs.forceImportRoot = false;
|
boot.zfs.forceImportRoot = false;
|
||||||
boot.zfs.extraPools = [ "pool" ];
|
boot.zfs.extraPools = [ "pool" ];
|
||||||
#environment.etc."zfs/keys/pool.key".source = config.age.secrets."zfs/pool.key".path;
|
#environment.etc."zfs/keys/pool.key".source = config.age.secrets."zfs/pool.key".path;
|
||||||
|
|
||||||
services.zfs.autoScrub = {
|
services.zfs.autoScrub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
@ -167,9 +170,9 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
|
|
||||||
services.zfs.zed = {
|
services.zfs.zed = {
|
||||||
settings = {
|
settings = {
|
||||||
ZED_NTFY_URL="https://ntfy.mektem.com";
|
ZED_NTFY_URL = "https://ntfy.mektem.com";
|
||||||
ZED_NTFY_TOPIC="zfs";
|
ZED_NTFY_TOPIC = "zfs";
|
||||||
ZED_NTFY_ACCESS_TOKEN="tk_gtjia7itxhg1qik7j58wkgey2parr";
|
ZED_NTFY_ACCESS_TOKEN = "tk_gtjia7itxhg1qik7j58wkgey2parr";
|
||||||
ZED_NOTIFY_INTERVAL_SECS = 1;
|
ZED_NOTIFY_INTERVAL_SECS = 1;
|
||||||
ZED_NOTIFY_VERBOSE = true; # Set to false to only get alerts on degradation
|
ZED_NOTIFY_VERBOSE = true; # Set to false to only get alerts on degradation
|
||||||
};
|
};
|
||||||
@ -180,16 +183,16 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
settings = {
|
settings = {
|
||||||
global = {
|
global = {
|
||||||
"server min protocol" = "SMB2_10";
|
"server min protocol" = "SMB2_10";
|
||||||
"workgroup" = "WORKGROUP";
|
"workgroup" = "WORKGROUP";
|
||||||
"server string" = "smbnix";
|
"server string" = "smbnix";
|
||||||
"netbios name" = "smbnix";
|
"netbios name" = "smbnix";
|
||||||
"security" = "user";
|
"security" = "user";
|
||||||
"hosts allow" = "192.168.0. 192.168.30. 192.168.40.10 127.0.0.1 localhost";
|
"hosts allow" = "192.168.0. 192.168.30. 192.168.40.10 127.0.0.1 localhost";
|
||||||
"hosts deny" = "0.0.0.0/0";
|
"hosts deny" = "0.0.0.0/0";
|
||||||
"guest account" = "nobody";
|
"guest account" = "nobody";
|
||||||
"map to guest" = "never";
|
"map to guest" = "never";
|
||||||
};
|
};
|
||||||
"data" = {
|
"data" = {
|
||||||
"path" = "/pool/data";
|
"path" = "/pool/data";
|
||||||
"browseable" = "yes";
|
"browseable" = "yes";
|
||||||
|
|||||||
1
nixos-apple-silicon
Submodule
1
nixos-apple-silicon
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit f2506ef24a154e2bcc8fb10f2c73579324f9ead0
|
||||||
Loading…
x
Reference in New Issue
Block a user