WIP
This commit is contained in:
parent
a8f6bf2ce2
commit
07ae12fc30
@ -56,28 +56,32 @@
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
zsh
|
||||
htop
|
||||
fastfetch
|
||||
restic
|
||||
nixfmt
|
||||
rsync
|
||||
pciutils # lspci
|
||||
usbutils # lsusb
|
||||
nmap
|
||||
tree
|
||||
p7zip
|
||||
unar
|
||||
inetutils # telnet
|
||||
wget
|
||||
bitwarden-cli
|
||||
btop
|
||||
dnsutils
|
||||
fastfetch
|
||||
htop
|
||||
iftop
|
||||
inetutils # telnet
|
||||
lazygit
|
||||
nixfmt
|
||||
nmap
|
||||
p7zip
|
||||
pciutils # lspci
|
||||
restic
|
||||
rsync
|
||||
tree
|
||||
unar
|
||||
usbutils # lsusb
|
||||
wget
|
||||
zsh
|
||||
|
||||
# media
|
||||
yt-dlp
|
||||
exiftool
|
||||
mediainfo
|
||||
ffmpeg-full
|
||||
kiwix-tools
|
||||
|
||||
# barcodes
|
||||
qrencode
|
||||
@ -90,7 +94,6 @@
|
||||
man-pages-posix
|
||||
];
|
||||
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
@ -100,7 +103,8 @@
|
||||
font-awesome_5
|
||||
];
|
||||
|
||||
|
||||
# Power management
|
||||
services.power-profiles-daemon.enable = true;
|
||||
|
||||
environment.shellAliases = {
|
||||
"server" = "ssh admin@192.168.0.30";
|
||||
@ -112,5 +116,8 @@
|
||||
"lsa" = "ls -al";
|
||||
};
|
||||
|
||||
environment.pathsToLink = [ "/share/applications" "/share/xdg-desktop-portal" ];
|
||||
environment.pathsToLink = [
|
||||
"/share/applications"
|
||||
"/share/xdg-desktop-portal"
|
||||
];
|
||||
}
|
||||
|
||||
@ -25,7 +25,11 @@
|
||||
openFirewall = 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.
|
||||
# services.displayManager.autoLogin.enable = true;
|
||||
@ -52,8 +56,7 @@
|
||||
|
||||
};
|
||||
|
||||
|
||||
programs.chromium = {
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
homepageLocation = "https://dashboard.mektem.com";
|
||||
extraOpts = {
|
||||
@ -62,9 +65,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
hardware.keyboard.qmk.enable = true;
|
||||
|
||||
boot = {
|
||||
@ -78,13 +78,11 @@
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
"udev.log_level=3"
|
||||
"systemd.show_status=auto"
|
||||
"systemd.show_status=auto"
|
||||
"rd.udev.log_level=3"
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
|
||||
#services.udev.packages = [ pkgs.via ];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
@ -100,74 +98,66 @@
|
||||
services.mullvad-vpn.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
audacity
|
||||
brave
|
||||
blender
|
||||
orca-slicer
|
||||
firefox
|
||||
gimp
|
||||
inkscape
|
||||
bitwarden-desktop
|
||||
bitwarden-cli
|
||||
kiwix
|
||||
libreoffice
|
||||
obs-studio
|
||||
obsidian
|
||||
#blender
|
||||
#audacity
|
||||
#orca-slicer
|
||||
#gimp
|
||||
#inkscape
|
||||
#unstable.protonmail-desktop
|
||||
#bitwarden-desktop
|
||||
#libreoffice
|
||||
#freecad
|
||||
#kiwix
|
||||
#obs-studio
|
||||
#obsidian
|
||||
unstable.proton-authenticator
|
||||
unstable.protonmail-desktop
|
||||
unstable.proton-vpn
|
||||
prismlauncher
|
||||
unstable.signal-desktop
|
||||
freecad
|
||||
#prismlauncher
|
||||
#unstable.signal-desktop
|
||||
tor-browser
|
||||
wireshark
|
||||
monero-gui
|
||||
moonlight-qt
|
||||
#wireshark
|
||||
#monero-gui
|
||||
#moonlight-qt
|
||||
nvtopPackages.nvidia
|
||||
dconf-editor
|
||||
via
|
||||
kdePackages.kdenlive
|
||||
easyeffects
|
||||
element-desktop
|
||||
chirp
|
||||
#kdePackages.kdenlive
|
||||
#element-desktop
|
||||
#chirp
|
||||
scrcpy
|
||||
veracrypt
|
||||
lmms
|
||||
#lmms
|
||||
restic-browser
|
||||
|
||||
# games
|
||||
webcord
|
||||
heroic
|
||||
lutris
|
||||
cataclysm-dda
|
||||
runelite
|
||||
zeroad
|
||||
unciv
|
||||
endless-sky
|
||||
wesnoth
|
||||
mindustry
|
||||
openrct2
|
||||
openttd
|
||||
xonotic
|
||||
osu-lazer-bin
|
||||
ufoai
|
||||
ludusavi # steam backup
|
||||
#cataclysm-dda
|
||||
#endless-sky
|
||||
#mindustry
|
||||
#openrct2
|
||||
#openttd
|
||||
#osu-lazer-bin
|
||||
#runelite
|
||||
#unciv
|
||||
#webcord
|
||||
#wesnoth
|
||||
#xonotic
|
||||
#zeroad #0ad
|
||||
|
||||
# game utils
|
||||
mangohud
|
||||
umu-launcher
|
||||
|
||||
# emu
|
||||
ryubing
|
||||
xemu
|
||||
#ryubing
|
||||
#xemu
|
||||
xenia-canary
|
||||
#retroarch-full
|
||||
rpcs3
|
||||
dolphin-emu
|
||||
cemu
|
||||
#rpcs3
|
||||
#dolphin-emu
|
||||
#cemu
|
||||
|
||||
# backup
|
||||
keepassxc
|
||||
#keepassxc
|
||||
];
|
||||
|
||||
fonts.fontconfig = {
|
||||
@ -187,9 +177,14 @@
|
||||
};
|
||||
};
|
||||
|
||||
services.hardware.openrgb.enable = true;
|
||||
services.hardware.openrgb.package = pkgs.openrgb-with-all-plugins;
|
||||
|
||||
programs = {
|
||||
adb.enable = true;
|
||||
|
||||
|
||||
|
||||
localsend = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
@ -218,38 +213,100 @@
|
||||
fileSystems."/mnt/media" = {
|
||||
device = "//192.168.0.30/media";
|
||||
fsType = "cifs";
|
||||
options = let
|
||||
# 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";
|
||||
options =
|
||||
let
|
||||
# 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" = {
|
||||
device = "//192.168.0.30/services";
|
||||
fsType = "cifs";
|
||||
options = let
|
||||
# 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";
|
||||
options =
|
||||
let
|
||||
# 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" = {
|
||||
device = "//192.168.0.30/data";
|
||||
fsType = "cifs";
|
||||
options = let
|
||||
# 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";
|
||||
options =
|
||||
let
|
||||
# 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;
|
||||
users.groups.libvirtd.members = ["admin"];
|
||||
users.groups.libvirtd.members = [ "admin" ];
|
||||
virtualisation.libvirtd = {
|
||||
enable = true;
|
||||
qemu.swtpm.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"
|
||||
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
130
config/gnome.nix
130
config/gnome.nix
@ -13,7 +13,7 @@
|
||||
environment.gnome.excludePackages = with pkgs; [
|
||||
epiphany # web browser
|
||||
geary # email
|
||||
decibels #audio player
|
||||
decibels # audio player
|
||||
gnome-calendar
|
||||
gnome-music
|
||||
gnome-software
|
||||
@ -23,68 +23,70 @@
|
||||
yelp # help
|
||||
];
|
||||
|
||||
programs.dconf = {
|
||||
enable = true;
|
||||
profiles.user.databases = [{
|
||||
lockAll = true; # prevents overriding
|
||||
settings = {
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"org.gnome.Nautilus.desktop"
|
||||
"brave-browser.desktop"
|
||||
"proton-mail.desktop"
|
||||
"obsidian.desktop"
|
||||
"signal.desktop"
|
||||
"element-desktop.desktop"
|
||||
"steam.desktop"
|
||||
"bitwarden.desktop"
|
||||
"org.gnome.Settings.desktop"
|
||||
"org.gnome.Console.desktop"
|
||||
];
|
||||
enabled-extensions = [
|
||||
pkgs.gnomeExtensions.appindicator.extensionUuid
|
||||
pkgs.gnomeExtensions.blur-my-shell.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')]
|
||||
programs.dconf = {
|
||||
enable = true;
|
||||
profiles.user.databases = [
|
||||
{
|
||||
lockAll = true; # prevents overriding
|
||||
settings = {
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"org.gnome.Nautilus.desktop"
|
||||
"brave-browser.desktop"
|
||||
"proton-mail.desktop"
|
||||
"obsidian.desktop"
|
||||
"signal.desktop"
|
||||
"element-desktop.desktop"
|
||||
"steam.desktop"
|
||||
"bitwarden.desktop"
|
||||
"org.gnome.Settings.desktop"
|
||||
"org.gnome.Console.desktop"
|
||||
];
|
||||
enabled-extensions = [
|
||||
pkgs.gnomeExtensions.appindicator.extensionUuid
|
||||
pkgs.gnomeExtensions.blur-my-shell.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')]
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
@ -1,9 +1,9 @@
|
||||
{ pkgs, ...}:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
security.pam.services.hyprlock = {};
|
||||
security.pam.services.hyprlock = { };
|
||||
|
||||
#wifi
|
||||
networking.wireless.iwd.enable = true;
|
||||
@ -13,23 +13,24 @@
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
glib # gsettings
|
||||
gsettings-desktop-schemas # gsettings
|
||||
gsettings-desktop-schemas # gsettings
|
||||
dconf # gsettings
|
||||
impala # wifi
|
||||
grim # screenshots
|
||||
slurp # screenshot selection
|
||||
wl-clipboard # copy to clipboard
|
||||
libnotify # enables "notify-send"
|
||||
nautilus
|
||||
bluetui # bluetooth
|
||||
wiremix # mixer
|
||||
btop
|
||||
tesseract #ocr
|
||||
|
||||
tesseract # ocr
|
||||
hyprpicker
|
||||
satty # image annotation
|
||||
|
||||
# gnome stuff
|
||||
gnome-calculator
|
||||
nautilus
|
||||
gnome-font-viewer
|
||||
|
||||
gnome-calendar
|
||||
];
|
||||
|
||||
services.udisks2.enable = true; # udiskie automount USB
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Enable sound with pipewire.
|
||||
@ -19,7 +19,7 @@
|
||||
"adbusers" # adb
|
||||
"kvm" # virt
|
||||
"networkmanager"
|
||||
"lp" #printing
|
||||
"lp" # printing
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
16
flake.lock
generated
16
flake.lock
generated
@ -100,6 +100,21 @@
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1776983936,
|
||||
@ -170,6 +185,7 @@
|
||||
"home-manager-unstable": "home-manager-unstable",
|
||||
"lazyvim": "lazyvim",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
|
||||
33
flake.nix
33
flake.nix
@ -12,16 +12,27 @@
|
||||
nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-25.11";
|
||||
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||
lazyvim.url = "github:pfassina/lazyvim-nix";
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||
};
|
||||
|
||||
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 {
|
||||
specialArgs = {
|
||||
inherit self inputs;
|
||||
hostname = "nixos-desktop";
|
||||
};
|
||||
inherit self inputs;
|
||||
inherit nix-flatpak;
|
||||
hostname = "nixos-desktop";
|
||||
};
|
||||
#inherit system;
|
||||
modules = [
|
||||
./config/common.nix
|
||||
@ -34,11 +45,11 @@
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit lazyvim;
|
||||
inherit inputs;
|
||||
hostname = "nixos-desktop";
|
||||
};
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit lazyvim;
|
||||
inherit inputs;
|
||||
hostname = "nixos-desktop";
|
||||
};
|
||||
home-manager.users.admin = {
|
||||
imports = [
|
||||
./home/common.nix
|
||||
@ -51,7 +62,7 @@
|
||||
};
|
||||
|
||||
nixosConfigurations.nixos-server = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs;};
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./config/common.nix
|
||||
./config/linux.nix
|
||||
@ -90,7 +101,7 @@
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@ -1,4 +1,9 @@
|
||||
{ config, pkgs, lazyvim, ...}:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lazyvim,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
home.sessionVariables = {
|
||||
@ -7,7 +12,6 @@
|
||||
BROWSER = "brave";
|
||||
};
|
||||
|
||||
|
||||
imports = [ lazyvim.homeManagerModules.default ];
|
||||
|
||||
programs = {
|
||||
@ -31,10 +35,16 @@
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
|
||||
lazyvim.enable = true;
|
||||
|
||||
lazyvim = {
|
||||
enable = true;
|
||||
plugins = {
|
||||
colorscheme = ''
|
||||
return {
|
||||
"kepano/flexoki-neovim"
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
# neovim = {
|
||||
# enable = true;
|
||||
# viAlias = true;
|
||||
@ -111,6 +121,33 @@
|
||||
enable = true;
|
||||
dotDir = "${config.xdg.configHome}/zsh";
|
||||
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 = {
|
||||
enable = true;
|
||||
plugins = [ "git" ];
|
||||
|
||||
@ -13,6 +13,8 @@
|
||||
'';
|
||||
};
|
||||
|
||||
services.easyeffects.enable = true;
|
||||
|
||||
# Don't touch
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
||||
@ -2,10 +2,14 @@
|
||||
let
|
||||
nix_background = "rgb(16, 15, 15)";
|
||||
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_alert = "rgb(209, 77, 65)"; # red
|
||||
nix_recording = "rgb(218, 112, 44)"; # orange
|
||||
nix_alert = "rgb(175, 48, 41)"; # red
|
||||
nix_recording = "rgb(188, 82, 21)"; # orange
|
||||
nix_font = "JetBrainsMono Nerd Font";
|
||||
nix_border_size = 3;
|
||||
nix_corner = 10;
|
||||
nix_bar_height = 30;
|
||||
in
|
||||
{
|
||||
home.pointerCursor = {
|
||||
@ -22,21 +26,56 @@ in
|
||||
|
||||
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 = {
|
||||
enable = true;
|
||||
theme = "flexoki";
|
||||
settings = {
|
||||
font = {
|
||||
normal = {
|
||||
family = "JetBrainsMono Nerd Font";
|
||||
family = nix_font;
|
||||
style = "Regular";
|
||||
};
|
||||
bold = {
|
||||
family = "JetBrainsMono Nerd Font";
|
||||
family = nix_font;
|
||||
style = "Bold";
|
||||
};
|
||||
italic = {
|
||||
family = "JetBrainsMono Nerd Font";
|
||||
family = nix_font;
|
||||
style = "Italic";
|
||||
};
|
||||
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 = {
|
||||
enable = true;
|
||||
settings = {
|
||||
@ -78,19 +107,21 @@ in
|
||||
enable = true;
|
||||
settings = {
|
||||
global = {
|
||||
|
||||
width = "(300, 300)";
|
||||
height = "(75, 75)";
|
||||
font = "JetBrains Mono Nerd Font 14";
|
||||
font = "${nix_font} 10";
|
||||
offset = "(40, 40)";
|
||||
frame-color = nix_inactive;
|
||||
background = nix_background;
|
||||
foreground = nix_text;
|
||||
frame_color = "#205ea6";
|
||||
background = "#100f0f1A";
|
||||
foreground = "#cecdc3";
|
||||
timeout = 5;
|
||||
gaps = true;
|
||||
gap_size = 15;
|
||||
corner_radius = nix_corner;
|
||||
};
|
||||
|
||||
urgency_critical = {
|
||||
frame-color = nix_alert;
|
||||
frame_color = nix_alert;
|
||||
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 = {
|
||||
enable = true;
|
||||
settings = {
|
||||
@ -162,7 +180,7 @@ in
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
font-family: 'JetBrainsMono Nerd Font';
|
||||
font-family: '${nix_font}';
|
||||
font-size: 14px; /* up from 12px */
|
||||
}
|
||||
|
||||
@ -185,12 +203,20 @@ in
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
border-radius: 0 0 ${toString nix_corner}px ${toString nix_corner}px;
|
||||
|
||||
}
|
||||
|
||||
#cpu,
|
||||
#battery,
|
||||
#pulseaudio,
|
||||
#custom-power,
|
||||
#idle_inhibitor,
|
||||
#bluetooth,
|
||||
#privacy,
|
||||
#custom-menu,
|
||||
#hyprland-submap,
|
||||
#language {
|
||||
min-width: 12px;
|
||||
margin: 0 7.5px;
|
||||
@ -208,7 +234,7 @@ in
|
||||
margin-right: 13px;
|
||||
}
|
||||
|
||||
#custom-expandn {
|
||||
#custom-expand {
|
||||
margin-right: 18px;
|
||||
}
|
||||
|
||||
@ -239,12 +265,13 @@ in
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#privacy {
|
||||
#privacy privacy-item *{
|
||||
min-width: 12px;
|
||||
margin-left: 5px;
|
||||
margin-right: 0;
|
||||
font-size: 10px;
|
||||
padding-bottom: 1px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#privacy.active {
|
||||
@ -257,9 +284,13 @@ in
|
||||
'';
|
||||
settings = {
|
||||
mainBar = {
|
||||
height = 26;
|
||||
spacing = 4;
|
||||
modules-left = [ "hyprland/workspaces" ];
|
||||
height = nix_bar_height;
|
||||
spacing = 0;
|
||||
modules-left = [
|
||||
"custom/menu"
|
||||
"hyprland/workspaces"
|
||||
"hyprland/submap"
|
||||
];
|
||||
modules-center = [
|
||||
"clock"
|
||||
"idle_inhibitor"
|
||||
@ -274,6 +305,10 @@ in
|
||||
"privacy"
|
||||
];
|
||||
|
||||
privacy = {
|
||||
icon-size = 14;
|
||||
};
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
on-click = "activate";
|
||||
format = "{icon}";
|
||||
@ -306,7 +341,8 @@ in
|
||||
};
|
||||
|
||||
tray = {
|
||||
#spacing = 10;
|
||||
spacing = 17;
|
||||
icon-size = 12;
|
||||
};
|
||||
|
||||
"hyprland/language" = {
|
||||
@ -321,6 +357,11 @@ in
|
||||
on-click = "hyprlock & systemctl suspend";
|
||||
};
|
||||
|
||||
"custom/menu" = {
|
||||
format = "";
|
||||
on-click = "walker";
|
||||
};
|
||||
|
||||
"custom/expand" = {
|
||||
tooltip = false;
|
||||
format = "";
|
||||
@ -411,13 +452,140 @@ in
|
||||
locale = "";
|
||||
monitor = "";
|
||||
terminal_title_flag = "";
|
||||
theme = "default";
|
||||
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 = {
|
||||
enable = true;
|
||||
font = "JetBrains Mono 14";
|
||||
font = "${nix_font} 14";
|
||||
plugins = [
|
||||
pkgs.rofimoji
|
||||
];
|
||||
@ -425,8 +593,18 @@ in
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
ignore_empty_input = true;
|
||||
};
|
||||
background = {
|
||||
color = nix_background;
|
||||
# color = nix_background;
|
||||
path = "screenshot";
|
||||
blur_passes = 3;
|
||||
blur_size = 8;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = false;
|
||||
};
|
||||
|
||||
input-field = {
|
||||
@ -434,19 +612,22 @@ in
|
||||
position = "0, 0";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
fade_on_emtpy = false;
|
||||
fade_on_empty = false;
|
||||
font_color = nix_text;
|
||||
outer_color = nix_inactive;
|
||||
inner_color = nix_background;
|
||||
check_color = nix_accent;
|
||||
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>";
|
||||
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 = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
#pkgs.hyprlandPlugins.hyprbars
|
||||
pkgs.hyprlandPlugins.hyprbars
|
||||
];
|
||||
settings = {
|
||||
# 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:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
# 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 ###
|
||||
@ -581,14 +867,14 @@ in
|
||||
gaps_in = 10;
|
||||
gaps_out = 20;
|
||||
|
||||
border_size = 3;
|
||||
border_size = nix_border_size;
|
||||
|
||||
# these need to have variables
|
||||
"col.active_border" = "0x4385BEFF";
|
||||
"col.inactive_border" = "0x403E3CFF";
|
||||
"col.active_border" = "0xFF205ea6";
|
||||
"col.inactive_border" = "0xFF403E3C";
|
||||
|
||||
# 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
|
||||
allow_tearing = false;
|
||||
@ -625,36 +911,35 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#decoration
|
||||
# https://wiki.hypr.land/Configuring/Basics/Variables/#decoration
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
rounding_power = 2;
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
rounding = nix_corner;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
range = 2;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#blur
|
||||
# https://wiki.hypr.land/Configuring/Basics/Variables/#blur
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 8;
|
||||
passes = 1;
|
||||
noise = 0.2;
|
||||
|
||||
vibrancy = 0.1696;
|
||||
size = 2;
|
||||
passes = 2;
|
||||
special = true;
|
||||
brightness = 0.60;
|
||||
contrast = 0.75;
|
||||
};
|
||||
};
|
||||
|
||||
layerrule = [
|
||||
"blur, notifications"
|
||||
"ignorezero, notifications"
|
||||
|
||||
# turn off anim for walker
|
||||
"noanim, walker"
|
||||
|
||||
]; # add blur to notifications
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#animations
|
||||
@ -674,7 +959,7 @@ in
|
||||
animation = [
|
||||
"global, 1, 10, default"
|
||||
"border, 1, 5.39, easeOutQuint"
|
||||
"windows, 1, 4.79, easeOutQuint"
|
||||
"windows, 1, 3.79, easeOutQuint"
|
||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||
"fadeIn, 1, 1.73, almostLinear"
|
||||
@ -685,31 +970,20 @@ in
|
||||
"layersOut, 1, 1.5, linear, fade"
|
||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||
"workspaces, 1, 1.94, almostLinear, fade"
|
||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||
"zoomFactor, 1, 7, quick"
|
||||
"workspaces, 0, 1, default"
|
||||
"specialWorkspace, 1, 3, easeOutQuint, slidevert"
|
||||
];
|
||||
};
|
||||
|
||||
# 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
|
||||
dwindle = {
|
||||
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
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
|
||||
@ -722,6 +996,7 @@ in
|
||||
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. :(
|
||||
background_color = nix_background;
|
||||
focus_on_activate = true;
|
||||
};
|
||||
|
||||
#############
|
||||
@ -735,11 +1010,15 @@ in
|
||||
kb_model = "";
|
||||
kb_options = "grp:alt_space_toggle";
|
||||
kb_rules = "";
|
||||
|
||||
follow_mouse = 1;
|
||||
|
||||
repeat_rate = 40;
|
||||
repeat_delay = 250;
|
||||
|
||||
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
accel_profile = "flat";
|
||||
|
||||
touchpad = {
|
||||
disable_while_typing = false;
|
||||
natural_scroll = false;
|
||||
@ -773,15 +1052,23 @@ in
|
||||
"$mainMod SHIFT, Q, exit,"
|
||||
"$mainMod, E, exec, $fileManager"
|
||||
"$mainMod, V, togglefloating,"
|
||||
"$mainMod, F, fullscreen, 1"
|
||||
"$mainMod, F, fullscreen, 3"
|
||||
"$mainMod, M, fullscreen, 1"
|
||||
"$mainMod, W, exec, $browser"
|
||||
"$mainMod, space, exec, $menu"
|
||||
#"$mainMod, P, pseudo," # dwindle
|
||||
"$mainMod, T, togglesplit," # dwindle
|
||||
"$mainMod SHIFT, L, exec, hyprlock"
|
||||
"$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 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
|
||||
"$mainMod, h, movefocus, l"
|
||||
@ -845,10 +1132,10 @@ in
|
||||
|
||||
# Requires playerctl
|
||||
bindl = [
|
||||
", XF86AudioNext, exec, playerctl next"
|
||||
", XF86AudioPause, exec, playerctl play-pause"
|
||||
", XF86AudioPlay, exec, playerctl play-pause"
|
||||
", XF86AudioPrev, exec, playerctl previous"
|
||||
", XF86AudioNext, exec, playerctl next& ~/.config/hypr/scripts/media.sh"
|
||||
", XF86AudioPause, exec, playerctl play-pause& ~/.config/hypr/scripts/media.sh"
|
||||
", XF86AudioPlay, exec, playerctl play-pause& ~/.config/hypr/scripts/media.sh"
|
||||
", XF86AudioPrev, exec, playerctl previous& ~/.config/hypr/scripts/media.sh"
|
||||
];
|
||||
|
||||
##############################
|
||||
@ -867,13 +1154,12 @@ in
|
||||
# Fix some dragging issues with XWayland
|
||||
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
|
||||
|
||||
"float, title:^(bluetui)$"
|
||||
"center, title:^(bluetui)$"
|
||||
"float, title:^(impala)$"
|
||||
"center, title:^(impala)$"
|
||||
"float, title:^(wiremix)$"
|
||||
"center, title:^(wiremix)$"
|
||||
# make tuis accessed from waybar float in center
|
||||
"tag +floating-window, title:(bluetui|impala|wiremix)"
|
||||
"tag +floating-window, title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)"
|
||||
"float, class:(org.gnome.Calculator)"
|
||||
|
||||
# send games to specific workspace
|
||||
"workspace name:games silent, class:$games"
|
||||
"noanim, class:$games"
|
||||
"noblur, class:$games"
|
||||
@ -882,6 +1168,42 @@ in
|
||||
"rounding 0, class:$games"
|
||||
"fullscreen, 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" =
|
||||
|
||||
639
home/podman.nix
639
home/podman.nix
@ -7,28 +7,28 @@
|
||||
|
||||
{
|
||||
|
||||
systemd.user.services.podman-prune = {
|
||||
Unit = {
|
||||
Description = "Prune unused Podman resources for admin user";
|
||||
systemd.user.services.podman-prune = {
|
||||
Unit = {
|
||||
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 = {
|
||||
Unit = {
|
||||
Description = "Weekly Podman prune timer";
|
||||
systemd.user.timers.podman-prune = {
|
||||
Unit = {
|
||||
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 = {
|
||||
internal_net = {
|
||||
@ -40,28 +40,28 @@ systemd.user.timers.podman-prune = {
|
||||
services.podman.autoUpdate.onCalendar = "*-*-* 00:00";
|
||||
services.podman.containers = {
|
||||
|
||||
# palworld = {
|
||||
# image = "docker.io/thijsvanloef/palworld-server-docker:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/palworld"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/palworld:/palworld"
|
||||
# ];
|
||||
# ports = [
|
||||
# "8211:8211/udp"
|
||||
# "27015:27015/udp"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# palworld = {
|
||||
# image = "docker.io/thijsvanloef/palworld-server-docker:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/palworld"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/palworld:/palworld"
|
||||
# ];
|
||||
# ports = [
|
||||
# "8211:8211/udp"
|
||||
# "27015:27015/udp"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
actual = {
|
||||
image = "docker.io/actualbudget/actual-server:latest";
|
||||
@ -81,49 +81,49 @@ systemd.user.timers.podman-prune = {
|
||||
};
|
||||
};
|
||||
|
||||
# akaunting = {
|
||||
# image = "docker.io/akaunting/akaunting:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/akaunting"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/akaunting/data:/var/www/html/akaunting"
|
||||
# ];
|
||||
# ports = [
|
||||
# "8003:80"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# akaunting-db = {
|
||||
# image = "docker.io/mariadb:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/akaunting"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/akaunting/db:/var/lib/mysql"
|
||||
# ];
|
||||
# ports = [
|
||||
# "3307:3306"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# akaunting = {
|
||||
# image = "docker.io/akaunting/akaunting:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/akaunting"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/akaunting/data:/var/www/html/akaunting"
|
||||
# ];
|
||||
# ports = [
|
||||
# "8003:80"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# akaunting-db = {
|
||||
# image = "docker.io/mariadb:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/akaunting"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/akaunting/db:/var/lib/mysql"
|
||||
# ];
|
||||
# ports = [
|
||||
# "3307:3306"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
archivebox = {
|
||||
image = "docker.io/archivebox/archivebox:latest";
|
||||
@ -272,12 +272,12 @@ systemd.user.timers.podman-prune = {
|
||||
autoUpdate = "registry";
|
||||
network = "internal_net";
|
||||
environment = {
|
||||
OIDC_ENABLED="1";
|
||||
OIDC_PROVIDER_METADATA_URL="https://authentik.mektem.com/application/o/fresh-rss/.well-known/openid-configuration";
|
||||
OIDC_CLIENT_ID="PsqRnVLTezIKL7582E8pnKNFIF0W41kVyMhh4RoG";
|
||||
OIDC_CLIENT_SECRET="h1XsvbUcRn33rq7qBBS0GUENEgn6zTJQeHpVPhzcqG4ekdwlCghIn1ALhydYXF1pfS8HaskM3KntHXDTC8a7athLxLzT95Gxr8OpvN9iOY75pUXrNnLJXUrY9o4qKM7m";
|
||||
OIDC_X_FORWARDED_HEADERS="X-Forwarded-Port X-Forwarded-Proto X-Forwarded-Host";
|
||||
OIDC_SCOPES="openid email profile";
|
||||
OIDC_ENABLED = "1";
|
||||
OIDC_PROVIDER_METADATA_URL = "https://authentik.mektem.com/application/o/fresh-rss/.well-known/openid-configuration";
|
||||
OIDC_CLIENT_ID = "PsqRnVLTezIKL7582E8pnKNFIF0W41kVyMhh4RoG";
|
||||
OIDC_CLIENT_SECRET = "h1XsvbUcRn33rq7qBBS0GUENEgn6zTJQeHpVPhzcqG4ekdwlCghIn1ALhydYXF1pfS8HaskM3KntHXDTC8a7athLxLzT95Gxr8OpvN9iOY75pUXrNnLJXUrY9o4qKM7m";
|
||||
OIDC_X_FORWARDED_HEADERS = "X-Forwarded-Port X-Forwarded-Proto X-Forwarded-Host";
|
||||
OIDC_SCOPES = "openid email profile";
|
||||
};
|
||||
volumes = [
|
||||
"/pool/services/podman/freshrss:/config"
|
||||
@ -318,40 +318,39 @@ systemd.user.timers.podman-prune = {
|
||||
};
|
||||
};
|
||||
|
||||
# gitea-anubis = {
|
||||
# image = "ghcr.io/techarohq/anubis:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/anubis-default" #WHY DOES THIS NOT WORK????
|
||||
# "/pool/services/secrets/anubis-nginx"
|
||||
# ];
|
||||
# environment = {
|
||||
# DIFFICULTY = "4";
|
||||
# SERVE_ROBOTS_TXT = "true";
|
||||
# POLICY_FNAME = "/data/cfg/botPolicy.json";
|
||||
# OG_PASSTHROUGH = "true";
|
||||
# OG_EXPIRY_TIME = "24h";
|
||||
# BIND = ":3002";
|
||||
# METRICS_BIND = ":9090";
|
||||
# TARGET = "http://192.168.0.30:3001";
|
||||
# };
|
||||
#
|
||||
# volumes = [
|
||||
# "/pool/services/podman/anubis/botPolicy.json:/data/cfg/botPolicy.json:ro"
|
||||
# ];
|
||||
# ports = [
|
||||
# "3002:3002"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
# gitea-anubis = {
|
||||
# image = "ghcr.io/techarohq/anubis:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/anubis-default" #WHY DOES THIS NOT WORK????
|
||||
# "/pool/services/secrets/anubis-nginx"
|
||||
# ];
|
||||
# environment = {
|
||||
# DIFFICULTY = "4";
|
||||
# SERVE_ROBOTS_TXT = "true";
|
||||
# POLICY_FNAME = "/data/cfg/botPolicy.json";
|
||||
# OG_PASSTHROUGH = "true";
|
||||
# OG_EXPIRY_TIME = "24h";
|
||||
# BIND = ":3002";
|
||||
# METRICS_BIND = ":9090";
|
||||
# TARGET = "http://192.168.0.30:3001";
|
||||
# };
|
||||
#
|
||||
# volumes = [
|
||||
# "/pool/services/podman/anubis/botPolicy.json:/data/cfg/botPolicy.json:ro"
|
||||
# ];
|
||||
# ports = [
|
||||
# "3002:3002"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
home-assistant = {
|
||||
image = "ghcr.io/home-assistant/home-assistant:stable";
|
||||
@ -406,11 +405,11 @@ systemd.user.timers.podman-prune = {
|
||||
ports = [
|
||||
"1313:1313"
|
||||
];
|
||||
extraConfig = {
|
||||
Service = {
|
||||
TimeoutStartSec = 900;
|
||||
};
|
||||
};
|
||||
extraConfig = {
|
||||
Service = {
|
||||
TimeoutStartSec = 900;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
immich-db = {
|
||||
@ -539,46 +538,46 @@ systemd.user.timers.podman-prune = {
|
||||
};
|
||||
};
|
||||
|
||||
# joplin = {
|
||||
# image = "docker.io/joplin/server:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/joplin"
|
||||
# ];
|
||||
# ports = [
|
||||
# "22300:22300"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# joplin-db = {
|
||||
# image = "docker.io/postgres:15";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/joplin"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/joplin-db:/var/lib/postgresql/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "5432:5432"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# joplin = {
|
||||
# image = "docker.io/joplin/server:latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/joplin"
|
||||
# ];
|
||||
# ports = [
|
||||
# "22300:22300"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# joplin-db = {
|
||||
# image = "docker.io/postgres:15";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/joplin"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/joplin-db:/var/lib/postgresql/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "5432:5432"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
kiwix = {
|
||||
image = "ghcr.io/kiwix/kiwix-serve:latest";
|
||||
@ -639,70 +638,69 @@ systemd.user.timers.podman-prune = {
|
||||
};
|
||||
};
|
||||
|
||||
# mastodon = {
|
||||
# image = "ghcr.io/linuxserver/mastodon:amd64-latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/mastodon"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/mastodon/config:/config"
|
||||
# ];
|
||||
# ports = [
|
||||
# "808:80"
|
||||
# "8449:443"
|
||||
# "3009:3000"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# mastodon-db = {
|
||||
# image = "docker.io/postgres:16-alpine";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/mastodon-db"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/mastodon/db:/var/lib/postgresql/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "5435:5432"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# mastodon-redis = {
|
||||
# image = "registry.hub.docker.com/library/redis:6.2-alpine";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# ];
|
||||
# ports = [
|
||||
# "6382:6379"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
# mastodon = {
|
||||
# image = "ghcr.io/linuxserver/mastodon:amd64-latest";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/mastodon"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/mastodon/config:/config"
|
||||
# ];
|
||||
# ports = [
|
||||
# "808:80"
|
||||
# "8449:443"
|
||||
# "3009:3000"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# mastodon-db = {
|
||||
# image = "docker.io/postgres:16-alpine";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/mastodon-db"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/mastodon/db:/var/lib/postgresql/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "5435:5432"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# mastodon-redis = {
|
||||
# image = "registry.hub.docker.com/library/redis:6.2-alpine";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# ];
|
||||
# ports = [
|
||||
# "6382:6379"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
metube = {
|
||||
image = "ghcr.io/alexta69/metube:latest";
|
||||
@ -1036,27 +1034,27 @@ systemd.user.timers.podman-prune = {
|
||||
};
|
||||
};
|
||||
};
|
||||
# rlcraft = {
|
||||
# image = "docker.io/itzg/minecraft-server:java8";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/rlcraft"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/minecraft/rlcraft/data:/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "25565:25565"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# rlcraft = {
|
||||
# image = "docker.io/itzg/minecraft-server:java8";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/rlcraft"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/minecraft/rlcraft/data:/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "25565:25565"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
rutorrent = {
|
||||
image = "docker.io/crazymax/rtorrent-rutorrent:latest";
|
||||
@ -1119,52 +1117,50 @@ systemd.user.timers.podman-prune = {
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# tandoor = {
|
||||
# image = "docker.io/vabene1111/recipes";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/tandoor"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/tandoor/staticfiles:/opt/recipes/staticfiles"
|
||||
# "/pool/services/podman/tandoor/mediafiles:/opt/recipes/mediafiles"
|
||||
# ];
|
||||
# ports = [
|
||||
# "9092:80"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# tandoor-db = {
|
||||
# image = "docker.io/postgres:16-alpine";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/tandoor"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/tandoor/db:/var/lib/postgresql/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "5434:5432"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
# tandoor = {
|
||||
# image = "docker.io/vabene1111/recipes";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/tandoor"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/tandoor/staticfiles:/opt/recipes/staticfiles"
|
||||
# "/pool/services/podman/tandoor/mediafiles:/opt/recipes/mediafiles"
|
||||
# ];
|
||||
# ports = [
|
||||
# "9092:80"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# tandoor-db = {
|
||||
# image = "docker.io/postgres:16-alpine";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# "/pool/services/secrets/tandoor"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/tandoor/db:/var/lib/postgresql/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "5434:5432"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
thelounge = {
|
||||
image = "lscr.io/linuxserver/thelounge:latest";
|
||||
@ -1319,28 +1315,27 @@ systemd.user.timers.podman-prune = {
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# zigbee2mqtt = {
|
||||
# image = "docker.io/koenkk/zigbee2mqtt";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# devices = [ "/dev/ttyACM0:/dev/ttyACM0" ];
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/zigbee2mqtt:/app/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "8808:8080"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# zigbee2mqtt = {
|
||||
# image = "docker.io/koenkk/zigbee2mqtt";
|
||||
# autoStart = true;
|
||||
# autoUpdate = "registry";
|
||||
# network = "internal_net";
|
||||
# devices = [ "/dev/ttyACM0:/dev/ttyACM0" ];
|
||||
# environmentFile = [
|
||||
# "/pool/services/secrets/default"
|
||||
# ];
|
||||
# volumes = [
|
||||
# "/pool/services/podman/zigbee2mqtt:/app/data"
|
||||
# ];
|
||||
# ports = [
|
||||
# "8808:8080"
|
||||
# ];
|
||||
# extraConfig = {
|
||||
# Service = {
|
||||
# TimeoutStartSec = 900;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -1,39 +1,57 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports = [
|
||||
(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.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/bd28421d-7ec4-4b23-964d-c07a6f351e1f";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/bd28421d-7ec4-4b23-964d-c07a6f351e1f";
|
||||
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" =
|
||||
{ device = "/dev/disk/by-uuid/D47C-5FCE";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/be22d9db-283a-4dd9-93d5-1006e392724b"; }
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/D47C-5FCE";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/run/media/admin/08cabc7a-9a6e-4c21-8a07-6663af77b705" =
|
||||
{ device = "/dev/disk/by-uuid/08cabc7a-9a6e-4c21-8a07-6663af77b705";
|
||||
fsType = "ext4";
|
||||
};
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/be22d9db-283a-4dd9-93d5-1006e392724b"; }
|
||||
];
|
||||
|
||||
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
|
||||
# (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.efi.canTouchEfiVariables = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
|
||||
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 = [
|
||||
"nvidia_drm.modeset=1"
|
||||
"nvidia_drm.fbdev=1"
|
||||
@ -35,7 +41,10 @@ services.pipewire = {
|
||||
];
|
||||
};
|
||||
defaultGateway = "192.168.30.1";
|
||||
nameservers = [ "192.168.0.1" "1.1.1.1" ];
|
||||
nameservers = [
|
||||
"192.168.0.1"
|
||||
"1.1.1.1"
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
@ -44,7 +53,7 @@ services.pipewire = {
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
@ -53,11 +62,11 @@ services.pipewire = {
|
||||
hardware.opengl.enable = true;
|
||||
|
||||
# this fixes the sleep/wake issue
|
||||
systemd.services."systemd-suspend" = {
|
||||
serviceConfig = {
|
||||
Environment = ''"SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false"'';
|
||||
};
|
||||
};
|
||||
systemd.services."systemd-suspend" = {
|
||||
serviceConfig = {
|
||||
Environment = ''"SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false"'';
|
||||
};
|
||||
};
|
||||
|
||||
# fixes hardware accel on nvidia open
|
||||
hardware.graphics.extraPackages = [
|
||||
|
||||
@ -2,9 +2,8 @@
|
||||
|
||||
{
|
||||
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
system.stateVersion = 6;
|
||||
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
system.stateVersion = 6;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
audacity
|
||||
@ -106,12 +105,12 @@ system.stateVersion = 6;
|
||||
services.yabai = {
|
||||
enable = true;
|
||||
config = {
|
||||
layout = "float";
|
||||
top_padding = "15";
|
||||
layout = "float";
|
||||
top_padding = "15";
|
||||
bottom_padding = "15";
|
||||
left_padding = "15";
|
||||
right_padding = "15";
|
||||
window_gap = "15";
|
||||
left_padding = "15";
|
||||
right_padding = "15";
|
||||
window_gap = "15";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -14,7 +14,10 @@
|
||||
];
|
||||
};
|
||||
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;
|
||||
|
||||
@ -1,32 +1,48 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports = [
|
||||
(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.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/b9cc7972-36ae-4cb4-a6f4-e342eaca679e";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/b9cc7972-36ae-4cb4-a6f4-e342eaca679e";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/542D-865C";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/1032bbd9-0124-419f-a696-a977755aaf17"; }
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/542D-865C";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/1032bbd9-0124-419f-a696-a977755aaf17"; }
|
||||
];
|
||||
|
||||
# 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
|
||||
|
||||
@ -7,26 +7,26 @@
|
||||
#boot.loader.limine.biosDevice = "/dev/vda";
|
||||
#boot.loader.efi.efiSysMountPoint = "/boot";
|
||||
|
||||
systemd.services.podman-network-vlan50 = {
|
||||
description = "Create podman vlan50 network";
|
||||
after = [ "network.target" ];
|
||||
before = [ "podman-nginx.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
systemd.services.podman-network-vlan50 = {
|
||||
description = "Create podman vlan50 network";
|
||||
after = [ "network.target" ];
|
||||
before = [ "podman-nginx.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
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 = {
|
||||
vlans = {
|
||||
@ -55,7 +55,10 @@ systemd.services.podman-network-vlan50 = {
|
||||
];
|
||||
};
|
||||
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;
|
||||
|
||||
@ -76,11 +79,11 @@ systemd.services.podman-network-vlan50 = {
|
||||
|
||||
hardware.graphics = {
|
||||
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; [
|
||||
mesa.drivers
|
||||
libva
|
||||
libva-utils # provides vainfo
|
||||
libva-utils # provides vainfo
|
||||
];
|
||||
};
|
||||
|
||||
@ -148,7 +151,7 @@ systemd.services.podman-network-vlan50 = {
|
||||
# };
|
||||
|
||||
# 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.zfs.forceImportRoot = false;
|
||||
@ -167,9 +170,9 @@ systemd.services.podman-network-vlan50 = {
|
||||
|
||||
services.zfs.zed = {
|
||||
settings = {
|
||||
ZED_NTFY_URL="https://ntfy.mektem.com";
|
||||
ZED_NTFY_TOPIC="zfs";
|
||||
ZED_NTFY_ACCESS_TOKEN="tk_gtjia7itxhg1qik7j58wkgey2parr";
|
||||
ZED_NTFY_URL = "https://ntfy.mektem.com";
|
||||
ZED_NTFY_TOPIC = "zfs";
|
||||
ZED_NTFY_ACCESS_TOKEN = "tk_gtjia7itxhg1qik7j58wkgey2parr";
|
||||
ZED_NOTIFY_INTERVAL_SECS = 1;
|
||||
ZED_NOTIFY_VERBOSE = true; # Set to false to only get alerts on degradation
|
||||
};
|
||||
@ -180,16 +183,16 @@ systemd.services.podman-network-vlan50 = {
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
global = {
|
||||
"server min protocol" = "SMB2_10";
|
||||
"workgroup" = "WORKGROUP";
|
||||
"server string" = "smbnix";
|
||||
"netbios name" = "smbnix";
|
||||
"security" = "user";
|
||||
"hosts allow" = "192.168.0. 192.168.30. 192.168.40.10 127.0.0.1 localhost";
|
||||
"hosts deny" = "0.0.0.0/0";
|
||||
"guest account" = "nobody";
|
||||
"map to guest" = "never";
|
||||
};
|
||||
"server min protocol" = "SMB2_10";
|
||||
"workgroup" = "WORKGROUP";
|
||||
"server string" = "smbnix";
|
||||
"netbios name" = "smbnix";
|
||||
"security" = "user";
|
||||
"hosts allow" = "192.168.0. 192.168.30. 192.168.40.10 127.0.0.1 localhost";
|
||||
"hosts deny" = "0.0.0.0/0";
|
||||
"guest account" = "nobody";
|
||||
"map to guest" = "never";
|
||||
};
|
||||
"data" = {
|
||||
"path" = "/pool/data";
|
||||
"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